All functions:
  Elements:
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/string_fuzzer.c:27,1
    - Dst: memcpy
      Src: /src/string_fuzzer.c:31,1
    - Dst: strlen
      Src: /src/string_fuzzer.c:33,1
    - Dst: ParseStringExpression
      Src: /src/string_fuzzer.c:35,1
    - Dst: FreeStringExpression
      Src: /src/string_fuzzer.c:37,1
    - Dst: free
      Src: /src/string_fuzzer.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 40
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/string_fuzzer.c
    functionUses: 0
    functionsReached:
    - ParseStringExpression
    - memcpy
    - FreeStringExpression
    - strlen
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-runagent/cf-runagent.c:181,1
    - Dst: WIFEXITED
      Src: /src/core/cf-runagent/cf-runagent.c:191,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-runagent/cf-runagent.c:193,1
    - Dst: WIFEXITED
      Src: /src/core/cf-runagent/cf-runagent.c:204,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-runagent/cf-runagent.c:204,1
    - Dst: MIN
      Src: /src/core/cf-runagent/cf-runagent.c:206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - exit_code
    - remote_exit_status
    - one_host
    - is_exit_code
    argTypes:
    - int*
    - int
    - bool
    - bool
    assertStmts:
    - condition: (exit_code != NULL)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/core/cf-runagent/cf-runagent.c
    constantsTouched: []
    func_position:
      end: 208
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 208
    functionName: UpdateExitCode
    functionSourceFile: /src/core/cf-runagent/cf-runagent.c
    functionUses: 0
    functionsReached:
    - assert
    - WEXITSTATUS
    - MIN
    - WIFEXITED
    linkageType: ''
    returnType: void
    signature: void UpdateExitCode(int *exit_code, int remote_exit_status, bool one_host,
      bool is_exit_code)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CheckOpts
      Src: /src/core/cf-runagent/cf-runagent.c:218,1
    - Dst: EvalContextNew
      Src: /src/core/cf-runagent/cf-runagent.c:219,1
    - Dst: GenericAgentConfigApply
      Src: /src/core/cf-runagent/cf-runagent.c:220,1
    - Dst: strrchr
      Src: /src/core/cf-runagent/cf-runagent.c:223,1
    - Dst: GenericAgentDiscoverContext
      Src: /src/core/cf-runagent/cf-runagent.c:225,1
    - Dst: LoadPolicy
      Src: /src/core/cf-runagent/cf-runagent.c:227,1
    - Dst: GenericAgentPostLoadInit
      Src: /src/core/cf-runagent/cf-runagent.c:229,1
    - Dst: ThisAgentInit
      Src: /src/core/cf-runagent/cf-runagent.c:230,1
    - Dst: KeepControlPromises
      Src: /src/core/cf-runagent/cf-runagent.c:232,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:242,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:243,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:257,1
    - Dst: fork
      Src: /src/core/cf-runagent/cf-runagent.c:266,1
    - Dst: HailServer
      Src: /src/core/cf-runagent/cf-runagent.c:268,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-runagent/cf-runagent.c:268,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:269,1
    - Dst: wait
      Src: /src/core/cf-runagent/cf-runagent.c:279,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:280,1
    - Dst: UpdateExitCode
      Src: /src/core/cf-runagent/cf-runagent.c:282,1
    - Dst: HailServer
      Src: /src/core/cf-runagent/cf-runagent.c:288,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-runagent/cf-runagent.c:288,1
    - Dst: UpdateExitCode
      Src: /src/core/cf-runagent/cf-runagent.c:289,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:298,1
    - Dst: wait
      Src: /src/core/cf-runagent/cf-runagent.c:301,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:302,1
    - Dst: UpdateExitCode
      Src: /src/core/cf-runagent/cf-runagent.c:304,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-runagent/cf-runagent.c:309,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-runagent/cf-runagent.c:310,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-runagent/cf-runagent.c:312,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 314
    functionName: main
    functionSourceFile: /src/core/cf-runagent/cf-runagent.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - LoadPolicy
    - CallCleanupFunctions
    - Log
    - RlistScalarValue
    - UpdateExitCode
    - HailServer
    - CheckOpts
    - wait
    - GenericAgentPostLoadInit
    - EvalContextNew
    - strrchr
    - KeepControlPromises
    - DoCleanupAndExit
    - fork
    - GenericAgentConfigApply
    - GenericAgentFinalize
    - GenericAgentDiscoverContext
    - ThisAgentInit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/cf-runagent/cf-runagent.c:322,1
    - Dst: GetTTYInteractive
      Src: /src/core/cf-runagent/cf-runagent.c:322,1
    - Dst: getopt_long
      Src: /src/core/cf-runagent/cf-runagent.c:329,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-runagent/cf-runagent.c:336,1
    - Dst: GetInputDir
      Src: /src/core/cf-runagent/cf-runagent.c:336,1
    - Dst: StringToLongExitOnError
      Src: /src/core/cf-runagent/cf-runagent.c:344,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-runagent/cf-runagent.c:349,1
    - Dst: strlen
      Src: /src/core/cf-runagent/cf-runagent.c:358,1
    - Dst: StrCatDelim
      Src: /src/core/cf-runagent/cf-runagent.c:359,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:363,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:364,1
    - Dst: strlen
      Src: /src/core/cf-runagent/cf-runagent.c:370,1
    - Dst: StrCatDelim
      Src: /src/core/cf-runagent/cf-runagent.c:371,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:375,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:376,1
    - Dst: RlistFromSplitString
      Src: /src/core/cf-runagent/cf-runagent.c:381,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:385,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:387,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-runagent/cf-runagent.c:391,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-runagent/cf-runagent.c:399,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-runagent/cf-runagent.c:403,1
    - Dst: StringToLongExitOnError
      Src: /src/core/cf-runagent/cf-runagent.c:412,1
    - Dst: FileWriter
      Src: /src/core/cf-runagent/cf-runagent.c:417,1
    - Dst: GenericAgentWriteVersion
      Src: /src/core/cf-runagent/cf-runagent.c:418,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-runagent/cf-runagent.c:419,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:421,1
    - Dst: FileWriter
      Src: /src/core/cf-runagent/cf-runagent.c:425,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-runagent/cf-runagent.c:426,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-runagent/cf-runagent.c:427,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:429,1
    - Dst: FileWriter
      Src: /src/core/cf-runagent/cf-runagent.c:433,1
    - Dst: ManPageWrite
      Src: /src/core/cf-runagent/cf-runagent.c:434,1
    - Dst: time
      Src: /src/core/cf-runagent/cf-runagent.c:434,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-runagent/cf-runagent.c:440,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:441,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:445,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:446,1
    - Dst: GenericAgentConfigParseColor
      Src: /src/core/cf-runagent/cf-runagent.c:449,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:451,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/cf-runagent/cf-runagent.c:456,1
    - Dst: StringEqual
      Src: /src/core/cf-runagent/cf-runagent.c:463,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:467,1
    - Dst: LogEnableModulesFromString
      Src: /src/core/cf-runagent/cf-runagent.c:469,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:472,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:475,1
    - Dst: strlen
      Src: /src/core/cf-runagent/cf-runagent.c:477,1
    - Dst: StrCatDelim
      Src: /src/core/cf-runagent/cf-runagent.c:478,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:482,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:483,1
    - Dst: FileWriter
      Src: /src/core/cf-runagent/cf-runagent.c:490,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-runagent/cf-runagent.c:491,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-runagent/cf-runagent.c:492,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:494,1
    - Dst: GenericAgentConfigParseArguments
      Src: /src/core/cf-runagent/cf-runagent.c:499,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:501,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-runagent/cf-runagent.c:502,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 120
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 506
    functionName: CheckOpts
    functionSourceFile: /src/core/cf-runagent/cf-runagent.c
    functionUses: 1
    functionsReached:
    - StringToLongExitOnError
    - GenericAgentConfigParseColor
    - Log
    - GetInputDir
    - FileWriterDetach
    - time
    - StringEqual
    - FileWriter
    - GenericAgentConfigSetInputFile
    - WriterWriteHelp
    - strlen
    - ManPageWrite
    - GenericAgentConfigNewDefault
    - strcmp
    - GenericAgentWriteVersion
    - StrCatDelim
    - LogSetGlobalLevel
    - GetTTYInteractive
    - GenericAgentConfigParseArguments
    - getopt_long
    - DoCleanupAndExit
    - LogEnableModulesFromString
    - LoggingEnableTimestamps
    - RlistFromSplitString
    - LogSetGlobalLevelArgOrExit
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *CheckOpts(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/core/cf-runagent/cf-runagent.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: ThisAgentInit
    functionSourceFile: /src/core/cf-runagent/cf-runagent.c
    functionUses: 1
    functionsReached:
    - umask
    linkageType: ''
    returnType: void
    signature: void ThisAgentInit(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-runagent/cf-runagent.c:519,1
    - Dst: ParseHostPort
      Src: /src/core/cf-runagent/cf-runagent.c:528,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:532,1
    - Dst: Hostname2IPString
      Src: /src/core/cf-runagent/cf-runagent.c:541,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:543,1
    - Dst: Address2Hostkey
      Src: /src/core/cf-runagent/cf-runagent.c:548,1
    - Dst: GetCurrentUserName
      Src: /src/core/cf-runagent/cf-runagent.c:549,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:553,1
    - Dst: HavePublicKey
      Src: /src/core/cf-runagent/cf-runagent.c:555,1
    - Dst: printf
      Src: /src/core/cf-runagent/cf-runagent.c:561,1
    - Dst: printf
      Src: /src/core/cf-runagent/cf-runagent.c:563,1
    - Dst: fgets
      Src: /src/core/cf-runagent/cf-runagent.c:567,1
    - Dst: FatalError
      Src: /src/core/cf-runagent/cf-runagent.c:569,1
    - Dst: Chop
      Src: /src/core/cf-runagent/cf-runagent.c:572,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:574,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:577,1
    - Dst: printf
      Src: /src/core/cf-runagent/cf-runagent.c:579,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:583,1
    - Dst: printf
      Src: /src/core/cf-runagent/cf-runagent.c:585,1
    - Dst: printf
      Src: /src/core/cf-runagent/cf-runagent.c:591,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:601,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:607,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:609,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:611,1
    - Dst: ServerConnection
      Src: /src/core/cf-runagent/cf-runagent.c:621,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:625,1
    - Dst: HailExec
      Src: /src/core/cf-runagent/cf-runagent.c:630,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 3
    argNames:
    - ctx
    - config
    - host
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    - char*
    assertStmts:
    - condition: (host != NULL)
      pos:
        line_end: 518
        line_start: 518
        source_file: /src/core/cf-runagent/cf-runagent.c
    constantsTouched: []
    func_position:
      end: 631
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 631
    functionName: HailServer
    functionSourceFile: /src/core/cf-runagent/cf-runagent.c
    functionUses: 1
    functionsReached:
    - Hostname2IPString
    - GetCurrentUserName
    - fgets
    - assert
    - HavePublicKey
    - ParseHostPort
    - printf
    - FatalError
    - Log
    - strcmp
    - Chop
    - ServerConnection
    - HailExec
    - Address2Hostkey
    linkageType: ''
    returnType: int
    signature: int HailServer(const EvalContext *ctx, const GenericAgentConfig *config,
      char *host)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ControlBodyConstraints
      Src: /src/core/cf-runagent/cf-runagent.c:639,1
    - Dst: SeqLength
      Src: /src/core/cf-runagent/cf-runagent.c:642,1
    - Dst: SeqAt
      Src: /src/core/cf-runagent/cf-runagent.c:644,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-runagent/cf-runagent.c:646,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-runagent/cf-runagent.c:651,1
    - Dst: EvalContextVariableGet
      Src: /src/core/cf-runagent/cf-runagent.c:653,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-runagent/cf-runagent.c:654,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:659,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:663,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:668,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:673,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:678,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:683,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:691,1
    - Dst: BooleanFromString
      Src: /src/core/cf-runagent/cf-runagent.c:696,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:701,1
    - Dst: IntFromString
      Src: /src/core/cf-runagent/cf-runagent.c:703,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:707,1
    - Dst: BooleanFromString
      Src: /src/core/cf-runagent/cf-runagent.c:709,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:713,1
    - Dst: strlen
      Src: /src/core/cf-runagent/cf-runagent.c:715,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:717,1
    - Dst: IsAbsPath
      Src: /src/core/cf-runagent/cf-runagent.c:721,1
    - Dst: strlcpy
      Src: /src/core/cf-runagent/cf-runagent.c:723,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:724,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:729,1
    - Dst: strcmp
      Src: /src/core/cf-runagent/cf-runagent.c:734,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-runagent/cf-runagent.c:746,1
    - Dst: IntFromString
      Src: /src/core/cf-runagent/cf-runagent.c:749,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 63
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 752
    functionName: KeepControlPromises
    functionSourceFile: /src/core/cf-runagent/cf-runagent.c
    functionUses: 1
    functionsReached:
    - ControlBodyConstraints
    - strlen
    - IsAbsPath
    - VarRefParseFromScope
    - VarRefDestroy
    - EvalContextVariableGet
    - IsDefinedClass
    - Log
    - strcmp
    - EvalContextVariableControlCommonGet
    - SeqLength
    - BooleanFromString
    - strlcpy
    - IntFromString
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void KeepControlPromises(EvalContext *ctx, const Policy *policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromSplitRegex
      Src: /src/core/cf-runagent/cf-runagent.c:758,1
    - Dst: SendTransaction
      Src: /src/core/cf-runagent/cf-runagent.c:762,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-runagent/cf-runagent.c:762,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:764,1
    - Dst: GetErrorStr
      Src: /src/core/cf-runagent/cf-runagent.c:764,1
    - Dst: SendTransaction
      Src: /src/core/cf-runagent/cf-runagent.c:769,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:771,1
    - Dst: GetErrorStr
      Src: /src/core/cf-runagent/cf-runagent.c:771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 774
    functionName: SendClassData
    functionSourceFile: /src/core/cf-runagent/cf-runagent.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - RlistFromSplitRegex
    - SendTransaction
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: void
    signature: void SendClassData(AgentConnection *conn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-runagent/cf-runagent.c:781,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-runagent/cf-runagent.c:783,1
    - Dst: StrCat
      Src: /src/core/cf-runagent/cf-runagent.c:785,1
    - Dst: StrCat
      Src: /src/core/cf-runagent/cf-runagent.c:786,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-runagent/cf-runagent.c:788,1
    - Dst: StrCat
      Src: /src/core/cf-runagent/cf-runagent.c:790,1
    - Dst: StrCat
      Src: /src/core/cf-runagent/cf-runagent.c:791,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:796,1
    - Dst: DisconnectServer
      Src: /src/core/cf-runagent/cf-runagent.c:797,1
    - Dst: SendTransaction
      Src: /src/core/cf-runagent/cf-runagent.c:801,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:803,1
    - Dst: GetErrorStr
      Src: /src/core/cf-runagent/cf-runagent.c:803,1
    - Dst: DisconnectServer
      Src: /src/core/cf-runagent/cf-runagent.c:804,1
    - Dst: SendClassData
      Src: /src/core/cf-runagent/cf-runagent.c:812,1
    - Dst: NewStream
      Src: /src/core/cf-runagent/cf-runagent.c:815,1
    - Dst: memset
      Src: /src/core/cf-runagent/cf-runagent.c:819,1
    - Dst: ReceiveTransaction
      Src: /src/core/cf-runagent/cf-runagent.c:821,1
    - Dst: strncmp
      Src: /src/core/cf-runagent/cf-runagent.c:825,1
    - Dst: strlen
      Src: /src/core/cf-runagent/cf-runagent.c:825,1
    - Dst: strlen
      Src: /src/core/cf-runagent/cf-runagent.c:830,1
    - Dst: strncmp
      Src: /src/core/cf-runagent/cf-runagent.c:833,1
    - Dst: fprintf
      Src: /src/core/cf-runagent/cf-runagent.c:835,1
    - Dst: strncmp
      Src: /src/core/cf-runagent/cf-runagent.c:838,1
    - Dst: fprintf
      Src: /src/core/cf-runagent/cf-runagent.c:840,1
    - Dst: StringStartsWith
      Src: /src/core/cf-runagent/cf-runagent.c:846,1
    - Dst: assert
      Src: /src/core/cf-runagent/cf-runagent.c:849,1
    - Dst: sscanf
      Src: /src/core/cf-runagent/cf-runagent.c:850,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:853,1
    - Dst: fprintf
      Src: /src/core/cf-runagent/cf-runagent.c:856,1
    - Dst: fputc
      Src: /src/core/cf-runagent/cf-runagent.c:865,1
    - Dst: fclose
      Src: /src/core/cf-runagent/cf-runagent.c:871,1
    - Dst: DisconnectServer
      Src: /src/core/cf-runagent/cf-runagent.c:873,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - conn
    - peer
    argTypes:
    - AgentConnection*
    - char*
    assertStmts:
    - condition: (exit_code == -1)
      pos:
        line_end: 848
        line_start: 848
        source_file: /src/core/cf-runagent/cf-runagent.c
    constantsTouched: []
    func_position:
      end: 875
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 875
    functionName: HailExec
    functionSourceFile: /src/core/cf-runagent/cf-runagent.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - StrCat
    - strncmp
    - strlen
    - StringStartsWith
    - assert
    - NewStream
    - sscanf
    - SendTransaction
    - DisconnectServer
    - Log
    - ReceiveTransaction
    - fprintf
    - fclose
    - fputc
    - NULL_OR_EMPTY
    - SendClassData
    - memset
    linkageType: ''
    returnType: int
    signature: int HailExec(AgentConnection *conn, char *peer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/cf-runagent/cf-runagent.c:887,1
    - Dst: xasprintf
      Src: /src/core/cf-runagent/cf-runagent.c:891,1
    - Dst: GetWorkDir
      Src: /src/core/cf-runagent/cf-runagent.c:892,1
    - Dst: printf
      Src: /src/core/cf-runagent/cf-runagent.c:898,1
    - Dst: safe_fopen
      Src: /src/core/cf-runagent/cf-runagent.c:900,1
    - Dst: Log
      Src: /src/core/cf-runagent/cf-runagent.c:903,1
    - Dst: GetErrorStr
      Src: /src/core/cf-runagent/cf-runagent.c:903,1
    - Dst: free
      Src: /src/core/cf-runagent/cf-runagent.c:912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 914
    functionName: NewStream
    functionSourceFile: /src/core/cf-runagent/cf-runagent.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - xasprintf
    - printf
    - safe_fopen
    - Log
    - free
    - GetWorkDir
    linkageType: ''
    returnType: FILE
    signature: FILE *NewStream(char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/tests/load/lastseen_threaded_load.c:50,1
    - Dst: Log
      Src: /src/core/tests/load/lastseen_threaded_load.c:52,1
    - Dst: NewDBCursor
      Src: /src/core/tests/load/lastseen_threaded_load.c:56,1
    - Dst: Log
      Src: /src/core/tests/load/lastseen_threaded_load.c:58,1
    - Dst: CloseDB
      Src: /src/core/tests/load/lastseen_threaded_load.c:59,1
    - Dst: NextDB
      Src: /src/core/tests/load/lastseen_threaded_load.c:63,1
    - Dst: Log
      Src: /src/core/tests/load/lastseen_threaded_load.c:77,1
    - Dst: memcpy
      Src: /src/core/tests/load/lastseen_threaded_load.c:82,1
    - Dst: DBCursorDeleteEntry
      Src: /src/core/tests/load/lastseen_threaded_load.c:89,1
    - Dst: Log
      Src: /src/core/tests/load/lastseen_threaded_load.c:90,1
    - Dst: DeleteDBCursor
      Src: /src/core/tests/load/lastseen_threaded_load.c:94,1
    - Dst: CloseDB
      Src: /src/core/tests/load/lastseen_threaded_load.c:95,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 98
    functionName: PurgeCurrentLastSeen
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - memcpy
    - NewDBCursor
    - OpenDB
    - DeleteDBCursor
    - Log
    - CloseDB
    - NextDB
    - DBCursorDeleteEntry
    linkageType: ''
    returnType: bool
    signature: bool PurgeCurrentLastSeen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    argTypes:
    - char*
    - char*
    - bool
    - KeyHostSeen*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: callback
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool callback(const char *hostkey ARG_UNUSED,\n                     const
      char *address ARG_UNUSED,\n                     bool incoming ARG_UNUSED,\n
      \                    const KeyHostSeen *quality ARG_UNUSED,\n                     void
      *ctx ARG_UNUSED)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/tests/load/lastseen_threaded_load.c:115,1
    - Dst: pthread_cond_signal
      Src: /src/core/tests/load/lastseen_threaded_load.c:119,1
    - Dst: ThreadUnlock
      Src: /src/core/tests/load/lastseen_threaded_load.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: thread_exit_clean
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - pthread_cond_signal
    - ThreadUnlock
    - ThreadLock
    linkageType: ''
    returnType: void
    signature: void thread_exit_clean()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:132,1
    - Dst: xsnprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:134,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/load/lastseen_threaded_load.c:137,1
    - Dst: thread_exit_clean
      Src: /src/core/tests/load/lastseen_threaded_load.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 148
    functionName: lastsaw_worker_thread
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - UpdateLastSawHost
    - xsnprintf
    - thread_exit_clean
    linkageType: ''
    returnType: void
    signature: void *lastsaw_worker_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastSeenHostKeyCount
      Src: /src/core/tests/load/lastseen_threaded_load.c:156,1
    - Dst: thread_exit_clean
      Src: /src/core/tests/load/lastseen_threaded_load.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 162
    functionName: keycount_worker_thread
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - LastSeenHostKeyCount
    - thread_exit_clean
    linkageType: ''
    returnType: void
    signature: void *keycount_worker_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScanLastSeenQuality
      Src: /src/core/tests/load/lastseen_threaded_load.c:170,1
    - Dst: thread_exit_clean
      Src: /src/core/tests/load/lastseen_threaded_load.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: scanlastseen_worker_thread
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - ScanLastSeenQuality
    - thread_exit_clean
    linkageType: ''
    returnType: void
    signature: void *scanlastseen_worker_thread(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:190,1
    - Dst: putc
      Src: /src/core/tests/load/lastseen_threaded_load.c:191,1
    - Dst: fflush
      Src: /src/core/tests/load/lastseen_threaded_load.c:192,1
    - Dst: perror
      Src: /src/core/tests/load/lastseen_threaded_load.c:195,1
    - Dst: fprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:196,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ARG_UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 202
    functionName: print_progress_sighandler
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - exit
    - fflush
    - putc
    - fprintf
    - perror
    linkageType: ''
    returnType: void
    signature: void print_progress_sighandler(int signum ARG_UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ARG_UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: startstop_handler
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void startstop_handler(int signum ARG_UNUSED)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/core/tests/load/lastseen_threaded_load.c:219,1
    - Dst: sigaction
      Src: /src/core/tests/load/lastseen_threaded_load.c:220,1
    - Dst: perror
      Src: /src/core/tests/load/lastseen_threaded_load.c:223,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:224,1
    - Dst: sigemptyset
      Src: /src/core/tests/load/lastseen_threaded_load.c:229,1
    - Dst: sigaction
      Src: /src/core/tests/load/lastseen_threaded_load.c:230,1
    - Dst: perror
      Src: /src/core/tests/load/lastseen_threaded_load.c:233,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:234,1
    - Dst: sleep
      Src: /src/core/tests/load/lastseen_threaded_load.c:241,1
    - Dst: getppid
      Src: /src/core/tests/load/lastseen_threaded_load.c:244,1
    - Dst: fprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:247,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:250,1
    - Dst: fprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:255,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:258,1
    - Dst: getppid
      Src: /src/core/tests/load/lastseen_threaded_load.c:265,1
    - Dst: fprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:268,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:271,1
    - Dst: LastSeenHostKeyCount
      Src: /src/core/tests/load/lastseen_threaded_load.c:276,1
    - Dst: ScanLastSeenQuality
      Src: /src/core/tests/load/lastseen_threaded_load.c:280,1
    - Dst: PurgeCurrentLastSeen
      Src: /src/core/tests/load/lastseen_threaded_load.c:284,1
    - Dst: xsnprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:289,1
    - Dst: xsnprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:291,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/load/lastseen_threaded_load.c:296,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 305
    functionName: worker_process
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - exit
    - sigemptyset
    - getppid
    - sleep
    - fprintf
    - PurgeCurrentLastSeen
    - UpdateLastSawHost
    - ScanLastSeenQuality
    - xsnprintf
    - perror
    - LastSeenHostKeyCount
    - sigaction
    linkageType: ''
    returnType: void
    signature: void worker_process()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:315,1
    - Dst: pthread_create
      Src: /src/core/tests/load/lastseen_threaded_load.c:318,1
    - Dst: fprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:322,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/tests/load/lastseen_threaded_load.c:323,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:324,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:327,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - (*worker_routine) (void *)
    - num_threads
    - description
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 330
    functionName: spawn_worker_threads
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - exit
    - pthread_create
    - fprintf
    - printf
    - GetErrorStrFromCode
    linkageType: ''
    returnType: void
    signature: "void spawn_worker_threads(void *(*worker_routine) (void *),\n                          int
      num_threads, const char *description)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:337,1
    - Dst: fputs
      Src: /src/core/tests/load/lastseen_threaded_load.c:342,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:346,1
    - Dst: fputs
      Src: /src/core/tests/load/lastseen_threaded_load.c:351,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:355,1
    - Dst: fputs
      Src: /src/core/tests/load/lastseen_threaded_load.c:360,1
    - Dst: read
      Src: /src/core/tests/load/lastseen_threaded_load.c:365,1
    - Dst: perror
      Src: /src/core/tests/load/lastseen_threaded_load.c:369,1
    - Dst: fprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:370,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:373,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:375,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - lastsaw_num_threads
    - keycount_num_threads
    - scanlastseen_num_threads
    - num_children
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 377
    functionName: print_progress
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - exit
    - read
    - fputs
    - printf
    - fprintf
    - perror
    linkageType: ''
    returnType: void
    signature: "void print_progress(int lastsaw_num_threads, int keycount_num_threads,\n
      \                   int scanlastseen_num_threads, int num_children)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 396
    functionName: print_usage
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_usage(const char *argv0)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/tests/load/lastseen_threaded_load.c:416,1
    - Dst: print_usage
      Src: /src/core/tests/load/lastseen_threaded_load.c:420,1
    - Dst: basename
      Src: /src/core/tests/load/lastseen_threaded_load.c:420,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:421,1
    - Dst: sscanf
      Src: /src/core/tests/load/lastseen_threaded_load.c:431,1
    - Dst: print_usage
      Src: /src/core/tests/load/lastseen_threaded_load.c:435,1
    - Dst: basename
      Src: /src/core/tests/load/lastseen_threaded_load.c:435,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:436,1
    - Dst: print_usage
      Src: /src/core/tests/load/lastseen_threaded_load.c:443,1
    - Dst: basename
      Src: /src/core/tests/load/lastseen_threaded_load.c:443,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:444,1
    - Dst: sscanf
      Src: /src/core/tests/load/lastseen_threaded_load.c:454,1
    - Dst: sscanf
      Src: /src/core/tests/load/lastseen_threaded_load.c:458,1
    - Dst: sscanf
      Src: /src/core/tests/load/lastseen_threaded_load.c:462,1
    - Dst: print_usage
      Src: /src/core/tests/load/lastseen_threaded_load.c:468,1
    - Dst: basename
      Src: /src/core/tests/load/lastseen_threaded_load.c:468,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:469,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:474,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 6
    argNames:
    - argc
    - argv
    - lastsaw_num_threads
    - keycount_num_threads
    - scanlastseen_num_threads
    - num_forked_children
    argTypes:
    - int
    - char*[]
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 477
    functionName: parse_args
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - exit
    - print_usage
    - printf
    - sscanf
    - basename
    linkageType: ''
    returnType: void
    signature: "void parse_args(int argc, char *argv[],\n                int *lastsaw_num_threads,
      int *keycount_num_threads,\n                int *scanlastseen_num_threads, int
      *num_forked_children)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LogSetGlobalLevel
      Src: /src/core/tests/load/lastseen_threaded_load.c:482,1
    - Dst: xsnprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:484,1
    - Dst: mkdtemp
      Src: /src/core/tests/load/lastseen_threaded_load.c:486,1
    - Dst: perror
      Src: /src/core/tests/load/lastseen_threaded_load.c:489,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:490,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:492,1
    - Dst: xasprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:495,1
    - Dst: putenv
      Src: /src/core/tests/load/lastseen_threaded_load.c:497,1
    - Dst: GetStateDir
      Src: /src/core/tests/load/lastseen_threaded_load.c:499,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:500,1
    - Dst: mkdir
      Src: /src/core/tests/load/lastseen_threaded_load.c:501,1
    - Dst: perror
      Src: /src/core/tests/load/lastseen_threaded_load.c:504,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:505,1
    - Dst: getpid
      Src: /src/core/tests/load/lastseen_threaded_load.c:508,1
    - Dst: time
      Src: /src/core/tests/load/lastseen_threaded_load.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 510
    functionName: tests_setup
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - exit
    - mkdtemp
    - getpid
    - LogSetGlobalLevel
    - xasprintf
    - GetStateDir
    - printf
    - putenv
    - xsnprintf
    - perror
    - mkdir
    - time
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: parse_args
      Src: /src/core/tests/load/lastseen_threaded_load.c:519,1
    - Dst: tests_setup
      Src: /src/core/tests/load/lastseen_threaded_load.c:525,1
    - Dst: pipe
      Src: /src/core/tests/load/lastseen_threaded_load.c:532,1
    - Dst: perror
      Src: /src/core/tests/load/lastseen_threaded_load.c:535,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:536,1
    - Dst: fork
      Src: /src/core/tests/load/lastseen_threaded_load.c:539,1
    - Dst: perror
      Src: /src/core/tests/load/lastseen_threaded_load.c:542,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:543,1
    - Dst: close
      Src: /src/core/tests/load/lastseen_threaded_load.c:548,1
    - Dst: fdopen
      Src: /src/core/tests/load/lastseen_threaded_load.c:550,1
    - Dst: perror
      Src: /src/core/tests/load/lastseen_threaded_load.c:553,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:554,1
    - Dst: worker_process
      Src: /src/core/tests/load/lastseen_threaded_load.c:557,1
    - Dst: exit
      Src: /src/core/tests/load/lastseen_threaded_load.c:558,1
    - Dst: close
      Src: /src/core/tests/load/lastseen_threaded_load.c:562,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:565,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:570,1
    - Dst: spawn_worker_threads
      Src: /src/core/tests/load/lastseen_threaded_load.c:574,1
    - Dst: sleep
      Src: /src/core/tests/load/lastseen_threaded_load.c:581,1
    - Dst: print_progress
      Src: /src/core/tests/load/lastseen_threaded_load.c:582,1
    - Dst: putc
      Src: /src/core/tests/load/lastseen_threaded_load.c:583,1
    - Dst: spawn_worker_threads
      Src: /src/core/tests/load/lastseen_threaded_load.c:590,1
    - Dst: sleep
      Src: /src/core/tests/load/lastseen_threaded_load.c:596,1
    - Dst: print_progress
      Src: /src/core/tests/load/lastseen_threaded_load.c:597,1
    - Dst: putc
      Src: /src/core/tests/load/lastseen_threaded_load.c:598,1
    - Dst: spawn_worker_threads
      Src: /src/core/tests/load/lastseen_threaded_load.c:606,1
    - Dst: sleep
      Src: /src/core/tests/load/lastseen_threaded_load.c:612,1
    - Dst: print_progress
      Src: /src/core/tests/load/lastseen_threaded_load.c:613,1
    - Dst: putc
      Src: /src/core/tests/load/lastseen_threaded_load.c:615,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:623,1
    - Dst: kill
      Src: /src/core/tests/load/lastseen_threaded_load.c:624,1
    - Dst: sleep
      Src: /src/core/tests/load/lastseen_threaded_load.c:630,1
    - Dst: kill
      Src: /src/core/tests/load/lastseen_threaded_load.c:631,1
    - Dst: print_progress
      Src: /src/core/tests/load/lastseen_threaded_load.c:632,1
    - Dst: putc
      Src: /src/core/tests/load/lastseen_threaded_load.c:634,1
    - Dst: kill
      Src: /src/core/tests/load/lastseen_threaded_load.c:637,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:646,1
    - Dst: time
      Src: /src/core/tests/load/lastseen_threaded_load.c:649,1
    - Dst: ThreadLock
      Src: /src/core/tests/load/lastseen_threaded_load.c:651,1
    - Dst: xclock_gettime
      Src: /src/core/tests/load/lastseen_threaded_load.c:657,1
    - Dst: pthread_cond_timedwait
      Src: /src/core/tests/load/lastseen_threaded_load.c:663,1
    - Dst: sleep
      Src: /src/core/tests/load/lastseen_threaded_load.c:667,1
    - Dst: waitpid
      Src: /src/core/tests/load/lastseen_threaded_load.c:671,1
    - Dst: time
      Src: /src/core/tests/load/lastseen_threaded_load.c:676,1
    - Dst: ThreadUnlock
      Src: /src/core/tests/load/lastseen_threaded_load.c:678,1
    - Dst: fprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:685,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/load/lastseen_threaded_load.c:687,1
    - Dst: wait
      Src: /src/core/tests/load/lastseen_threaded_load.c:688,1
    - Dst: fprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:694,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_threaded_load.c:701,1
    - Dst: xasprintf
      Src: /src/core/tests/load/lastseen_threaded_load.c:705,1
    - Dst: system
      Src: /src/core/tests/load/lastseen_threaded_load.c:706,1
    - Dst: free
      Src: /src/core/tests/load/lastseen_threaded_load.c:707,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 97
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 710
    functionName: main
    functionSourceFile: /src/core/tests/load/lastseen_threaded_load.c
    functionUses: 0
    functionsReached:
    - ThreadUnlock
    - pipe
    - free
    - pthread_cond_timedwait
    - xclock_gettime
    - close
    - time
    - ThreadLock
    - fdopen
    - putc
    - wait
    - perror
    - system
    - waitpid
    - tests_setup
    - kill
    - print_progress
    - sleep
    - xasprintf
    - spawn_worker_threads
    - printf
    - parse_args
    - exit
    - fork
    - GracefulTerminate
    - worker_process
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/tests/load/db_load.c:41,1
    - Dst: assert
      Src: /src/core/tests/load/db_load.c:42,1
    - Dst: mkdtemp
      Src: /src/core/tests/load/db_load.c:44,1
    - Dst: strlcpy
      Src: /src/core/tests/load/db_load.c:45,1
    - Dst: putenv
      Src: /src/core/tests/load/db_load.c:46,1
    - Dst: mkdir
      Src: /src/core/tests/load/db_load.c:47,1
    - Dst: GetStateDir
      Src: /src/core/tests/load/db_load.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (workdir - 1 && workdir[0] == '/')
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/core/tests/load/db_load.c
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: tests_setup
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 1
    functionsReached:
    - mkdtemp
    - assert
    - mkdir
    - GetStateDir
    - putenv
    - strchr
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/tests/load/db_load.c:54,1
    - Dst: DBWriteTestData
      Src: /src/core/tests/load/db_load.c:59,1
    - Dst: TestReadWriteData
      Src: /src/core/tests/load/db_load.c:61,1
    - Dst: TestCursorIteration
      Src: /src/core/tests/load/db_load.c:62,1
    - Dst: CloseDB
      Src: /src/core/tests/load/db_load.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - param
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: contend
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 0
    functionsReached:
    - TestCursorIteration
    - OpenDB
    - TestReadWriteData
    - DBWriteTestData
    - CloseDB
    linkageType: ''
    returnType: void
    signature: void *contend(ARG_UNUSED void *param)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WriteReadWriteData
      Src: /src/core/tests/load/db_load.c:71,1
    - Dst: rand
      Src: /src/core/tests/load/db_load.c:73,1
    - Dst: ReadComplexKeyDB
      Src: /src/core/tests/load/db_load.c:84,1
    - Dst: printf
      Src: /src/core/tests/load/db_load.c:86,1
    - Dst: ReadWriteDataIsValid
      Src: /src/core/tests/load/db_load.c:89,1
    - Dst: printf
      Src: /src/core/tests/load/db_load.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - db
    argTypes:
    - CF_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 93
    functionName: TestReadWriteData
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 1
    functionsReached:
    - rand
    - ReadWriteDataIsValid
    - printf
    - ReadComplexKeyDB
    - WriteReadWriteData
    linkageType: ''
    returnType: void
    signature: void TestReadWriteData(CF_DB *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/core/tests/load/db_load.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: CoinFlip
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: bool
    signature: bool CoinFlip(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CoinFlip
      Src: /src/core/tests/load/db_load.c:102,1
    - Dst: WriteComplexKeyDB
      Src: /src/core/tests/load/db_load.c:105,1
    - Dst: printf
      Src: /src/core/tests/load/db_load.c:107,1
    - Dst: pthread_exit
      Src: /src/core/tests/load/db_load.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - CF_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: WriteReadWriteData
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 1
    functionsReached:
    - printf
    - pthread_exit
    - CoinFlip
    - WriteComplexKeyDB
    linkageType: ''
    returnType: void
    signature: void WriteReadWriteData(CF_DB *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/load/db_load.c:114,1
    - Dst: strcmp
      Src: /src/core/tests/load/db_load.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: ReadWriteDataIsValid
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool ReadWriteDataIsValid(char *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NewDBCursor
      Src: /src/core/tests/load/db_load.c:122,1
    - Dst: fprintf
      Src: /src/core/tests/load/db_load.c:124,1
    - Dst: pthread_exit
      Src: /src/core/tests/load/db_load.c:125,1
    - Dst: exit
      Src: /src/core/tests/load/db_load.c:126,1
    - Dst: NextDB
      Src: /src/core/tests/load/db_load.c:134,1
    - Dst: printf
      Src: /src/core/tests/load/db_load.c:143,1
    - Dst: ReadWriteDataIsValid
      Src: /src/core/tests/load/db_load.c:148,1
    - Dst: printf
      Src: /src/core/tests/load/db_load.c:150,1
    - Dst: printf
      Src: /src/core/tests/load/db_load.c:155,1
    - Dst: printf
      Src: /src/core/tests/load/db_load.c:163,1
    - Dst: DeleteDBCursor
      Src: /src/core/tests/load/db_load.c:166,1
    - Dst: fprintf
      Src: /src/core/tests/load/db_load.c:168,1
    - Dst: exit
      Src: /src/core/tests/load/db_load.c:169,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - db
    argTypes:
    - CF_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 172
    functionName: TestCursorIteration
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 1
    functionsReached:
    - exit
    - NewDBCursor
    - DeleteDBCursor
    - ReadWriteDataIsValid
    - printf
    - fprintf
    - NextDB
    - pthread_exit
    linkageType: ''
    returnType: void
    signature: void TestCursorIteration(CF_DB *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/core/tests/load/db_load.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - retvals
    - tids
    - numthreads
    argTypes:
    - int[]
    - pthread_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: WriteReturnValues
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 0
    functionsReached:
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int WriteReturnValues(int retvals[MAX_THREADS], pthread_t tids[MAX_THREADS],
      int numthreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/load/db_load.c:197,1
    - Dst: system
      Src: /src/core/tests/load/db_load.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: Cleanup
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 0
    functionsReached:
    - system
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void Cleanup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/tests/load/db_load.c:205,1
    - Dst: exit
      Src: /src/core/tests/load/db_load.c:206,1
    - Dst: atexit
      Src: /src/core/tests/load/db_load.c:210,1
    - Dst: tests_setup
      Src: /src/core/tests/load/db_load.c:212,1
    - Dst: atoi
      Src: /src/core/tests/load/db_load.c:214,1
    - Dst: assert
      Src: /src/core/tests/load/db_load.c:216,1
    - Dst: srand
      Src: /src/core/tests/load/db_load.c:218,1
    - Dst: time
      Src: /src/core/tests/load/db_load.c:218,1
    - Dst: pthread_attr_init
      Src: /src/core/tests/load/db_load.c:223,1
    - Dst: pthread_attr_setstacksize
      Src: /src/core/tests/load/db_load.c:224,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/core/tests/load/db_load.c:225,1
    - Dst: pthread_create
      Src: /src/core/tests/load/db_load.c:229,1
    - Dst: fprintf
      Src: /src/core/tests/load/db_load.c:233,1
    - Dst: strerror
      Src: /src/core/tests/load/db_load.c:233,1
    - Dst: pthread_attr_destroy
      Src: /src/core/tests/load/db_load.c:237,1
    - Dst: WriteReturnValues
      Src: /src/core/tests/load/db_load.c:241,1
    - Dst: exit
      Src: /src/core/tests/load/db_load.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (numthreads < MAX_THREADS)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/core/tests/load/db_load.c
    constantsTouched: []
    func_position:
      end: 244
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 244
    functionName: main
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - exit
    - pthread_attr_setstacksize
    - pthread_create
    - pthread_attr_init
    - atexit
    - assert
    - strerror
    - pthread_attr_destroy
    - srand
    - pthread_attr_setdetachstate
    - fprintf
    - atoi
    - WriteReturnValues
    - time
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CoinFlip
      Src: /src/core/tests/load/db_load.c:251,1
    - Dst: WriteComplexKeyDB
      Src: /src/core/tests/load/db_load.c:254,1
    - Dst: Log
      Src: /src/core/tests/load/db_load.c:256,1
    - Dst: pthread_exit
      Src: /src/core/tests/load/db_load.c:257,1
    - Dst: WriteReadWriteData
      Src: /src/core/tests/load/db_load.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - CF_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 262
    functionName: DBWriteTestData
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 1
    functionsReached:
    - Log
    - CoinFlip
    - WriteReadWriteData
    - pthread_exit
    - WriteComplexKeyDB
    linkageType: ''
    returnType: void
    signature: void DBWriteTestData(CF_DB *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/tests/load/db_load.c:273,1
    - Dst: vsnprintf
      Src: /src/core/tests/load/db_load.c:274,1
    - Dst: va_end
      Src: /src/core/tests/load/db_load.c:275,1
    - Dst: Log
      Src: /src/core/tests/load/db_load.c:276,1
    - Dst: Log
      Src: /src/core/tests/load/db_load.c:280,1
    - Dst: exit
      Src: /src/core/tests/load/db_load.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - EvalContext *ctx
    - fmt
    argTypes:
    - ARG_UNUSED
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: FatalError
    functionSourceFile: /src/core/tests/load/db_load.c
    functionUses: 1
    functionsReached:
    - exit
    - va_start
    - va_end
    - Log
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void FatalError(ARG_UNUSED const EvalContext *ctx, char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/tests/load/lastseen_load.c:15,1
    - Dst: assert
      Src: /src/core/tests/load/lastseen_load.c:16,1
    - Dst: mkdtemp
      Src: /src/core/tests/load/lastseen_load.c:18,1
    - Dst: strlcpy
      Src: /src/core/tests/load/lastseen_load.c:19,1
    - Dst: putenv
      Src: /src/core/tests/load/lastseen_load.c:20,1
    - Dst: mkdir
      Src: /src/core/tests/load/lastseen_load.c:21,1
    - Dst: GetStateDir
      Src: /src/core/tests/load/lastseen_load.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (workdir - 1 && workdir[0] == '/')
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/core/tests/load/lastseen_load.c
    constantsTouched: []
    func_position:
      end: 22
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 22
    functionName: tests_setup
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 2
    functionsReached:
    - mkdtemp
    - assert
    - mkdir
    - GetStateDir
    - putenv
    - strchr
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tests_setup
      Src: /src/core/tests/load/lastseen_load.c:29,1
    - Dst: printf
      Src: /src/core/tests/load/lastseen_load.c:35,1
    - Dst: fflush
      Src: /src/core/tests/load/lastseen_load.c:36,1
    - Dst: xsnprintf
      Src: /src/core/tests/load/lastseen_load.c:40,1
    - Dst: xsnprintf
      Src: /src/core/tests/load/lastseen_load.c:42,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/load/lastseen_load.c:44,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/load/lastseen_load.c:45,1
    - Dst: xsnprintf
      Src: /src/core/tests/load/lastseen_load.c:49,1
    - Dst: system
      Src: /src/core/tests/load/lastseen_load.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: main
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - fflush
    - printf
    - UpdateLastSawHost
    - xsnprintf
    - system
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/core/tests/load/lastseen_load.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: FatalError
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 1
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void FatalError(char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/core/tests/load/lastseen_load.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - liststart
    - itemstring
    - classes
    argTypes:
    - Item**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: IdempPrependItem
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: Item
    signature: Item *IdempPrependItem(Item **liststart, const char *itemstring, const
      char *classes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/core/tests/load/lastseen_load.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - Item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: IsItemIn
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: bool
    signature: bool IsItemIn(Item *list, const char *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/core/tests/load/lastseen_load.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: DeleteItemList
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void DeleteItemList(Item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/core/tests/load/lastseen_load.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: MapAddress
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: char
    signature: char *MapAddress(char *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/core/tests/load/lastseen_load.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - dst_size
    - digest
    - type
    - use_prefix
    argTypes:
    - char*
    - size_t
    - unsigned char*
    - HashMethod
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: HashPrintSafe
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: char
    signature: "char *HashPrintSafe(char *dst, size_t dst_size, const unsigned char
      *digest,\n                    HashMethod type, bool use_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/core/tests/load/lastseen_load.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - digest
    - type
    argTypes:
    - RSA*
    - unsigned char[]
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: HashPubKey
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void HashPubKey(const RSA *key, unsigned char digest[EVP_MAX_MD_SIZE
      + 1], HashMethod type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/core/tests/load/lastseen_load.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lval
    - promise
    - type
    argTypes:
    - char*
    - Promise*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: ConstraintGetRvalValue
    functionSourceFile: /src/core/tests/load/lastseen_load.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void *ConstraintGetRvalValue(char *lval, Promise *promise, char type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlParseFile
      Src: /src/core/tests/acceptance/xml-c14nize.c:9,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/xml-c14nize.c:13,1
    - Dst: xmlOutputBufferCreateFile
      Src: /src/core/tests/acceptance/xml-c14nize.c:17,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/xml-c14nize.c:21,1
    - Dst: xmlC14NDocSaveTo
      Src: /src/core/tests/acceptance/xml-c14nize.c:25,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/xml-c14nize.c:27,1
    - Dst: xmlOutputBufferClose
      Src: /src/core/tests/acceptance/xml-c14nize.c:31,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/xml-c14nize.c:33,1
    - Dst: xmlFreeDoc
      Src: /src/core/tests/acceptance/xml-c14nize.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 39
    functionName: xmlC14nizeFile
    functionSourceFile: /src/core/tests/acceptance/xml-c14nize.c
    functionUses: 0
    functionsReached:
    - xmlFreeDoc
    - xmlParseFile
    - xmlOutputBufferCreateFile
    - xmlC14NDocSaveTo
    - fprintf
    - xmlOutputBufferClose
    linkageType: ''
    returnType: bool
    signature: bool xmlC14nizeFile(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/tests/acceptance/xml-c14nize.c:45,1
    - Dst: xmlC14nizeFile
      Src: /src/core/tests/acceptance/xml-c14nize.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/core/tests/acceptance/xml-c14nize.c
    functionUses: 0
    functionsReached:
    - xmlC14nizeFile
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:34,1
    - Dst: getuid
      Src: /src/core/tests/acceptance/fakesyslog.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: msgheader
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 0
    functionsReached:
    - getuid
    - fprintf
    linkageType: ''
    returnType: void
    signature: void msgheader(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:59,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:67,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - value
    - masks
    - masks_size
    argTypes:
    - int
    - masks*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 75
    functionName: print_mask
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_mask(int value, const masks *masks, int masks_size)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: get_level_str
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_level_str(int level)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 1
    argNames:
    - facility
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: get_facility_str
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_facility_str(int facility)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG_PRI
      Src: /src/core/tests/acceptance/fakesyslog.c:120,1
    - Dst: get_level_str
      Src: /src/core/tests/acceptance/fakesyslog.c:123,1
    - Dst: get_facility_str
      Src: /src/core/tests/acceptance/fakesyslog.c:124,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:128,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: print_priority
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 0
    functionsReached:
    - get_facility_str
    - get_level_str
    - LOG_PRI
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_priority(int arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgheader
      Src: /src/core/tests/acceptance/fakesyslog.c:154,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:156,1
    - Dst: print_mask
      Src: /src/core/tests/acceptance/fakesyslog.c:157,1
    - Dst: get_facility_str
      Src: /src/core/tests/acceptance/fakesyslog.c:158,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:161,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ident
    - logopt
    - facility
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 167
    functionName: openlog
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 0
    functionsReached:
    - msgheader
    - get_facility_str
    - print_mask
    - fprintf
    linkageType: ''
    returnType: void
    signature: void openlog(const char *ident, int logopt, int facility)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msgheader
      Src: /src/core/tests/acceptance/fakesyslog.c:171,1
    - Dst: fputs
      Src: /src/core/tests/acceptance/fakesyslog.c:172,1
    - Dst: print_priority
      Src: /src/core/tests/acceptance/fakesyslog.c:173,1
    - Dst: fputs
      Src: /src/core/tests/acceptance/fakesyslog.c:174,1
    - Dst: vfprintf
      Src: /src/core/tests/acceptance/fakesyslog.c:175,1
    - Dst: fputs
      Src: /src/core/tests/acceptance/fakesyslog.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - priority
    - message
    - ap
    argTypes:
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: vsyslog
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 0
    functionsReached:
    - msgheader
    - print_priority
    - fputs
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void vsyslog(int priority, const char *message, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/tests/acceptance/fakesyslog.c:182,1
    - Dst: vsyslog
      Src: /src/core/tests/acceptance/fakesyslog.c:183,1
    - Dst: va_end
      Src: /src/core/tests/acceptance/fakesyslog.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - priority
    - message
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: syslog
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 1
    functionsReached:
    - va_end
    - vsyslog
    - va_start
    linkageType: ''
    returnType: void
    signature: void syslog(int priority, const char *message, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msgheader
      Src: /src/core/tests/acceptance/fakesyslog.c:191,1
    - Dst: fputs
      Src: /src/core/tests/acceptance/fakesyslog.c:192,1
    - Dst: print_mask
      Src: /src/core/tests/acceptance/fakesyslog.c:193,1
    - Dst: fputs
      Src: /src/core/tests/acceptance/fakesyslog.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - maskpri
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: setlogmask
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 0
    functionsReached:
    - msgheader
    - fputs
    - print_mask
    linkageType: ''
    returnType: int
    signature: int setlogmask(int maskpri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msgheader
      Src: /src/core/tests/acceptance/fakesyslog.c:200,1
    - Dst: fputs
      Src: /src/core/tests/acceptance/fakesyslog.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: closelog
    functionSourceFile: /src/core/tests/acceptance/fakesyslog.c
    functionUses: 0
    functionsReached:
    - msgheader
    - fputs
    linkageType: ''
    returnType: void
    signature: void closelog(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - addr
    - len
    - type
    argTypes:
    - void*
    - socklen_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: gethostbyaddr
    functionSourceFile: /src/core/tests/acceptance/dnswrapper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct hostent
    signature: struct hostent *gethostbyaddr(const void *addr, socklen_t len, int
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/tests/acceptance/no_fds.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: usage
    functionSourceFile: /src/core/tests/acceptance/no_fds.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetHandleInformation
      Src: /src/core/tests/acceptance/no_fds.c:42,1
    - Dst: _get_osfhandle
      Src: /src/core/tests/acceptance/no_fds.c:42,1
    - Dst: fcntl
      Src: /src/core/tests/acceptance/no_fds.c:44,1
    - Dst: fcntl
      Src: /src/core/tests/acceptance/no_fds.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: close_on_exec
    functionSourceFile: /src/core/tests/acceptance/no_fds.c
    functionUses: 0
    functionsReached:
    - SetHandleInformation
    - fcntl
    - _get_osfhandle
    linkageType: ''
    returnType: void
    signature: void close_on_exec(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/acceptance/no_fds.c:57,1
    - Dst: strcmp
      Src: /src/core/tests/acceptance/no_fds.c:62,1
    - Dst: strcmp
      Src: /src/core/tests/acceptance/no_fds.c:62,1
    - Dst: usage
      Src: /src/core/tests/acceptance/no_fds.c:64,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/no_fds.c:69,1
    - Dst: usage
      Src: /src/core/tests/acceptance/no_fds.c:70,1
    - Dst: closefrom
      Src: /src/core/tests/acceptance/no_fds.c:79,1
    - Dst: close_on_exec
      Src: /src/core/tests/acceptance/no_fds.c:85,1
    - Dst: execvp
      Src: /src/core/tests/acceptance/no_fds.c:96,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/no_fds.c:98,1
    - Dst: GetErrorStr
      Src: /src/core/tests/acceptance/no_fds.c:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 101
    functionName: main
    functionSourceFile: /src/core/tests/acceptance/no_fds.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - closefrom
    - close_on_exec
    - strcmp
    - execvp
    - fprintf
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: Error
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Error(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - package
    argTypes:
    - Package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: SerializePackage
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - xasprintf
    linkageType: ''
    returnType: char
    signature: char *SerializePackage(Package *package)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - PackagePattern*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: SerializePackagePattern
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - xasprintf
    linkageType: ''
    returnType: char
    signature: char *SerializePackagePattern(PackagePattern *pattern)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/tests/acceptance/mock_package_manager.c:95,1
    - Dst: xstrdup
      Src: /src/core/tests/acceptance/mock_package_manager.c:97,1
    - Dst: strtok
      Src: /src/core/tests/acceptance/mock_package_manager.c:99,1
    - Dst: strtok
      Src: /src/core/tests/acceptance/mock_package_manager.c:100,1
    - Dst: strtok
      Src: /src/core/tests/acceptance/mock_package_manager.c:101,1
    - Dst: strcmp
      Src: /src/core/tests/acceptance/mock_package_manager.c:103,1
    - Dst: strcmp
      Src: /src/core/tests/acceptance/mock_package_manager.c:104,1
    - Dst: strcmp
      Src: /src/core/tests/acceptance/mock_package_manager.c:105,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:107,1
    - Dst: exit
      Src: /src/core/tests/acceptance/mock_package_manager.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - entry
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: DeserializePackage
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - exit
    - strtok
    - strcmp
    - xstrdup
    - fprintf
    linkageType: ''
    returnType: Package
    signature: Package *DeserializePackage(const char *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/acceptance/mock_package_manager.c:118,1
    - Dst: strcmp
      Src: /src/core/tests/acceptance/mock_package_manager.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: IsWildcard
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool IsWildcard(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/tests/acceptance/mock_package_manager.c:125,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:127,1
    - Dst: exit
      Src: /src/core/tests/acceptance/mock_package_manager.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: CheckWellformedness
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - strchr
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void CheckWellformedness(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/tests/acceptance/mock_package_manager.c:136,1
    - Dst: xstrdup
      Src: /src/core/tests/acceptance/mock_package_manager.c:138,1
    - Dst: xstrdup
      Src: /src/core/tests/acceptance/mock_package_manager.c:139,1
    - Dst: xstrdup
      Src: /src/core/tests/acceptance/mock_package_manager.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - name
    - version
    - arch
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: NewPackagePattern
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: PackagePattern
    signature: PackagePattern *NewPackagePattern(const char *name, const char *version,
      const char *arch)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/tests/acceptance/mock_package_manager.c:150,1
    - Dst: strtok
      Src: /src/core/tests/acceptance/mock_package_manager.c:152,1
    - Dst: IsWildcard
      Src: /src/core/tests/acceptance/mock_package_manager.c:154,1
    - Dst: CheckWellformedness
      Src: /src/core/tests/acceptance/mock_package_manager.c:158,1
    - Dst: strtok
      Src: /src/core/tests/acceptance/mock_package_manager.c:160,1
    - Dst: IsWildcard
      Src: /src/core/tests/acceptance/mock_package_manager.c:162,1
    - Dst: CheckWellformedness
      Src: /src/core/tests/acceptance/mock_package_manager.c:166,1
    - Dst: strtok
      Src: /src/core/tests/acceptance/mock_package_manager.c:168,1
    - Dst: IsWildcard
      Src: /src/core/tests/acceptance/mock_package_manager.c:174,1
    - Dst: CheckWellformedness
      Src: /src/core/tests/acceptance/mock_package_manager.c:178,1
    - Dst: strtok
      Src: /src/core/tests/acceptance/mock_package_manager.c:180,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:182,1
    - Dst: exit
      Src: /src/core/tests/acceptance/mock_package_manager.c:183,1
    - Dst: NewPackagePattern
      Src: /src/core/tests/acceptance/mock_package_manager.c:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - entry
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 187
    functionName: DeserializePackagePattern
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - exit
    - IsWildcard
    - strtok
    - CheckWellformedness
    - xstrdup
    - fprintf
    - NewPackagePattern
    linkageType: ''
    returnType: PackagePattern
    signature: PackagePattern *DeserializePackagePattern(const char *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/acceptance/mock_package_manager.c:193,1
    - Dst: SeqNew
      Src: /src/core/tests/acceptance/mock_package_manager.c:194,1
    - Dst: fscanf
      Src: /src/core/tests/acceptance/mock_package_manager.c:200,1
    - Dst: DeserializePackage
      Src: /src/core/tests/acceptance/mock_package_manager.c:202,1
    - Dst: SeqAppend
      Src: /src/core/tests/acceptance/mock_package_manager.c:204,1
    - Dst: fclose
      Src: /src/core/tests/acceptance/mock_package_manager.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - database_filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 211
    functionName: ReadPackageEntries
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - fscanf
    - fopen
    - DeserializePackage
    - SeqNew
    - fclose
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *ReadPackageEntries(const char *database_filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/acceptance/mock_package_manager.c:217,1
    - Dst: SeqLength
      Src: /src/core/tests/acceptance/mock_package_manager.c:219,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:221,1
    - Dst: SerializePackage
      Src: /src/core/tests/acceptance/mock_package_manager.c:221,1
    - Dst: SeqAt
      Src: /src/core/tests/acceptance/mock_package_manager.c:221,1
    - Dst: fclose
      Src: /src/core/tests/acceptance/mock_package_manager.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - database_filename
    - package_entries
    argTypes:
    - char*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: SavePackages
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - fopen
    - SerializePackage
    - fclose
    - fprintf
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void SavePackages(const char *database_filename, Seq *package_entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NewPackagePattern
      Src: /src/core/tests/acceptance/mock_package_manager.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: MatchAllVersions
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - NewPackagePattern
    linkageType: ''
    returnType: PackagePattern
    signature: PackagePattern *MatchAllVersions(const Package *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NewPackagePattern
      Src: /src/core/tests/acceptance/mock_package_manager.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: MatchSame
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - NewPackagePattern
    linkageType: ''
    returnType: PackagePattern
    signature: PackagePattern *MatchSame(const Package *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/acceptance/mock_package_manager.c:245,1
    - Dst: strcmp
      Src: /src/core/tests/acceptance/mock_package_manager.c:246,1
    - Dst: strcmp
      Src: /src/core/tests/acceptance/mock_package_manager.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PackagePattern*
    - Package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: MatchPackage
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool MatchPackage(PackagePattern *a, Package *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadPackageEntries
      Src: /src/core/tests/acceptance/mock_package_manager.c:254,1
    - Dst: SeqNew
      Src: /src/core/tests/acceptance/mock_package_manager.c:255,1
    - Dst: SeqLength
      Src: /src/core/tests/acceptance/mock_package_manager.c:257,1
    - Dst: SeqAt
      Src: /src/core/tests/acceptance/mock_package_manager.c:259,1
    - Dst: MatchPackage
      Src: /src/core/tests/acceptance/mock_package_manager.c:261,1
    - Dst: SeqAppend
      Src: /src/core/tests/acceptance/mock_package_manager.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - database_filename
    - pattern
    argTypes:
    - char*
    - PackagePattern*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 268
    functionName: FindPackages
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - ReadPackageEntries
    - SeqAppend
    - SeqNew
    - SeqLength
    - MatchPackage
    - SeqAt
    linkageType: ''
    returnType: Seq
    signature: Seq *FindPackages(const char *database_filename, PackagePattern *pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/tests/acceptance/mock_package_manager.c:274,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:276,1
    - Dst: SerializePackage
      Src: /src/core/tests/acceptance/mock_package_manager.c:276,1
    - Dst: SeqAt
      Src: /src/core/tests/acceptance/mock_package_manager.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - package_entries
    argTypes:
    - FILE*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: ShowPackages
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - SeqAt
    - SerializePackage
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ShowPackages(FILE *out, Seq *package_entries)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/acceptance/mock_package_manager.c:284,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:288,1
    - Dst: strerror
      Src: /src/core/tests/acceptance/mock_package_manager.c:288,1
    - Dst: exit
      Src: /src/core/tests/acceptance/mock_package_manager.c:289,1
    - Dst: fclose
      Src: /src/core/tests/acceptance/mock_package_manager.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db_file_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: ClearPackageList
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - exit
    - fopen
    - strerror
    - fclose
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ClearPackageList(const char *db_file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearPackageList
      Src: /src/core/tests/acceptance/mock_package_manager.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: ClearInstalledPackages
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - ClearPackageList
    linkageType: ''
    returnType: void
    signature: void ClearInstalledPackages(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearPackageList
      Src: /src/core/tests/acceptance/mock_package_manager.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: ClearAvailablePackages
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - ClearPackageList
    linkageType: ''
    returnType: void
    signature: void ClearAvailablePackages(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:312,1
    - Dst: SerializePackagePattern
      Src: /src/core/tests/acceptance/mock_package_manager.c:312,1
    - Dst: FindPackages
      Src: /src/core/tests/acceptance/mock_package_manager.c:314,1
    - Dst: SeqLength
      Src: /src/core/tests/acceptance/mock_package_manager.c:316,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:318,1
    - Dst: SerializePackagePattern
      Src: /src/core/tests/acceptance/mock_package_manager.c:318,1
    - Dst: exit
      Src: /src/core/tests/acceptance/mock_package_manager.c:319,1
    - Dst: SeqLength
      Src: /src/core/tests/acceptance/mock_package_manager.c:322,1
    - Dst: SeqAt
      Src: /src/core/tests/acceptance/mock_package_manager.c:324,1
    - Dst: MatchAllVersions
      Src: /src/core/tests/acceptance/mock_package_manager.c:326,1
    - Dst: SeqLength
      Src: /src/core/tests/acceptance/mock_package_manager.c:328,1
    - Dst: FindPackages
      Src: /src/core/tests/acceptance/mock_package_manager.c:328,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:330,1
    - Dst: SerializePackage
      Src: /src/core/tests/acceptance/mock_package_manager.c:330,1
    - Dst: exit
      Src: /src/core/tests/acceptance/mock_package_manager.c:331,1
    - Dst: ReadPackageEntries
      Src: /src/core/tests/acceptance/mock_package_manager.c:335,1
    - Dst: SeqLength
      Src: /src/core/tests/acceptance/mock_package_manager.c:337,1
    - Dst: SeqAt
      Src: /src/core/tests/acceptance/mock_package_manager.c:339,1
    - Dst: SeqAppend
      Src: /src/core/tests/acceptance/mock_package_manager.c:341,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:342,1
    - Dst: SerializePackage
      Src: /src/core/tests/acceptance/mock_package_manager.c:342,1
    - Dst: SavePackages
      Src: /src/core/tests/acceptance/mock_package_manager.c:345,1
    - Dst: exit
      Src: /src/core/tests/acceptance/mock_package_manager.c:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - PackagePattern*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 347
    functionName: AddPackage
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - exit
    - FindPackages
    - ReadPackageEntries
    - SavePackages
    - SerializePackage
    - SerializePackagePattern
    - SeqAppend
    - fprintf
    - SeqLength
    - MatchAllVersions
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void AddPackage(PackagePattern *pattern)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeserializePackage
      Src: /src/core/tests/acceptance/mock_package_manager.c:353,1
    - Dst: MatchSame
      Src: /src/core/tests/acceptance/mock_package_manager.c:354,1
    - Dst: SeqLength
      Src: /src/core/tests/acceptance/mock_package_manager.c:356,1
    - Dst: FindPackages
      Src: /src/core/tests/acceptance/mock_package_manager.c:356,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:358,1
    - Dst: SerializePackage
      Src: /src/core/tests/acceptance/mock_package_manager.c:358,1
    - Dst: ReadPackageEntries
      Src: /src/core/tests/acceptance/mock_package_manager.c:362,1
    - Dst: SeqAppend
      Src: /src/core/tests/acceptance/mock_package_manager.c:364,1
    - Dst: SavePackages
      Src: /src/core/tests/acceptance/mock_package_manager.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 366
    functionName: PopulateAvailable
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - ReadPackageEntries
    - FindPackages
    - SavePackages
    - SerializePackage
    - DeserializePackage
    - MatchSame
    - fprintf
    - SeqLength
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void PopulateAvailable(const char *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: InitializeWindows
      Src: /src/core/tests/acceptance/mock_package_manager.c:377,1
    - Dst: getenv
      Src: /src/core/tests/acceptance/mock_package_manager.c:380,1
    - Dst: getenv
      Src: /src/core/tests/acceptance/mock_package_manager.c:381,1
    - Dst: fprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:385,1
    - Dst: xsnprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:390,1
    - Dst: xsnprintf
      Src: /src/core/tests/acceptance/mock_package_manager.c:392,1
    - Dst: getopt_long
      Src: /src/core/tests/acceptance/mock_package_manager.c:395,1
    - Dst: ClearInstalledPackages
      Src: /src/core/tests/acceptance/mock_package_manager.c:402,1
    - Dst: ClearAvailablePackages
      Src: /src/core/tests/acceptance/mock_package_manager.c:406,1
    - Dst: ReadPackageEntries
      Src: /src/core/tests/acceptance/mock_package_manager.c:411,1
    - Dst: ShowPackages
      Src: /src/core/tests/acceptance/mock_package_manager.c:412,1
    - Dst: ReadPackageEntries
      Src: /src/core/tests/acceptance/mock_package_manager.c:418,1
    - Dst: ShowPackages
      Src: /src/core/tests/acceptance/mock_package_manager.c:419,1
    - Dst: DeserializePackagePattern
      Src: /src/core/tests/acceptance/mock_package_manager.c:424,1
    - Dst: AddPackage
      Src: /src/core/tests/acceptance/mock_package_manager.c:425,1
    - Dst: PopulateAvailable
      Src: /src/core/tests/acceptance/mock_package_manager.c:429,1
    - Dst: FileWriter
      Src: /src/core/tests/acceptance/mock_package_manager.c:454,1
    - Dst: WriterWriteHelp
      Src: /src/core/tests/acceptance/mock_package_manager.c:455,1
    - Dst: FileWriterDetach
      Src: /src/core/tests/acceptance/mock_package_manager.c:456,1
    - Dst: exit
      Src: /src/core/tests/acceptance/mock_package_manager.c:458,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 464
    functionName: main
    functionSourceFile: /src/core/tests/acceptance/mock_package_manager.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - ReadPackageEntries
    - exit
    - getenv
    - WriterWriteHelp
    - ClearAvailablePackages
    - AddPackage
    - xsnprintf
    - ShowPackages
    - fprintf
    - ClearInstalledPackages
    - InitializeWindows
    - getopt_long
    - FileWriterDetach
    - PopulateAvailable
    - DeserializePackagePattern
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getc
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:6,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - stream
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 8
    functionName: eatline
    functionSourceFile: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c
    functionUses: 0
    functionsReached:
    - getc
    linkageType: ''
    returnType: void
    signature: void eatline(FILE *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:12,1
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:13,1
    - Dst: eatline
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:15,1
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:17,1
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:18,1
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:19,1
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:20,1
    - Dst: eatline
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:22,1
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:24,1
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:25,1
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:26,1
    - Dst: printf
      Src: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 29
    functionName: main
    functionSourceFile: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c
    functionUses: 0
    functionsReached:
    - eatline
    - printf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COND_SEND
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:60,1
    - Dst: COND_RECV
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:61,1
    - Dst: COND_SEND
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:62,1
    - Dst: COND_RECV
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:63,1
    - Dst: COND_SEND
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:64,1
    - Dst: COND_RECV
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:65,1
    - Dst: COND_SEND
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:66,1
    - Dst: COND_RECV
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:67,1
    - Dst: COND_SEND
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:68,1
    - Dst: COND_RECV
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:71,1
    - Dst: memcmp
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:72,1
    - Dst: memcmp
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:73,1
    - Dst: COND_SEND
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:78,1
    - Dst: COND_RECV
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:79,1
    - Dst: COND_SEND
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:80,1
    - Dst: cf_closesocket
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:85,1
    - Dst: free
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 89
    functionName: FeedSmtpDirectives
    functionSourceFile: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c
    functionUses: 0
    functionsReached:
    - COND_RECV
    - cf_closesocket
    - memcmp
    - free
    - COND_SEND
    linkageType: ''
    returnType: void
    signature: void *FeedSmtpDirectives(void *data)
  - 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: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: COND_SEND
    functionSourceFile: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_SEND(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: COND_RECV
    functionSourceFile: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_RECV(X)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:94,1
    - Dst: xmalloc
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:99,1
    - Dst: pthread_attr_init
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:103,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:104,1
    - Dst: pthread_create
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:106,1
    - Dst: pthread_attr_destroy
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:107,1
    - Dst: free
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:111,1
    - Dst: cf_closesocket
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:112,1
    - Dst: cf_closesocket
      Src: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ExecConfig *config
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 118
    functionName: ConnectToSmtpSocket
    functionSourceFile: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c
    functionUses: 0
    functionsReached:
    - cf_closesocket
    - pthread_create
    - pthread_attr_init
    - pthread_attr_destroy
    - pthread_attr_setdetachstate
    - xmalloc
    - free
    - socketpair
    linkageType: ''
    returnType: int
    signature: int ConnectToSmtpSocket(ARG_UNUSED const ExecConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OatHash
      Src: /src/core/tests/acceptance/02_classes/01_basic/027.c:22,1
    - Dst: strncpy
      Src: /src/core/tests/acceptance/02_classes/01_basic/027.c:29,1
    - Dst: malloc
      Src: /src/core/tests/acceptance/02_classes/01_basic/027.c:29,1
    - Dst: printf
      Src: /src/core/tests/acceptance/02_classes/01_basic/027.c:32,1
    - Dst: printf
      Src: /src/core/tests/acceptance/02_classes/01_basic/027.c:35,1
    - Dst: printf
      Src: /src/core/tests/acceptance/02_classes/01_basic/027.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 38
    functionName: main
    functionSourceFile: /src/core/tests/acceptance/02_classes/01_basic/027.c
    functionUses: 0
    functionsReached:
    - printf
    - malloc
    - OatHash
    - strncpy
    linkageType: ''
    returnType: void
    signature: void main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/tests/acceptance/02_classes/01_basic/027.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: OatHash
    functionSourceFile: /src/core/tests/acceptance/02_classes/01_basic/027.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int OatHash(char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c:23,1
    - Dst: isalnum
      Src: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c:23,1
    - Dst: OatHash
      Src: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c:28,1
    - Dst: strncpy
      Src: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c:34,1
    - Dst: malloc
      Src: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c:34,1
    - Dst: printf
      Src: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c:38,1
    - Dst: printf
      Src: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c:41,1
    - Dst: printf
      Src: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c:43,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 44
    functionName: main
    functionSourceFile: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c
    functionUses: 0
    functionsReached:
    - strncpy
    - isalnum
    - printf
    - malloc
    - OatHash
    linkageType: ''
    returnType: void
    signature: void main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: OatHash
    functionSourceFile: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c
    functionUses: 2
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int OatHash(char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dbh
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: DBHasStr
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBHasStr(dbh, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dbh
    - ','
    - k
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: DBPutStr
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBPutStr(dbh, k, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dbh
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: DBGetStr
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBGetStr(dbh, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/tests/unit/lastseen_test.c:35,1
    - Dst: assert
      Src: /src/core/tests/unit/lastseen_test.c:36,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/lastseen_test.c:38,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/lastseen_test.c:39,1
    - Dst: putenv
      Src: /src/core/tests/unit/lastseen_test.c:40,1
    - Dst: mkdir
      Src: /src/core/tests/unit/lastseen_test.c:41,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/lastseen_test.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (workdir - 1 && workdir[0] == '/')
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/core/tests/unit/lastseen_test.c
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: tests_setup
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 3
    functionsReached:
    - mkdtemp
    - assert
    - mkdir
    - GetStateDir
    - putenv
    - strchr
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/lastseen_test.c:47,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/lastseen_test.c:47,1
    - Dst: system
      Src: /src/core/tests/unit/lastseen_test.c:48,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/lastseen_test.c:49,1
    - Dst: GetWorkDir
      Src: /src/core/tests/unit/lastseen_test.c:49,1
    - Dst: system
      Src: /src/core/tests/unit/lastseen_test.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - GetStateDir
    - GetWorkDir
    - xsnprintf
    - system
    linkageType: ''
    returnType: void
    signature: void tests_teardown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/lastseen_test.c:57,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/lastseen_test.c:57,1
    - Dst: system
      Src: /src/core/tests/unit/lastseen_test.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: setup
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 3
    functionsReached:
    - GetStateDir
    - xsnprintf
    - system
    linkageType: ''
    returnType: void
    signature: void setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_test.c:63,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:65,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:71,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/lastseen_test.c:71,1
    - Dst: assert_false
      Src: /src/core/tests/unit/lastseen_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:74,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_test.c:75,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_test.c:76,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_test.c:77,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:80,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/lastseen_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:83,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/lastseen_test.c:83,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:84,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:87,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/lastseen_test.c:87,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:88,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 91
    functionName: test_newentry
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - assert_double_close
    - OpenDB
    - UpdateLastSawHost
    - ReadDB
    - assert_string_equal
    - CloseDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_newentry(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_test.c:95,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:97,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:98,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:104,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/lastseen_test.c:104,1
    - Dst: assert_false
      Src: /src/core/tests/unit/lastseen_test.c:106,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:107,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_test.c:108,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_test.c:109,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_test.c:110,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_test.c:111,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: test_update
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - assert_double_close
    - OpenDB
    - UpdateLastSawHost
    - ReadDB
    - CloseDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_update(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_test.c:118,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:120,1
    - Dst: HostkeyToAddress
      Src: /src/core/tests/unit/lastseen_test.c:121,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:122,1
    - Dst: free
      Src: /src/core/tests/unit/lastseen_test.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: test_HostkeyToAddress
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - HostkeyToAddress
    - UpdateLastSawHost
    - assert_string_equal
    - free
    - setup
    linkageType: ''
    returnType: void
    signature: void test_HostkeyToAddress(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_test.c:128,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:132,1
    - Dst: Address2Hostkey
      Src: /src/core/tests/unit/lastseen_test.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: test_reverse_missing
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - setup
    - Address2Hostkey
    linkageType: ''
    returnType: void
    signature: void test_reverse_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_test.c:137,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:139,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_test.c:143,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:144,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/lastseen_test.c:144,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:144,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:149,1
    - Dst: Address2Hostkey
      Src: /src/core/tests/unit/lastseen_test.c:149,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:150,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:153,1
    - Dst: DBHasStr
      Src: /src/core/tests/unit/lastseen_test.c:153,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:154,1
    - Dst: DBHasStr
      Src: /src/core/tests/unit/lastseen_test.c:154,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:156,1
    - Dst: DBHasStr
      Src: /src/core/tests/unit/lastseen_test.c:156,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_test.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 159
    functionName: test_reverse_conflict
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - strlen
    - DBHasStr
    - OpenDB
    - Address2Hostkey
    - UpdateLastSawHost
    - assert_string_equal
    - CloseDB
    - WriteDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_reverse_conflict(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_test.c:163,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:165,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_test.c:168,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:170,1
    - Dst: DeleteDB
      Src: /src/core/tests/unit/lastseen_test.c:170,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:175,1
    - Dst: Address2Hostkey
      Src: /src/core/tests/unit/lastseen_test.c:175,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:178,1
    - Dst: DBHasStr
      Src: /src/core/tests/unit/lastseen_test.c:178,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:180,1
    - Dst: DBHasStr
      Src: /src/core/tests/unit/lastseen_test.c:180,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_test.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 183
    functionName: test_reverse_missing_forward
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DeleteDB
    - DBHasStr
    - OpenDB
    - Address2Hostkey
    - UpdateLastSawHost
    - CloseDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_reverse_missing_forward(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_test.c:187,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:189,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:190,1
    - Dst: DeleteDigestFromLastSeen
      Src: /src/core/tests/unit/lastseen_test.c:193,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_test.c:196,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:198,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:198,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:198,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:199,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:199,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:199,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:200,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:200,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:200,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:201,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:201,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:201,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_test.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 204
    functionName: test_remove
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - strlen
    - OpenDB
    - UpdateLastSawHost
    - DeleteDigestFromLastSeen
    - CloseDB
    - HasKeyDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_remove(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_test.c:208,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:210,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:211,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_test.c:214,1
    - Dst: assert_true
      Src: /src/core/tests/unit/lastseen_test.c:216,1
    - Dst: DeleteDB
      Src: /src/core/tests/unit/lastseen_test.c:216,1
    - Dst: assert_false
      Src: /src/core/tests/unit/lastseen_test.c:217,1
    - Dst: DeleteDigestFromLastSeen
      Src: /src/core/tests/unit/lastseen_test.c:217,1
    - Dst: assert_true
      Src: /src/core/tests/unit/lastseen_test.c:218,1
    - Dst: DeleteDigestFromLastSeen
      Src: /src/core/tests/unit/lastseen_test.c:218,1
    - Dst: assert_false
      Src: /src/core/tests/unit/lastseen_test.c:220,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:220,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:220,1
    - Dst: assert_false
      Src: /src/core/tests/unit/lastseen_test.c:221,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:221,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:221,1
    - Dst: assert_false
      Src: /src/core/tests/unit/lastseen_test.c:222,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:222,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:222,1
    - Dst: assert_false
      Src: /src/core/tests/unit/lastseen_test.c:223,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:223,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:223,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_test.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 226
    functionName: test_remove_no_a_entry
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - DeleteDB
    - strlen
    - OpenDB
    - assert_true
    - UpdateLastSawHost
    - DeleteDigestFromLastSeen
    - CloseDB
    - HasKeyDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_remove_no_a_entry(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_test.c:230,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:232,1
    - Dst: UpdateLastSawHost
      Src: /src/core/tests/unit/lastseen_test.c:233,1
    - Dst: DeleteIpFromLastSeen
      Src: /src/core/tests/unit/lastseen_test.c:236,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_test.c:239,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:241,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:241,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:241,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:242,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:242,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:242,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:243,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:243,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:243,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:244,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_test.c:244,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_test.c:244,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_test.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 247
    functionName: test_remove_ip
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - DeleteIpFromLastSeen
    - assert_int_equal
    - strlen
    - OpenDB
    - UpdateLastSawHost
    - CloseDB
    - HasKeyDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_remove_ip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_test.c:255,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: begin
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - OpenDB
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_test.c:262,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/lastseen_test.c:266,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/lastseen_test.c:266,1
    - Dst: system
      Src: /src/core/tests/unit/lastseen_test.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: end
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 6
    functionsReached:
    - GetStateDir
    - xsnprintf
    - CloseDB
    - system
    linkageType: ''
    returnType: void
    signature: void end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:359,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:360,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:362,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:362,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:363,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:363,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:364,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:364,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:365,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:365,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:367,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 368
    functionName: test_consistent_1a
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IsLastSeenCoherent
    - DBGetStr
    - assert_string_equal
    - LastSaw1
    linkageType: ''
    returnType: void
    signature: void test_consistent_1a()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:371,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:371,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:372,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:372,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:373,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:373,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:374,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:374,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:376,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: test_consistent_1b
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_consistent_1b()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:380,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:381,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:383,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:383,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:384,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:384,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:385,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:385,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:387,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 388
    functionName: test_consistent_2a
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IsLastSeenCoherent
    - DBGetStr
    - assert_string_equal
    - LastSaw1
    linkageType: ''
    returnType: void
    signature: void test_consistent_2a()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:391,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:391,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:392,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:392,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:393,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:393,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:395,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 396
    functionName: test_consistent_2b
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_consistent_2b()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:399,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:400,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:402,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:402,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:403,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:403,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:404,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:404,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:406,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: test_consistent_3a
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IsLastSeenCoherent
    - DBGetStr
    - assert_string_equal
    - LastSaw1
    linkageType: ''
    returnType: void
    signature: void test_consistent_3a()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:410,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:410,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:411,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:411,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:412,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:412,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:414,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: test_consistent_3b
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_consistent_3b()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:418,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:419,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:420,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:422,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:422,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:423,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:423,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:424,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:424,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:425,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:425,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:427,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 428
    functionName: test_consistent_4a
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IsLastSeenCoherent
    - DBGetStr
    - assert_string_equal
    - LastSaw1
    linkageType: ''
    returnType: void
    signature: void test_consistent_4a()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:431,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:431,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:432,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:432,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:433,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:433,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:436,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:436,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:438,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: test_consistent_4b
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_consistent_4b()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:442,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:443,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:444,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:446,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:446,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:447,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:447,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:448,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:448,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:449,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:449,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:451,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 452
    functionName: test_consistent_5a
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IsLastSeenCoherent
    - DBGetStr
    - assert_string_equal
    - LastSaw1
    linkageType: ''
    returnType: void
    signature: void test_consistent_5a()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:455,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:455,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:456,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:456,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:457,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:457,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:458,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:458,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:460,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 461
    functionName: test_consistent_5b
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_consistent_5b()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:464,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:465,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:466,1
    - Dst: LastSaw1
      Src: /src/core/tests/unit/lastseen_test.c:467,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:469,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:469,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:470,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:470,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:471,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:471,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_test.c:472,1
    - Dst: DBGetStr
      Src: /src/core/tests/unit/lastseen_test.c:472,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:474,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 475
    functionName: test_consistent_6a
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IsLastSeenCoherent
    - DBGetStr
    - assert_string_equal
    - LastSaw1
    linkageType: ''
    returnType: void
    signature: void test_consistent_6a()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:478,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:478,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:479,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:479,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:480,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:480,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:481,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:481,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:483,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 484
    functionName: test_consistent_6b
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_consistent_6b()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:508,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:508,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:509,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:509,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:510,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:510,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:511,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:511,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:513,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 514
    functionName: test_consistent_7b
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_consistent_7b()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:563,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:563,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:565,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: test_inconsistent_1
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_inconsistent_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:569,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:569,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:570,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:570,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:571,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:571,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:573,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 574
    functionName: test_inconsistent_2
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_inconsistent_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:577,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:577,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:579,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: test_inconsistent_3
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_inconsistent_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:583,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:583,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:584,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:584,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:585,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:585,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:587,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 588
    functionName: test_inconsistent_4
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_inconsistent_4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:591,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:591,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:592,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:592,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:594,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 595
    functionName: test_inconsistent_5
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_inconsistent_5()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:598,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:598,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:599,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:599,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:600,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:600,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:601,1
    - Dst: DBPutStr
      Src: /src/core/tests/unit/lastseen_test.c:601,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_test.c:603,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/tests/unit/lastseen_test.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 604
    functionName: test_inconsistent_6
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBPutStr
    - IsLastSeenCoherent
    linkageType: ''
    returnType: void
    signature: void test_inconsistent_6()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tests_setup
      Src: /src/core/tests/unit/lastseen_test.c:615,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_test.c:619,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_test.c:620,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_test.c:621,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_test.c:622,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_test.c:623,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_test.c:624,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_test.c:625,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_test.c:626,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_test.c:627,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:629,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:630,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:631,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:632,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:633,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:634,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:635,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:636,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:637,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:638,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:639,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:640,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:642,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:643,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:644,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:645,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:646,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:647,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/lastseen_test.c:648,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/lastseen_test.c:651,1
    - Dst: run_tests
      Src: /src/core/tests/unit/lastseen_test.c:652,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/lastseen_test.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 657
    functionName: main
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - unit_test
    - unit_test_setup_teardown
    - run_tests
    - tests_teardown
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/lastseen_test.c:663,1
    - Dst: exit
      Src: /src/core/tests/unit/lastseen_test.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: FatalError
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 1
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: void FatalError(ARG_UNUSED char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/lastseen_test.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - dst_size
    - digest
    - HashMethod
    - use_prefix
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 674
    functionName: HashPrintSafe
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: char
    signature: "char *HashPrintSafe(ARG_UNUSED char *dst, ARG_UNUSED size_t dst_size,\n
      \                   ARG_UNUSED const unsigned char *digest,\n                    ARG_UNUSED
      HashMethod type, ARG_UNUSED bool use_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/lastseen_test.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - digest
    - HashMethod
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED unsigned[]
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 681
    functionName: HashPubKey
    functionSourceFile: /src/core/tests/unit/lastseen_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: "void HashPubKey(ARG_UNUSED const RSA *key,\n                ARG_UNUSED
      unsigned char digest[EVP_MAX_MD_SIZE + 1],\n                ARG_UNUSED HashMethod
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/tests/unit/expand_test.c:11,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:12,1
    - Dst: ExtractScalarPrefix
      Src: /src/core/tests/unit/expand_test.c:12,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:13,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:13,1
    - Dst: BufferClear
      Src: /src/core/tests/unit/expand_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:16,1
    - Dst: ExtractScalarPrefix
      Src: /src/core/tests/unit/expand_test.c:16,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:17,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:17,1
    - Dst: BufferClear
      Src: /src/core/tests/unit/expand_test.c:19,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:20,1
    - Dst: ExtractScalarPrefix
      Src: /src/core/tests/unit/expand_test.c:20,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:21,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:21,1
    - Dst: BufferClear
      Src: /src/core/tests/unit/expand_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:24,1
    - Dst: ExtractScalarPrefix
      Src: /src/core/tests/unit/expand_test.c:24,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:25,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:25,1
    - Dst: BufferDestroy
      Src: /src/core/tests/unit/expand_test.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 28
    functionName: test_extract_scalar_prefix
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_int_equal
    - BufferDestroy
    - ExtractScalarPrefix
    - BufferClear
    - assert_string_equal
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_extract_scalar_prefix()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/tests/unit/expand_test.c:32,1
    - Dst: strlen
      Src: /src/core/tests/unit/expand_test.c:33,1
    - Dst: ExtractScalarReference
      Src: /src/core/tests/unit/expand_test.c:35,1
    - Dst: assert_true
      Src: /src/core/tests/unit/expand_test.c:36,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:37,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:37,1
    - Dst: BufferClear
      Src: /src/core/tests/unit/expand_test.c:39,1
    - Dst: ExtractScalarReference
      Src: /src/core/tests/unit/expand_test.c:40,1
    - Dst: assert_true
      Src: /src/core/tests/unit/expand_test.c:41,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:42,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:42,1
    - Dst: BufferDestroy
      Src: /src/core/tests/unit/expand_test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - scalar
    - expect_success
    - outer
    - inner
    argTypes:
    - char*
    - bool
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: test_extract_reference_
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - strlen
    - assert_true
    - ExtractScalarReference
    - BufferClear
    - assert_string_equal
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_extract_reference_(const char *scalar, bool expect_success,
      const char *outer, const char *inner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:49,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:50,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:51,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:52,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:53,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:54,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:55,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:56,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:57,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:58,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:60,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:61,1
    - Dst: test_extract_reference_
      Src: /src/core/tests/unit/expand_test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: test_extract_reference
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - test_extract_reference_
    linkageType: ''
    returnType: void
    signature: void test_extract_reference(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/expand_test.c:67,1
    - Dst: IsNakedVar
      Src: /src/core/tests/unit/expand_test.c:67,1
    - Dst: assert_true
      Src: /src/core/tests/unit/expand_test.c:68,1
    - Dst: IsNakedVar
      Src: /src/core/tests/unit/expand_test.c:68,1
    - Dst: assert_true
      Src: /src/core/tests/unit/expand_test.c:69,1
    - Dst: IsNakedVar
      Src: /src/core/tests/unit/expand_test.c:69,1
    - Dst: assert_false
      Src: /src/core/tests/unit/expand_test.c:71,1
    - Dst: IsNakedVar
      Src: /src/core/tests/unit/expand_test.c:71,1
    - Dst: assert_false
      Src: /src/core/tests/unit/expand_test.c:72,1
    - Dst: IsNakedVar
      Src: /src/core/tests/unit/expand_test.c:72,1
    - Dst: assert_false
      Src: /src/core/tests/unit/expand_test.c:73,1
    - Dst: IsNakedVar
      Src: /src/core/tests/unit/expand_test.c:73,1
    - Dst: assert_false
      Src: /src/core/tests/unit/expand_test.c:74,1
    - Dst: IsNakedVar
      Src: /src/core/tests/unit/expand_test.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: test_isnakedvar
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - IsNakedVar
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_isnakedvar()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyNew
      Src: /src/core/tests/unit/expand_test.c:83,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/expand_test.c:84,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/tests/unit/expand_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:91,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:91,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:92,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:93,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:93,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/expand_test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: test_map_iterators_from_rval_empty
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - assert_int_equal
    - PolicyNew
    - PolicyAppendBundle
    - MapIteratorsFromRval
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_map_iterators_from_rval_empty(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyNew
      Src: /src/core/tests/unit/expand_test.c:101,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/expand_test.c:102,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/tests/unit/expand_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:109,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:110,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:110,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:111,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:111,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/expand_test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 114
    functionName: test_map_iterators_from_rval_literal
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - assert_int_equal
    - PolicyNew
    - PolicyAppendBundle
    - MapIteratorsFromRval
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_map_iterators_from_rval_literal(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyNew
      Src: /src/core/tests/unit/expand_test.c:119,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/expand_test.c:120,1
    - Dst: RlistAppend
      Src: /src/core/tests/unit/expand_test.c:124,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:125,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:127,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:129,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:130,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/tests/unit/expand_test.c:133,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/tests/unit/expand_test.c:139,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:141,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:141,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:142,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/expand_test.c:142,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:143,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:143,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:144,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:144,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:146,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/expand_test.c:153,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/tests/unit/expand_test.c:154,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:156,1
    - Dst: free
      Src: /src/core/tests/unit/expand_test.c:157,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:159,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:159,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:160,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/expand_test.c:160,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:161,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:161,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:162,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:162,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:164,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/expand_test.c:171,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/tests/unit/expand_test.c:172,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:174,1
    - Dst: free
      Src: /src/core/tests/unit/expand_test.c:175,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:177,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:177,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:178,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/expand_test.c:178,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:179,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:179,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:180,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:180,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:182,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/expand_test.c:185,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/expand_test.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 187
    functionName: test_map_iterators_from_rval_naked_list_var
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - RlistScalarValue
    - PolicyDestroy
    - EvalContextStackPushBundleFrame
    - assert_int_equal
    - PolicyNew
    - EvalContextStackPopFrame
    - RlistAppend
    - VarRefDestroy
    - EvalContextVariablePut
    - VarRefParse
    - RlistDestroy
    - assert_string_equal
    - PolicyAppendBundle
    - MapIteratorsFromRval
    - xstrdup
    - free
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_map_iterators_from_rval_naked_list_var(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyNew
      Src: /src/core/tests/unit/expand_test.c:192,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/expand_test.c:193,1
    - Dst: RlistAppend
      Src: /src/core/tests/unit/expand_test.c:197,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:198,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:200,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:202,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:203,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/tests/unit/expand_test.c:206,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/tests/unit/expand_test.c:212,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:214,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:214,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:215,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/expand_test.c:215,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:216,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:216,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:217,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:217,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:219,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/expand_test.c:226,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/tests/unit/expand_test.c:227,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:229,1
    - Dst: free
      Src: /src/core/tests/unit/expand_test.c:230,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:232,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:232,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:233,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/expand_test.c:233,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:234,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:234,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:235,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:235,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:237,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/expand_test.c:244,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/tests/unit/expand_test.c:245,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:247,1
    - Dst: free
      Src: /src/core/tests/unit/expand_test.c:248,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:250,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:250,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:251,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/expand_test.c:251,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:252,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:252,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:253,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:253,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:255,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/expand_test.c:258,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/expand_test.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 260
    functionName: test_map_iterators_from_rval_naked_list_var_namespace
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - RlistScalarValue
    - PolicyDestroy
    - EvalContextStackPushBundleFrame
    - assert_int_equal
    - PolicyNew
    - EvalContextStackPopFrame
    - RlistAppend
    - VarRefDestroy
    - EvalContextVariablePut
    - VarRefParse
    - RlistDestroy
    - assert_string_equal
    - PolicyAppendBundle
    - MapIteratorsFromRval
    - xstrdup
    - free
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_map_iterators_from_rval_naked_list_var_namespace(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:266,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:267,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:268,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:271,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:272,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:273,1
    - Dst: BufferNew
      Src: /src/core/tests/unit/expand_test.c:276,1
    - Dst: ExpandScalar
      Src: /src/core/tests/unit/expand_test.c:277,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:279,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:279,1
    - Dst: BufferDestroy
      Src: /src/core/tests/unit/expand_test.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 281
    functionName: test_expand_scalar_two_scalars_concat
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - ExpandScalar
    - VarRefDestroy
    - EvalContextVariablePut
    - VarRefParse
    - assert_string_equal
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_expand_scalar_two_scalars_concat(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:287,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:288,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:289,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:292,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:293,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:294,1
    - Dst: BufferNew
      Src: /src/core/tests/unit/expand_test.c:297,1
    - Dst: ExpandScalar
      Src: /src/core/tests/unit/expand_test.c:298,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:300,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:300,1
    - Dst: BufferDestroy
      Src: /src/core/tests/unit/expand_test.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 302
    functionName: test_expand_scalar_two_scalars_nested
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - ExpandScalar
    - VarRefDestroy
    - EvalContextVariablePut
    - VarRefParse
    - assert_string_equal
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_expand_scalar_two_scalars_nested(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:308,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:309,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:310,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:313,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:314,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:315,1
    - Dst: BufferNew
      Src: /src/core/tests/unit/expand_test.c:318,1
    - Dst: ExpandScalar
      Src: /src/core/tests/unit/expand_test.c:319,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:321,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:321,1
    - Dst: BufferDestroy
      Src: /src/core/tests/unit/expand_test.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 323
    functionName: test_expand_scalar_array_concat
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - ExpandScalar
    - VarRefDestroy
    - EvalContextVariablePut
    - VarRefParse
    - assert_string_equal
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_expand_scalar_array_concat(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:329,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:330,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:331,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:334,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:335,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:336,1
    - Dst: BufferNew
      Src: /src/core/tests/unit/expand_test.c:339,1
    - Dst: ExpandScalar
      Src: /src/core/tests/unit/expand_test.c:340,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:342,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:342,1
    - Dst: BufferDestroy
      Src: /src/core/tests/unit/expand_test.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 344
    functionName: test_expand_scalar_array_with_scalar_arg
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - ExpandScalar
    - VarRefDestroy
    - EvalContextVariablePut
    - VarRefParse
    - assert_string_equal
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_expand_scalar_array_with_scalar_arg(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/tests/unit/expand_test.c:350,1
    - Dst: ExpandScalar
      Src: /src/core/tests/unit/expand_test.c:351,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:353,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:353,1
    - Dst: BufferDestroy
      Src: /src/core/tests/unit/expand_test.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 355
    functionName: test_expand_scalar_undefined
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - ExpandScalar
    - assert_string_equal
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_expand_scalar_undefined(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:361,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:362,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:363,1
    - Dst: BufferNew
      Src: /src/core/tests/unit/expand_test.c:366,1
    - Dst: ExpandScalar
      Src: /src/core/tests/unit/expand_test.c:367,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:369,1
    - Dst: BufferData
      Src: /src/core/tests/unit/expand_test.c:369,1
    - Dst: BufferDestroy
      Src: /src/core/tests/unit/expand_test.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 371
    functionName: test_expand_scalar_nested_inner_undefined
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - ExpandScalar
    - VarRefDestroy
    - EvalContextVariablePut
    - VarRefParse
    - assert_string_equal
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_expand_scalar_nested_inner_undefined(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:377,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:378,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:379,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:382,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/expand_test.c:384,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:385,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:386,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:387,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/expand_test.c:391,1
    - Dst: ExpandList
      Src: /src/core/tests/unit/expand_test.c:393,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:395,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/expand_test.c:395,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:396,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/expand_test.c:396,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:398,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 400
    functionName: test_expand_list_nested
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - RlistScalarValue
    - assert_int_equal
    - RlistAppendScalar
    - ExpandList
    - VarRefDestroy
    - EvalContextVariablePut
    - RlistDestroy
    - VarRefParse
    - assert_string_equal
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_expand_list_nested(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/expand_test.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - EvalContext *ctx
    - pp
    - param
    argTypes:
    - ARG_UNUSED
    - Promise*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: actuator_expand_promise_array_with_scalar_arg
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult actuator_expand_promise_array_with_scalar_arg(\n    ARG_UNUSED
      EvalContext *ctx, const Promise *pp, ARG_UNUSED void *param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:413,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:414,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:415,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:418,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:419,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:420,1
    - Dst: PolicyNew
      Src: /src/core/tests/unit/expand_test.c:423,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/expand_test.c:424,1
    - Dst: NamespaceDefault
      Src: /src/core/tests/unit/expand_test.c:424,1
    - Dst: BundleAppendSection
      Src: /src/core/tests/unit/expand_test.c:425,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/tests/unit/expand_test.c:426,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/tests/unit/expand_test.c:428,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/tests/unit/expand_test.c:429,1
    - Dst: ExpandPromise
      Src: /src/core/tests/unit/expand_test.c:430,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/expand_test.c:431,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/expand_test.c:432,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/expand_test.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 435
    functionName: test_expand_promise_array_with_scalar_arg
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - NamespaceDefault
    - PolicyDestroy
    - BundleAppendSection
    - EvalContextStackPushBundleFrame
    - ExpandPromise
    - PolicyNew
    - BundleSectionAppendPromise
    - EvalContextStackPopFrame
    - VarRefDestroy
    - EvalContextVariablePut
    - EvalContextStackPushBundleSectionFrame
    - VarRefParse
    - PolicyAppendBundle
    linkageType: ''
    returnType: void
    signature: void test_expand_promise_array_with_scalar_arg(void **state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/unit/expand_test.c:443,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:445,1
    - Dst: strcmp
      Src: /src/core/tests/unit/expand_test.c:448,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:450,1
    - Dst: fail
      Src: /src/core/tests/unit/expand_test.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - EvalContext *ctx
    - pp
    - param
    argTypes:
    - ARG_UNUSED
    - Promise*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 458
    functionName: actuator_expand_promise_slist
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - strcmp
    - fail
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult actuator_expand_promise_slist(\n    ARG_UNUSED EvalContext
      *ctx, const Promise *pp, ARG_UNUSED void *param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:466,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/expand_test.c:468,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/expand_test.c:469,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:471,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:473,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:474,1
    - Dst: PolicyNew
      Src: /src/core/tests/unit/expand_test.c:478,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/expand_test.c:479,1
    - Dst: NamespaceDefault
      Src: /src/core/tests/unit/expand_test.c:479,1
    - Dst: BundleAppendSection
      Src: /src/core/tests/unit/expand_test.c:480,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/tests/unit/expand_test.c:481,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/tests/unit/expand_test.c:483,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/tests/unit/expand_test.c:484,1
    - Dst: ExpandPromise
      Src: /src/core/tests/unit/expand_test.c:485,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/expand_test.c:486,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/expand_test.c:487,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:489,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/expand_test.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 492
    functionName: test_expand_promise_slist
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - NamespaceDefault
    - PolicyDestroy
    - BundleAppendSection
    - EvalContextStackPushBundleFrame
    - ExpandPromise
    - PolicyNew
    - RlistAppendScalar
    - BundleSectionAppendPromise
    - EvalContextStackPopFrame
    - assert_int_equal
    - VarRefDestroy
    - EvalContextVariablePut
    - EvalContextStackPushBundleSectionFrame
    - RlistDestroy
    - VarRefParse
    - PolicyAppendBundle
    linkageType: ''
    returnType: void
    signature: void test_expand_promise_slist(void **state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/unit/expand_test.c:498,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:500,1
    - Dst: strcmp
      Src: /src/core/tests/unit/expand_test.c:503,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:505,1
    - Dst: fprintf
      Src: /src/core/tests/unit/expand_test.c:510,1
    - Dst: fail
      Src: /src/core/tests/unit/expand_test.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - EvalContext *ctx
    - pp
    - param
    argTypes:
    - ARG_UNUSED
    - Promise*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 514
    functionName: actuator_expand_promise_array_with_slist_arg
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - fail
    - strcmp
    - fprintf
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult actuator_expand_promise_array_with_slist_arg(\n    ARG_UNUSED
      EvalContext *ctx, const Promise *pp, ARG_UNUSED void *param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:522,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/expand_test.c:524,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/expand_test.c:525,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:527,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/expand_test.c:529,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:530,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:534,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:535,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:536,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/expand_test.c:540,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/expand_test.c:541,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/expand_test.c:542,1
    - Dst: PolicyNew
      Src: /src/core/tests/unit/expand_test.c:546,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/expand_test.c:547,1
    - Dst: NamespaceDefault
      Src: /src/core/tests/unit/expand_test.c:547,1
    - Dst: BundleAppendSection
      Src: /src/core/tests/unit/expand_test.c:548,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/tests/unit/expand_test.c:549,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/tests/unit/expand_test.c:551,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/tests/unit/expand_test.c:552,1
    - Dst: ExpandPromise
      Src: /src/core/tests/unit/expand_test.c:553,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/expand_test.c:554,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/expand_test.c:555,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/expand_test.c:557,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/expand_test.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 560
    functionName: test_expand_promise_array_with_slist_arg
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - NamespaceDefault
    - PolicyDestroy
    - BundleAppendSection
    - EvalContextStackPushBundleFrame
    - ExpandPromise
    - PolicyNew
    - RlistAppendScalar
    - BundleSectionAppendPromise
    - EvalContextStackPopFrame
    - assert_int_equal
    - VarRefDestroy
    - EvalContextVariablePut
    - EvalContextStackPushBundleSectionFrame
    - RlistDestroy
    - VarRefParse
    - PolicyAppendBundle
    linkageType: ''
    returnType: void
    signature: void test_expand_promise_array_with_slist_arg(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/expand_test.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: test_setup
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - EvalContextNew
    linkageType: ''
    returnType: void
    signature: void test_setup(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/expand_test.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: test_teardown
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - EvalContextDestroy
    linkageType: ''
    returnType: void
    signature: void test_teardown(void **state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/expand_test.c:575,1
    - Dst: unit_test
      Src: /src/core/tests/unit/expand_test.c:578,1
    - Dst: unit_test
      Src: /src/core/tests/unit/expand_test.c:579,1
    - Dst: unit_test
      Src: /src/core/tests/unit/expand_test.c:580,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:582,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:583,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:584,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:585,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:587,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:588,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:589,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:590,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:591,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:592,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:593,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:594,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:595,1
    - Dst: unit_test_setup_teardown
      Src: /src/core/tests/unit/expand_test.c:596,1
    - Dst: run_tests
      Src: /src/core/tests/unit/expand_test.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 600
    functionName: main
    functionSourceFile: /src/core/tests/unit/expand_test.c
    functionUses: 0
    functionsReached:
    - run_tests
    - PRINT_TEST_BANNER
    - unit_test_setup_teardown
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:11,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:11,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:12,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:12,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:13,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:13,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:14,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:14,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:15,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:16,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:17,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:18,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:19,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:19,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:20,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:20,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:21,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:22,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:23,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:26,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:27,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:28,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:29,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:30,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:31,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:36,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:36,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:37,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:41,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:43,1
    - Dst: FindDollarParen
      Src: /src/core/tests/unit/iteration_test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 48
    functionName: test_FindDollarParen
    functionSourceFile: /src/core/tests/unit/iteration_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - FindDollarParen
    linkageType: ''
    returnType: void
    signature: void test_FindDollarParen(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:54,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:54,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:55,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:55,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:56,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:56,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:57,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:57,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:58,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:58,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:61,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:61,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:62,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:62,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:63,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:63,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:64,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:64,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:67,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:67,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:68,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:68,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:69,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:69,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:70,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:70,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:71,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:71,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:72,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:72,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:73,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:73,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:74,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:74,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:75,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:75,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:76,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:76,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:77,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:77,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:79,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:79,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:80,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:80,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:81,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:81,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:82,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:82,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:83,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:83,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:84,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:84,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:85,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:85,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:86,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:86,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:87,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:87,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:89,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:89,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:90,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:90,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:91,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:91,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:92,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:92,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:93,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:93,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:94,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:94,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:95,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:95,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:96,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:96,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:97,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:97,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:99,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:99,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:100,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:100,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:101,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:101,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:102,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:102,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:103,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:103,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:104,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:104,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:105,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:105,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:106,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:106,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:107,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:107,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:109,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:109,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:110,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:110,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:111,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:111,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:114,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:114,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:115,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:115,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:118,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:118,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:119,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:119,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:120,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:120,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:121,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:121,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:122,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:122,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:123,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:123,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:125,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:125,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:126,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:126,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:127,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:127,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:128,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:128,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:129,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:129,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:130,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:130,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:131,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:131,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:133,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:133,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:134,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:134,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:136,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:136,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:137,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:137,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:138,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:138,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:141,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:141,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:142,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:142,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:143,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:143,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:144,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:144,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:145,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:145,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:146,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:146,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:147,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:147,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:148,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:148,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:149,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:149,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:150,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:150,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:151,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:151,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:152,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:152,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:153,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:153,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:154,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:154,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:155,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:155,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:156,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:156,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:157,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:157,1
    - Dst: assert_false
      Src: /src/core/tests/unit/iteration_test.c:158,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:158,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:159,1
    - Dst: IsMangled
      Src: /src/core/tests/unit/iteration_test.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 160
    functionName: test_IsMangled
    functionSourceFile: /src/core/tests/unit/iteration_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_false
    - IsMangled
    linkageType: ''
    returnType: void
    signature: void test_IsMangled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/tests/unit/iteration_test.c:165,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/iteration_test.c:167,1
    - Dst: MangleVarRefString
      Src: /src/core/tests/unit/iteration_test.c:168,1
    - Dst: strlen
      Src: /src/core/tests/unit/iteration_test.c:168,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/iteration_test.c:169,1
    - Dst: free
      Src: /src/core/tests/unit/iteration_test.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - orig
    - expected
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: Mangle_TestHelper
    functionSourceFile: /src/core/tests/unit/iteration_test.c
    functionUses: 0
    functionsReached:
    - strlen
    - MangleVarRefString
    - printf
    - assert_string_equal
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void Mangle_TestHelper(const char *orig, const char *expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/tests/unit/iteration_test.c:175,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/iteration_test.c:177,1
    - Dst: MangleVarRefString
      Src: /src/core/tests/unit/iteration_test.c:178,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/iteration_test.c:179,1
    - Dst: free
      Src: /src/core/tests/unit/iteration_test.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - orig
    - orig_len
    - expected
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: Mangle_TestHelperWithLength1
    functionSourceFile: /src/core/tests/unit/iteration_test.c
    functionUses: 0
    functionsReached:
    - MangleVarRefString
    - printf
    - assert_string_equal
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: "void Mangle_TestHelperWithLength1(const char *orig, size_t orig_len,\n
      \                                        const char *expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/tests/unit/iteration_test.c:186,1
    - Dst: MangleVarRefString
      Src: /src/core/tests/unit/iteration_test.c:188,1
    - Dst: assert_memory_equal
      Src: /src/core/tests/unit/iteration_test.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - orig
    - orig_len
    - expected
    - expected_len
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: Mangle_TestHelperWithLength2
    functionSourceFile: /src/core/tests/unit/iteration_test.c
    functionUses: 0
    functionsReached:
    - MangleVarRefString
    - assert_memory_equal
    - printf
    linkageType: ''
    returnType: void
    signature: "void Mangle_TestHelperWithLength2(char *orig,           size_t orig_len,\n
      \                                        const char *expected, size_t expected_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:193,1
    - Dst: Mangle_TestHelperWithLength1
      Src: /src/core/tests/unit/iteration_test.c:194,1
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:196,1
    - Dst: Mangle_TestHelperWithLength1
      Src: /src/core/tests/unit/iteration_test.c:198,1
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:200,1
    - Dst: Mangle_TestHelperWithLength1
      Src: /src/core/tests/unit/iteration_test.c:202,1
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:204,1
    - Dst: Mangle_TestHelperWithLength1
      Src: /src/core/tests/unit/iteration_test.c:206,1
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:209,1
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:212,1
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:215,1
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:216,1
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:219,1
    - Dst: Mangle_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:220,1
    - Dst: Mangle_TestHelperWithLength2
      Src: /src/core/tests/unit/iteration_test.c:225,1
    - Dst: Mangle_TestHelperWithLength2
      Src: /src/core/tests/unit/iteration_test.c:226,1
    - Dst: Mangle_TestHelperWithLength2
      Src: /src/core/tests/unit/iteration_test.c:228,1
    - Dst: Mangle_TestHelperWithLength2
      Src: /src/core/tests/unit/iteration_test.c:229,1
    - Dst: Mangle_TestHelperWithLength2
      Src: /src/core/tests/unit/iteration_test.c:231,1
    - Dst: Mangle_TestHelperWithLength2
      Src: /src/core/tests/unit/iteration_test.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 233
    functionName: test_MangleVarRefString
    functionSourceFile: /src/core/tests/unit/iteration_test.c
    functionUses: 0
    functionsReached:
    - Mangle_TestHelper
    - Mangle_TestHelperWithLength2
    - Mangle_TestHelperWithLength1
    linkageType: ''
    returnType: void
    signature: void test_MangleVarRefString(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/iteration_test.c:244,1
    - Dst: PolicyNew
      Src: /src/core/tests/unit/iteration_test.c:245,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/iteration_test.c:246,1
    - Dst: BundleAppendSection
      Src: /src/core/tests/unit/iteration_test.c:248,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/tests/unit/iteration_test.c:249,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/tests/unit/iteration_test.c:252,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/tests/unit/iteration_test.c:253,1
    - Dst: PromiseIteratorNew
      Src: /src/core/tests/unit/iteration_test.c:254,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/iteration_test.c:255,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/tests/unit/iteration_test.c:260,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/iteration_test.c:261,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/iteration_test.c:264,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/tests/unit/iteration_test.c:266,1
    - Dst: EvalContextVariablePut
      Src: /src/core/tests/unit/iteration_test.c:267,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/iteration_test.c:270,1
    - Dst: printf
      Src: /src/core/tests/unit/iteration_test.c:274,1
    - Dst: PromiseIteratorPrepare
      Src: /src/core/tests/unit/iteration_test.c:275,1
    - Dst: assert_true
      Src: /src/core/tests/unit/iteration_test.c:278,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/iteration_test.c:280,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/iteration_test.c:281,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/iteration_test.c:285,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/iteration_test.c:286,1
    - Dst: free
      Src: /src/core/tests/unit/iteration_test.c:290,1
    - Dst: PromiseIteratorDestroy
      Src: /src/core/tests/unit/iteration_test.c:291,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/iteration_test.c:292,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/iteration_test.c:293,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/iteration_test.c:294,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/iteration_test.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - promiser
    - expected_wheels_num
    - expected_wheels
    argTypes:
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 296
    functionName: IteratorPrepare_TestHelper
    functionSourceFile: /src/core/tests/unit/iteration_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - VarRefParseFromBundle
    - EvalContextStackPopFrame
    - PromiseIteratorNew
    - VarRefDestroy
    - EvalContextStackPushBundleSectionFrame
    - SeqLength
    - free
    - BundleAppendSection
    - EvalContextStackPushBundleFrame
    - PolicyNew
    - EvalContextNew
    - assert_string_equal
    - xstrdup
    - PolicyAppendBundle
    - PromiseIteratorDestroy
    - SeqAt
    - EvalContextDestroy
    - BundleSectionAppendPromise
    - printf
    - EvalContextVariablePut
    - PromiseIteratorPrepare
    - assert_int_equal
    - assert_true
    linkageType: ''
    returnType: void
    signature: "void IteratorPrepare_TestHelper(\n    const char *promiser,\n    size_t
      expected_wheels_num,\n    const char **expected_wheels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:299,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:301,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:303,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:304,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:305,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:307,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:309,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:311,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:313,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:316,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:319,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:322,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:324,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:326,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:328,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:330,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:332,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:334,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:337,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:340,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:342,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:344,1
    - Dst: IteratorPrepare_TestHelper
      Src: /src/core/tests/unit/iteration_test.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 348
    functionName: test_PromiseIteratorPrepare
    functionSourceFile: /src/core/tests/unit/iteration_test.c
    functionUses: 0
    functionsReached:
    - IteratorPrepare_TestHelper
    linkageType: ''
    returnType: void
    signature: void test_PromiseIteratorPrepare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/iteration_test.c:354,1
    - Dst: unit_test
      Src: /src/core/tests/unit/iteration_test.c:357,1
    - Dst: unit_test
      Src: /src/core/tests/unit/iteration_test.c:358,1
    - Dst: unit_test
      Src: /src/core/tests/unit/iteration_test.c:359,1
    - Dst: unit_test
      Src: /src/core/tests/unit/iteration_test.c:360,1
    - Dst: run_tests
      Src: /src/core/tests/unit/iteration_test.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 366
    functionName: main
    functionSourceFile: /src/core/tests/unit/iteration_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/tests/unit/db_concurrent_test.c:18,1
    - Dst: assert
      Src: /src/core/tests/unit/db_concurrent_test.c:19,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/db_concurrent_test.c:21,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/db_concurrent_test.c:22,1
    - Dst: putenv
      Src: /src/core/tests/unit/db_concurrent_test.c:23,1
    - Dst: mkdir
      Src: /src/core/tests/unit/db_concurrent_test.c:24,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/db_concurrent_test.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (workdir - 1 && workdir[0] == '/')
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/core/tests/unit/db_concurrent_test.c
    constantsTouched: []
    func_position:
      end: 25
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 25
    functionName: tests_setup
    functionSourceFile: /src/core/tests/unit/db_concurrent_test.c
    functionUses: 4
    functionsReached:
    - mkdtemp
    - assert
    - mkdir
    - GetStateDir
    - putenv
    - strchr
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_concurrent_test.c:30,1
    - Dst: system
      Src: /src/core/tests/unit/db_concurrent_test.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/db_concurrent_test.c
    functionUses: 1
    functionsReached:
    - system
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_teardown(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_concurrent_test.c:72,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_concurrent_test.c:75,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_concurrent_test.c:76,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_concurrent_test.c:77,1
    - Dst: strlen
      Src: /src/core/tests/unit/db_concurrent_test.c:77,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_concurrent_test.c:80,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_concurrent_test.c:81,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_concurrent_test.c:85,1
    - Dst: strlen
      Src: /src/core/tests/unit/db_concurrent_test.c:85,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_concurrent_test.c:91,1
    - Dst: DeleteDB
      Src: /src/core/tests/unit/db_concurrent_test.c:92,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_concurrent_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_concurrent_test.c:97,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/db_concurrent_test.c:97,1
    - Dst: strlen
      Src: /src/core/tests/unit/db_concurrent_test.c:97,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_concurrent_test.c:98,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_concurrent_test.c:99,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/db_concurrent_test.c:99,1
    - Dst: strlen
      Src: /src/core/tests/unit/db_concurrent_test.c:99,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_concurrent_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_concurrent_test.c:101,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/db_concurrent_test.c:101,1
    - Dst: strlen
      Src: /src/core/tests/unit/db_concurrent_test.c:101,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_concurrent_test.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - arguments
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 105
    functionName: fct2
    functionSourceFile: /src/core/tests/unit/db_concurrent_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DeleteDB
    - strlen
    - OpenDB
    - HasKeyDB
    - xsnprintf
    - CloseDB
    - WriteDB
    linkageType: ''
    returnType: void
    signature: void *fct2(void *arguments)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/core/tests/unit/db_concurrent_test.c:115,1
    - Dst: pthread_join
      Src: /src/core/tests/unit/db_concurrent_test.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 121
    functionName: test_db_concurrent
    functionSourceFile: /src/core/tests/unit/db_concurrent_test.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - pthread_create
    linkageType: ''
    returnType: void
    signature: void test_db_concurrent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/db_concurrent_test.c:125,1
    - Dst: tests_setup
      Src: /src/core/tests/unit/db_concurrent_test.c:126,1
    - Dst: unit_test
      Src: /src/core/tests/unit/db_concurrent_test.c:130,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/db_concurrent_test.c:133,1
    - Dst: run_tests
      Src: /src/core/tests/unit/db_concurrent_test.c:134,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/db_concurrent_test.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: main
    functionSourceFile: /src/core/tests/unit/db_concurrent_test.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - unit_test
    - run_tests
    - tests_teardown
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/db_concurrent_test.c:144,1
    - Dst: exit
      Src: /src/core/tests/unit/db_concurrent_test.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: FatalError
    functionSourceFile: /src/core/tests/unit/db_concurrent_test.c
    functionUses: 1
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: void FatalError(ARG_UNUSED char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetUptimeMinutes
      Src: /src/core/tests/unit/sysinfo_test.c:12,1
    - Dst: time
      Src: /src/core/tests/unit/sysinfo_test.c:12,1
    - Dst: printf
      Src: /src/core/tests/unit/sysinfo_test.c:13,1
    - Dst: assert_in_range
      Src: /src/core/tests/unit/sysinfo_test.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 15
    functionName: test_uptime
    functionSourceFile: /src/core/tests/unit/sysinfo_test.c
    functionUses: 0
    functionsReached:
    - printf
    - GetUptimeMinutes
    - assert_in_range
    - time
    linkageType: ''
    returnType: void
    signature: void test_uptime(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:17,1
    - Dst: SeqNew
      Src: /src/core/tests/unit/sysinfo_test.c:19,1
    - Dst: FindNextInteger
      Src: /src/core/tests/unit/sysinfo_test.c:22,1
    - Dst: SeqAppend
      Src: /src/core/tests/unit/sysinfo_test.c:25,1
    - Dst: FindNextInteger
      Src: /src/core/tests/unit/sysinfo_test.c:29,1
    - Dst: SeqAppend
      Src: /src/core/tests/unit/sysinfo_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sysinfo_test.c:36,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/sysinfo_test.c:36,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sysinfo_test.c:39,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/sysinfo_test.c:39,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/sysinfo_test.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - str
    - expected
    - num_expected
    argTypes:
    - char*
    - char[][]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 43
    functionName: FindNextIntegerTestWrapper
    functionSourceFile: /src/core/tests/unit/sysinfo_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - FindNextInteger
    - SeqDestroy
    - SeqNew
    - KIBIBYTE
    - assert_string_equal
    - SeqLength
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void FindNextIntegerTestWrapper(char *str, char expected[][KIBIBYTE(1)],
      int num_expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:49,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:50,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:54,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:55,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:59,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:60,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:64,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:65,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:69,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:70,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:74,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:75,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:79,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:80,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:84,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:85,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:89,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:90,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:94,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:95,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:99,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:100,1
    - Dst: KIBIBYTE
      Src: /src/core/tests/unit/sysinfo_test.c:104,1
    - Dst: FindNextIntegerTestWrapper
      Src: /src/core/tests/unit/sysinfo_test.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 107
    functionName: test_find_next_integer
    functionSourceFile: /src/core/tests/unit/sysinfo_test.c
    functionUses: 0
    functionsReached:
    - FindNextIntegerTestWrapper
    - KIBIBYTE
    linkageType: ''
    returnType: void
    signature: void test_find_next_integer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/sysinfo_test.c:111,1
    - Dst: unit_test
      Src: /src/core/tests/unit/sysinfo_test.c:114,1
    - Dst: unit_test
      Src: /src/core/tests/unit/sysinfo_test.c:115,1
    - Dst: run_tests
      Src: /src/core/tests/unit/sysinfo_test.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: main
    functionSourceFile: /src/core/tests/unit/sysinfo_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/test.c:13,1
    - Dst: fgetpos
      Src: /src/core/tests/unit/test.c:13,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/test.c:15,1
    - Dst: fseek
      Src: /src/core/tests/unit/test.c:15,1
    - Dst: ftell
      Src: /src/core/tests/unit/test.c:16,1
    - Dst: assert_true
      Src: /src/core/tests/unit/test.c:17,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/test.c:19,1
    - Dst: fseek
      Src: /src/core/tests/unit/test.c:19,1
    - Dst: calloc
      Src: /src/core/tests/unit/test.c:21,1
    - Dst: fputs
      Src: /src/core/tests/unit/test.c:24,1
    - Dst: exit
      Src: /src/core/tests/unit/test.c:25,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/test.c:27,1
    - Dst: fread
      Src: /src/core/tests/unit/test.c:27,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/test.c:29,1
    - Dst: fsetpos
      Src: /src/core/tests/unit/test.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - in
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 32
    functionName: file_read_string
    functionSourceFile: /src/core/tests/unit/test.c
    functionUses: 0
    functionsReached:
    - exit
    - ftell
    - assert_int_equal
    - fsetpos
    - fgetpos
    - assert_true
    - fseek
    - calloc
    - fputs
    - fread
    linkageType: ''
    returnType: char
    signature: char *file_read_string(FILE *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_read_string
      Src: /src/core/tests/unit/test.c:36,1
    - Dst: file_read_string
      Src: /src/core/tests/unit/test.c:37,1
    - Dst: strcmp
      Src: /src/core/tests/unit/test.c:39,1
    - Dst: printf
      Src: /src/core/tests/unit/test.c:41,1
    - Dst: fail
      Src: /src/core/tests/unit/test.c:42,1
    - Dst: free
      Src: /src/core/tests/unit/test.c:45,1
    - Dst: free
      Src: /src/core/tests/unit/test.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FILE*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: assert_file_equal
    functionSourceFile: /src/core/tests/unit/test.c
    functionUses: 0
    functionsReached:
    - printf
    - fail
    - strcmp
    - free
    - file_read_string
    linkageType: ''
    returnType: void
    signature: void assert_file_equal(FILE *a, FILE *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/core/tests/unit/test.c:53,1
    - Dst: print_error
      Src: /src/core/tests/unit/test.c:55,1
    - Dst: _fail
      Src: /src/core/tests/unit/test.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - left
    - right
    - file
    - line
    argTypes:
    - double
    - double
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: _assert_double_close
    functionSourceFile: /src/core/tests/unit/test.c
    functionUses: 0
    functionsReached:
    - print_error
    - _fail
    - fabs
    linkageType: ''
    returnType: void
    signature: void _assert_double_close(double left, double right, const char *const
      file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/core/tests/unit/test.c:62,1
    - Dst: fflush
      Src: /src/core/tests/unit/test.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: test_progress
    functionSourceFile: /src/core/tests/unit/test.c
    functionUses: 0
    functionsReached:
    - putchar
    - fflush
    linkageType: ''
    returnType: void
    signature: void test_progress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/core/tests/unit/test.c:67,1
    - Dst: fflush
      Src: /src/core/tests/unit/test.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: test_progress_end
    functionSourceFile: /src/core/tests/unit/test.c
    functionUses: 0
    functionsReached:
    - putchar
    - fflush
    linkageType: ''
    returnType: void
    signature: void test_progress_end()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MonLoadGatherData
      Src: /src/core/tests/unit/mon_load_test.c:10,1
    - Dst: getloadavg
      Src: /src/core/tests/unit/mon_load_test.c:13,1
    - Dst: getloadavg
      Src: /src/core/tests/unit/mon_load_test.c:14,1
    - Dst: assert_true
      Src: /src/core/tests/unit/mon_load_test.c:17,1
    - Dst: fabs
      Src: /src/core/tests/unit/mon_load_test.c:23,1
    - Dst: fabs
      Src: /src/core/tests/unit/mon_load_test.c:24,1
    - Dst: assert_true
      Src: /src/core/tests/unit/mon_load_test.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 27
    functionName: test_load_monitor
    functionSourceFile: /src/core/tests/unit/mon_load_test.c
    functionUses: 0
    functionsReached:
    - MonLoadGatherData
    - assert_true
    - getloadavg
    - fabs
    linkageType: ''
    returnType: void
    signature: void test_load_monitor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/mon_load_test.c:31,1
    - Dst: unit_test
      Src: /src/core/tests/unit/mon_load_test.c:34,1
    - Dst: run_tests
      Src: /src/core/tests/unit/mon_load_test.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: main
    functionSourceFile: /src/core/tests/unit/mon_load_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CalculateDomainName
      Src: /src/core/tests/unit/domainname_test.c:19,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: test_fqname
    functionSourceFile: /src/core/tests/unit/domainname_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - CalculateDomainName
    linkageType: ''
    returnType: void
    signature: void test_fqname(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CalculateDomainName
      Src: /src/core/tests/unit/domainname_test.c:29,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:32,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:33,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: test_uqname
    functionSourceFile: /src/core/tests/unit/domainname_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - CalculateDomainName
    linkageType: ''
    returnType: void
    signature: void test_uqname(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CalculateDomainName
      Src: /src/core/tests/unit/domainname_test.c:39,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:42,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:43,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: test_uqname2
    functionSourceFile: /src/core/tests/unit/domainname_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - CalculateDomainName
    linkageType: ''
    returnType: void
    signature: void test_uqname2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CalculateDomainName
      Src: /src/core/tests/unit/domainname_test.c:49,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:52,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:53,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: test_fqname_not_really_fq
    functionSourceFile: /src/core/tests/unit/domainname_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - CalculateDomainName
    linkageType: ''
    returnType: void
    signature: void test_fqname_not_really_fq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CalculateDomainName
      Src: /src/core/tests/unit/domainname_test.c:59,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:62,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:63,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: test_fqname_not_really_fq2
    functionSourceFile: /src/core/tests/unit/domainname_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - CalculateDomainName
    linkageType: ''
    returnType: void
    signature: void test_fqname_not_really_fq2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CalculateDomainName
      Src: /src/core/tests/unit/domainname_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:72,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:73,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: test_fqname_unresolvable
    functionSourceFile: /src/core/tests/unit/domainname_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - CalculateDomainName
    linkageType: ''
    returnType: void
    signature: void test_fqname_unresolvable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CalculateDomainName
      Src: /src/core/tests/unit/domainname_test.c:79,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:82,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:83,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: test_no_names
    functionSourceFile: /src/core/tests/unit/domainname_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - CalculateDomainName
    linkageType: ''
    returnType: void
    signature: void test_no_names(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CalculateDomainName
      Src: /src/core/tests/unit/domainname_test.c:89,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:92,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:93,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/domainname_test.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: test_wrong_fqname
    functionSourceFile: /src/core/tests/unit/domainname_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - CalculateDomainName
    linkageType: ''
    returnType: void
    signature: void test_wrong_fqname(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/domainname_test.c:99,1
    - Dst: unit_test
      Src: /src/core/tests/unit/domainname_test.c:102,1
    - Dst: unit_test
      Src: /src/core/tests/unit/domainname_test.c:103,1
    - Dst: unit_test
      Src: /src/core/tests/unit/domainname_test.c:104,1
    - Dst: unit_test
      Src: /src/core/tests/unit/domainname_test.c:105,1
    - Dst: unit_test
      Src: /src/core/tests/unit/domainname_test.c:106,1
    - Dst: unit_test
      Src: /src/core/tests/unit/domainname_test.c:107,1
    - Dst: unit_test
      Src: /src/core/tests/unit/domainname_test.c:108,1
    - Dst: unit_test
      Src: /src/core/tests/unit/domainname_test.c:109,1
    - Dst: run_tests
      Src: /src/core/tests/unit/domainname_test.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/core/tests/unit/domainname_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/unit/avahi_config_test.c:10,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/avahi_config_test.c:12,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:14,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:15,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:16,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:17,1
    - Dst: FprintAvahiCfengineTag
      Src: /src/core/tests/unit/avahi_config_test.c:18,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:19,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:20,1
    - Dst: DetermineCfenginePort
      Src: /src/core/tests/unit/avahi_config_test.c:21,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:22,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:23,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:24,1
    - Dst: fprintf
      Src: /src/core/tests/unit/avahi_config_test.c:25,1
    - Dst: fclose
      Src: /src/core/tests/unit/avahi_config_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 27
    functionName: generateTestFile
    functionSourceFile: /src/core/tests/unit/avahi_config_test.c
    functionUses: 0
    functionsReached:
    - fopen
    - assert_int_not_equal
    - FprintAvahiCfengineTag
    - fclose
    - fprintf
    - DetermineCfenginePort
    linkageType: ''
    returnType: void
    signature: void generateTestFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generateTestFile
      Src: /src/core/tests/unit/avahi_config_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/avahi_config_test.c:32,1
    - Dst: GenerateAvahiConfig
      Src: /src/core/tests/unit/avahi_config_test.c:32,1
    - Dst: fopen
      Src: /src/core/tests/unit/avahi_config_test.c:33,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/avahi_config_test.c:34,1
    - Dst: fopen
      Src: /src/core/tests/unit/avahi_config_test.c:35,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/avahi_config_test.c:36,1
    - Dst: feof
      Src: /src/core/tests/unit/avahi_config_test.c:39,1
    - Dst: feof
      Src: /src/core/tests/unit/avahi_config_test.c:39,1
    - Dst: memset
      Src: /src/core/tests/unit/avahi_config_test.c:41,1
    - Dst: memset
      Src: /src/core/tests/unit/avahi_config_test.c:42,1
    - Dst: fgets
      Src: /src/core/tests/unit/avahi_config_test.c:43,1
    - Dst: fgets
      Src: /src/core/tests/unit/avahi_config_test.c:44,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/avahi_config_test.c:45,1
    - Dst: strcmp
      Src: /src/core/tests/unit/avahi_config_test.c:45,1
    - Dst: fclose
      Src: /src/core/tests/unit/avahi_config_test.c:48,1
    - Dst: fclose
      Src: /src/core/tests/unit/avahi_config_test.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: test_generateAvahiConfig
    functionSourceFile: /src/core/tests/unit/avahi_config_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - fopen
    - fgets
    - assert_int_not_equal
    - feof
    - generateTestFile
    - strcmp
    - fclose
    - GenerateAvahiConfig
    - memset
    linkageType: ''
    returnType: void
    signature: void test_generateAvahiConfig(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/avahi_config_test.c:54,1
    - Dst: unit_test
      Src: /src/core/tests/unit/avahi_config_test.c:57,1
    - Dst: run_tests
      Src: /src/core/tests/unit/avahi_config_test.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: main
    functionSourceFile: /src/core/tests/unit/avahi_config_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 11
    functionName: __gcov_init
    functionSourceFile: /src/core/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_init(ARG_UNUSED void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - p
    - n_counters
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: __gcov_merge_add
    functionSourceFile: /src/core/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_merge_add(ARG_UNUSED void *p, ARG_UNUSED unsigned n_counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execv
      Src: /src/core/tests/unit/gcov-stub.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - argv
    argTypes:
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: __gcov_execv
    functionSourceFile: /src/core/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached:
    - execv
    linkageType: ''
    returnType: int
    signature: int __gcov_execv(const char *path, char *const argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/tests/unit/gcov-stub.c:28,1
    - Dst: va_copy
      Src: /src/core/tests/unit/gcov-stub.c:29,1
    - Dst: va_arg
      Src: /src/core/tests/unit/gcov-stub.c:32,1
    - Dst: va_end
      Src: /src/core/tests/unit/gcov-stub.c:35,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/gcov-stub.c:37,1
    - Dst: va_arg
      Src: /src/core/tests/unit/gcov-stub.c:40,1
    - Dst: va_end
      Src: /src/core/tests/unit/gcov-stub.c:42,1
    - Dst: execv
      Src: /src/core/tests/unit/gcov-stub.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - path
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: __gcov_execl
    functionSourceFile: /src/core/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - execv
    - xmalloc
    - va_arg
    - va_copy
    linkageType: ''
    returnType: int
    signature: int __gcov_execl(const char *path, char *arg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/core/tests/unit/gcov-stub.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: __gcov_fork
    functionSourceFile: /src/core/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached:
    - fork
    linkageType: ''
    returnType: pid_t
    signature: pid_t __gcov_fork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:46,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:49,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:50,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:54,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:58,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:62,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:65,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:66,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:69,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:70,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:74,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:78,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:82,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:85,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:86,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:90,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:94,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:98,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:102,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:106,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:110,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:114,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:117,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:118,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:121,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:122,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:128,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:129,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:131,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:132,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:134,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:135,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:137,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:138,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:140,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:141,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:143,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:144,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:146,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:147,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:149,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:150,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:152,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:153,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:155,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:156,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:158,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:159,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:161,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:162,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:164,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:165,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:167,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:168,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:170,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:171,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:173,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:174,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:176,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:177,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:179,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:180,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:182,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:183,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:185,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:186,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:192,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:193,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:195,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:196,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:198,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:199,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:201,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:202,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:204,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:205,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:207,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:208,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:210,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:211,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:213,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:214,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:216,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:217,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:219,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:220,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:222,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:223,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:225,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:226,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:228,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:229,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:231,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:232,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:234,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:235,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:237,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:238,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:240,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:241,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:243,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:244,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:246,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:247,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:249,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:250,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:256,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:257,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:259,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:260,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:262,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:263,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:265,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:266,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:268,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:269,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:271,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:272,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:274,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:275,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:277,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:278,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:280,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:281,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:283,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:284,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:286,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:287,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:289,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:290,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:292,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:293,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:295,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:296,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:298,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:299,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:301,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:302,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:304,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:305,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:307,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:308,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:310,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:311,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:313,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:314,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:320,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:321,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:322,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:323,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:325,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:326,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:328,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:329,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:330,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:331,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:333,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:334,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:336,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:337,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:339,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:340,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:342,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:343,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:344,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:345,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:347,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:348,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:350,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:351,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:353,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:354,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:360,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:361,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:364,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:365,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:368,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:369,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:372,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:373,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:376,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:377,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:380,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:381,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:384,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:385,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:388,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:389,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:392,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:393,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:396,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:397,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:400,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:401,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:404,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:405,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:408,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:409,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:412,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:413,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:416,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:417,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:420,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:421,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:424,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:425,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:428,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:429,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:432,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:433,1
    - Dst: GetCommandClassic
      Src: /src/core/tests/unit/protocol_test.c:436,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_test.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 271
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 438
    functionName: test_command_parser
    functionSourceFile: /src/core/tests/unit/protocol_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetCommandClassic
    linkageType: ''
    returnType: void
    signature: void test_command_parser(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/protocol_test.c:447,1
    - Dst: IsUserNameValid
      Src: /src/core/tests/unit/protocol_test.c:447,1
    - Dst: assert_false
      Src: /src/core/tests/unit/protocol_test.c:448,1
    - Dst: IsUserNameValid
      Src: /src/core/tests/unit/protocol_test.c:448,1
    - Dst: assert_false
      Src: /src/core/tests/unit/protocol_test.c:449,1
    - Dst: IsUserNameValid
      Src: /src/core/tests/unit/protocol_test.c:449,1
    - Dst: assert_true
      Src: /src/core/tests/unit/protocol_test.c:450,1
    - Dst: IsUserNameValid
      Src: /src/core/tests/unit/protocol_test.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 451
    functionName: test_user_name
    functionSourceFile: /src/core/tests/unit/protocol_test.c
    functionUses: 0
    functionsReached:
    - IsUserNameValid
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: void test_user_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/protocol_test.c:455,1
    - Dst: unit_test
      Src: /src/core/tests/unit/protocol_test.c:458,1
    - Dst: unit_test
      Src: /src/core/tests/unit/protocol_test.c:459,1
    - Dst: run_tests
      Src: /src/core/tests/unit/protocol_test.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 463
    functionName: main
    functionSourceFile: /src/core/tests/unit/protocol_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: ENTERPRISE_FUNC_2ARG_DEFINE
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_2ARG_DEFINE(int64_t, extension_function, int32_t,
      short_int, int64_t, long_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: ENTERPRISE_FUNC_3ARG_DEFINE
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_3ARG_DEFINE(int64_t, extension_function_broken,
      int32_t, short_int, int64_t, unwanted_par, int64_t, long_int)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/tests/unit/enterprise_extension_test_lib.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: GetExtensionLibraryVersion
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test_lib.c
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char *GetExtensionLibraryVersion()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:18,1
    - Dst: assert_true
      Src: /src/core/tests/unit/aix_process_test.c:19,1
    - Dst: memset
      Src: /src/core/tests/unit/aix_process_test.c:27,1
    - Dst: memset
      Src: /src/core/tests/unit/aix_process_test.c:36,1
    - Dst: memset
      Src: /src/core/tests/unit/aix_process_test.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 6
    argNames:
    - procsinfo
    - process_size
    - fdsinfo
    - sizfd
    - index
    - count
    argTypes:
    - void*
    - int
    - void*
    - int
    - pid_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 61
    functionName: getprocs64
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_int_equal
    - memset
    linkageType: ''
    returnType: int
    signature: int getprocs64(void *procsinfo, int process_size, void *fdsinfo, int
      sizfd, pid_t *index, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/aix_process_test.c:65,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:66,1
    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: test_get_start_time_process1
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/aix_process_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: test_get_start_time_process2
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/aix_process_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:79,1
    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: test_get_start_time_process666
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process666(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/aix_process_test.c:84,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: test_get_start_time_process1000
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process1000(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/aix_process_test.c:90,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: test_get_start_time_process1000000
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process1000000(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/aix_process_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: test_get_state_process1
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/aix_process_test.c:102,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: test_get_state_process2
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/aix_process_test.c:108,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: test_get_state_process666
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process666(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/aix_process_test.c:114,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: test_get_state_process1000
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process1000(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/aix_process_test.c:120,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/aix_process_test.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: test_get_state_process1000000
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process1000000(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/aix_process_test.c:127,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:131,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:132,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:133,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:134,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:135,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:136,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:137,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:138,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:139,1
    - Dst: unit_test
      Src: /src/core/tests/unit/aix_process_test.c:140,1
    - Dst: run_tests
      Src: /src/core/tests/unit/aix_process_test.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 144
    functionName: main
    functionSourceFile: /src/core/tests/unit/aix_process_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 18
    functionName: test_empty
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_empty(const char *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: test_never_empty
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_never_empty(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - set
    - ','
    - get
    - ','
    - host
    - ','
    - port
    - ','
    - ip
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: test_one_case_generic
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_one_case_generic(set, get, host, port, ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - set
    - ','
    - get
    - ','
    - host
    - ','
    - port
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: test_no_ip_generic
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_no_ip_generic(set, get, host, port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - bootstrap
    - ','
    - host
    - ','
    - port
    - ','
    - ip
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: test_one_case
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_one_case(bootstrap, host, port, ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - input
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: test_null_server
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_null_server(input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - bootstrap
    - ','
    - host
    - ','
    - port
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: test_no_ip
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_no_ip(bootstrap, host, port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:74,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:78,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: test_PolicyServer_IPv4
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached:
    - test_one_case
    linkageType: ''
    returnType: void
    signature: void test_PolicyServer_IPv4()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:90,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:94,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:98,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:102,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:107,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:111,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:115,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:120,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:124,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:129,1
    - Dst: test_one_case
      Src: /src/core/tests/unit/policy_server_test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 137
    functionName: test_PolicyServer_IPv6
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached:
    - test_one_case
    linkageType: ''
    returnType: void
    signature: void test_PolicyServer_IPv6()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_no_ip
      Src: /src/core/tests/unit/policy_server_test.c:142,1
    - Dst: test_no_ip
      Src: /src/core/tests/unit/policy_server_test.c:145,1
    - Dst: test_no_ip
      Src: /src/core/tests/unit/policy_server_test.c:148,1
    - Dst: test_no_ip
      Src: /src/core/tests/unit/policy_server_test.c:151,1
    - Dst: test_no_ip
      Src: /src/core/tests/unit/policy_server_test.c:154,1
    - Dst: test_no_ip
      Src: /src/core/tests/unit/policy_server_test.c:157,1
    - Dst: test_no_ip
      Src: /src/core/tests/unit/policy_server_test.c:160,1
    - Dst: test_no_ip
      Src: /src/core/tests/unit/policy_server_test.c:163,1
    - Dst: test_no_ip
      Src: /src/core/tests/unit/policy_server_test.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 168
    functionName: test_PolicyServer_Host
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached:
    - test_no_ip
    linkageType: ''
    returnType: void
    signature: void test_PolicyServer_Host()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_null_server
      Src: /src/core/tests/unit/policy_server_test.c:173,1
    - Dst: test_null_server
      Src: /src/core/tests/unit/policy_server_test.c:174,1
    - Dst: test_null_server
      Src: /src/core/tests/unit/policy_server_test.c:175,1
    - Dst: test_null_server
      Src: /src/core/tests/unit/policy_server_test.c:176,1
    - Dst: test_null_server
      Src: /src/core/tests/unit/policy_server_test.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: test_PolicyServer_Corner
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached:
    - test_null_server
    linkageType: ''
    returnType: void
    signature: void test_PolicyServer_Corner()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/policy_server_test.c:182,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_server_test.c:185,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_server_test.c:186,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_server_test.c:187,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_server_test.c:188,1
    - Dst: run_tests
      Src: /src/core/tests/unit/policy_server_test.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: main
    functionSourceFile: /src/core/tests/unit/policy_server_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/tests/unit/logging_test.c:22,1
    - Dst: xmemdup
      Src: /src/core/tests/unit/logging_test.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - sockfd
    - buf
    - len
    - flags
    - dest_addr
    - socklen_t
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - size_t
    - ARG_UNUSED
    - struct sockaddr*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: sendto
    functionSourceFile: /src/core/tests/unit/logging_test.c
    functionUses: 0
    functionsReached:
    - free
    - xmemdup
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t sendto(ARG_UNUSED int sockfd, ARG_UNUSED const void *buf,\n
      \              size_t len,\n               ARG_UNUSED int flags,\n               const
      struct sockaddr *dest_addr,\n               ARG_UNUSED socklen_t addrlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/tests/unit/logging_test.c:37,1
    - Dst: xmemdup
      Src: /src/core/tests/unit/logging_test.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - sockfd
    - buf
    - len
    - flags
    - dest_addr
    - addrlen
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - int
    - ARG_UNUSED
    - void*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: sendto
    functionSourceFile: /src/core/tests/unit/logging_test.c
    functionUses: 0
    functionsReached:
    - free
    - xmemdup
    linkageType: ''
    returnType: int
    signature: "int sendto(ARG_UNUSED int sockfd, ARG_UNUSED const void *buf,\n               int
      len,\n               ARG_UNUSED int flags,\n               const void *dest_addr,\n
      \              ARG_UNUSED int addrlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SetSyslogPort
      Src: /src/core/tests/unit/logging_test.c:45,1
    - Dst: RemoteSysLog
      Src: /src/core/tests/unit/logging_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:50,1
    - Dst: ntohs
      Src: /src/core/tests/unit/logging_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:54,1
    - Dst: ntohs
      Src: /src/core/tests/unit/logging_test.c:54,1
    - Dst: free
      Src: /src/core/tests/unit/logging_test.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: test_set_port
    functionSourceFile: /src/core/tests/unit/logging_test.c
    functionUses: 0
    functionsReached:
    - ntohs
    - assert_int_equal
    - RemoteSysLog
    - SetSyslogPort
    - free
    linkageType: ''
    returnType: void
    signature: void test_set_port(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetSyslogHost
      Src: /src/core/tests/unit/logging_test.c:63,1
    - Dst: RemoteSysLog
      Src: /src/core/tests/unit/logging_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:68,1
    - Dst: ntohl
      Src: /src/core/tests/unit/logging_test.c:68,1
    - Dst: free
      Src: /src/core/tests/unit/logging_test.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: test_set_host
    functionSourceFile: /src/core/tests/unit/logging_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RemoteSysLog
    - ntohl
    - SetSyslogHost
    - free
    linkageType: ''
    returnType: void
    signature: void test_set_host(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: check_level
    functionSourceFile: /src/core/tests/unit/logging_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_level(str, lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_level
      Src: /src/core/tests/unit/logging_test.c:81,1
    - Dst: check_level
      Src: /src/core/tests/unit/logging_test.c:82,1
    - Dst: check_level
      Src: /src/core/tests/unit/logging_test.c:83,1
    - Dst: check_level
      Src: /src/core/tests/unit/logging_test.c:84,1
    - Dst: check_level
      Src: /src/core/tests/unit/logging_test.c:85,1
    - Dst: check_level
      Src: /src/core/tests/unit/logging_test.c:86,1
    - Dst: check_level
      Src: /src/core/tests/unit/logging_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:90,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:90,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:91,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:91,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:92,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:93,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:94,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:94,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:95,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:96,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:99,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:99,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:100,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/logging_test.c:101,1
    - Dst: LogLevelFromString
      Src: /src/core/tests/unit/logging_test.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: test_log_level
    functionSourceFile: /src/core/tests/unit/logging_test.c
    functionUses: 0
    functionsReached:
    - check_level
    - assert_int_equal
    - LogLevelFromString
    linkageType: ''
    returnType: void
    signature: void test_log_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/logging_test.c:106,1
    - Dst: unit_test
      Src: /src/core/tests/unit/logging_test.c:109,1
    - Dst: unit_test
      Src: /src/core/tests/unit/logging_test.c:110,1
    - Dst: unit_test
      Src: /src/core/tests/unit/logging_test.c:111,1
    - Dst: run_tests
      Src: /src/core/tests/unit/logging_test.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: main
    functionSourceFile: /src/core/tests/unit/logging_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:7,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:8,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:9,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:10,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/var_expressions_test.c:11,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:12,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 14
    functionName: test_plain_variable_with_no_stuff_in_it
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - VarRefDestroy
    - assert_string_equal
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: void test_plain_variable_with_no_stuff_in_it(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:18,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:19,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:20,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/var_expressions_test.c:22,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:23,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: test_scoped
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - VarRefDestroy
    - assert_string_equal
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: void test_scoped(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:29,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:30,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:31,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/var_expressions_test.c:33,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:34,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: test_full
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - VarRefDestroy
    - assert_string_equal
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: void test_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:40,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:41,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:42,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/var_expressions_test.c:44,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:45,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: test_dotted_array
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - VarRefDestroy
    - assert_int_equal
    - assert_string_equal
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: void test_dotted_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:51,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:52,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:53,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/var_expressions_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:56,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:57,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:58,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: test_levels
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - VarRefDestroy
    - assert_int_equal
    - assert_string_equal
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: void test_levels(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:64,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:65,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:66,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/var_expressions_test.c:68,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:69,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: test_unqualified_array
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - VarRefDestroy
    - assert_string_equal
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: void test_unqualified_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:75,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:76,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:77,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/var_expressions_test.c:79,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:80,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: test_qualified_array
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - VarRefDestroy
    - assert_string_equal
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: void test_qualified_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:86,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:87,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:88,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/var_expressions_test.c:90,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:91,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: test_nested_array
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - VarRefDestroy
    - assert_string_equal
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: void test_nested_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:97,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:98,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:99,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/var_expressions_test.c:101,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:102,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: test_array_with_dot_colon_in_index
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - VarRefDestroy
    - assert_string_equal
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: void test_array_with_dot_colon_in_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyNew
      Src: /src/core/tests/unit/var_expressions_test.c:108,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/var_expressions_test.c:109,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/tests/unit/var_expressions_test.c:112,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:113,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:114,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:115,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:116,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/tests/unit/var_expressions_test.c:120,1
    - Dst: assert_false
      Src: /src/core/tests/unit/var_expressions_test.c:121,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:122,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:123,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:124,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 127
    functionName: test_special_scope
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - assert_false
    - VarRefParseFromBundle
    - PolicyNew
    - VarRefDestroy
    - assert_string_equal
    - PolicyAppendBundle
    linkageType: ''
    returnType: void
    signature: void test_special_scope(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:131,1
    - Dst: VarRefToString
      Src: /src/core/tests/unit/var_expressions_test.c:132,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:133,1
    - Dst: free
      Src: /src/core/tests/unit/var_expressions_test.c:134,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - str
    - expect
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: CheckToStringQualified
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - VarRefToString
    - VarRefDestroy
    - assert_string_equal
    - VarRefParse
    - free
    linkageType: ''
    returnType: void
    signature: void CheckToStringQualified(const char *str, const char *expect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckToStringQualified
      Src: /src/core/tests/unit/var_expressions_test.c:140,1
    - Dst: CheckToStringQualified
      Src: /src/core/tests/unit/var_expressions_test.c:141,1
    - Dst: CheckToStringQualified
      Src: /src/core/tests/unit/var_expressions_test.c:142,1
    - Dst: CheckToStringQualified
      Src: /src/core/tests/unit/var_expressions_test.c:143,1
    - Dst: CheckToStringQualified
      Src: /src/core/tests/unit/var_expressions_test.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: test_to_string_qualified
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - CheckToStringQualified
    linkageType: ''
    returnType: void
    signature: void test_to_string_qualified(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:150,1
    - Dst: VarRefToString
      Src: /src/core/tests/unit/var_expressions_test.c:151,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:152,1
    - Dst: free
      Src: /src/core/tests/unit/var_expressions_test.c:153,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:154,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:158,1
    - Dst: VarRefToString
      Src: /src/core/tests/unit/var_expressions_test.c:159,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:160,1
    - Dst: free
      Src: /src/core/tests/unit/var_expressions_test.c:161,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:162,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:166,1
    - Dst: VarRefToString
      Src: /src/core/tests/unit/var_expressions_test.c:167,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:168,1
    - Dst: free
      Src: /src/core/tests/unit/var_expressions_test.c:169,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:170,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/var_expressions_test.c:174,1
    - Dst: VarRefToString
      Src: /src/core/tests/unit/var_expressions_test.c:175,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/var_expressions_test.c:176,1
    - Dst: free
      Src: /src/core/tests/unit/var_expressions_test.c:177,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/var_expressions_test.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: test_to_string_unqualified
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - VarRefToString
    - VarRefDestroy
    - assert_string_equal
    - VarRefParse
    - free
    linkageType: ''
    returnType: void
    signature: void test_to_string_unqualified(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/var_expressions_test.c:184,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:187,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:188,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:189,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:190,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:191,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:192,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:193,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:194,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:195,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:196,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:197,1
    - Dst: unit_test
      Src: /src/core/tests/unit/var_expressions_test.c:198,1
    - Dst: run_tests
      Src: /src/core/tests/unit/var_expressions_test.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: main
    functionSourceFile: /src/core/tests/unit/var_expressions_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_lib_test.c:18,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/files_lib_test.c:19,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_lib_test.c:21,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_lib_test.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: tests_setup
    functionSourceFile: /src/core/tests/unit/files_lib_test.c
    functionUses: 5
    functionsReached:
    - mkdtemp
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_lib_test.c:28,1
    - Dst: system
      Src: /src/core/tests/unit/files_lib_test.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/files_lib_test.c
    functionUses: 2
    functionsReached:
    - system
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_teardown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileWriteOver
      Src: /src/core/tests/unit/files_lib_test.c:34,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_lib_test.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: test_file_write
    functionSourceFile: /src/core/tests/unit/files_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - FileWriteOver
    linkageType: ''
    returnType: void
    signature: void test_file_write(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileRead
      Src: /src/core/tests/unit/files_lib_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:42,1
    - Dst: StringWriterLength
      Src: /src/core/tests/unit/files_lib_test.c:42,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/files_lib_test.c:43,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/files_lib_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:44,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/files_lib_test.c:45,1
    - Dst: FileRead
      Src: /src/core/tests/unit/files_lib_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:48,1
    - Dst: StringWriterLength
      Src: /src/core/tests/unit/files_lib_test.c:48,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/files_lib_test.c:49,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/files_lib_test.c:49,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:50,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/files_lib_test.c:51,1
    - Dst: FileRead
      Src: /src/core/tests/unit/files_lib_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:54,1
    - Dst: StringWriterLength
      Src: /src/core/tests/unit/files_lib_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/files_lib_test.c:55,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/files_lib_test.c:55,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/files_lib_test.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: test_file_read_all
    functionSourceFile: /src/core/tests/unit/files_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - WriterClose
    - StringWriterData
    - assert_string_equal
    - FileRead
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_file_read_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileRead
      Src: /src/core/tests/unit/files_lib_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:65,1
    - Dst: StringWriterLength
      Src: /src/core/tests/unit/files_lib_test.c:65,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/files_lib_test.c:66,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/files_lib_test.c:67,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/files_lib_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:68,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/files_lib_test.c:69,1
    - Dst: FileRead
      Src: /src/core/tests/unit/files_lib_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:73,1
    - Dst: StringWriterLength
      Src: /src/core/tests/unit/files_lib_test.c:73,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/files_lib_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/files_lib_test.c:75,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/files_lib_test.c:75,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:76,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/files_lib_test.c:77,1
    - Dst: FileRead
      Src: /src/core/tests/unit/files_lib_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:81,1
    - Dst: StringWriterLength
      Src: /src/core/tests/unit/files_lib_test.c:81,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/files_lib_test.c:82,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/files_lib_test.c:83,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/files_lib_test.c:83,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:84,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/files_lib_test.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: test_file_read_truncate
    functionSourceFile: /src/core/tests/unit/files_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - WriterClose
    - StringWriterData
    - assert_string_equal
    - FileRead
    - strlcpy
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_file_read_truncate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: creat
      Src: /src/core/tests/unit/files_lib_test.c:90,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_lib_test.c:91,1
    - Dst: close
      Src: /src/core/tests/unit/files_lib_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:94,1
    - Dst: FileRead
      Src: /src/core/tests/unit/files_lib_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:98,1
    - Dst: StringWriterLength
      Src: /src/core/tests/unit/files_lib_test.c:98,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/files_lib_test.c:99,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/files_lib_test.c:99,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_lib_test.c:100,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/files_lib_test.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: test_file_read_empty
    functionSourceFile: /src/core/tests/unit/files_lib_test.c
    functionUses: 0
    functionsReached:
    - creat
    - assert_int_equal
    - WriterClose
    - assert_true
    - StringWriterData
    - FileRead
    - assert_string_equal
    - close
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_file_read_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileRead
      Src: /src/core/tests/unit/files_lib_test.c:106,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_lib_test.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: test_file_read_invalid
    functionSourceFile: /src/core/tests/unit/files_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - FileRead
    linkageType: ''
    returnType: void
    signature: void test_file_read_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/files_lib_test.c:112,1
    - Dst: tests_setup
      Src: /src/core/tests/unit/files_lib_test.c:113,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_lib_test.c:117,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_lib_test.c:118,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_lib_test.c:119,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_lib_test.c:120,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_lib_test.c:121,1
    - Dst: run_tests
      Src: /src/core/tests/unit/files_lib_test.c:124,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/files_lib_test.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: main
    functionSourceFile: /src/core/tests/unit/files_lib_test.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - unit_test
    - run_tests
    - tests_teardown
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/core/tests/unit/strlist_test.c:63,1
    - Dst: StrList_Append
      Src: /src/core/tests/unit/strlist_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:68,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:69,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:69,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:71,1
    - Dst: StrList_Len
      Src: /src/core/tests/unit/strlist_test.c:71,1
    - Dst: StrList_Finalise
      Src: /src/core/tests/unit/strlist_test.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - strings
    - strings_len
    - insert_order
    argTypes:
    - char**
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: init_strlist
    functionSourceFile: /src/core/tests/unit/strlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StrList_Len
    - calloc
    - assert_string_equal
    - StrList_At
    - StrList_Finalise
    - StrList_Append
    linkageType: ''
    returnType: StrList
    signature: "StrList *init_strlist(char ** strings, size_t strings_len,\n                             size_t
      *insert_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_strlist
      Src: /src/core/tests/unit/strlist_test.c:78,1
    - Dst: init_strlist
      Src: /src/core/tests/unit/strlist_test.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: test_init_SL
    functionSourceFile: /src/core/tests/unit/strlist_test.c
    functionUses: 0
    functionsReached:
    - init_strlist
    linkageType: ''
    returnType: void
    signature: void test_init_SL()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrList_Sort
      Src: /src/core/tests/unit/strlist_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:89,1
    - Dst: StrList_Len
      Src: /src/core/tests/unit/strlist_test.c:89,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:93,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:93,1
    - Dst: StrList_Sort
      Src: /src/core/tests/unit/strlist_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:98,1
    - Dst: StrList_Len
      Src: /src/core/tests/unit/strlist_test.c:98,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:102,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: test_StrList_Sort
    functionSourceFile: /src/core/tests/unit/strlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StrList_Len
    - StrList_Sort
    - assert_string_equal
    - StrList_At
    linkageType: ''
    returnType: void
    signature: void test_StrList_Sort()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrList_BinarySearch
      Src: /src/core/tests/unit/strlist_test.c:116,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:117,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:118,1
    - Dst: StrList_BinarySearch
      Src: /src/core/tests/unit/strlist_test.c:124,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:125,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:126,1
    - Dst: StrList_BinarySearch
      Src: /src/core/tests/unit/strlist_test.c:128,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:129,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:130,1
    - Dst: StrList_BinarySearch
      Src: /src/core/tests/unit/strlist_test.c:132,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:133,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:134,1
    - Dst: StrList_BinarySearch
      Src: /src/core/tests/unit/strlist_test.c:136,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:137,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:138,1
    - Dst: StrList_BinarySearch
      Src: /src/core/tests/unit/strlist_test.c:140,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:141,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 143
    functionName: test_StrList_BinarySearch
    functionSourceFile: /src/core/tests/unit/strlist_test.c
    functionUses: 0
    functionsReached:
    - StrList_BinarySearch
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_StrList_BinarySearch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:155,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:156,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:157,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:158,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:158,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:159,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:159,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:160,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:160,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:164,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:165,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:165,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:167,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:168,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:168,1
    - Dst: StrList_Append
      Src: /src/core/tests/unit/strlist_test.c:172,1
    - Dst: StrList_Append
      Src: /src/core/tests/unit/strlist_test.c:173,1
    - Dst: StrList_Append
      Src: /src/core/tests/unit/strlist_test.c:174,1
    - Dst: StrList_Sort
      Src: /src/core/tests/unit/strlist_test.c:175,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:177,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:179,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:179,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:181,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:183,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:183,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:185,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:187,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:187,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:189,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:191,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 192
    functionName: test_StrList_SearchLongestPrefix
    functionSourceFile: /src/core/tests/unit/strlist_test.c
    functionUses: 0
    functionsReached:
    - StrList_SearchLongestPrefix
    - StrList_Sort
    - assert_string_equal
    - StrList_At
    - StrList_Append
    linkageType: ''
    returnType: void
    signature: void test_StrList_SearchLongestPrefix()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:203,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:204,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:205,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:206,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:207,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:208,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:209,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:210,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:211,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:212,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/tests/unit/strlist_test.c:213,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:215,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:215,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:216,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:217,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:217,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:218,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:219,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:220,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:221,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:221,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:222,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:222,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:223,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:224,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 226
    functionName: test_StrList_SearchLongestSuffix
    functionSourceFile: /src/core/tests/unit/strlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StrList_SearchLongestPrefix
    - assert_string_equal
    - StrList_At
    linkageType: ''
    returnType: void
    signature: void test_StrList_SearchLongestSuffix()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:235,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:236,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:237,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:238,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:239,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:240,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:241,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:242,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:243,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:244,1
    - Dst: StrList_SearchForPrefix
      Src: /src/core/tests/unit/strlist_test.c:245,1
    - Dst: assert_in_set
      Src: /src/core/tests/unit/strlist_test.c:252,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:253,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:253,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/strlist_test.c:254,1
    - Dst: StrList_At
      Src: /src/core/tests/unit/strlist_test.c:254,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:255,1
    - Dst: assert_in_set
      Src: /src/core/tests/unit/strlist_test.c:256,1
    - Dst: assert_in_set
      Src: /src/core/tests/unit/strlist_test.c:257,1
    - Dst: assert_in_set
      Src: /src/core/tests/unit/strlist_test.c:259,1
    - Dst: assert_in_set
      Src: /src/core/tests/unit/strlist_test.c:260,1
    - Dst: assert_in_set
      Src: /src/core/tests/unit/strlist_test.c:261,1
    - Dst: assert_in_set
      Src: /src/core/tests/unit/strlist_test.c:263,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 265
    functionName: test_StrList_SearchForSuffix
    functionSourceFile: /src/core/tests/unit/strlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_in_set
    - assert_string_equal
    - StrList_At
    - StrList_SearchForPrefix
    linkageType: ''
    returnType: void
    signature: void test_StrList_SearchForSuffix()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrList_Free
      Src: /src/core/tests/unit/strlist_test.c:269,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:270,1
    - Dst: StrList_Free
      Src: /src/core/tests/unit/strlist_test.c:272,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/strlist_test.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: test_StrList_Free
    functionSourceFile: /src/core/tests/unit/strlist_test.c
    functionUses: 0
    functionsReached:
    - StrList_Free
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_StrList_Free()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/strlist_test.c:279,1
    - Dst: unit_test
      Src: /src/core/tests/unit/strlist_test.c:282,1
    - Dst: unit_test
      Src: /src/core/tests/unit/strlist_test.c:283,1
    - Dst: unit_test
      Src: /src/core/tests/unit/strlist_test.c:284,1
    - Dst: unit_test
      Src: /src/core/tests/unit/strlist_test.c:285,1
    - Dst: unit_test
      Src: /src/core/tests/unit/strlist_test.c:286,1
    - Dst: unit_test
      Src: /src/core/tests/unit/strlist_test.c:287,1
    - Dst: unit_test
      Src: /src/core/tests/unit/strlist_test.c:288,1
    - Dst: run_tests
      Src: /src/core/tests/unit/strlist_test.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: main
    functionSourceFile: /src/core/tests/unit/strlist_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/exec-config-test.c:15,1
    - Dst: ParserParseFile
      Src: /src/core/tests/unit/exec-config-test.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: TestParsePolicy
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - ParserParseFile
    - xsnprintf
    linkageType: ''
    returnType: Policy
    signature: Policy *TestParsePolicy(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/tests/unit/exec-config-test.c:24,1
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/exec-config-test.c:25,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/exec-config-test.c:26,1
    - Dst: PolicyResolve
      Src: /src/core/tests/unit/exec-config-test.c:27,1
    - Dst: strcpy
      Src: /src/core/tests/unit/exec-config-test.c:30,1
    - Dst: strcpy
      Src: /src/core/tests/unit/exec-config-test.c:31,1
    - Dst: EvalContextAddIpAddress
      Src: /src/core/tests/unit/exec-config-test.c:32,1
    - Dst: EvalContextAddIpAddress
      Src: /src/core/tests/unit/exec-config-test.c:33,1
    - Dst: fn
      Src: /src/core/tests/unit/exec-config-test.c:35,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/exec-config-test.c:37,1
    - Dst: GenericAgentFinalize
      Src: /src/core/tests/unit/exec-config-test.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - policy_filename
    - fn
    argTypes:
    - char*
    - TestFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: run_test_in_policy
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - GenericAgentFinalize
    - fn
    - EvalContextNew
    - EvalContextAddIpAddress
    - GenericAgentConfigNewDefault
    - TestParsePolicy
    - PolicyResolve
    - strcpy
    linkageType: ''
    returnType: void
    signature: void run_test_in_policy(const char *policy_filename, TestFn fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExecdConfigNew
      Src: /src/core/tests/unit/exec-config-test.c:43,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:45,1
    - Dst: StringSetSize
      Src: /src/core/tests/unit/exec-config-test.c:45,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:46,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:46,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:47,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:47,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:48,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:48,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:49,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:49,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:50,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:50,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:51,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:51,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:52,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:52,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:53,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:54,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:54,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:55,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:55,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:56,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:56,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:57,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:57,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:58,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:59,1
    - Dst: ExecdConfigDestroy
      Src: /src/core/tests/unit/exec-config-test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: execd_config_empty_cb
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringSetContains
    - ExecdConfigDestroy
    - StringSetSize
    - ExecdConfigNew
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void execd_config_empty_cb(const EvalContext *ctx, const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test_in_policy
      Src: /src/core/tests/unit/exec-config-test.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: test_execd_config_empty
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - run_test_in_policy
    linkageType: ''
    returnType: void
    signature: void test_execd_config_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExecdConfigNew
      Src: /src/core/tests/unit/exec-config-test.c:71,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:73,1
    - Dst: StringSetSize
      Src: /src/core/tests/unit/exec-config-test.c:73,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:74,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:74,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:75,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/exec-config-test.c:75,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:78,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:79,1
    - Dst: ExecdConfigDestroy
      Src: /src/core/tests/unit/exec-config-test.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: execd_config_full_cb
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringSetContains
    - ExecdConfigDestroy
    - StringSetSize
    - ExecdConfigNew
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void execd_config_full_cb(const EvalContext *ctx, const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test_in_policy
      Src: /src/core/tests/unit/exec-config-test.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: test_execd_config_full
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - run_test_in_policy
    linkageType: ''
    returnType: void
    signature: void test_execd_config_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExecConfigNew
      Src: /src/core/tests/unit/exec-config-test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:94,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:96,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:97,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:99,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:100,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:102,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:103,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:104,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:105,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:106,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:107,1
    - Dst: ExecConfigDestroy
      Src: /src/core/tests/unit/exec-config-test.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 110
    functionName: exec_config_empty_cb
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - ExecConfigDestroy
    - assert_int_equal
    - assert_string_equal
    - ExecConfigNew
    linkageType: ''
    returnType: void
    signature: void exec_config_empty_cb(const EvalContext *ctx, const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test_in_policy
      Src: /src/core/tests/unit/exec-config-test.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: test_exec_config_empty
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - run_test_in_policy
    linkageType: ''
    returnType: void
    signature: void test_exec_config_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:119,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:120,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:121,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:122,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:123,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:124,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:125,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:126,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/exec-config-test.c:127,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:128,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:129,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/exec-config-test.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - ExecConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: CheckFullExecConfig
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void CheckFullExecConfig(const ExecConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExecConfigNew
      Src: /src/core/tests/unit/exec-config-test.c:135,1
    - Dst: CheckFullExecConfig
      Src: /src/core/tests/unit/exec-config-test.c:136,1
    - Dst: ExecConfigDestroy
      Src: /src/core/tests/unit/exec-config-test.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: exec_config_full_cb
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - ExecConfigDestroy
    - ExecConfigNew
    - CheckFullExecConfig
    linkageType: ''
    returnType: void
    signature: void exec_config_full_cb(const EvalContext *ctx, const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test_in_policy
      Src: /src/core/tests/unit/exec-config-test.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: test_exec_config_full
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - run_test_in_policy
    linkageType: ''
    returnType: void
    signature: void test_exec_config_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExecConfigNew
      Src: /src/core/tests/unit/exec-config-test.c:147,1
    - Dst: ExecConfigCopy
      Src: /src/core/tests/unit/exec-config-test.c:148,1
    - Dst: ExecConfigDestroy
      Src: /src/core/tests/unit/exec-config-test.c:149,1
    - Dst: CheckFullExecConfig
      Src: /src/core/tests/unit/exec-config-test.c:151,1
    - Dst: ExecConfigDestroy
      Src: /src/core/tests/unit/exec-config-test.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: exec_config_copy_cb
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - ExecConfigDestroy
    - CheckFullExecConfig
    - ExecConfigNew
    - ExecConfigCopy
    linkageType: ''
    returnType: void
    signature: void exec_config_copy_cb(const EvalContext *ctx, const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_test_in_policy
      Src: /src/core/tests/unit/exec-config-test.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: test_exec_config_copy
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - run_test_in_policy
    linkageType: ''
    returnType: void
    signature: void test_exec_config_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/exec-config-test.c:163,1
    - Dst: unit_test
      Src: /src/core/tests/unit/exec-config-test.c:166,1
    - Dst: unit_test
      Src: /src/core/tests/unit/exec-config-test.c:167,1
    - Dst: unit_test
      Src: /src/core/tests/unit/exec-config-test.c:168,1
    - Dst: unit_test
      Src: /src/core/tests/unit/exec-config-test.c:169,1
    - Dst: unit_test
      Src: /src/core/tests/unit/exec-config-test.c:170,1
    - Dst: run_tests
      Src: /src/core/tests/unit/exec-config-test.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 174
    functionName: main
    functionSourceFile: /src/core/tests/unit/exec-config-test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/tests/unit/set_domainname_test.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - size_t
    argTypes:
    - char*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: gethostname
    functionSourceFile: /src/core/tests/unit/set_domainname_test.c
    functionUses: 0
    functionsReached:
    - strcpy
    linkageType: ''
    returnType: int
    signature: int gethostname(char *name, ARG_UNUSED size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/set_domainname_test.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: gethostbyname
    functionSourceFile: /src/core/tests/unit/set_domainname_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    linkageType: ''
    returnType: struct hostent
    signature: struct hostent *gethostbyname(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParseFromScope
      Src: /src/core/tests/unit/set_domainname_test.c:48,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/set_domainname_test.c:49,1
    - Dst: EvalContextVariableGet
      Src: /src/core/tests/unit/set_domainname_test.c:49,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/set_domainname_test.c:50,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/set_domainname_test.c:52,1
    - Dst: EvalContextVariableGetSpecial
      Src: /src/core/tests/unit/set_domainname_test.c:52,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/set_domainname_test.c:53,1
    - Dst: EvalContextVariableGetSpecialString
      Src: /src/core/tests/unit/set_domainname_test.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - lval
    - expected
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: TestSysVar
    functionSourceFile: /src/core/tests/unit/set_domainname_test.c
    functionUses: 0
    functionsReached:
    - VarRefParseFromScope
    - EvalContextVariableGetSpecialString
    - VarRefDestroy
    - EvalContextVariableGetSpecial
    - EvalContextVariableGet
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void TestSysVar(EvalContext *ctx, const char *lval, const char *expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/set_domainname_test.c:58,1
    - Dst: DetectDomainName
      Src: /src/core/tests/unit/set_domainname_test.c:59,1
    - Dst: assert_true
      Src: /src/core/tests/unit/set_domainname_test.c:61,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/set_domainname_test.c:61,1
    - Dst: assert_true
      Src: /src/core/tests/unit/set_domainname_test.c:62,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/set_domainname_test.c:62,1
    - Dst: assert_true
      Src: /src/core/tests/unit/set_domainname_test.c:63,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/set_domainname_test.c:63,1
    - Dst: assert_true
      Src: /src/core/tests/unit/set_domainname_test.c:64,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/set_domainname_test.c:64,1
    - Dst: assert_true
      Src: /src/core/tests/unit/set_domainname_test.c:65,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/set_domainname_test.c:65,1
    - Dst: TestSysVar
      Src: /src/core/tests/unit/set_domainname_test.c:67,1
    - Dst: TestSysVar
      Src: /src/core/tests/unit/set_domainname_test.c:68,1
    - Dst: TestSysVar
      Src: /src/core/tests/unit/set_domainname_test.c:69,1
    - Dst: TestSysVar
      Src: /src/core/tests/unit/set_domainname_test.c:70,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/set_domainname_test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: test_set_names
    functionSourceFile: /src/core/tests/unit/set_domainname_test.c
    functionUses: 0
    functionsReached:
    - DetectDomainName
    - EvalContextDestroy
    - assert_true
    - EvalContextNew
    - EvalContextClassGet
    - TestSysVar
    linkageType: ''
    returnType: void
    signature: void test_set_names(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/set_domainname_test.c:77,1
    - Dst: unit_test
      Src: /src/core/tests/unit/set_domainname_test.c:80,1
    - Dst: run_tests
      Src: /src/core/tests/unit/set_domainname_test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: main
    functionSourceFile: /src/core/tests/unit/set_domainname_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PrependItem
      Src: /src/core/tests/unit/item_test.c:10,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/item_test.c:11,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/item_test.c:12,1
    - Dst: DeleteItem
      Src: /src/core/tests/unit/item_test.c:13,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/item_test.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 15
    functionName: test_prepend_item
    functionSourceFile: /src/core/tests/unit/item_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - PrependItem
    - assert_int_not_equal
    - DeleteItem
    linkageType: ''
    returnType: void
    signature: void test_prepend_item(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PrependItem
      Src: /src/core/tests/unit/item_test.c:21,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/item_test.c:22,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/item_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/item_test.c:24,1
    - Dst: ListLen
      Src: /src/core/tests/unit/item_test.c:24,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: test_list_len
    functionSourceFile: /src/core/tests/unit/item_test.c
    functionUses: 0
    functionsReached:
    - DeleteItemList
    - assert_int_equal
    - PrependItem
    - ListLen
    linkageType: ''
    returnType: void
    signature: void test_list_len(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/item_test.c:32,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:36,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:37,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:38,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:39,1
    - Dst: SelectLastItemMatching
      Src: /src/core/tests/unit/item_test.c:41,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/item_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/item_test.c:44,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:45,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/item_test.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: test_list_select_last_matching_finds_first
    functionSourceFile: /src/core/tests/unit/item_test.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - assert_int_equal
    - SelectLastItemMatching
    - EvalContextDestroy
    - assert_true
    - EvalContextNew
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void test_list_select_last_matching_finds_first(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/item_test.c:51,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:55,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:56,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:57,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:58,1
    - Dst: SelectLastItemMatching
      Src: /src/core/tests/unit/item_test.c:60,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/item_test.c:62,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/item_test.c:63,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:64,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/item_test.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: test_list_select_last_matching_finds_last
    functionSourceFile: /src/core/tests/unit/item_test.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - assert_int_equal
    - SelectLastItemMatching
    - EvalContextDestroy
    - assert_true
    - EvalContextNew
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void test_list_select_last_matching_finds_last(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/item_test.c:70,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:74,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:75,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:76,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:77,1
    - Dst: SelectLastItemMatching
      Src: /src/core/tests/unit/item_test.c:79,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/item_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/item_test.c:82,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:83,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/item_test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: test_list_select_last_matching_not_found
    functionSourceFile: /src/core/tests/unit/item_test.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - assert_int_equal
    - assert_false
    - SelectLastItemMatching
    - EvalContextDestroy
    - EvalContextNew
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void test_list_select_last_matching_not_found(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:93,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:94,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:96,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:97,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:99,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_test.c:100,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:102,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:103,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:105,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:107,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:109,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 111
    functionName: test_list_compare
    functionSourceFile: /src/core/tests/unit/item_test.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - assert_false
    - assert_true
    - ListsCompare
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void test_list_compare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:119,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:120,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:121,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:121,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:122,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:123,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:124,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:126,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:127,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:128,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:128,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:129,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:130,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:131,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:133,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:134,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:135,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:136,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:136,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:137,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:138,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:139,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:141,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:142,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:143,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:144,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:144,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:145,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:146,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:147,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:149,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:150,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:151,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:152,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:152,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:153,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:154,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:155,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:157,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:158,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:159,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:160,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:160,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:161,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:162,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:163,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:165,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:166,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:167,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:168,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:169,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:169,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:170,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:171,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:172,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:176,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:177,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:178,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:178,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:179,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:180,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:181,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:183,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:184,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:185,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:186,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:186,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:187,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:188,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:189,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:191,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:192,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:193,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:193,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:194,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:195,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:196,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:198,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:199,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:200,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:200,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:201,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:202,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:203,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:205,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:206,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:207,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:207,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:208,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:209,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:210,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:212,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:213,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:214,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:214,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:215,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:216,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:217,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:219,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:220,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:221,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:222,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:222,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:223,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:224,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:225,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:227,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:228,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:229,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:230,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:230,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:231,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:232,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:233,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:237,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:238,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:239,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:239,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:240,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:241,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:242,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:245,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:246,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:247,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:247,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:248,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:249,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:250,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:252,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:253,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:254,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:254,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:255,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:256,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:257,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:259,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:260,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:261,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:262,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:262,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:263,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:264,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:265,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:267,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:268,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:269,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:270,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:270,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:271,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:272,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:273,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:275,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:276,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:277,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:278,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:278,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:279,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:280,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:281,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:283,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:284,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:285,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:285,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:286,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:287,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:288,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:290,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:291,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:292,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:292,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:293,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:294,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:295,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:297,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:298,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:299,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:300,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:300,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:301,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:302,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:303,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:305,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:306,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:307,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:308,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:308,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:309,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:310,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:311,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:314,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:315,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:316,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:317,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:318,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:318,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:319,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:320,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:321,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:323,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:324,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:325,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:326,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:326,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:327,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:328,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:329,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:331,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:332,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:333,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:333,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:334,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:335,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:336,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:340,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:341,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:342,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:342,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:343,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:344,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:345,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:347,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:348,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:349,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:349,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:350,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:351,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:352,1
    - Dst: SplitString
      Src: /src/core/tests/unit/item_test.c:357,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/item_test.c:364,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_test.c:369,1
    - Dst: ListsCompare
      Src: /src/core/tests/unit/item_test.c:369,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:370,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/item_test.c:371,1
    - Dst: test_progress
      Src: /src/core/tests/unit/item_test.c:372,1
    - Dst: test_progress_end
      Src: /src/core/tests/unit/item_test.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 267
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 375
    functionName: test_split_string
    functionSourceFile: /src/core/tests/unit/item_test.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - SplitString
    - assert_true
    - ListsCompare
    - test_progress
    - DeleteItemList
    - test_progress_end
    linkageType: ''
    returnType: void
    signature: void test_split_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/item_test.c:379,1
    - Dst: unit_test
      Src: /src/core/tests/unit/item_test.c:382,1
    - Dst: unit_test
      Src: /src/core/tests/unit/item_test.c:383,1
    - Dst: unit_test
      Src: /src/core/tests/unit/item_test.c:384,1
    - Dst: unit_test
      Src: /src/core/tests/unit/item_test.c:385,1
    - Dst: run_tests
      Src: /src/core/tests/unit/item_test.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: main
    functionSourceFile: /src/core/tests/unit/item_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:8,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:9,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: test_lookup_promise_type_agent_vars
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - PromiseTypeSyntaxGet
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_promise_type_agent_vars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:15,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:16,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: test_lookup_promise_type_common_vars
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - PromiseTypeSyntaxGet
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_promise_type_common_vars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:22,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: test_lookup_promise_type_edit_xml_build_xpath
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - PromiseTypeSyntaxGet
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_promise_type_edit_xml_build_xpath(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:29,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:30,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: test_lookup_promise_type_edit_line_delete_lines
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - PromiseTypeSyntaxGet
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_promise_type_edit_line_delete_lines(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:36,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:37,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: test_lookup_promise_type_edit_xml_commons
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - PromiseTypeSyntaxGet
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_promise_type_edit_xml_commons(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:44,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:45,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:46,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: test_lookup_promise_type_global_commons
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - PromiseTypeSyntaxGet
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_promise_type_global_commons(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:53,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:55,1
    - Dst: PromiseTypeSyntaxGetConstraintSyntax
      Src: /src/core/tests/unit/syntax_test.c:57,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:58,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: test_lookup_constraint_edit_xml_set_attribute_attribute_value
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - PromiseTypeSyntaxGetConstraintSyntax
    - assert_true
    - PromiseTypeSyntaxGet
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_constraint_edit_xml_set_attribute_attribute_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BodySyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:64,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:65,1
    - Dst: BodySyntaxGetConstraintSyntax
      Src: /src/core/tests/unit/syntax_test.c:67,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:68,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: test_lookup_body_classes
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - BodySyntaxGet
    - BodySyntaxGetConstraintSyntax
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_body_classes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BodySyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:74,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:75,1
    - Dst: BodySyntaxGetConstraintSyntax
      Src: /src/core/tests/unit/syntax_test.c:77,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:78,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: test_lookup_body_process_count
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - BodySyntaxGet
    - BodySyntaxGetConstraintSyntax
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_body_process_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BodySyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:84,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:85,1
    - Dst: BodySyntaxGetConstraintSyntax
      Src: /src/core/tests/unit/syntax_test.c:87,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:88,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/syntax_test.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: test_lookup_body_delete_select
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - BodySyntaxGet
    - BodySyntaxGetConstraintSyntax
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_lookup_body_delete_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BodySyntaxGet
      Src: /src/core/tests/unit/syntax_test.c:94,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:95,1
    - Dst: BodySyntaxGetConstraintSyntax
      Src: /src/core/tests/unit/syntax_test.c:97,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:98,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:100,1
    - Dst: StringMatchFull
      Src: /src/core/tests/unit/syntax_test.c:100,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:101,1
    - Dst: StringMatchFull
      Src: /src/core/tests/unit/syntax_test.c:101,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:102,1
    - Dst: StringMatchFull
      Src: /src/core/tests/unit/syntax_test.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: test_copy_from_servers
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - BodySyntaxGet
    - BodySyntaxGetConstraintSyntax
    - assert_true
    - StringMatchFull
    linkageType: ''
    returnType: void
    signature: void test_copy_from_servers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/tests/unit/syntax_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/syntax_test.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: test_typecheck_null_rval
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - CheckConstraintTypeMatch
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_typecheck_null_rval(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:118,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:118,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:119,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:119,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:120,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:120,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:121,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:121,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:122,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:122,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:123,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:123,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:124,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:124,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:125,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:125,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:126,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:126,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:127,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:127,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:130,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:130,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:131,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:131,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:132,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:132,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:133,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:133,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:134,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:134,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:135,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:135,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:138,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:138,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:139,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:139,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:140,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:140,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:141,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:141,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:142,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:142,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:143,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:143,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:146,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:146,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:147,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:147,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:148,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:148,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:149,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:149,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:150,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:150,1
    - Dst: assert_true
      Src: /src/core/tests/unit/syntax_test.c:151,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:151,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:154,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:154,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:155,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:155,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:156,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:156,1
    - Dst: assert_false
      Src: /src/core/tests/unit/syntax_test.c:157,1
    - Dst: CheckParseVariableName
      Src: /src/core/tests/unit/syntax_test.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 158
    functionName: test_check_parse_variable_name
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - CheckParseVariableName
    linkageType: ''
    returnType: void
    signature: void test_check_parse_variable_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/syntax_test.c:162,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:165,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:166,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:167,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:168,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:170,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:171,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:173,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:174,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:175,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:177,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:179,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:180,1
    - Dst: unit_test
      Src: /src/core/tests/unit/syntax_test.c:181,1
    - Dst: run_tests
      Src: /src/core/tests/unit/syntax_test.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: main
    functionSourceFile: /src/core/tests/unit/syntax_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/unit/evalfunction_test.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - netgroup
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: setnetgrent
    functionSourceFile: /src/core/tests/unit/evalfunction_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void setnetgrent(const char *netgroup)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - hostp
    - userp
    - domainp
    argTypes:
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: getnetgrent
    functionSourceFile: /src/core/tests/unit/evalfunction_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getnetgrent(char **hostp, char **userp, char **domainp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/evalfunction_test.c:61,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/evalfunction_test.c:66,1
    - Dst: FnCallHostInNetgroup
      Src: /src/core/tests/unit/evalfunction_test.c:68,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/evalfunction_test.c:69,1
    - Dst: RvalDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:71,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:72,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: test_hostinnetgroup_found
    functionSourceFile: /src/core/tests/unit/evalfunction_test.c
    functionUses: 0
    functionsReached:
    - EvalContextDestroy
    - FnCallHostInNetgroup
    - RlistAppendScalar
    - EvalContextNew
    - assert_string_equal
    - RlistDestroy
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void test_hostinnetgroup_found(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/evalfunction_test.c:78,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/evalfunction_test.c:83,1
    - Dst: FnCallHostInNetgroup
      Src: /src/core/tests/unit/evalfunction_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/evalfunction_test.c:86,1
    - Dst: RvalDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:88,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:89,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: test_hostinnetgroup_not_found
    functionSourceFile: /src/core/tests/unit/evalfunction_test.c
    functionUses: 0
    functionsReached:
    - EvalContextDestroy
    - FnCallHostInNetgroup
    - RlistAppendScalar
    - EvalContextNew
    - assert_string_equal
    - RlistDestroy
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void test_hostinnetgroup_not_found(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - input
    - ','
    - suffix
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: basename_single_testcase
    functionSourceFile: /src/core/tests/unit/evalfunction_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: basename_single_testcase(input, suffix, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:115,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:116,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:117,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:118,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:119,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:120,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:121,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:123,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:124,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:125,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:127,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:128,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:129,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:130,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:131,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:132,1
    - Dst: basename_single_testcase
      Src: /src/core/tests/unit/evalfunction_test.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 134
    functionName: test_basename
    functionSourceFile: /src/core/tests/unit/evalfunction_test.c
    functionUses: 0
    functionsReached:
    - basename_single_testcase
    linkageType: ''
    returnType: void
    signature: void test_basename(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/evalfunction_test.c:138,1
    - Dst: StringSetNew
      Src: /src/core/tests/unit/evalfunction_test.c:139,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/evalfunction_test.c:145,1
    - Dst: ModuleProtocol
      Src: /src/core/tests/unit/evalfunction_test.c:146,1
    - Dst: VarRefParseFromScope
      Src: /src/core/tests/unit/evalfunction_test.c:148,1
    - Dst: assert_true
      Src: /src/core/tests/unit/evalfunction_test.c:149,1
    - Dst: EvalContextVariableGet
      Src: /src/core/tests/unit/evalfunction_test.c:149,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:150,1
    - Dst: free
      Src: /src/core/tests/unit/evalfunction_test.c:151,1
    - Dst: sysconf
      Src: /src/core/tests/unit/evalfunction_test.c:160,1
    - Dst: mmap
      Src: /src/core/tests/unit/evalfunction_test.c:161,1
    - Dst: assert_true
      Src: /src/core/tests/unit/evalfunction_test.c:163,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/evalfunction_test.c:164,1
    - Dst: mprotect
      Src: /src/core/tests/unit/evalfunction_test.c:164,1
    - Dst: strlen
      Src: /src/core/tests/unit/evalfunction_test.c:167,1
    - Dst: memcpy
      Src: /src/core/tests/unit/evalfunction_test.c:168,1
    - Dst: strlen
      Src: /src/core/tests/unit/evalfunction_test.c:168,1
    - Dst: ModuleProtocol
      Src: /src/core/tests/unit/evalfunction_test.c:170,1
    - Dst: VarRefParseFromScope
      Src: /src/core/tests/unit/evalfunction_test.c:172,1
    - Dst: assert_true
      Src: /src/core/tests/unit/evalfunction_test.c:173,1
    - Dst: EvalContextVariableGet
      Src: /src/core/tests/unit/evalfunction_test.c:173,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:174,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/evalfunction_test.c:176,1
    - Dst: munmap
      Src: /src/core/tests/unit/evalfunction_test.c:176,1
    - Dst: StringSetDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:179,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/evalfunction_test.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 181
    functionName: test_module_protocol_percent_no_delimiter
    functionSourceFile: /src/core/tests/unit/evalfunction_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert_int_equal
    - EvalContextDestroy
    - strlen
    - munmap
    - mprotect
    - assert_true
    - VarRefParseFromScope
    - sysconf
    - StringSetDestroy
    - VarRefDestroy
    - EvalContextNew
    - EvalContextVariableGet
    - xstrdup
    - mmap
    - free
    - ModuleProtocol
    - StringSetNew
    linkageType: ''
    returnType: void
    signature: void test_module_protocol_percent_no_delimiter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/evalfunction_test.c:185,1
    - Dst: unit_test
      Src: /src/core/tests/unit/evalfunction_test.c:187,1
    - Dst: unit_test
      Src: /src/core/tests/unit/evalfunction_test.c:188,1
    - Dst: unit_test
      Src: /src/core/tests/unit/evalfunction_test.c:189,1
    - Dst: unit_test
      Src: /src/core/tests/unit/evalfunction_test.c:190,1
    - Dst: run_tests
      Src: /src/core/tests/unit/evalfunction_test.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: main
    functionSourceFile: /src/core/tests/unit/evalfunction_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mock_assert
      Src: /src/core/tests/unit/rlist_test.c:15,1
    - Dst: abort
      Src: /src/core/tests/unit/rlist_test.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: FatalError
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 1
    functionsReached:
    - abort
    - mock_assert
    linkageType: ''
    returnType: void
    signature: void FatalError(ARG_UNUSED char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:23,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:23,1
    - Dst: RlistPrepend
      Src: /src/core/tests/unit/rlist_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:26,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:26,1
    - Dst: RlistPrepend
      Src: /src/core/tests/unit/rlist_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:29,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:29,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: test_length
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RlistDestroy
    - assert_int_equal
    - RlistPrepend
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromSplitString
      Src: /src/core/tests/unit/rlist_test.c:36,1
    - Dst: RlistFromSplitString
      Src: /src/core/tests/unit/rlist_test.c:37,1
    - Dst: RlistFromSplitString
      Src: /src/core/tests/unit/rlist_test.c:38,1
    - Dst: RlistFromSplitString
      Src: /src/core/tests/unit/rlist_test.c:39,1
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:41,1
    - Dst: RlistEqual
      Src: /src/core/tests/unit/rlist_test.c:41,1
    - Dst: assert_false
      Src: /src/core/tests/unit/rlist_test.c:42,1
    - Dst: RlistEqual
      Src: /src/core/tests/unit/rlist_test.c:42,1
    - Dst: assert_false
      Src: /src/core/tests/unit/rlist_test.c:43,1
    - Dst: RlistEqual
      Src: /src/core/tests/unit/rlist_test.c:43,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:45,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:46,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:47,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: test_equality
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - RlistEqual
    - assert_true
    - RlistFromSplitString
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void test_equality(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistPrependScalarIdemp
      Src: /src/core/tests/unit/rlist_test.c:55,1
    - Dst: RlistPrependScalarIdemp
      Src: /src/core/tests/unit/rlist_test.c:56,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:58,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:58,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:59,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:59,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: test_prepend_scalar_idempotent
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistPrependScalarIdemp
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_prepend_scalar_idempotent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistPrepend
      Src: /src/core/tests/unit/rlist_test.c:68,1
    - Dst: RlistPrepend
      Src: /src/core/tests/unit/rlist_test.c:69,1
    - Dst: RlistCopy
      Src: /src/core/tests/unit/rlist_test.c:71,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:73,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:73,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:73,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:74,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:74,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:74,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:76,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: test_copy
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RlistCopy
    - RlistDestroy
    - assert_string_equal
    - RlistScalarValue
    - RlistPrepend
    linkageType: ''
    returnType: void
    signature: void test_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:83,1
    - Dst: RvalScalarValue
      Src: /src/core/tests/unit/rlist_test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: test_rval_to_scalar
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - RvalScalarValue
    linkageType: ''
    returnType: void
    signature: void test_rval_to_scalar(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_assert_failure
      Src: /src/core/tests/unit/rlist_test.c:89,1
    - Dst: RvalScalarValue
      Src: /src/core/tests/unit/rlist_test.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: test_rval_to_scalar2
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RvalScalarValue
    - expect_assert_failure
    linkageType: ''
    returnType: void
    signature: void test_rval_to_scalar2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_assert_failure
      Src: /src/core/tests/unit/rlist_test.c:95,1
    - Dst: RvalRlistValue
      Src: /src/core/tests/unit/rlist_test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: test_rval_to_list
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RvalRlistValue
    - expect_assert_failure
    linkageType: ''
    returnType: void
    signature: void test_rval_to_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/rlist_test.c:101,1
    - Dst: RvalRlistValue
      Src: /src/core/tests/unit/rlist_test.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: test_rval_to_list2
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RvalRlistValue
    - assert_false
    linkageType: ''
    returnType: void
    signature: void test_rval_to_list2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_assert_failure
      Src: /src/core/tests/unit/rlist_test.c:107,1
    - Dst: RvalFnCallValue
      Src: /src/core/tests/unit/rlist_test.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: test_rval_to_fncall
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RvalFnCallValue
    - expect_assert_failure
    linkageType: ''
    returnType: void
    signature: void test_rval_to_fncall(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/rlist_test.c:113,1
    - Dst: RvalFnCallValue
      Src: /src/core/tests/unit/rlist_test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: test_rval_to_fncall2
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RvalFnCallValue
    - assert_false
    linkageType: ''
    returnType: void
    signature: void test_rval_to_fncall2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:119,1
    - Dst: RlistLast
      Src: /src/core/tests/unit/rlist_test.c:119,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/rlist_test.c:120,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:121,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:121,1
    - Dst: RlistLast
      Src: /src/core/tests/unit/rlist_test.c:121,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/rlist_test.c:122,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:123,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:123,1
    - Dst: RlistLast
      Src: /src/core/tests/unit/rlist_test.c:123,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: test_last
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RlistAppendScalar
    - assert_true
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLast
    linkageType: ''
    returnType: void
    signature: void test_last(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringToLongDefaultOnError
      Src: /src/core/tests/unit/rlist_test.c:130,1
    - Dst: StringToLongExitOnError
      Src: /src/core/tests/unit/rlist_test.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: is_even
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - StringToLongDefaultOnError
    - StringToLongExitOnError
    linkageType: ''
    returnType: bool
    signature: bool is_even(void *item, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFromLong
      Src: /src/core/tests/unit/rlist_test.c:140,1
    - Dst: RlistAppend
      Src: /src/core/tests/unit/rlist_test.c:141,1
    - Dst: free
      Src: /src/core/tests/unit/rlist_test.c:142,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:145,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:145,1
    - Dst: RlistFilter
      Src: /src/core/tests/unit/rlist_test.c:147,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:148,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:148,1
    - Dst: StringToLongExitOnError
      Src: /src/core/tests/unit/rlist_test.c:153,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:154,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 160
    functionName: test_filter
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFilter
    - RlistAppend
    - StringToLongExitOnError
    - StringFromLong
    - RlistDestroy
    - free
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_filter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFromLong
      Src: /src/core/tests/unit/rlist_test.c:167,1
    - Dst: RlistAppend
      Src: /src/core/tests/unit/rlist_test.c:168,1
    - Dst: free
      Src: /src/core/tests/unit/rlist_test.c:169,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:172,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:172,1
    - Dst: RlistFilter
      Src: /src/core/tests/unit/rlist_test.c:174,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:175,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:175,1
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 178
    functionName: test_filter_everything
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFilter
    - RlistAppend
    - assert_true
    - StringFromLong
    - free
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_filter_everything(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromSplitString
      Src: /src/core/tests/unit/rlist_test.c:182,1
    - Dst: RlistReverse
      Src: /src/core/tests/unit/rlist_test.c:184,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:185,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:185,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:186,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:186,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:187,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:187,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:188,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:188,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: test_reverse
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RlistReverse
    - assert_int_equal
    - RlistFromSplitString
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_reverse(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromSplitString
      Src: /src/core/tests/unit/rlist_test.c:195,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:196,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:196,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:197,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:197,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:198,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:198,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: test_split_escaped
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromSplitString
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_split_escaped(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromStringSplitLines
      Src: /src/core/tests/unit/rlist_test.c:205,1
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:206,1
    - Dst: RlistFromStringSplitLines
      Src: /src/core/tests/unit/rlist_test.c:207,1
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:208,1
    - Dst: RlistFromStringSplitLines
      Src: /src/core/tests/unit/rlist_test.c:210,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:211,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:211,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:212,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:212,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:213,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:213,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:214,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:214,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:216,1
    - Dst: RlistFromStringSplitLines
      Src: /src/core/tests/unit/rlist_test.c:219,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:220,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:220,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:221,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:221,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:222,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:222,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:223,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:223,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:224,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:224,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:225,1
    - Dst: RlistFromStringSplitLines
      Src: /src/core/tests/unit/rlist_test.c:227,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:228,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:228,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:229,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:229,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:230,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:230,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:231,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:231,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:233,1
    - Dst: RlistFromStringSplitLines
      Src: /src/core/tests/unit/rlist_test.c:236,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:237,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:237,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:238,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:238,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:239,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:239,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:240,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:240,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:241,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:241,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:242,1
    - Dst: RlistFromStringSplitLines
      Src: /src/core/tests/unit/rlist_test.c:245,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:246,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:246,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:247,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:247,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:248,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:248,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:249,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:249,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:250,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:250,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 252
    functionName: test_split_lines
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RlistFromStringSplitLines
    - assert_int_equal
    - assert_true
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_split_lines(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/tests/unit/rlist_test.c:257,1
    - Dst: RlistFromSplitString
      Src: /src/core/tests/unit/rlist_test.c:261,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:262,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:262,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:264,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:264,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:265,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:265,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 268
    functionName: test_split_long
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromSplitString
    - memset
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_split_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/tests/unit/rlist_test.c:273,1
    - Dst: memcpy
      Src: /src/core/tests/unit/rlist_test.c:276,1
    - Dst: memcpy
      Src: /src/core/tests/unit/rlist_test.c:277,1
    - Dst: RlistFromSplitString
      Src: /src/core/tests/unit/rlist_test.c:279,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:280,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:280,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:283,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:283,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:284,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:284,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 287
    functionName: test_split_long_escaped
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert_int_equal
    - RlistFromSplitString
    - memset
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_split_long_escaped(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistParseString
      Src: /src/core/tests/unit/rlist_test.c:570,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:571,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:571,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: test_new_parser_success
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RlistParseString
    - assert_int_equal
    - RlistDestroy
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_new_parser_success()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistParseString
      Src: /src/core/tests/unit/rlist_test.c:586,1
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:587,1
    - Dst: RlistLast
      Src: /src/core/tests/unit/rlist_test.c:587,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 591
    functionName: test_new_parser_failure
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RlistParseString
    - RlistLast
    - assert_true
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void test_new_parser_failure()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:595,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:597,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:597,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:599,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:599,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:600,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:600,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:601,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:601,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 604
    functionName: test_regex_split
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromRegexSplitNoOverflow
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_regex_split()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:608,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:610,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:610,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:612,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:612,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:613,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:613,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 616
    functionName: test_regex_split_too_few_chunks
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromRegexSplitNoOverflow
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_regex_split_too_few_chunks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:620,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:622,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:622,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:624,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:624,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:625,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:625,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:626,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:626,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:627,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:627,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 630
    functionName: test_regex_split_too_many_chunks
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromRegexSplitNoOverflow
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_regex_split_too_many_chunks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:634,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:636,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:636,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:638,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:638,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:639,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:639,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:640,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:640,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:641,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:641,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:642,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:642,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 645
    functionName: test_regex_split_empty_chunks
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromRegexSplitNoOverflow
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_regex_split_empty_chunks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:649,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:651,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:651,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:652,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:652,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 655
    functionName: test_regex_split_no_match
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromRegexSplitNoOverflow
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_regex_split_no_match()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:659,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:661,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:661,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:663,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:663,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:664,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:664,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:665,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:665,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:667,1
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:670,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:672,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:672,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:674,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:674,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:675,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:675,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:676,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:676,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:677,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:677,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:679,1
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:682,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:684,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:684,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:686,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:686,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:687,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:687,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:688,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:688,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:689,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:689,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:690,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:690,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:691,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:691,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:692,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:692,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 695
    functionName: test_regex_split_adjacent_separators
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromRegexSplitNoOverflow
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_regex_split_adjacent_separators()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:700,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:702,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:702,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:703,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:703,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:704,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:704,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:706,1
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:709,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:711,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:711,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:712,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:712,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:713,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:713,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:714,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:714,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:715,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:715,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 718
    functionName: test_regex_split_real_regex
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromRegexSplitNoOverflow
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_regex_split_real_regex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/tests/unit/rlist_test.c:722,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/rlist_test.c:724,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/rlist_test.c:724,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:726,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:726,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:727,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:727,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:728,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:728,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 731
    functionName: test_regex_split_overlapping_delimiters
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RlistFromRegexSplitNoOverflow
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void test_regex_split_overlapping_delimiters()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/tests/unit/rlist_test.c:736,1
    - Dst: RvalWrite
      Src: /src/core/tests/unit/rlist_test.c:737,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/rlist_test.c:738,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:739,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/rlist_test.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 741
    functionName: test_rval_write
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - StringWriter
    - StringWriterData
    - RvalWrite
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_rval_write()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/tests/unit/rlist_test.c:746,1
    - Dst: RvalWriteQuoted
      Src: /src/core/tests/unit/rlist_test.c:747,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/rlist_test.c:748,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:749,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/rlist_test.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 751
    functionName: test_rval_write_quoted
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - StringWriter
    - StringWriterData
    - assert_string_equal
    - RvalWriteQuoted
    linkageType: ''
    returnType: void
    signature: void test_rval_write_quoted()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/tests/unit/rlist_test.c:756,1
    - Dst: RvalWriteRaw
      Src: /src/core/tests/unit/rlist_test.c:757,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/rlist_test.c:758,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:759,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/rlist_test.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 761
    functionName: test_rval_write_raw
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - RvalWriteRaw
    - StringWriter
    - StringWriterData
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_rval_write_raw()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/rlist_test.c:767,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/rlist_test.c:768,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/rlist_test.c:769,1
    - Dst: RlistKeyIn_IgnoreCase
      Src: /src/core/tests/unit/rlist_test.c:771,1
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:772,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:773,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:773,1
    - Dst: RlistKeyIn_IgnoreCase
      Src: /src/core/tests/unit/rlist_test.c:775,1
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:776,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/rlist_test.c:777,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/rlist_test.c:777,1
    - Dst: RlistKeyIn_IgnoreCase
      Src: /src/core/tests/unit/rlist_test.c:779,1
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:780,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/rlist_test.c:782,1
    - Dst: assert_true
      Src: /src/core/tests/unit/rlist_test.c:784,1
    - Dst: RlistKeyIn_IgnoreCase
      Src: /src/core/tests/unit/rlist_test.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 785
    functionName: test_key_in_ignore_case
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - RlistAppendScalar
    - assert_true
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    - RlistKeyIn_IgnoreCase
    linkageType: ''
    returnType: void
    signature: void test_key_in_ignore_case()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/rlist_test.c:789,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:792,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:793,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:794,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:795,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:796,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:797,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:798,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:799,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:800,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:801,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:802,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:803,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:804,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:805,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:806,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:807,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:808,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:809,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:810,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:811,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:812,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:813,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:814,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:815,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:816,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:817,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:818,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:819,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:820,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:821,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:822,1
    - Dst: unit_test
      Src: /src/core/tests/unit/rlist_test.c:823,1
    - Dst: run_tests
      Src: /src/core/tests/unit/rlist_test.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 827
    functionName: main
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mock_assert
      Src: /src/core/tests/unit/rlist_test.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - file
    - lineno
    - format
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 841
    functionName: __ProgrammingError
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - mock_assert
    linkageType: ''
    returnType: void
    signature: void __ProgrammingError(const char *file, int lineno, const char *format,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regptr
    - cmpptr
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: FullTextMatch
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: bool
    signature: bool FullTextMatch(const char *regptr, const char *cmpptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - lval
    - type_out
    argTypes:
    - EvalContext*
    - VarRef*
    - DataType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 851
    functionName: EvalContextVariableGet
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 3
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void *EvalContextVariableGet(const EvalContext *ctx, const VarRef *lval,
      DataType *type_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 856
    functionName: __ThreadLock
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __ThreadLock(pthread_mutex_t *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 861
    functionName: __ThreadUnlock
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __ThreadUnlock(pthread_mutex_t *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - vtype
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 866
    functionName: IsNakedVar
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 1
    functionsReached:
    - fail
    linkageType: ''
    returnType: int
    signature: int IsNakedVar(const char *str, char vtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - fp
    argTypes:
    - Writer*
    - FnCall*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 871
    functionName: FnCallPrint
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void FnCallPrint(Writer *writer, const FnCall *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: GetNaked
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void GetNaked(char *s1, const char *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - scope
    - lval
    - returnv
    argTypes:
    - char*
    - char*
    - Rval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 888
    functionName: ScopeGetVariable
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: DataType
    signature: DataType ScopeGetVariable(const char *scope, const char *lval, Rval
      *returnv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - CfAssoc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 893
    functionName: DeleteAssoc
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void DeleteAssoc(CfAssoc *ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - old
    argTypes:
    - CfAssoc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 898
    functionName: CopyAssoc
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: CfAssoc
    signature: CfAssoc *CopyAssoc(CfAssoc *old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FnCall*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 903
    functionName: FnCallCopy
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: FnCall
    signature: FnCall *FnCallCopy(const FnCall *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FnCall*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 908
    functionName: FnCallDestroy
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void FnCallDestroy(FnCall *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - to
    - from
    - len
    - sep
    argTypes:
    - char*
    - char*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 913
    functionName: SubStrnCopyChr
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: int
    signature: int SubStrnCopyChr(char *to, const char *from, int len, char sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - regexp
    - teststring
    - s
    - e
    argTypes:
    - char*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 918
    functionName: BlockTextMatch
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: int
    signature: int BlockTextMatch(const char *regexp, const char *teststring, int
      *s, int *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FnCall*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: FnCallToJson
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *FnCallToJson(const FnCall *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initialCapacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 928
    functionName: JsonObjectCreate
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonObjectCreate(size_t initialCapacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - key
    - array
    argTypes:
    - JsonElement*
    - char*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 933
    functionName: JsonObjectAppendArray
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void JsonObjectAppendArray(JsonElement *object, const char *key, JsonElement
      *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - key
    - value
    argTypes:
    - JsonElement*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: JsonObjectAppendString
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void JsonObjectAppendString(JsonElement *obj, const char *key, const
      char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initialCapacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 943
    functionName: JsonArrayCreate
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonArrayCreate(size_t initialCapacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - JsonElement*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 948
    functionName: JsonArrayAppendString
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void JsonArrayAppendString(JsonElement *array, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - childArray
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 953
    functionName: JsonArrayAppendArray
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void JsonArrayAppendArray(JsonElement *array, JsonElement *childArray)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - object
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: JsonArrayAppendObject
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: void JsonArrayAppendObject(JsonElement *array, JsonElement *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/rlist_test.c:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 963
    functionName: JsonStringCreate
    functionSourceFile: /src/core/tests/unit/rlist_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonStringCreate(const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:75,1
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:82,1
    - Dst: open
      Src: /src/core/tests/unit/files_copy_test.c:86,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/files_copy_test.c:87,1
    - Dst: lseek
      Src: /src/core/tests/unit/files_copy_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:93,1
    - Dst: write
      Src: /src/core/tests/unit/files_copy_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:98,1
    - Dst: ftruncate
      Src: /src/core/tests/unit/files_copy_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:101,1
    - Dst: fsync
      Src: /src/core/tests/unit/files_copy_test.c:105,1
    - Dst: close
      Src: /src/core/tests/unit/files_copy_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:108,1
    - Dst: stat
      Src: /src/core/tests/unit/files_copy_test.c:111,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/files_copy_test.c:112,1
    - Dst: unlink
      Src: /src/core/tests/unit/files_copy_test.c:114,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:115,1
    - Dst: ST_NBYTES
      Src: /src/core/tests/unit/files_copy_test.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 126
    functionName: FsSupportsSparseFiles
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - ftruncate
    - unlink
    - write
    - assert_int_not_equal
    - Log
    - open
    - fsync
    - lseek
    - ST_NBYTES
    - close
    linkageType: ''
    returnType: bool
    signature: bool FsSupportsSparseFiles(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LogSetGlobalLevel
      Src: /src/core/tests/unit/files_copy_test.c:132,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/files_copy_test.c:134,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/files_copy_test.c:135,1
    - Dst: stat
      Src: /src/core/tests/unit/files_copy_test.c:139,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/files_copy_test.c:140,1
    - Dst: ST_BLKSIZE
      Src: /src/core/tests/unit/files_copy_test.c:142,1
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:143,1
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:146,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_copy_test.c:149,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_copy_test.c:152,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_copy_test.c:155,1
    - Dst: mkdir
      Src: /src/core/tests/unit/files_copy_test.c:158,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:159,1
    - Dst: FsSupportsSparseFiles
      Src: /src/core/tests/unit/files_copy_test.c:162,1
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 173
    functionName: init
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 2
    functionsReached:
    - stat
    - assert_int_equal
    - mkdtemp
    - LogSetGlobalLevel
    - assert_int_not_equal
    - ST_BLKSIZE
    - FsSupportsSparseFiles
    - Log
    - xsnprintf
    - mkdir
    linkageType: ''
    returnType: void
    signature: void init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:188,1
    - Dst: unlink
      Src: /src/core/tests/unit/files_copy_test.c:193,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:194,1
    - Dst: rmdir
      Src: /src/core/tests/unit/files_copy_test.c:195,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:196,1
    - Dst: unlink
      Src: /src/core/tests/unit/files_copy_test.c:197,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:198,1
    - Dst: rmdir
      Src: /src/core/tests/unit/files_copy_test.c:199,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/files_copy_test.c:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 201
    functionName: finalise
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - Log
    - unlink
    - rmdir
    linkageType: ''
    returnType: void
    signature: void finalise(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/core/tests/unit/files_copy_test.c:209,1
    - Dst: MIN
      Src: /src/core/tests/unit/files_copy_test.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - buf_size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: FillBufferWithGarbage
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - MIN
    linkageType: ''
    returnType: void
    signature: void FillBufferWithGarbage(char *buf, size_t buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/core/tests/unit/files_copy_test.c:216,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/files_copy_test.c:217,1
    - Dst: ftruncate
      Src: /src/core/tests/unit/files_copy_test.c:219,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/files_copy_test.c:220,1
    - Dst: MIN
      Src: /src/core/tests/unit/files_copy_test.c:226,1
    - Dst: FileSparseWrite
      Src: /src/core/tests/unit/files_copy_test.c:227,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:228,1
    - Dst: FileSparseClose
      Src: /src/core/tests/unit/files_copy_test.c:233,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - name
    - buf
    - count
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 235
    functionName: WriteBufferToFile
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - ftruncate
    - FileSparseWrite
    - FileSparseClose
    - MIN
    - assert_true
    - assert_int_not_equal
    - open
    linkageType: ''
    returnType: void
    signature: void WriteBufferToFile(const char *name, const void *buf, const size_t
      count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/unit/files_copy_test.c:240,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/files_copy_test.c:241,1
    - Dst: fread
      Src: /src/core/tests/unit/files_copy_test.c:246,1
    - Dst: memcmp
      Src: /src/core/tests/unit/files_copy_test.c:250,1
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:254,1
    - Dst: fclose
      Src: /src/core/tests/unit/files_copy_test.c:257,1
    - Dst: ferror
      Src: /src/core/tests/unit/files_copy_test.c:264,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_copy_test.c:265,1
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:269,1
    - Dst: fclose
      Src: /src/core/tests/unit/files_copy_test.c:271,1
    - Dst: fclose
      Src: /src/core/tests/unit/files_copy_test.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - filename
    - buf
    - buf_size
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 277
    functionName: CompareFileToBuffer
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - fopen
    - fread
    - assert_int_not_equal
    - Log
    - fclose
    - memcmp
    - ferror
    linkageType: ''
    returnType: bool
    signature: "bool CompareFileToBuffer(const char *filename,\n                                const
      void *buf, size_t buf_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/tests/unit/files_copy_test.c:285,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/files_copy_test.c:286,1
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:288,1
    - Dst: ST_NBYTES
      Src: /src/core/tests/unit/files_copy_test.c:290,1
    - Dst: ST_NBLOCKS
      Src: /src/core/tests/unit/files_copy_test.c:291,1
    - Dst: ST_BLKSIZE
      Src: /src/core/tests/unit/files_copy_test.c:291,1
    - Dst: ST_NBYTES
      Src: /src/core/tests/unit/files_copy_test.c:294,1
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:296,1
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 306
    functionName: FileIsSparse
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_not_equal
    - ST_BLKSIZE
    - Log
    - ST_NBLOCKS
    - ST_NBYTES
    linkageType: ''
    returnType: bool
    signature: bool FileIsSparse(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:313,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_copy_test.c:316,1
    - Dst: FillBufferWithGarbage
      Src: /src/core/tests/unit/files_copy_test.c:318,1
    - Dst: WriteBufferToFile
      Src: /src/core/tests/unit/files_copy_test.c:320,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/files_copy_test.c:323,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:324,1
    - Dst: FileIsSparse
      Src: /src/core/tests/unit/files_copy_test.c:328,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_copy_test.c:329,1
    - Dst: CompareFileToBuffer
      Src: /src/core/tests/unit/files_copy_test.c:332,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:333,1
    - Dst: free
      Src: /src/core/tests/unit/files_copy_test.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 338
    functionName: test_sparse_files_1
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - CopyRegularFileDisk
    - WriteBufferToFile
    - CompareFileToBuffer
    - assert_true
    - FileIsSparse
    - xmalloc
    - Log
    - FillBufferWithGarbage
    - free
    linkageType: ''
    returnType: void
    signature: void test_sparse_files_1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:342,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_copy_test.c:345,1
    - Dst: FillBufferWithGarbage
      Src: /src/core/tests/unit/files_copy_test.c:347,1
    - Dst: memset
      Src: /src/core/tests/unit/files_copy_test.c:348,1
    - Dst: WriteBufferToFile
      Src: /src/core/tests/unit/files_copy_test.c:350,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/files_copy_test.c:353,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:354,1
    - Dst: FileIsSparse
      Src: /src/core/tests/unit/files_copy_test.c:358,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_copy_test.c:359,1
    - Dst: CompareFileToBuffer
      Src: /src/core/tests/unit/files_copy_test.c:362,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:363,1
    - Dst: free
      Src: /src/core/tests/unit/files_copy_test.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 368
    functionName: test_sparse_files_2
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - CopyRegularFileDisk
    - WriteBufferToFile
    - CompareFileToBuffer
    - assert_true
    - FileIsSparse
    - xmalloc
    - Log
    - FillBufferWithGarbage
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void test_sparse_files_2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:372,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_copy_test.c:375,1
    - Dst: FillBufferWithGarbage
      Src: /src/core/tests/unit/files_copy_test.c:377,1
    - Dst: memset
      Src: /src/core/tests/unit/files_copy_test.c:378,1
    - Dst: WriteBufferToFile
      Src: /src/core/tests/unit/files_copy_test.c:380,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/files_copy_test.c:383,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:384,1
    - Dst: FileIsSparse
      Src: /src/core/tests/unit/files_copy_test.c:388,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_copy_test.c:389,1
    - Dst: CompareFileToBuffer
      Src: /src/core/tests/unit/files_copy_test.c:392,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:393,1
    - Dst: free
      Src: /src/core/tests/unit/files_copy_test.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 398
    functionName: test_sparse_files_3
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - CopyRegularFileDisk
    - WriteBufferToFile
    - CompareFileToBuffer
    - assert_true
    - FileIsSparse
    - xmalloc
    - Log
    - FillBufferWithGarbage
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void test_sparse_files_3(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:402,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_copy_test.c:405,1
    - Dst: FillBufferWithGarbage
      Src: /src/core/tests/unit/files_copy_test.c:407,1
    - Dst: memset
      Src: /src/core/tests/unit/files_copy_test.c:408,1
    - Dst: WriteBufferToFile
      Src: /src/core/tests/unit/files_copy_test.c:410,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/files_copy_test.c:413,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:414,1
    - Dst: FileIsSparse
      Src: /src/core/tests/unit/files_copy_test.c:418,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_copy_test.c:419,1
    - Dst: CompareFileToBuffer
      Src: /src/core/tests/unit/files_copy_test.c:422,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:423,1
    - Dst: free
      Src: /src/core/tests/unit/files_copy_test.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 428
    functionName: test_sparse_files_4
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - CopyRegularFileDisk
    - WriteBufferToFile
    - CompareFileToBuffer
    - assert_true
    - FileIsSparse
    - xmalloc
    - Log
    - FillBufferWithGarbage
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void test_sparse_files_4(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:432,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_copy_test.c:435,1
    - Dst: FillBufferWithGarbage
      Src: /src/core/tests/unit/files_copy_test.c:437,1
    - Dst: memset
      Src: /src/core/tests/unit/files_copy_test.c:438,1
    - Dst: WriteBufferToFile
      Src: /src/core/tests/unit/files_copy_test.c:440,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/files_copy_test.c:443,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:444,1
    - Dst: FileIsSparse
      Src: /src/core/tests/unit/files_copy_test.c:448,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:449,1
    - Dst: CompareFileToBuffer
      Src: /src/core/tests/unit/files_copy_test.c:452,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:453,1
    - Dst: free
      Src: /src/core/tests/unit/files_copy_test.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 458
    functionName: test_sparse_files_5
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - CopyRegularFileDisk
    - WriteBufferToFile
    - CompareFileToBuffer
    - assert_true
    - FileIsSparse
    - xmalloc
    - Log
    - FillBufferWithGarbage
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void test_sparse_files_5(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:462,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_copy_test.c:465,1
    - Dst: FillBufferWithGarbage
      Src: /src/core/tests/unit/files_copy_test.c:467,1
    - Dst: memset
      Src: /src/core/tests/unit/files_copy_test.c:468,1
    - Dst: WriteBufferToFile
      Src: /src/core/tests/unit/files_copy_test.c:470,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/files_copy_test.c:473,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:474,1
    - Dst: FileIsSparse
      Src: /src/core/tests/unit/files_copy_test.c:478,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:479,1
    - Dst: CompareFileToBuffer
      Src: /src/core/tests/unit/files_copy_test.c:482,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:483,1
    - Dst: free
      Src: /src/core/tests/unit/files_copy_test.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 488
    functionName: test_sparse_files_6
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - CopyRegularFileDisk
    - WriteBufferToFile
    - CompareFileToBuffer
    - assert_true
    - FileIsSparse
    - xmalloc
    - Log
    - FillBufferWithGarbage
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void test_sparse_files_6(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:492,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_copy_test.c:495,1
    - Dst: FillBufferWithGarbage
      Src: /src/core/tests/unit/files_copy_test.c:497,1
    - Dst: memset
      Src: /src/core/tests/unit/files_copy_test.c:498,1
    - Dst: WriteBufferToFile
      Src: /src/core/tests/unit/files_copy_test.c:500,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/files_copy_test.c:503,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:504,1
    - Dst: FileIsSparse
      Src: /src/core/tests/unit/files_copy_test.c:508,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:509,1
    - Dst: CompareFileToBuffer
      Src: /src/core/tests/unit/files_copy_test.c:512,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:513,1
    - Dst: free
      Src: /src/core/tests/unit/files_copy_test.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 518
    functionName: test_sparse_files_7
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - CopyRegularFileDisk
    - WriteBufferToFile
    - CompareFileToBuffer
    - assert_true
    - FileIsSparse
    - xmalloc
    - Log
    - FillBufferWithGarbage
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void test_sparse_files_7(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/tests/unit/files_copy_test.c:522,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_copy_test.c:527,1
    - Dst: FillBufferWithGarbage
      Src: /src/core/tests/unit/files_copy_test.c:529,1
    - Dst: memset
      Src: /src/core/tests/unit/files_copy_test.c:530,1
    - Dst: WriteBufferToFile
      Src: /src/core/tests/unit/files_copy_test.c:532,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/files_copy_test.c:535,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:536,1
    - Dst: FileIsSparse
      Src: /src/core/tests/unit/files_copy_test.c:540,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_copy_test.c:541,1
    - Dst: CompareFileToBuffer
      Src: /src/core/tests/unit/files_copy_test.c:544,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_copy_test.c:545,1
    - Dst: free
      Src: /src/core/tests/unit/files_copy_test.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 550
    functionName: test_sparse_files_8
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - CopyRegularFileDisk
    - WriteBufferToFile
    - CompareFileToBuffer
    - assert_true
    - FileIsSparse
    - xmalloc
    - Log
    - FillBufferWithGarbage
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void test_sparse_files_8(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/files_copy_test.c:556,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:559,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:560,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:561,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:562,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:563,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:564,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:565,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:566,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:567,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_copy_test.c:568,1
    - Dst: run_tests
      Src: /src/core/tests/unit/files_copy_test.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 574
    functionName: main
    functionSourceFile: /src/core/tests/unit/files_copy_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:26,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:27,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:29,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:30,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:32,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/connection_management_test.c:35,1
    - Dst: ListLen
      Src: /src/core/tests/unit/connection_management_test.c:35,1
    - Dst: PurgeOldConnections
      Src: /src/core/tests/unit/connection_management_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/connection_management_test.c:39,1
    - Dst: ListLen
      Src: /src/core/tests/unit/connection_management_test.c:39,1
    - Dst: assert_true
      Src: /src/core/tests/unit/connection_management_test.c:41,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:41,1
    - Dst: assert_true
      Src: /src/core/tests/unit/connection_management_test.c:42,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:42,1
    - Dst: assert_true
      Src: /src/core/tests/unit/connection_management_test.c:43,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:43,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/connection_management_test.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: test_purge_old_connections_nochange
    functionSourceFile: /src/core/tests/unit/connection_management_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IsItemIn
    - ListLen
    - assert_true
    - PurgeOldConnections
    - PrependItem
    - xsnprintf
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void test_purge_old_connections_nochange(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:56,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:57,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:59,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:60,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:62,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/connection_management_test.c:65,1
    - Dst: ListLen
      Src: /src/core/tests/unit/connection_management_test.c:65,1
    - Dst: PurgeOldConnections
      Src: /src/core/tests/unit/connection_management_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/connection_management_test.c:69,1
    - Dst: ListLen
      Src: /src/core/tests/unit/connection_management_test.c:69,1
    - Dst: assert_false
      Src: /src/core/tests/unit/connection_management_test.c:71,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:71,1
    - Dst: assert_true
      Src: /src/core/tests/unit/connection_management_test.c:72,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:72,1
    - Dst: assert_true
      Src: /src/core/tests/unit/connection_management_test.c:73,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:73,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/connection_management_test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 76
    functionName: test_purge_old_connections_purge_first
    functionSourceFile: /src/core/tests/unit/connection_management_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - IsItemIn
    - ListLen
    - assert_true
    - PurgeOldConnections
    - PrependItem
    - xsnprintf
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void test_purge_old_connections_purge_first(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:86,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:87,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:89,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:90,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:92,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/connection_management_test.c:95,1
    - Dst: ListLen
      Src: /src/core/tests/unit/connection_management_test.c:95,1
    - Dst: PurgeOldConnections
      Src: /src/core/tests/unit/connection_management_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/connection_management_test.c:99,1
    - Dst: ListLen
      Src: /src/core/tests/unit/connection_management_test.c:99,1
    - Dst: assert_true
      Src: /src/core/tests/unit/connection_management_test.c:101,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:101,1
    - Dst: assert_false
      Src: /src/core/tests/unit/connection_management_test.c:102,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:102,1
    - Dst: assert_true
      Src: /src/core/tests/unit/connection_management_test.c:103,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:103,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/connection_management_test.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 106
    functionName: test_purge_old_connections_purge_middle
    functionSourceFile: /src/core/tests/unit/connection_management_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IsItemIn
    - assert_false
    - ListLen
    - assert_true
    - PurgeOldConnections
    - PrependItem
    - xsnprintf
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void test_purge_old_connections_purge_middle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:116,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:117,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:119,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:120,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/connection_management_test.c:122,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/connection_management_test.c:123,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/connection_management_test.c:125,1
    - Dst: ListLen
      Src: /src/core/tests/unit/connection_management_test.c:125,1
    - Dst: PurgeOldConnections
      Src: /src/core/tests/unit/connection_management_test.c:127,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/connection_management_test.c:129,1
    - Dst: ListLen
      Src: /src/core/tests/unit/connection_management_test.c:129,1
    - Dst: assert_true
      Src: /src/core/tests/unit/connection_management_test.c:131,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:131,1
    - Dst: assert_true
      Src: /src/core/tests/unit/connection_management_test.c:132,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:132,1
    - Dst: assert_false
      Src: /src/core/tests/unit/connection_management_test.c:133,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/connection_management_test.c:133,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/connection_management_test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 136
    functionName: test_purge_old_connections_purge_last
    functionSourceFile: /src/core/tests/unit/connection_management_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IsItemIn
    - assert_false
    - ListLen
    - assert_true
    - PurgeOldConnections
    - PrependItem
    - xsnprintf
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void test_purge_old_connections_purge_last(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/connection_management_test.c:141,1
    - Dst: unit_test
      Src: /src/core/tests/unit/connection_management_test.c:144,1
    - Dst: unit_test
      Src: /src/core/tests/unit/connection_management_test.c:145,1
    - Dst: unit_test
      Src: /src/core/tests/unit/connection_management_test.c:146,1
    - Dst: unit_test
      Src: /src/core/tests/unit/connection_management_test.c:147,1
    - Dst: run_tests
      Src: /src/core/tests/unit/connection_management_test.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: main
    functionSourceFile: /src/core/tests/unit/connection_management_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseModeString
      Src: /src/core/tests/unit/parsemode_test.c:27,1
    - Dst: assert_true
      Src: /src/core/tests/unit/parsemode_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/parsemode_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/parsemode_test.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: test_mode
    functionSourceFile: /src/core/tests/unit/parsemode_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ParseModeString
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseModeString
      Src: /src/core/tests/unit/parsemode_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/parsemode_test.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: test_validation
    functionSourceFile: /src/core/tests/unit/parsemode_test.c
    functionUses: 0
    functionsReached:
    - ParseModeString
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_validation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/parsemode_test.c:63,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parsemode_test.c:66,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parsemode_test.c:67,1
    - Dst: run_tests
      Src: /src/core/tests/unit/parsemode_test.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: main
    functionSourceFile: /src/core/tests/unit/parsemode_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/package_versions_compare_test.c:9,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:23,1
    - Dst: ComparePackages
      Src: /src/core/tests/unit/package_versions_compare_test.c:23,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/package_versions_compare_test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 26
    functionName: test_different_name
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - EvalContextNew
    - assert_int_equal
    - EvalContextDestroy
    - ComparePackages
    linkageType: ''
    returnType: void
    signature: void test_different_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/package_versions_compare_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:44,1
    - Dst: ComparePackages
      Src: /src/core/tests/unit/package_versions_compare_test.c:44,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/package_versions_compare_test.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: test_wildcard_arch
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - EvalContextNew
    - assert_int_equal
    - EvalContextDestroy
    - ComparePackages
    linkageType: ''
    returnType: void
    signature: void test_wildcard_arch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/package_versions_compare_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:65,1
    - Dst: ComparePackages
      Src: /src/core/tests/unit/package_versions_compare_test.c:65,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/package_versions_compare_test.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: test_non_matching_arch
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - EvalContextNew
    - assert_int_equal
    - EvalContextDestroy
    - ComparePackages
    linkageType: ''
    returnType: void
    signature: void test_non_matching_arch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/package_versions_compare_test.c:72,1
    - Dst: ComparePackages
      Src: /src/core/tests/unit/package_versions_compare_test.c:86,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/package_versions_compare_test.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lhs
    - rhs
    - cmp
    argTypes:
    - char*
    - char*
    - PackageVersionComparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: DoCompare
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - EvalContextNew
    - EvalContextDestroy
    - ComparePackages
    linkageType: ''
    returnType: VersionCmpResult
    signature: VersionCmpResult DoCompare(const char *lhs, const char *rhs, PackageVersionComparator
      cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:95,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: test_wildcard_version
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void test_wildcard_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:100,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:101,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:102,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: test_eq
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void test_eq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:107,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:108,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: test_ne
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void test_ne(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:113,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:114,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:114,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:115,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:115,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:116,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:116,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:117,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:117,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:118,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: test_gt_lt
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void test_gt_lt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:123,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:123,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:124,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:124,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:125,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:125,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:126,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:126,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:127,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:127,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:128,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: test_gte_lte
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void test_gte_lte(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:133,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: wrong_separators
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void wrong_separators(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:138,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: uneven_lengths_1
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:143,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: uneven_lengths_2
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:148,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: uneven_lengths_3
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:153,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: uneven_lengths_4
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:158,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: uneven_lengths_5
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:163,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: uneven_lengths_6
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_6(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:168,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: uneven_lengths_7
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_7(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:173,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: uneven_lengths_8
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_8(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:178,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: uneven_lengths_9
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_9(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:183,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: uneven_lengths_10
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_10(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:188,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: uneven_lengths_11
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_11(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:193,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: uneven_lengths_12
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_12(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:198,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: uneven_lengths_13
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_13(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:203,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: uneven_lengths_14
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_14(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:208,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: uneven_lengths_15
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_15(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:213,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: uneven_lengths_16
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_16(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:218,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: uneven_lengths_17
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_17(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:223,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: uneven_lengths_18
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_18(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:228,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: uneven_lengths_19
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_19(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:233,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: uneven_lengths_20
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void uneven_lengths_20(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:238,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: invalid_01
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void invalid_01(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:243,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: invalid_02
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void invalid_02(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:248,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: invalid_03
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void invalid_03(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:253,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: invalid_04
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void invalid_04(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:258,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: invalid_05
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void invalid_05(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:263,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: invalid_06
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void invalid_06(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:268,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: invalid_07
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void invalid_07(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/package_versions_compare_test.c:273,1
    - Dst: DoCompare
      Src: /src/core/tests/unit/package_versions_compare_test.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: invalid_08
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DoCompare
    linkageType: ''
    returnType: void
    signature: void invalid_08(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/package_versions_compare_test.c:279,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/tests/unit/package_versions_compare_test.c:280,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:284,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:285,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:286,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:287,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:288,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:289,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:290,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:291,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:292,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:293,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:294,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:295,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:296,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:297,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:298,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:299,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:300,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:301,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:302,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:303,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:304,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:305,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:306,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:307,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:308,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:309,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:310,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:311,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:312,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:313,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:314,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:315,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:316,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:317,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:318,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:319,1
    - Dst: unit_test
      Src: /src/core/tests/unit/package_versions_compare_test.c:320,1
    - Dst: run_tests
      Src: /src/core/tests/unit/package_versions_compare_test.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 324
    functionName: main
    functionSourceFile: /src/core/tests/unit/package_versions_compare_test.c
    functionUses: 0
    functionsReached:
    - LogSetGlobalLevel
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/mon_processes_test.c:14,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/mon_processes_test.c:15,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/mon_processes_test.c:18,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/mon_processes_test.c:18,1
    - Dst: mkdir
      Src: /src/core/tests/unit/mon_processes_test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 20
    functionName: tests_setup
    functionSourceFile: /src/core/tests/unit/mon_processes_test.c
    functionUses: 6
    functionsReached:
    - GetStateDir
    - mkdir
    - mkdtemp
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/mon_processes_test.c:25,1
    - Dst: system
      Src: /src/core/tests/unit/mon_processes_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/mon_processes_test.c
    functionUses: 3
    functionsReached:
    - system
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_teardown(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/mon_processes_test.c:44,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/mon_processes_test.c:46,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/mon_processes_test.c:48,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/mon_processes_test.c:52,1
    - Dst: system
      Src: /src/core/tests/unit/mon_processes_test.c:56,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/mon_processes_test.c:57,1
    - Dst: fopen
      Src: /src/core/tests/unit/mon_processes_test.c:58,1
    - Dst: fgets
      Src: /src/core/tests/unit/mon_processes_test.c:62,1
    - Dst: sscanf
      Src: /src/core/tests/unit/mon_processes_test.c:64,1
    - Dst: strcmp
      Src: /src/core/tests/unit/mon_processes_test.c:67,1
    - Dst: strcmp
      Src: /src/core/tests/unit/mon_processes_test.c:68,1
    - Dst: isdigit
      Src: /src/core/tests/unit/mon_processes_test.c:69,1
    - Dst: IsItemIn
      Src: /src/core/tests/unit/mon_processes_test.c:74,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/mon_processes_test.c:76,1
    - Dst: strcmp
      Src: /src/core/tests/unit/mon_processes_test.c:80,1
    - Dst: fclose
      Src: /src/core/tests/unit/mon_processes_test.c:89,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/tests/unit/mon_processes_test.c:91,1
    - Dst: ItemList2CSV
      Src: /src/core/tests/unit/mon_processes_test.c:93,1
    - Dst: Log
      Src: /src/core/tests/unit/mon_processes_test.c:94,1
    - Dst: free
      Src: /src/core/tests/unit/mon_processes_test.c:95,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/mon_processes_test.c:97,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - userListSz
    - numRootProcs
    - numOtherProcs
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 99
    functionName: GetSysUsers
    functionSourceFile: /src/core/tests/unit/mon_processes_test.c
    functionUses: 0
    functionsReached:
    - fgets
    - fopen
    - IsItemIn
    - ItemList2CSV
    - isdigit
    - sscanf
    - DeleteItemList
    - LogGetGlobalLevel
    - Log
    - xsnprintf
    - strcmp
    - PrependItem
    - fclose
    - system
    - free
    linkageType: ''
    returnType: bool
    signature: bool GetSysUsers( int *userListSz, int *numRootProcs, int *numOtherProcs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MonProcessesGatherData
      Src: /src/core/tests/unit/mon_processes_test.c:104,1
    - Dst: MonProcessesGatherData
      Src: /src/core/tests/unit/mon_processes_test.c:105,1
    - Dst: MonProcessesGatherData
      Src: /src/core/tests/unit/mon_processes_test.c:106,1
    - Dst: GetSysUsers
      Src: /src/core/tests/unit/mon_processes_test.c:111,1
    - Dst: Log
      Src: /src/core/tests/unit/mon_processes_test.c:114,1
    - Dst: Log
      Src: /src/core/tests/unit/mon_processes_test.c:122,1
    - Dst: Log
      Src: /src/core/tests/unit/mon_processes_test.c:124,1
    - Dst: assert_in_range
      Src: /src/core/tests/unit/mon_processes_test.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 131
    functionName: test_processes_monitor
    functionSourceFile: /src/core/tests/unit/mon_processes_test.c
    functionUses: 0
    functionsReached:
    - GetSysUsers
    - assert_in_range
    - MonProcessesGatherData
    - Log
    linkageType: ''
    returnType: void
    signature: void test_processes_monitor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LogSetGlobalLevel
      Src: /src/core/tests/unit/mon_processes_test.c:135,1
    - Dst: strcpy
      Src: /src/core/tests/unit/mon_processes_test.c:136,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/mon_processes_test.c:149,1
    - Dst: tests_setup
      Src: /src/core/tests/unit/mon_processes_test.c:150,1
    - Dst: unit_test
      Src: /src/core/tests/unit/mon_processes_test.c:153,1
    - Dst: run_tests
      Src: /src/core/tests/unit/mon_processes_test.c:156,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/mon_processes_test.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 159
    functionName: main
    functionSourceFile: /src/core/tests/unit/mon_processes_test.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - unit_test
    - LogSetGlobalLevel
    - run_tests
    - tests_teardown
    - strcpy
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:14,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:14,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:16,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:19,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:19,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:20,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:21,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:24,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:24,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:26,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:29,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:29,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:31,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:34,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:34,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:36,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:39,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:39,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:40,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:41,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:44,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:44,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:46,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:49,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:49,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:51,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:54,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:56,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:59,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:59,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:61,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:64,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:65,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:66,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:69,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:70,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:71,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:75,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:75,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:77,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:80,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:80,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:81,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:82,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:85,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:87,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:91,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:91,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:93,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:96,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:96,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:97,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:98,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:101,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:101,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:102,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:103,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:107,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:107,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:108,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:109,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:113,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:113,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:114,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:115,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:118,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:118,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/addr_lib_test.c:119,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:120,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:125,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:125,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:126,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:127,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:130,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:130,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:131,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:132,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:135,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:135,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:136,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:137,1
    - Dst: ParseHostPort
      Src: /src/core/tests/unit/addr_lib_test.c:140,1
    - Dst: strcpy
      Src: /src/core/tests/unit/addr_lib_test.c:140,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:141,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 126
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 144
    functionName: test_ParseHostPort
    functionSourceFile: /src/core/tests/unit/addr_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_string_equal
    - strcpy
    - ParseHostPort
    linkageType: ''
    returnType: void
    signature: void test_ParseHostPort()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:149,1
    - Dst: FuzzySetMatch
      Src: /src/core/tests/unit/addr_lib_test.c:149,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/addr_lib_test.c:150,1
    - Dst: FuzzySetMatch
      Src: /src/core/tests/unit/addr_lib_test.c:150,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/addr_lib_test.c:151,1
    - Dst: FuzzySetMatch
      Src: /src/core/tests/unit/addr_lib_test.c:151,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/addr_lib_test.c:152,1
    - Dst: FuzzySetMatch
      Src: /src/core/tests/unit/addr_lib_test.c:152,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/addr_lib_test.c:157,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/addr_lib_test.c:158,1
    - Dst: FuzzySetMatch
      Src: /src/core/tests/unit/addr_lib_test.c:158,1
    - Dst: free
      Src: /src/core/tests/unit/addr_lib_test.c:159,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/addr_lib_test.c:161,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/addr_lib_test.c:162,1
    - Dst: FuzzySetMatch
      Src: /src/core/tests/unit/addr_lib_test.c:162,1
    - Dst: free
      Src: /src/core/tests/unit/addr_lib_test.c:163,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/addr_lib_test.c:166,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/addr_lib_test.c:167,1
    - Dst: FuzzySetMatch
      Src: /src/core/tests/unit/addr_lib_test.c:167,1
    - Dst: free
      Src: /src/core/tests/unit/addr_lib_test.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 169
    functionName: test_FuzzySetMatch
    functionSourceFile: /src/core/tests/unit/addr_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_int_not_equal
    - FuzzySetMatch
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void test_FuzzySetMatch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/addr_lib_test.c:173,1
    - Dst: FuzzyMatchParse
      Src: /src/core/tests/unit/addr_lib_test.c:173,1
    - Dst: assert_true
      Src: /src/core/tests/unit/addr_lib_test.c:174,1
    - Dst: FuzzyMatchParse
      Src: /src/core/tests/unit/addr_lib_test.c:174,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/addr_lib_test.c:177,1
    - Dst: FuzzyMatchParse
      Src: /src/core/tests/unit/addr_lib_test.c:178,1
    - Dst: free
      Src: /src/core/tests/unit/addr_lib_test.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 180
    functionName: test_FuzzyMatchParse
    functionSourceFile: /src/core/tests/unit/addr_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_true
    - FuzzyMatchParse
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void test_FuzzyMatchParse()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/addr_lib_test.c:185,1
    - Dst: unit_test
      Src: /src/core/tests/unit/addr_lib_test.c:188,1
    - Dst: unit_test
      Src: /src/core/tests/unit/addr_lib_test.c:189,1
    - Dst: unit_test
      Src: /src/core/tests/unit/addr_lib_test.c:190,1
    - Dst: run_tests
      Src: /src/core/tests/unit/addr_lib_test.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: main
    functionSourceFile: /src/core/tests/unit/addr_lib_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JoinScopeName
      Src: /src/core/tests/unit/scope_test.c:11,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/scope_test.c:12,1
    - Dst: JoinScopeName
      Src: /src/core/tests/unit/scope_test.c:17,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/scope_test.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 20
    functionName: test_name_join
    functionSourceFile: /src/core/tests/unit/scope_test.c
    functionUses: 0
    functionsReached:
    - JoinScopeName
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_name_join(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit_test
      Src: /src/core/tests/unit/scope_test.c:26,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/scope_test.c:29,1
    - Dst: run_tests
      Src: /src/core/tests/unit/scope_test.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: main
    functionSourceFile: /src/core/tests/unit/scope_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - unit_test
    - run_tests
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/unit/linux_process_test.c:18,1
    - Dst: strcmp
      Src: /src/core/tests/unit/linux_process_test.c:23,1
    - Dst: strcmp
      Src: /src/core/tests/unit/linux_process_test.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - filename
    - flags
    argTypes:
    - char*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 46
    functionName: open
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 11
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int open(const char *filename, ARG_UNUSED int flags, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/tests/unit/linux_process_test.c:52,1
    - Dst: memcpy
      Src: /src/core/tests/unit/linux_process_test.c:54,1
    - Dst: strlen
      Src: /src/core/tests/unit/linux_process_test.c:54,1
    - Dst: strlen
      Src: /src/core/tests/unit/linux_process_test.c:55,1
    - Dst: strlen
      Src: /src/core/tests/unit/linux_process_test.c:56,1
    - Dst: strlen
      Src: /src/core/tests/unit/linux_process_test.c:79,1
    - Dst: memcpy
      Src: /src/core/tests/unit/linux_process_test.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - fd
    - buffer
    - buf_size
    argTypes:
    - int
    - void*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 93
    functionName: read
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 3
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read(int fd, void *buffer, ARG_UNUSED size_t buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - int
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: close
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int close(ARG_UNUSED int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/linux_process_test.c:102,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/linux_process_test.c:103,1
    - Dst: sysconf
      Src: /src/core/tests/unit/linux_process_test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: test_get_start_time_process1
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    - sysconf
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/linux_process_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/linux_process_test.c:110,1
    - Dst: sysconf
      Src: /src/core/tests/unit/linux_process_test.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: test_get_start_time_process2
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    - sysconf
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/linux_process_test.c:115,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/linux_process_test.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: test_get_start_time_process3
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/linux_process_test.c:121,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/linux_process_test.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: test_get_start_time_process666
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process666(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/linux_process_test.c:128,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/linux_process_test.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: test_get_state_process1
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/linux_process_test.c:134,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/linux_process_test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: test_get_state_process2
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/linux_process_test.c:140,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/linux_process_test.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: test_get_state_process3
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/linux_process_test.c:146,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/linux_process_test.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: test_get_state_process666
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process666(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/linux_process_test.c:153,1
    - Dst: unit_test
      Src: /src/core/tests/unit/linux_process_test.c:157,1
    - Dst: unit_test
      Src: /src/core/tests/unit/linux_process_test.c:158,1
    - Dst: unit_test
      Src: /src/core/tests/unit/linux_process_test.c:159,1
    - Dst: unit_test
      Src: /src/core/tests/unit/linux_process_test.c:160,1
    - Dst: unit_test
      Src: /src/core/tests/unit/linux_process_test.c:161,1
    - Dst: unit_test
      Src: /src/core/tests/unit/linux_process_test.c:162,1
    - Dst: unit_test
      Src: /src/core/tests/unit/linux_process_test.c:163,1
    - Dst: unit_test
      Src: /src/core/tests/unit/linux_process_test.c:164,1
    - Dst: run_tests
      Src: /src/core/tests/unit/linux_process_test.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/core/tests/unit/linux_process_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/unit/solaris_process_test.c:18,1
    - Dst: strcmp
      Src: /src/core/tests/unit/solaris_process_test.c:23,1
    - Dst: strcmp
      Src: /src/core/tests/unit/solaris_process_test.c:28,1
    - Dst: strcmp
      Src: /src/core/tests/unit/solaris_process_test.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - filename
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: open
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 11
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int open(const char *filename, int flags, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/core/tests/unit/solaris_process_test.c:52,1
    - Dst: memcpy
      Src: /src/core/tests/unit/solaris_process_test.c:70,1
    - Dst: memcpy
      Src: /src/core/tests/unit/solaris_process_test.c:88,1
    - Dst: memcpy
      Src: /src/core/tests/unit/solaris_process_test.c:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 3
    argNames:
    - fd
    - buf
    - bufsize
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 118
    functionName: read
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read(int fd, void *buf, size_t bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: close
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int close(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/solaris_process_test.c:127,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/solaris_process_test.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: test_get_start_time_process1
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/solaris_process_test.c:133,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/solaris_process_test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: test_get_start_time_process2
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_start_time_process2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/solaris_process_test.c:139,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/solaris_process_test.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: test_get_state_process1
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/solaris_process_test.c:145,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/solaris_process_test.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: test_get_state_process2
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/solaris_process_test.c:151,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/solaris_process_test.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: test_get_state_process3
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/tests/unit/solaris_process_test.c:157,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/solaris_process_test.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: test_get_state_process4
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - GetProcessState
    linkageType: ''
    returnType: void
    signature: void test_get_state_process4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/solaris_process_test.c:163,1
    - Dst: unit_test
      Src: /src/core/tests/unit/solaris_process_test.c:167,1
    - Dst: unit_test
      Src: /src/core/tests/unit/solaris_process_test.c:168,1
    - Dst: unit_test
      Src: /src/core/tests/unit/solaris_process_test.c:169,1
    - Dst: unit_test
      Src: /src/core/tests/unit/solaris_process_test.c:170,1
    - Dst: run_tests
      Src: /src/core/tests/unit/solaris_process_test.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 178
    functionName: main
    functionSourceFile: /src/core/tests/unit/solaris_process_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/tests/unit/db_test.c:20,1
    - Dst: assert
      Src: /src/core/tests/unit/db_test.c:21,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/db_test.c:23,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/db_test.c:24,1
    - Dst: putenv
      Src: /src/core/tests/unit/db_test.c:25,1
    - Dst: mkdir
      Src: /src/core/tests/unit/db_test.c:26,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/db_test.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (workdir - 1 && workdir[0] == '/')
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/core/tests/unit/db_test.c
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: tests_setup
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 7
    functionsReached:
    - mkdtemp
    - assert
    - mkdir
    - GetStateDir
    - putenv
    - strchr
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_test.c:32,1
    - Dst: system
      Src: /src/core/tests/unit/db_test.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 4
    functionsReached:
    - system
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_teardown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:40,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_test.c:40,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_test.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: test_open_close
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 0
    functionsReached:
    - OpenDB
    - assert_int_equal
    - CloseDB
    linkageType: ''
    returnType: void
    signature: void test_open_close(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/tests/unit/db_test.c:50,1
    - Dst: strlen
      Src: /src/core/tests/unit/db_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:53,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:55,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/db_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/db_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:57,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_test.c:57,1
    - Dst: strcpy
      Src: /src/core/tests/unit/db_test.c:58,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:59,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/db_test.c:59,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/db_test.c:60,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_test.c:62,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:65,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_test.c:65,1
    - Dst: strcpy
      Src: /src/core/tests/unit/db_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:67,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/db_test.c:67,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/db_test.c:68,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 71
    functionName: test_read_write
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - strlen
    - OpenDB
    - ReadDB
    - assert_string_equal
    - CloseDB
    - WriteDB
    - strcpy
    linkageType: ''
    returnType: void
    signature: void test_read_write(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:78,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:80,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:81,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:82,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:85,1
    - Dst: NewDBCursor
      Src: /src/core/tests/unit/db_test.c:85,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:92,1
    - Dst: NextDB
      Src: /src/core/tests/unit/db_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:94,1
    - Dst: DBCursorWriteEntry
      Src: /src/core/tests/unit/db_test.c:94,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:96,1
    - Dst: NextDB
      Src: /src/core/tests/unit/db_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:97,1
    - Dst: NextDB
      Src: /src/core/tests/unit/db_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:99,1
    - Dst: DeleteDBCursor
      Src: /src/core/tests/unit/db_test.c:99,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_test.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: test_iter_modify_entry
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - DBCursorWriteEntry
    - NewDBCursor
    - OpenDB
    - DeleteDBCursor
    - CloseDB
    - WriteDB
    - NextDB
    linkageType: ''
    returnType: void
    signature: void test_iter_modify_entry(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:110,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_test.c:110,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:112,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_test.c:112,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:113,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:114,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_test.c:114,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:117,1
    - Dst: NewDBCursor
      Src: /src/core/tests/unit/db_test.c:117,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:124,1
    - Dst: NextDB
      Src: /src/core/tests/unit/db_test.c:124,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:126,1
    - Dst: DBCursorDeleteEntry
      Src: /src/core/tests/unit/db_test.c:126,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:128,1
    - Dst: NextDB
      Src: /src/core/tests/unit/db_test.c:128,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:129,1
    - Dst: NextDB
      Src: /src/core/tests/unit/db_test.c:129,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:131,1
    - Dst: DeleteDBCursor
      Src: /src/core/tests/unit/db_test.c:131,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_test.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 134
    functionName: test_iter_delete_entry
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - NewDBCursor
    - OpenDB
    - DeleteDBCursor
    - CloseDB
    - WriteDB
    - NextDB
    - DBCursorDeleteEntry
    linkageType: ''
    returnType: void
    signature: void test_iter_delete_entry(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/unit/db_test.c:139,1
    - Dst: fwrite
      Src: /src/core/tests/unit/db_test.c:142,1
    - Dst: fclose
      Src: /src/core/tests/unit/db_test.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: CreateGarbage
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 0
    functionsReached:
    - fwrite
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void CreateGarbage(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_test.c:153,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/db_test.c:153,1
    - Dst: CreateGarbage
      Src: /src/core/tests/unit/db_test.c:154,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_test.c:158,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/db_test.c:158,1
    - Dst: CreateGarbage
      Src: /src/core/tests/unit/db_test.c:159,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/db_test.c:163,1
    - Dst: CreateGarbage
      Src: /src/core/tests/unit/db_test.c:164,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/db_test.c:168,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_test.c:168,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_test.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: test_recreate
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - OpenDB
    - GetStateDir
    - CreateGarbage
    - xsnprintf
    - CloseDB
    linkageType: ''
    returnType: void
    signature: void test_recreate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/tests/unit/db_test.c:183,1
    - Dst: GetWorkDir
      Src: /src/core/tests/unit/db_test.c:183,1
    - Dst: strcmp
      Src: /src/core/tests/unit/db_test.c:185,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/db_test.c:185,1
    - Dst: free
      Src: /src/core/tests/unit/db_test.c:188,1
    - Dst: assert_true
      Src: /src/core/tests/unit/db_test.c:192,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_test.c:192,1
    - Dst: assert_true
      Src: /src/core/tests/unit/db_test.c:193,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_test.c:193,1
    - Dst: strlen
      Src: /src/core/tests/unit/db_test.c:193,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_test.c:194,1
    - Dst: xasprintf
      Src: /src/core/tests/unit/db_test.c:199,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/db_test.c:199,1
    - Dst: xasprintf
      Src: /src/core/tests/unit/db_test.c:200,1
    - Dst: GetWorkDir
      Src: /src/core/tests/unit/db_test.c:200,1
    - Dst: xasprintf
      Src: /src/core/tests/unit/db_test.c:201,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/db_test.c:201,1
    - Dst: assert_true
      Src: /src/core/tests/unit/db_test.c:204,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/db_test.c:204,1
    - Dst: assert_true
      Src: /src/core/tests/unit/db_test.c:207,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_test.c:207,1
    - Dst: assert_true
      Src: /src/core/tests/unit/db_test.c:208,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/db_test.c:208,1
    - Dst: strlen
      Src: /src/core/tests/unit/db_test.c:208,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_test.c:209,1
    - Dst: assert_true
      Src: /src/core/tests/unit/db_test.c:212,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/tests/unit/db_test.c:212,1
    - Dst: assert_true
      Src: /src/core/tests/unit/db_test.c:217,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/db_test.c:217,1
    - Dst: assert_true
      Src: /src/core/tests/unit/db_test.c:218,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/db_test.c:218,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/db_test.c:219,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/db_test.c:220,1
    - Dst: free
      Src: /src/core/tests/unit/db_test.c:222,1
    - Dst: free
      Src: /src/core/tests/unit/db_test.c:223,1
    - Dst: free
      Src: /src/core/tests/unit/db_test.c:224,1
    - Dst: free
      Src: /src/core/tests/unit/db_test.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 226
    functionName: test_old_workdir_db_location
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 0
    functionsReached:
    - CopyRegularFileDisk
    - strlen
    - OpenDB
    - assert_true
    - xasprintf
    - GetStateDir
    - ReadDB
    - strcmp
    - CloseDB
    - WriteDB
    - assert_string_equal
    - free
    - GetWorkDir
    linkageType: ''
    returnType: void
    signature: void test_old_workdir_db_location(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/db_test.c:230,1
    - Dst: tests_setup
      Src: /src/core/tests/unit/db_test.c:231,1
    - Dst: unit_test
      Src: /src/core/tests/unit/db_test.c:235,1
    - Dst: unit_test
      Src: /src/core/tests/unit/db_test.c:236,1
    - Dst: unit_test
      Src: /src/core/tests/unit/db_test.c:237,1
    - Dst: unit_test
      Src: /src/core/tests/unit/db_test.c:238,1
    - Dst: unit_test
      Src: /src/core/tests/unit/db_test.c:239,1
    - Dst: unit_test
      Src: /src/core/tests/unit/db_test.c:240,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/db_test.c:243,1
    - Dst: run_tests
      Src: /src/core/tests/unit/db_test.c:244,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/db_test.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 248
    functionName: main
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - unit_test
    - run_tests
    - tests_teardown
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/db_test.c:254,1
    - Dst: exit
      Src: /src/core/tests/unit/db_test.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: FatalError
    functionSourceFile: /src/core/tests/unit/db_test.c
    functionUses: 1
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: void FatalError(ARG_UNUSED char *s, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/unit/mon_cpu_test.c:16,1
    - Dst: feof
      Src: /src/core/tests/unit/mon_cpu_test.c:21,1
    - Dst: fgets
      Src: /src/core/tests/unit/mon_cpu_test.c:23,1
    - Dst: sscanf
      Src: /src/core/tests/unit/mon_cpu_test.c:28,1
    - Dst: strcmp
      Src: /src/core/tests/unit/mon_cpu_test.c:39,1
    - Dst: fclose
      Src: /src/core/tests/unit/mon_cpu_test.c:49,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 51
    functionName: GetCpuStat
    functionSourceFile: /src/core/tests/unit/mon_cpu_test.c
    functionUses: 0
    functionsReached:
    - fgets
    - fopen
    - feof
    - sscanf
    - strcmp
    - fclose
    linkageType: ''
    returnType: double
    signature: double GetCpuStat()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCpuStat
      Src: /src/core/tests/unit/mon_cpu_test.c:56,1
    - Dst: assert_true
      Src: /src/core/tests/unit/mon_cpu_test.c:59,1
    - Dst: MonCPUGatherData
      Src: /src/core/tests/unit/mon_cpu_test.c:62,1
    - Dst: GetCpuStat
      Src: /src/core/tests/unit/mon_cpu_test.c:63,1
    - Dst: assert_true
      Src: /src/core/tests/unit/mon_cpu_test.c:66,1
    - Dst: fabs
      Src: /src/core/tests/unit/mon_cpu_test.c:71,1
    - Dst: fabs
      Src: /src/core/tests/unit/mon_cpu_test.c:72,1
    - Dst: assert_true
      Src: /src/core/tests/unit/mon_cpu_test.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: test_cpu_monitor
    functionSourceFile: /src/core/tests/unit/mon_cpu_test.c
    functionUses: 0
    functionsReached:
    - MonCPUGatherData
    - GetCpuStat
    - assert_true
    - fabs
    linkageType: ''
    returnType: void
    signature: void test_cpu_monitor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/mon_cpu_test.c:79,1
    - Dst: unit_test
      Src: /src/core/tests/unit/mon_cpu_test.c:82,1
    - Dst: run_tests
      Src: /src/core/tests/unit/mon_cpu_test.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/core/tests/unit/mon_cpu_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/redirection_test.c:23,1
    - Dst: mkstemp
      Src: /src/core/tests/unit/redirection_test.c:30,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/redirection_test.c:31,1
    - Dst: fork
      Src: /src/core/tests/unit/redirection_test.c:34,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/redirection_test.c:35,1
    - Dst: dup2
      Src: /src/core/tests/unit/redirection_test.c:39,1
    - Dst: printf
      Src: /src/core/tests/unit/redirection_test.c:42,1
    - Dst: execve
      Src: /src/core/tests/unit/redirection_test.c:43,1
    - Dst: printf
      Src: /src/core/tests/unit/redirection_test.c:44,1
    - Dst: strerror
      Src: /src/core/tests/unit/redirection_test.c:44,1
    - Dst: exit
      Src: /src/core/tests/unit/redirection_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/redirection_test.c:53,1
    - Dst: waitpid
      Src: /src/core/tests/unit/redirection_test.c:53,1
    - Dst: assert_true
      Src: /src/core/tests/unit/redirection_test.c:55,1
    - Dst: WIFEXITED
      Src: /src/core/tests/unit/redirection_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/redirection_test.c:56,1
    - Dst: WEXITSTATUS
      Src: /src/core/tests/unit/redirection_test.c:56,1
    - Dst: lseek
      Src: /src/core/tests/unit/redirection_test.c:58,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/redirection_test.c:60,1
    - Dst: strlen
      Src: /src/core/tests/unit/redirection_test.c:60,1
    - Dst: read
      Src: /src/core/tests/unit/redirection_test.c:60,1
    - Dst: strlen
      Src: /src/core/tests/unit/redirection_test.c:60,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/redirection_test.c:62,1
    - Dst: close
      Src: /src/core/tests/unit/redirection_test.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 65
    functionName: test_fd_redirection
    functionSourceFile: /src/core/tests/unit/redirection_test.c
    functionUses: 0
    functionsReached:
    - fork
    - exit
    - assert_int_equal
    - WEXITSTATUS
    - read
    - strlen
    - strerror
    - assert_true
    - mkstemp
    - assert_int_not_equal
    - printf
    - WIFEXITED
    - assert_string_equal
    - execve
    - lseek
    - dup2
    - waitpid
    - close
    linkageType: ''
    returnType: void
    signature: void test_fd_redirection(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/core/tests/unit/redirection_test.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/redirection_test.c
    functionUses: 5
    functionsReached:
    - unlink
    linkageType: ''
    returnType: void
    signature: void tests_teardown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/redirection_test.c:74,1
    - Dst: assert
      Src: /src/core/tests/unit/redirection_test.c:75,1
    - Dst: dirname
      Src: /src/core/tests/unit/redirection_test.c:77,1
    - Dst: sprintf
      Src: /src/core/tests/unit/redirection_test.c:79,1
    - Dst: unit_test
      Src: /src/core/tests/unit/redirection_test.c:82,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/redirection_test.c:84,1
    - Dst: run_tests
      Src: /src/core/tests/unit/redirection_test.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (argc >= 1)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/core/tests/unit/redirection_test.c
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/core/tests/unit/redirection_test.c
    functionUses: 0
    functionsReached:
    - unit_test
    - assert
    - dirname
    - run_tests
    - tests_teardown
    - PRINT_TEST_BANNER
    - sprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/parser_test.c:11,1
    - Dst: ParserParseFile
      Src: /src/core/tests/unit/parser_test.c:12,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/parser_test.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 16
    functionName: TestParsePolicy
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 1
    functionsReached:
    - ParserParseFile
    - PolicyDestroy
    - xsnprintf
    linkageType: ''
    returnType: bool
    signature: bool TestParsePolicy(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/parser_test.c:20,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: test_benchmark
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_benchmark(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:25,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: test_no_bundle_or_body_keyword
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_no_bundle_or_body_keyword(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:30,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: test_bundle_invalid_type
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_invalid_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:35,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: test_constraint_ifvarclass_invalid
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_constraint_ifvarclass_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:40,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: test_bundle_args_invalid_type
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_args_invalid_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:45,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: test_bundle_args_forgot_cp
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_args_forgot_cp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:50,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: test_bundle_body_forgot_ob
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_forgot_ob(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/parser_test.c:55,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: test_bundle_custom_promise_type
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_custom_promise_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:60,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c: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: test_bundle_body_wrong_promise_type_token
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_wrong_promise_type_token(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:65,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: test_bundle_body_wrong_statement
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_wrong_statement(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:70,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: test_bundle_body_forgot_semicolon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_forgot_semicolon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:75,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: test_bundle_body_promiser_statement_contains_colon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_promiser_statement_contains_colon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:80,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: test_bundle_body_promiser_statement_missing_assign
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_promiser_statement_missing_assign(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:85,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: test_bundle_body_promisee_missing_arrow
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_promisee_missing_arrow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:90,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: test_bundle_body_promiser_wrong_constraint_token
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_promiser_wrong_constraint_token(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:95,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: test_bundle_body_promiser_unknown_constraint_id
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_promiser_unknown_constraint_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/parser_test.c:100,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: test_body_edit_line_common_constraints
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_body_edit_line_common_constraints(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/parser_test.c:105,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: test_body_edit_xml_common_constraints
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_body_edit_xml_common_constraints(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:110,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: test_promise_promiser_nonscalar
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_promise_promiser_nonscalar(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:115,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: test_bundle_body_promiser_forgot_colon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_promiser_forgot_colon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:120,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: test_bundle_body_promisee_no_colon_allowed
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_promisee_no_colon_allowed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:125,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: test_bundle_body_forget_cb_eof
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_forget_cb_eof(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:130,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: test_bundle_body_forget_cb_body
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_forget_cb_body(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:135,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: test_bundle_body_forget_cb_bundle
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_bundle_body_forget_cb_bundle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:140,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: test_body_selection_wrong_token
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_body_selection_wrong_token(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:145,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: test_body_selection_forgot_semicolon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_body_selection_forgot_semicolon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:150,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: test_body_selection_unknown_selection_id
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_body_selection_unknown_selection_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:155,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: test_body_body_forget_cb_eof
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_body_body_forget_cb_eof(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:160,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: test_body_body_forget_cb_body
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_body_body_forget_cb_body(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:165,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: test_body_body_forget_cb_bundle
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_body_body_forget_cb_bundle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:170,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: test_rval_list_forgot_colon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_rval_list_forgot_colon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:175,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: test_rval_list_wrong_input_type
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_rval_list_wrong_input_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:180,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: test_rval_function_forgot_colon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_rval_function_forgot_colon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:185,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: test_rval_function_wrong_input_type
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_rval_function_wrong_input_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:190,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: test_rval_wrong_input_type
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_rval_wrong_input_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:195,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: test_rval_list_forgot_cb_semicolon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_rval_list_forgot_cb_semicolon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:200,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: test_rval_list_forgot_cb_colon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_rval_list_forgot_cb_colon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:205,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: test_rval_function_forgot_cp_semicolon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_rval_function_forgot_cp_semicolon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/parser_test.c:210,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/parser_test.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: test_rval_function_forgot_cp_colon
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - TestParsePolicy
    linkageType: ''
    returnType: void
    signature: void test_rval_function_forgot_cp_colon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/parser_test.c:215,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:218,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:220,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:221,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:222,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:223,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:224,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:225,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:226,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:227,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:228,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:229,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:230,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:231,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:232,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:233,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:234,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:235,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:236,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:237,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:238,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:239,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:241,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:242,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:243,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:244,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:245,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:246,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:248,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:250,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:252,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:253,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:254,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:255,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:256,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:257,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:258,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:259,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:260,1
    - Dst: unit_test
      Src: /src/core/tests/unit/parser_test.c:262,1
    - Dst: run_tests
      Src: /src/core/tests/unit/parser_test.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 267
    functionName: main
    functionSourceFile: /src/core/tests/unit/parser_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/core/tests/unit/passopenfile_test.c:48,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:51,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:58,1
    - Dst: waitpid
      Src: /src/core/tests/unit/passopenfile_test.c:63,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:65,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - impatient
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 74
    functionName: wait_for_child
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - kill
    - Log
    - waitpid
    linkageType: ''
    returnType: void
    signature: void wait_for_child(bool impatient)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/core/tests/unit/passopenfile_test.c:81,1
    - Dst: FD_SET
      Src: /src/core/tests/unit/passopenfile_test.c:82,1
    - Dst: select
      Src: /src/core/tests/unit/passopenfile_test.c:89,1
    - Dst: select
      Src: /src/core/tests/unit/passopenfile_test.c:93,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:98,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:98,1
    - Dst: FD_ISSET
      Src: /src/core/tests/unit/passopenfile_test.c:100,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:102,1
    - Dst: FD_ISSET
      Src: /src/core/tests/unit/passopenfile_test.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - whom
    - write
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 106
    functionName: wait_for_io
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - FD_ISSET
    - FD_SET
    - FD_ZERO
    - Log
    - select
    linkageType: ''
    returnType: bool
    signature: bool wait_for_io(int whom, bool write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/tests/unit/passopenfile_test.c:112,1
    - Dst: access
      Src: /src/core/tests/unit/passopenfile_test.c:116,1
    - Dst: sleep
      Src: /src/core/tests/unit/passopenfile_test.c:118,1
    - Dst: sleep
      Src: /src/core/tests/unit/passopenfile_test.c:121,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:123,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - write
    argTypes:
    - bool
    assertStmts:
    - condition: (DIALUP[0] != '\0')
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/core/tests/unit/passopenfile_test.c
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: wait_for_dialup
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - access
    - assert
    - sleep
    - Log
    linkageType: ''
    returnType: bool
    signature: bool wait_for_dialup(bool write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/tests/unit/passopenfile_test.c:137,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:138,1
    - Dst: unlink
      Src: /src/core/tests/unit/passopenfile_test.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (DIALUP[0] != '\0')
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/core/tests/unit/passopenfile_test.c
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: clear_listener
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - assert
    - Log
    - unlink
    linkageType: ''
    returnType: void
    signature: void clear_listener(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_child
      Src: /src/core/tests/unit/passopenfile_test.c:147,1
    - Dst: clear_listener
      Src: /src/core/tests/unit/passopenfile_test.c:152,1
    - Dst: stat
      Src: /src/core/tests/unit/passopenfile_test.c:157,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:159,1
    - Dst: unlink
      Src: /src/core/tests/unit/passopenfile_test.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: clear_previous_test
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - stat
    - unlink
    - wait_for_child
    - Log
    - clear_listener
    linkageType: ''
    returnType: void
    signature: void clear_previous_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tempnam
      Src: /src/core/tests/unit/passopenfile_test.c:188,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:191,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:191,1
    - Dst: assert
      Src: /src/core/tests/unit/passopenfile_test.c:195,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/passopenfile_test.c:196,1
    - Dst: free
      Src: /src/core/tests/unit/passopenfile_test.c:197,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (using[0])
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/core/tests/unit/passopenfile_test.c
    constantsTouched: []
    func_position:
      end: 202
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 202
    functionName: choose_dialup_UDS_file
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - tempnam
    - assert
    - Log
    - free
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool choose_dialup_UDS_file(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/tests/unit/passopenfile_test.c:209,1
    - Dst: stat
      Src: /src/core/tests/unit/passopenfile_test.c:213,1
    - Dst: assert_false
      Src: /src/core/tests/unit/passopenfile_test.c:214,1
    - Dst: socket
      Src: /src/core/tests/unit/passopenfile_test.c:217,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:220,1
    - Dst: assert
      Src: /src/core/tests/unit/passopenfile_test.c:224,1
    - Dst: strlen
      Src: /src/core/tests/unit/passopenfile_test.c:224,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/passopenfile_test.c:226,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:228,1
    - Dst: bind
      Src: /src/core/tests/unit/passopenfile_test.c:229,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:235,1
    - Dst: listen
      Src: /src/core/tests/unit/passopenfile_test.c:236,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:243,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:243,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:248,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:248,1
    - Dst: cf_closesocket
      Src: /src/core/tests/unit/passopenfile_test.c:251,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:255,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (DIALUP[0] != '\0')
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/core/tests/unit/passopenfile_test.c
    - condition: (strlen(DIALUP) < sizeof(address.sun_path))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/core/tests/unit/passopenfile_test.c
    constantsTouched: []
    func_position:
      end: 258
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 258
    functionName: setup_listener
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - stat
    - cf_closesocket
    - assert_false
    - bind
    - strlen
    - assert
    - Log
    - listen
    - socket
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int setup_listener(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/tests/unit/passopenfile_test.c:271,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:272,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:273,1
    - Dst: accept
      Src: /src/core/tests/unit/passopenfile_test.c:275,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:278,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:278,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:281,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:283,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:289,1
    - Dst: cf_closesocket
      Src: /src/core/tests/unit/passopenfile_test.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - server
    - write
    argTypes:
    - int
    - bool
    assertStmts:
    - condition: (server >= 0)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/core/tests/unit/passopenfile_test.c
    constantsTouched: []
    func_position:
      end: 296
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 296
    functionName: setup_accept
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - cf_closesocket
    - accept
    - assert
    - Log
    - wait_for_io
    linkageType: ''
    returnType: int
    signature: int setup_accept(int server, bool write)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/core/tests/unit/passopenfile_test.c:302,1
    - Dst: wait_for_dialup
      Src: /src/core/tests/unit/passopenfile_test.c:306,1
    - Dst: assert
      Src: /src/core/tests/unit/passopenfile_test.c:309,1
    - Dst: strlen
      Src: /src/core/tests/unit/passopenfile_test.c:309,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/passopenfile_test.c:311,1
    - Dst: connect
      Src: /src/core/tests/unit/passopenfile_test.c:313,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:314,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:316,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:323,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:324,1
    - Dst: cf_closesocket
      Src: /src/core/tests/unit/passopenfile_test.c:327,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:331,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - write
    argTypes:
    - bool
    assertStmts:
    - condition: (strlen(DIALUP) < sizeof(address.sun_path))
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/core/tests/unit/passopenfile_test.c
    constantsTouched: []
    func_position:
      end: 334
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 334
    functionName: setup_connect
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - wait_for_dialup
    - cf_closesocket
    - strlen
    - assert
    - Log
    - socket
    - strlcpy
    - connect
    - wait_for_io
    linkageType: ''
    returnType: int
    signature: int setup_connect(bool write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_connect
      Src: /src/core/tests/unit/passopenfile_test.c:343,1
    - Dst: setup_accept
      Src: /src/core/tests/unit/passopenfile_test.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - server
    - write
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: setup_uds
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - setup_accept
    - setup_connect
    linkageType: ''
    returnType: int
    signature: int setup_uds(int server, bool write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_closesocket
      Src: /src/core/tests/unit/passopenfile_test.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pair
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 359
    functionName: close_pipe
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - cf_closesocket
    linkageType: ''
    returnType: void
    signature: void close_pipe(int pair[2])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/core/tests/unit/passopenfile_test.c:366,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:371,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pipe
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 373
    functionName: setup_pipe
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - Log
    - socketpair
    linkageType: ''
    returnType: bool
    signature: bool setup_pipe(int pipe[2])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/tests/unit/passopenfile_test.c:387,1
    - Dst: assert
      Src: /src/core/tests/unit/passopenfile_test.c:390,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/passopenfile_test.c:391,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:395,1
    - Dst: send
      Src: /src/core/tests/unit/passopenfile_test.c:400,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:402,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:404,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:408,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:412,1
    - Dst: recv
      Src: /src/core/tests/unit/passopenfile_test.c:417,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:419,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:421,1
    - Dst: MIN
      Src: /src/core/tests/unit/passopenfile_test.c:425,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:426,1
    - Dst: strcmp
      Src: /src/core/tests/unit/passopenfile_test.c:432,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:435,1
    - Dst: strcmp
      Src: /src/core/tests/unit/passopenfile_test.c:441,1
    - Dst: strcmp
      Src: /src/core/tests/unit/passopenfile_test.c:443,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:447,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - sock
    - message
    argTypes:
    - int
    - char*
    assertStmts:
    - condition: (msglen && msglen < sizeof(buffer))
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/core/tests/unit/passopenfile_test.c
    constantsTouched: []
    func_position:
      end: 454
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 454
    functionName: check_hail
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - send
    - recv
    - strlen
    - assert
    - MIN
    - Log
    - strcmp
    - strlcpy
    - wait_for_io
    linkageType: ''
    returnType: bool
    signature: bool check_hail(int sock, const char *message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/tests/unit/passopenfile_test.c:459,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:461,1
    - Dst: recv
      Src: /src/core/tests/unit/passopenfile_test.c:462,1
    - Dst: strcmp
      Src: /src/core/tests/unit/passopenfile_test.c:463,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:464,1
    - Dst: send
      Src: /src/core/tests/unit/passopenfile_test.c:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - sock
    - message
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 468
    functionName: child_hail
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - recv
    - send
    - strlen
    - strcmp
    - wait_for_io
    linkageType: ''
    returnType: void
    signature: void child_hail(int sock, const char *message)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:486,1
    - Dst: send
      Src: /src/core/tests/unit/passopenfile_test.c:491,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:493,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:494,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:498,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:501,1
    - Dst: recv
      Src: /src/core/tests/unit/passopenfile_test.c:506,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:508,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:509,1
    - Dst: MIN
      Src: /src/core/tests/unit/passopenfile_test.c:513,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:514,1
    - Dst: strcmp
      Src: /src/core/tests/unit/passopenfile_test.c:517,1
    - Dst: MIN
      Src: /src/core/tests/unit/passopenfile_test.c:519,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:520,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:523,1
    - Dst: send
      Src: /src/core/tests/unit/passopenfile_test.c:528,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:530,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:531,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:535,1
    - Dst: wait_for_io
      Src: /src/core/tests/unit/passopenfile_test.c:538,1
    - Dst: recv
      Src: /src/core/tests/unit/passopenfile_test.c:543,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:545,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:546,1
    - Dst: MIN
      Src: /src/core/tests/unit/passopenfile_test.c:550,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:551,1
    - Dst: strcmp
      Src: /src/core/tests/unit/passopenfile_test.c:554,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:556,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - pair
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 564
    functionName: self_hail
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - send
    - recv
    - MIN
    - Log
    - strcmp
    - wait_for_io
    linkageType: ''
    returnType: bool
    signature: bool self_hail(int pair[2])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:929,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:931,1
    - Dst: child_for_take
      Src: /src/core/tests/unit/passopenfile_test.c:935,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:936,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:943,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:946,1
    - Dst: parent_take
      Src: /src/core/tests/unit/passopenfile_test.c:951,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:953,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:954,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:955,1
    - Dst: waitpid
      Src: /src/core/tests/unit/passopenfile_test.c:957,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:963,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:968,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:968,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:970,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 971
    functionName: test_take_listen_message
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - parent_take
    - child_for_take
    - assert_true
    - Log
    - clear_previous_test
    - waitpid
    linkageType: ''
    returnType: void
    signature: void test_take_listen_message(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:975,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:977,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:981,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:984,1
    - Dst: child_for_take
      Src: /src/core/tests/unit/passopenfile_test.c:988,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:990,1
    - Dst: parent_take
      Src: /src/core/tests/unit/passopenfile_test.c:998,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1000,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1001,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1002,1
    - Dst: waitpid
      Src: /src/core/tests/unit/passopenfile_test.c:1004,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1010,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1014,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:1014,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1016,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 1017
    functionName: test_take_connect_message
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - parent_take
    - child_for_take
    - assert_true
    - Log
    - clear_previous_test
    - waitpid
    linkageType: ''
    returnType: void
    signature: void test_take_connect_message(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:1021,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:1022,1
    - Dst: child_for_send
      Src: /src/core/tests/unit/passopenfile_test.c:1026,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:1027,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:1034,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1037,1
    - Dst: parent_send
      Src: /src/core/tests/unit/passopenfile_test.c:1042,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1044,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1045,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1046,1
    - Dst: waitpid
      Src: /src/core/tests/unit/passopenfile_test.c:1048,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1054,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1059,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:1059,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1061,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1019
    functionDepth: 3
    functionLinenumber: 1019
    functionLinenumberEnd: 1062
    functionName: test_send_listen_message
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - assert_true
    - Log
    - parent_send
    - child_for_send
    - clear_previous_test
    - waitpid
    linkageType: ''
    returnType: void
    signature: void test_send_listen_message(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:1066,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:1067,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:1071,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1074,1
    - Dst: child_for_send
      Src: /src/core/tests/unit/passopenfile_test.c:1078,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:1080,1
    - Dst: parent_send
      Src: /src/core/tests/unit/passopenfile_test.c:1088,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1090,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1091,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1092,1
    - Dst: waitpid
      Src: /src/core/tests/unit/passopenfile_test.c:1094,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1103,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:1103,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1064
    functionDepth: 3
    functionLinenumber: 1064
    functionLinenumberEnd: 1106
    functionName: test_send_connect_message
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - assert_true
    - Log
    - parent_send
    - child_for_send
    - clear_previous_test
    - waitpid
    linkageType: ''
    returnType: void
    signature: void test_send_connect_message(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:1110,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:1111,1
    - Dst: child_for_take
      Src: /src/core/tests/unit/passopenfile_test.c:1115,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:1116,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:1123,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1126,1
    - Dst: parent_take
      Src: /src/core/tests/unit/passopenfile_test.c:1131,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1133,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1134,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1135,1
    - Dst: waitpid
      Src: /src/core/tests/unit/passopenfile_test.c:1137,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1143,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1148,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:1148,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1108
    functionDepth: 3
    functionLinenumber: 1108
    functionLinenumberEnd: 1151
    functionName: test_take_listen_silent
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - parent_take
    - child_for_take
    - assert_true
    - Log
    - clear_previous_test
    - waitpid
    linkageType: ''
    returnType: void
    signature: void test_take_listen_silent(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:1155,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:1156,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:1160,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1163,1
    - Dst: child_for_take
      Src: /src/core/tests/unit/passopenfile_test.c:1167,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:1169,1
    - Dst: parent_take
      Src: /src/core/tests/unit/passopenfile_test.c:1177,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1179,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1180,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1181,1
    - Dst: waitpid
      Src: /src/core/tests/unit/passopenfile_test.c:1183,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1189,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1193,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:1193,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1153
    functionDepth: 3
    functionLinenumber: 1153
    functionLinenumberEnd: 1196
    functionName: test_take_connect_silent
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - parent_take
    - child_for_take
    - assert_true
    - Log
    - clear_previous_test
    - waitpid
    linkageType: ''
    returnType: void
    signature: void test_take_connect_silent(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:1200,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:1201,1
    - Dst: child_for_send
      Src: /src/core/tests/unit/passopenfile_test.c:1205,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:1206,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:1213,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1216,1
    - Dst: parent_send
      Src: /src/core/tests/unit/passopenfile_test.c:1221,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1223,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1224,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1225,1
    - Dst: waitpid
      Src: /src/core/tests/unit/passopenfile_test.c:1227,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1233,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1238,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:1238,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1198
    functionDepth: 3
    functionLinenumber: 1198
    functionLinenumberEnd: 1241
    functionName: test_send_listen_silent
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - assert_true
    - Log
    - parent_send
    - child_for_send
    - clear_previous_test
    - waitpid
    linkageType: ''
    returnType: void
    signature: void test_send_listen_silent(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:1245,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:1246,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:1250,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1253,1
    - Dst: child_for_send
      Src: /src/core/tests/unit/passopenfile_test.c:1257,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:1259,1
    - Dst: parent_send
      Src: /src/core/tests/unit/passopenfile_test.c:1267,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1269,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1270,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1271,1
    - Dst: waitpid
      Src: /src/core/tests/unit/passopenfile_test.c:1273,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1282,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:1282,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1243
    functionDepth: 3
    functionLinenumber: 1243
    functionLinenumberEnd: 1285
    functionName: test_send_connect_silent
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - assert_true
    - Log
    - parent_send
    - child_for_send
    - clear_previous_test
    - waitpid
    linkageType: ''
    returnType: void
    signature: void test_send_connect_silent(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:1293,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:1294,1
    - Dst: child_for_outlive
      Src: /src/core/tests/unit/passopenfile_test.c:1298,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:1299,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:1307,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1310,1
    - Dst: parent_outlive
      Src: /src/core/tests/unit/passopenfile_test.c:1312,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1314,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1320,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:1320,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1287
    functionDepth: 3
    functionLinenumber: 1287
    functionLinenumberEnd: 1323
    functionName: test_connect_outlive
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - assert_true
    - child_for_outlive
    - Log
    - clear_previous_test
    - parent_outlive
    linkageType: ''
    returnType: void
    signature: void test_connect_outlive(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear_previous_test
      Src: /src/core/tests/unit/passopenfile_test.c:1331,1
    - Dst: fork
      Src: /src/core/tests/unit/passopenfile_test.c:1332,1
    - Dst: setup_listener
      Src: /src/core/tests/unit/passopenfile_test.c:1336,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1339,1
    - Dst: child_for_outlive
      Src: /src/core/tests/unit/passopenfile_test.c:1343,1
    - Dst: exit
      Src: /src/core/tests/unit/passopenfile_test.c:1345,1
    - Dst: parent_outlive
      Src: /src/core/tests/unit/passopenfile_test.c:1353,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1355,1
    - Dst: Log
      Src: /src/core/tests/unit/passopenfile_test.c:1361,1
    - Dst: GetErrorStr
      Src: /src/core/tests/unit/passopenfile_test.c:1361,1
    - Dst: assert_true
      Src: /src/core/tests/unit/passopenfile_test.c:1363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1325
    functionDepth: 3
    functionLinenumber: 1325
    functionLinenumberEnd: 1364
    functionName: test_listen_outlive
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - setup_listener
    - assert_true
    - child_for_outlive
    - Log
    - clear_previous_test
    - parent_outlive
    linkageType: ''
    returnType: void
    signature: void test_listen_outlive(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/passopenfile_test.c:1370,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1373,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1374,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1375,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1376,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1377,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1378,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1379,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1380,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1381,1
    - Dst: unit_test
      Src: /src/core/tests/unit/passopenfile_test.c:1382,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/tests/unit/passopenfile_test.c:1386,1
    - Dst: atexit
      Src: /src/core/tests/unit/passopenfile_test.c:1392,1
    - Dst: choose_dialup_UDS_file
      Src: /src/core/tests/unit/passopenfile_test.c:1395,1
    - Dst: run_tests
      Src: /src/core/tests/unit/passopenfile_test.c:1397,1
    - Dst: kill
      Src: /src/core/tests/unit/passopenfile_test.c:1407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1368
    functionDepth: 2
    functionLinenumber: 1368
    functionLinenumberEnd: 1411
    functionName: main
    functionSourceFile: /src/core/tests/unit/passopenfile_test.c
    functionUses: 0
    functionsReached:
    - kill
    - unit_test
    - atexit
    - choose_dialup_UDS_file
    - LogSetGlobalLevel
    - run_tests
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/mustache_test.c:11,1
    - Dst: FileRead
      Src: /src/core/tests/unit/mustache_test.c:14,1
    - Dst: Log
      Src: /src/core/tests/unit/mustache_test.c:17,1
    - Dst: fail
      Src: /src/core/tests/unit/mustache_test.c:18,1
    - Dst: StringWriterData
      Src: /src/core/tests/unit/mustache_test.c:21,1
    - Dst: JsonParse
      Src: /src/core/tests/unit/mustache_test.c:22,1
    - Dst: Log
      Src: /src/core/tests/unit/mustache_test.c:24,1
    - Dst: fail
      Src: /src/core/tests/unit/mustache_test.c:25,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/mustache_test.c:27,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/tests/unit/mustache_test.c:29,1
    - Dst: JsonLength
      Src: /src/core/tests/unit/mustache_test.c:32,1
    - Dst: JsonAt
      Src: /src/core/tests/unit/mustache_test.c:34,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:36,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/tests/unit/mustache_test.c:36,1
    - Dst: BufferNew
      Src: /src/core/tests/unit/mustache_test.c:38,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/tests/unit/mustache_test.c:40,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/tests/unit/mustache_test.c:41,1
    - Dst: JsonObjectGet
      Src: /src/core/tests/unit/mustache_test.c:42,1
    - Dst: MustacheRender
      Src: /src/core/tests/unit/mustache_test.c:44,1
    - Dst: strcmp
      Src: /src/core/tests/unit/mustache_test.c:44,1
    - Dst: BufferData
      Src: /src/core/tests/unit/mustache_test.c:44,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:47,1
    - Dst: BufferData
      Src: /src/core/tests/unit/mustache_test.c:47,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:51,1
    - Dst: BufferDestroy
      Src: /src/core/tests/unit/mustache_test.c:54,1
    - Dst: JsonDestroy
      Src: /src/core/tests/unit/mustache_test.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - testfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 60
    functionName: TestSpecFile
    functionSourceFile: /src/core/tests/unit/mustache_test.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - fail
    - JsonAt
    - Log
    - BufferNew
    - JsonObjectGet
    - BufferData
    - JsonObjectGetAsArray
    - FileRead
    - strcmp
    - WriterClose
    - JsonObjectGetAsString
    - MustacheRender
    - JsonParse
    - JsonLength
    - JsonDestroy
    - StringWriterData
    - xsnprintf
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: size_t TestSpecFile(const char *testfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TestSpecFile
      Src: /src/core/tests/unit/mustache_test.c:66,1
    - Dst: TestSpecFile
      Src: /src/core/tests/unit/mustache_test.c:67,1
    - Dst: TestSpecFile
      Src: /src/core/tests/unit/mustache_test.c:68,1
    - Dst: TestSpecFile
      Src: /src/core/tests/unit/mustache_test.c:69,1
    - Dst: TestSpecFile
      Src: /src/core/tests/unit/mustache_test.c:70,1
    - Dst: TestSpecFile
      Src: /src/core/tests/unit/mustache_test.c:71,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:76,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:78,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:80,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:82,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:84,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:86,1
    - Dst: fprintf
      Src: /src/core/tests/unit/mustache_test.c:88,1
    - Dst: fail
      Src: /src/core/tests/unit/mustache_test.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 93
    functionName: test_spec
    functionSourceFile: /src/core/tests/unit/mustache_test.c
    functionUses: 0
    functionsReached:
    - fail
    - TestSpecFile
    - fprintf
    linkageType: ''
    returnType: void
    signature: void test_spec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/mustache_test.c:97,1
    - Dst: unit_test
      Src: /src/core/tests/unit/mustache_test.c:100,1
    - Dst: run_tests
      Src: /src/core/tests/unit/mustache_test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/core/tests/unit/mustache_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/tests/unit/getopt_test.c:14,1
    - Dst: getopt_long
      Src: /src/core/tests/unit/getopt_test.c:30,1
    - Dst: SeqAppend
      Src: /src/core/tests/unit/getopt_test.c:35,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/getopt_test.c:35,1
    - Dst: SeqAppend
      Src: /src/core/tests/unit/getopt_test.c:41,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/getopt_test.c:41,1
    - Dst: SeqAppend
      Src: /src/core/tests/unit/getopt_test.c:45,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/getopt_test.c:45,1
    - Dst: SeqAppend
      Src: /src/core/tests/unit/getopt_test.c:50,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/getopt_test.c:50,1
    - Dst: assert
      Src: /src/core/tests/unit/getopt_test.c:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (false)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/core/tests/unit/getopt_test.c
    constantsTouched: []
    func_position:
      end: 60
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 60
    functionName: CheckOpts
    functionSourceFile: /src/core/tests/unit/getopt_test.c
    functionUses: 1
    functionsReached:
    - assert
    - SeqNew
    - xstrdup
    - getopt_long
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *CheckOpts(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckOpts
      Src: /src/core/tests/unit/getopt_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/getopt_test.c:74,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/getopt_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:75,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:75,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:76,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:76,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:77,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:77,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/getopt_test.c:78,1
    - Dst: CheckOpts
      Src: /src/core/tests/unit/getopt_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/getopt_test.c:90,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/getopt_test.c:90,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:91,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:91,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:92,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:92,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:93,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:93,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/getopt_test.c:94,1
    - Dst: CheckOpts
      Src: /src/core/tests/unit/getopt_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/getopt_test.c:106,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/getopt_test.c:106,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:107,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:107,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:108,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:108,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:109,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:109,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/getopt_test.c:110,1
    - Dst: CheckOpts
      Src: /src/core/tests/unit/getopt_test.c:121,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/getopt_test.c:122,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/getopt_test.c:122,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:123,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:123,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:124,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:124,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:125,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:125,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/getopt_test.c:126,1
    - Dst: CheckOpts
      Src: /src/core/tests/unit/getopt_test.c:137,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/getopt_test.c:138,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/getopt_test.c:138,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:139,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:139,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:140,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:140,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:141,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:141,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/getopt_test.c:142,1
    - Dst: CheckOpts
      Src: /src/core/tests/unit/getopt_test.c:151,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/getopt_test.c:152,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/getopt_test.c:152,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:153,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:153,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/getopt_test.c:154,1
    - Dst: CheckOpts
      Src: /src/core/tests/unit/getopt_test.c:163,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/getopt_test.c:164,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/getopt_test.c:164,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:165,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:165,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/getopt_test.c:166,1
    - Dst: CheckOpts
      Src: /src/core/tests/unit/getopt_test.c:175,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/getopt_test.c:176,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/getopt_test.c:176,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/getopt_test.c:177,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/getopt_test.c:177,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/getopt_test.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 179
    functionName: test_GET_OPTIONAL_ARGUMENT
    functionSourceFile: /src/core/tests/unit/getopt_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - CheckOpts
    - assert_string_equal
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void test_GET_OPTIONAL_ARGUMENT(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srand48
      Src: /src/core/tests/unit/getopt_test.c:183,1
    - Dst: time
      Src: /src/core/tests/unit/getopt_test.c:183,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/getopt_test.c:185,1
    - Dst: unit_test
      Src: /src/core/tests/unit/getopt_test.c:188,1
    - Dst: run_tests
      Src: /src/core/tests/unit/getopt_test.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: main
    functionSourceFile: /src/core/tests/unit/getopt_test.c
    functionUses: 0
    functionsReached:
    - srand48
    - unit_test
    - run_tests
    - PRINT_TEST_BANNER
    - time
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/core/tests/unit/key_test.c:17,1
    - Dst: BN_new
      Src: /src/core/tests/unit/key_test.c:21,1
    - Dst: RSA_free
      Src: /src/core/tests/unit/key_test.c:24,1
    - Dst: BN_set_word
      Src: /src/core/tests/unit/key_test.c:28,1
    - Dst: RSA_generate_key_ex
      Src: /src/core/tests/unit/key_test.c:29,1
    - Dst: BN_free
      Src: /src/core/tests/unit/key_test.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 33
    functionName: test_setup
    functionSourceFile: /src/core/tests/unit/key_test.c
    functionUses: 0
    functionsReached:
    - BN_free
    - RSA_generate_key_ex
    - RSA_new
    - BN_new
    - BN_set_word
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void test_setup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: test_teardown
    functionSourceFile: /src/core/tests/unit/key_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_teardown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_setup
      Src: /src/core/tests/unit/key_test.c:47,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:50,1
    - Dst: KeyNew
      Src: /src/core/tests/unit/key_test.c:51,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:52,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/key_test.c:53,1
    - Dst: KeyHashMethod
      Src: /src/core/tests/unit/key_test.c:53,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:54,1
    - Dst: KeyRSA
      Src: /src/core/tests/unit/key_test.c:54,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:56,1
    - Dst: KeyBinaryHash
      Src: /src/core/tests/unit/key_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/key_test.c:57,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:58,1
    - Dst: KeyPrintableHash
      Src: /src/core/tests/unit/key_test.c:58,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:60,1
    - Dst: KeyNew
      Src: /src/core/tests/unit/key_test.c:60,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:61,1
    - Dst: KeyNew
      Src: /src/core/tests/unit/key_test.c:61,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:62,1
    - Dst: KeyNew
      Src: /src/core/tests/unit/key_test.c:62,1
    - Dst: KeyDestroy
      Src: /src/core/tests/unit/key_test.c:64,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:65,1
    - Dst: test_teardown
      Src: /src/core/tests/unit/key_test.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 67
    functionName: test_key_basic
    functionSourceFile: /src/core/tests/unit/key_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - test_setup
    - KeyRSA
    - KeyDestroy
    - test_teardown
    - assert_true
    - KeyBinaryHash
    - KeyPrintableHash
    - KeyHashMethod
    - KeyNew
    linkageType: ''
    returnType: void
    signature: void test_key_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_setup
      Src: /src/core/tests/unit/key_test.c:71,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:74,1
    - Dst: KeyNew
      Src: /src/core/tests/unit/key_test.c:75,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/key_test.c:77,1
    - Dst: KeyHashMethod
      Src: /src/core/tests/unit/key_test.c:77,1
    - Dst: KeyPrintableHash
      Src: /src/core/tests/unit/key_test.c:79,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/key_test.c:82,1
    - Dst: KeySetHashMethod
      Src: /src/core/tests/unit/key_test.c:82,1
    - Dst: KeyPrintableHash
      Src: /src/core/tests/unit/key_test.c:83,1
    - Dst: assert_true
      Src: /src/core/tests/unit/key_test.c:84,1
    - Dst: KeyDestroy
      Src: /src/core/tests/unit/key_test.c:85,1
    - Dst: test_teardown
      Src: /src/core/tests/unit/key_test.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: test_key_hash
    functionSourceFile: /src/core/tests/unit/key_test.c
    functionUses: 0
    functionsReached:
    - KeySetHashMethod
    - assert_int_equal
    - test_setup
    - KeyDestroy
    - test_teardown
    - assert_true
    - KeyPrintableHash
    - KeyHashMethod
    - KeyNew
    linkageType: ''
    returnType: void
    signature: void test_key_hash(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/key_test.c:95,1
    - Dst: unit_test
      Src: /src/core/tests/unit/key_test.c:98,1
    - Dst: unit_test
      Src: /src/core/tests/unit/key_test.c:99,1
    - Dst: OpenSSL_add_all_digests
      Src: /src/core/tests/unit/key_test.c:101,1
    - Dst: run_tests
      Src: /src/core/tests/unit/key_test.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/core/tests/unit/key_test.c
    functionUses: 0
    functionsReached:
    - OpenSSL_add_all_digests
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/matching_test.c:9,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:9,1
    - Dst: assert_false
      Src: /src/core/tests/unit/matching_test.c:10,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:10,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:12,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:12,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:13,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:13,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:14,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:14,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:15,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:15,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:16,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:16,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:17,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:17,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:18,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:18,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:19,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:19,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:20,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:20,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:21,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:21,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:22,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:22,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:23,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:23,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:24,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:24,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:25,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:25,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:26,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:26,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:27,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:27,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:28,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:28,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:29,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:29,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:30,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:30,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:31,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:31,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:32,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:32,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:33,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:33,1
    - Dst: assert_true
      Src: /src/core/tests/unit/matching_test.c:34,1
    - Dst: HasRegexMetaChars
      Src: /src/core/tests/unit/matching_test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 35
    functionName: test_has_regex_meta_chars
    functionSourceFile: /src/core/tests/unit/matching_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_false
    - HasRegexMetaChars
    linkageType: ''
    returnType: void
    signature: void test_has_regex_meta_chars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit_test
      Src: /src/core/tests/unit/matching_test.c:41,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/matching_test.c:44,1
    - Dst: run_tests
      Src: /src/core/tests/unit/matching_test.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: main
    functionSourceFile: /src/core/tests/unit/matching_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - unit_test
    - run_tests
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassRefParse
      Src: /src/core/tests/unit/class_test.c:8,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:9,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:10,1
    - Dst: ClassRefToString
      Src: /src/core/tests/unit/class_test.c:11,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:12,1
    - Dst: free
      Src: /src/core/tests/unit/class_test.c:13,1
    - Dst: ClassRefDestroy
      Src: /src/core/tests/unit/class_test.c:14,1
    - Dst: ClassRefParse
      Src: /src/core/tests/unit/class_test.c:18,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:19,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:20,1
    - Dst: ClassRefToString
      Src: /src/core/tests/unit/class_test.c:21,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:22,1
    - Dst: free
      Src: /src/core/tests/unit/class_test.c:23,1
    - Dst: ClassRefDestroy
      Src: /src/core/tests/unit/class_test.c:24,1
    - Dst: ClassRefParse
      Src: /src/core/tests/unit/class_test.c:28,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:29,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:30,1
    - Dst: ClassRefToString
      Src: /src/core/tests/unit/class_test.c:31,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:32,1
    - Dst: free
      Src: /src/core/tests/unit/class_test.c:33,1
    - Dst: ClassRefDestroy
      Src: /src/core/tests/unit/class_test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 36
    functionName: test_class_ref
    functionSourceFile: /src/core/tests/unit/class_test.c
    functionUses: 0
    functionsReached:
    - ClassRefDestroy
    - ClassRefParse
    - assert_true
    - ClassRefToString
    - assert_string_equal
    - free
    linkageType: ''
    returnType: void
    signature: void test_class_ref(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableNew
      Src: /src/core/tests/unit/class_test.c:41,1
    - Dst: assert_false
      Src: /src/core/tests/unit/class_test.c:42,1
    - Dst: ClassTablePut
      Src: /src/core/tests/unit/class_test.c:42,1
    - Dst: ClassTableGet
      Src: /src/core/tests/unit/class_test.c:43,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:44,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:45,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:46,1
    - Dst: ClassTableMatch
      Src: /src/core/tests/unit/class_test.c:48,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:49,1
    - Dst: ClassTableMatch
      Src: /src/core/tests/unit/class_test.c:50,1
    - Dst: assert_false
      Src: /src/core/tests/unit/class_test.c:51,1
    - Dst: ClassTableMatch
      Src: /src/core/tests/unit/class_test.c:52,1
    - Dst: assert_false
      Src: /src/core/tests/unit/class_test.c:53,1
    - Dst: ClassTableDestroy
      Src: /src/core/tests/unit/class_test.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: test_ns
    functionSourceFile: /src/core/tests/unit/class_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - ClassTableDestroy
    - ClassTablePut
    - ClassTableNew
    - ClassTableMatch
    - assert_string_equal
    - ClassTableGet
    linkageType: ''
    returnType: void
    signature: void test_ns(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableNew
      Src: /src/core/tests/unit/class_test.c:62,1
    - Dst: assert_false
      Src: /src/core/tests/unit/class_test.c:63,1
    - Dst: ClassTablePut
      Src: /src/core/tests/unit/class_test.c:63,1
    - Dst: ClassTableGet
      Src: /src/core/tests/unit/class_test.c:64,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:65,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:66,1
    - Dst: ClassTableGet
      Src: /src/core/tests/unit/class_test.c:67,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:68,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:69,1
    - Dst: assert_false
      Src: /src/core/tests/unit/class_test.c:70,1
    - Dst: ClassTableMatch
      Src: /src/core/tests/unit/class_test.c:72,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:73,1
    - Dst: ClassTableMatch
      Src: /src/core/tests/unit/class_test.c:74,1
    - Dst: assert_false
      Src: /src/core/tests/unit/class_test.c:75,1
    - Dst: ClassTableDestroy
      Src: /src/core/tests/unit/class_test.c:77,1
    - Dst: ClassTableNew
      Src: /src/core/tests/unit/class_test.c:81,1
    - Dst: assert_false
      Src: /src/core/tests/unit/class_test.c:82,1
    - Dst: ClassTablePut
      Src: /src/core/tests/unit/class_test.c:82,1
    - Dst: ClassTableGet
      Src: /src/core/tests/unit/class_test.c:83,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:84,1
    - Dst: ClassTableGet
      Src: /src/core/tests/unit/class_test.c:85,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:86,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/class_test.c:87,1
    - Dst: assert_false
      Src: /src/core/tests/unit/class_test.c:88,1
    - Dst: ClassTableDestroy
      Src: /src/core/tests/unit/class_test.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 91
    functionName: test_default_ns
    functionSourceFile: /src/core/tests/unit/class_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - ClassTableDestroy
    - ClassTablePut
    - ClassTableNew
    - ClassTableMatch
    - assert_string_equal
    - ClassTableGet
    linkageType: ''
    returnType: void
    signature: void test_default_ns(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableNew
      Src: /src/core/tests/unit/class_test.c:95,1
    - Dst: assert_false
      Src: /src/core/tests/unit/class_test.c:96,1
    - Dst: ClassTablePut
      Src: /src/core/tests/unit/class_test.c:96,1
    - Dst: ClassTableGet
      Src: /src/core/tests/unit/class_test.c:97,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:98,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/class_test.c:99,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:101,1
    - Dst: ClassTablePut
      Src: /src/core/tests/unit/class_test.c:101,1
    - Dst: ClassTableGet
      Src: /src/core/tests/unit/class_test.c:102,1
    - Dst: assert_true
      Src: /src/core/tests/unit/class_test.c:103,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/class_test.c:104,1
    - Dst: ClassTableDestroy
      Src: /src/core/tests/unit/class_test.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: test_put_replace
    functionSourceFile: /src/core/tests/unit/class_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - assert_true
    - ClassTableDestroy
    - ClassTablePut
    - ClassTableNew
    - ClassTableGet
    linkageType: ''
    returnType: void
    signature: void test_put_replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/class_test.c:111,1
    - Dst: unit_test
      Src: /src/core/tests/unit/class_test.c:114,1
    - Dst: unit_test
      Src: /src/core/tests/unit/class_test.c:115,1
    - Dst: unit_test
      Src: /src/core/tests/unit/class_test.c:116,1
    - Dst: unit_test
      Src: /src/core/tests/unit/class_test.c:117,1
    - Dst: run_tests
      Src: /src/core/tests/unit/class_test.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: main
    functionSourceFile: /src/core/tests/unit/class_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_interfaces_test.c:20,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/files_interfaces_test.c:21,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_interfaces_test.c:22,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_interfaces_test.c:23,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_interfaces_test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: tests_setup
    functionSourceFile: /src/core/tests/unit/files_interfaces_test.c
    functionUses: 8
    functionsReached:
    - mkdtemp
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/files_interfaces_test.c:30,1
    - Dst: system
      Src: /src/core/tests/unit/files_interfaces_test.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/files_interfaces_test.c
    functionUses: 6
    functionsReached:
    - system
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_teardown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/unit/files_interfaces_test.c:36,1
    - Dst: fwrite
      Src: /src/core/tests/unit/files_interfaces_test.c:39,1
    - Dst: fclose
      Src: /src/core/tests/unit/files_interfaces_test.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: CreateGarbage
    functionSourceFile: /src/core/tests/unit/files_interfaces_test.c
    functionUses: 1
    functionsReached:
    - fwrite
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void CreateGarbage(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/unit/files_interfaces_test.c:46,1
    - Dst: fwrite
      Src: /src/core/tests/unit/files_interfaces_test.c:49,1
    - Dst: fclose
      Src: /src/core/tests/unit/files_interfaces_test.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: CreateCorruptedGarbage
    functionSourceFile: /src/core/tests/unit/files_interfaces_test.c
    functionUses: 0
    functionsReached:
    - fwrite
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void CreateCorruptedGarbage(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateGarbage
      Src: /src/core/tests/unit/files_interfaces_test.c:56,1
    - Dst: fopen
      Src: /src/core/tests/unit/files_interfaces_test.c:57,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_interfaces_test.c:61,1
    - Dst: CfReadLine
      Src: /src/core/tests/unit/files_interfaces_test.c:63,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_interfaces_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/files_interfaces_test.c:65,1
    - Dst: fclose
      Src: /src/core/tests/unit/files_interfaces_test.c:69,1
    - Dst: free
      Src: /src/core/tests/unit/files_interfaces_test.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: test_cfreadline_valid
    functionSourceFile: /src/core/tests/unit/files_interfaces_test.c
    functionUses: 0
    functionsReached:
    - fopen
    - assert_true
    - CreateGarbage
    - xmalloc
    - assert_string_equal
    - fclose
    - free
    - CfReadLine
    linkageType: ''
    returnType: void
    signature: void test_cfreadline_valid(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateCorruptedGarbage
      Src: /src/core/tests/unit/files_interfaces_test.c:77,1
    - Dst: fopen
      Src: /src/core/tests/unit/files_interfaces_test.c:78,1
    - Dst: xmalloc
      Src: /src/core/tests/unit/files_interfaces_test.c:81,1
    - Dst: CfReadLine
      Src: /src/core/tests/unit/files_interfaces_test.c:84,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_interfaces_test.c:85,1
    - Dst: assert_string_not_equal
      Src: /src/core/tests/unit/files_interfaces_test.c:86,1
    - Dst: fclose
      Src: /src/core/tests/unit/files_interfaces_test.c:90,1
    - Dst: free
      Src: /src/core/tests/unit/files_interfaces_test.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 94
    functionName: test_cfreadline_corrupted
    functionSourceFile: /src/core/tests/unit/files_interfaces_test.c
    functionUses: 0
    functionsReached:
    - fopen
    - CreateCorruptedGarbage
    - assert_true
    - assert_string_not_equal
    - xmalloc
    - fclose
    - free
    - CfReadLine
    linkageType: ''
    returnType: void
    signature: void test_cfreadline_corrupted(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/files_interfaces_test.c:98,1
    - Dst: tests_setup
      Src: /src/core/tests/unit/files_interfaces_test.c:99,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_interfaces_test.c:103,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_interfaces_test.c:104,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/files_interfaces_test.c:107,1
    - Dst: run_tests
      Src: /src/core/tests/unit/files_interfaces_test.c:108,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/files_interfaces_test.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/core/tests/unit/files_interfaces_test.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - unit_test
    - run_tests
    - tests_teardown
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: PRINT_TEST_BANNER
    functionSourceFile: /src/core/tests/unit/test.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_TEST_BANNER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: assert_double_close
    functionSourceFile: /src/core/tests/unit/test.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_double_close(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: 56
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: assert_string_int_equal
    functionSourceFile: /src/core/tests/unit/test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_string_int_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/verify_databases_test.c:11,1
    - Dst: ValidateSQLTableName
      Src: /src/core/tests/unit/verify_databases_test.c:11,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:12,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:13,1
    - Dst: assert_true
      Src: /src/core/tests/unit/verify_databases_test.c:15,1
    - Dst: ValidateSQLTableName
      Src: /src/core/tests/unit/verify_databases_test.c:15,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:16,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:17,1
    - Dst: assert_true
      Src: /src/core/tests/unit/verify_databases_test.c:19,1
    - Dst: ValidateSQLTableName
      Src: /src/core/tests/unit/verify_databases_test.c:19,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:20,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:21,1
    - Dst: assert_true
      Src: /src/core/tests/unit/verify_databases_test.c:23,1
    - Dst: ValidateSQLTableName
      Src: /src/core/tests/unit/verify_databases_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:24,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:25,1
    - Dst: strcpy
      Src: /src/core/tests/unit/verify_databases_test.c:32,1
    - Dst: assert_false
      Src: /src/core/tests/unit/verify_databases_test.c:34,1
    - Dst: ValidateSQLTableName
      Src: /src/core/tests/unit/verify_databases_test.c:34,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:35,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:36,1
    - Dst: strcpy
      Src: /src/core/tests/unit/verify_databases_test.c:38,1
    - Dst: assert_false
      Src: /src/core/tests/unit/verify_databases_test.c:40,1
    - Dst: ValidateSQLTableName
      Src: /src/core/tests/unit/verify_databases_test.c:40,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:41,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:42,1
    - Dst: strcpy
      Src: /src/core/tests/unit/verify_databases_test.c:44,1
    - Dst: assert_false
      Src: /src/core/tests/unit/verify_databases_test.c:46,1
    - Dst: ValidateSQLTableName
      Src: /src/core/tests/unit/verify_databases_test.c:46,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:47,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:48,1
    - Dst: strcpy
      Src: /src/core/tests/unit/verify_databases_test.c:52,1
    - Dst: assert_false
      Src: /src/core/tests/unit/verify_databases_test.c:53,1
    - Dst: ValidateSQLTableName
      Src: /src/core/tests/unit/verify_databases_test.c:53,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:55,1
    - Dst: strcpy
      Src: /src/core/tests/unit/verify_databases_test.c:58,1
    - Dst: assert_false
      Src: /src/core/tests/unit/verify_databases_test.c:59,1
    - Dst: ValidateSQLTableName
      Src: /src/core/tests/unit/verify_databases_test.c:59,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:60,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/verify_databases_test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 62
    functionName: test_ValidateSQLTableName
    functionSourceFile: /src/core/tests/unit/verify_databases_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - assert_string_equal
    - strcpy
    - ValidateSQLTableName
    linkageType: ''
    returnType: void
    signature: void test_ValidateSQLTableName(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/verify_databases_test.c:66,1
    - Dst: unit_test
      Src: /src/core/tests/unit/verify_databases_test.c:69,1
    - Dst: run_tests
      Src: /src/core/tests/unit/verify_databases_test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/core/tests/unit/verify_databases_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/string_expressions_test.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - varname
    - VarRefType
    - param
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: ForbiddenVarRefEval
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: char
    signature: "char *ForbiddenVarRefEval(ARG_UNUSED const char *varname,\n                                 ARG_UNUSED
      VarRefType type,\n                                 ARG_UNUSED void *param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/tests/unit/string_expressions_test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - varname
    - VarRefType
    - param
    argTypes:
    - char*
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: IdentityVarRefEval
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *IdentityVarRefEval(const char *varname,\n                                ARG_UNUSED
      VarRefType type,\n                                ARG_UNUSED void *param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringConcatenate
      Src: /src/core/tests/unit/string_expressions_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - varname
    - VarRefType
    - param
    argTypes:
    - char*
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: AppendAVarRefEval
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - StringConcatenate
    linkageType: ''
    returnType: char
    signature: "char *AppendAVarRefEval(const char *varname,\n                               ARG_UNUSED
      VarRefType type,\n                               ARG_UNUSED void *param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringConcatenate
      Src: /src/core/tests/unit/string_expressions_test.c:34,1
    - Dst: StringConcatenate
      Src: /src/core/tests/unit/string_expressions_test.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - varname
    - type
    - param
    argTypes:
    - char*
    - VarRefType
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: DiscriminateVarTypesVarRefEval
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - StringConcatenate
    linkageType: ''
    returnType: char
    signature: "char *DiscriminateVarTypesVarRefEval(const char *varname, VarRefType
      type,\n                                            ARG_UNUSED void *param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseStringExpression
      Src: /src/core/tests/unit/string_expressions_test.c:44,1
    - Dst: strlen
      Src: /src/core/tests/unit/string_expressions_test.c:44,1
    - Dst: assert_true
      Src: /src/core/tests/unit/string_expressions_test.c:45,1
    - Dst: EvalStringExpression
      Src: /src/core/tests/unit/string_expressions_test.c:46,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/string_expressions_test.c:47,1
    - Dst: free
      Src: /src/core/tests/unit/string_expressions_test.c:48,1
    - Dst: FreeStringExpression
      Src: /src/core/tests/unit/string_expressions_test.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - string_expression
    - expected_output
    - evaluator
    - param
    argTypes:
    - char*
    - char*
    - VarRefEvaluator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: CheckParse
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - ParseStringExpression
    - EvalStringExpression
    - FreeStringExpression
    - strlen
    - assert_true
    - assert_string_equal
    - free
    linkageType: ''
    returnType: void
    signature: void CheckParse(const char *string_expression, const char *expected_output,
      VarRefEvaluator evaluator, void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckParse
      Src: /src/core/tests/unit/string_expressions_test.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: test_literal
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - CheckParse
    linkageType: ''
    returnType: void
    signature: void test_literal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckParse
      Src: /src/core/tests/unit/string_expressions_test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: test_var_naked
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - CheckParse
    linkageType: ''
    returnType: void
    signature: void test_var_naked(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckParse
      Src: /src/core/tests/unit/string_expressions_test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: test_var_naked_two_level
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - CheckParse
    linkageType: ''
    returnType: void
    signature: void test_var_naked_two_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckParse
      Src: /src/core/tests/unit/string_expressions_test.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: test_var_one_level
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - CheckParse
    linkageType: ''
    returnType: void
    signature: void test_var_one_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckParse
      Src: /src/core/tests/unit/string_expressions_test.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: test_different_var_types
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - CheckParse
    linkageType: ''
    returnType: void
    signature: void test_different_var_types(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/string_expressions_test.c:79,1
    - Dst: unit_test
      Src: /src/core/tests/unit/string_expressions_test.c:82,1
    - Dst: unit_test
      Src: /src/core/tests/unit/string_expressions_test.c:83,1
    - Dst: unit_test
      Src: /src/core/tests/unit/string_expressions_test.c:84,1
    - Dst: unit_test
      Src: /src/core/tests/unit/string_expressions_test.c:85,1
    - Dst: unit_test
      Src: /src/core/tests/unit/string_expressions_test.c:86,1
    - Dst: run_tests
      Src: /src/core/tests/unit/string_expressions_test.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: main
    functionSourceFile: /src/core/tests/unit/string_expressions_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/tests/unit/processes_select_test.c:11,1
    - Dst: GetProcessColumnNames
      Src: /src/core/tests/unit/processes_select_test.c:18,1
    - Dst: time
      Src: /src/core/tests/unit/processes_select_test.c:21,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/processes_select_test.c:25,1
    - Dst: assert_true
      Src: /src/core/tests/unit/processes_select_test.c:26,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/processes_select_test.c:27,1
    - Dst: free
      Src: /src/core/tests/unit/processes_select_test.c:31,1
    - Dst: free
      Src: /src/core/tests/unit/processes_select_test.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 34
    functionName: test_SplitProcLine_windows
    functionSourceFile: /src/core/tests/unit/processes_select_test.c
    functionUses: 0
    functionsReached:
    - snprintf
    - assert_true
    - GetProcessColumnNames
    - assert_string_equal
    - free
    - SplitProcLine
    - time
    linkageType: ''
    returnType: void
    signature: void test_SplitProcLine_windows(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/processes_select_test.c:38,1
    - Dst: unit_test
      Src: /src/core/tests/unit/processes_select_test.c:41,1
    - Dst: run_tests
      Src: /src/core/tests/unit/processes_select_test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: main
    functionSourceFile: /src/core/tests/unit/processes_select_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/regex_test.c:10,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/regex_test.c:11,1
    - Dst: FullTextMatch
      Src: /src/core/tests/unit/regex_test.c:11,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/regex_test.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: test_full_text_match
    functionSourceFile: /src/core/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - FullTextMatch
    - EvalContextNew
    - assert_int_equal
    - EvalContextDestroy
    linkageType: ''
    returnType: void
    signature: void test_full_text_match(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/regex_test.c:17,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/regex_test.c:18,1
    - Dst: FullTextMatch
      Src: /src/core/tests/unit/regex_test.c:18,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/regex_test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: test_full_text_match2
    functionSourceFile: /src/core/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - EvalContextNew
    - FullTextMatch
    - EvalContextDestroy
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_full_text_match2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/regex_test.c:24,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/regex_test.c:27,1
    - Dst: BlockTextMatch
      Src: /src/core/tests/unit/regex_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/regex_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/regex_test.c:31,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/regex_test.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: test_block_text_match
    functionSourceFile: /src/core/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - EvalContextDestroy
    - BlockTextMatch
    - assert_int_not_equal
    - EvalContextNew
    linkageType: ''
    returnType: void
    signature: void test_block_text_match(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/regex_test.c:37,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/regex_test.c:40,1
    - Dst: BlockTextMatch
      Src: /src/core/tests/unit/regex_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/regex_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/regex_test.c:42,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/regex_test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: test_block_text_match2
    functionSourceFile: /src/core/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - EvalContextDestroy
    - BlockTextMatch
    - assert_int_not_equal
    - EvalContextNew
    linkageType: ''
    returnType: void
    signature: void test_block_text_match2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/regex_test.c:48,1
    - Dst: unit_test
      Src: /src/core/tests/unit/regex_test.c:51,1
    - Dst: unit_test
      Src: /src/core/tests/unit/regex_test.c:52,1
    - Dst: unit_test
      Src: /src/core/tests/unit/regex_test.c:53,1
    - Dst: unit_test
      Src: /src/core/tests/unit/regex_test.c:54,1
    - Dst: run_tests
      Src: /src/core/tests/unit/regex_test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/core/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:64,1
    - Dst: ConnectionInfoNew
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:67,1
    - Dst: ConnectionInfoSetSocket
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:68,1
    - Dst: ConnectionInfoSetProtocolVersion
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:69,1
    - Dst: memset
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:76,1
    - Dst: SendTransaction
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:79,1
    - Dst: memset
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:83,1
    - Dst: ConnectionInfoNew
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:84,1
    - Dst: ConnectionInfoSetSocket
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:85,1
    - Dst: ConnectionInfoSetProtocolVersion
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:86,1
    - Dst: ProtocolOpenDir
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:90,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:93,1
    - Dst: ConnectionInfoDestroy
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:94,1
    - Dst: ConnectionInfoDestroy
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:95,1
    - Dst: close
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:96,1
    - Dst: close
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:97,1
    - Dst: assert_true
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 100
    functionName: test_opendir_recv_terminator_overflow
    functionSourceFile: /src/core/tests/unit/protocol_recv_overflow_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - socketpair
    - assert_true
    - ProtocolOpenDir
    - ConnectionInfoDestroy
    - ConnectionInfoNew
    - SendTransaction
    - ConnectionInfoSetProtocolVersion
    - close
    - ConnectionInfoSetSocket
    - memset
    linkageType: ''
    returnType: void
    signature: void test_opendir_recv_terminator_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:104,1
    - Dst: unit_test
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:107,1
    - Dst: run_tests
      Src: /src/core/tests/unit/protocol_recv_overflow_test.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: main
    functionSourceFile: /src/core/tests/unit/protocol_recv_overflow_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/tests/unit/changes_migration_test.c:50,1
    - Dst: assert
      Src: /src/core/tests/unit/changes_migration_test.c:51,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/changes_migration_test.c:53,1
    - Dst: putenv
      Src: /src/core/tests/unit/changes_migration_test.c:54,1
    - Dst: mkdir
      Src: /src/core/tests/unit/changes_migration_test.c:55,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/changes_migration_test.c:55,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:58,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/changes_migration_test.c:58,1
    - Dst: strlen
      Src: /src/core/tests/unit/changes_migration_test.c:74,1
    - Dst: strlen
      Src: /src/core/tests/unit/changes_migration_test.c:75,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:76,1
    - Dst: WriteComplexKeyDB
      Src: /src/core/tests/unit/changes_migration_test.c:76,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/changes_migration_test.c:80,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:82,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/changes_migration_test.c:82,1
    - Dst: memset
      Src: /src/core/tests/unit/changes_migration_test.c:92,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:96,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/changes_migration_test.c:96,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/changes_migration_test.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (workdir - 1 && workdir[0] == '/')
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/core/tests/unit/changes_migration_test.c
    constantsTouched: []
    func_position:
      end: 101
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 101
    functionName: test_setup
    functionSourceFile: /src/core/tests/unit/changes_migration_test.c
    functionUses: 2
    functionsReached:
    - mkdtemp
    - strlen
    - assert
    - OpenDB
    - assert_true
    - GetStateDir
    - putenv
    - strchr
    - CloseDB
    - WriteDB
    - WriteComplexKeyDB
    - mkdir
    - memset
    linkageType: ''
    returnType: void
    signature: void test_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/tests/unit/changes_migration_test.c:106,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:128,1
    - Dst: FileChangesGetDirectoryList
      Src: /src/core/tests/unit/changes_migration_test.c:128,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/changes_migration_test.c:129,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/changes_migration_test.c:129,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/changes_migration_test.c:130,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/changes_migration_test.c:130,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/changes_migration_test.c:131,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/changes_migration_test.c:131,1
    - Dst: SeqClear
      Src: /src/core/tests/unit/changes_migration_test.c:133,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:134,1
    - Dst: FileChangesGetDirectoryList
      Src: /src/core/tests/unit/changes_migration_test.c:134,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/changes_migration_test.c:135,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/changes_migration_test.c:135,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/changes_migration_test.c:136,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/changes_migration_test.c:136,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/changes_migration_test.c:137,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/changes_migration_test.c:137,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/changes_migration_test.c:138,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:140,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/changes_migration_test.c:140,1
    - Dst: strlen
      Src: /src/core/tests/unit/changes_migration_test.c:145,1
    - Dst: ValueSizeDB
      Src: /src/core/tests/unit/changes_migration_test.c:146,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/changes_migration_test.c:147,1
    - Dst: strlen
      Src: /src/core/tests/unit/changes_migration_test.c:147,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:149,1
    - Dst: ReadComplexKeyDB
      Src: /src/core/tests/unit/changes_migration_test.c:149,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/changes_migration_test.c:150,1
    - Dst: memcmp
      Src: /src/core/tests/unit/changes_migration_test.c:150,1
    - Dst: ValueSizeDB
      Src: /src/core/tests/unit/changes_migration_test.c:154,1
    - Dst: strlen
      Src: /src/core/tests/unit/changes_migration_test.c:154,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/changes_migration_test.c:155,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:157,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/changes_migration_test.c:157,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/changes_migration_test.c:158,1
    - Dst: memcmp
      Src: /src/core/tests/unit/changes_migration_test.c:158,1
    - Dst: assert_true
      Src: /src/core/tests/unit/changes_migration_test.c:164,1
    - Dst: NewDBCursor
      Src: /src/core/tests/unit/changes_migration_test.c:164,1
    - Dst: NextDB
      Src: /src/core/tests/unit/changes_migration_test.c:167,1
    - Dst: DeleteDBCursor
      Src: /src/core/tests/unit/changes_migration_test.c:171,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/changes_migration_test.c:175,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/changes_migration_test.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 178
    functionName: test_migration
    functionSourceFile: /src/core/tests/unit/changes_migration_test.c
    functionUses: 0
    functionsReached:
    - NewDBCursor
    - memcmp
    - SeqLength
    - ValueSizeDB
    - SeqDestroy
    - strlen
    - SeqClear
    - assert_string_equal
    - ReadComplexKeyDB
    - CloseDB
    - SeqAt
    - OpenDB
    - SeqNew
    - FileChangesGetDirectoryList
    - assert_int_equal
    - DeleteDBCursor
    - assert_true
    - ReadDB
    - NextDB
    linkageType: ''
    returnType: void
    signature: void test_migration(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteDirectoryTree
      Src: /src/core/tests/unit/changes_migration_test.c:182,1
    - Dst: GetWorkDir
      Src: /src/core/tests/unit/changes_migration_test.c:182,1
    - Dst: rmdir
      Src: /src/core/tests/unit/changes_migration_test.c:183,1
    - Dst: GetWorkDir
      Src: /src/core/tests/unit/changes_migration_test.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: test_teardown
    functionSourceFile: /src/core/tests/unit/changes_migration_test.c
    functionUses: 2
    functionsReached:
    - DeleteDirectoryTree
    - GetWorkDir
    - rmdir
    linkageType: ''
    returnType: void
    signature: void test_teardown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit_test
      Src: /src/core/tests/unit/changes_migration_test.c:190,1
    - Dst: unit_test
      Src: /src/core/tests/unit/changes_migration_test.c:191,1
    - Dst: unit_test
      Src: /src/core/tests/unit/changes_migration_test.c:192,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/changes_migration_test.c:195,1
    - Dst: run_tests
      Src: /src/core/tests/unit/changes_migration_test.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/core/tests/unit/changes_migration_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - unit_test
    - run_tests
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: main
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/tests/unit/lastseen_migration_test.c:31,1
    - Dst: assert
      Src: /src/core/tests/unit/lastseen_migration_test.c:32,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/lastseen_migration_test.c:34,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/lastseen_migration_test.c:35,1
    - Dst: putenv
      Src: /src/core/tests/unit/lastseen_migration_test.c:36,1
    - Dst: mkdir
      Src: /src/core/tests/unit/lastseen_migration_test.c:37,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/lastseen_migration_test.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (workdir - 1 && workdir[0] == '/')
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/tests/unit/lastseen_migration_test.c
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: tests_setup
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 9
    functionsReached:
    - mkdtemp
    - assert
    - mkdir
    - GetStateDir
    - putenv
    - strchr
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/lastseen_migration_test.c:46,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/lastseen_migration_test.c:46,1
    - Dst: system
      Src: /src/core/tests/unit/lastseen_migration_test.c:47,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:50,1
    - Dst: NewDBCursor
      Src: /src/core/tests/unit/lastseen_migration_test.c:58,1
    - Dst: NextDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:67,1
    - Dst: DBCursorDeleteEntry
      Src: /src/core/tests/unit/lastseen_migration_test.c:69,1
    - Dst: DeleteDBCursor
      Src: /src/core/tests/unit/lastseen_migration_test.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - clean
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 79
    functionName: setup
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 20
    functionsReached:
    - NewDBCursor
    - OpenDB
    - DeleteDBCursor
    - GetStateDir
    - xsnprintf
    - NextDB
    - system
    - DBCursorDeleteEntry
    linkageType: ''
    returnType: DBHandle
    signature: DBHandle *setup(bool clean)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/lastseen_migration_test.c:84,1
    - Dst: system
      Src: /src/core/tests/unit/lastseen_migration_test.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 7
    functionsReached:
    - system
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_teardown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_migration_test.c:90,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:96,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:99,1
    - Dst: NewDBCursor
      Src: /src/core/tests/unit/lastseen_migration_test.c:99,1
    - Dst: NextDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:107,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_migration_test.c:107,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:108,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:109,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:110,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:113,1
    - Dst: DeleteDBCursor
      Src: /src/core/tests/unit/lastseen_migration_test.c:113,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 116
    functionName: test_no_migration
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - NewDBCursor
    - strlen
    - OpenDB
    - DeleteDBCursor
    - assert_string_equal
    - CloseDB
    - NextDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_no_migration(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_migration_test.c:123,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:125,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:125,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:126,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:132,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:132,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:136,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:136,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:137,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: test_up_to_date
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - OpenDB
    - ReadDB
    - assert_string_equal
    - CloseDB
    - WriteDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_up_to_date(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_migration_test.c:157,1
    - Dst: strcpy
      Src: /src/core/tests/unit/lastseen_migration_test.c:163,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:164,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:164,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:165,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:167,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:167,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:170,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:170,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_migration_test.c:171,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:174,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:174,1
    - Dst: strlen
      Src: /src/core/tests/unit/lastseen_migration_test.c:174,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:179,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:179,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:181,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_migration_test.c:182,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_migration_test.c:183,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/lastseen_migration_test.c:184,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:189,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:189,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:190,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:196,1
    - Dst: ReadDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:196,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:197,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - expected_old_key
    - expected_quality_key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 200
    functionName: test_migrate_single
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - strlen
    - assert_double_close
    - OpenDB
    - HasKeyDB
    - ReadDB
    - assert_string_equal
    - CloseDB
    - WriteDB
    - strcpy
    - setup
    linkageType: ''
    returnType: void
    signature: "void test_migrate_single(const char *expected_old_key,\n                         const
      char *expected_quality_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_migrate_single
      Src: /src/core/tests/unit/lastseen_migration_test.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: test_migrate_incoming
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - test_migrate_single
    linkageType: ''
    returnType: void
    signature: void test_migrate_incoming(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_migrate_single
      Src: /src/core/tests/unit/lastseen_migration_test.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: test_migrate_outgoing
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - test_migrate_single
    linkageType: ''
    returnType: void
    signature: void test_migrate_outgoing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/core/tests/unit/lastseen_migration_test.c:216,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:218,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:218,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:219,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:221,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:221,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:223,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:223,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:224,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:224,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:225,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:225,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:226,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:226,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/lastseen_migration_test.c:227,1
    - Dst: HasKeyDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:227,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/lastseen_migration_test.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 230
    functionName: test_ignore_wrong_sized
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - OpenDB
    - HasKeyDB
    - CloseDB
    - WriteDB
    - setup
    linkageType: ''
    returnType: void
    signature: void test_ignore_wrong_sized(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tests_setup
      Src: /src/core/tests/unit/lastseen_migration_test.c:234,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_migration_test.c:238,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_migration_test.c:239,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_migration_test.c:240,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_migration_test.c:241,1
    - Dst: unit_test
      Src: /src/core/tests/unit/lastseen_migration_test.c:242,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/lastseen_migration_test.c:245,1
    - Dst: run_tests
      Src: /src/core/tests/unit/lastseen_migration_test.c:246,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/lastseen_migration_test.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 251
    functionName: main
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - unit_test
    - run_tests
    - tests_teardown
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/lastseen_migration_test.c:257,1
    - Dst: exit
      Src: /src/core/tests/unit/lastseen_migration_test.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: FatalError
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 1
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: void FatalError(ARG_UNUSED char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/lastseen_migration_test.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: MapAddress
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: char
    signature: char *MapAddress(ARG_UNUSED char *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/lastseen_migration_test.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - dst_size
    - digest
    - HashMethod
    - use_prefix
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: HashPrintSafe
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: char
    signature: "char *HashPrintSafe(ARG_UNUSED char *dst, ARG_UNUSED size_t dst_size,\n
      \                   ARG_UNUSED const unsigned char *digest,\n                    ARG_UNUSED
      HashMethod type, ARG_UNUSED bool use_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/tests/unit/lastseen_migration_test.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - digest
    - HashMethod
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED unsigned[]
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: HashPubKey
    functionSourceFile: /src/core/tests/unit/lastseen_migration_test.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: void
    signature: "void HashPubKey(ARG_UNUSED const RSA *key,\n                ARG_UNUSED
      unsigned char digest[EVP_MAX_MD_SIZE + 1],\n                ARG_UNUSED HashMethod
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr1
    - ','
    - expr2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: assert_int_equal
    functionSourceFile: /src/core/tests/unit/process_test.c
    functionUses: 186
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_equal(expr1, expr2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr1
    - ','
    - expr2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: assert_int_not_equal
    functionSourceFile: /src/core/tests/unit/process_test.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_not_equal(expr1, expr2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: assert_true
    functionSourceFile: /src/core/tests/unit/process_test.c
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_true(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: assert_false
    functionSourceFile: /src/core/tests/unit/process_test.c
    functionUses: 71
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_false(expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:72,1
    - Dst: sleep
      Src: /src/core/tests/unit/process_test.c:73,1
    - Dst: fork
      Src: /src/core/tests/unit/process_test.c:75,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_test.c:76,1
    - Dst: execl
      Src: /src/core/tests/unit/process_test.c:80,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_test.c:81,1
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/process_test.c:85,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:87,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/process_test.c:91,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_test.c:92,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_test.c:93,1
    - Dst: kill
      Src: /src/core/tests/unit/process_test.c:95,1
    - Dst: wait
      Src: /src/core/tests/unit/process_test.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 98
    functionName: test_process_start_time
    functionSourceFile: /src/core/tests/unit/process_test.c
    functionUses: 0
    functionsReached:
    - kill
    - fork
    - GetProcessStartTime
    - wait
    - sleep
    - assert_true
    - printf
    - assert_int_not_equal
    - execl
    linkageType: ''
    returnType: void
    signature: void test_process_start_time(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/core/tests/unit/process_test.c:104,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_test.c:105,1
    - Dst: execl
      Src: /src/core/tests/unit/process_test.c:109,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_test.c:110,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:114,1
    - Dst: GetProcessState
      Src: /src/core/tests/unit/process_test.c:120,1
    - Dst: usleep
      Src: /src/core/tests/unit/process_test.c:127,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:130,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:131,1
    - Dst: kill
      Src: /src/core/tests/unit/process_test.c:133,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:134,1
    - Dst: GetProcessState
      Src: /src/core/tests/unit/process_test.c:138,1
    - Dst: usleep
      Src: /src/core/tests/unit/process_test.c:145,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:148,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:149,1
    - Dst: kill
      Src: /src/core/tests/unit/process_test.c:151,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:152,1
    - Dst: GetProcessState
      Src: /src/core/tests/unit/process_test.c:156,1
    - Dst: usleep
      Src: /src/core/tests/unit/process_test.c:163,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:166,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:167,1
    - Dst: kill
      Src: /src/core/tests/unit/process_test.c:170,1
    - Dst: wait
      Src: /src/core/tests/unit/process_test.c:171,1
    - Dst: GetProcessState
      Src: /src/core/tests/unit/process_test.c:173,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:174,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:175,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 178
    functionName: test_process_state
    functionSourceFile: /src/core/tests/unit/process_test.c
    functionUses: 0
    functionsReached:
    - kill
    - fork
    - assert_int_equal
    - GetProcessState
    - wait
    - assert_true
    - printf
    - usleep
    - execl
    linkageType: ''
    returnType: void
    signature: void test_process_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/core/tests/unit/process_test.c:184,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_test.c:185,1
    - Dst: execl
      Src: /src/core/tests/unit/process_test.c:189,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_test.c:190,1
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/process_test.c:193,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:196,1
    - Dst: GetProcessState
      Src: /src/core/tests/unit/process_test.c:199,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:200,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:202,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_test.c:204,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_test.c:205,1
    - Dst: GetProcessState
      Src: /src/core/tests/unit/process_test.c:207,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:208,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:210,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_test.c:212,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_test.c:213,1
    - Dst: GetProcessState
      Src: /src/core/tests/unit/process_test.c:215,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:216,1
    - Dst: wait
      Src: /src/core/tests/unit/process_test.c:218,1
    - Dst: GetProcessState
      Src: /src/core/tests/unit/process_test.c:220,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_test.c:221,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:223,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:226,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_test.c:227,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_test.c:228,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:230,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_test.c:231,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_test.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 233
    functionName: test_graceful_terminate
    functionSourceFile: /src/core/tests/unit/process_test.c
    functionUses: 0
    functionsReached:
    - fork
    - GetProcessStartTime
    - assert_int_equal
    - assert_false
    - GetProcessState
    - GracefulTerminate
    - wait
    - assert_true
    - printf
    - execl
    linkageType: ''
    returnType: void
    signature: void test_graceful_terminate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/core/tests/unit/process_test.c:238,1
    - Dst: puts
      Src: /src/core/tests/unit/process_test.c:239,1
    - Dst: puts
      Src: /src/core/tests/unit/process_test.c:240,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/tests/unit/process_test.c:243,1
    - Dst: getpid
      Src: /src/core/tests/unit/process_test.c:245,1
    - Dst: GetProcessStartTime
      Src: /src/core/tests/unit/process_test.c:246,1
    - Dst: printf
      Src: /src/core/tests/unit/process_test.c:248,1
    - Dst: test_process_start_time
      Src: /src/core/tests/unit/process_test.c:251,1
    - Dst: test_process_state
      Src: /src/core/tests/unit/process_test.c:252,1
    - Dst: test_graceful_terminate
      Src: /src/core/tests/unit/process_test.c:253,1
    - Dst: kill
      Src: /src/core/tests/unit/process_test.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 262
    functionName: main
    functionSourceFile: /src/core/tests/unit/process_test.c
    functionUses: 0
    functionsReached:
    - kill
    - GetProcessStartTime
    - test_graceful_terminate
    - getpid
    - test_process_state
    - LogSetGlobalLevel
    - printf
    - puts
    - test_process_start_time
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: GetAmPolicyHub
    functionSourceFile: /src/core/tests/unit/db_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetAmPolicyHub()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: ENTERPRISE_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_2ARG_DEFINE_STUB(int64_t, extension_function,
      int32_t, short_int, int64_t, long_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: ENTERPRISE_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_2ARG_DEFINE_STUB(int64_t, extension_function_broken,
      int32_t, short_int, int64_t, long_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:24,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/enterprise_extension_test.c:26,1
    - Dst: extension_function
      Src: /src/core/tests/unit/enterprise_extension_test.c:26,1
    - Dst: unsetenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: test_extension_function_stub
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test.c
    functionUses: 0
    functionsReached:
    - unsetenv
    - assert_int_equal
    - extension_function
    - putenv
    linkageType: ''
    returnType: void
    signature: void test_extension_function_stub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/enterprise_extension_test.c:35,1
    - Dst: extension_function
      Src: /src/core/tests/unit/enterprise_extension_test.c:35,1
    - Dst: unsetenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: test_extension_function
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test.c
    functionUses: 0
    functionsReached:
    - unsetenv
    - assert_int_equal
    - extension_function
    - putenv
    linkageType: ''
    returnType: void
    signature: void test_extension_function(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/enterprise_extension_test.c:46,1
    - Dst: extension_function_broken
      Src: /src/core/tests/unit/enterprise_extension_test.c:46,1
    - Dst: unsetenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: test_extension_function_broken
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test.c
    functionUses: 0
    functionsReached:
    - extension_function_broken
    - assert_int_equal
    - unsetenv
    - putenv
    linkageType: ''
    returnType: void
    signature: void test_extension_function_broken(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:53,1
    - Dst: putenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/enterprise_extension_test.c:58,1
    - Dst: extension_function
      Src: /src/core/tests/unit/enterprise_extension_test.c:58,1
    - Dst: unsetenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:60,1
    - Dst: unsetenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: test_extension_function_version_mismatch
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test.c
    functionUses: 0
    functionsReached:
    - unsetenv
    - assert_int_equal
    - extension_function
    - putenv
    linkageType: ''
    returnType: void
    signature: void test_extension_function_version_mismatch()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/core/tests/unit/enterprise_extension_test.c:66,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/enterprise_extension_test.c:67,1
    - Dst: unit_test
      Src: /src/core/tests/unit/enterprise_extension_test.c:70,1
    - Dst: unit_test
      Src: /src/core/tests/unit/enterprise_extension_test.c:71,1
    - Dst: unit_test
      Src: /src/core/tests/unit/enterprise_extension_test.c:72,1
    - Dst: unit_test
      Src: /src/core/tests/unit/enterprise_extension_test.c:73,1
    - Dst: run_tests
      Src: /src/core/tests/unit/enterprise_extension_test.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/core/tests/unit/enterprise_extension_test.c
    functionUses: 0
    functionsReached:
    - run_tests
    - PRINT_TEST_BANNER
    - putenv
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: cast_to_largest_integral_type
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cast_to_largest_integral_type(value)
  - 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: mock
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - function
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: will_return
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: will_return(function, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - value
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: will_return_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: will_return_count(function, value, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - check_function
    - ','
    - check_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: expect_check
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_check(function, parameter, check_function, check_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value_array
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: expect_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_in_set(function, parameter, value_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value_array
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: expect_in_set_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_in_set_count(function, parameter, value_array, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value_array
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: expect_not_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_in_set(function, parameter, value_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value_array
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: expect_not_in_set_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_in_set_count(function, parameter, value_array, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - minimum
    - ','
    - maximum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: expect_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_in_range(function, parameter, minimum, maximum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - minimum
    - ','
    - maximum
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: expect_in_range_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_in_range_count(function, parameter, minimum, maximum, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - minimum
    - ','
    - maximum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: expect_not_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_in_range(function, parameter, minimum, maximum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - minimum
    - ','
    - maximum
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: expect_not_in_range_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "expect_not_in_range_count(function, parameter, minimum, maximum, \\\n
      \                                 count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: expect_value
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_value(function, parameter, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: expect_value_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_value_count(function, parameter, value, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: expect_not_value
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_value(function, parameter, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: expect_not_value_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_value_count(function, parameter, value, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: expect_string
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_string(function, parameter, string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - string
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: expect_string_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_string_count(function, parameter, string, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: expect_not_string
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_string(function, parameter, string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - string
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: expect_not_string_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_string_count(function, parameter, string, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - memory
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: expect_memory
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_memory(function, parameter, memory, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - memory
    - ','
    - size
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: expect_memory_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_memory_count(function, parameter, memory, size, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - memory
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: expect_not_memory
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_memory(function, parameter, memory, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - memory
    - ','
    - size
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: expect_not_memory_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_memory_count(function, parameter, memory, size, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - function
    - ','
    - parameter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: expect_any
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_any(function, parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: expect_any_count
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_any_count(function, parameter, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - parameter
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: check_expected
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_expected(parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: assert_true
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_true(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: assert_false
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_false(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: assert_int_equal
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 192
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_equal(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: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: assert_int_not_equal
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_not_equal(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: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: assert_string_equal
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 109
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_string_equal(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: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: assert_string_not_equal
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_string_not_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: assert_memory_equal
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_memory_equal(a, b, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: assert_memory_not_equal
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_memory_not_equal(a, b, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - minimum
    - ','
    - maximum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: assert_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_in_range(value, minimum, maximum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - minimum
    - ','
    - maximum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: assert_not_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_not_in_range(value, minimum, maximum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - values
    - ','
    - number_of_values
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: assert_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_in_set(value, values, number_of_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - values
    - ','
    - number_of_values
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: assert_not_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_not_in_set(value, values, number_of_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: fail
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: run_test
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: run_test(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: unit_test
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: unit_test_with_state
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test_with_state(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - setup
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: unit_test_setup
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test_setup(test, setup)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - teardown
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: unit_test_teardown
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test_teardown(test, teardown)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - test
    - ','
    - setup
    - ','
    - teardown
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: unit_test_setup_teardown
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test_setup_teardown(test, setup, teardown)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tests
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: run_tests
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: run_tests(tests)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: test_malloc
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_malloc(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: test_calloc
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_calloc(num, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: test_free
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_free(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - function_call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 323
    functionName: expect_assert_failure
    functionSourceFile: /src/core/tests/unit/cmockery.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_assert_failure(function_call)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NewAssoc
      Src: /src/core/tests/unit/assoc_test.c:7,1
    - Dst: DeleteAssoc
      Src: /src/core/tests/unit/assoc_test.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: test_create_destroy
    functionSourceFile: /src/core/tests/unit/assoc_test.c
    functionUses: 0
    functionsReached:
    - NewAssoc
    - DeleteAssoc
    linkageType: ''
    returnType: void
    signature: void test_create_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/assoc_test.c:13,1
    - Dst: unit_test
      Src: /src/core/tests/unit/assoc_test.c:16,1
    - Dst: run_tests
      Src: /src/core/tests/unit/assoc_test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 20
    functionName: main
    functionSourceFile: /src/core/tests/unit/assoc_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/core/tests/unit/init_script_test_helper.c:41,1
    - Dst: printf
      Src: /src/core/tests/unit/init_script_test_helper.c:44,1
    - Dst: exit
      Src: /src/core/tests/unit/init_script_test_helper.c:45,1
    - Dst: execv
      Src: /src/core/tests/unit/init_script_test_helper.c:56,1
    - Dst: printf
      Src: /src/core/tests/unit/init_script_test_helper.c:58,1
    - Dst: exit
      Src: /src/core/tests/unit/init_script_test_helper.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - program
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: spawn_process
    functionSourceFile: /src/core/tests/unit/init_script_test_helper.c
    functionUses: 0
    functionsReached:
    - execv
    - fork
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void spawn_process(const char *program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: signal_handler
    functionSourceFile: /src/core/tests/unit/init_script_test_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signal_handler(int signal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sleep
      Src: /src/core/tests/unit/init_script_test_helper.c:76,1
    - Dst: spawn_process
      Src: /src/core/tests/unit/init_script_test_helper.c:78,1
    - Dst: unlink
      Src: /src/core/tests/unit/init_script_test_helper.c:85,1
    - Dst: exit
      Src: /src/core/tests/unit/init_script_test_helper.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 89
    functionName: process_signal
    functionSourceFile: /src/core/tests/unit/init_script_test_helper.c
    functionUses: 0
    functionsReached:
    - exit
    - sleep
    - unlink
    - spawn_process
    linkageType: ''
    returnType: void
    signature: void process_signal(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/core/tests/unit/init_script_test_helper.c:94,1
    - Dst: memset
      Src: /src/core/tests/unit/init_script_test_helper.c:96,1
    - Dst: sigaction
      Src: /src/core/tests/unit/init_script_test_helper.c:103,1
    - Dst: printf
      Src: /src/core/tests/unit/init_script_test_helper.c:105,1
    - Dst: strcmp
      Src: /src/core/tests/unit/init_script_test_helper.c:112,1
    - Dst: printf
      Src: /src/core/tests/unit/init_script_test_helper.c:116,1
    - Dst: malloc
      Src: /src/core/tests/unit/init_script_test_helper.c:122,1
    - Dst: strlen
      Src: /src/core/tests/unit/init_script_test_helper.c:122,1
    - Dst: strlen
      Src: /src/core/tests/unit/init_script_test_helper.c:122,1
    - Dst: sprintf
      Src: /src/core/tests/unit/init_script_test_helper.c:123,1
    - Dst: strcmp
      Src: /src/core/tests/unit/init_script_test_helper.c:127,1
    - Dst: printf
      Src: /src/core/tests/unit/init_script_test_helper.c:131,1
    - Dst: malloc
      Src: /src/core/tests/unit/init_script_test_helper.c:135,1
    - Dst: strlen
      Src: /src/core/tests/unit/init_script_test_helper.c:135,1
    - Dst: strlen
      Src: /src/core/tests/unit/init_script_test_helper.c:135,1
    - Dst: sprintf
      Src: /src/core/tests/unit/init_script_test_helper.c:136,1
    - Dst: strcmp
      Src: /src/core/tests/unit/init_script_test_helper.c:140,1
    - Dst: strcmp
      Src: /src/core/tests/unit/init_script_test_helper.c:144,1
    - Dst: printf
      Src: /src/core/tests/unit/init_script_test_helper.c:154,1
    - Dst: getenv
      Src: /src/core/tests/unit/init_script_test_helper.c:159,1
    - Dst: strrchr
      Src: /src/core/tests/unit/init_script_test_helper.c:162,1
    - Dst: malloc
      Src: /src/core/tests/unit/init_script_test_helper.c:164,1
    - Dst: strlen
      Src: /src/core/tests/unit/init_script_test_helper.c:164,1
    - Dst: strlen
      Src: /src/core/tests/unit/init_script_test_helper.c:164,1
    - Dst: sprintf
      Src: /src/core/tests/unit/init_script_test_helper.c:165,1
    - Dst: fork
      Src: /src/core/tests/unit/init_script_test_helper.c:168,1
    - Dst: printf
      Src: /src/core/tests/unit/init_script_test_helper.c:171,1
    - Dst: exit
      Src: /src/core/tests/unit/init_script_test_helper.c:172,1
    - Dst: fopen
      Src: /src/core/tests/unit/init_script_test_helper.c:179,1
    - Dst: printf
      Src: /src/core/tests/unit/init_script_test_helper.c:182,1
    - Dst: exit
      Src: /src/core/tests/unit/init_script_test_helper.c:183,1
    - Dst: fprintf
      Src: /src/core/tests/unit/init_script_test_helper.c:185,1
    - Dst: fclose
      Src: /src/core/tests/unit/init_script_test_helper.c:186,1
    - Dst: spawn_process
      Src: /src/core/tests/unit/init_script_test_helper.c:194,1
    - Dst: sleep
      Src: /src/core/tests/unit/init_script_test_helper.c:199,1
    - Dst: process_signal
      Src: /src/core/tests/unit/init_script_test_helper.c:202,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 206
    functionName: main
    functionSourceFile: /src/core/tests/unit/init_script_test_helper.c
    functionUses: 0
    functionsReached:
    - fork
    - exit
    - sprintf
    - fopen
    - sigemptyset
    - strlen
    - getenv
    - process_signal
    - sleep
    - spawn_process
    - printf
    - strrchr
    - strcmp
    - malloc
    - fprintf
    - fclose
    - sigaction
    - memset
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - flag
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: dlopen
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *dlopen(const char *filename, int flag)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:42,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:46,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:50,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:54,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:58,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:62,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:66,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:70,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:74,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:78,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:82,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:86,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:90,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:94,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:98,1
    - Dst: strcmp
      Src: /src/core/tests/unit/findhub_test.c:102,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - handle
    - symbol
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 108
    functionName: dlsym
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void *dlsym(void *handle, const char *symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: dlclose
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dlclose(void *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: avahi_simple_poll_new
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AvahiSimplePoll
    signature: AvahiSimplePoll *avahi_simple_poll_new()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poll
    argTypes:
    - AvahiSimplePoll*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: avahi_simple_poll_free
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void avahi_simple_poll_free(AvahiSimplePoll *poll)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - AvahiSimplePoll*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: avahi_simple_poll_get
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AvahiPoll
    signature: AvahiPoll *avahi_simple_poll_get(AvahiSimplePoll *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - poll
    argTypes:
    - AvahiSimplePoll*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: avahi_simple_poll_quit
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void avahi_simple_poll_quit(AvahiSimplePoll *poll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/findhub_test.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buffer
    - size
    - address
    argTypes:
    - char*
    - size_t
    - AvahiAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: avahi_address_snprint
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    linkageType: ''
    returnType: char
    signature: char *avahi_address_snprint(char *buffer, size_t size, const AvahiAddress
      *address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - AvahiServiceResolver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: avahi_service_resolver_free
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int avahi_service_resolver_free(AvahiServiceResolver *resolver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - AvahiClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: avahi_client_errno
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int avahi_client_errno(AvahiClient *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: avahi_strerror
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *avahi_strerror(int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - c
    - index
    - protocol
    - s1
    - s2
    - s3
    - protocol2
    - flags
    - callback
    - data
    argTypes:
    - AvahiClient*
    - AvahiIfIndex
    - AvahiProtocol
    - char*
    - char*
    - char*
    - AvahiProtocol
    - AvahiLookupFlags
    - AvahiServiceResolverCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: avahi_service_resolver_new
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AvahiServiceResolver
    signature: "AvahiServiceResolver *avahi_service_resolver_new(AvahiClient *c, AvahiIfIndex
      index, AvahiProtocol protocol, const char * s1, const char *s2, const char *s3,\n
      \                                                AvahiProtocol protocol2, AvahiLookupFlags
      flags, AvahiServiceResolverCallback callback, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sb
    argTypes:
    - AvahiServiceBrowser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: avahi_service_browser_get_client
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AvahiClient
    signature: AvahiClient *avahi_service_browser_get_client(AvahiServiceBrowser *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sr
    argTypes:
    - AvahiServiceResolver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: avahi_service_resolver_get_client
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AvahiClient
    signature: AvahiClient *avahi_service_resolver_get_client(AvahiServiceResolver
      *sr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - poll
    - cf
    - callback
    - data
    - stat
    argTypes:
    - AvahiPoll*
    - AvahiClientFlags
    - AvahiClientCallback
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: avahi_client_new
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AvahiClient
    signature: AvahiClient *avahi_client_new(const AvahiPoll *poll, AvahiClientFlags
      cf, AvahiClientCallback callback, void *data, int *stat)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/core/tests/unit/findhub_test.c:189,1
    - Dst: resolve_callback
      Src: /src/core/tests/unit/findhub_test.c:194,1
    - Dst: resolve_callback
      Src: /src/core/tests/unit/findhub_test.c:198,1
    - Dst: resolve_callback
      Src: /src/core/tests/unit/findhub_test.c:199,1
    - Dst: resolve_callback
      Src: /src/core/tests/unit/findhub_test.c:200,1
    - Dst: free
      Src: /src/core/tests/unit/findhub_test.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - sp
    argTypes:
    - AvahiSimplePoll*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 208
    functionName: avahi_simple_poll_loop
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    - resolve_callback
    linkageType: ''
    returnType: int
    signature: int avahi_simple_poll_loop(AvahiSimplePoll *sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sb
    argTypes:
    - AvahiServiceBrowser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: avahi_service_browser_free
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int avahi_service_browser_free(AvahiServiceBrowser *sb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - AvahiClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: avahi_client_free
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void avahi_client_free(AvahiClient *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - c
    - index
    - protocol
    - s1
    - s2
    - flags
    - callback
    - data
    argTypes:
    - AvahiClient*
    - AvahiIfIndex
    - AvahiProtocol
    - char*
    - char*
    - AvahiLookupFlags
    - AvahiServiceBrowserCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: avahi_service_browser_new
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AvahiServiceBrowser
    signature: "AvahiServiceBrowser *avahi_service_browser_new(AvahiClient *c, AvahiIfIndex
      index, AvahiProtocol protocol, const char *s1, const char *s2, AvahiLookupFlags
      flags,\n                                               AvahiServiceBrowserCallback
      callback, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/findhub_test.c:234,1
    - Dst: ListHubs
      Src: /src/core/tests/unit/findhub_test.c:234,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/findhub_test.c:235,1
    - Dst: ListDestroy
      Src: /src/core/tests/unit/findhub_test.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: test_noHubsFound
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached:
    - assert_int_not_equal
    - ListDestroy
    - assert_int_equal
    - ListHubs
    linkageType: ''
    returnType: void
    signature: void test_noHubsFound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/findhub_test.c:246,1
    - Dst: ListHubs
      Src: /src/core/tests/unit/findhub_test.c:246,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/findhub_test.c:247,1
    - Dst: ListIteratorGet
      Src: /src/core/tests/unit/findhub_test.c:250,1
    - Dst: assert_true
      Src: /src/core/tests/unit/findhub_test.c:251,1
    - Dst: ListIteratorData
      Src: /src/core/tests/unit/findhub_test.c:252,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/findhub_test.c:254,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/findhub_test.c:255,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/findhub_test.c:256,1
    - Dst: ListIteratorDestroy
      Src: /src/core/tests/unit/findhub_test.c:258,1
    - Dst: ListDestroy
      Src: /src/core/tests/unit/findhub_test.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 260
    functionName: test_oneHubFound
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_true
    - ListIteratorData
    - assert_int_not_equal
    - ListIteratorDestroy
    - assert_string_equal
    - ListHubs
    - ListDestroy
    - ListIteratorGet
    linkageType: ''
    returnType: void
    signature: void test_oneHubFound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/findhub_test.c:268,1
    - Dst: ListHubs
      Src: /src/core/tests/unit/findhub_test.c:268,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/findhub_test.c:269,1
    - Dst: ListIteratorGet
      Src: /src/core/tests/unit/findhub_test.c:272,1
    - Dst: ListIteratorData
      Src: /src/core/tests/unit/findhub_test.c:274,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/findhub_test.c:275,1
    - Dst: ListIteratorNext
      Src: /src/core/tests/unit/findhub_test.c:275,1
    - Dst: ListIteratorData
      Src: /src/core/tests/unit/findhub_test.c:276,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/findhub_test.c:277,1
    - Dst: ListIteratorNext
      Src: /src/core/tests/unit/findhub_test.c:277,1
    - Dst: ListIteratorData
      Src: /src/core/tests/unit/findhub_test.c:278,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/findhub_test.c:280,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/findhub_test.c:281,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/findhub_test.c:282,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/findhub_test.c:284,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/findhub_test.c:285,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/findhub_test.c:286,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/findhub_test.c:288,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/findhub_test.c:289,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/findhub_test.c:290,1
    - Dst: ListIteratorDestroy
      Src: /src/core/tests/unit/findhub_test.c:292,1
    - Dst: ListDestroy
      Src: /src/core/tests/unit/findhub_test.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 294
    functionName: test_multipleHubsFound
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ListIteratorData
    - assert_int_not_equal
    - ListIteratorDestroy
    - assert_string_equal
    - ListHubs
    - ListDestroy
    - ListIteratorGet
    - ListIteratorNext
    linkageType: ''
    returnType: void
    signature: void test_multipleHubsFound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/findhub_test.c:302,1
    - Dst: ListHubs
      Src: /src/core/tests/unit/findhub_test.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 303
    functionName: test_errorOccurred
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ListHubs
    linkageType: ''
    returnType: void
    signature: void test_errorOccurred(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/findhub_test.c:307,1
    - Dst: unit_test
      Src: /src/core/tests/unit/findhub_test.c:310,1
    - Dst: unit_test
      Src: /src/core/tests/unit/findhub_test.c:311,1
    - Dst: unit_test
      Src: /src/core/tests/unit/findhub_test.c:312,1
    - Dst: unit_test
      Src: /src/core/tests/unit/findhub_test.c:313,1
    - Dst: run_tests
      Src: /src/core/tests/unit/findhub_test.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 317
    functionName: main
    functionSourceFile: /src/core/tests/unit/findhub_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:11,1
    - Dst: assert_true
      Src: /src/core/tests/unit/arg_split_test.c:13,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:14,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:15,1
    - Dst: ArgGetExecutableAndArgs
      Src: /src/core/tests/unit/arg_split_test.c:18,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:19,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: test_split_empty
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ArgGetExecutableAndArgs
    - assert_true
    - ArgSplitCommand
    - ArgFree
    linkageType: ''
    returnType: void
    signature: void test_split_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:25,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:27,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:28,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:29,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:30,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:32,1
    - Dst: ArgGetExecutableAndArgs
      Src: /src/core/tests/unit/arg_split_test.c:35,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:36,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:37,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:39,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: test_split_easy
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ArgGetExecutableAndArgs
    - assert_string_equal
    - free
    - ArgSplitCommand
    - ArgFree
    linkageType: ''
    returnType: void
    signature: void test_split_easy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:45,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:47,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:48,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:49,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:50,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:52,1
    - Dst: ArgGetExecutableAndArgs
      Src: /src/core/tests/unit/arg_split_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:56,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:57,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:59,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 61
    functionName: test_split_whitespace_prefix
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ArgGetExecutableAndArgs
    - assert_string_equal
    - free
    - ArgSplitCommand
    - ArgFree
    linkageType: ''
    returnType: void
    signature: void test_split_whitespace_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:65,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:67,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:68,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:69,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:70,1
    - Dst: ArgGetExecutableAndArgs
      Src: /src/core/tests/unit/arg_split_test.c:73,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:75,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:77,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: test_split_quoted_beginning
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ArgGetExecutableAndArgs
    - assert_string_equal
    - free
    - ArgSplitCommand
    - ArgFree
    linkageType: ''
    returnType: void
    signature: void test_split_quoted_beginning(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:83,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:86,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:87,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:88,1
    - Dst: ArgGetExecutableAndArgs
      Src: /src/core/tests/unit/arg_split_test.c:91,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:92,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:93,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:95,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: test_split_quoted_end
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ArgGetExecutableAndArgs
    - assert_string_equal
    - free
    - ArgSplitCommand
    - ArgFree
    linkageType: ''
    returnType: void
    signature: void test_split_quoted_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:101,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:103,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:104,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:105,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:106,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:107,1
    - Dst: ArgGetExecutableAndArgs
      Src: /src/core/tests/unit/arg_split_test.c:110,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:111,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:112,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:114,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: test_split_quoted_middle
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ArgGetExecutableAndArgs
    - assert_string_equal
    - free
    - ArgSplitCommand
    - ArgFree
    linkageType: ''
    returnType: void
    signature: void test_split_quoted_middle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:120,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:122,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:123,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:124,1
    - Dst: ArgGetExecutableAndArgs
      Src: /src/core/tests/unit/arg_split_test.c:127,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:128,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:129,1
    - Dst: free
      Src: /src/core/tests/unit/arg_split_test.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: test_complex_quoting
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ArgGetExecutableAndArgs
    - assert_string_equal
    - free
    - ArgSplitCommand
    - ArgFree
    linkageType: ''
    returnType: void
    signature: void test_complex_quoting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:138,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:140,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:141,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: test_arguments_resize_for_null
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ArgSplitCommand
    - assert_string_equal
    - ArgFree
    linkageType: ''
    returnType: void
    signature: void test_arguments_resize_for_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:147,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:149,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:150,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:151,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: test_arguments_resize
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ArgSplitCommand
    - assert_string_equal
    - ArgFree
    linkageType: ''
    returnType: void
    signature: void test_arguments_resize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/tests/unit/arg_split_test.c:159,1
    - Dst: SeqAppend
      Src: /src/core/tests/unit/arg_split_test.c:162,1
    - Dst: ArgSplitCommand
      Src: /src/core/tests/unit/arg_split_test.c:165,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/arg_split_test.c:166,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:168,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:169,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:170,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:171,1
    - Dst: assert_false
      Src: /src/core/tests/unit/arg_split_test.c:172,1
    - Dst: ArgFree
      Src: /src/core/tests/unit/arg_split_test.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: test_arguments_with_arglist
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - SeqDestroy
    - SeqNew
    - assert_string_equal
    - ArgSplitCommand
    - ArgFree
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_arguments_with_arglist(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:179,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:179,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:182,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:182,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:185,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:185,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:188,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:188,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:191,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:191,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:194,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:194,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:197,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:197,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:200,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:200,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:203,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:203,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:206,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:206,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:209,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:209,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:212,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:212,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:215,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:215,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:218,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:218,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:221,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:221,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:227,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:227,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:230,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:230,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/arg_split_test.c:233,1
    - Dst: CommandArg0
      Src: /src/core/tests/unit/arg_split_test.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 235
    functionName: test_command_promiser
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - CommandArg0
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_command_promiser(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/arg_split_test.c:239,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:242,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:243,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:244,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:245,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:246,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:247,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:248,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:249,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:250,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:251,1
    - Dst: unit_test
      Src: /src/core/tests/unit/arg_split_test.c:252,1
    - Dst: run_tests
      Src: /src/core/tests/unit/arg_split_test.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 256
    functionName: main
    functionSourceFile: /src/core/tests/unit/arg_split_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - 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: ARRAY_LENGTH
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: declare_initialize_value_pointer_pointer
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_initialize_value_pointer_pointer(name, ptr)
  - 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: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: declare_initialize_value_pointer_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_initialize_value_pointer_value(name, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pointer_type
    - ','
    - largest_integral_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: cast_largest_integral_type_to_pointer
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "cast_largest_integral_type_to_pointer( \\\n    pointer_type, largest_integral_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception_code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: EXCEPTION_CODE_INFO
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXCEPTION_CODE_INFO(exception_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/core/tests/unit/cmockery.c:290,1
    - Dst: exit
      Src: /src/core/tests/unit/cmockery.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: exit_test
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - exit
    - longjmp
    linkageType: ''
    returnType: void
    signature: void exit_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/core/tests/unit/cmockery.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 306
    functionName: exit_test_no_app
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - longjmp
    linkageType: ''
    returnType: void
    signature: void exit_test_no_app(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - location
    argTypes:
    - SourceLocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: initialize_source_location
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: void
    signature: void initialize_source_location(SourceLocation *const location)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - location
    argTypes:
    - SourceLocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: source_location_is_set
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: int
    signature: int source_location_is_set(const SourceLocation *const location)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - location
    - file
    - line
    argTypes:
    - SourceLocation*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: set_source_location
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: void
    signature: void set_source_location(SourceLocation *const location, const char
      *const file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_initialize
      Src: /src/core/tests/unit/cmockery.c:335,1
    - Dst: initialize_source_location
      Src: /src/core/tests/unit/cmockery.c:336,1
    - Dst: list_initialize
      Src: /src/core/tests/unit/cmockery.c:337,1
    - Dst: initialize_source_location
      Src: /src/core/tests/unit/cmockery.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: initialize_testing
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - list_initialize
    - initialize_source_location
    linkageType: ''
    returnType: void
    signature: void initialize_testing(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remove_always_return_values
      Src: /src/core/tests/unit/cmockery.c:345,1
    - Dst: check_for_leftover_values
      Src: /src/core/tests/unit/cmockery.c:346,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:348,1
    - Dst: remove_always_return_values
      Src: /src/core/tests/unit/cmockery.c:355,1
    - Dst: check_for_leftover_values
      Src: /src/core/tests/unit/cmockery.c:356,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:359,1
    - Dst: exit_test
      Src: /src/core/tests/unit/cmockery.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 370
    functionName: fail_if_leftover_values
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - exit_test
    - remove_always_return_values
    - check_for_leftover_values
    - print_xml
    linkageType: ''
    returnType: void
    signature: void fail_if_leftover_values(const char *test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_free
      Src: /src/core/tests/unit/cmockery.c:374,1
    - Dst: initialize_source_location
      Src: /src/core/tests/unit/cmockery.c:375,1
    - Dst: list_free
      Src: /src/core/tests/unit/cmockery.c:376,1
    - Dst: initialize_source_location
      Src: /src/core/tests/unit/cmockery.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: teardown_testing
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - list_free
    - initialize_source_location
    linkageType: ''
    returnType: void
    signature: void teardown_testing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 388
    functionName: list_initialize
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_initialize(ListNode *const node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:394,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:396,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:397,1
    - Dst: list_add
      Src: /src/core/tests/unit/cmockery.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - head
    - value
    - refcount
    argTypes:
    - ListNode*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 401
    functionName: list_add_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - list_add
    - malloc
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_add_value(ListNode *const head, const void *value, const
      int refcount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:406,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - head
    - new_node
    argTypes:
    - ListNode*
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: list_add
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_add(ListNode *const head, ListNode *new_node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:418,1
    - Dst: cleanup_value
      Src: /src/core/tests/unit/cmockery.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - node
    - cleanup_value
    - cleanup_value_data
    argTypes:
    - ListNode*
    - CleanupListValue
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 426
    functionName: list_remove
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - cleanup_value
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_remove(ListNode *const node, const CleanupListValue
      cleanup_value, void *const cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:431,1
    - Dst: free
      Src: /src/core/tests/unit/cmockery.c:432,1
    - Dst: list_remove
      Src: /src/core/tests/unit/cmockery.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - node
    - cleanup_value
    - cleanup_value_data
    argTypes:
    - ListNode*
    - CleanupListValue
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: list_remove_free
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - free
    - assert_true
    - list_remove
    linkageType: ''
    returnType: void
    signature: void list_remove_free(ListNode *const node, const CleanupListValue
      cleanup_value, void *const cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:443,1
    - Dst: list_empty
      Src: /src/core/tests/unit/cmockery.c:444,1
    - Dst: list_remove_free
      Src: /src/core/tests/unit/cmockery.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - head
    - cleanup_value
    - cleanup_value_data
    argTypes:
    - ListNode*
    - CleanupListValue
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: list_free
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - list_remove_free
    - assert_true
    - list_empty
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_free(ListNode *const head, const CleanupListValue cleanup_value,
      void *const cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - head
    argTypes:
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: list_empty
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: int
    signature: int list_empty(const ListNode *const head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:465,1
    - Dst: equal_func
      Src: /src/core/tests/unit/cmockery.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - head
    - value
    - equal_func
    - output
    argTypes:
    - ListNode*
    - void*
    - EqualityFunction
    - ListNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 475
    functionName: list_find
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - equal_func
    linkageType: ''
    returnType: int
    signature: int list_find(ListNode *const head, const void *value, const EqualityFunction
      equal_func, ListNode **output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:482,1
    - Dst: list_empty
      Src: /src/core/tests/unit/cmockery.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - head
    - output
    argTypes:
    - ListNode*
    - ListNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 490
    functionName: list_first
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - list_empty
    linkageType: ''
    returnType: int
    signature: int list_first(ListNode *const head, ListNode **output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:501,1
    - Dst: free
      Src: /src/core/tests/unit/cmockery.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - cleanup_value_data
    argTypes:
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: free_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - free
    - assert_true
    linkageType: ''
    returnType: void
    signature: void free_value(const void *value, ARG_UNUSED void *cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:511,1
    - Dst: list_free
      Src: /src/core/tests/unit/cmockery.c:512,1
    - Dst: free
      Src: /src/core/tests/unit/cmockery.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - cleanup_value_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 515
    functionName: free_symbol_map_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - free
    - assert_true
    - list_free
    linkageType: ''
    returnType: void
    signature: void free_symbol_map_value(const void *value, void *cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/unit/cmockery.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map_value
    - symbol
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: symbol_names_match
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int symbol_names_match(const void *map_value, const void *symbol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:535,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:536,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:537,1
    - Dst: list_find
      Src: /src/core/tests/unit/cmockery.c:540,1
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:542,1
    - Dst: list_initialize
      Src: /src/core/tests/unit/cmockery.c:545,1
    - Dst: list_add_value
      Src: /src/core/tests/unit/cmockery.c:546,1
    - Dst: list_add_value
      Src: /src/core/tests/unit/cmockery.c:552,1
    - Dst: add_symbol_value
      Src: /src/core/tests/unit/cmockery.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - symbol_map_head
    - symbol_names
    - number_of_symbol_names
    - value
    - refcount
    argTypes:
    - ListNode*
    - char*[]
    - size_t
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 559
    functionName: add_symbol_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - list_add_value
    - assert_true
    - list_initialize
    - malloc
    - list_find
    - add_symbol_value
    linkageType: ''
    returnType: void
    signature: "void add_symbol_value(ListNode *const symbol_map_head,\n                             const
      char *const symbol_names[],\n                             const size_t number_of_symbol_names,
      const void *value, const int refcount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:573,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:574,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:575,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:576,1
    - Dst: list_find
      Src: /src/core/tests/unit/cmockery.c:579,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:585,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:586,1
    - Dst: list_first
      Src: /src/core/tests/unit/cmockery.c:595,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:596,1
    - Dst: list_remove_free
      Src: /src/core/tests/unit/cmockery.c:601,1
    - Dst: get_symbol_value
      Src: /src/core/tests/unit/cmockery.c:606,1
    - Dst: list_empty
      Src: /src/core/tests/unit/cmockery.c:608,1
    - Dst: list_remove_free
      Src: /src/core/tests/unit/cmockery.c:610,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - head
    - symbol_names
    - number_of_symbol_names
    - output
    argTypes:
    - ListNode*
    - char*[]
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 619
    functionName: get_symbol_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - print_error
    - get_symbol_value
    - assert_true
    - list_find
    - list_remove_free
    - list_first
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int get_symbol_value(ListNode *const head, const char *const symbol_names[],\n
      \                           const size_t number_of_symbol_names, void **output)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:629,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:630,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:638,1
    - Dst: list_empty
      Src: /src/core/tests/unit/cmockery.c:641,1
    - Dst: list_remove_free
      Src: /src/core/tests/unit/cmockery.c:650,1
    - Dst: remove_always_return_values
      Src: /src/core/tests/unit/cmockery.c:655,1
    - Dst: list_empty
      Src: /src/core/tests/unit/cmockery.c:659,1
    - Dst: list_remove_free
      Src: /src/core/tests/unit/cmockery.c:661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - map_head
    - number_of_symbol_names
    argTypes:
    - ListNode*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 665
    functionName: remove_always_return_values
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - list_remove_free
    - assert_true
    - list_empty
    - remove_always_return_values
    linkageType: ''
    returnType: void
    signature: void remove_always_return_values(ListNode *const map_head, const size_t
      number_of_symbol_names)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:676,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:677,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:684,1
    - Dst: list_empty
      Src: /src/core/tests/unit/cmockery.c:687,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:693,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:694,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:700,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:705,1
    - Dst: check_for_leftover_values
      Src: /src/core/tests/unit/cmockery.c:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - map_head
    - error_message
    - number_of_symbol_names
    argTypes:
    - ListNode*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 712
    functionName: check_for_leftover_values
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    - assert_true
    - list_empty
    - check_for_leftover_values
    linkageType: ''
    returnType: int
    signature: "int check_for_leftover_values(const ListNode *const map_head, const
      char *const error_message,\n                                     const size_t
      number_of_symbol_names)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/tests/unit/cmockery.c:719,1
    - Dst: va_arg
      Src: /src/core/tests/unit/cmockery.c:722,1
    - Dst: va_arg
      Src: /src/core/tests/unit/cmockery.c:726,1
    - Dst: va_arg
      Src: /src/core/tests/unit/cmockery.c:730,1
    - Dst: assert
      Src: /src/core/tests/unit/cmockery.c:734,1
    - Dst: exit
      Src: /src/core/tests/unit/cmockery.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts:
    - condition: (size <= sizeof(LargestIntegralType))
      pos:
        line_end: 733
        line_start: 733
        source_file: /src/core/tests/unit/cmockery.c
    constantsTouched: []
    func_position:
      end: 739
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 739
    functionName: _cast_to_largest_integral_type
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - va_arg
    - assert
    - exit
    - va_start
    linkageType: ''
    returnType: LargestIntegralType
    signature: LargestIntegralType _cast_to_largest_integral_type(size_t size, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_symbol_value
      Src: /src/core/tests/unit/cmockery.c:745,1
    - Dst: free
      Src: /src/core/tests/unit/cmockery.c:755,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:761,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:763,1
    - Dst: source_location_is_set
      Src: /src/core/tests/unit/cmockery.c:767,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:769,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:772,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:779,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:780,1
    - Dst: exit_test
      Src: /src/core/tests/unit/cmockery.c:784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - function
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 787
    functionName: _mock
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - source_location_is_set
    - get_symbol_value
    - exit_test
    - free
    - print_xml
    linkageType: ''
    returnType: LargestIntegralType
    signature: LargestIntegralType _mock(const char *const function, const char *const
      file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:793,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:795,1
    - Dst: set_source_location
      Src: /src/core/tests/unit/cmockery.c:797,1
    - Dst: add_symbol_value
      Src: /src/core/tests/unit/cmockery.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - function_name
    - file
    - line
    - value
    - count
    argTypes:
    - char*
    - char*
    - int
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 799
    functionName: _will_return
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - add_symbol_value
    - assert_true
    - malloc
    - set_source_location
    linkageType: ''
    returnType: void
    signature: "void _will_return(const char *const function_name, const char *const
      file,\n                  const int line, const LargestIntegralType value, const
      int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:811,1
    - Dst: set_source_location
      Src: /src/core/tests/unit/cmockery.c:816,1
    - Dst: add_symbol_value
      Src: /src/core/tests/unit/cmockery.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 8
    argNames:
    - function
    - parameter
    - file
    - line
    - check_function
    - check_data
    - event
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - CheckParameterValue
    - LargestIntegralType
    - CheckParameterEvent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 818
    functionName: _expect_check
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - add_symbol_value
    - malloc
    - set_source_location
    linkageType: ''
    returnType: void
    signature: "void _expect_check(const char *const function, const char *const parameter,\n
      \                  const char *const file, const int line,\n                   const
      CheckParameterValue check_function,\n                   const LargestIntegralType
      check_data, CheckParameterEvent *const event, const int count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 831
    functionName: values_equal_display_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: int values_equal_display_error(const LargestIntegralType left, const
      LargestIntegralType right)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 844
    functionName: values_not_equal_display_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: int values_not_equal_display_error(const LargestIntegralType left,
      const LargestIntegralType right)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:856,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:876,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:880,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:882,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - value
    - check_integer_set
    - invert
    argTypes:
    - LargestIntegralType
    - CheckIntegerSet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 885
    functionName: value_in_set_display_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - assert_true
    linkageType: ''
    returnType: int
    signature: "int value_in_set_display_error(const LargestIntegralType value,\n
      \                                     const CheckIntegerSet *const check_integer_set,
      const int invert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - value
    - range_min
    - range_max
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 901
    functionName: integer_in_range_display_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: "int integer_in_range_display_error(const LargestIntegralType value,
      const LargestIntegralType range_min,\n                                          const
      LargestIntegralType range_max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - value
    - range_min
    - range_max
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 917
    functionName: integer_not_in_range_display_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: "int integer_not_in_range_display_error(const LargestIntegralType value,
      const LargestIntegralType range_min,\n                                              const
      LargestIntegralType range_max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/unit/cmockery.c:924,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 930
    functionName: string_equal_display_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - strcmp
    linkageType: ''
    returnType: int
    signature: int string_equal_display_error(const char *const left, const char *const
      right)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/tests/unit/cmockery.c:937,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 943
    functionName: string_not_equal_display_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - strcmp
    linkageType: ''
    returnType: int
    signature: int string_not_equal_display_error(const char *const left, const char
      *const right)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:959,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - a
    - b
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 969
    functionName: memory_equal_display_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: int memory_equal_display_error(const char *const a, const char *const
      b, const size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - a
    - b
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 995
    functionName: memory_not_equal_display_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: int memory_not_equal_display_error(const char *const a, const char
      *const b, const size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_in_set_display_error
      Src: /src/core/tests/unit/cmockery.c:1000,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1002
    functionName: check_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - value_in_set_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_in_set(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_in_set_display_error
      Src: /src/core/tests/unit/cmockery.c:1007,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1009
    functionName: check_not_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - value_in_set_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_not_in_set(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:1019,1
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/tests/unit/cmockery.c:1022,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1023,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1024,1
    - Dst: memcpy
      Src: /src/core/tests/unit/cmockery.c:1025,1
    - Dst: _expect_check
      Src: /src/core/tests/unit/cmockery.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - function
    - parameter
    - file
    - line
    - values
    - number_of_values
    - check_function
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType[]
    - size_t
    - CheckParameterValue
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1028
    functionName: expect_set
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _expect_check
    - assert_true
    - declare_initialize_value_pointer_pointer
    - malloc
    linkageType: ''
    returnType: void
    signature: "void expect_set(const char *const function, const char *const parameter,\n
      \                      const char *const file, const int line,\n                       const
      LargestIntegralType values[], const size_t number_of_values,\n                       const
      CheckParameterValue check_function, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_set
      Src: /src/core/tests/unit/cmockery.c:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - values
    - number_of_values
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType[]
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1036
    functionName: _expect_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_set
    linkageType: ''
    returnType: void
    signature: "void _expect_in_set(const char *const function, const char *const
      parameter,\n                    const char *const file, const int line,\n                    const
      LargestIntegralType values[], const size_t number_of_values, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_set
      Src: /src/core/tests/unit/cmockery.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - values
    - number_of_values
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType[]
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1044
    functionName: _expect_not_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_set
    linkageType: ''
    returnType: void
    signature: "void _expect_not_in_set(const char *const function, const char *const
      parameter,\n                        const char *const file, const int line,\n
      \                       const LargestIntegralType values[], const size_t number_of_values,
      const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1049,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1052,1
    - Dst: integer_in_range_display_error
      Src: /src/core/tests/unit/cmockery.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1054
    functionName: check_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - integer_in_range_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_in_range(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1059,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1062,1
    - Dst: integer_not_in_range_display_error
      Src: /src/core/tests/unit/cmockery.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1064
    functionName: check_not_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - integer_not_in_range_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_not_in_range(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:1073,1
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/tests/unit/cmockery.c:1075,1
    - Dst: _expect_check
      Src: /src/core/tests/unit/cmockery.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - function
    - parameter
    - file
    - line
    - minimum
    - maximum
    - check_function
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - LargestIntegralType
    - CheckParameterValue
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1080
    functionName: expect_range
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - declare_initialize_value_pointer_pointer
    - malloc
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void expect_range(const char *const function, const char *const parameter,\n
      \                        const char *const file, const int line,\n                         const
      LargestIntegralType minimum, const LargestIntegralType maximum,\n                         const
      CheckParameterValue check_function, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_range
      Src: /src/core/tests/unit/cmockery.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - minimum
    - maximum
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1088
    functionName: _expect_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_range
    linkageType: ''
    returnType: void
    signature: "void _expect_in_range(const char *const function, const char *const
      parameter,\n                      const char *const file, const int line,\n
      \                     const LargestIntegralType minimum, const LargestIntegralType
      maximum, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_range
      Src: /src/core/tests/unit/cmockery.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - minimum
    - maximum
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1096
    functionName: _expect_not_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_range
    linkageType: ''
    returnType: void
    signature: "void _expect_not_in_range(const char *const function, const char *const
      parameter,\n                          const char *const file, const int line,\n
      \                         const LargestIntegralType minimum, const LargestIntegralType
      maximum, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: values_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1103
    functionName: check_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - values_equal_display_error
    linkageType: ''
    returnType: int
    signature: int check_value(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _expect_check
      Src: /src/core/tests/unit/cmockery.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - function
    - parameter
    - file
    - line
    - value
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1110
    functionName: _expect_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_value(const char *const function, const char *const parameter,\n
      \                  const char *const file, const int line, const LargestIntegralType
      value, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: values_not_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1117
    functionName: check_not_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - values_not_equal_display_error
    linkageType: ''
    returnType: int
    signature: int check_not_value(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _expect_check
      Src: /src/core/tests/unit/cmockery.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - function
    - parameter
    - file
    - line
    - value
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1124
    functionName: _expect_not_value
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_not_value(const char *const function, const char *const
      parameter,\n                       const char *const file, const int line, const
      LargestIntegralType value, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1129,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1129,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1131
    functionName: check_string
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - string_equal_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_string(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/tests/unit/cmockery.c:1137,1
    - Dst: _expect_check
      Src: /src/core/tests/unit/cmockery.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - function
    - parameter
    - file
    - line
    - string
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1139
    functionName: _expect_string
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - declare_initialize_value_pointer_pointer
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_string(const char *const function, const char *const
      parameter,\n                    const char *const file, const int line, const
      char *string, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_not_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1145,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1145,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1147
    functionName: check_not_string
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - string_not_equal_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_not_string(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/tests/unit/cmockery.c:1153,1
    - Dst: _expect_check
      Src: /src/core/tests/unit/cmockery.c:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - function
    - parameter
    - file
    - line
    - string
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1155
    functionName: _expect_not_string
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - declare_initialize_value_pointer_pointer
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_not_string(const char *const function, const char *const
      parameter,\n                        const char *const file, const int line,
      const char *string, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1161,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1163,1
    - Dst: memory_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1164,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1165
    functionName: check_memory
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - memory_equal_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_memory(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:1174,1
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/tests/unit/cmockery.c:1177,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1178,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1179,1
    - Dst: memcpy
      Src: /src/core/tests/unit/cmockery.c:1180,1
    - Dst: _expect_check
      Src: /src/core/tests/unit/cmockery.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 8
    argNames:
    - function
    - parameter
    - file
    - line
    - memory
    - size
    - check_function
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - void*
    - size_t
    - CheckParameterValue
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1184
    functionName: expect_memory_setup
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _expect_check
    - assert_true
    - declare_initialize_value_pointer_pointer
    - malloc
    linkageType: ''
    returnType: void
    signature: "void expect_memory_setup(const char *const function, const char *const
      parameter,\n                                const char *const file, const int
      line,\n                                const void *const memory, const size_t
      size,\n                                const CheckParameterValue check_function,
      const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_memory_setup
      Src: /src/core/tests/unit/cmockery.c:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - memory
    - size
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1192
    functionName: _expect_memory
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_memory_setup
    linkageType: ''
    returnType: void
    signature: "void _expect_memory(const char *const function, const char *const
      parameter,\n                    const char *const file, const int line, const
      void *const memory,\n                    const size_t size, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1198,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1200,1
    - Dst: memory_not_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1201,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/tests/unit/cmockery.c:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1203
    functionName: check_not_memory
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - memory_not_equal_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_not_memory(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_memory_setup
      Src: /src/core/tests/unit/cmockery.c:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - memory
    - size
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1211
    functionName: _expect_not_memory
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_memory_setup
    linkageType: ''
    returnType: void
    signature: "void _expect_not_memory(const char *const function, const char *const
      parameter,\n                        const char *const file, const int line,
      const void *const memory,\n                        const size_t size, const
      int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LargestIntegralType
    - LargestIntegralType check_value_data
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1217
    functionName: check_any
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_any(ARG_UNUSED const LargestIntegralType value, ARG_UNUSED
      const LargestIntegralType check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _expect_check
      Src: /src/core/tests/unit/cmockery.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - function
    - parameter
    - file
    - line
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1224
    functionName: _expect_any
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_any(const char *const function, const char *const parameter,\n
      \                const char *const file, const int line, const int count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_symbol_value
      Src: /src/core/tests/unit/cmockery.c:1231,1
    - Dst: CheckParameterEvent*::check_value
      Src: /src/core/tests/unit/cmockery.c:1239,1
    - Dst: free
      Src: /src/core/tests/unit/cmockery.c:1242,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1247,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1252,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1260,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1265,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1267,1
    - Dst: source_location_is_set
      Src: /src/core/tests/unit/cmockery.c:1271,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1273,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1276,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1283,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1284,1
    - Dst: exit_test
      Src: /src/core/tests/unit/cmockery.c:1288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 5
    argNames:
    - function_name
    - parameter_name
    - file
    - line
    - value
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1290
    functionName: _check_expected
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - source_location_is_set
    - get_symbol_value
    - CheckParameterEvent*::check_value
    - exit_test
    - free
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _check_expected(const char *const function_name, const char *const
      parameter_name,\n                     const char *file, const int line, const
      LargestIntegralType value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/core/tests/unit/cmockery.c:1300,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1305,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1306,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - result
    - expression
    - file
    - line
    argTypes:
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1310
    functionName: mock_assert
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    - _fail
    - longjmp
    - print_xml
    linkageType: ''
    returnType: void
    signature: void mock_assert(const int result, const char *const expression, const
      char *const file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1318,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1319,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - result
    - expression
    - file
    - line
    argTypes:
    - LargestIntegralType
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1322
    functionName: _assert_true
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_true(const LargestIntegralType result,\n                  const
      char *const expression, const char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: values_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1326,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1329,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - a
    - b
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1324
    functionDepth: 0
    functionLinenumber: 1324
    functionLinenumberEnd: 1332
    functionName: _assert_int_equal
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - values_equal_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: void _assert_int_equal(const LargestIntegralType a, const LargestIntegralType
      b, const char *const file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: values_not_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1337,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1340,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - a
    - b
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1343
    functionName: _assert_int_not_equal
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - values_not_equal_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_int_not_equal(const LargestIntegralType a, const LargestIntegralType
      b,\n                           const char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1347,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1350,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - a
    - b
    - file
    - line
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1353
    functionName: _assert_string_equal
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - string_equal_display_error
    - print_xml
    linkageType: ''
    returnType: void
    signature: void _assert_string_equal(const char *const a, const char *const b,
      const char *const file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_not_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1357,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1360,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - a
    - b
    - file
    - line
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1355
    functionDepth: 0
    functionLinenumber: 1355
    functionLinenumberEnd: 1363
    functionName: _assert_string_not_equal
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - string_not_equal_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: void _assert_string_not_equal(const char *const a, const char *const
      b, const char *file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1368,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1371,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - a
    - b
    - size
    - file
    - line
    argTypes:
    - void*
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1374
    functionName: _assert_memory_equal
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - print_xml
    - memory_equal_display_error
    linkageType: ''
    returnType: void
    signature: "void _assert_memory_equal(const void *const a, const void *const b,\n
      \                         const size_t size, const char *const file, const int
      line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_not_equal_display_error
      Src: /src/core/tests/unit/cmockery.c:1379,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1382,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - a
    - b
    - size
    - file
    - line
    argTypes:
    - void*
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1385
    functionName: _assert_memory_not_equal
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - memory_not_equal_display_error
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_memory_not_equal(const void *const a, const void *const
      b,\n                              const size_t size, const char *const file,
      const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: integer_in_range_display_error
      Src: /src/core/tests/unit/cmockery.c:1390,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1393,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - value
    - minimum
    - maximum
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - LargestIntegralType
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1396
    functionName: _assert_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - integer_in_range_display_error
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_in_range(const LargestIntegralType value, const LargestIntegralType
      minimum,\n                      const LargestIntegralType maximum, const char
      *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: integer_not_in_range_display_error
      Src: /src/core/tests/unit/cmockery.c:1401,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1404,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - value
    - minimum
    - maximum
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - LargestIntegralType
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1407
    functionName: _assert_not_in_range
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - integer_not_in_range_display_error
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_not_in_range(const LargestIntegralType value, const LargestIntegralType
      minimum,\n                          const LargestIntegralType maximum, const
      char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: value_in_set_display_error
      Src: /src/core/tests/unit/cmockery.c:1417,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1420,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - value
    - values
    - number_of_values
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType[]
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1423
    functionName: _assert_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - value_in_set_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_in_set(const LargestIntegralType value,\n                    const
      LargestIntegralType values[],\n                    const size_t number_of_values,
      const char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: value_in_set_display_error
      Src: /src/core/tests/unit/cmockery.c:1433,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1436,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - value
    - values
    - number_of_values
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType[]
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1439
    functionName: _assert_not_in_set
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - value_in_set_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_not_in_set(const LargestIntegralType value,\n                        const
      LargestIntegralType values[],\n                        const size_t number_of_values,
      const char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_initialize
      Src: /src/core/tests/unit/cmockery.c:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1451
    functionName: get_allocated_blocks_list
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - list_initialize
    linkageType: ''
    returnType: ListNode
    signature: ListNode *get_allocated_blocks_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocated_blocks_list
      Src: /src/core/tests/unit/cmockery.c:1459,1
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:1461,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1463,1
    - Dst: memset
      Src: /src/core/tests/unit/cmockery.c:1470,1
    - Dst: memset
      Src: /src/core/tests/unit/cmockery.c:1471,1
    - Dst: memset
      Src: /src/core/tests/unit/cmockery.c:1472,1
    - Dst: set_source_location
      Src: /src/core/tests/unit/cmockery.c:1475,1
    - Dst: list_add
      Src: /src/core/tests/unit/cmockery.c:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - size
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1482
    functionName: _test_malloc
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - list_add
    - assert_true
    - set_source_location
    - malloc
    - get_allocated_blocks_list
    - memset
    linkageType: ''
    returnType: void
    signature: void *_test_malloc(const size_t size, const char *file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _test_malloc
      Src: /src/core/tests/unit/cmockery.c:1488,1
    - Dst: memset
      Src: /src/core/tests/unit/cmockery.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - number_of_elements
    - size
    - file
    - line
    argTypes:
    - size_t
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1495
    functionName: _test_calloc
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _test_malloc
    - memset
    linkageType: ''
    returnType: void
    signature: void *_test_calloc(const size_t number_of_elements, const size_t size,
      const char *file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _assert_true
      Src: /src/core/tests/unit/cmockery.c:1505,1
    - Dst: ARRAY_LENGTH
      Src: /src/core/tests/unit/cmockery.c:1512,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1523,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1527,1
    - Dst: _fail
      Src: /src/core/tests/unit/cmockery.c:1534,1
    - Dst: list_remove
      Src: /src/core/tests/unit/cmockery.c:1539,1
    - Dst: memset
      Src: /src/core/tests/unit/cmockery.c:1542,1
    - Dst: free
      Src: /src/core/tests/unit/cmockery.c:1543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ptr
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1544
    functionName: _test_free
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - ARRAY_LENGTH
    - list_remove
    - _assert_true
    - free
    - _fail
    - print_xml
    - memset
    linkageType: ''
    returnType: void
    signature: void _test_free(void *const ptr, const char *file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocated_blocks_list
      Src: /src/core/tests/unit/cmockery.c:1551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1552
    functionName: check_point_allocated_blocks
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - get_allocated_blocks_list
    linkageType: ''
    returnType: ListNode
    signature: ListNode *check_point_allocated_blocks()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allocated_blocks_list
      Src: /src/core/tests/unit/cmockery.c:1558,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1562,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1563,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1569,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1573,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - check_point
    argTypes:
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1556
    functionDepth: 0
    functionLinenumber: 1556
    functionLinenumberEnd: 1580
    functionName: display_allocated_blocks
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - get_allocated_blocks_list
    - print_error
    - assert_true
    linkageType: ''
    returnType: int
    signature: int display_allocated_blocks(const ListNode *const check_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocated_blocks_list
      Src: /src/core/tests/unit/cmockery.c:1585,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1588,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1591,1
    - Dst: free
      Src: /src/core/tests/unit/cmockery.c:1598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - check_point
    argTypes:
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1600
    functionName: free_allocated_blocks
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - get_allocated_blocks_list
    - free
    - assert_true
    linkageType: ''
    returnType: void
    signature: void free_allocated_blocks(const ListNode *const check_point)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_allocated_blocks
      Src: /src/core/tests/unit/cmockery.c:1605,1
    - Dst: free_allocated_blocks
      Src: /src/core/tests/unit/cmockery.c:1609,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1610,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1611,1
    - Dst: exit_test
      Src: /src/core/tests/unit/cmockery.c:1615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - check_point
    - test_name
    argTypes:
    - ListNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1617
    functionName: fail_if_blocks_allocated
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - free_allocated_blocks
    - display_allocated_blocks
    - exit_test
    - print_xml
    linkageType: ''
    returnType: void
    signature: void fail_if_blocks_allocated(const ListNode *const check_point, const
      char *const test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1621,1
    - Dst: exit_test
      Src: /src/core/tests/unit/cmockery.c:1622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1623
    functionName: _fail
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 15
    functionsReached:
    - print_error
    - exit_test
    linkageType: ''
    returnType: void
    signature: void _fail(const char *const file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1628,1
    - Dst: strsignal
      Src: /src/core/tests/unit/cmockery.c:1628,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1629,1
    - Dst: strsignal
      Src: /src/core/tests/unit/cmockery.c:1631,1
    - Dst: exit_test
      Src: /src/core/tests/unit/cmockery.c:1633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1634
    functionName: exception_handler
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - strsignal
    - print_xml
    - exit_test
    linkageType: ''
    returnType: void
    signature: void exception_handler(int sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LENGTH
      Src: /src/core/tests/unit/cmockery.c:1644,1
    - Dst: fflush
      Src: /src/core/tests/unit/cmockery.c:1652,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1653,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1654,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1659,1
    - Dst: exit_test_no_app
      Src: /src/core/tests/unit/cmockery.c:1672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - exception_pointers
    argTypes:
    - EXCEPTION_POINTERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1677
    functionName: exception_filter
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - fflush
    - ARRAY_LENGTH
    - exit_test_no_app
    - print_xml
    linkageType: ''
    returnType: LONG
    signature: LONG exception_filter(EXCEPTION_POINTERS *exception_pointers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/unit/cmockery.c:1682,1
    - Dst: vfprintf
      Src: /src/core/tests/unit/cmockery.c:1683,1
    - Dst: fclose
      Src: /src/core/tests/unit/cmockery.c:1684,1
    - Dst: OutputDebugString
      Src: /src/core/tests/unit/cmockery.c:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1688
    functionName: vinit_xml
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - OutputDebugString
    - fopen
    - vfprintf
    - fclose
    linkageType: ''
    returnType: void
    signature: void vinit_xml (const char *const format, va_list args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/tests/unit/cmockery.c:1695,1
    - Dst: vinit_xml
      Src: /src/core/tests/unit/cmockery.c:1696,1
    - Dst: va_end
      Src: /src/core/tests/unit/cmockery.c:1697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1690
    functionDepth: 0
    functionLinenumber: 1690
    functionLinenumberEnd: 1699
    functionName: init_xml
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - vinit_xml
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void init_xml (const char *const format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/unit/cmockery.c:1703,1
    - Dst: vfprintf
      Src: /src/core/tests/unit/cmockery.c:1704,1
    - Dst: fclose
      Src: /src/core/tests/unit/cmockery.c:1705,1
    - Dst: OutputDebugString
      Src: /src/core/tests/unit/cmockery.c:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1709
    functionName: vprint_xml
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - OutputDebugString
    - fopen
    - vfprintf
    - fclose
    linkageType: ''
    returnType: void
    signature: void vprint_xml(const char *const format, va_list args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/tests/unit/cmockery.c:1716,1
    - Dst: vprint_xml
      Src: /src/core/tests/unit/cmockery.c:1717,1
    - Dst: va_end
      Src: /src/core/tests/unit/cmockery.c:1718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1720
    functionName: print_xml
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 20
    functionsReached:
    - va_end
    - vprint_xml
    - va_start
    linkageType: ''
    returnType: void
    signature: void print_xml(const char *const format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/tests/unit/cmockery.c:1727,1
    - Dst: fopen
      Src: /src/core/tests/unit/cmockery.c:1728,1
    - Dst: feof
      Src: /src/core/tests/unit/cmockery.c:1729,1
    - Dst: getc
      Src: /src/core/tests/unit/cmockery.c:1731,1
    - Dst: feof
      Src: /src/core/tests/unit/cmockery.c:1732,1
    - Dst: putc
      Src: /src/core/tests/unit/cmockery.c:1734,1
    - Dst: fclose
      Src: /src/core/tests/unit/cmockery.c:1737,1
    - Dst: fclose
      Src: /src/core/tests/unit/cmockery.c:1738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ofile
    - ifile
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1722
    functionDepth: 1
    functionLinenumber: 1722
    functionLinenumberEnd: 1740
    functionName: append_xml
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - putc
    - fopen
    - feof
    - fclose
    - getc
    linkageType: ''
    returnType: void
    signature: void append_xml(const char *ofile, const char *ifile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vprintf
      Src: /src/core/tests/unit/cmockery.c:1745,1
    - Dst: OutputDebugString
      Src: /src/core/tests/unit/cmockery.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1749
    functionName: vprint_message
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - OutputDebugString
    - vprintf
    linkageType: ''
    returnType: void
    signature: void vprint_message(const char *const format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfprintf
      Src: /src/core/tests/unit/cmockery.c:1753,1
    - Dst: OutputDebugString
      Src: /src/core/tests/unit/cmockery.c:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1757
    functionName: vprint_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - OutputDebugString
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void vprint_error(const char *const format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/tests/unit/cmockery.c:1763,1
    - Dst: vprint_message
      Src: /src/core/tests/unit/cmockery.c:1764,1
    - Dst: va_end
      Src: /src/core/tests/unit/cmockery.c:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1766
    functionName: print_message
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - va_end
    - vprint_message
    - va_start
    linkageType: ''
    returnType: void
    signature: void print_message(const char *const format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/tests/unit/cmockery.c:1772,1
    - Dst: vprint_error
      Src: /src/core/tests/unit/cmockery.c:1773,1
    - Dst: va_end
      Src: /src/core/tests/unit/cmockery.c:1774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1775
    functionName: print_error
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 23
    functionsReached:
    - va_end
    - vprint_error
    - va_start
    linkageType: ''
    returnType: void
    signature: void print_error(const char *const format, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_point_allocated_blocks
      Src: /src/core/tests/unit/cmockery.c:1780,1
    - Dst: IsDebuggerPresent
      Src: /src/core/tests/unit/cmockery.c:1786,1
    - Dst: ARRAY_LENGTH
      Src: /src/core/tests/unit/cmockery.c:1797,1
    - Dst: signal
      Src: /src/core/tests/unit/cmockery.c:1799,1
    - Dst: SetUnhandledExceptionFilter
      Src: /src/core/tests/unit/cmockery.c:1802,1
    - Dst: print_message
      Src: /src/core/tests/unit/cmockery.c:1808,1
    - Dst: initialize_testing
      Src: /src/core/tests/unit/cmockery.c:1810,1
    - Dst: setjmp
      Src: /src/core/tests/unit/cmockery.c:1812,1
    - Dst: Function
      Src: /src/core/tests/unit/cmockery.c:1816,1
    - Dst: fail_if_leftover_values
      Src: /src/core/tests/unit/cmockery.c:1823,1
    - Dst: fail_if_blocks_allocated
      Src: /src/core/tests/unit/cmockery.c:1829,1
    - Dst: print_message
      Src: /src/core/tests/unit/cmockery.c:1836,1
    - Dst: print_message
      Src: /src/core/tests/unit/cmockery.c:1843,1
    - Dst: teardown_testing
      Src: /src/core/tests/unit/cmockery.c:1845,1
    - Dst: ARRAY_LENGTH
      Src: /src/core/tests/unit/cmockery.c:1852,1
    - Dst: signal
      Src: /src/core/tests/unit/cmockery.c:1854,1
    - Dst: SetUnhandledExceptionFilter
      Src: /src/core/tests/unit/cmockery.c:1859,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - function_name
    - Function
    - state
    - function_type
    - heap_check_point
    argTypes:
    - char*
    - UnitTestFunction
    - void**
    - UnitTestFunctionType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1866
    functionName: _run_test
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - check_point_allocated_blocks
    - fail_if_leftover_values
    - fail_if_blocks_allocated
    - ARRAY_LENGTH
    - print_message
    - setjmp
    - IsDebuggerPresent
    - SetUnhandledExceptionFilter
    - initialize_testing
    - teardown_testing
    - Function
    - signal
    linkageType: ''
    returnType: int
    signature: "int _run_test(const char *const function_name, const UnitTestFunction
      Function,\n              void **const state, const UnitTestFunctionType function_type,
      const void *const heap_check_point)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: check_point_allocated_blocks
      Src: /src/core/tests/unit/cmockery.c:1877,1
    - Dst: time
      Src: /src/core/tests/unit/cmockery.c:1883,1
    - Dst: strcpy
      Src: /src/core/tests/unit/cmockery.c:1885,1
    - Dst: ctime
      Src: /src/core/tests/unit/cmockery.c:1885,1
    - Dst: strlen
      Src: /src/core/tests/unit/cmockery.c:1886,1
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:1905,1
    - Dst: malloc
      Src: /src/core/tests/unit/cmockery.c:1909,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1913,1
    - Dst: strcpy
      Src: /src/core/tests/unit/cmockery.c:1923,1
    - Dst: strcpy
      Src: /src/core/tests/unit/cmockery.c:1924,1
    - Dst: basename
      Src: /src/core/tests/unit/cmockery.c:1924,1
    - Dst: strrchr
      Src: /src/core/tests/unit/cmockery.c:1925,1
    - Dst: strcpy
      Src: /src/core/tests/unit/cmockery.c:1927,1
    - Dst: strncat
      Src: /src/core/tests/unit/cmockery.c:1928,1
    - Dst: strcpy
      Src: /src/core/tests/unit/cmockery.c:1929,1
    - Dst: strcmp
      Src: /src/core/tests/unit/cmockery.c:1932,1
    - Dst: init_xml
      Src: /src/core/tests/unit/cmockery.c:1936,1
    - Dst: time
      Src: /src/core/tests/unit/cmockery.c:1937,1
    - Dst: check_point_allocated_blocks
      Src: /src/core/tests/unit/cmockery.c:1960,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cmockery.c:1970,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:1977,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1978,1
    - Dst: exit_test
      Src: /src/core/tests/unit/cmockery.c:1983,1
    - Dst: strcpy
      Src: /src/core/tests/unit/cmockery.c:1989,1
    - Dst: strcpy
      Src: /src/core/tests/unit/cmockery.c:1990,1
    - Dst: init_xml
      Src: /src/core/tests/unit/cmockery.c:1991,1
    - Dst: time
      Src: /src/core/tests/unit/cmockery.c:1992,1
    - Dst: _run_test
      Src: /src/core/tests/unit/cmockery.c:1993,1
    - Dst: strcpy
      Src: /src/core/tests/unit/cmockery.c:1995,1
    - Dst: time
      Src: /src/core/tests/unit/cmockery.c:1996,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:1997,1
    - Dst: difftime
      Src: /src/core/tests/unit/cmockery.c:1997,1
    - Dst: append_xml
      Src: /src/core/tests/unit/cmockery.c:2001,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:2003,1
    - Dst: assert_false
      Src: /src/core/tests/unit/cmockery.c:2032,1
    - Dst: snprintf
      Src: /src/core/tests/unit/cmockery.c:2037,1
    - Dst: time
      Src: /src/core/tests/unit/cmockery.c:2038,1
    - Dst: init_xml
      Src: /src/core/tests/unit/cmockery.c:2039,1
    - Dst: difftime
      Src: /src/core/tests/unit/cmockery.c:2039,1
    - Dst: append_xml
      Src: /src/core/tests/unit/cmockery.c:2040,1
    - Dst: print_xml
      Src: /src/core/tests/unit/cmockery.c:2041,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:2047,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:2050,1
    - Dst: print_message
      Src: /src/core/tests/unit/cmockery.c:2055,1
    - Dst: print_error
      Src: /src/core/tests/unit/cmockery.c:2060,1
    - Dst: free
      Src: /src/core/tests/unit/cmockery.c:2064,1
    - Dst: free
      Src: /src/core/tests/unit/cmockery.c:2065,1
    - Dst: fail_if_blocks_allocated
      Src: /src/core/tests/unit/cmockery.c:2067,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 110
    argCount: 3
    argNames:
    - tests
    - number_of_tests
    - file
    argTypes:
    - UnitTest*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 2069
    functionName: _run_tests
    functionSourceFile: /src/core/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - assert_false
    - append_xml
    - exit_test
    - free
    - difftime
    - time
    - check_point_allocated_blocks
    - fail_if_blocks_allocated
    - snprintf
    - strlen
    - strncat
    - strrchr
    - malloc
    - strcmp
    - strcpy
    - basename
    - print_message
    - init_xml
    - ctime
    - assert_true
    - _run_test
    - print_xml
    linkageType: ''
    returnType: int
    signature: int _run_tests(const UnitTest *const tests, const size_t number_of_tests,
      const char *const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FirstFileSeparator
      Src: /src/core/tests/unit/file_name_test.c:11,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:12,1
    - Dst: FirstFileSeparator
      Src: /src/core/tests/unit/file_name_test.c:15,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:16,1
    - Dst: FirstFileSeparator
      Src: /src/core/tests/unit/file_name_test.c:19,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:20,1
    - Dst: FirstFileSeparator
      Src: /src/core/tests/unit/file_name_test.c:23,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 26
    functionName: test_first_file_separator
    functionSourceFile: /src/core/tests/unit/file_name_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - FirstFileSeparator
    linkageType: ''
    returnType: void
    signature: void test_first_file_separator(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParentDirectoryCopy
      Src: /src/core/tests/unit/file_name_test.c:36,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:37,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:38,1
    - Dst: GetParentDirectoryCopy
      Src: /src/core/tests/unit/file_name_test.c:40,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:41,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:42,1
    - Dst: GetParentDirectoryCopy
      Src: /src/core/tests/unit/file_name_test.c:44,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:45,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:46,1
    - Dst: GetParentDirectoryCopy
      Src: /src/core/tests/unit/file_name_test.c:48,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:49,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:50,1
    - Dst: GetParentDirectoryCopy
      Src: /src/core/tests/unit/file_name_test.c:56,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:57,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:58,1
    - Dst: GetParentDirectoryCopy
      Src: /src/core/tests/unit/file_name_test.c:60,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:61,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:62,1
    - Dst: GetParentDirectoryCopy
      Src: /src/core/tests/unit/file_name_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:65,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:66,1
    - Dst: GetParentDirectoryCopy
      Src: /src/core/tests/unit/file_name_test.c:68,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:69,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 73
    functionName: test_get_parent_directory_copy
    functionSourceFile: /src/core/tests/unit/file_name_test.c
    functionUses: 0
    functionsReached:
    - GetParentDirectoryCopy
    - free
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_get_parent_directory_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:79,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:80,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:86,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:91,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:92,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:97,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:98,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:103,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:104,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:109,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:110,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:115,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:116,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:121,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:122,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:127,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:128,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/tests/unit/file_name_test.c:133,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 136
    functionName: test_delete_redundant_slashes
    functionSourceFile: /src/core/tests/unit/file_name_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - DeleteRedundantSlashes
    linkageType: ''
    returnType: void
    signature: void test_delete_redundant_slashes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:145,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:146,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:147,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:149,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:150,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:152,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:153,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:154,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:156,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:157,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:158,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:160,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:161,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:162,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:164,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:165,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:166,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:168,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:169,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:170,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:171,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:176,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:177,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:178,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:180,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:181,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:183,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:184,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:185,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:187,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:188,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:189,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:191,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:192,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:193,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:195,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:196,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:197,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:199,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:200,1
    - Dst: JoinPaths
      Src: /src/core/tests/unit/file_name_test.c:201,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 204
    functionName: test_join_paths
    functionSourceFile: /src/core/tests/unit/file_name_test.c
    functionUses: 0
    functionsReached:
    - strlcat
    - assert_string_equal
    - JoinPaths
    - memset
    linkageType: ''
    returnType: void
    signature: void test_join_paths(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:215,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:216,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:217,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:219,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:220,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:221,1
    - Dst: getcwd
      Src: /src/core/tests/unit/file_name_test.c:223,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:224,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:225,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/tests/unit/file_name_test.c:225,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:226,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:227,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:228,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:229,1
    - Dst: getcwd
      Src: /src/core/tests/unit/file_name_test.c:231,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:232,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:233,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/tests/unit/file_name_test.c:233,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:234,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:235,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:236,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:237,1
    - Dst: getcwd
      Src: /src/core/tests/unit/file_name_test.c:239,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:240,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:241,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/tests/unit/file_name_test.c:241,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:242,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:243,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:244,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:245,1
    - Dst: getcwd
      Src: /src/core/tests/unit/file_name_test.c:247,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:248,1
    - Dst: chdir
      Src: /src/core/tests/unit/file_name_test.c:249,1
    - Dst: ChopLastNode
      Src: /src/core/tests/unit/file_name_test.c:250,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:251,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:252,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/tests/unit/file_name_test.c:252,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:253,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:254,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:255,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:256,1
    - Dst: chdir
      Src: /src/core/tests/unit/file_name_test.c:257,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:258,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:263,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:264,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:265,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:267,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:268,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:269,1
    - Dst: getcwd
      Src: /src/core/tests/unit/file_name_test.c:271,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:272,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:273,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/tests/unit/file_name_test.c:273,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:274,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:275,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:276,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:277,1
    - Dst: getcwd
      Src: /src/core/tests/unit/file_name_test.c:279,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:280,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:281,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/tests/unit/file_name_test.c:281,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:282,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:283,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:284,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:285,1
    - Dst: getcwd
      Src: /src/core/tests/unit/file_name_test.c:287,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:288,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:289,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/tests/unit/file_name_test.c:289,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:290,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:291,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:292,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:293,1
    - Dst: getcwd
      Src: /src/core/tests/unit/file_name_test.c:295,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:296,1
    - Dst: chdir
      Src: /src/core/tests/unit/file_name_test.c:297,1
    - Dst: ChopLastNode
      Src: /src/core/tests/unit/file_name_test.c:298,1
    - Dst: GetAbsolutePath
      Src: /src/core/tests/unit/file_name_test.c:299,1
    - Dst: assert_true
      Src: /src/core/tests/unit/file_name_test.c:300,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/tests/unit/file_name_test.c:300,1
    - Dst: strlcat
      Src: /src/core/tests/unit/file_name_test.c:301,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/file_name_test.c:302,1
    - Dst: free
      Src: /src/core/tests/unit/file_name_test.c:303,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:304,1
    - Dst: chdir
      Src: /src/core/tests/unit/file_name_test.c:305,1
    - Dst: memset
      Src: /src/core/tests/unit/file_name_test.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 309
    functionName: test_get_absolute_path
    functionSourceFile: /src/core/tests/unit/file_name_test.c
    functionUses: 0
    functionsReached:
    - strlcat
    - ChopLastNode
    - chdir
    - assert_true
    - IsAbsoluteFileName
    - getcwd
    - assert_string_equal
    - free
    - GetAbsolutePath
    - memset
    linkageType: ''
    returnType: void
    signature: void test_get_absolute_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/file_name_test.c:313,1
    - Dst: unit_test
      Src: /src/core/tests/unit/file_name_test.c:316,1
    - Dst: unit_test
      Src: /src/core/tests/unit/file_name_test.c:317,1
    - Dst: unit_test
      Src: /src/core/tests/unit/file_name_test.c:318,1
    - Dst: unit_test
      Src: /src/core/tests/unit/file_name_test.c:319,1
    - Dst: unit_test
      Src: /src/core/tests/unit/file_name_test.c:320,1
    - Dst: run_tests
      Src: /src/core/tests/unit/file_name_test.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 324
    functionName: main
    functionSourceFile: /src/core/tests/unit/file_name_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plaintext_len
    - cipher_block_size_bytes
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: ComputeCiphertextLen
    functionSourceFile: /src/core/tests/unit/crypto_symmetric_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ComputeCiphertextLen(int plaintext_len, int cipher_block_size_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/core/tests/unit/crypto_symmetric_test.c:33,1
    - Dst: EVP_CIPHER_CTX_init
      Src: /src/core/tests/unit/crypto_symmetric_test.c:35,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/core/tests/unit/crypto_symmetric_test.c:36,1
    - Dst: EVP_bf_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:36,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/tests/unit/crypto_symmetric_test.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: test_cipher_init
    functionSourceFile: /src/core/tests/unit/crypto_symmetric_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_bf_cbc
    - EVP_CIPHER_CTX_init
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void test_cipher_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/tests/unit/crypto_symmetric_test.c:43,1
    - Dst: EncryptString
      Src: /src/core/tests/unit/crypto_symmetric_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:49,1
    - Dst: ComputeCiphertextLen
      Src: /src/core/tests/unit/crypto_symmetric_test.c:49,1
    - Dst: assert_memory_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: test_symmetric_encrypt
    functionSourceFile: /src/core/tests/unit/crypto_symmetric_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - strlen
    - ComputeCiphertextLen
    - assert_memory_equal
    - EncryptString
    linkageType: ''
    returnType: void
    signature: void test_symmetric_encrypt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecryptString
      Src: /src/core/tests/unit/crypto_symmetric_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:64,1
    - Dst: strlen
      Src: /src/core/tests/unit/crypto_symmetric_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: test_symmetric_decrypt
    functionSourceFile: /src/core/tests/unit/crypto_symmetric_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_string_equal
    - DecryptString
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_symmetric_decrypt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:71,1
    - Dst: CipherBlockSizeBytes
      Src: /src/core/tests/unit/crypto_symmetric_test.c:71,1
    - Dst: EVP_bf_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:73,1
    - Dst: CipherBlockSizeBytes
      Src: /src/core/tests/unit/crypto_symmetric_test.c:73,1
    - Dst: EVP_aes_256_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: test_cipher_block_size
    functionSourceFile: /src/core/tests/unit/crypto_symmetric_test.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_cbc
    - assert_int_equal
    - CipherBlockSizeBytes
    - EVP_bf_cbc
    linkageType: ''
    returnType: void
    signature: void test_cipher_block_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:78,1
    - Dst: CipherTextSizeMax
      Src: /src/core/tests/unit/crypto_symmetric_test.c:78,1
    - Dst: EVP_aes_256_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:80,1
    - Dst: CipherTextSizeMax
      Src: /src/core/tests/unit/crypto_symmetric_test.c:80,1
    - Dst: EVP_aes_256_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:82,1
    - Dst: CipherTextSizeMax
      Src: /src/core/tests/unit/crypto_symmetric_test.c:82,1
    - Dst: EVP_bf_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:84,1
    - Dst: CipherTextSizeMax
      Src: /src/core/tests/unit/crypto_symmetric_test.c:84,1
    - Dst: EVP_bf_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: test_cipher_text_size_max
    functionSourceFile: /src/core/tests/unit/crypto_symmetric_test.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_cbc
    - assert_int_equal
    - EVP_bf_cbc
    - CipherTextSizeMax
    linkageType: ''
    returnType: void
    signature: void test_cipher_text_size_max(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:89,1
    - Dst: PlainTextSizeMax
      Src: /src/core/tests/unit/crypto_symmetric_test.c:89,1
    - Dst: EVP_aes_256_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:91,1
    - Dst: PlainTextSizeMax
      Src: /src/core/tests/unit/crypto_symmetric_test.c:91,1
    - Dst: EVP_aes_256_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:91,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:93,1
    - Dst: PlainTextSizeMax
      Src: /src/core/tests/unit/crypto_symmetric_test.c:93,1
    - Dst: EVP_bf_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/crypto_symmetric_test.c:95,1
    - Dst: PlainTextSizeMax
      Src: /src/core/tests/unit/crypto_symmetric_test.c:95,1
    - Dst: EVP_bf_cbc
      Src: /src/core/tests/unit/crypto_symmetric_test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: test_plain_text_size_max
    functionSourceFile: /src/core/tests/unit/crypto_symmetric_test.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_cbc
    - assert_int_equal
    - EVP_bf_cbc
    - PlainTextSizeMax
    linkageType: ''
    returnType: void
    signature: void test_plain_text_size_max(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/crypto_symmetric_test.c:100,1
    - Dst: CryptoInitialize
      Src: /src/core/tests/unit/crypto_symmetric_test.c:101,1
    - Dst: unit_test
      Src: /src/core/tests/unit/crypto_symmetric_test.c:105,1
    - Dst: unit_test
      Src: /src/core/tests/unit/crypto_symmetric_test.c:106,1
    - Dst: unit_test
      Src: /src/core/tests/unit/crypto_symmetric_test.c:107,1
    - Dst: unit_test
      Src: /src/core/tests/unit/crypto_symmetric_test.c:108,1
    - Dst: unit_test
      Src: /src/core/tests/unit/crypto_symmetric_test.c:109,1
    - Dst: unit_test
      Src: /src/core/tests/unit/crypto_symmetric_test.c:110,1
    - Dst: run_tests
      Src: /src/core/tests/unit/crypto_symmetric_test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 114
    functionName: main
    functionSourceFile: /src/core/tests/unit/crypto_symmetric_test.c
    functionUses: 0
    functionsReached:
    - CryptoInitialize
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptoInitialize
      Src: /src/core/tests/unit/generic_agent_test.c:17,1
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/generic_agent_test.c:21,1
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/tests/unit/generic_agent_test.c:23,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/tests/unit/generic_agent_test.c:27,1
    - Dst: StringFormat
      Src: /src/core/tests/unit/generic_agent_test.c:31,1
    - Dst: GetInputDir
      Src: /src/core/tests/unit/generic_agent_test.c:32,1
    - Dst: SelectAndLoadPolicy
      Src: /src/core/tests/unit/generic_agent_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/generic_agent_test.c:39,1
    - Dst: stat
      Src: /src/core/tests/unit/generic_agent_test.c:39,1
    - Dst: free
      Src: /src/core/tests/unit/generic_agent_test.c:41,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/generic_agent_test.c:43,1
    - Dst: GenericAgentFinalize
      Src: /src/core/tests/unit/generic_agent_test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 46
    functionName: test_have_tty_interactive_failsafe_is_not_created
    functionSourceFile: /src/core/tests/unit/generic_agent_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - stat
    - GenericAgentConfigSetInputFile
    - assert_int_equal
    - SelectAndLoadPolicy
    - GenericAgentFinalize
    - EvalContextNew
    - StringFormat
    - GenericAgentConfigNewDefault
    - GetInputDir
    - free
    - CryptoInitialize
    linkageType: ''
    returnType: void
    signature: void test_have_tty_interactive_failsafe_is_not_created(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptoInitialize
      Src: /src/core/tests/unit/generic_agent_test.c:50,1
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/generic_agent_test.c:54,1
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/tests/unit/generic_agent_test.c:56,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/tests/unit/generic_agent_test.c:60,1
    - Dst: StringFormat
      Src: /src/core/tests/unit/generic_agent_test.c:66,1
    - Dst: GetInputDir
      Src: /src/core/tests/unit/generic_agent_test.c:66,1
    - Dst: SelectAndLoadPolicy
      Src: /src/core/tests/unit/generic_agent_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/generic_agent_test.c:71,1
    - Dst: stat
      Src: /src/core/tests/unit/generic_agent_test.c:71,1
    - Dst: unlink
      Src: /src/core/tests/unit/generic_agent_test.c:73,1
    - Dst: free
      Src: /src/core/tests/unit/generic_agent_test.c:74,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/generic_agent_test.c:76,1
    - Dst: GenericAgentFinalize
      Src: /src/core/tests/unit/generic_agent_test.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 79
    functionName: test_dont_have_tty_interactive_failsafe_is_created
    functionSourceFile: /src/core/tests/unit/generic_agent_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - stat
    - GenericAgentConfigSetInputFile
    - assert_int_equal
    - unlink
    - SelectAndLoadPolicy
    - GenericAgentFinalize
    - EvalContextNew
    - StringFormat
    - GenericAgentConfigNewDefault
    - GetInputDir
    - free
    - CryptoInitialize
    linkageType: ''
    returnType: void
    signature: void test_dont_have_tty_interactive_failsafe_is_created(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:83,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/tests/unit/generic_agent_test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: test_resolve_absolute_input_path
    functionSourceFile: /src/core/tests/unit/generic_agent_test.c
    functionUses: 0
    functionsReached:
    - GenericAgentResolveInputPath
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_resolve_absolute_input_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/tests/unit/generic_agent_test.c:90,1
    - Dst: GetInputDir
      Src: /src/core/tests/unit/generic_agent_test.c:90,1
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/tests/unit/generic_agent_test.c:92,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/tests/unit/generic_agent_test.c:93,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/generic_agent_test.c:97,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:98,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/generic_agent_test.c:99,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:100,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/generic_agent_test.c:102,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:103,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/tests/unit/generic_agent_test.c:103,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/generic_agent_test.c:104,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:105,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/tests/unit/generic_agent_test.c:105,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/generic_agent_test.c:106,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:107,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/tests/unit/generic_agent_test.c:107,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/generic_agent_test.c:108,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:109,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/tests/unit/generic_agent_test.c:109,1
    - Dst: GenericAgentConfigDestroy
      Src: /src/core/tests/unit/generic_agent_test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 112
    functionName: test_resolve_non_anchored_base_path
    functionSourceFile: /src/core/tests/unit/generic_agent_test.c
    functionUses: 0
    functionsReached:
    - GenericAgentConfigSetInputFile
    - GenericAgentConfigDestroy
    - GenericAgentResolveInputPath
    - xsnprintf
    - GenericAgentConfigNewDefault
    - GetInputDir
    - assert_string_equal
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void test_resolve_non_anchored_base_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/tests/unit/generic_agent_test.c:116,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/tests/unit/generic_agent_test.c:117,1
    - Dst: GetWorkDir
      Src: /src/core/tests/unit/generic_agent_test.c:117,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:119,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/tests/unit/generic_agent_test.c:119,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:120,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/tests/unit/generic_agent_test.c:120,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:121,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/tests/unit/generic_agent_test.c:121,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/generic_agent_test.c:122,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/tests/unit/generic_agent_test.c:122,1
    - Dst: GenericAgentConfigDestroy
      Src: /src/core/tests/unit/generic_agent_test.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: test_resolve_relative_base_path
    functionSourceFile: /src/core/tests/unit/generic_agent_test.c
    functionUses: 0
    functionsReached:
    - GenericAgentConfigSetInputFile
    - GenericAgentConfigDestroy
    - GenericAgentResolveInputPath
    - assert_string_equal
    - GenericAgentConfigNewDefault
    - GetWorkDir
    linkageType: ''
    returnType: void
    signature: void test_resolve_relative_base_path(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mkdtemp
      Src: /src/core/tests/unit/generic_agent_test.c:129,1
    - Dst: fprintf
      Src: /src/core/tests/unit/generic_agent_test.c:131,1
    - Dst: xasprintf
      Src: /src/core/tests/unit/generic_agent_test.c:135,1
    - Dst: mkdir
      Src: /src/core/tests/unit/generic_agent_test.c:136,1
    - Dst: free
      Src: /src/core/tests/unit/generic_agent_test.c:137,1
    - Dst: xasprintf
      Src: /src/core/tests/unit/generic_agent_test.c:140,1
    - Dst: putenv
      Src: /src/core/tests/unit/generic_agent_test.c:142,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/generic_agent_test.c:144,1
    - Dst: unit_test
      Src: /src/core/tests/unit/generic_agent_test.c:147,1
    - Dst: unit_test
      Src: /src/core/tests/unit/generic_agent_test.c:148,1
    - Dst: unit_test
      Src: /src/core/tests/unit/generic_agent_test.c:149,1
    - Dst: unit_test
      Src: /src/core/tests/unit/generic_agent_test.c:150,1
    - Dst: unit_test
      Src: /src/core/tests/unit/generic_agent_test.c:151,1
    - Dst: run_tests
      Src: /src/core/tests/unit/generic_agent_test.c:154,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/generic_agent_test.c:158,1
    - Dst: system
      Src: /src/core/tests/unit/generic_agent_test.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/core/tests/unit/generic_agent_test.c
    functionUses: 0
    functionsReached:
    - mkdtemp
    - unit_test
    - xasprintf
    - putenv
    - system
    - PRINT_TEST_BANNER
    - xsnprintf
    - run_tests
    - fprintf
    - free
    - mkdir
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/tests/unit/files_properties_test.c:10,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:10,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_properties_test.c:11,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:11,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_properties_test.c:12,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:12,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_properties_test.c:13,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:13,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_properties_test.c:15,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:15,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_properties_test.c:19,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:19,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_properties_test.c:20,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:20,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_properties_test.c:21,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:21,1
    - Dst: assert_false
      Src: /src/core/tests/unit/files_properties_test.c:22,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:22,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_properties_test.c:25,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:25,1
    - Dst: assert_true
      Src: /src/core/tests/unit/files_properties_test.c:26,1
    - Dst: ConsiderFile
      Src: /src/core/tests/unit/files_properties_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 27
    functionName: test_ConsiderFile_path_separators
    functionSourceFile: /src/core/tests/unit/files_properties_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_false
    - ConsiderFile
    linkageType: ''
    returnType: void
    signature: void test_ConsiderFile_path_separators(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/files_properties_test.c:31,1
    - Dst: unit_test
      Src: /src/core/tests/unit/files_properties_test.c:34,1
    - Dst: run_tests
      Src: /src/core/tests/unit/files_properties_test.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: main
    functionSourceFile: /src/core/tests/unit/files_properties_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/granules_test.c:18,1
    - Dst: GetTimeSlot
      Src: /src/core/tests/unit/granules_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/granules_test.c:19,1
    - Dst: GetTimeSlot
      Src: /src/core/tests/unit/granules_test.c:19,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/granules_test.c:20,1
    - Dst: GetTimeSlot
      Src: /src/core/tests/unit/granules_test.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: test_get_time_slot
    functionSourceFile: /src/core/tests/unit/granules_test.c
    functionUses: 0
    functionsReached:
    - GetTimeSlot
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_get_time_slot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/granules_test.c:25,1
    - Dst: MeasurementSlotStart
      Src: /src/core/tests/unit/granules_test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: test_measurement_slot_start
    functionSourceFile: /src/core/tests/unit/granules_test.c
    functionUses: 0
    functionsReached:
    - MeasurementSlotStart
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_measurement_slot_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/granules_test.c:31,1
    - Dst: MeasurementSlotTime
      Src: /src/core/tests/unit/granules_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/granules_test.c:32,1
    - Dst: MeasurementSlotTime
      Src: /src/core/tests/unit/granules_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/granules_test.c:33,1
    - Dst: MeasurementSlotTime
      Src: /src/core/tests/unit/granules_test.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: test_measurement_slot_time
    functionSourceFile: /src/core/tests/unit/granules_test.c
    functionUses: 0
    functionsReached:
    - MeasurementSlotTime
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_measurement_slot_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:38,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:39,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:39,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:40,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:40,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:41,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:41,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:42,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:42,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:44,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:44,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:45,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:45,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:46,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:46,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:47,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:47,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/granules_test.c:48,1
    - Dst: GenTimeKey
      Src: /src/core/tests/unit/granules_test.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: test_gen_time_key
    functionSourceFile: /src/core/tests/unit/granules_test.c
    functionUses: 0
    functionsReached:
    - GenTimeKey
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_gen_time_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit_test
      Src: /src/core/tests/unit/granules_test.c:55,1
    - Dst: unit_test
      Src: /src/core/tests/unit/granules_test.c:56,1
    - Dst: unit_test
      Src: /src/core/tests/unit/granules_test.c:57,1
    - Dst: unit_test
      Src: /src/core/tests/unit/granules_test.c:58,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/granules_test.c:61,1
    - Dst: run_tests
      Src: /src/core/tests/unit/granules_test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/core/tests/unit/granules_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - unit_test
    - run_tests
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:14,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/sort_test.c:15,1
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:16,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/sort_test.c:17,1
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:18,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/sort_test.c:19,1
    - Dst: SortItemListNames
      Src: /src/core/tests/unit/sort_test.c:21,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:24,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:26,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/sort_test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 29
    functionName: test_sort_item_list_names
    functionSourceFile: /src/core/tests/unit/sort_test.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - assert_int_equal
    - assert_string_equal
    - xstrdup
    - DeleteItemList
    - SortItemListNames
    linkageType: ''
    returnType: void
    signature: void test_sort_item_list_names(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:33,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/sort_test.c:34,1
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:35,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/sort_test.c:36,1
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:37,1
    - Dst: xstrdup
      Src: /src/core/tests/unit/sort_test.c:38,1
    - Dst: SortItemListClasses
      Src: /src/core/tests/unit/sort_test.c:40,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:42,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:43,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:44,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:45,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/sort_test.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: test_sort_item_list_classes
    functionSourceFile: /src/core/tests/unit/sort_test.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - SortItemListClasses
    - assert_int_equal
    - assert_string_equal
    - xstrdup
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void test_sort_item_list_classes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:52,1
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:54,1
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:56,1
    - Dst: SortItemListCounters
      Src: /src/core/tests/unit/sort_test.c:59,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:62,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:65,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/sort_test.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: test_sort_item_list_counters
    functionSourceFile: /src/core/tests/unit/sort_test.c
    functionUses: 0
    functionsReached:
    - DeleteItemList
    - xcalloc
    - SortItemListCounters
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_sort_item_list_counters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:72,1
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:74,1
    - Dst: xcalloc
      Src: /src/core/tests/unit/sort_test.c:76,1
    - Dst: SortItemListCounters
      Src: /src/core/tests/unit/sort_test.c:79,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:83,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:84,1
    - Dst: DeleteItemList
      Src: /src/core/tests/unit/sort_test.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: test_sort_item_list_times
    functionSourceFile: /src/core/tests/unit/sort_test.c
    functionUses: 0
    functionsReached:
    - DeleteItemList
    - xcalloc
    - SortItemListCounters
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_sort_item_list_times(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/tests/unit/sort_test.c:91,1
    - Dst: strlen
      Src: /src/core/tests/unit/sort_test.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: FirstItemShorter
    functionSourceFile: /src/core/tests/unit/sort_test.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool FirstItemShorter(const char *lhs, const char *rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/sort_test.c:97,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/sort_test.c:98,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/sort_test.c:99,1
    - Dst: SortRlist
      Src: /src/core/tests/unit/sort_test.c:101,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:103,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/sort_test.c:103,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:104,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/sort_test.c:104,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:105,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/sort_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:106,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/sort_test.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: test_sort_rlist
    functionSourceFile: /src/core/tests/unit/sort_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SortRlist
    - RlistAppendScalar
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    linkageType: ''
    returnType: void
    signature: void test_sort_rlist(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/sort_test.c:114,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/sort_test.c:115,1
    - Dst: RlistAppendScalar
      Src: /src/core/tests/unit/sort_test.c:116,1
    - Dst: AlphaSortRListNames
      Src: /src/core/tests/unit/sort_test.c:118,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:120,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/sort_test.c:120,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:121,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/sort_test.c:121,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/sort_test.c:122,1
    - Dst: RlistScalarValue
      Src: /src/core/tests/unit/sort_test.c:122,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/sort_test.c:123,1
    - Dst: RlistDestroy
      Src: /src/core/tests/unit/sort_test.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: test_alpha_sort_rlist_names
    functionSourceFile: /src/core/tests/unit/sort_test.c
    functionUses: 0
    functionsReached:
    - AlphaSortRListNames
    - assert_int_equal
    - RlistAppendScalar
    - assert_string_equal
    - RlistDestroy
    - RlistScalarValue
    linkageType: ''
    returnType: void
    signature: void test_alpha_sort_rlist_names(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/sort_test.c:130,1
    - Dst: unit_test
      Src: /src/core/tests/unit/sort_test.c:133,1
    - Dst: unit_test
      Src: /src/core/tests/unit/sort_test.c:134,1
    - Dst: unit_test
      Src: /src/core/tests/unit/sort_test.c:135,1
    - Dst: unit_test
      Src: /src/core/tests/unit/sort_test.c:136,1
    - Dst: unit_test
      Src: /src/core/tests/unit/sort_test.c:137,1
    - Dst: unit_test
      Src: /src/core/tests/unit/sort_test.c:138,1
    - Dst: run_tests
      Src: /src/core/tests/unit/sort_test.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: main
    functionSourceFile: /src/core/tests/unit/sort_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/core/tests/unit/redirection_test_stub.c:16,1
    - Dst: strlen
      Src: /src/core/tests/unit/redirection_test_stub.c:16,1
    - Dst: fsync
      Src: /src/core/tests/unit/redirection_test_stub.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/core/tests/unit/redirection_test_stub.c
    functionUses: 0
    functionsReached:
    - strlen
    - fsync
    - write
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:10,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:13,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:13,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:14,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:14,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:15,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:15,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:16,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:16,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:17,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:17,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:18,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:18,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:21,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:21,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:22,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:22,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:23,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:23,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:24,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:24,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:25,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:25,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:26,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:26,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:27,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:27,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:28,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:28,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:29,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:29,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:30,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:30,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:31,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:31,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:32,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:32,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:33,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:33,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:34,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:34,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:35,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:35,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:36,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:36,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:37,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:37,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:38,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:38,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:39,1
    - Dst: StringIsBoolean
      Src: /src/core/tests/unit/conversion_test.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 40
    functionName: test_string_is_boolean
    functionSourceFile: /src/core/tests/unit/conversion_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - StringIsBoolean
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_string_is_boolean(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:45,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:48,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:48,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:49,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:49,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:50,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:50,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:53,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:53,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:54,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:54,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:55,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:55,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:58,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:58,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:59,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:59,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:60,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:60,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:61,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:61,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:62,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:62,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:63,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:63,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:64,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:64,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:65,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:65,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:66,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:66,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:67,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:67,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:68,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:68,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:69,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:69,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:70,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:70,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:71,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:71,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:72,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:72,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:73,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:73,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:74,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:74,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:75,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:75,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:76,1
    - Dst: BooleanFromString
      Src: /src/core/tests/unit/conversion_test.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 77
    functionName: test_boolean_from_string
    functionSourceFile: /src/core/tests/unit/conversion_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - BooleanFromString
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_boolean_from_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:81,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:82,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:83,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:83,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:84,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:84,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:85,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:85,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:86,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:87,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:88,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:89,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:92,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:93,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:93,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:94,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:94,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:95,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:96,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:97,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:99,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:99,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:101,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:104,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:104,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:105,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:106,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:106,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:107,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:108,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:108,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:109,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:110,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:110,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:111,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:111,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:112,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:112,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:113,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:115,1
    - Dst: IntFromString
      Src: /src/core/tests/unit/conversion_test.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 116
    functionName: test_int_from_string
    functionSourceFile: /src/core/tests/unit/conversion_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IntFromString
    linkageType: ''
    returnType: void
    signature: void test_int_from_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:124,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:124,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:125,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:127,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:127,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:128,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:130,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:130,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:131,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:134,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:134,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:135,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:137,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:137,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:138,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:141,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:141,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:142,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:143,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:143,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:144,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:146,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:146,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:148,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:151,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:151,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:152,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:154,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:154,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:155,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:158,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:158,1
    - Dst: assert_double_close
      Src: /src/core/tests/unit/conversion_test.c:159,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:166,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:166,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:167,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:167,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:168,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:168,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:169,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:169,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:170,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:170,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:173,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:173,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:174,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:174,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:175,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:175,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:176,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:176,1
    - Dst: assert_false
      Src: /src/core/tests/unit/conversion_test.c:178,1
    - Dst: DoubleFromString
      Src: /src/core/tests/unit/conversion_test.c:178,1
    - Dst: assert_true
      Src: /src/core/tests/unit/conversion_test.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 182
    functionName: test_double_from_string
    functionSourceFile: /src/core/tests/unit/conversion_test.c
    functionUses: 0
    functionsReached:
    - assert_double_close
    - assert_true
    - assert_false
    - DoubleFromString
    linkageType: ''
    returnType: void
    signature: void test_double_from_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:187,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:187,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:188,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:188,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:189,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:189,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:190,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:190,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:193,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:193,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:194,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:194,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:195,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:195,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:196,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:196,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:199,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:199,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:200,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:200,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:201,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:201,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:204,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:204,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:205,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:205,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:206,1
    - Dst: SignalFromString
      Src: /src/core/tests/unit/conversion_test.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 207
    functionName: test_signal_from_string
    functionSourceFile: /src/core/tests/unit/conversion_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SignalFromString
    linkageType: ''
    returnType: void
    signature: void test_signal_from_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:214,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:215,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:216,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:217,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:218,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:219,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:220,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:221,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:222,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:223,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:224,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:225,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:226,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:227,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:228,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:230,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:231,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:232,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:233,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:234,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:235,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:236,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:237,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:238,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:239,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:240,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:241,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:243,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:244,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:245,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:246,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:247,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:248,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:249,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:250,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:251,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:253,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:254,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:255,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:257,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:258,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:259,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:260,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:261,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:262,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:264,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:265,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:266,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:268,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:269,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:270,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:272,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/conversion_test.c:273,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:274,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:278,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:279,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:280,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:281,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:282,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:283,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:284,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:285,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:287,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:288,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:289,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:290,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:292,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:293,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:294,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:295,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:297,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:298,1
    - Dst: CommandArg0_bound
      Src: /src/core/tests/unit/conversion_test.c:299,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/conversion_test.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 301
    functionName: test_CommandArg0_bound
    functionSourceFile: /src/core/tests/unit/conversion_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - CommandArg0_bound
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_CommandArg0_bound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/conversion_test.c:305,1
    - Dst: unit_test
      Src: /src/core/tests/unit/conversion_test.c:308,1
    - Dst: unit_test
      Src: /src/core/tests/unit/conversion_test.c:309,1
    - Dst: unit_test
      Src: /src/core/tests/unit/conversion_test.c:310,1
    - Dst: unit_test
      Src: /src/core/tests/unit/conversion_test.c:311,1
    - Dst: unit_test
      Src: /src/core/tests/unit/conversion_test.c:312,1
    - Dst: unit_test
      Src: /src/core/tests/unit/conversion_test.c:313,1
    - Dst: run_tests
      Src: /src/core/tests/unit/conversion_test.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 317
    functionName: main
    functionSourceFile: /src/core/tests/unit/conversion_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/policy_test.c:15,1
    - Dst: ParserParseFile
      Src: /src/core/tests/unit/policy_test.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: TestParsePolicy
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 40
    functionsReached:
    - ParserParseFile
    - xsnprintf
    linkageType: ''
    returnType: Policy
    signature: Policy *TestParsePolicy(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:22,1
    - Dst: FileWriter
      Src: /src/core/tests/unit/policy_test.c:24,1
    - Dst: PolicyErrorWrite
      Src: /src/core/tests/unit/policy_test.c:27,1
    - Dst: FileWriterDetach
      Src: /src/core/tests/unit/policy_test.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - errs
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: DumpErrors
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - PolicyErrorWrite
    - FileWriterDetach
    - FileWriter
    linkageType: ''
    returnType: void
    signature: void DumpErrors(Seq *errs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/policy_test.c:35,1
    - Dst: SeqNew
      Src: /src/core/tests/unit/policy_test.c:37,1
    - Dst: PolicyCheckPartial
      Src: /src/core/tests/unit/policy_test.c:38,1
    - Dst: DumpErrors
      Src: /src/core/tests/unit/policy_test.c:40,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/policy_test.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: LoadAndCheck
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - PolicyCheckPartial
    - SeqNew
    - TestParsePolicy
    - DumpErrors
    linkageType: ''
    returnType: Seq
    signature: Seq *LoadAndCheck(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mkstemp
      Src: /src/core/tests/unit/policy_test.c:49,1
    - Dst: fopen
      Src: /src/core/tests/unit/policy_test.c:52,1
    - Dst: FileWriter
      Src: /src/core/tests/unit/policy_test.c:53,1
    - Dst: WriterWrite
      Src: /src/core/tests/unit/policy_test.c:54,1
    - Dst: WriterClose
      Src: /src/core/tests/unit/policy_test.c:56,1
    - Dst: ParserParseFile
      Src: /src/core/tests/unit/policy_test.c:59,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:60,1
    - Dst: SeqNew
      Src: /src/core/tests/unit/policy_test.c:62,1
    - Dst: PolicyCheckPartial
      Src: /src/core/tests/unit/policy_test.c:63,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/policy_test.c:65,1
    - Dst: unlink
      Src: /src/core/tests/unit/policy_test.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - policy_code
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 68
    functionName: LoadAndCheckString
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - PolicyDestroy
    - PolicyCheckPartial
    - fopen
    - WriterClose
    - unlink
    - assert_true
    - WriterWrite
    - mkstemp
    - SeqNew
    - ParserParseFile
    linkageType: ''
    returnType: Seq
    signature: Seq *LoadAndCheckString(const char *policy_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mkstemp
      Src: /src/core/tests/unit/policy_test.c:73,1
    - Dst: WriteBuiltinFailsafePolicyToPath
      Src: /src/core/tests/unit/policy_test.c:75,1
    - Dst: ParserParseFile
      Src: /src/core/tests/unit/policy_test.c:77,1
    - Dst: unlink
      Src: /src/core/tests/unit/policy_test.c:79,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:81,1
    - Dst: SeqNew
      Src: /src/core/tests/unit/policy_test.c:83,1
    - Dst: PolicyCheckPartial
      Src: /src/core/tests/unit/policy_test.c:84,1
    - Dst: DumpErrors
      Src: /src/core/tests/unit/policy_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:87,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:87,1
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/policy_test.c:90,1
    - Dst: PolicyCheckRunnable
      Src: /src/core/tests/unit/policy_test.c:92,1
    - Dst: DumpErrors
      Src: /src/core/tests/unit/policy_test.c:94,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:95,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:95,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/policy_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:100,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:100,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:102,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/policy_test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 104
    functionName: test_failsafe
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - WriteBuiltinFailsafePolicyToPath
    - PolicyCheckPartial
    - assert_int_equal
    - EvalContextDestroy
    - unlink
    - SeqDestroy
    - assert_true
    - mkstemp
    - SeqNew
    - SeqLength
    - EvalContextNew
    - ParserParseFile
    - DumpErrors
    - PolicyCheckRunnable
    linkageType: ''
    returnType: void
    signature: void test_failsafe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheck
      Src: /src/core/tests/unit/policy_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:110,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: test_bundle_redefinition
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - LoadAndCheck
    linkageType: ''
    returnType: void
    signature: void test_bundle_redefinition(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheck
      Src: /src/core/tests/unit/policy_test.c:117,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:118,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: test_bundle_reserved_name
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - LoadAndCheck
    linkageType: ''
    returnType: void
    signature: void test_bundle_reserved_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheck
      Src: /src/core/tests/unit/policy_test.c:125,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:126,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: test_body_redefinition
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - LoadAndCheck
    linkageType: ''
    returnType: void
    signature: void test_body_redefinition(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheck
      Src: /src/core/tests/unit/policy_test.c:133,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:134,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: test_body_control_no_arguments
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - LoadAndCheck
    linkageType: ''
    returnType: void
    signature: void test_body_control_no_arguments(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheck
      Src: /src/core/tests/unit/policy_test.c:141,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:142,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: test_vars_multiple_types
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - LoadAndCheck
    linkageType: ''
    returnType: void
    signature: void test_vars_multiple_types(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheck
      Src: /src/core/tests/unit/policy_test.c:149,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:150,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: test_methods_invalid_arity
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - LoadAndCheck
    linkageType: ''
    returnType: void
    signature: void test_methods_invalid_arity(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheck
      Src: /src/core/tests/unit/policy_test.c:157,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:158,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: test_promise_duplicate_handle
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - LoadAndCheck
    linkageType: ''
    returnType: void
    signature: void test_promise_duplicate_handle(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/policy_test.c:165,1
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/policy_test.c:168,1
    - Dst: PolicyToJson
      Src: /src/core/tests/unit/policy_test.c:169,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/policy_test.c:170,1
    - Dst: PolicyFromJson
      Src: /src/core/tests/unit/policy_test.c:171,1
    - Dst: JsonDestroy
      Src: /src/core/tests/unit/policy_test.c:172,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:174,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:176,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:176,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:177,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:177,1
    - Dst: PolicyGetBundle
      Src: /src/core/tests/unit/policy_test.c:180,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:181,1
    - Dst: BundleGetSection
      Src: /src/core/tests/unit/policy_test.c:184,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:185,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:186,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:186,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:188,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/policy_test.c:190,1
    - Dst: strcmp
      Src: /src/core/tests/unit/policy_test.c:192,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:194,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:196,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:196,1
    - Dst: PromiseGetConstraint
      Src: /src/core/tests/unit/policy_test.c:199,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:200,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:201,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:202,1
    - Dst: RvalScalarValue
      Src: /src/core/tests/unit/policy_test.c:202,1
    - Dst: PromiseGetConstraint
      Src: /src/core/tests/unit/policy_test.c:206,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:207,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:208,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:209,1
    - Dst: RvalScalarValue
      Src: /src/core/tests/unit/policy_test.c:209,1
    - Dst: fprintf
      Src: /src/core/tests/unit/policy_test.c:214,1
    - Dst: fail
      Src: /src/core/tests/unit/policy_test.c:215,1
    - Dst: BundleGetSection
      Src: /src/core/tests/unit/policy_test.c:223,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:224,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:225,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:225,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:227,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/policy_test.c:229,1
    - Dst: strcmp
      Src: /src/core/tests/unit/policy_test.c:231,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:233,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:235,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:235,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/policy_test.c:238,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:239,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:240,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:241,1
    - Dst: RvalFnCallValue
      Src: /src/core/tests/unit/policy_test.c:242,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:243,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:244,1
    - Dst: RlistLen
      Src: /src/core/tests/unit/policy_test.c:244,1
    - Dst: fprintf
      Src: /src/core/tests/unit/policy_test.c:249,1
    - Dst: fail
      Src: /src/core/tests/unit/policy_test.c:250,1
    - Dst: PolicyGetBody
      Src: /src/core/tests/unit/policy_test.c:258,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:259,1
    - Dst: BodyGetConstraint
      Src: /src/core/tests/unit/policy_test.c:262,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:263,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/policy_test.c:263,1
    - Dst: SeqAt
      Src: /src/core/tests/unit/policy_test.c:265,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:266,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:267,1
    - Dst: RvalScalarValue
      Src: /src/core/tests/unit/policy_test.c:267,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:268,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/policy_test.c:272,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/policy_test.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 274
    functionName: test_policy_json_to_from
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - fail
    - BodyGetConstraint
    - SeqLength
    - RlistLen
    - RvalFnCallValue
    - SeqDestroy
    - PromiseGetConstraint
    - EvalContextNew
    - PolicyGetBundle
    - strcmp
    - assert_string_equal
    - SeqAt
    - PolicyFromJson
    - EvalContextDestroy
    - RvalScalarValue
    - TestParsePolicy
    - PolicyToJson
    - JsonDestroy
    - assert_int_equal
    - PolicyGetBody
    - assert_true
    - BundleGetSection
    - fprintf
    linkageType: ''
    returnType: void
    signature: void test_policy_json_to_from(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestParsePolicy
      Src: /src/core/tests/unit/policy_test.c:280,1
    - Dst: PolicyToJson
      Src: /src/core/tests/unit/policy_test.c:281,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/policy_test.c:282,1
    - Dst: assert_true
      Src: /src/core/tests/unit/policy_test.c:284,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/tests/unit/policy_test.c:286,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/tests/unit/policy_test.c:288,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/tests/unit/policy_test.c:289,1
    - Dst: JsonObjectGet
      Src: /src/core/tests/unit/policy_test.c:289,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:290,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/tests/unit/policy_test.c:292,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/tests/unit/policy_test.c:294,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/tests/unit/policy_test.c:295,1
    - Dst: JsonObjectGet
      Src: /src/core/tests/unit/policy_test.c:295,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:296,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/tests/unit/policy_test.c:298,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/tests/unit/policy_test.c:299,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/tests/unit/policy_test.c:300,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/tests/unit/policy_test.c:301,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/tests/unit/policy_test.c:303,1
    - Dst: JsonObjectGet
      Src: /src/core/tests/unit/policy_test.c:303,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:304,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/tests/unit/policy_test.c:305,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/tests/unit/policy_test.c:307,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/tests/unit/policy_test.c:309,1
    - Dst: JsonObjectGet
      Src: /src/core/tests/unit/policy_test.c:309,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:310,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/tests/unit/policy_test.c:315,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/tests/unit/policy_test.c:317,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/tests/unit/policy_test.c:318,1
    - Dst: JsonObjectGet
      Src: /src/core/tests/unit/policy_test.c:318,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:319,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/tests/unit/policy_test.c:321,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/tests/unit/policy_test.c:322,1
    - Dst: JsonObjectGet
      Src: /src/core/tests/unit/policy_test.c:322,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:323,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/tests/unit/policy_test.c:325,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/tests/unit/policy_test.c:326,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/tests/unit/policy_test.c:327,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/tests/unit/policy_test.c:329,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/tests/unit/policy_test.c:330,1
    - Dst: JsonObjectGet
      Src: /src/core/tests/unit/policy_test.c:330,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:331,1
    - Dst: JsonDestroy
      Src: /src/core/tests/unit/policy_test.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 336
    functionName: test_policy_json_offsets
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - assert_int_equal
    - JsonDestroy
    - JsonArrayGetAsObject
    - JsonObjectGetAsArray
    - assert_true
    - TestParsePolicy
    - JsonPrimitiveGetAsInteger
    - JsonObjectGet
    - PolicyToJson
    linkageType: ''
    returnType: void
    signature: void test_policy_json_offsets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/tests/unit/policy_test.c:341,1
    - Dst: assert_false
      Src: /src/core/tests/unit/policy_test.c:342,1
    - Dst: BundleQualifiedName
      Src: /src/core/tests/unit/policy_test.c:342,1
    - Dst: BundleQualifiedName
      Src: /src/core/tests/unit/policy_test.c:346,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:347,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:348,1
    - Dst: BundleQualifiedName
      Src: /src/core/tests/unit/policy_test.c:351,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:352,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:353,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 356
    functionName: test_util_bundle_qualified_name
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - assert_false
    - assert_string_equal
    - free
    - BundleQualifiedName
    linkageType: ''
    returnType: void
    signature: void test_util_bundle_qualified_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QualifiedNameNamespaceComponent
      Src: /src/core/tests/unit/policy_test.c:361,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:362,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:363,1
    - Dst: QualifiedNameScopeComponent
      Src: /src/core/tests/unit/policy_test.c:365,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:366,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:367,1
    - Dst: QualifiedNameNamespaceComponent
      Src: /src/core/tests/unit/policy_test.c:371,1
    - Dst: assert_false
      Src: /src/core/tests/unit/policy_test.c:372,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:373,1
    - Dst: QualifiedNameScopeComponent
      Src: /src/core/tests/unit/policy_test.c:375,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:376,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:377,1
    - Dst: QualifiedNameNamespaceComponent
      Src: /src/core/tests/unit/policy_test.c:381,1
    - Dst: assert_false
      Src: /src/core/tests/unit/policy_test.c:382,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:383,1
    - Dst: QualifiedNameScopeComponent
      Src: /src/core/tests/unit/policy_test.c:385,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:386,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:387,1
    - Dst: QualifiedNameNamespaceComponent
      Src: /src/core/tests/unit/policy_test.c:391,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:392,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:393,1
    - Dst: QualifiedNameScopeComponent
      Src: /src/core/tests/unit/policy_test.c:395,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:396,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:397,1
    - Dst: QualifiedNameNamespaceComponent
      Src: /src/core/tests/unit/policy_test.c:401,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:402,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:403,1
    - Dst: QualifiedNameScopeComponent
      Src: /src/core/tests/unit/policy_test.c:405,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:406,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:407,1
    - Dst: QualifiedNameNamespaceComponent
      Src: /src/core/tests/unit/policy_test.c:411,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:412,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:413,1
    - Dst: QualifiedNameScopeComponent
      Src: /src/core/tests/unit/policy_test.c:415,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/policy_test.c:416,1
    - Dst: free
      Src: /src/core/tests/unit/policy_test.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 419
    functionName: test_util_qualified_name_components
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - QualifiedNameNamespaceComponent
    - assert_string_equal
    - QualifiedNameScopeComponent
    - free
    linkageType: ''
    returnType: void
    signature: void test_util_qualified_name_components(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheck
      Src: /src/core/tests/unit/policy_test.c:423,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:424,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 427
    functionName: test_promiser_empty_varref
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - LoadAndCheck
    linkageType: ''
    returnType: void
    signature: void test_promiser_empty_varref(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheck
      Src: /src/core/tests/unit/policy_test.c:431,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:432,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: test_constraint_comment_nonscalar
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - LoadAndCheck
    linkageType: ''
    returnType: void
    signature: void test_constraint_comment_nonscalar(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadAndCheckString
      Src: /src/core/tests/unit/policy_test.c:441,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:444,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:445,1
    - Dst: LoadAndCheckString
      Src: /src/core/tests/unit/policy_test.c:449,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/policy_test.c:453,1
    - Dst: SeqDestroy
      Src: /src/core/tests/unit/policy_test.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 456
    functionName: test_body_action_with_log_repaired_needs_log_string
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - LoadAndCheckString
    - SeqDestroy
    linkageType: ''
    returnType: void
    signature: void test_body_action_with_log_repaired_needs_log_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/policy_test.c:460,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:463,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:465,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:466,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:467,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:468,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:469,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:470,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:471,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:473,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:474,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:476,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:477,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:479,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:481,1
    - Dst: unit_test
      Src: /src/core/tests/unit/policy_test.c:483,1
    - Dst: run_tests
      Src: /src/core/tests/unit/policy_test.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 487
    functionName: main
    functionSourceFile: /src/core/tests/unit/policy_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:12,1
    - Dst: parse
      Src: /src/core/tests/unit/cf_upgrade_test.c:12,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:13,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:18,1
    - Dst: parse
      Src: /src/core/tests/unit/cf_upgrade_test.c:18,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:19,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:20,1
    - Dst: ConfigurationBackupTool
      Src: /src/core/tests/unit/cf_upgrade_test.c:20,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:21,1
    - Dst: ConfigurationBackupPath
      Src: /src/core/tests/unit/cf_upgrade_test.c:21,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:22,1
    - Dst: ConfigurationCommand
      Src: /src/core/tests/unit/cf_upgrade_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:23,1
    - Dst: ConfigurationNumberOfArguments
      Src: /src/core/tests/unit/cf_upgrade_test.c:23,1
    - Dst: ConfigurationDestroy
      Src: /src/core/tests/unit/cf_upgrade_test.c:24,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:32,1
    - Dst: parse
      Src: /src/core/tests/unit/cf_upgrade_test.c:32,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:33,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:34,1
    - Dst: ConfigurationBackupTool
      Src: /src/core/tests/unit/cf_upgrade_test.c:34,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:35,1
    - Dst: ConfigurationBackupPath
      Src: /src/core/tests/unit/cf_upgrade_test.c:35,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:36,1
    - Dst: ConfigurationCopy
      Src: /src/core/tests/unit/cf_upgrade_test.c:36,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:37,1
    - Dst: ConfigurationCFEnginePath
      Src: /src/core/tests/unit/cf_upgrade_test.c:37,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:38,1
    - Dst: ConfigurationCFUpgrade
      Src: /src/core/tests/unit/cf_upgrade_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:39,1
    - Dst: ConfigurationCommand
      Src: /src/core/tests/unit/cf_upgrade_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:40,1
    - Dst: ConfigurationNumberOfArguments
      Src: /src/core/tests/unit/cf_upgrade_test.c:40,1
    - Dst: ConfigurationDestroy
      Src: /src/core/tests/unit/cf_upgrade_test.c:41,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 43
    functionName: test_parse
    functionSourceFile: /src/core/tests/unit/cf_upgrade_test.c
    functionUses: 0
    functionsReached:
    - ConfigurationCFEnginePath
    - ConfigurationDestroy
    - ConfigurationCopy
    - assert_int_equal
    - ConfigurationNumberOfArguments
    - assert_true
    - parse
    - ConfigurationCFUpgrade
    - ConfigurationBackupPath
    - ConfigurationBackupTool
    - assert_string_equal
    - ConfigurationCommand
    linkageType: ''
    returnType: void
    signature: void test_parse(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationNew
      Src: /src/core/tests/unit/cf_upgrade_test.c:47,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:48,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:49,1
    - Dst: ConfigurationBackupTool
      Src: /src/core/tests/unit/cf_upgrade_test.c:49,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:50,1
    - Dst: ConfigurationBackupPath
      Src: /src/core/tests/unit/cf_upgrade_test.c:50,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:51,1
    - Dst: ConfigurationCopy
      Src: /src/core/tests/unit/cf_upgrade_test.c:51,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:52,1
    - Dst: ConfigurationCFEnginePath
      Src: /src/core/tests/unit/cf_upgrade_test.c:52,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:53,1
    - Dst: ConfigurationCommand
      Src: /src/core/tests/unit/cf_upgrade_test.c:53,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:54,1
    - Dst: ConfigurationCFUpgrade
      Src: /src/core/tests/unit/cf_upgrade_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:55,1
    - Dst: ConfigurationNumberOfArguments
      Src: /src/core/tests/unit/cf_upgrade_test.c:55,1
    - Dst: assert_false
      Src: /src/core/tests/unit/cf_upgrade_test.c:56,1
    - Dst: ConfigurationPerformUpdate
      Src: /src/core/tests/unit/cf_upgrade_test.c:56,1
    - Dst: ConfigurationDestroy
      Src: /src/core/tests/unit/cf_upgrade_test.c:57,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:58,1
    - Dst: ConfigurationNew
      Src: /src/core/tests/unit/cf_upgrade_test.c:60,1
    - Dst: ConfigurationSetBackupTool
      Src: /src/core/tests/unit/cf_upgrade_test.c:68,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:69,1
    - Dst: ConfigurationBackupTool
      Src: /src/core/tests/unit/cf_upgrade_test.c:69,1
    - Dst: ConfigurationSetBackupPath
      Src: /src/core/tests/unit/cf_upgrade_test.c:70,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:71,1
    - Dst: ConfigurationBackupPath
      Src: /src/core/tests/unit/cf_upgrade_test.c:71,1
    - Dst: ConfigurationSetCopy
      Src: /src/core/tests/unit/cf_upgrade_test.c:72,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:73,1
    - Dst: ConfigurationCopy
      Src: /src/core/tests/unit/cf_upgrade_test.c:73,1
    - Dst: ConfigurationSetCFUpgrade
      Src: /src/core/tests/unit/cf_upgrade_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:75,1
    - Dst: ConfigurationCFUpgrade
      Src: /src/core/tests/unit/cf_upgrade_test.c:75,1
    - Dst: ConfigurationAddArgument
      Src: /src/core/tests/unit/cf_upgrade_test.c:76,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:77,1
    - Dst: ConfigurationCommand
      Src: /src/core/tests/unit/cf_upgrade_test.c:77,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:78,1
    - Dst: ConfigurationArgument
      Src: /src/core/tests/unit/cf_upgrade_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:79,1
    - Dst: ConfigurationNumberOfArguments
      Src: /src/core/tests/unit/cf_upgrade_test.c:79,1
    - Dst: ConfigurationAddArgument
      Src: /src/core/tests/unit/cf_upgrade_test.c:80,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:81,1
    - Dst: ConfigurationArgument
      Src: /src/core/tests/unit/cf_upgrade_test.c:81,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:82,1
    - Dst: ConfigurationArgument
      Src: /src/core/tests/unit/cf_upgrade_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:83,1
    - Dst: ConfigurationNumberOfArguments
      Src: /src/core/tests/unit/cf_upgrade_test.c:83,1
    - Dst: ConfigurationSetCFEnginePath
      Src: /src/core/tests/unit/cf_upgrade_test.c:84,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:85,1
    - Dst: ConfigurationCFEnginePath
      Src: /src/core/tests/unit/cf_upgrade_test.c:85,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/cf_upgrade_test.c:86,1
    - Dst: ConfigurationNumberOfArguments
      Src: /src/core/tests/unit/cf_upgrade_test.c:86,1
    - Dst: ConfigurationDestroy
      Src: /src/core/tests/unit/cf_upgrade_test.c:87,1
    - Dst: assert_true
      Src: /src/core/tests/unit/cf_upgrade_test.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 89
    functionName: test_configuration
    functionSourceFile: /src/core/tests/unit/cf_upgrade_test.c
    functionUses: 0
    functionsReached:
    - ConfigurationSetCFUpgrade
    - assert_false
    - ConfigurationCFUpgrade
    - ConfigurationSetBackupTool
    - ConfigurationCopy
    - ConfigurationNew
    - ConfigurationBackupPath
    - ConfigurationArgument
    - assert_string_equal
    - ConfigurationDestroy
    - ConfigurationNumberOfArguments
    - ConfigurationSetBackupPath
    - ConfigurationCommand
    - ConfigurationSetCopy
    - ConfigurationCFEnginePath
    - ConfigurationPerformUpdate
    - assert_int_equal
    - ConfigurationAddArgument
    - assert_true
    - ConfigurationBackupTool
    - ConfigurationSetCFEnginePath
    linkageType: ''
    returnType: void
    signature: void test_configuration(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/cf_upgrade_test.c:93,1
    - Dst: unit_test
      Src: /src/core/tests/unit/cf_upgrade_test.c:96,1
    - Dst: unit_test
      Src: /src/core/tests/unit/cf_upgrade_test.c:97,1
    - Dst: run_tests
      Src: /src/core/tests/unit/cf_upgrade_test.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: main
    functionSourceFile: /src/core/tests/unit/cf_upgrade_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:8,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:9,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:10,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:11,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:12,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:13,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:14,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:15,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:16,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:17,1
    - Dst: AppendItem
      Src: /src/core/tests/unit/nfs_test.c:18,1
    - Dst: assert_true
      Src: /src/core/tests/unit/nfs_test.c:20,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:20,1
    - Dst: assert_true
      Src: /src/core/tests/unit/nfs_test.c:21,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:21,1
    - Dst: assert_false
      Src: /src/core/tests/unit/nfs_test.c:22,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:22,1
    - Dst: assert_true
      Src: /src/core/tests/unit/nfs_test.c:24,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:24,1
    - Dst: assert_true
      Src: /src/core/tests/unit/nfs_test.c:25,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:25,1
    - Dst: assert_false
      Src: /src/core/tests/unit/nfs_test.c:26,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:26,1
    - Dst: assert_false
      Src: /src/core/tests/unit/nfs_test.c:28,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:28,1
    - Dst: assert_false
      Src: /src/core/tests/unit/nfs_test.c:29,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:29,1
    - Dst: assert_true
      Src: /src/core/tests/unit/nfs_test.c:31,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:31,1
    - Dst: assert_true
      Src: /src/core/tests/unit/nfs_test.c:32,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:32,1
    - Dst: assert_false
      Src: /src/core/tests/unit/nfs_test.c:33,1
    - Dst: MatchFSInFstab
      Src: /src/core/tests/unit/nfs_test.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 34
    functionName: test_MatchFSInFstab
    functionSourceFile: /src/core/tests/unit/nfs_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - AppendItem
    - assert_true
    - MatchFSInFstab
    linkageType: ''
    returnType: void
    signature: void test_MatchFSInFstab(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/nfs_test.c:38,1
    - Dst: unit_test
      Src: /src/core/tests/unit/nfs_test.c:40,1
    - Dst: run_tests
      Src: /src/core/tests/unit/nfs_test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: main
    functionSourceFile: /src/core/tests/unit/nfs_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_digests
      Src: /src/core/tests/unit/persistent_lock_test.c:13,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/persistent_lock_test.c:15,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/persistent_lock_test.c:16,1
    - Dst: xsnprintf
      Src: /src/core/tests/unit/persistent_lock_test.c:19,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/persistent_lock_test.c:19,1
    - Dst: mkdir
      Src: /src/core/tests/unit/persistent_lock_test.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 21
    functionName: tests_setup
    functionSourceFile: /src/core/tests/unit/persistent_lock_test.c
    functionUses: 10
    functionsReached:
    - mkdtemp
    - GetStateDir
    - OpenSSL_add_all_digests
    - xsnprintf
    - mkdir
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/persistent_lock_test.c:26,1
    - Dst: system
      Src: /src/core/tests/unit/persistent_lock_test.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/persistent_lock_test.c
    functionUses: 8
    functionsReached:
    - system
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_teardown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/persistent_lock_test.c:32,1
    - Dst: tests_setup
      Src: /src/core/tests/unit/persistent_lock_test.c:33,1
    - Dst: run_tests
      Src: /src/core/tests/unit/persistent_lock_test.c:40,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/persistent_lock_test.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: main
    functionSourceFile: /src/core/tests/unit/persistent_lock_test.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - tests_teardown
    - PRINT_TEST_BANNER
    - run_tests
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: InitTime
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitTime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - start_time
    - reaction_time
    - int_blocked
    - term_blocked
    - have_access
    argTypes:
    - time_t
    - time_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 69
    functionName: InitFakeProcess
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void InitFakeProcess(time_t start_time, time_t reaction_time,\n                     bool
      int_blocked, bool term_blocked, bool have_access)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_terminate_unix_test.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: GetProcessStartTime
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 14
    functionsReached:
    - assert_int_equal
    linkageType: ''
    returnType: time_t
    signature: time_t GetProcessStartTime(pid_t pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_terminate_unix_test.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 102
    functionName: GetProcessState
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 15
    functionsReached:
    - assert_int_equal
    linkageType: ''
    returnType: ProcessState
    signature: ProcessState GetProcessState(pid_t pid)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 162
    functionName: FakeProcessDoSignals
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FakeProcessDoSignals(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_terminate_unix_test.c:166,1
    - Dst: FakeProcessDoSignals
      Src: /src/core/tests/unit/process_terminate_unix_test.c:216,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - pid
    - signal
    argTypes:
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 219
    functionName: kill
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 6
    functionsReached:
    - FakeProcessDoSignals
    - assert_int_equal
    linkageType: ''
    returnType: int
    signature: int kill(pid_t pid, int signal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FakeProcessDoSignals
      Src: /src/core/tests/unit/process_terminate_unix_test.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - req
    - rem
    argTypes:
    - struct timespec*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 259
    functionName: nanosleep
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached:
    - FakeProcessDoSignals
    linkageType: ''
    returnType: int
    signature: int nanosleep(const struct timespec *req, struct timespec *rem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTime
      Src: /src/core/tests/unit/process_terminate_unix_test.c:265,1
    - Dst: InitFakeProcess
      Src: /src/core/tests/unit/process_terminate_unix_test.c:266,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_terminate_unix_test.c:268,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_terminate_unix_test.c:269,1
    - Dst: FakeProcessDoSignals
      Src: /src/core/tests/unit/process_terminate_unix_test.c:271,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_terminate_unix_test.c:273,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_terminate_unix_test.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 275
    functionName: test_kill_simple_process
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - GracefulTerminate
    - InitFakeProcess
    - assert_true
    - InitTime
    - FakeProcessDoSignals
    linkageType: ''
    returnType: void
    signature: void test_kill_simple_process(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTime
      Src: /src/core/tests/unit/process_terminate_unix_test.c:279,1
    - Dst: InitFakeProcess
      Src: /src/core/tests/unit/process_terminate_unix_test.c:280,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_terminate_unix_test.c:282,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_terminate_unix_test.c:283,1
    - Dst: FakeProcessDoSignals
      Src: /src/core/tests/unit/process_terminate_unix_test.c:285,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_terminate_unix_test.c:287,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_terminate_unix_test.c:288,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_terminate_unix_test.c:289,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_terminate_unix_test.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: test_kill_wrong_process
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - GracefulTerminate
    - InitFakeProcess
    - assert_true
    - InitTime
    - FakeProcessDoSignals
    linkageType: ''
    returnType: void
    signature: void test_kill_wrong_process(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTime
      Src: /src/core/tests/unit/process_terminate_unix_test.c:296,1
    - Dst: InitFakeProcess
      Src: /src/core/tests/unit/process_terminate_unix_test.c:297,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_terminate_unix_test.c:299,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_terminate_unix_test.c:300,1
    - Dst: FakeProcessDoSignals
      Src: /src/core/tests/unit/process_terminate_unix_test.c:302,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_terminate_unix_test.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: test_kill_long_reacting_signal
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached:
    - GracefulTerminate
    - InitFakeProcess
    - assert_true
    - InitTime
    - FakeProcessDoSignals
    linkageType: ''
    returnType: void
    signature: void test_kill_long_reacting_signal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTime
      Src: /src/core/tests/unit/process_terminate_unix_test.c:311,1
    - Dst: InitFakeProcess
      Src: /src/core/tests/unit/process_terminate_unix_test.c:312,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_terminate_unix_test.c:314,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_terminate_unix_test.c:315,1
    - Dst: FakeProcessDoSignals
      Src: /src/core/tests/unit/process_terminate_unix_test.c:317,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_terminate_unix_test.c:319,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_terminate_unix_test.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 321
    functionName: test_kill_no_sigint
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - GracefulTerminate
    - InitFakeProcess
    - assert_true
    - InitTime
    - FakeProcessDoSignals
    linkageType: ''
    returnType: void
    signature: void test_kill_no_sigint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTime
      Src: /src/core/tests/unit/process_terminate_unix_test.c:326,1
    - Dst: InitFakeProcess
      Src: /src/core/tests/unit/process_terminate_unix_test.c:327,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_terminate_unix_test.c:329,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_terminate_unix_test.c:330,1
    - Dst: FakeProcessDoSignals
      Src: /src/core/tests/unit/process_terminate_unix_test.c:335,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_terminate_unix_test.c:337,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/process_terminate_unix_test.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 339
    functionName: test_kill_no_sigint_sigterm
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - GracefulTerminate
    - InitFakeProcess
    - assert_true
    - InitTime
    - FakeProcessDoSignals
    linkageType: ''
    returnType: void
    signature: void test_kill_no_sigint_sigterm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTime
      Src: /src/core/tests/unit/process_terminate_unix_test.c:344,1
    - Dst: InitFakeProcess
      Src: /src/core/tests/unit/process_terminate_unix_test.c:345,1
    - Dst: GracefulTerminate
      Src: /src/core/tests/unit/process_terminate_unix_test.c:347,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_terminate_unix_test.c:348,1
    - Dst: FakeProcessDoSignals
      Src: /src/core/tests/unit/process_terminate_unix_test.c:350,1
    - Dst: assert_true
      Src: /src/core/tests/unit/process_terminate_unix_test.c:352,1
    - Dst: assert_false
      Src: /src/core/tests/unit/process_terminate_unix_test.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 354
    functionName: test_kill_anothers_process
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - GracefulTerminate
    - InitFakeProcess
    - assert_true
    - InitTime
    - FakeProcessDoSignals
    linkageType: ''
    returnType: void
    signature: void test_kill_anothers_process(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/process_terminate_unix_test.c:358,1
    - Dst: unit_test
      Src: /src/core/tests/unit/process_terminate_unix_test.c:362,1
    - Dst: unit_test
      Src: /src/core/tests/unit/process_terminate_unix_test.c:363,1
    - Dst: unit_test
      Src: /src/core/tests/unit/process_terminate_unix_test.c:364,1
    - Dst: unit_test
      Src: /src/core/tests/unit/process_terminate_unix_test.c:365,1
    - Dst: unit_test
      Src: /src/core/tests/unit/process_terminate_unix_test.c:366,1
    - Dst: unit_test
      Src: /src/core/tests/unit/process_terminate_unix_test.c:367,1
    - Dst: run_tests
      Src: /src/core/tests/unit/process_terminate_unix_test.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: main
    functionSourceFile: /src/core/tests/unit/process_terminate_unix_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/tests/unit/eval_context_test.c:14,1
    - Dst: assert
      Src: /src/core/tests/unit/eval_context_test.c:15,1
    - Dst: mkdtemp
      Src: /src/core/tests/unit/eval_context_test.c:18,1
    - Dst: strlcpy
      Src: /src/core/tests/unit/eval_context_test.c:19,1
    - Dst: putenv
      Src: /src/core/tests/unit/eval_context_test.c:20,1
    - Dst: mkdir
      Src: /src/core/tests/unit/eval_context_test.c:22,1
    - Dst: GetStateDir
      Src: /src/core/tests/unit/eval_context_test.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (workdir && workdir[1] == '/')
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/core/tests/unit/eval_context_test.c
    constantsTouched: []
    func_position:
      end: 23
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 23
    functionName: tests_setup
    functionSourceFile: /src/core/tests/unit/eval_context_test.c
    functionUses: 11
    functionsReached:
    - mkdtemp
    - assert
    - mkdir
    - GetStateDir
    - putenv
    - strchr
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void tests_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/tests/unit/eval_context_test.c:28,1
    - Dst: system
      Src: /src/core/tests/unit/eval_context_test.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: tests_teardown
    functionSourceFile: /src/core/tests/unit/eval_context_test.c
    functionUses: 9
    functionsReached:
    - system
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void tests_teardown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/eval_context_test.c:34,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:40,1
    - Dst: OpenDB
      Src: /src/core/tests/unit/eval_context_test.c:40,1
    - Dst: WriteDB
      Src: /src/core/tests/unit/eval_context_test.c:45,1
    - Dst: CloseDB
      Src: /src/core/tests/unit/eval_context_test.c:47,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/tests/unit/eval_context_test.c:51,1
    - Dst: PolicyNew
      Src: /src/core/tests/unit/eval_context_test.c:55,1
    - Dst: PolicyAppendBundle
      Src: /src/core/tests/unit/eval_context_test.c:56,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/tests/unit/eval_context_test.c:58,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/tests/unit/eval_context_test.c:59,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/tests/unit/eval_context_test.c:60,1
    - Dst: PolicyDestroy
      Src: /src/core/tests/unit/eval_context_test.c:62,1
    - Dst: EvalContextHeapPersistentLoadAll
      Src: /src/core/tests/unit/eval_context_test.c:65,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/eval_context_test.c:68,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:71,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/eval_context_test.c:73,1
    - Dst: StringSetSize
      Src: /src/core/tests/unit/eval_context_test.c:73,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:74,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/eval_context_test.c:74,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/eval_context_test.c:78,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:79,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:81,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/eval_context_test.c:83,1
    - Dst: StringSetSize
      Src: /src/core/tests/unit/eval_context_test.c:83,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:84,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/eval_context_test.c:84,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:85,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/eval_context_test.c:85,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:86,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/eval_context_test.c:86,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/eval_context_test.c:90,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:91,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:93,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:94,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/eval_context_test.c:96,1
    - Dst: StringSetSize
      Src: /src/core/tests/unit/eval_context_test.c:96,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:97,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/eval_context_test.c:97,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:98,1
    - Dst: StringSetContains
      Src: /src/core/tests/unit/eval_context_test.c:98,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/eval_context_test.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 102
    functionName: test_class_persistence
    functionSourceFile: /src/core/tests/unit/eval_context_test.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - EvalContextStackPushBundleFrame
    - assert_int_equal
    - EvalContextDestroy
    - PolicyNew
    - EvalContextStackPopFrame
    - StringSetContains
    - OpenDB
    - assert_true
    - StringSetSize
    - EvalContextHeapPersistentLoadAll
    - EvalContextNew
    - EvalContextClassGet
    - assert_string_equal
    - CloseDB
    - WriteDB
    - PolicyAppendBundle
    - EvalContextHeapPersistentSave
    linkageType: ''
    returnType: void
    signature: void test_class_persistence(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetChangesChroot
      Src: /src/core/tests/unit/eval_context_test.c:107,1
    - Dst: ToChangesChroot
      Src: /src/core/tests/unit/eval_context_test.c:110,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:111,1
    - Dst: ToChangesChroot
      Src: /src/core/tests/unit/eval_context_test.c:114,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:115,1
    - Dst: ToChangesChroot
      Src: /src/core/tests/unit/eval_context_test.c:118,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:119,1
    - Dst: ToNormalRoot
      Src: /src/core/tests/unit/eval_context_test.c:123,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 126
    functionName: test_changes_chroot
    functionSourceFile: /src/core/tests/unit/eval_context_test.c
    functionUses: 0
    functionsReached:
    - ToChangesChroot
    - assert_string_equal
    - SetChangesChroot
    - ToNormalRoot
    linkageType: ''
    returnType: void
    signature: void test_changes_chroot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/tests/unit/eval_context_test.c:136,1
    - Dst: GetTimeClasses
      Src: /src/core/tests/unit/eval_context_test.c:138,1
    - Dst: StringMapIteratorInit
      Src: /src/core/tests/unit/eval_context_test.c:139,1
    - Dst: StringMapIteratorNext
      Src: /src/core/tests/unit/eval_context_test.c:141,1
    - Dst: StringSetAdd
      Src: /src/core/tests/unit/eval_context_test.c:142,1
    - Dst: SafeStringDuplicate
      Src: /src/core/tests/unit/eval_context_test.c:142,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:145,1
    - Dst: EvalWithTokenFromList
      Src: /src/core/tests/unit/eval_context_test.c:145,1
    - Dst: assert_false
      Src: /src/core/tests/unit/eval_context_test.c:146,1
    - Dst: EvalWithTokenFromList
      Src: /src/core/tests/unit/eval_context_test.c:146,1
    - Dst: assert_false
      Src: /src/core/tests/unit/eval_context_test.c:147,1
    - Dst: EvalWithTokenFromList
      Src: /src/core/tests/unit/eval_context_test.c:147,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:148,1
    - Dst: EvalWithTokenFromList
      Src: /src/core/tests/unit/eval_context_test.c:148,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:149,1
    - Dst: EvalWithTokenFromList
      Src: /src/core/tests/unit/eval_context_test.c:149,1
    - Dst: StringMapDestroy
      Src: /src/core/tests/unit/eval_context_test.c:151,1
    - Dst: StringSetDestroy
      Src: /src/core/tests/unit/eval_context_test.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 153
    functionName: test_eval_with_token_from_list
    functionSourceFile: /src/core/tests/unit/eval_context_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - GetTimeClasses
    - SafeStringDuplicate
    - StringMapDestroy
    - assert_true
    - StringSetDestroy
    - StringMapIteratorNext
    - StringSetNew
    - EvalWithTokenFromList
    - StringMapIteratorInit
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void test_eval_with_token_from_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/eval_context_test.c:157,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/tests/unit/eval_context_test.c:160,1
    - Dst: EvalContextHeapPersistentLoadAll
      Src: /src/core/tests/unit/eval_context_test.c:164,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/eval_context_test.c:167,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:168,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:169,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/tests/unit/eval_context_test.c:176,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/eval_context_test.c:181,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:182,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:183,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/tests/unit/eval_context_test.c:188,1
    - Dst: EvalContextClassGet
      Src: /src/core/tests/unit/eval_context_test.c:192,1
    - Dst: assert_true
      Src: /src/core/tests/unit/eval_context_test.c:193,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/eval_context_test.c:194,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/eval_context_test.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 198
    functionName: test_persistent_class_timer_policy
    functionSourceFile: /src/core/tests/unit/eval_context_test.c
    functionUses: 0
    functionsReached:
    - EvalContextDestroy
    - assert_true
    - EvalContextHeapPersistentLoadAll
    - EvalContextNew
    - EvalContextClassGet
    - assert_string_equal
    - EvalContextHeapPersistentSave
    linkageType: ''
    returnType: void
    signature: void test_persistent_class_timer_policy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/eval_context_test.c:202,1
    - Dst: tests_setup
      Src: /src/core/tests/unit/eval_context_test.c:203,1
    - Dst: unit_test
      Src: /src/core/tests/unit/eval_context_test.c:207,1
    - Dst: unit_test
      Src: /src/core/tests/unit/eval_context_test.c:208,1
    - Dst: unit_test
      Src: /src/core/tests/unit/eval_context_test.c:209,1
    - Dst: unit_test
      Src: /src/core/tests/unit/eval_context_test.c:210,1
    - Dst: run_tests
      Src: /src/core/tests/unit/eval_context_test.c:213,1
    - Dst: tests_teardown
      Src: /src/core/tests/unit/eval_context_test.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 218
    functionName: main
    functionSourceFile: /src/core/tests/unit/eval_context_test.c
    functionUses: 0
    functionsReached:
    - tests_setup
    - unit_test
    - run_tests
    - tests_teardown
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/tests/unit/new_packages_promise_test.c:9,1
    - Dst: SafeStringDuplicate
      Src: /src/core/tests/unit/new_packages_promise_test.c:10,1
    - Dst: RlistCopy
      Src: /src/core/tests/unit/new_packages_promise_test.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - name
    - updates_ifel
    - installed_ifel
    - options
    argTypes:
    - char*
    - int
    - int
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 15
    functionName: make_mock_package_module
    functionSourceFile: /src/core/tests/unit/new_packages_promise_test.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - RlistCopy
    - SafeStringDuplicate
    linkageType: ''
    returnType: PackageModuleBody
    signature: PackageModuleBody *make_mock_package_module(const char *name, int updates_ifel,
      int installed_ifel, Rlist *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/new_packages_promise_test.c:19,1
    - Dst: make_mock_package_module
      Src: /src/core/tests/unit/new_packages_promise_test.c:21,1
    - Dst: AddPackageModuleToContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:22,1
    - Dst: make_mock_package_module
      Src: /src/core/tests/unit/new_packages_promise_test.c:24,1
    - Dst: AddPackageModuleToContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:25,1
    - Dst: GetPackagePromiseContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:27,1
    - Dst: assert_true
      Src: /src/core/tests/unit/new_packages_promise_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/new_packages_promise_test.c:30,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/new_packages_promise_test.c:30,1
    - Dst: GetPackageModuleFromContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:32,1
    - Dst: assert_true
      Src: /src/core/tests/unit/new_packages_promise_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/new_packages_promise_test.c:34,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/new_packages_promise_test.c:35,1
    - Dst: make_mock_package_module
      Src: /src/core/tests/unit/new_packages_promise_test.c:38,1
    - Dst: AddPackageModuleToContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/new_packages_promise_test.c:41,1
    - Dst: SeqLength
      Src: /src/core/tests/unit/new_packages_promise_test.c:41,1
    - Dst: GetPackageModuleFromContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:44,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/new_packages_promise_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/new_packages_promise_test.c:46,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/new_packages_promise_test.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 49
    functionName: test_add_module_to_context
    functionSourceFile: /src/core/tests/unit/new_packages_promise_test.c
    functionUses: 0
    functionsReached:
    - AddPackageModuleToContext
    - assert_int_equal
    - EvalContextDestroy
    - GetPackagePromiseContext
    - GetPackageModuleFromContext
    - assert_true
    - EvalContextNew
    - SeqLength
    - make_mock_package_module
    linkageType: ''
    returnType: void
    signature: void test_add_module_to_context()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/new_packages_promise_test.c:53,1
    - Dst: make_mock_package_module
      Src: /src/core/tests/unit/new_packages_promise_test.c:55,1
    - Dst: AddPackageModuleToContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:56,1
    - Dst: make_mock_package_module
      Src: /src/core/tests/unit/new_packages_promise_test.c:58,1
    - Dst: AddPackageModuleToContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:59,1
    - Dst: make_mock_package_module
      Src: /src/core/tests/unit/new_packages_promise_test.c:61,1
    - Dst: AddPackageModuleToContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:62,1
    - Dst: AddDefaultPackageModuleToContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:64,1
    - Dst: GetDefaultPackageModuleFromContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:65,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/new_packages_promise_test.c:66,1
    - Dst: AddDefaultPackageModuleToContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:68,1
    - Dst: GetDefaultPackageModuleFromContext
      Src: /src/core/tests/unit/new_packages_promise_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/new_packages_promise_test.c:70,1
    - Dst: EvalContextDestroy
      Src: /src/core/tests/unit/new_packages_promise_test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 73
    functionName: test_default_package_module_settings
    functionSourceFile: /src/core/tests/unit/new_packages_promise_test.c
    functionUses: 0
    functionsReached:
    - AddPackageModuleToContext
    - EvalContextDestroy
    - EvalContextNew
    - assert_string_equal
    - make_mock_package_module
    - AddDefaultPackageModuleToContext
    - GetDefaultPackageModuleFromContext
    linkageType: ''
    returnType: void
    signature: void test_default_package_module_settings()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/new_packages_promise_test.c:78,1
    - Dst: unit_test
      Src: /src/core/tests/unit/new_packages_promise_test.c:82,1
    - Dst: unit_test
      Src: /src/core/tests/unit/new_packages_promise_test.c:83,1
    - Dst: run_tests
      Src: /src/core/tests/unit/new_packages_promise_test.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: main
    functionSourceFile: /src/core/tests/unit/new_packages_promise_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/tests/unit/split_process_line_test.c:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strings
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 14
    functionName: free_and_null_strings
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_and_null_strings(char **strings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/tests/unit/split_process_line_test.c:30,1
    - Dst: memset
      Src: /src/core/tests/unit/split_process_line_test.c:31,1
    - Dst: GetProcessColumnNames
      Src: /src/core/tests/unit/split_process_line_test.c:34,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:35,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:36,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:38,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:39,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:40,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:43,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 45
    functionName: test_split_line_challenges
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - free_and_null_strings
    - GetProcessColumnNames
    - assert_string_equal
    - SplitProcLine
    - memset
    linkageType: ''
    returnType: void
    signature: void test_split_line_challenges(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessColumnNames
      Src: /src/core/tests/unit/split_process_line_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:65,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:66,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:68,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:68,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:71,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:73,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:74,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:74,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:75,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:77,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:80,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 82
    functionName: test_split_line_elapsed
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - free_and_null_strings
    - GetProcessColumnNames
    - assert_string_equal
    - SplitProcLine
    linkageType: ''
    returnType: void
    signature: void test_split_line_elapsed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessColumnNames
      Src: /src/core/tests/unit/split_process_line_test.c:100,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:101,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:102,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:104,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:104,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:105,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:107,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:109,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:110,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:110,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:111,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:113,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:116,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 118
    functionName: test_split_line_noelapsed
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - free_and_null_strings
    - GetProcessColumnNames
    - assert_string_equal
    - SplitProcLine
    linkageType: ''
    returnType: void
    signature: void test_split_line_noelapsed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessColumnNames
      Src: /src/core/tests/unit/split_process_line_test.c:195,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:196,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:197,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:199,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:199,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:200,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:202,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:205,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 207
    functionName: test_split_line_longcmd
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - free_and_null_strings
    - GetProcessColumnNames
    - assert_string_equal
    - SplitProcLine
    linkageType: ''
    returnType: void
    signature: void test_split_line_longcmd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessColumnNames
      Src: /src/core/tests/unit/split_process_line_test.c:245,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:246,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:247,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:248,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:249,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:250,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/split_process_line_test.c:251,1
    - Dst: assert_false
      Src: /src/core/tests/unit/split_process_line_test.c:255,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:255,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:257,1
    - Dst: assert_false
      Src: /src/core/tests/unit/split_process_line_test.c:258,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:258,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:260,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:261,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:261,1
    - Dst: assert_in_range
      Src: /src/core/tests/unit/split_process_line_test.c:270,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:272,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:273,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:281,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:282,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:282,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:283,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:285,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:287,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:288,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:288,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:289,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:291,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:293,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:294,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:294,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:296,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:298,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:300,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:301,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:301,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:303,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:305,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:307,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:308,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:308,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:309,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:311,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:313,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:315,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:316,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:316,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:317,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:319,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:321,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:322,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:324,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:325,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:325,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:326,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:328,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:329,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:331,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:333,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:334,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:334,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:335,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:337,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:338,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:340,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:342,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:343,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:343,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:344,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:346,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:348,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:349,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:351,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:352,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:352,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:353,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/split_process_line_test.c:354,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:358,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:359,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:361,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:363,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:364,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/split_process_line_test.c:366,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:368,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 370
    functionName: test_split_line
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - assert_true
    - free_and_null_strings
    - assert_in_range
    - GetProcessColumnNames
    - assert_string_equal
    - SplitProcLine
    linkageType: ''
    returnType: void
    signature: void test_split_line(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessColumnNames
      Src: /src/core/tests/unit/split_process_line_test.c:395,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:396,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:397,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:398,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:399,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:400,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/split_process_line_test.c:401,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:405,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:405,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:406,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:407,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:408,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:409,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:410,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:411,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:415,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:415,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:416,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:417,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:418,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:419,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:420,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:421,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:425,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:425,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:426,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:427,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:428,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:429,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:430,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:431,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 434
    functionName: test_split_line_serious_overspill
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_true
    - free_and_null_strings
    - GetProcessColumnNames
    - assert_string_equal
    - SplitProcLine
    linkageType: ''
    returnType: void
    signature: void test_split_line_serious_overspill(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/tests/unit/split_process_line_test.c:447,1
    - Dst: fclose
      Src: /src/core/tests/unit/split_process_line_test.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 452
    functionName: ListWriter
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - fclose
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *ListWriter(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearPlatformExtraTable
      Src: /src/core/tests/unit/split_process_line_test.c:486,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/split_process_line_test.c:488,1
    - Dst: pipe
      Src: /src/core/tests/unit/split_process_line_test.c:488,1
    - Dst: fdopen
      Src: /src/core/tests/unit/split_process_line_test.c:490,1
    - Dst: pthread_attr_init
      Src: /src/core/tests/unit/split_process_line_test.c:495,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/core/tests/unit/split_process_line_test.c:496,1
    - Dst: pthread_create
      Src: /src/core/tests/unit/split_process_line_test.c:498,1
    - Dst: pthread_attr_destroy
      Src: /src/core/tests/unit/split_process_line_test.c:499,1
    - Dst: fdopen
      Src: /src/core/tests/unit/split_process_line_test.c:501,1
    - Dst: StringMapNew
      Src: /src/core/tests/unit/split_process_line_test.c:503,1
    - Dst: ReadFromUcbPsPipe
      Src: /src/core/tests/unit/split_process_line_test.c:504,1
    - Dst: GetProcessColumnNames
      Src: /src/core/tests/unit/split_process_line_test.c:507,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:508,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:509,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:510,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:511,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:512,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/split_process_line_test.c:513,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:517,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:517,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:518,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:519,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:520,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:521,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:522,1
    - Dst: ApplyPlatformExtraTable
      Src: /src/core/tests/unit/split_process_line_test.c:524,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:526,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:527,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:528,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:529,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:530,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:531,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:535,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:535,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:536,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:537,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:538,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:539,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:540,1
    - Dst: ApplyPlatformExtraTable
      Src: /src/core/tests/unit/split_process_line_test.c:542,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:544,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:545,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:546,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:547,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:548,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:549,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:553,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:553,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:554,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:555,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:556,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:557,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:558,1
    - Dst: ApplyPlatformExtraTable
      Src: /src/core/tests/unit/split_process_line_test.c:560,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:562,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:563,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:564,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:565,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:566,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:567,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:571,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:571,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:572,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:573,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:574,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:575,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:576,1
    - Dst: ApplyPlatformExtraTable
      Src: /src/core/tests/unit/split_process_line_test.c:578,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:580,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:581,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:582,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:583,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:584,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:585,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:589,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:589,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:590,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:591,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:592,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:593,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:594,1
    - Dst: ApplyPlatformExtraTable
      Src: /src/core/tests/unit/split_process_line_test.c:596,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:598,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:599,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:600,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:601,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:602,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:603,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:607,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:607,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:608,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:609,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:610,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:611,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:612,1
    - Dst: ApplyPlatformExtraTable
      Src: /src/core/tests/unit/split_process_line_test.c:614,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:616,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:617,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:618,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:619,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:620,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:621,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:623,1
    - Dst: fclose
      Src: /src/core/tests/unit/split_process_line_test.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 625
    functionName: test_platform_extra_table
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - fdopen
    - pthread_attr_init
    - pthread_create
    - SplitProcLine
    - assert_true
    - pthread_attr_destroy
    - ClearPlatformExtraTable
    - free_and_null_strings
    - pthread_attr_setdetachstate
    - ReadFromUcbPsPipe
    - GetProcessColumnNames
    - assert_string_equal
    - ApplyPlatformExtraTable
    - pipe
    - fclose
    - StringMapNew
    linkageType: ''
    returnType: void
    signature: void test_platform_extra_table(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/tests/unit/split_process_line_test.c:781,1
    - Dst: memset
      Src: /src/core/tests/unit/split_process_line_test.c:782,1
    - Dst: GetProcessColumnNames
      Src: /src/core/tests/unit/split_process_line_test.c:801,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:806,1
    - Dst: SplitProcLine
      Src: /src/core/tests/unit/split_process_line_test.c:806,1
    - Dst: assert_int_not_equal
      Src: /src/core/tests/unit/split_process_line_test.c:821,1
    - Dst: assert_false
      Src: /src/core/tests/unit/split_process_line_test.c:822,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/split_process_line_test.c:824,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/split_process_line_test.c:827,1
    - Dst: assert_false
      Src: /src/core/tests/unit/split_process_line_test.c:840,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:846,1
    - Dst: assert_true
      Src: /src/core/tests/unit/split_process_line_test.c:862,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/split_process_line_test.c:870,1
    - Dst: printf
      Src: /src/core/tests/unit/split_process_line_test.c:879,1
    - Dst: fwrite
      Src: /src/core/tests/unit/split_process_line_test.c:880,1
    - Dst: printf
      Src: /src/core/tests/unit/split_process_line_test.c:881,1
    - Dst: assert_memory_equal
      Src: /src/core/tests/unit/split_process_line_test.c:885,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/split_process_line_test.c:889,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:897,1
    - Dst: free_and_null_strings
      Src: /src/core/tests/unit/split_process_line_test.c:900,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 902
    functionName: test_platform_specific_ps_examples
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - assert_true
    - assert_int_not_equal
    - printf
    - free_and_null_strings
    - fwrite
    - GetProcessColumnNames
    - assert_string_equal
    - assert_memory_equal
    - SplitProcLine
    - memset
    linkageType: ''
    returnType: void
    signature: void test_platform_specific_ps_examples(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/split_process_line_test.c:906,1
    - Dst: unit_test
      Src: /src/core/tests/unit/split_process_line_test.c:909,1
    - Dst: unit_test
      Src: /src/core/tests/unit/split_process_line_test.c:910,1
    - Dst: unit_test
      Src: /src/core/tests/unit/split_process_line_test.c:911,1
    - Dst: unit_test
      Src: /src/core/tests/unit/split_process_line_test.c:912,1
    - Dst: unit_test
      Src: /src/core/tests/unit/split_process_line_test.c:913,1
    - Dst: unit_test
      Src: /src/core/tests/unit/split_process_line_test.c:914,1
    - Dst: unit_test
      Src: /src/core/tests/unit/split_process_line_test.c:915,1
    - Dst: unit_test
      Src: /src/core/tests/unit/split_process_line_test.c:916,1
    - Dst: run_tests
      Src: /src/core/tests/unit/split_process_line_test.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 920
    functionName: main
    functionSourceFile: /src/core/tests/unit/split_process_line_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextNew
      Src: /src/core/tests/unit/item_lib_test.c:10,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/item_lib_test.c:14,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_lib_test.c:15,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:15,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/item_lib_test.c:18,1
    - Dst: PrependItem
      Src: /src/core/tests/unit/item_lib_test.c:19,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_lib_test.c:22,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:22,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_lib_test.c:23,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:23,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_lib_test.c:24,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:24,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_lib_test.c:26,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:26,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_lib_test.c:27,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:27,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_lib_test.c:28,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:28,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_lib_test.c:30,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:30,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_lib_test.c:32,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:32,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_lib_test.c:33,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:33,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_lib_test.c:34,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:34,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_lib_test.c:36,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:36,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_lib_test.c:37,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:37,1
    - Dst: assert_false
      Src: /src/core/tests/unit/item_lib_test.c:38,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:38,1
    - Dst: assert_true
      Src: /src/core/tests/unit/item_lib_test.c:40,1
    - Dst: MatchRegion
      Src: /src/core/tests/unit/item_lib_test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 41
    functionName: test_match_region
    functionSourceFile: /src/core/tests/unit/item_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - EvalContextNew
    - PrependItem
    - MatchRegion
    linkageType: ''
    returnType: void
    signature: void test_match_region(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/item_lib_test.c:46,1
    - Dst: run_tests
      Src: /src/core/tests/unit/item_lib_test.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: main
    functionSourceFile: /src/core/tests/unit/item_lib_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:18,1
    - Dst: VariableTablePut
      Src: /src/core/tests/unit/variable_test.c:20,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - table
    - var_str
    argTypes:
    - VariableTable*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: PutVar
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - VarRefDestroy
    - VariableTablePut
    - VarRefParse
    linkageType: ''
    returnType: bool
    signature: bool PutVar(VariableTable *table, char *var_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VariableTableNew
      Src: /src/core/tests/unit/variable_test.c:27,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:29,1
    - Dst: PutVar
      Src: /src/core/tests/unit/variable_test.c:29,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:30,1
    - Dst: PutVar
      Src: /src/core/tests/unit/variable_test.c:30,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:31,1
    - Dst: PutVar
      Src: /src/core/tests/unit/variable_test.c:31,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:33,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:35,1
    - Dst: VariableTablePut
      Src: /src/core/tests/unit/variable_test.c:35,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:36,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:39,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:41,1
    - Dst: VariableTablePut
      Src: /src/core/tests/unit/variable_test.c:41,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:42,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:45,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:47,1
    - Dst: VariableTablePut
      Src: /src/core/tests/unit/variable_test.c:47,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:48,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:51,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:53,1
    - Dst: VariableTablePut
      Src: /src/core/tests/unit/variable_test.c:53,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:54,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:58,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:60,1
    - Dst: VariableTablePut
      Src: /src/core/tests/unit/variable_test.c:60,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:61,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:64,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:66,1
    - Dst: VariableTablePut
      Src: /src/core/tests/unit/variable_test.c:66,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:67,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:70,1
    - Dst: PutVar
      Src: /src/core/tests/unit/variable_test.c:70,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:71,1
    - Dst: PutVar
      Src: /src/core/tests/unit/variable_test.c:71,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:72,1
    - Dst: PutVar
      Src: /src/core/tests/unit/variable_test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 75
    functionName: ReferenceTable
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - VariableTableNew
    - assert_false
    - VarRefDestroy
    - PutVar
    - VariableTablePut
    - VarRefParse
    linkageType: ''
    returnType: VariableTable
    signature: VariableTable *ReferenceTable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:79,1
    - Dst: VariableTableGet
      Src: /src/core/tests/unit/variable_test.c:80,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:82,1
    - Dst: VarRefCompare
      Src: /src/core/tests/unit/variable_test.c:82,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:83,1
    - Dst: RvalScalarValue
      Src: /src/core/tests/unit/variable_test.c:83,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - t
    - ref_str
    argTypes:
    - VariableTable*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: TestGet
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RvalScalarValue
    - assert_true
    - VarRefDestroy
    - VarRefParse
    - assert_string_equal
    - VariableTableGet
    - VarRefCompare
    linkageType: ''
    returnType: void
    signature: void TestGet(VariableTable *t, const char *ref_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:89,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:91,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:92,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:93,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: test_get_in_default_namespace
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - VariableTableDestroy
    - ReferenceTable
    - TestGet
    linkageType: ''
    returnType: void
    signature: void test_get_in_default_namespace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:101,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:103,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:104,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: test_multi_index_array_conflation
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - VariableTableDestroy
    - ReferenceTable
    - TestGet
    linkageType: ''
    returnType: void
    signature: void test_multi_index_array_conflation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:111,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:113,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:114,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: test_get_different_namespaces
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - VariableTableDestroy
    - ReferenceTable
    - TestGet
    linkageType: ''
    returnType: void
    signature: void test_get_different_namespaces(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:121,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:123,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:124,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: test_get_indices
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - VariableTableDestroy
    - ReferenceTable
    - TestGet
    linkageType: ''
    returnType: void
    signature: void test_get_indices(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:131,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:133,1
    - Dst: TestGet
      Src: /src/core/tests/unit/variable_test.c:134,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:137,1
    - Dst: VariableTablePut
      Src: /src/core/tests/unit/variable_test.c:137,1
    - Dst: VariableTableGet
      Src: /src/core/tests/unit/variable_test.c:139,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:140,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:141,1
    - Dst: RvalScalarValue
      Src: /src/core/tests/unit/variable_test.c:141,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:143,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: test_replace
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - ReferenceTable
    - TestGet
    - RvalScalarValue
    - assert_true
    - VarRefDestroy
    - VarRefParse
    - VariableTablePut
    - assert_string_equal
    - VariableTableDestroy
    - VariableTableGet
    linkageType: ''
    returnType: void
    signature: void test_replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:150,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:153,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:154,1
    - Dst: VariableTableRemove
      Src: /src/core/tests/unit/variable_test.c:154,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:155,1
    - Dst: VariableTableGet
      Src: /src/core/tests/unit/variable_test.c:155,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:156,1
    - Dst: VariableTableRemove
      Src: /src/core/tests/unit/variable_test.c:156,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:158,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:158,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:160,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:164,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:165,1
    - Dst: VariableTableRemove
      Src: /src/core/tests/unit/variable_test.c:165,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:166,1
    - Dst: VariableTableGet
      Src: /src/core/tests/unit/variable_test.c:166,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:167,1
    - Dst: VariableTableRemove
      Src: /src/core/tests/unit/variable_test.c:167,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:169,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:169,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:171,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: test_remove
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - ReferenceTable
    - assert_true
    - VariableTableRemove
    - VarRefDestroy
    - VariableTableCount
    - VarRefParse
    - VariableTableDestroy
    - VariableTableGet
    linkageType: ''
    returnType: void
    signature: void test_remove(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:180,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:181,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:181,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:182,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:182,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:183,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:183,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:184,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:184,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:185,1
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:189,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:190,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:190,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:191,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:191,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:192,1
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:196,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:197,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:197,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:198,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:198,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:199,1
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:203,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:204,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:204,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:205,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:205,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:206,1
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:210,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:211,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:211,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:212,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:212,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:213,1
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:217,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:218,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:218,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:219,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:219,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:220,1
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:224,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:225,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:225,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:226,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:226,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:227,1
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:231,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:232,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:232,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:233,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:233,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:234,1
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:238,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:239,1
    - Dst: VariableTableClear
      Src: /src/core/tests/unit/variable_test.c:239,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:240,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:240,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 243
    functionName: test_clear
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - ReferenceTable
    - assert_true
    - VariableTableClear
    - VariableTableCount
    - VariableTableDestroy
    linkageType: ''
    returnType: void
    signature: void test_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:247,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:249,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:249,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:250,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:250,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:251,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:251,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:252,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:252,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:253,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:253,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:254,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:254,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:255,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:255,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:256,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:256,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:257,1
    - Dst: VariableTableCount
      Src: /src/core/tests/unit/variable_test.c:257,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: test_counting
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - VariableTableDestroy
    - assert_int_equal
    - VariableTableCount
    - ReferenceTable
    linkageType: ''
    returnType: void
    signature: void test_counting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:264,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:267,1
    - Dst: VariableTableIteratorNewFromVarRef
      Src: /src/core/tests/unit/variable_test.c:268,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:271,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:275,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/tests/unit/variable_test.c:277,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:278,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:282,1
    - Dst: VariableTableIteratorNewFromVarRef
      Src: /src/core/tests/unit/variable_test.c:283,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:286,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:291,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/tests/unit/variable_test.c:293,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:294,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 298
    functionName: test_iterate_indices
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ReferenceTable
    - VariableTableIteratorNewFromVarRef
    - VarRefDestroy
    - VariableTableIteratorDestroy
    - VarRefParse
    - VariableTableIteratorNext
    - VariableTableDestroy
    linkageType: ''
    returnType: void
    signature: void test_iterate_indices(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReferenceTable
      Src: /src/core/tests/unit/variable_test.c:306,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:309,1
    - Dst: VariableTableIteratorNewFromVarRef
      Src: /src/core/tests/unit/variable_test.c:310,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:312,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:313,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:314,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:315,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:317,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:318,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:319,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:320,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:321,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:323,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:324,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:325,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:326,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:327,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:329,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:330,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:331,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:332,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:334,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:334,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/tests/unit/variable_test.c:336,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:337,1
    - Dst: VarRefParse
      Src: /src/core/tests/unit/variable_test.c:341,1
    - Dst: VariableTableIteratorNewFromVarRef
      Src: /src/core/tests/unit/variable_test.c:342,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:344,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:345,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:346,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:347,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:349,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:350,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:351,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:352,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:353,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:355,1
    - Dst: assert_true
      Src: /src/core/tests/unit/variable_test.c:356,1
    - Dst: assert_int_equal
      Src: /src/core/tests/unit/variable_test.c:357,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:358,1
    - Dst: assert_string_equal
      Src: /src/core/tests/unit/variable_test.c:359,1
    - Dst: assert_false
      Src: /src/core/tests/unit/variable_test.c:361,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/tests/unit/variable_test.c:361,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/tests/unit/variable_test.c:363,1
    - Dst: VarRefDestroy
      Src: /src/core/tests/unit/variable_test.c:364,1
    - Dst: VariableTableDestroy
      Src: /src/core/tests/unit/variable_test.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 368
    functionName: test_iterate_indices_ordering_related
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - ReferenceTable
    - VariableTableIteratorNewFromVarRef
    - assert_true
    - VarRefDestroy
    - VariableTableIteratorDestroy
    - VarRefParse
    - VariableTableIteratorNext
    - assert_string_equal
    - VariableTableDestroy
    linkageType: ''
    returnType: void
    signature: void test_iterate_indices_ordering_related(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/tests/unit/variable_test.c:373,1
    - Dst: unit_test
      Src: /src/core/tests/unit/variable_test.c:376,1
    - Dst: unit_test
      Src: /src/core/tests/unit/variable_test.c:377,1
    - Dst: unit_test
      Src: /src/core/tests/unit/variable_test.c:378,1
    - Dst: unit_test
      Src: /src/core/tests/unit/variable_test.c:380,1
    - Dst: unit_test
      Src: /src/core/tests/unit/variable_test.c:381,1
    - Dst: unit_test
      Src: /src/core/tests/unit/variable_test.c:382,1
    - Dst: unit_test
      Src: /src/core/tests/unit/variable_test.c:383,1
    - Dst: unit_test
      Src: /src/core/tests/unit/variable_test.c:384,1
    - Dst: unit_test
      Src: /src/core/tests/unit/variable_test.c:385,1
    - Dst: run_tests
      Src: /src/core/tests/unit/variable_test.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 389
    functionName: main
    functionSourceFile: /src/core/tests/unit/variable_test.c
    functionUses: 0
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getzoneid
      Src: /src/core/libenv/zones.c:40,1
    - Dst: getzonenamebyid
      Src: /src/core/libenv/zones.c:41,1
    - Dst: strcmp
      Src: /src/core/libenv/zones.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: IsGlobalZone
    functionSourceFile: /src/core/libenv/zones.c
    functionUses: 0
    functionsReached:
    - getzoneid
    - strcmp
    - getzonenamebyid
    linkageType: ''
    returnType: bool
    signature: bool IsGlobalZone()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/core/libenv/zones.c:56,1
    - Dst: getzoneid
      Src: /src/core/libenv/zones.c:65,1
    - Dst: getzonenamebyid
      Src: /src/core/libenv/zones.c:66,1
    - Dst: strcmp
      Src: /src/core/libenv/zones.c:68,1
    - Dst: StringStartsWith
      Src: /src/core/libenv/zones.c:70,1
    - Dst: isspace
      Src: /src/core/libenv/zones.c:70,1
    - Dst: strlen
      Src: /src/core/libenv/zones.c:73,1
    - Dst: isspace
      Src: /src/core/libenv/zones.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 87
    functionName: ForeignZone
    functionSourceFile: /src/core/libenv/zones.c
    functionUses: 0
    functionsReached:
    - getzonenamebyid
    - strlen
    - strstr
    - getzoneid
    - isspace
    - strcmp
    - StringStartsWith
    linkageType: ''
    returnType: bool
    signature: bool ForeignZone(char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getzoneid
      Src: /src/core/libenv/zones.c:97,1
    - Dst: getzonenamebyid
      Src: /src/core/libenv/zones.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - ZONE_ONLY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: CurrentZoneName
    functionSourceFile: /src/core/libenv/zones.c
    functionUses: 0
    functionsReached:
    - getzoneid
    - getzonenamebyid
    linkageType: ''
    returnType: int
    signature: int CurrentZoneName(ZONE_ONLY char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromSplitString
      Src: /src/core/libenv/time_classes.c:31,1
    - Dst: EvalContextClassTableIteratorNewGlobal
      Src: /src/core/libenv/time_classes.c:32,1
    - Dst: ClassesMatching
      Src: /src/core/libenv/time_classes.c:33,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libenv/time_classes.c:34,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libenv/time_classes.c:36,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libenv/time_classes.c:38,1
    - Dst: EvalContextClassRemove
      Src: /src/core/libenv/time_classes.c:40,1
    - Dst: StringSetDestroy
      Src: /src/core/libenv/time_classes.c:43,1
    - Dst: RlistDestroy
      Src: /src/core/libenv/time_classes.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - tags
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: RemoveTimeClass
    functionSourceFile: /src/core/libenv/time_classes.c
    functionUses: 0
    functionsReached:
    - StringSetIteratorNext
    - StringSetDestroy
    - RlistFromSplitString
    - ClassesMatching
    - RlistDestroy
    - StringSetIteratorInit
    - EvalContextClassRemove
    - ClassTableIteratorDestroy
    - EvalContextClassTableIteratorNewGlobal
    linkageType: ''
    returnType: void
    signature: void RemoveTimeClass(EvalContext *ctx, const char* tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libenv/time_classes.c:51,1
    - Dst: va_start
      Src: /src/core/libenv/time_classes.c:54,1
    - Dst: xvasprintf
      Src: /src/core/libenv/time_classes.c:57,1
    - Dst: assert
      Src: /src/core/libenv/time_classes.c:58,1
    - Dst: va_end
      Src: /src/core/libenv/time_classes.c:60,1
    - Dst: StringMapInsert
      Src: /src/core/libenv/time_classes.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - classes
    - prefix
    - type
    - fmt
    argTypes:
    - StringMap*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (ret >= 0)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/libenv/time_classes.c
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: InsertTimeClassF
    functionSourceFile: /src/core/libenv/time_classes.c
    functionUses: 0
    functionsReached:
    - va_start
    - assert
    - StringMapInsert
    - va_end
    - xasprintf
    - xvasprintf
    linkageType: ''
    returnType: void
    signature: void InsertTimeClassF(StringMap *classes, const char *prefix, const
      char *type, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/core/libenv/time_classes.c:71,1
    - Dst: gmtime_r
      Src: /src/core/libenv/time_classes.c:72,1
    - Dst: StringMapNew
      Src: /src/core/libenv/time_classes.c:75,1
    - Dst: Log
      Src: /src/core/libenv/time_classes.c:83,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/time_classes.c:83,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:88,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:91,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:95,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:104,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:108,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:112,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:116,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:117,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:123,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:124,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:128,1
    - Dst: InsertTimeClassF
      Src: /src/core/libenv/time_classes.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 137
    functionName: GetTimeClasses
    functionSourceFile: /src/core/libenv/time_classes.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - localtime_r
    - Log
    - gmtime_r
    - StringMapNew
    - InsertTimeClassF
    linkageType: ''
    returnType: StringMap
    signature: StringMap *GetTimeClasses(time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetTimeClasses
      Src: /src/core/libenv/time_classes.c:141,1
    - Dst: StringMapIteratorInit
      Src: /src/core/libenv/time_classes.c:146,1
    - Dst: StringMapIteratorNext
      Src: /src/core/libenv/time_classes.c:148,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/time_classes.c:149,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/time_classes.c:150,1
    - Dst: StringMapDestroy
      Src: /src/core/libenv/time_classes.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - time
    - tags
    argTypes:
    - EvalContext*
    - time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: AddTimeClass
    functionSourceFile: /src/core/libenv/time_classes.c
    functionUses: 0
    functionsReached:
    - EvalContextClassPutHard
    - GetTimeClasses
    - StringMapDestroy
    - StringMapIteratorNext
    - EvalContextVariablePutSpecial
    - StringMapIteratorInit
    linkageType: ''
    returnType: void
    signature: void AddTimeClass(EvalContext *ctx, time_t time, const char* tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RemoveTimeClass
      Src: /src/core/libenv/time_classes.c:158,1
    - Dst: AddTimeClass
      Src: /src/core/libenv/time_classes.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - t
    argTypes:
    - EvalContext*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: UpdateTimeClasses
    functionSourceFile: /src/core/libenv/time_classes.c
    functionUses: 0
    functionsReached:
    - RemoveTimeClass
    - AddTimeClass
    linkageType: ''
    returnType: void
    signature: void UpdateTimeClasses(EvalContext *ctx, time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: SIZEOF_IFREQ
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZEOF_IFREQ(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: SIZEOF_IFREQ
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZEOF_IFREQ(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: SIZEOF_IFREQ
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZEOF_IFREQ(x)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:145,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:145,1
    - Dst: ioctl
      Src: /src/core/libenv/unix_iface.c:156,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:158,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/unix_iface.c:158,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:162,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:170,1
    - Dst: RlistContainsString
      Src: /src/core/libenv/unix_iface.c:171,1
    - Dst: RlistAppend
      Src: /src/core/libenv/unix_iface.c:173,1
    - Dst: RlistContainsString
      Src: /src/core/libenv/unix_iface.c:175,1
    - Dst: RlistAppend
      Src: /src/core/libenv/unix_iface.c:177,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:180,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:180,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:181,1
    - Dst: getifaddrs
      Src: /src/core/libenv/unix_iface.c:188,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:190,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:193,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:194,1
    - Dst: strcmp
      Src: /src/core/libenv/unix_iface.c:199,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:203,1
    - Dst: LLADDR
      Src: /src/core/libenv/unix_iface.c:210,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:223,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:227,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:235,1
    - Dst: RlistContainsString
      Src: /src/core/libenv/unix_iface.c:236,1
    - Dst: RlistAppend
      Src: /src/core/libenv/unix_iface.c:238,1
    - Dst: RlistAppend
      Src: /src/core/libenv/unix_iface.c:240,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:242,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:242,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:243,1
    - Dst: freeifaddrs
      Src: /src/core/libenv/unix_iface.c:247,1
    - Dst: aix_get_mac_addr
      Src: /src/core/libenv/unix_iface.c:253,1
    - Dst: sprintf
      Src: /src/core/libenv/unix_iface.c:255,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:258,1
    - Dst: RlistContainsString
      Src: /src/core/libenv/unix_iface.c:260,1
    - Dst: RlistAppend
      Src: /src/core/libenv/unix_iface.c:262,1
    - Dst: RlistContainsString
      Src: /src/core/libenv/unix_iface.c:264,1
    - Dst: RlistAppend
      Src: /src/core/libenv/unix_iface.c:266,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:269,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:269,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:270,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:274,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:275,1
    - Dst: ioctl
      Src: /src/core/libenv/unix_iface.c:285,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:291,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/unix_iface.c:293,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:294,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:297,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:303,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:311,1
    - Dst: RlistContainsString
      Src: /src/core/libenv/unix_iface.c:315,1
    - Dst: RlistAppend
      Src: /src/core/libenv/unix_iface.c:317,1
    - Dst: RlistContainsString
      Src: /src/core/libenv/unix_iface.c:320,1
    - Dst: RlistAppend
      Src: /src/core/libenv/unix_iface.c:322,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:325,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:325,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:326,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:330,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:333,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 86
    argCount: 6
    argNames:
    - ctx
    - int
    - ifr
    - ifp
    - interfaces
    - hardware
    argTypes:
    - EvalContext*
    - ARG_UNUSED
    - struct ifreq*
    - struct ifreq*
    - Rlist**
    - Rlist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 335
    functionName: GetMacAddress
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ioctl
    - LLADDR
    - freeifaddrs
    - EvalContextClassPutHard
    - snprintf
    - RlistAppend
    - getifaddrs
    - aix_get_mac_addr
    - Log
    - strcmp
    - RlistContainsString
    - EvalContextVariablePutSpecial
    - CanonifyName
    - sprintf
    linkageType: ''
    returnType: void
    signature: "void GetMacAddress(EvalContext *ctx, ARG_UNUSED int fd, struct ifreq
      *ifr, struct ifreq *ifp, Rlist **interfaces,\n                          Rlist
      **hardware)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:345,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:347,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:348,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:349,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:350,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:351,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:354,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:357,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:358,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:359,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:360,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:361,1
    - Dst: strlen
      Src: /src/core/libenv/unix_iface.c:364,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:368,1
    - Dst: RlistAppend
      Src: /src/core/libenv/unix_iface.c:369,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - ifr
    - flags
    argTypes:
    - EvalContext*
    - struct ifreq*
    - Rlist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 371
    functionName: GetInterfaceFlags
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - RlistAppend
    - strcat
    - EvalContextVariablePutSpecial
    linkageType: ''
    returnType: void
    signature: void GetInterfaceFlags(EvalContext *ctx, struct ifreq *ifr, Rlist **flags)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextDeleteIpAddresses
      Src: /src/core/libenv/unix_iface.c:389,1
    - Dst: memset
      Src: /src/core/libenv/unix_iface.c:391,1
    - Dst: InitIgnoreInterfaces
      Src: /src/core/libenv/unix_iface.c:393,1
    - Dst: socket
      Src: /src/core/libenv/unix_iface.c:395,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:397,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/unix_iface.c:397,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libenv/unix_iface.c:398,1
    - Dst: ioctl
      Src: /src/core/libenv/unix_iface.c:412,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:415,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/unix_iface.c:417,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libenv/unix_iface.c:418,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:423,1
    - Dst: SIZEOF_IFREQ
      Src: /src/core/libenv/unix_iface.c:432,1
    - Dst: SIZEOF_IFREQ
      Src: /src/core/libenv/unix_iface.c:432,1
    - Dst: strlen
      Src: /src/core/libenv/unix_iface.c:440,1
    - Dst: IgnoreInterface
      Src: /src/core/libenv/unix_iface.c:447,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:453,1
    - Dst: strcmp
      Src: /src/core/libenv/unix_iface.c:459,1
    - Dst: strcpy
      Src: /src/core/libenv/unix_iface.c:461,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:462,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:465,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:465,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:466,1
    - Dst: strlcpy
      Src: /src/core/libenv/unix_iface.c:471,1
    - Dst: ioctl
      Src: /src/core/libenv/unix_iface.c:473,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:475,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/unix_iface.c:475,1
    - Dst: GetInterfaceFlags
      Src: /src/core/libenv/unix_iface.c:480,1
    - Dst: IgnoreJailInterface
      Src: /src/core/libenv/unix_iface.c:487,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:489,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/unix_iface.c:495,1
    - Dst: getnameinfo
      Src: /src/core/libenv/unix_iface.c:497,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:501,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:502,1
    - Dst: strcmp
      Src: /src/core/libenv/unix_iface.c:504,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:508,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/unix_iface.c:509,1
    - Dst: strcpy
      Src: /src/core/libenv/unix_iface.c:510,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:511,1
    - Dst: EvalContextAddIpAddress
      Src: /src/core/libenv/unix_iface.c:512,1
    - Dst: RlistAppendScalar
      Src: /src/core/libenv/unix_iface.c:513,1
    - Dst: strlen
      Src: /src/core/libenv/unix_iface.c:515,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:520,1
    - Dst: strcpy
      Src: /src/core/libenv/unix_iface.c:524,1
    - Dst: strlen
      Src: /src/core/libenv/unix_iface.c:527,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:532,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:532,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:533,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/unix_iface.c:539,1
    - Dst: strcpy
      Src: /src/core/libenv/unix_iface.c:540,1
    - Dst: strcat
      Src: /src/core/libenv/unix_iface.c:541,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:542,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:550,1
    - Dst: strcpy
      Src: /src/core/libenv/unix_iface.c:552,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:553,1
    - Dst: EvalContextAddIpAddress
      Src: /src/core/libenv/unix_iface.c:558,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:558,1
    - Dst: RlistAppendScalar
      Src: /src/core/libenv/unix_iface.c:559,1
    - Dst: strlen
      Src: /src/core/libenv/unix_iface.c:561,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:566,1
    - Dst: strcpy
      Src: /src/core/libenv/unix_iface.c:572,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:574,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:574,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:576,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:579,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:581,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:581,1
    - Dst: strlen
      Src: /src/core/libenv/unix_iface.c:585,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:591,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:591,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:593,1
    - Dst: GetMacAddress
      Src: /src/core/libenv/unix_iface.c:599,1
    - Dst: close
      Src: /src/core/libenv/unix_iface.c:603,1
    - Dst: FindV6InterfacesInfo
      Src: /src/core/libenv/unix_iface.c:605,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:610,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:616,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:622,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:628,1
    - Dst: RlistDestroy
      Src: /src/core/libenv/unix_iface.c:632,1
    - Dst: RlistDestroy
      Src: /src/core/libenv/unix_iface.c:633,1
    - Dst: RlistDestroy
      Src: /src/core/libenv/unix_iface.c:634,1
    - Dst: RlistDestroy
      Src: /src/core/libenv/unix_iface.c:635,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 131
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 636
    functionName: GetInterfacesInfo
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - RlistAppendScalar
    - IgnoreInterface
    - Log
    - GetInterfaceFlags
    - strlcpy
    - close
    - EvalContextDeleteIpAddresses
    - snprintf
    - strlen
    - nt_static_assert
    - strcat
    - strcmp
    - RlistDestroy
    - CanonifyName
    - socket
    - SIZEOF_IFREQ
    - strcpy
    - memset
    - getnameinfo
    - EvalContextAddIpAddress
    - GetErrorStr
    - DoCleanupAndExit
    - ioctl
    - GetMacAddress
    - EvalContextClassPutHard
    - InitIgnoreInterfaces
    - FindV6InterfacesInfo
    - EvalContextVariablePutSpecial
    - IgnoreJailInterface
    linkageType: ''
    returnType: void
    signature: void GetInterfacesInfo(EvalContext *ctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libenv/unix_iface.c:642,1
    - Dst: assert
      Src: /src/core/libenv/unix_iface.c:643,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:654,1
    - Dst: cf_popen
      Src: /src/core/libenv/unix_iface.c:660,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:662,1
    - Dst: cf_popen
      Src: /src/core/libenv/unix_iface.c:666,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:668,1
    - Dst: FileCanOpen
      Src: /src/core/libenv/unix_iface.c:672,1
    - Dst: cf_popen
      Src: /src/core/libenv/unix_iface.c:672,1
    - Dst: FileCanOpen
      Src: /src/core/libenv/unix_iface.c:673,1
    - Dst: cf_popen
      Src: /src/core/libenv/unix_iface.c:673,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:675,1
    - Dst: fgets
      Src: /src/core/libenv/unix_iface.c:687,1
    - Dst: ferror
      Src: /src/core/libenv/unix_iface.c:689,1
    - Dst: UnexpectedError
      Src: /src/core/libenv/unix_iface.c:691,1
    - Dst: isspace
      Src: /src/core/libenv/unix_iface.c:700,1
    - Dst: strchr
      Src: /src/core/libenv/unix_iface.c:703,1
    - Dst: assert
      Src: /src/core/libenv/unix_iface.c:708,1
    - Dst: StringCopy
      Src: /src/core/libenv/unix_iface.c:710,1
    - Dst: assert
      Src: /src/core/libenv/unix_iface.c:716,1
    - Dst: assert
      Src: /src/core/libenv/unix_iface.c:720,1
    - Dst: assert
      Src: /src/core/libenv/unix_iface.c:721,1
    - Dst: IgnoreInterface
      Src: /src/core/libenv/unix_iface.c:725,1
    - Dst: TrimWhitespace
      Src: /src/core/libenv/unix_iface.c:732,1
    - Dst: StringStartsWith
      Src: /src/core/libenv/unix_iface.c:733,1
    - Dst: SeqStringFromString
      Src: /src/core/libenv/unix_iface.c:736,1
    - Dst: SeqLength
      Src: /src/core/libenv/unix_iface.c:737,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:741,1
    - Dst: SeqAt
      Src: /src/core/libenv/unix_iface.c:747,1
    - Dst: RlistContainsString
      Src: /src/core/libenv/unix_iface.c:749,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:751,1
    - Dst: RlistAppendString
      Src: /src/core/libenv/unix_iface.c:756,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:760,1
    - Dst: CanonifyName
      Src: /src/core/libenv/unix_iface.c:764,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:766,1
    - Dst: SeqDestroy
      Src: /src/core/libenv/unix_iface.c:776,1
    - Dst: strcasestr
      Src: /src/core/libenv/unix_iface.c:779,1
    - Dst: SplitStringAsItemList
      Src: /src/core/libenv/unix_iface.c:784,1
    - Dst: IsIPV6Address
      Src: /src/core/libenv/unix_iface.c:796,1
    - Dst: strcmp
      Src: /src/core/libenv/unix_iface.c:796,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:799,1
    - Dst: IgnoreInterface
      Src: /src/core/libenv/unix_iface.c:802,1
    - Dst: EvalContextAddIpAddress
      Src: /src/core/libenv/unix_iface.c:804,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:806,1
    - Dst: xsnprintf
      Src: /src/core/libenv/unix_iface.c:811,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:816,1
    - Dst: RlistAppendString
      Src: /src/core/libenv/unix_iface.c:822,1
    - Dst: RlistContainsString
      Src: /src/core/libenv/unix_iface.c:824,1
    - Dst: RlistAppendString
      Src: /src/core/libenv/unix_iface.c:827,1
    - Dst: DeleteItemList
      Src: /src/core/libenv/unix_iface.c:833,1
    - Dst: cf_pclose
      Src: /src/core/libenv/unix_iface.c:837,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 77
    argCount: 4
    argNames:
    - ctx
    - interfaces
    - hardware
    - ips
    argTypes:
    - EvalContext*
    - Rlist**
    - Rlist**
    - Rlist**
    assertStmts:
    - condition: (bytes_to_copy <= sizeof(current_interface))
      pos:
        line_end: 707
        line_start: 707
        source_file: /src/core/libenv/unix_iface.c
    - condition: (src_length == bytes_to_copy)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/core/libenv/unix_iface.c
    - condition: (ifconfig_line[dst_length] == ':')
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/core/libenv/unix_iface.c
    - condition: (interfaces != NULL)
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/core/libenv/unix_iface.c
    - condition: (current_interface[dst_length] == '\0')
      pos:
        line_end: 720
        line_start: 720
        source_file: /src/core/libenv/unix_iface.c
    - condition: (hardware != NULL)
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/core/libenv/unix_iface.c
    constantsTouched: []
    func_position:
      end: 838
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 838
    functionName: FindV6InterfacesInfo
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 1
    functionsReached:
    - IgnoreInterface
    - Log
    - RlistContainsString
    - SeqLength
    - SeqStringFromString
    - FileCanOpen
    - fgets
    - snprintf
    - cf_popen
    - SeqDestroy
    - SplitStringAsItemList
    - strchr
    - cf_pclose
    - strcmp
    - CanonifyName
    - TrimWhitespace
    - StringStartsWith
    - SeqAt
    - IsIPV6Address
    - strcasestr
    - assert
    - isspace
    - DeleteItemList
    - EvalContextAddIpAddress
    - EvalContextClassPutHard
    - StringCopy
    - UnexpectedError
    - RlistAppendString
    - xsnprintf
    - EvalContextVariablePutSpecial
    - ferror
    linkageType: ''
    returnType: void
    signature: void FindV6InterfacesInfo(EvalContext *ctx, Rlist **interfaces, Rlist
      **hardware, Rlist **ips)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:847,1
    - Dst: GetWorkDir
      Src: /src/core/libenv/unix_iface.c:851,1
    - Dst: assert
      Src: /src/core/libenv/unix_iface.c:854,1
    - Dst: fopen
      Src: /src/core/libenv/unix_iface.c:856,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:858,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/unix_iface.c:861,1
    - Dst: snprintf
      Src: /src/core/libenv/unix_iface.c:867,1
    - Dst: GetInputDir
      Src: /src/core/libenv/unix_iface.c:871,1
    - Dst: assert
      Src: /src/core/libenv/unix_iface.c:874,1
    - Dst: fopen
      Src: /src/core/libenv/unix_iface.c:876,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:878,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/unix_iface.c:881,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:885,1
    - Dst: GetInputDir
      Src: /src/core/libenv/unix_iface.c:889,1
    - Dst: GetWorkDir
      Src: /src/core/libenv/unix_iface.c:890,1
    - Dst: feof
      Src: /src/core/libenv/unix_iface.c:893,1
    - Dst: fscanf
      Src: /src/core/libenv/unix_iface.c:896,1
    - Dst: ferror
      Src: /src/core/libenv/unix_iface.c:897,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:899,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/unix_iface.c:902,1
    - Dst: RlistPrependScalarIdemp
      Src: /src/core/libenv/unix_iface.c:908,1
    - Dst: fclose
      Src: /src/core/libenv/unix_iface.c:912,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ret >= 0 && (size_t) ret < sizeof(filename))
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/core/libenv/unix_iface.c
    - condition: (ret >= 0 && (size_t) ret < sizeof(filename))
      pos:
        line_end: 873
        line_start: 873
        source_file: /src/core/libenv/unix_iface.c
    constantsTouched: []
    func_position:
      end: 913
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 913
    functionName: InitIgnoreInterfaces
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - RlistPrependScalarIdemp
    - fopen
    - snprintf
    - fscanf
    - assert
    - feof
    - Log
    - fclose
    - GetInputDir
    - ferror
    - GetWorkDir
    linkageType: ''
    returnType: void
    signature: void InitIgnoreInterfaces()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libenv/unix_iface.c:924,1
    - Dst: RlistScalarValue
      Src: /src/core/libenv/unix_iface.c:924,1
    - Dst: StringMatchFull
      Src: /src/core/libenv/unix_iface.c:925,1
    - Dst: RlistScalarValue
      Src: /src/core/libenv/unix_iface.c:925,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 933
    functionName: IgnoreInterface
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 2
    functionsReached:
    - StringMatchFull
    - Log
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool IgnoreInterface(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getkerninfo
      Src: /src/core/libenv/unix_iface.c:942,1
    - Dst: xmalloc
      Src: /src/core/libenv/unix_iface.c:949,1
    - Dst: getkerninfo
      Src: /src/core/libenv/unix_iface.c:956,1
    - Dst: strcmp
      Src: /src/core/libenv/unix_iface.c:968,1
    - Dst: strcmp
      Src: /src/core/libenv/unix_iface.c:969,1
    - Dst: memcpy
      Src: /src/core/libenv/unix_iface.c:971,1
    - Dst: free
      Src: /src/core/libenv/unix_iface.c:972,1
    - Dst: free
      Src: /src/core/libenv/unix_iface.c:976,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - device_name
    - mac
    argTypes:
    - char*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 979
    functionName: aix_get_mac_addr
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 1
    functionsReached:
    - memcpy
    - xmalloc
    - getkerninfo
    - strcmp
    - free
    linkageType: ''
    returnType: int
    signature: int aix_get_mac_addr(const char *device_name, uint8_t mac[6])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferNewFrom
      Src: /src/core/libenv/unix_iface.c:986,1
    - Dst: strlen
      Src: /src/core/libenv/unix_iface.c:986,1
    - Dst: IPAddressNewHex
      Src: /src/core/libenv/unix_iface.c:989,1
    - Dst: BufferDestroy
      Src: /src/core/libenv/unix_iface.c:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 994
    functionName: ParsedIPAddressHex
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - IPAddressNewHex
    - BufferDestroy
    - BufferNewFrom
    - strlen
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress * ParsedIPAddressHex(const char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ParsedIPAddressHex
      Src: /src/core/libenv/unix_iface.c:998,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:998,1
    - Dst: IPAddressGetAddress
      Src: /src/core/libenv/unix_iface.c:1001,1
    - Dst: JsonObjectRemoveKey
      Src: /src/core/libenv/unix_iface.c:1004,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/unix_iface.c:1007,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/unix_iface.c:1008,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1008,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1009,1
    - Dst: IPAddressGetPort
      Src: /src/core/libenv/unix_iface.c:1009,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/unix_iface.c:1010,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1010,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1011,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/unix_iface.c:1015,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1015,1
    - Dst: BufferDestroy
      Src: /src/core/libenv/unix_iface.c:1018,1
    - Dst: IPAddressDestroy
      Src: /src/core/libenv/unix_iface.c:1021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - element
    - raw_key
    - new_key
    - as_map
    argTypes:
    - JsonElement*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1023
    functionName: JsonRewriteParsedIPAddress
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - BufferData
    - IPAddressGetAddress
    - BufferDestroy
    - JsonObjectGetAsString
    - BufferPrintf
    - JsonObjectAppendElement
    - ParsedIPAddressHex
    - IPAddressDestroy
    - IPAddressGetPort
    - JsonObjectRemoveKey
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void JsonRewriteParsedIPAddress(JsonElement* element, const char* raw_key,
      const char *new_key, const bool as_map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libenv/unix_iface.c:1029,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1029,1
    - Dst: JsonObjectRemoveKey
      Src: /src/core/libenv/unix_iface.c:1036,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libenv/unix_iface.c:1041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - element
    - raw_key
    - new_key
    - hex_mode
    - keep_number
    argTypes:
    - JsonElement*
    - char*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1046
    functionName: JsonExtractParsedNumber
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - sscanf
    - JsonObjectGetAsString
    - JsonObjectAppendInteger
    - JsonObjectRemoveKey
    linkageType: ''
    returnType: long
    signature: long JsonExtractParsedNumber(JsonElement* element, const char* raw_key,
      const char *new_key, const bool hex_mode, const bool keep_number)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonRewriteParsedIPAddress
      Src: /src/core/libenv/unix_iface.c:1057,1
    - Dst: JsonRewriteParsedIPAddress
      Src: /src/core/libenv/unix_iface.c:1058,1
    - Dst: JsonRewriteParsedIPAddress
      Src: /src/core/libenv/unix_iface.c:1059,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1062,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1063,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1064,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1065,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1066,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1067,1
    - Dst: JsonArrayCreate
      Src: /src/core/libenv/unix_iface.c:1069,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1070,1
    - Dst: strcmp
      Src: /src/core/libenv/unix_iface.c:1075,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1075,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libenv/unix_iface.c:1080,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libenv/unix_iface.c:1081,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libenv/unix_iface.c:1082,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libenv/unix_iface.c:1083,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1084,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libenv/unix_iface.c:1085,1
    - Dst: BufferNew
      Src: /src/core/libenv/unix_iface.c:1089,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1090,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1090,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/unix_iface.c:1091,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1091,1
    - Dst: BufferDestroy
      Src: /src/core/libenv/unix_iface.c:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - passed_ctx
    - json
    argTypes:
    - ARG_LINUX_ONLY*
    - ARG_LINUX_ONLY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1050
    functionDepth: 3
    functionLinenumber: 1050
    functionLinenumberEnd: 1095
    functionName: NetworkingRoutesPostProcessInfo
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - BufferData
    - EvalContextClassPutHard
    - BufferDestroy
    - JsonObjectGetAsString
    - JsonObjectAppendElement
    - BufferPrintf
    - JsonExtractParsedNumber
    - strcmp
    - JsonRewriteParsedIPAddress
    - BufferNew
    - JsonObjectAppendBool
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: "void NetworkingRoutesPostProcessInfo(\n    ARG_LINUX_ONLY void *passed_ctx,
      ARG_LINUX_ONLY void *json)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonRewriteParsedIPAddress
      Src: /src/core/libenv/unix_iface.c:1103,1
    - Dst: JsonRewriteParsedIPAddress
      Src: /src/core/libenv/unix_iface.c:1104,1
    - Dst: JsonRewriteParsedIPAddress
      Src: /src/core/libenv/unix_iface.c:1105,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1107,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1108,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1109,1
    - Dst: JsonArrayCreate
      Src: /src/core/libenv/unix_iface.c:1111,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1112,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libenv/unix_iface.c:1121,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libenv/unix_iface.c:1122,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libenv/unix_iface.c:1123,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - passed_ctx
    - json
    argTypes:
    - ARG_UNUSED*
    - ARG_LINUX_ONLY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1097
    functionDepth: 3
    functionLinenumber: 1097
    functionLinenumberEnd: 1130
    functionName: NetworkingIPv6RoutesPostProcessInfo
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendElement
    - JsonExtractParsedNumber
    - JsonRewriteParsedIPAddress
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: "void NetworkingIPv6RoutesPostProcessInfo(\n    ARG_UNUSED void *passed_ctx,
      ARG_LINUX_ONLY void *json)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonRewriteParsedIPAddress
      Src: /src/core/libenv/unix_iface.c:1136,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1138,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1139,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - passed_ctx
    - json
    argTypes:
    - ARG_UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1132
    functionDepth: 3
    functionLinenumber: 1132
    functionLinenumberEnd: 1141
    functionName: NetworkingIPv6AddressesPostProcessInfo
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - JsonExtractParsedNumber
    - JsonRewriteParsedIPAddress
    linkageType: ''
    returnType: void
    signature: void NetworkingIPv6AddressesPostProcessInfo(ARG_UNUSED void *passed_ctx,
      void *json)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/core/libenv/unix_iface.c:1153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - address
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1170
    functionName: RankIPv6Address
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: unsigned
    signature: unsigned RankIPv6Address(const char *address)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1174,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1175,1
    - Dst: RankIPv6Address
      Src: /src/core/libenv/unix_iface.c:1177,1
    - Dst: RankIPv6Address
      Src: /src/core/libenv/unix_iface.c:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - prev_item
    - this_item
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1185
    functionName: NetworkingIPv6AddressesTiebreaker
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - JsonObjectGetAsString
    - RankIPv6Address
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *NetworkingIPv6AddressesTiebreaker(JsonElement *prev_item,
      JsonElement *this_item)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - state
    argTypes:
    - ARG_LINUX_ONLY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1209
    functionName: GetPortStateString
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * GetPortStateString(ARG_LINUX_ONLY int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JsonRewriteParsedIPAddress
      Src: /src/core/libenv/unix_iface.c:1219,1
    - Dst: JsonRewriteParsedIPAddress
      Src: /src/core/libenv/unix_iface.c:1220,1
    - Dst: JsonExtractParsedNumber
      Src: /src/core/libenv/unix_iface.c:1222,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1224,1
    - Dst: JsonObjectRemoveKey
      Src: /src/core/libenv/unix_iface.c:1226,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/unix_iface.c:1227,1
    - Dst: GetPortStateString
      Src: /src/core/libenv/unix_iface.c:1227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - passed_ctx
    - json
    argTypes:
    - ARG_UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1213
    functionDepth: 3
    functionLinenumber: 1213
    functionLinenumberEnd: 1230
    functionName: NetworkingPortsPostProcessInfo
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - JsonObjectGetAsString
    - JsonObjectRemoveKey
    - JsonExtractParsedNumber
    - JsonRewriteParsedIPAddress
    - GetPortStateString
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void NetworkingPortsPostProcessInfo(ARG_UNUSED void *passed_ctx, void
      *json)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libenv/unix_iface.c:1237,1
    - Dst: safe_fopen
      Src: /src/core/libenv/unix_iface.c:1239,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:1242,1
    - Dst: xmalloc
      Src: /src/core/libenv/unix_iface.c:1244,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/unix_iface.c:1245,1
    - Dst: CfReadLine
      Src: /src/core/libenv/unix_iface.c:1247,1
    - Dst: strchr
      Src: /src/core/libenv/unix_iface.c:1249,1
    - Dst: strlen
      Src: /src/core/libenv/unix_iface.c:1251,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/unix_iface.c:1253,1
    - Dst: BufferNewFrom
      Src: /src/core/libenv/unix_iface.c:1254,1
    - Dst: BufferSize
      Src: /src/core/libenv/unix_iface.c:1255,1
    - Dst: RlistFromSplitString
      Src: /src/core/libenv/unix_iface.c:1256,1
    - Dst: xmalloc
      Src: /src/core/libenv/unix_iface.c:1258,1
    - Dst: CfReadLine
      Src: /src/core/libenv/unix_iface.c:1259,1
    - Dst: strlen
      Src: /src/core/libenv/unix_iface.c:1261,1
    - Dst: RlistFromSplitString
      Src: /src/core/libenv/unix_iface.c:1263,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/unix_iface.c:1268,1
    - Dst: RlistScalarValue
      Src: /src/core/libenv/unix_iface.c:1268,1
    - Dst: RlistScalarValue
      Src: /src/core/libenv/unix_iface.c:1268,1
    - Dst: RlistDestroy
      Src: /src/core/libenv/unix_iface.c:1270,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1274,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1274,1
    - Dst: free
      Src: /src/core/libenv/unix_iface.c:1276,1
    - Dst: RlistDestroy
      Src: /src/core/libenv/unix_iface.c:1277,1
    - Dst: BufferDestroy
      Src: /src/core/libenv/unix_iface.c:1278,1
    - Dst: free
      Src: /src/core/libenv/unix_iface.c:1283,1
    - Dst: fclose
      Src: /src/core/libenv/unix_iface.c:1285,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:1289,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts:
    - condition: (filename)
      pos:
        line_end: 1236
        line_start: 1236
        source_file: /src/core/libenv/unix_iface.c
    constantsTouched: []
    func_position:
      end: 1293
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1293
    functionName: GetNetworkingStatsInfo
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - Log
    - fclose
    - RlistScalarValue
    - free
    - BufferData
    - strlen
    - strchr
    - RlistDestroy
    - BufferSize
    - JsonObjectCreate
    - CfReadLine
    - BufferNewFrom
    - assert
    - xmalloc
    - JsonObjectAppendString
    - JsonObjectAppendElement
    - safe_fopen
    - RlistFromSplitString
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * GetNetworkingStatsInfo(const char *filename)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libenv/unix_iface.c:1305,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:1308,1
    - Dst: CompileRegex
      Src: /src/core/libenv/unix_iface.c:1310,1
    - Dst: xmalloc
      Src: /src/core/libenv/unix_iface.c:1314,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/unix_iface.c:1316,1
    - Dst: JsonArrayCreate
      Src: /src/core/libenv/unix_iface.c:1316,1
    - Dst: CfReadLine
      Src: /src/core/libenv/unix_iface.c:1318,1
    - Dst: StringCaptureData
      Src: /src/core/libenv/unix_iface.c:1320,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1331,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:1335,1
    - Dst: JsonObjectGet
      Src: /src/core/libenv/unix_iface.c:1339,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:1341,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:1349,1
    - Dst: JsonDestroy
      Src: /src/core/libenv/unix_iface.c:1351,1
    - Dst: Log
      Src: /src/core/libenv/unix_iface.c:1356,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1362,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libenv/unix_iface.c:1368,1
    - Dst: free
      Src: /src/core/libenv/unix_iface.c:1373,1
    - Dst: BufferNew
      Src: /src/core/libenv/unix_iface.c:1377,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1378,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:1379,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1379,1
    - Dst: BufferDestroy
      Src: /src/core/libenv/unix_iface.c:1381,1
    - Dst: RegexDestroy
      Src: /src/core/libenv/unix_iface.c:1384,1
    - Dst: fclose
      Src: /src/core/libenv/unix_iface.c:1387,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 7
    argNames:
    - ctx
    - filename
    - key
    - extracted_key
    - post
    - tiebreak
    - pattern
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - ProcPostProcessFn
    - ProcTiebreakerFn
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1391
    functionName: GetProcFileInfo
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - BufferPrintf
    - Log
    - fclose
    - BufferNew
    - free
    - JsonObjectGet
    - BufferData
    - StringCaptureData
    - CompileRegex
    - JsonArrayAppendElement
    - JsonObjectCreate
    - CfReadLine
    - JsonObjectGetAsString
    - RegexDestroy
    - xmalloc
    - JsonDestroy
    - JsonObjectAppendElement
    - safe_fopen
    - EvalContextVariablePutSpecial
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * GetProcFileInfo(EvalContext *ctx, const char* filename,
      const char* key, const char* extracted_key, ProcPostProcessFn post, ProcTiebreakerFn
      tiebreak, const char* pattern)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GetRelocatedProcdirRoot
      Src: /src/core/libenv/unix_iface.c:1397,1
    - Dst: GetProcdirPid
      Src: /src/core/libenv/unix_iface.c:1398,1
    - Dst: BufferNew
      Src: /src/core/libenv/unix_iface.c:1400,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/unix_iface.c:1402,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1404,1
    - Dst: GetNetworkingStatsInfo
      Src: /src/core/libenv/unix_iface.c:1405,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1405,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1409,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1412,1
    - Dst: GetProcFileInfo
      Src: /src/core/libenv/unix_iface.c:1413,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1413,1
    - Dst: JsonGetElementType
      Src: /src/core/libenv/unix_iface.c:1419,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1421,1
    - Dst: JsonIteratorInit
      Src: /src/core/libenv/unix_iface.c:1423,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libenv/unix_iface.c:1427,1
    - Dst: JsonObjectGet
      Src: /src/core/libenv/unix_iface.c:1429,1
    - Dst: JsonGetElementType
      Src: /src/core/libenv/unix_iface.c:1431,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libenv/unix_iface.c:1432,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libenv/unix_iface.c:1433,1
    - Dst: JsonObjectGet
      Src: /src/core/libenv/unix_iface.c:1435,1
    - Dst: JsonGetElementType
      Src: /src/core/libenv/unix_iface.c:1437,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libenv/unix_iface.c:1438,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/libenv/unix_iface.c:1440,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/unix_iface.c:1449,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1449,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1450,1
    - Dst: JsonCopy
      Src: /src/core/libenv/unix_iface.c:1450,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:1454,1
    - Dst: JsonDestroy
      Src: /src/core/libenv/unix_iface.c:1456,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/unix_iface.c:1458,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1460,1
    - Dst: GetProcFileInfo
      Src: /src/core/libenv/unix_iface.c:1461,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1461,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/unix_iface.c:1467,1
    - Dst: JsonLength
      Src: /src/core/libenv/unix_iface.c:1467,1
    - Dst: JsonIteratorInit
      Src: /src/core/libenv/unix_iface.c:1468,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libenv/unix_iface.c:1470,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1473,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/unix_iface.c:1474,1
    - Dst: sscanf
      Src: /src/core/libenv/unix_iface.c:1476,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libenv/unix_iface.c:1478,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1482,1
    - Dst: JsonDestroy
      Src: /src/core/libenv/unix_iface.c:1483,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1486,1
    - Dst: GetProcFileInfo
      Src: /src/core/libenv/unix_iface.c:1487,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1487,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1498,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1501,1
    - Dst: GetProcFileInfo
      Src: /src/core/libenv/unix_iface.c:1502,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1502,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1513,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/unix_iface.c:1516,1
    - Dst: JsonDestroy
      Src: /src/core/libenv/unix_iface.c:1518,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1524,1
    - Dst: GetProcFileInfo
      Src: /src/core/libenv/unix_iface.c:1526,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1526,1
    - Dst: JsonDestroy
      Src: /src/core/libenv/unix_iface.c:1545,1
    - Dst: BufferDestroy
      Src: /src/core/libenv/unix_iface.c:1546,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1395
    functionDepth: 2
    functionLinenumber: 1395
    functionLinenumberEnd: 1547
    functionName: GetNetworkingInfo
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - BufferPrintf
    - BufferNew
    - JsonObjectGet
    - JsonGetPrimitiveType
    - BufferData
    - GetNetworkingStatsInfo
    - GetProcFileInfo
    - JsonCopy
    - JsonGetElementType
    - sscanf
    - JsonObjectCreate
    - JsonIteratorInit
    - GetProcdirPid
    - JsonObjectGetAsString
    - JsonPrimitiveGetAsInteger
    - JsonObjectAppendString
    - JsonPrimitiveGetAsBool
    - JsonLength
    - JsonDestroy
    - JsonObjectAppendElement
    - JsonObjectAppendInteger
    - GetRelocatedProcdirRoot
    - EvalContextVariablePutSpecial
    - JsonIteratorNextValue
    linkageType: ''
    returnType: void
    signature: void GetNetworkingInfo(EvalContext *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetRelocatedProcdirRoot
      Src: /src/core/libenv/unix_iface.c:1551,1
    - Dst: GetProcdirPid
      Src: /src/core/libenv/unix_iface.c:1552,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/unix_iface.c:1553,1
    - Dst: BufferNew
      Src: /src/core/libenv/unix_iface.c:1557,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1559,1
    - Dst: GetProcFileInfo
      Src: /src/core/libenv/unix_iface.c:1560,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1560,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1563,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1566,1
    - Dst: GetProcFileInfo
      Src: /src/core/libenv/unix_iface.c:1567,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1567,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1570,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1573,1
    - Dst: GetProcFileInfo
      Src: /src/core/libenv/unix_iface.c:1574,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1574,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1577,1
    - Dst: BufferPrintf
      Src: /src/core/libenv/unix_iface.c:1580,1
    - Dst: GetProcFileInfo
      Src: /src/core/libenv/unix_iface.c:1581,1
    - Dst: BufferData
      Src: /src/core/libenv/unix_iface.c:1581,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libenv/unix_iface.c:1584,1
    - Dst: BufferDestroy
      Src: /src/core/libenv/unix_iface.c:1586,1
    - Dst: JsonLength
      Src: /src/core/libenv/unix_iface.c:1588,1
    - Dst: JsonDestroy
      Src: /src/core/libenv/unix_iface.c:1591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1549
    functionDepth: 2
    functionLinenumber: 1549
    functionLinenumberEnd: 1596
    functionName: GetNetworkingConnections
    functionSourceFile: /src/core/libenv/unix_iface.c
    functionUses: 0
    functionsReached:
    - BufferData
    - GetProcdirPid
    - BufferDestroy
    - JsonLength
    - JsonDestroy
    - GetProcFileInfo
    - BufferPrintf
    - JsonObjectAppendElement
    - GetRelocatedProcdirRoot
    - BufferNew
    - JsonObjectCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * GetNetworkingConnections(EvalContext *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:309,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:311,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:315,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:318,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:318,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:318,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:321,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:321,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:322,1
    - Dst: strchr
      Src: /src/core/libenv/sysinfo.c:328,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:332,1
    - Dst: MIN
      Src: /src/core/libenv/sysinfo.c:332,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:333,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:337,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 8
    argNames:
    - nodename
    - dnsname
    - fqname
    - fqname_size
    - uqname
    - uqname_size
    - domain
    - domain_size
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 341
    functionName: CalculateDomainName
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 8
    functionsReached:
    - strncmp
    - strlen
    - strstr
    - MIN
    - strchr
    - strlcpy
    linkageType: ''
    returnType: void
    signature: "void CalculateDomainName(const char *nodename, const char *dnsname,\n
      \                        char *fqname, size_t fqname_size,\n                         char
      *uqname, size_t uqname_size,\n                         char *domain, size_t
      domain_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:349,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libenv/sysinfo.c:350,1
    - Dst: gethostname
      Src: /src/core/libenv/sysinfo.c:355,1
    - Dst: gethostbyname
      Src: /src/core/libenv/sysinfo.c:359,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:361,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libenv/sysinfo.c:362,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:366,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:367,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:368,1
    - Dst: CalculateDomainName
      Src: /src/core/libenv/sysinfo.c:369,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:376,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:378,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:381,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:383,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:385,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:388,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:402,1
    - Dst: strchr
      Src: /src/core/libenv/sysinfo.c:404,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:411,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:412,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:414,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:415,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:416,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - orig_nodename
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 418
    functionName: DetectDomainName
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - nt_static_assert
    - CalculateDomainName
    - ToLowerStrInplace
    - strlen
    - gethostbyname
    - gethostname
    - strchr
    - Log
    - EvalContextVariablePutSpecial
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void DetectDomainName(EvalContext *ctx, const char *orig_nodename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:428,1
    - Dst: Version
      Src: /src/core/libenv/sysinfo.c:428,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:430,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:431,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:432,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:433,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:434,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:435,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:439,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:440,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:441,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:444,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:446,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:448,1
    - Dst: GetWorkDir
      Src: /src/core/libenv/sysinfo.c:448,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 450
    functionName: DiscoverVersion
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - snprintf
    - Version
    - sscanf
    - EvalContextVariablePutSpecial
    - GetWorkDir
    linkageType: ''
    returnType: void
    signature: void DiscoverVersion(EvalContext *ctx)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: GetWorkDir
      Src: /src/core/libenv/sysinfo.c:460,1
    - Dst: GetBinDir
      Src: /src/core/libenv/sysinfo.c:461,1
    - Dst: GetModuleDir
      Src: /src/core/libenv/sysinfo.c:462,1
    - Dst: GetKeyDir
      Src: /src/core/libenv/sysinfo.c:463,1
    - Dst: uname
      Src: /src/core/libenv/sysinfo.c:483,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:485,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/sysinfo.c:485,1
    - Dst: memset
      Src: /src/core/libenv/sysinfo.c:486,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:490,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:491,1
    - Dst: strcpy
      Src: /src/core/libenv/sysinfo.c:497,1
    - Dst: strcpy
      Src: /src/core/libenv/sysinfo.c:503,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libenv/sysinfo.c:506,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libenv/sysinfo.c:507,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:513,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:516,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:519,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:529,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:531,1
    - Dst: DetectDomainName
      Src: /src/core/libenv/sysinfo.c:535,1
    - Dst: time
      Src: /src/core/libenv/sysinfo.c:537,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:539,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:543,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:544,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:545,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:546,1
    - Dst: GetUptimeMinutes
      Src: /src/core/libenv/sysinfo.c:547,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:550,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:551,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:559,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libenv/sysinfo.c:560,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:563,1
    - Dst: StringMatchFull
      Src: /src/core/libenv/sysinfo.c:564,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:566,1
    - Dst: StringMatchFull
      Src: /src/core/libenv/sysinfo.c:567,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:569,1
    - Dst: StringMatchFull
      Src: /src/core/libenv/sysinfo.c:570,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:572,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:578,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:583,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:589,1
    - Dst: NameVersion
      Src: /src/core/libenv/sysinfo.c:589,1
    - Dst: Banner
      Src: /src/core/libenv/sysinfo.c:590,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:592,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:594,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:595,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:596,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:597,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:598,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:599,1
    - Dst: ctime
      Src: /src/core/libenv/sysinfo.c:599,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:601,1
    - Dst: ctime
      Src: /src/core/libenv/sysinfo.c:601,1
    - Dst: Chop
      Src: /src/core/libenv/sysinfo.c:602,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:604,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:605,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:605,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:606,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:607,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:608,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:609,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:610,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:611,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:612,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:613,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:614,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:615,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:616,1
    - Dst: GetLogDir
      Src: /src/core/libenv/sysinfo.c:616,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:617,1
    - Dst: GetPidDir
      Src: /src/core/libenv/sysinfo.c:617,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:618,1
    - Dst: GetStateDir
      Src: /src/core/libenv/sysinfo.c:618,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:619,1
    - Dst: GetMasterDir
      Src: /src/core/libenv/sysinfo.c:619,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:620,1
    - Dst: GetInputDir
      Src: /src/core/libenv/sysinfo.c:620,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:621,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:623,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:624,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:626,1
    - Dst: GetInputDir
      Src: /src/core/libenv/sysinfo.c:626,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:627,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:629,1
    - Dst: GetInputDir
      Src: /src/core/libenv/sysinfo.c:629,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:630,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:632,1
    - Dst: GetInputDir
      Src: /src/core/libenv/sysinfo.c:632,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:633,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:636,1
    - Dst: Version
      Src: /src/core/libenv/sysinfo.c:636,1
    - Dst: DiscoverVersion
      Src: /src/core/libenv/sysinfo.c:638,1
    - Dst: HashPubKey
      Src: /src/core/libenv/sysinfo.c:644,1
    - Dst: HashPrintSafe
      Src: /src/core/libenv/sysinfo.c:645,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:648,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:650,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libenv/sysinfo.c:651,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:652,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:657,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:657,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:663,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:667,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:670,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:675,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:677,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:680,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:689,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:689,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:692,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:695,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:698,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:700,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:701,1
    - Dst: NovaWin_GetWinDir
      Src: /src/core/libenv/sysinfo.c:708,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:710,1
    - Dst: NovaWin_GetSysDir
      Src: /src/core/libenv/sysinfo.c:713,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:715,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:718,1
    - Dst: NovaWin_FileExists
      Src: /src/core/libenv/sysinfo.c:720,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:722,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:723,1
    - Dst: NovaWin_GetProgDir
      Src: /src/core/libenv/sysinfo.c:728,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:730,1
    - Dst: NovaWin_GetEnv
      Src: /src/core/libenv/sysinfo.c:735,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:737,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:742,1
    - Dst: EnterpriseContext
      Src: /src/core/libenv/sysinfo.c:747,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:749,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:750,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:751,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:751,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:753,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:754,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:756,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:757,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:757,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:759,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:760,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:761,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:761,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:763,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:764,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:765,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:765,1
    - Dst: sysinfo
      Src: /src/core/libenv/sysinfo.c:769,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:772,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:776,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:777,1
    - Dst: sysinfo
      Src: /src/core/libenv/sysinfo.c:781,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:784,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:788,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:789,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:794,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:797,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:799,1
    - Dst: xstrdup
      Src: /src/core/libenv/sysinfo.c:802,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:802,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:803,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:804,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:805,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:807,1
    - Dst: xstrdup
      Src: /src/core/libenv/sysinfo.c:808,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:808,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:809,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:810,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:811,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:815,1
    - Dst: strcpy
      Src: /src/core/libenv/sysinfo.c:820,1
    - Dst: strlcat
      Src: /src/core/libenv/sysinfo.c:822,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:822,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:824,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:825,1
    - Dst: gethostbyname
      Src: /src/core/libenv/sysinfo.c:829,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:831,1
    - Dst: memset
      Src: /src/core/libenv/sysinfo.c:836,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:838,1
    - Dst: inet_ntoa
      Src: /src/core/libenv/sysinfo.c:838,1
    - Dst: strcpy
      Src: /src/core/libenv/sysinfo.c:839,1
    - Dst: inet_ntoa
      Src: /src/core/libenv/sysinfo.c:839,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:843,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:844,1
    - Dst: getzoneid
      Src: /src/core/libenv/sysinfo.c:853,1
    - Dst: getzonenamebyid
      Src: /src/core/libenv/sysinfo.c:854,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:856,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:857,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:858,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:860,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:862,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:866,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 218
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 869
    functionName: GetNameInfo3
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - NovaWin_GetWinDir
    - Version
    - ToLowerStrInplace
    - HashPrintSafe
    - sysinfo
    - GetModuleDir
    - Log
    - NovaWin_FileExists
    - GetInputDir
    - free
    - EnterpriseContext
    - strlcpy
    - time
    - DetectDomainName
    - snprintf
    - NameVersion
    - strlen
    - getzonenamebyid
    - GetUptimeMinutes
    - GetKeyDir
    - gethostbyname
    - StringMatchFull
    - DiscoverVersion
    - strcmp
    - xstrdup
    - Chop
    - GetPidDir
    - CanonifyName
    - strcpy
    - memset
    - strlcat
    - Banner
    - CanonifyNameInPlace
    - HashPubKey
    - inet_ntoa
    - GetMasterDir
    - NovaWin_GetSysDir
    - GetBinDir
    - NovaWin_GetProgDir
    - GetWorkDir
    - GetErrorStr
    - ctime
    - stat
    - NovaWin_GetEnv
    - EvalContextClassPutHard
    - getzoneid
    - uname
    - GetLogDir
    - GetStateDir
    - EvalContextVariablePutSpecial
    linkageType: ''
    returnType: void
    signature: void GetNameInfo3(EvalContext *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libenv/sysinfo.c:881,1
    - Dst: NewDBCursor
      Src: /src/core/libenv/sysinfo.c:887,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:889,1
    - Dst: CloseDB
      Src: /src/core/libenv/sysinfo.c:890,1
    - Dst: NextDB
      Src: /src/core/libenv/sysinfo.c:894,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:903,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:912,1
    - Dst: RlistFromSplitString
      Src: /src/core/libenv/sysinfo.c:919,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:920,1
    - Dst: RlistDestroy
      Src: /src/core/libenv/sysinfo.c:923,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:927,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:933,1
    - Dst: DeleteDBCursor
      Src: /src/core/libenv/sysinfo.c:940,1
    - Dst: CloseDB
      Src: /src/core/libenv/sysinfo.c:941,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 942
    functionName: LoadSlowlyVaryingObservations
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - NewDBCursor
    - OpenDB
    - DeleteDBCursor
    - EvalContextVariablePutSpecial
    - sscanf
    - RlistFromSplitString
    - Log
    - RlistDestroy
    - CloseDB
    - NextDB
    linkageType: ''
    returnType: void
    signature: void LoadSlowlyVaryingObservations(EvalContext *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/libenv/sysinfo.c:948,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:950,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:952,1
    - Dst: GetStateDir
      Src: /src/core/libenv/sysinfo.c:952,1
    - Dst: MapName
      Src: /src/core/libenv/sysinfo.c:953,1
    - Dst: safe_fopen
      Src: /src/core/libenv/sysinfo.c:955,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:958,1
    - Dst: fileno
      Src: /src/core/libenv/sysinfo.c:962,1
    - Dst: fstat
      Src: /src/core/libenv/sysinfo.c:963,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:965,1
    - Dst: fclose
      Src: /src/core/libenv/sysinfo.c:966,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:972,1
    - Dst: unlink
      Src: /src/core/libenv/sysinfo.c:973,1
    - Dst: fclose
      Src: /src/core/libenv/sysinfo.c:974,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:978,1
    - Dst: ctime
      Src: /src/core/libenv/sysinfo.c:978,1
    - Dst: Chop
      Src: /src/core/libenv/sysinfo.c:979,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:981,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:984,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:986,1
    - Dst: fgets
      Src: /src/core/libenv/sysinfo.c:993,1
    - Dst: ferror
      Src: /src/core/libenv/sysinfo.c:995,1
    - Dst: UnexpectedError
      Src: /src/core/libenv/sysinfo.c:997,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:1009,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:1010,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:1011,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1013,1
    - Dst: RlistParseShown
      Src: /src/core/libenv/sysinfo.c:1016,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1017,1
    - Dst: RlistDestroy
      Src: /src/core/libenv/sysinfo.c:1022,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1026,1
    - Dst: strchr
      Src: /src/core/libenv/sysinfo.c:1031,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:1033,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:1034,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:1035,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1037,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1041,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1047,1
    - Dst: StripTrailingNewline
      Src: /src/core/libenv/sysinfo.c:1054,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1055,1
    - Dst: fclose
      Src: /src/core/libenv/sysinfo.c:1059,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1060,1
    - Dst: LoadSlowlyVaryingObservations
      Src: /src/core/libenv/sysinfo.c:1062,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 1063
    functionName: Get3Environment
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - LoadSlowlyVaryingObservations
    - Log
    - fclose
    - time
    - fgets
    - snprintf
    - unlink
    - nt_static_assert
    - RlistParseShown
    - fileno
    - sscanf
    - strchr
    - RlistDestroy
    - Chop
    - ctime
    - EvalContextClassPutHard
    - StripTrailingNewline
    - MapName
    - fstat
    - GetStateDir
    - UnexpectedError
    - safe_fopen
    - EvalContextVariablePutSpecial
    - ferror
    linkageType: ''
    returnType: void
    signature: void Get3Environment(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1069,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1071,1
    - Dst: CanonifyName
      Src: /src/core/libenv/sysinfo.c:1071,1
    - Dst: Version
      Src: /src/core/libenv/sysinfo.c:1071,1
    - Dst: CreateHardClassesFromCanonification
      Src: /src/core/libenv/sysinfo.c:1072,1
    - Dst: CreateHardClassesFromFeatures
      Src: /src/core/libenv/sysinfo.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1075
    functionName: BuiltinClasses
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - EvalContextClassPutHard
    - snprintf
    - Version
    - CreateHardClassesFromFeatures
    - CreateHardClassesFromCanonification
    - CanonifyName
    linkageType: ''
    returnType: void
    signature: void BuiltinClasses(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:1083,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1085,1
    - Dst: strrchr
      Src: /src/core/libenv/sysinfo.c:1089,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - canonified
    - tags
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1094
    functionName: CreateHardClassesFromCanonification
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - strrchr
    - EvalContextClassPutHard
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void CreateHardClassesFromCanonification(EvalContext *ctx, const char
      *canonified, char *tags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1100,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1103,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1106,1
    - Dst: StringFormat
      Src: /src/core/libenv/sysinfo.c:1112,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1114,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1117,1
    - Dst: StringFormat
      Src: /src/core/libenv/sysinfo.c:1119,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1122,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1123,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - flavor
    - derived_from_file
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1128
    functionName: SetFlavor
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    - free
    - StringFormat
    - EvalContextClassPutHard
    linkageType: ''
    returnType: void
    signature: void SetFlavor(EvalContext *ctx, const char *flavor, const char *derived_from_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:1142,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:1143,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:1144,1
    - Dst: xasprintf
      Src: /src/core/libenv/sysinfo.c:1147,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1148,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - id
    - major_version
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1141
        line_start: 1141
        source_file: /src/core/libenv/sysinfo.c
    - condition: (id != NULL)
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/core/libenv/sysinfo.c
    - condition: (major_version != NULL)
      pos:
        line_end: 1143
        line_start: 1143
        source_file: /src/core/libenv/sysinfo.c
    constantsTouched: []
    func_position:
      end: 1150
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1150
    functionName: SetFlavor2
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - assert
    - free
    - xasprintf
    - SetFlavor
    linkageType: ''
    returnType: void
    signature: "void SetFlavor2(\n    EvalContext *const ctx,\n    const char *const
      id,\n    const char *const major_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:1167,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:1168,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:1169,1
    - Dst: xasprintf
      Src: /src/core/libenv/sysinfo.c:1172,1
    - Dst: strrchr
      Src: /src/core/libenv/sysinfo.c:1176,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1179,1
    - Dst: strrchr
      Src: /src/core/libenv/sysinfo.c:1181,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1183,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - tags
    - id
    - version
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1166
        line_start: 1166
        source_file: /src/core/libenv/sysinfo.c
    - condition: (id != NULL)
      pos:
        line_end: 1167
        line_start: 1167
        source_file: /src/core/libenv/sysinfo.c
    - condition: (version != NULL)
      pos:
        line_end: 1168
        line_start: 1168
        source_file: /src/core/libenv/sysinfo.c
    constantsTouched: []
    func_position:
      end: 1185
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1185
    functionName: DefineVersionedHardClasses
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - EvalContextClassPutHard
    - assert
    - xasprintf
    - strrchr
    - free
    linkageType: ''
    returnType: void
    signature: "void DefineVersionedHardClasses(\n    EvalContext *const ctx,\n    const
      char *const tags,\n    const char *const id,\n    const char *const version)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: JsonReadDataFile
      Src: /src/core/libenv/sysinfo.c:1189,1
    - Dst: xasprintf
      Src: /src/core/libenv/sysinfo.c:1195,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1198,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/sysinfo.c:1201,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libenv/sysinfo.c:1202,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libenv/sysinfo.c:1203,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libenv/sysinfo.c:1204,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libenv/sysinfo.c:1208,1
    - Dst: StringEqual
      Src: /src/core/libenv/sysinfo.c:1211,1
    - Dst: StringEqual
      Src: /src/core/libenv/sysinfo.c:1215,1
    - Dst: StringEqual
      Src: /src/core/libenv/sysinfo.c:1216,1
    - Dst: StringEqual
      Src: /src/core/libenv/sysinfo.c:1217,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1225,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1228,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libenv/sysinfo.c:1233,1
    - Dst: strchr
      Src: /src/core/libenv/sysinfo.c:1236,1
    - Dst: SetFlavor2
      Src: /src/core/libenv/sysinfo.c:1241,1
    - Dst: SetFlavor2
      Src: /src/core/libenv/sysinfo.c:1246,1
    - Dst: DefineVersionedHardClasses
      Src: /src/core/libenv/sysinfo.c:1251,1
    - Dst: DefineVersionedHardClasses
      Src: /src/core/libenv/sysinfo.c:1254,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1258,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1259,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1260,1
    - Dst: JsonDestroy
      Src: /src/core/libenv/sysinfo.c:1261,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - ctx
    - file_path
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1187
    functionDepth: 3
    functionLinenumber: 1187
    functionLinenumberEnd: 1263
    functionName: OSReleaseParse
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - EvalContextClassPutHard
    - SetFlavor2
    - DefineVersionedHardClasses
    - CanonifyNameInPlace
    - SafeStringDuplicate
    - JsonObjectGetAsString
    - xasprintf
    - strchr
    - EvalContextVariablePutSpecial
    - free
    - JsonReadDataFile
    - StringEqual
    linkageType: ''
    returnType: void
    signature: void OSReleaseParse(EvalContext *ctx, const char *file_path)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:1274,1
    - Dst: realpath
      Src: /src/core/libenv/sysinfo.c:1279,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:1280,1
    - Dst: strcpy
      Src: /src/core/libenv/sysinfo.c:1282,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:1292,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:1292,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:1297,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1299,1
    - Dst: access
      Src: /src/core/libenv/sysinfo.c:1309,1
    - Dst: OSReleaseParse
      Src: /src/core/libenv/sysinfo.c:1311,1
    - Dst: access
      Src: /src/core/libenv/sysinfo.c:1313,1
    - Dst: OSReleaseParse
      Src: /src/core/libenv/sysinfo.c:1315,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1321,1
    - Dst: Linux_Mandriva_Version
      Src: /src/core/libenv/sysinfo.c:1323,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1325,1
    - Dst: Linux_Mandrake_Version
      Src: /src/core/libenv/sysinfo.c:1327,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1329,1
    - Dst: Linux_Fedora_Version
      Src: /src/core/libenv/sysinfo.c:1331,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1333,1
    - Dst: Linux_Oracle_VM_Server_Version
      Src: /src/core/libenv/sysinfo.c:1335,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1337,1
    - Dst: Linux_Redhat_Version
      Src: /src/core/libenv/sysinfo.c:1339,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1345,1
    - Dst: Linux_Oracle_Version
      Src: /src/core/libenv/sysinfo.c:1347,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1350,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1352,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1353,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1356,1
    - Dst: Linux_Suse_Version
      Src: /src/core/libenv/sysinfo.c:1358,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1361,1
    - Dst: Linux_Amazon_Version
      Src: /src/core/libenv/sysinfo.c:1363,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1368,1
    - Dst: Linux_Slackware_Version
      Src: /src/core/libenv/sysinfo.c:1370,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1372,1
    - Dst: Linux_Slackware_Version
      Src: /src/core/libenv/sysinfo.c:1374,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1377,1
    - Dst: Linux_Debian_Version
      Src: /src/core/libenv/sysinfo.c:1379,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1382,1
    - Dst: Linux_Misc_Version
      Src: /src/core/libenv/sysinfo.c:1384,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1387,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1389,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1390,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1395,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1397,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1398,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1401,1
    - Dst: Linux_Alpine_Version
      Src: /src/core/libenv/sysinfo.c:1403,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1406,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1408,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1409,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1412,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1414,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1415,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1417,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1419,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1420,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1423,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1423,1
    - Dst: VM_Version
      Src: /src/core/libenv/sysinfo.c:1425,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1427,1
    - Dst: S_ISDIR
      Src: /src/core/libenv/sysinfo.c:1427,1
    - Dst: VM_Version
      Src: /src/core/libenv/sysinfo.c:1429,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1432,1
    - Dst: Xen_Domain
      Src: /src/core/libenv/sysinfo.c:1434,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1436,1
    - Dst: EOS_Version
      Src: /src/core/libenv/sysinfo.c:1438,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1439,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1442,1
    - Dst: MiscOS
      Src: /src/core/libenv/sysinfo.c:1444,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:1447,1
    - Dst: OpenVZ_Detect
      Src: /src/core/libenv/sysinfo.c:1449,1
    - Dst: Apple_Version
      Src: /src/core/libenv/sysinfo.c:1455,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:1461,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:1463,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1478,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1479,1
    - Dst: isdigit
      Src: /src/core/libenv/sysinfo.c:1495,1
    - Dst: isdigit
      Src: /src/core/libenv/sysinfo.c:1499,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1507,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1508,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1528,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1529,1
    - Dst: Xen_Hv_Check
      Src: /src/core/libenv/sysinfo.c:1535,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1537,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1538,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1539,1
    - Dst: GetCPUInfo
      Src: /src/core/libenv/sysinfo.c:1543,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:1552,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1554,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1555,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:1558,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1560,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1561,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:1564,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1566,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1567,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:1570,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1572,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1573,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:1576,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1578,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1579,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1584,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1589,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1590,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:1592,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1594,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:1596,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1598,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:1600,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1602,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1603,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1607,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libenv/sysinfo.c:1610,1
    - Dst: FindNextInteger
      Src: /src/core/libenv/sysinfo.c:1612,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libenv/sysinfo.c:1613,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1615,1
    - Dst: SetFlavor2
      Src: /src/core/libenv/sysinfo.c:1619,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1621,1
    - Dst: GetCurrentUserName
      Src: /src/core/libenv/sysinfo.c:1627,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:1631,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1633,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:1635,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1637,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:1639,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1641,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:1643,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1645,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1649,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1652,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1658,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1663,1
    - Dst: StringMatchFull
      Src: /src/core/libenv/sysinfo.c:1667,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1669,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1670,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:1677,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1679,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:1682,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1684,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:1687,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:1689,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 218
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1266
    functionDepth: 4
    functionLinenumber: 1266
    functionLinenumberEnd: 1691
    functionName: OSClasses
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - strncmp
    - FindNextInteger
    - ReadLine
    - Linux_Amazon_Version
    - Log
    - Linux_Slackware_Version
    - Linux_Oracle_VM_Server_Version
    - OpenVZ_Detect
    - free
    - strlcpy
    - access
    - Linux_Oracle_Version
    - snprintf
    - strlen
    - isdigit
    - Linux_Suse_Version
    - Apple_Version
    - OSReleaseParse
    - EOS_Version
    - MiscOS
    - Linux_Mandriva_Version
    - StringMatchFull
    - NULL_OR_EMPTY
    - strcpy
    - Xen_Domain
    - VM_Version
    - SetFlavor2
    - GetCPUInfo
    - S_ISDIR
    - Linux_Fedora_Version
    - Linux_Redhat_Version
    - stat
    - EvalContextClassPutHard
    - Xen_Hv_Check
    - SetFlavor
    - realpath
    - strstr
    - SafeStringDuplicate
    - GetCurrentUserName
    - Linux_Alpine_Version
    - Linux_Debian_Version
    - Linux_Misc_Version
    - EvalContextClassGet
    - EvalContextVariablePutSpecial
    - Linux_Mandrake_Version
    linkageType: ''
    returnType: void
    signature: void OSClasses(EvalContext *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1700,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1701,1
    - Dst: FileCanOpen
      Src: /src/core/libenv/sysinfo.c:1702,1
    - Dst: cf_popen
      Src: /src/core/libenv/sysinfo.c:1702,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1704,1
    - Dst: xmalloc
      Src: /src/core/libenv/sysinfo.c:1709,1
    - Dst: CfReadLine
      Src: /src/core/libenv/sysinfo.c:1714,1
    - Dst: STARTSWITH
      Src: /src/core/libenv/sysinfo.c:1716,1
    - Dst: strrchr
      Src: /src/core/libenv/sysinfo.c:1718,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libenv/sysinfo.c:1723,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libenv/sysinfo.c:1724,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libenv/sysinfo.c:1725,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1726,1
    - Dst: STARTSWITH
      Src: /src/core/libenv/sysinfo.c:1731,1
    - Dst: strrchr
      Src: /src/core/libenv/sysinfo.c:1733,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:1738,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1744,1
    - Dst: cf_pclose
      Src: /src/core/libenv/sysinfo.c:1745,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1753,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:1754,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1755,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1756,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1761,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:1762,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1763,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1764,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1769,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:1770,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1771,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1772,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1775,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1776,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:1777,1
    - Dst: cf_pclose
      Src: /src/core/libenv/sysinfo.c:1778,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ret >= 0 && (size_t) ret < sizeof(buf))
      pos:
        line_end: 1753
        line_start: 1753
        source_file: /src/core/libenv/sysinfo.c
    - condition: (ret >= 0 && (size_t) ret < sizeof(buf))
      pos:
        line_end: 1769
        line_start: 1769
        source_file: /src/core/libenv/sysinfo.c
    - condition: (ret >= 0 && (size_t) ret < sizeof(buf))
      pos:
        line_end: 1761
        line_start: 1761
        source_file: /src/core/libenv/sysinfo.c
    constantsTouched: []
    func_position:
      end: 1779
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1779
    functionName: Apple_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - snprintf
    - cf_popen
    - ToLowerStrInplace
    - SetFlavor
    - SafeStringDuplicate
    - assert
    - sscanf
    - cf_pclose
    - xmalloc
    - Log
    - STARTSWITH
    - strrchr
    - free
    - CfReadLine
    - FileCanOpen
    linkageType: ''
    returnType: void
    signature: void Apple_Version(EvalContext *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1797,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1798,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1799,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:1803,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:1808,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:1808,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1810,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:1814,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1816,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:1820,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:1820,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1826,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1827,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1834,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1835,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1842,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1843,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1783
    functionDepth: 2
    functionLinenumber: 1783
    functionLinenumberEnd: 1845
    functionName: Linux_Oracle_VM_Server_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - strncmp
    - EvalContextClassPutHard
    - ReadLine
    - snprintf
    - strlen
    - strstr
    - SetFlavor
    - sscanf
    - Log
    linkageType: ''
    returnType: void
    signature: void Linux_Oracle_VM_Server_Version(EvalContext *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1858,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1863,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:1865,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:1870,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:1870,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1872,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:1876,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1878,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:1882,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:1882,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1886,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1887,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:1889,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1849
    functionDepth: 2
    functionLinenumber: 1849
    functionLinenumberEnd: 1892
    functionName: Linux_Oracle_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - strncmp
    - EvalContextClassPutHard
    - ReadLine
    - snprintf
    - strlen
    - strstr
    - SetFlavor
    - sscanf
    - Log
    linkageType: ''
    returnType: void
    signature: void Linux_Oracle_Version(EvalContext *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1915,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1916,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1917,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:1921,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1926,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:1929,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:1929,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1935,1
    - Dst: PRINTSIZE
      Src: /src/core/libenv/sysinfo.c:1943,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:1944,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:1948,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:1953,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:1956,1
    - Dst: xsnprintf
      Src: /src/core/libenv/sysinfo.c:1958,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:1966,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:1967,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:1968,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:1969,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:1970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1896
    functionDepth: 2
    functionLinenumber: 1896
    functionLinenumberEnd: 1974
    functionName: Linux_Fedora_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - strncmp
    - EvalContextClassPutHard
    - ReadLine
    - PRINTSIZE
    - strlen
    - strstr
    - SetFlavor
    - sscanf
    - strcat
    - Log
    - xsnprintf
    linkageType: ''
    returnType: int
    signature: int Linux_Fedora_Version(EvalContext *ctx)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2018,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2019,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2023,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2028,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2033,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2033,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2038,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2038,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2043,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2043,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2048,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2048,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2049,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2049,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2054,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2054,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2059,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2059,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2060,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2060,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2065,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2065,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2070,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2070,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2074,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2074,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2078,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2078,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2082,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2082,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2086,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2086,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2090,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2090,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2095,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2095,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2100,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2100,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2105,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2105,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2109,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2109,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2116,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2130,1
    - Dst: tolower
      Src: /src/core/libenv/sysinfo.c:2132,1
    - Dst: PRINTSIZE
      Src: /src/core/libenv/sysinfo.c:2137,1
    - Dst: PRINTSIZE
      Src: /src/core/libenv/sysinfo.c:2137,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:2139,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2142,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2147,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2148,1
    - Dst: xsnprintf
      Src: /src/core/libenv/sysinfo.c:2150,1
    - Dst: xsnprintf
      Src: /src/core/libenv/sysinfo.c:2151,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2156,1
    - Dst: xsnprintf
      Src: /src/core/libenv/sysinfo.c:2158,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:2164,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2167,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2168,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2169,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:2171,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2173,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2174,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2175,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2178,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2179,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2183,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2184,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2185,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2193,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2194,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2195,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2197,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2199,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2203,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2204,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2205,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 121
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 1978
    functionDepth: 2
    functionLinenumber: 1978
    functionLinenumberEnd: 2210
    functionName: Linux_Redhat_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - tolower
    - strncmp
    - EvalContextClassPutHard
    - ReadLine
    - PRINTSIZE
    - strlen
    - strstr
    - SetFlavor
    - sscanf
    - strcat
    - Log
    - xsnprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int Linux_Redhat_Version(EvalContext *ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2225,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2230,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2231,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2236,1
    - Dst: ReadFirstLine
      Src: /src/core/libenv/sysinfo.c:2241,1
    - Dst: fgets
      Src: /src/core/libenv/sysinfo.c:2252,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2254,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2254,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:2256,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2257,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2260,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2260,1
    - Dst: strlcpy
      Src: /src/core/libenv/sysinfo.c:2262,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2263,1
    - Dst: ferror
      Src: /src/core/libenv/sysinfo.c:2266,1
    - Dst: UnexpectedError
      Src: /src/core/libenv/sysinfo.c:2268,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:2272,1
    - Dst: feof
      Src: /src/core/libenv/sysinfo.c:2272,1
    - Dst: fclose
      Src: /src/core/libenv/sysinfo.c:2275,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2279,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2285,1
    - Dst: tolower
      Src: /src/core/libenv/sysinfo.c:2287,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2292,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2292,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2295,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2296,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2298,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:2302,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2303,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2304,1
    - Dst: SplitString
      Src: /src/core/libenv/sysinfo.c:2306,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2310,1
    - Dst: DeleteItemList
      Src: /src/core/libenv/sysinfo.c:2313,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2319,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2320,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2322,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2322,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2324,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2325,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2329,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2330,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2332,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2332,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2334,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2335,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:2345,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:2348,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2357,1
    - Dst: strchr
      Src: /src/core/libenv/sysinfo.c:2365,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2367,1
    - Dst: xsnprintf
      Src: /src/core/libenv/sysinfo.c:2368,1
    - Dst: xsnprintf
      Src: /src/core/libenv/sysinfo.c:2369,1
    - Dst: strcpy
      Src: /src/core/libenv/sysinfo.c:2373,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2374,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2375,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2376,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2377,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2378,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2379,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2380,1
    - Dst: strcpy
      Src: /src/core/libenv/sysinfo.c:2385,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2386,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2387,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2388,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2389,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2390,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2391,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2392,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2394,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:2400,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:2401,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2402,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2403,1
    - Dst: strcpy
      Src: /src/core/libenv/sysinfo.c:2407,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2408,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2409,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2410,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2411,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2412,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2413,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2414,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2416,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2417,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2422,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2423,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2425,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2431,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 121
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (feof(fp))
      pos:
        line_end: 2271
        line_start: 2271
        source_file: /src/core/libenv/sysinfo.c
    constantsTouched: []
    func_position:
      end: 2434
      start: 2214
    functionDepth: 2
    functionLinenumber: 2214
    functionLinenumberEnd: 2434
    functionName: Linux_Suse_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - SplitString
    - strncmp
    - feof
    - Log
    - fclose
    - strlcpy
    - tolower
    - fgets
    - nt_static_assert
    - snprintf
    - strlen
    - sscanf
    - strchr
    - strcat
    - strcpy
    - assert
    - ReadFirstLine
    - EvalContextClassPutHard
    - SetFlavor
    - strstr
    - UnexpectedError
    - xsnprintf
    - DeleteItemList
    - ferror
    linkageType: ''
    returnType: int
    signature: int Linux_Suse_Version(EvalContext *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: StringFormat
      Src: /src/core/libenv/sysinfo.c:2446,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2450,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2451,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2453,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:2455,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2459,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2460,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2463,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2464,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2465,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2468,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2469,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2470,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2473,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2474,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2475,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2478,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:2479,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:2482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - filename
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2484
    functionName: Linux_Slackware_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - ReadLine
    - snprintf
    - sscanf
    - Log
    - StringFormat
    - free
    linkageType: ''
    returnType: int
    signature: int Linux_Slackware_Version(EvalContext *ctx, char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/core/libenv/sysinfo.c:2513,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:2520,1
    - Dst: isspace
      Src: /src/core/libenv/sysinfo.c:2520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts:
    - condition: (tail == dst || isspace(*tail))
      pos:
        line_end: 2519
        line_start: 2519
        source_file: /src/core/libenv/sysinfo.c
    constantsTouched: []
    func_position:
      end: 2522
      start: 2494
    functionDepth: 0
    functionLinenumber: 2494
    functionLinenumberEnd: 2522
    functionName: LinuxDebianSanitizeIssue
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - assert
    - isspace
    linkageType: ''
    returnType: void
    signature: void LinuxDebianSanitizeIssue(char *buffer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libenv/sysinfo.c:2535,1
    - Dst: feof
      Src: /src/core/libenv/sysinfo.c:2538,1
    - Dst: fgets
      Src: /src/core/libenv/sysinfo.c:2540,1
    - Dst: ferror
      Src: /src/core/libenv/sysinfo.c:2542,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:2549,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2551,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:2558,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:2562,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2563,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2563,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libenv/sysinfo.c:2564,1
    - Dst: fclose
      Src: /src/core/libenv/sysinfo.c:2567,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2572,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2573,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2526
    functionDepth: 2
    functionLinenumber: 2526
    functionLinenumberEnd: 2578
    functionName: Linux_Misc_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - fgets
    - EvalContextClassPutHard
    - nt_static_assert
    - strlen
    - strstr
    - CanonifyNameInPlace
    - snprintf
    - SetFlavor
    - feof
    - safe_fopen
    - sscanf
    - fclose
    - ferror
    linkageType: ''
    returnType: int
    signature: int Linux_Misc_Version(EvalContext *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2590,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2591,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2598,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2600,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2605,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2610,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2611,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2612,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2616,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2617,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2621,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2622,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2623,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:2628,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2629,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2630,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2632,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2633,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2641,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:2647,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2648,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:2650,1
    - Dst: LinuxDebianSanitizeIssue
      Src: /src/core/libenv/sysinfo.c:2652,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:2653,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2654,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2655,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2656,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2660,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:2662,1
    - Dst: LinuxDebianSanitizeIssue
      Src: /src/core/libenv/sysinfo.c:2664,1
    - Dst: nt_static_assert
      Src: /src/core/libenv/sysinfo.c:2666,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2667,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2668,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2669,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2670,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2676,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2677,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2582
    functionDepth: 2
    functionLinenumber: 2582
    functionLinenumberEnd: 2685
    functionName: Linux_Debian_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - snprintf
    - ReadLine
    - SetFlavor
    - nt_static_assert
    - strlen
    - sscanf
    - Log
    - strcmp
    - LinuxDebianSanitizeIssue
    linkageType: ''
    returnType: int
    signature: int Linux_Debian_Version(EvalContext *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2701,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2702,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2706,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2711,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2715,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2715,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2719,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2719,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2724,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2724,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2730,1
    - Dst: Linux_Mandriva_Version_Real
      Src: /src/core/libenv/sysinfo.c:2734,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2735
    functionName: Linux_Mandrake_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - strncmp
    - EvalContextClassPutHard
    - ReadLine
    - strlen
    - Log
    - Linux_Mandriva_Version_Real
    linkageType: ''
    returnType: int
    signature: int Linux_Mandrake_Version(EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2752,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2753,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2754,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2756,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2761,1
    - Dst: strncmp
      Src: /src/core/libenv/sysinfo.c:2763,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2763,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2769,1
    - Dst: Linux_Mandriva_Version_Real
      Src: /src/core/libenv/sysinfo.c:2773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2739
    functionDepth: 1
    functionLinenumber: 2739
    functionLinenumberEnd: 2775
    functionName: Linux_Mandriva_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - strncmp
    - EvalContextClassPutHard
    - ReadLine
    - strlen
    - Log
    - Linux_Mandriva_Version_Real
    linkageType: ''
    returnType: int
    signature: int Linux_Mandriva_Version(EvalContext *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PRINTSIZE
      Src: /src/core/libenv/sysinfo.c:2782,1
    - Dst: PRINTSIZE
      Src: /src/core/libenv/sysinfo.c:2782,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:2785,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2788,1
    - Dst: strlen
      Src: /src/core/libenv/sysinfo.c:2793,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2794,1
    - Dst: xsnprintf
      Src: /src/core/libenv/sysinfo.c:2796,1
    - Dst: xsnprintf
      Src: /src/core/libenv/sysinfo.c:2797,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2801,1
    - Dst: StringFormat
      Src: /src/core/libenv/sysinfo.c:2805,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:2809,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2813,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2814,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2815,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2816,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2817,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2820,1
    - Dst: strcat
      Src: /src/core/libenv/sysinfo.c:2821,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2822,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:2825,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - filename
    - relstring
    - vendor
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2779
    functionDepth: 1
    functionLinenumber: 2779
    functionLinenumberEnd: 2828
    functionName: Linux_Mandriva_Version_Real
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 2
    functionsReached:
    - PRINTSIZE
    - EvalContextClassPutHard
    - strlen
    - strstr
    - sscanf
    - strcat
    - Log
    - xsnprintf
    - StringFormat
    - strcmp
    - free
    linkageType: ''
    returnType: int
    signature: int Linux_Mandriva_Version_Real(EvalContext *ctx, char *filename, char
      *relstring, char *vendor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2838,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:2840,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2842,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2847,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libenv/sysinfo.c:2851,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2852,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2853,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2856,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2860,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2832
    functionDepth: 2
    functionLinenumber: 2832
    functionLinenumberEnd: 2868
    functionName: Linux_Amazon_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - ReadLine
    - snprintf
    - SetFlavor
    - strstr
    - CanonifyNameInPlace
    - sscanf
    linkageType: ''
    returnType: void
    signature: void Linux_Amazon_Version(EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2876,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2878,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2882,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2885,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libenv/sysinfo.c:2888,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2889,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2890,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2872
    functionDepth: 2
    functionLinenumber: 2872
    functionLinenumberEnd: 2896
    functionName: Linux_Alpine_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - ReadLine
    - snprintf
    - SetFlavor
    - CanonifyNameInPlace
    - sscanf
    - Log
    linkageType: ''
    returnType: void
    signature: void Linux_Alpine_Version(EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2907,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:2909,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2914,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2915,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2917,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libenv/sysinfo.c:2918,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2919,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2900
    functionDepth: 1
    functionLinenumber: 2900
    functionLinenumberEnd: 2925
    functionName: EOS_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - ReadLine
    - snprintf
    - strstr
    - CanonifyNameInPlace
    - sscanf
    linkageType: ''
    returnType: int
    signature: int EOS_Version(EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2935,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:2937,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2942,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2943,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libenv/sysinfo.c:2944,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libenv/sysinfo.c:2945,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2946,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2947,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2948,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2949,1
    - Dst: SetFlavor
      Src: /src/core/libenv/sysinfo.c:2950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2929
    functionDepth: 2
    functionLinenumber: 2929
    functionLinenumberEnd: 2955
    functionName: MiscOS
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - ReadLine
    - snprintf
    - SetFlavor
    - strstr
    - CanonifyNameInPlace
    - sscanf
    linkageType: ''
    returnType: int
    signature: int MiscOS(EvalContext *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:2965,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2966,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2971,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2975,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2977,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2978,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2979,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2980,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2981,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2982,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:2985,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:2987,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:2988,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2995,1
    - Dst: ReadLine
      Src: /src/core/libenv/sysinfo.c:2996,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3000,1
    - Dst: strchr
      Src: /src/core/libenv/sysinfo.c:3003,1
    - Dst: Chop
      Src: /src/core/libenv/sysinfo.c:3006,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3007,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3013
      start: 2959
    functionDepth: 1
    functionLinenumber: 2959
    functionLinenumberEnd: 3013
    functionName: VM_Version
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - snprintf
    - ReadLine
    - sscanf
    - strchr
    - Log
    - Chop
    linkageType: ''
    returnType: int
    signature: int VM_Version(EvalContext *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3023,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3024,1
    - Dst: safe_fopen
      Src: /src/core/libenv/sysinfo.c:3028,1
    - Dst: xmalloc
      Src: /src/core/libenv/sysinfo.c:3032,1
    - Dst: CfReadLine
      Src: /src/core/libenv/sysinfo.c:3036,1
    - Dst: feof
      Src: /src/core/libenv/sysinfo.c:3039,1
    - Dst: fclose
      Src: /src/core/libenv/sysinfo.c:3042,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:3043,1
    - Dst: strstr
      Src: /src/core/libenv/sysinfo.c:3052,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3054,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3061,1
    - Dst: fclose
      Src: /src/core/libenv/sysinfo.c:3065,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:3066,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3017
    functionDepth: 1
    functionLinenumber: 3017
    functionLinenumberEnd: 3070
    functionName: Xen_Domain
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - strstr
    - feof
    - safe_fopen
    - xmalloc
    - Log
    - fclose
    - free
    - CfReadLine
    linkageType: ''
    returnType: int
    signature: int Xen_Domain(EvalContext *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:3087,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3089,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3090,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:3095,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3097,1
    - Dst: strcmp
      Src: /src/core/libenv/sysinfo.c:3104,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3113,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:3116,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3118,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3073
    functionDepth: 1
    functionLinenumber: 3073
    functionLinenumberEnd: 3124
    functionName: OpenVZ_Detect
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - stat
    - Log
    - strcmp
    - EvalContextClassPutHard
    linkageType: ''
    returnType: void
    signature: void OpenVZ_Detect(EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadFirstLine
      Src: /src/core/libenv/sysinfo.c:3130,1
    - Dst: fclose
      Src: /src/core/libenv/sysinfo.c:3138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - filename
    - buf
    - bufsize
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3141
      start: 3128
    functionDepth: 1
    functionLinenumber: 3128
    functionLinenumberEnd: 3141
    functionName: ReadLine
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 20
    functionsReached:
    - ReadFirstLine
    - fclose
    linkageType: ''
    returnType: bool
    signature: bool ReadLine(const char *filename, char *buf, int bufsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libenv/sysinfo.c:3145,1
    - Dst: fgets
      Src: /src/core/libenv/sysinfo.c:3152,1
    - Dst: fclose
      Src: /src/core/libenv/sysinfo.c:3154,1
    - Dst: StripTrailingNewline
      Src: /src/core/libenv/sysinfo.c:3158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - filename
    - buf
    - bufsize
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3143
    functionDepth: 1
    functionLinenumber: 3143
    functionLinenumberEnd: 3161
    functionName: ReadFirstLine
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 2
    functionsReached:
    - safe_fopen
    - StripTrailingNewline
    - fgets
    - fclose
    linkageType: ''
    returnType: FILE
    signature: FILE *ReadFirstLine(const char *filename, char *buf, int bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - idx
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3170
    functionDepth: 0
    functionLinenumber: 3170
    functionLinenumberEnd: 3183
    functionName: Xen_Cpuid
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Xen_Cpuid(uint32_t idx, uint32_t *eax, uint32_t *ebx, uint32_t
      *ecx, uint32_t *edx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Xen_Cpuid
      Src: /src/core/libenv/sysinfo.c:3217,1
    - Dst: memcmp
      Src: /src/core/libenv/sysinfo.c:3219,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3225,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3237
      start: 3187
    functionDepth: 1
    functionLinenumber: 3187
    functionLinenumberEnd: 3237
    functionName: Xen_Hv_Check
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - memcmp
    - Xen_Cpuid
    - Log
    linkageType: ''
    returnType: bool
    signature: bool Xen_Hv_Check(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3244,1
    - Dst: sysconf
      Src: /src/core/libenv/sysinfo.c:3252,1
    - Dst: GlobFileList
      Src: /src/core/libenv/sysinfo.c:3258,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libenv/sysinfo.c:3259,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libenv/sysinfo.c:3262,1
    - Dst: open
      Src: /src/core/libenv/sysinfo.c:3264,1
    - Dst: FullRead
      Src: /src/core/libenv/sysinfo.c:3269,1
    - Dst: close
      Src: /src/core/libenv/sysinfo.c:3270,1
    - Dst: sscanf
      Src: /src/core/libenv/sysinfo.c:3275,1
    - Dst: StringSetDestroy
      Src: /src/core/libenv/sysinfo.c:3284,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:3288,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:3289,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:3293,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:3294,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3296,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:3297,1
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:3298,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3299,1
    - Dst: sysctl
      Src: /src/core/libenv/sysinfo.c:3308,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3310,1
    - Dst: strerror
      Src: /src/core/libenv/sysinfo.c:3310,1
    - Dst: mpctl
      Src: /src/core/libenv/sysinfo.c:3326,1
    - Dst: mpctl
      Src: /src/core/libenv/sysinfo.c:3329,1
    - Dst: mpctl
      Src: /src/core/libenv/sysinfo.c:3332,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3338,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3341,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3346,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3347,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:3351,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libenv/sysinfo.c:3352,1
    - Dst: snprintf
      Src: /src/core/libenv/sysinfo.c:3353,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3354,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ret >= 0 && ret < CF_SMALLBUF)
      pos:
        line_end: 3297
        line_start: 3297
        source_file: /src/core/libenv/sysinfo.c
    - condition: (ret >= 0 && ret < CF_SMALLBUF)
      pos:
        line_end: 3288
        line_start: 3288
        source_file: /src/core/libenv/sysinfo.c
    - condition: (ret >= 0 && ret < CF_SMALLBUF)
      pos:
        line_end: 3293
        line_start: 3293
        source_file: /src/core/libenv/sysinfo.c
    constantsTouched: []
    func_position:
      end: 3357
      start: 3241
    functionDepth: 1
    functionLinenumber: 3241
    functionLinenumberEnd: 3357
    functionName: GetCPUInfo
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutHard
    - snprintf
    - strerror
    - StringSetIteratorNext
    - assert
    - sysctl
    - sysconf
    - StringSetDestroy
    - sscanf
    - FullRead
    - Log
    - open
    - StringSetIteratorInit
    - GlobFileList
    - EvalContextVariablePutSpecial
    - mpctl
    - close
    linkageType: ''
    returnType: void
    signature: void GetCPUInfo(EvalContext *ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sysinfo
      Src: /src/core/libenv/sysinfo.c:3376,1
    - Dst: kstat_open
      Src: /src/core/libenv/sysinfo.c:3386,1
    - Dst: kstat_lookup
      Src: /src/core/libenv/sysinfo.c:3389,1
    - Dst: kstat_read
      Src: /src/core/libenv/sysinfo.c:3392,1
    - Dst: kstat_data_lookup
      Src: /src/core/libenv/sysinfo.c:3394,1
    - Dst: kstat_close
      Src: /src/core/libenv/sysinfo.c:3401,1
    - Dst: pstat_getproc
      Src: /src/core/libenv/sysinfo.c:3407,1
    - Dst: sysctl
      Src: /src/core/libenv/sysinfo.c:3417,1
    - Dst: stat
      Src: /src/core/libenv/sysinfo.c:3425,1
    - Dst: setutent
      Src: /src/core/libenv/sysinfo.c:3434,1
    - Dst: getutid
      Src: /src/core/libenv/sysinfo.c:3435,1
    - Dst: endutent
      Src: /src/core/libenv/sysinfo.c:3440,1
    - Dst: setutxent
      Src: /src/core/libenv/sysinfo.c:3446,1
    - Dst: getutxid
      Src: /src/core/libenv/sysinfo.c:3447,1
    - Dst: endutxent
      Src: /src/core/libenv/sysinfo.c:3452,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3458,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/sysinfo.c:3458,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3463,1
    - Dst: GetBootTimeFromUptimeCommand
      Src: /src/core/libenv/sysinfo.c:3464,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3368
    functionDepth: 1
    functionLinenumber: 3368
    functionLinenumberEnd: 3468
    functionName: GetUptimeSeconds
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - stat
    - endutxent
    - setutent
    - kstat_read
    - setutxent
    - kstat_close
    - sysctl
    - sysinfo
    - pstat_getproc
    - endutent
    - getutid
    - GetBootTimeFromUptimeCommand
    - kstat_open
    - kstat_lookup
    - Log
    - kstat_data_lookup
    - getutxid
    linkageType: ''
    returnType: int
    signature: int GetUptimeSeconds(time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetUptimeSeconds
      Src: /src/core/libenv/sysinfo.c:3473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3471
    functionDepth: 2
    functionLinenumber: 3471
    functionLinenumberEnd: 3474
    functionName: GetUptimeMinutes
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 2
    functionsReached:
    - GetUptimeSeconds
    linkageType: ''
    returnType: int
    signature: int GetUptimeMinutes(time_t now)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_compile
      Src: /src/core/libenv/sysinfo.c:3503,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3507,1
    - Dst: cf_popen
      Src: /src/core/libenv/sysinfo.c:3512,1
    - Dst: cf_popen
      Src: /src/core/libenv/sysinfo.c:3513,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3516,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/sysinfo.c:3516,1
    - Dst: pcre2_code_free
      Src: /src/core/libenv/sysinfo.c:3517,1
    - Dst: xmalloc
      Src: /src/core/libenv/sysinfo.c:3522,1
    - Dst: CfReadLine
      Src: /src/core/libenv/sysinfo.c:3523,1
    - Dst: cf_pclose
      Src: /src/core/libenv/sysinfo.c:3525,1
    - Dst: feof
      Src: /src/core/libenv/sysinfo.c:3526,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3528,1
    - Dst: GetErrorStr
      Src: /src/core/libenv/sysinfo.c:3528,1
    - Dst: pcre2_code_free
      Src: /src/core/libenv/sysinfo.c:3529,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/core/libenv/sysinfo.c:3533,1
    - Dst: pcre2_match
      Src: /src/core/libenv/sysinfo.c:3535,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/core/libenv/sysinfo.c:3538,1
    - Dst: atoi
      Src: /src/core/libenv/sysinfo.c:3564,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3569,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libenv/sysinfo.c:3571,1
    - Dst: pcre2_code_free
      Src: /src/core/libenv/sysinfo.c:3572,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3573,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3494
    functionDepth: 1
    functionLinenumber: 3494
    functionLinenumberEnd: 3575
    functionName: GetBootTimeFromUptimeCommand
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - cf_popen
    - pcre2_match_data_free
    - pcre2_get_ovector_pointer
    - pcre2_match_data_create_from_pattern
    - pcre2_match
    - feof
    - cf_pclose
    - xmalloc
    - Log
    - pcre2_compile
    - atoi
    - CfReadLine
    - pcre2_code_free
    linkageType: ''
    returnType: time_t
    signature: time_t GetBootTimeFromUptimeCommand(time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getpwuid
      Src: /src/core/libenv/sysinfo.c:3593,1
    - Dst: getuid
      Src: /src/core/libenv/sysinfo.c:3593,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/sysinfo.c:3601,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/sysinfo.c:3602,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/sysinfo.c:3603,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/sysinfo.c:3604,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/sysinfo.c:3605,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libenv/sysinfo.c:3606,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libenv/sysinfo.c:3607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - passwd
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3616
      start: 3581
    functionDepth: 1
    functionLinenumber: 3581
    functionLinenumberEnd: 3616
    functionName: GetUserInfo
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - getuid
    - JsonObjectAppendInteger
    - JsonObjectCreate
    - JsonObjectAppendString
    - getpwuid
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * GetUserInfo(const void *passwd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getgrgid
      Src: /src/core/libenv/sysinfo.c:3631,1
    - Dst: getgid
      Src: /src/core/libenv/sysinfo.c:3631,1
    - Dst: JsonObjectCreate
      Src: /src/core/libenv/sysinfo.c:3639,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libenv/sysinfo.c:3640,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libenv/sysinfo.c:3641,1
    - Dst: JsonArrayCreate
      Src: /src/core/libenv/sysinfo.c:3643,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libenv/sysinfo.c:3646,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libenv/sysinfo.c:3649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - group
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3653
      start: 3620
    functionDepth: 1
    functionLinenumber: 3620
    functionLinenumberEnd: 3653
    functionName: GetGroupInfo
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - getgid
    - getgrgid
    - JsonArrayAppendString
    - JsonObjectAppendInteger
    - JsonObjectAppendArray
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * GetGroupInfo(const void *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetUserInfo
      Src: /src/core/libenv/sysinfo.c:3660,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3663,1
    - Dst: JsonDestroy
      Src: /src/core/libenv/sysinfo.c:3666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3657
    functionDepth: 2
    functionLinenumber: 3657
    functionLinenumberEnd: 3668
    functionName: GetSysVars
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    - JsonDestroy
    - GetUserInfo
    linkageType: ''
    returnType: void
    signature: void GetSysVars(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3678
      start: 3672
    functionDepth: 1
    functionLinenumber: 3672
    functionLinenumberEnd: 3678
    functionName: GetDefVars
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    linkageType: ''
    returnType: void
    signature: void GetDefVars(EvalContext *ctx)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libenv/sysinfo.c:3685,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3692,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3694,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3698,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3700,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3704,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3706,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3710,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3712,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3716,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3718,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3722,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3724,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3728,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3730,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3734,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3736,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3740,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3742,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3746,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3748,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3752,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3754,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3758,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3760,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3764,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3766,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3770,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3772,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3776,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3778,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3782,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3784,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3788,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3790,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3794,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3796,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3800,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3802,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3806,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3808,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3812,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3814,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3818,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3820,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3824,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3826,1
    - Dst: EvalContextClassGet
      Src: /src/core/libenv/sysinfo.c:3830,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3832,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3838,1
    - Dst: Log
      Src: /src/core/libenv/sysinfo.c:3841,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3684
        line_start: 3684
        source_file: /src/core/libenv/sysinfo.c
    constantsTouched: []
    func_position:
      end: 3844
      start: 3682
    functionDepth: 1
    functionLinenumber: 3682
    functionLinenumberEnd: 3844
    functionName: SysOSNameHuman
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    - assert
    - EvalContextClassGet
    - Log
    linkageType: ''
    returnType: void
    signature: void SysOSNameHuman(EvalContext *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/core/libenv/sysinfo.c:3868,1
    - Dst: isdigit
      Src: /src/core/libenv/sysinfo.c:3880,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - str
    - num
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3859
    functionDepth: 0
    functionLinenumber: 3859
    functionLinenumberEnd: 3892
    functionName: FindNextInteger
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 2
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: char
    signature: char *FindNextInteger(char *str, char **num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariableGetSpecialString
      Src: /src/core/libenv/sysinfo.c:3896,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libenv/sysinfo.c:3898,1
    - Dst: FindNextInteger
      Src: /src/core/libenv/sysinfo.c:3901,1
    - Dst: StringStartsWith
      Src: /src/core/libenv/sysinfo.c:3905,1
    - Dst: StringStartsWith
      Src: /src/core/libenv/sysinfo.c:3906,1
    - Dst: FindNextInteger
      Src: /src/core/libenv/sysinfo.c:3912,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libenv/sysinfo.c:3916,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3918,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3924,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:3930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3931
      start: 3894
    functionDepth: 1
    functionLinenumber: 3894
    functionLinenumberEnd: 3931
    functionName: SysOsVersionMajor
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - FindNextInteger
    - SafeStringDuplicate
    - EvalContextVariableGetSpecialString
    - EvalContextVariablePutSpecial
    - free
    - NULL_OR_EMPTY
    - StringStartsWith
    linkageType: ''
    returnType: void
    signature: void SysOsVersionMajor(EvalContext *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariableGetSpecial
      Src: /src/core/libenv/sysinfo.c:3942,1
    - Dst: JsonObjectGet
      Src: /src/core/libenv/sysinfo.c:3948,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libenv/sysinfo.c:3953,1
    - Dst: SplitString
      Src: /src/core/libenv/sysinfo.c:3954,1
    - Dst: DeleteItemList
      Src: /src/core/libenv/sysinfo.c:3957,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3960,1
    - Dst: DeleteItemList
      Src: /src/core/libenv/sysinfo.c:3961,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3963
      start: 3938
    functionDepth: 1
    functionLinenumber: 3938
    functionLinenumberEnd: 3963
    functionName: SetOsVersionMinorFromOSRelease
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - SplitString
    - EvalContextVariablePutSpecial
    - EvalContextVariableGetSpecial
    - JsonPrimitiveGetAsString
    - DeleteItemList
    - JsonObjectGet
    linkageType: ''
    returnType: bool
    signature: bool SetOsVersionMinorFromOSRelease(EvalContext *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassTableIteratorNewGlobal
      Src: /src/core/libenv/sysinfo.c:3968,1
    - Dst: ClassesMatching
      Src: /src/core/libenv/sysinfo.c:3969,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libenv/sysinfo.c:3971,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libenv/sysinfo.c:3972,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libenv/sysinfo.c:3975,1
    - Dst: StringSetDestroy
      Src: /src/core/libenv/sysinfo.c:3976,1
    - Dst: SplitString
      Src: /src/core/libenv/sysinfo.c:3979,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libenv/sysinfo.c:3981,1
    - Dst: StringSetDestroy
      Src: /src/core/libenv/sysinfo.c:3982,1
    - Dst: DeleteItemList
      Src: /src/core/libenv/sysinfo.c:3987,1
    - Dst: DeleteItemList
      Src: /src/core/libenv/sysinfo.c:3994,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:3998,1
    - Dst: DeleteItemList
      Src: /src/core/libenv/sysinfo.c:3999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4001
      start: 3965
    functionDepth: 1
    functionLinenumber: 3965
    functionLinenumberEnd: 4001
    functionName: SetOsVersionMinorFromHardClass
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - SplitString
    - StringSetIteratorNext
    - EvalContextVariablePutSpecial
    - StringSetDestroy
    - ClassesMatching
    - StringSetIteratorInit
    - DeleteItemList
    - ClassTableIteratorDestroy
    - EvalContextClassTableIteratorNewGlobal
    linkageType: ''
    returnType: bool
    signature: bool SetOsVersionMinorFromHardClass(EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SetOsVersionMinorFromOSRelease
      Src: /src/core/libenv/sysinfo.c:4006,1
    - Dst: SetOsVersionMinorFromHardClass
      Src: /src/core/libenv/sysinfo.c:4009,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:4012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4015
      start: 4003
    functionDepth: 2
    functionLinenumber: 4003
    functionLinenumberEnd: 4015
    functionName: SysOsVersionMinor
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    - SetOsVersionMinorFromHardClass
    - SetOsVersionMinorFromOSRelease
    linkageType: ''
    returnType: void
    signature: void SysOsVersionMinor(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNameInfo3
      Src: /src/core/libenv/sysinfo.c:4021,1
    - Dst: GetInterfacesInfo
      Src: /src/core/libenv/sysinfo.c:4022,1
    - Dst: GetNetworkingInfo
      Src: /src/core/libenv/sysinfo.c:4023,1
    - Dst: Get3Environment
      Src: /src/core/libenv/sysinfo.c:4024,1
    - Dst: BuiltinClasses
      Src: /src/core/libenv/sysinfo.c:4025,1
    - Dst: OSClasses
      Src: /src/core/libenv/sysinfo.c:4026,1
    - Dst: GetSysVars
      Src: /src/core/libenv/sysinfo.c:4027,1
    - Dst: GetDefVars
      Src: /src/core/libenv/sysinfo.c:4028,1
    - Dst: SysOSNameHuman
      Src: /src/core/libenv/sysinfo.c:4029,1
    - Dst: SysOsVersionMajor
      Src: /src/core/libenv/sysinfo.c:4030,1
    - Dst: SysOsVersionMinor
      Src: /src/core/libenv/sysinfo.c:4031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4019
    functionDepth: 5
    functionLinenumber: 4019
    functionLinenumberEnd: 4032
    functionName: DetectEnvironment
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - GetSysVars
    - OSClasses
    - GetDefVars
    - SysOsVersionMajor
    - GetNameInfo3
    - Get3Environment
    - SysOSNameHuman
    - BuiltinClasses
    - GetInterfacesInfo
    - SysOsVersionMinor
    - GetNetworkingInfo
    linkageType: ''
    returnType: void
    signature: void DetectEnvironment(EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariableGetSpecial
      Src: /src/core/libenv/sysinfo.c:4037,1
    - Dst: xasprintf
      Src: /src/core/libenv/sysinfo.c:4043,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:4045,1
    - Dst: free
      Src: /src/core/libenv/sysinfo.c:4049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4050
      start: 4034
    functionDepth: 1
    functionLinenumber: 4034
    functionLinenumberEnd: 4050
    functionName: SysPolicyReleaseId
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    - free
    - EvalContextVariableGetSpecial
    - xasprintf
    linkageType: ''
    returnType: void
    signature: void SysPolicyReleaseId(EvalContext *ctx, Policy *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/libenv/sysinfo.c:4054,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/sysinfo.c:4057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4060
      start: 4052
    functionDepth: 1
    functionLinenumber: 4052
    functionLinenumberEnd: 4060
    functionName: SysPolicyVersion
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    - EvalContextVariableControlCommonGet
    linkageType: ''
    returnType: void
    signature: void SysPolicyVersion(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SysPolicyReleaseId
      Src: /src/core/libenv/sysinfo.c:4065,1
    - Dst: SysPolicyVersion
      Src: /src/core/libenv/sysinfo.c:4066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4067
      start: 4063
    functionDepth: 2
    functionLinenumber: 4063
    functionLinenumberEnd: 4067
    functionName: DetectEnvironmentFromPolicy
    functionSourceFile: /src/core/libenv/sysinfo.c
    functionUses: 0
    functionsReached:
    - SysPolicyVersion
    - SysPolicyReleaseId
    linkageType: ''
    returnType: void
    signature: void DetectEnvironmentFromPolicy(EvalContext *ctx, Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/constants.c:38,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/constants.c:39,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/constants.c:40,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/constants.c:41,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/constants.c:42,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/constants.c:43,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/constants.c:44,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libenv/constants.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: LoadSystemConstants
    functionSourceFile: /src/core/libenv/constants.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    linkageType: ''
    returnType: void
    signature: void LoadSystemConstants(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/core/cf-key/cf-key.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: handleShowKeysSignal
    functionSourceFile: /src/core/cf-key/cf-key.c
    functionUses: 0
    functionsReached:
    - signal
    linkageType: ''
    returnType: void
    signature: void handleShowKeysSignal(int signum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/core/cf-key/cf-key.c:142,1
    - Dst: signal
      Src: /src/core/cf-key/cf-key.c:143,1
    - Dst: signal
      Src: /src/core/cf-key/cf-key.c:144,1
    - Dst: signal
      Src: /src/core/cf-key/cf-key.c:145,1
    - Dst: signal
      Src: /src/core/cf-key/cf-key.c:146,1
    - Dst: signal
      Src: /src/core/cf-key/cf-key.c:147,1
    - Dst: signal
      Src: /src/core/cf-key/cf-key.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - sighandler
    argTypes:
    - CfKeySigHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: SetupSignalsForCfKey
    functionSourceFile: /src/core/cf-key/cf-key.c
    functionUses: 0
    functionsReached:
    - signal
    linkageType: ''
    returnType: void
    signature: void SetupSignalsForCfKey(CfKeySigHandler sighandler)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SetupSignalsForCfKey
      Src: /src/core/cf-key/cf-key.c:153,1
    - Dst: CheckOpts
      Src: /src/core/cf-key/cf-key.c:155,1
    - Dst: EvalContextNew
      Src: /src/core/cf-key/cf-key.c:156,1
    - Dst: GenericAgentConfigApply
      Src: /src/core/cf-key/cf-key.c:157,1
    - Dst: strrchr
      Src: /src/core/cf-key/cf-key.c:160,1
    - Dst: GenericAgentDiscoverContext
      Src: /src/core/cf-key/cf-key.c:162,1
    - Dst: SetupSignalsForCfKey
      Src: /src/core/cf-key/cf-key.c:166,1
    - Dst: ShowLastSeenHosts
      Src: /src/core/cf-key/cf-key.c:167,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-key/cf-key.c:168,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-key/cf-key.c:169,1
    - Dst: PrintDigest
      Src: /src/core/cf-key/cf-key.c:175,1
    - Dst: free
      Src: /src/core/cf-key/cf-key.c:176,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-key/cf-key.c:177,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-key/cf-key.c:178,1
    - Dst: GenericAgentPostLoadInit
      Src: /src/core/cf-key/cf-key.c:182,1
    - Dst: strncmp
      Src: /src/core/cf-key/cf-key.c:189,1
    - Dst: strncmp
      Src: /src/core/cf-key/cf-key.c:190,1
    - Dst: ForceKeyRemoval
      Src: /src/core/cf-key/cf-key.c:192,1
    - Dst: ForceIpAddressRemoval
      Src: /src/core/cf-key/cf-key.c:196,1
    - Dst: RemoveKeys
      Src: /src/core/cf-key/cf-key.c:201,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key.c:204,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-key/cf-key.c:210,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-key/cf-key.c:211,1
    - Dst: LicenseInstall
      Src: /src/core/cf-key/cf-key.c:217,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-key/cf-key.c:218,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-key/cf-key.c:219,1
    - Dst: xstrdup
      Src: /src/core/cf-key/cf-key.c:227,1
    - Dst: ParseKeyArg
      Src: /src/core/cf-key/cf-key.c:229,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key.c:234,1
    - Dst: TrustKey
      Src: /src/core/cf-key/cf-key.c:238,1
    - Dst: free
      Src: /src/core/cf-key/cf-key.c:240,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-key/cf-key.c:241,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-key/cf-key.c:242,1
    - Dst: xasprintf
      Src: /src/core/cf-key/cf-key.c:250,1
    - Dst: xasprintf
      Src: /src/core/cf-key/cf-key.c:251,1
    - Dst: PublicKeyFile
      Src: /src/core/cf-key/cf-key.c:255,1
    - Dst: GetWorkDir
      Src: /src/core/cf-key/cf-key.c:255,1
    - Dst: PrivateKeyFile
      Src: /src/core/cf-key/cf-key.c:256,1
    - Dst: GetWorkDir
      Src: /src/core/cf-key/cf-key.c:256,1
    - Dst: KeepKeyPromises
      Src: /src/core/cf-key/cf-key.c:259,1
    - Dst: free
      Src: /src/core/cf-key/cf-key.c:261,1
    - Dst: free
      Src: /src/core/cf-key/cf-key.c:262,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-key/cf-key.c:264,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-key/cf-key.c:266,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 63
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 268
    functionName: main
    functionSourceFile: /src/core/cf-key/cf-key.c
    functionUses: 1
    functionsReached:
    - strncmp
    - CallCleanupFunctions
    - Log
    - free
    - PrivateKeyFile
    - KeepKeyPromises
    - CheckOpts
    - LicenseInstall
    - GenericAgentPostLoadInit
    - PrintDigest
    - ShowLastSeenHosts
    - EvalContextNew
    - strrchr
    - RemoveKeys
    - xstrdup
    - SetupSignalsForCfKey
    - ForceIpAddressRemoval
    - ForceKeyRemoval
    - xasprintf
    - PublicKeyFile
    - TrustKey
    - GetWorkDir
    - GenericAgentConfigApply
    - ParseKeyArg
    - GenericAgentFinalize
    - GenericAgentDiscoverContext
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileWriter
      Src: /src/core/cf-key/cf-key.c:276,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-key/cf-key.c:277,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-key/cf-key.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: PrintHelp
    functionSourceFile: /src/core/cf-key/cf-key.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - FileWriterDetach
    - WriterWriteHelp
    linkageType: ''
    returnType: void
    signature: void PrintHelp()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/cf-key/cf-key.c:285,1
    - Dst: GetTTYInteractive
      Src: /src/core/cf-key/cf-key.c:285,1
    - Dst: getopt_long
      Src: /src/core/cf-key/cf-key.c:287,1
    - Dst: StringToLongExitOnError
      Src: /src/core/cf-key/cf-key.c:298,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-key/cf-key.c:302,1
    - Dst: FileWriter
      Src: /src/core/cf-key/cf-key.c:307,1
    - Dst: GenericAgentWriteVersion
      Src: /src/core/cf-key/cf-key.c:308,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-key/cf-key.c:309,1
    - Dst: GenericAgentConfigDestroy
      Src: /src/core/cf-key/cf-key.c:311,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-key/cf-key.c:312,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-key/cf-key.c:315,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-key/cf-key.c:319,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-key/cf-key.c:323,1
    - Dst: xstrdup
      Src: /src/core/cf-key/cf-key.c:329,1
    - Dst: PublicKeyFile
      Src: /src/core/cf-key/cf-key.c:333,1
    - Dst: GetWorkDir
      Src: /src/core/cf-key/cf-key.c:333,1
    - Dst: strlcpy
      Src: /src/core/cf-key/cf-key.c:356,1
    - Dst: PrintHelp
      Src: /src/core/cf-key/cf-key.c:364,1
    - Dst: GenericAgentConfigDestroy
      Src: /src/core/cf-key/cf-key.c:365,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-key/cf-key.c:366,1
    - Dst: FileWriter
      Src: /src/core/cf-key/cf-key.c:370,1
    - Dst: ManPageWrite
      Src: /src/core/cf-key/cf-key.c:371,1
    - Dst: time
      Src: /src/core/cf-key/cf-key.c:371,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-key/cf-key.c:377,1
    - Dst: GenericAgentConfigDestroy
      Src: /src/core/cf-key/cf-key.c:378,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-key/cf-key.c:379,1
    - Dst: GenericAgentConfigParseColor
      Src: /src/core/cf-key/cf-key.c:383,1
    - Dst: GenericAgentConfigDestroy
      Src: /src/core/cf-key/cf-key.c:386,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-key/cf-key.c:387,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/cf-key/cf-key.c:392,1
    - Dst: PrintHelp
      Src: /src/core/cf-key/cf-key.c:400,1
    - Dst: GenericAgentConfigDestroy
      Src: /src/core/cf-key/cf-key.c:401,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-key/cf-key.c:402,1
    - Dst: PrintHelp
      Src: /src/core/cf-key/cf-key.c:409,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key.c:410,1
    - Dst: GenericAgentConfigDestroy
      Src: /src/core/cf-key/cf-key.c:411,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-key/cf-key.c:412,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 416
    functionName: CheckOpts
    functionSourceFile: /src/core/cf-key/cf-key.c
    functionUses: 3
    functionsReached:
    - StringToLongExitOnError
    - GenericAgentConfigParseColor
    - Log
    - FileWriterDetach
    - strlcpy
    - time
    - FileWriter
    - PrintHelp
    - ManPageWrite
    - GenericAgentConfigNewDefault
    - xstrdup
    - GenericAgentConfigDestroy
    - GenericAgentWriteVersion
    - LogSetGlobalLevel
    - PublicKeyFile
    - GetTTYInteractive
    - getopt_long
    - GetWorkDir
    - DoCleanupAndExit
    - LoggingEnableTimestamps
    - LogSetGlobalLevelArgOrExit
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *CheckOpts(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LoadPubkeyDigest
      Src: /src/core/cf-key/cf-key-functions.c:51,1
    - Dst: fprintf
      Src: /src/core/cf-key/cf-key-functions.c:58,1
    - Dst: free
      Src: /src/core/cf-key/cf-key-functions.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pubkey
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: PrintDigest
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 1
    functionsReached:
    - free
    - LoadPubkeyDigest
    - fprintf
    linkageType: ''
    returnType: int
    signature: int PrintDigest(const char *pubkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/core/cf-key/cf-key-functions.c:87,1
    - Dst: strchr
      Src: /src/core/cf-key/cf-key-functions.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - keyarg
    - filename
    - ipaddr
    - username
    argTypes:
    - char*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 118
    functionName: ParseKeyArg
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 1
    functionsReached:
    - strchr
    - strrchr
    linkageType: ''
    returnType: void
    signature: void ParseKeyArg(char *keyarg, char **filename, char **ipaddr, char
      **username)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IPString2Hostname
      Src: /src/core/cf-key/cf-key-functions.c:142,1
    - Dst: strcpy
      Src: /src/core/cf-key/cf-key-functions.c:145,1
    - Dst: strlcpy
      Src: /src/core/cf-key/cf-key-functions.c:150,1
    - Dst: printf
      Src: /src/core/cf-key/cf-key-functions.c:156,1
    - Dst: cf_strtimestamp_local
      Src: /src/core/cf-key/cf-key-functions.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - hostkey
    - address
    - incoming
    - quality
    - ctx
    argTypes:
    - char*
    - char*
    - bool
    - KeyHostSeen*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 162
    functionName: ShowHost
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 0
    functionsReached:
    - IPString2Hostname
    - printf
    - cf_strtimestamp_local
    - strcpy
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool ShowHost(\n    const char *const hostkey,\n    const char *const
      address,\n    bool incoming,\n    const KeyHostSeen *const quality,\n    void
      *const ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-key/cf-key-functions.c:170,1
    - Dst: ScanLastSeenQuality
      Src: /src/core/cf-key/cf-key-functions.c:178,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:180,1
    - Dst: printf
      Src: /src/core/cf-key/cf-key-functions.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - truncate
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 185
    functionName: ShowLastSeenHosts
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 1
    functionsReached:
    - Log
    - ScanLastSeenQuality
    - printf
    linkageType: ''
    returnType: void
    signature: void ShowLastSeenHosts(bool truncate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RemoveKeysFromLastSeen
      Src: /src/core/cf-key/cf-key-functions.c:201,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:207,1
    - Dst: RemovePublicKey
      Src: /src/core/cf-key/cf-key-functions.c:209,1
    - Dst: RemovePublicKey
      Src: /src/core/cf-key/cf-key-functions.c:210,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:214,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:219,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - input
    - must_be_coherent
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 230
    functionName: RemoveKeys
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 1
    functionsReached:
    - RemoveKeysFromLastSeen
    - Log
    - RemovePublicKey
    linkageType: ''
    returnType: int
    signature: int RemoveKeys(const char *input, bool must_be_coherent)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen_create_perms
      Src: /src/core/cf-key/cf-key-functions.c:234,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:237,1
    - Dst: GetErrorStr
      Src: /src/core/cf-key/cf-key-functions.c:239,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:243,1
    - Dst: PEM_write_RSAPrivateKey
      Src: /src/core/cf-key/cf-key-functions.c:245,1
    - Dst: fclose
      Src: /src/core/cf-key/cf-key-functions.c:246,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:250,1
    - Dst: CryptoLastErrorString
      Src: /src/core/cf-key/cf-key-functions.c:252,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/cf-key/cf-key-functions.c:256,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:259,1
    - Dst: GetErrorStr
      Src: /src/core/cf-key/cf-key-functions.c:261,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:265,1
    - Dst: PEM_write_RSAPublicKey
      Src: /src/core/cf-key/cf-key-functions.c:267,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:269,1
    - Dst: CryptoLastErrorString
      Src: /src/core/cf-key/cf-key-functions.c:271,1
    - Dst: fclose
      Src: /src/core/cf-key/cf-key-functions.c:275,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:278,1
    - Dst: GetWorkDir
      Src: /src/core/cf-key/cf-key-functions.c:278,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:279,1
    - Dst: RAND_write_file
      Src: /src/core/cf-key/cf-key-functions.c:281,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:283,1
    - Dst: unlink
      Src: /src/core/cf-key/cf-key-functions.c:284,1
    - Dst: chmod
      Src: /src/core/cf-key/cf-key-functions.c:288,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:290,1
    - Dst: GetErrorStr
      Src: /src/core/cf-key/cf-key-functions.c:292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - pair
    - public_key_file
    - private_key_file
    argTypes:
    - RSA*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 297
    functionName: KeepKeyPromisesRSA
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - snprintf
    - unlink
    - RAND_write_file
    - CryptoLastErrorString
    - safe_fopen_create_perms
    - PEM_write_RSAPublicKey
    - Log
    - fclose
    - PEM_write_RSAPrivateKey
    - chmod
    - GetWorkDir
    linkageType: ''
    returnType: bool
    signature: bool KeepKeyPromisesRSA(RSA *pair, const char *public_key_file, const
      char *private_key_file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/cf-key/cf-key-functions.c:303,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:305,1
    - Dst: stat
      Src: /src/core/cf-key/cf-key-functions.c:309,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:311,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:315,1
    - Dst: RSA_new
      Src: /src/core/cf-key/cf-key-functions.c:317,1
    - Dst: BN_new
      Src: /src/core/cf-key/cf-key-functions.c:318,1
    - Dst: BN_set_word
      Src: /src/core/cf-key/cf-key-functions.c:321,1
    - Dst: RSA_generate_key_ex
      Src: /src/core/cf-key/cf-key-functions.c:322,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-key/cf-key-functions.c:325,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-key/cf-key-functions.c:330,1
    - Dst: BN_clear_free
      Src: /src/core/cf-key/cf-key-functions.c:333,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:337,1
    - Dst: CryptoLastErrorString
      Src: /src/core/cf-key/cf-key-functions.c:338,1
    - Dst: KeepKeyPromisesRSA
      Src: /src/core/cf-key/cf-key-functions.c:341,1
    - Dst: RSA_free
      Src: /src/core/cf-key/cf-key-functions.c:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - public_key_file
    - private_key_file
    - key_size
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 344
    functionName: KeepKeyPromises
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 1
    functionsReached:
    - stat
    - DESTROY_AND_NULL
    - RSA_generate_key_ex
    - RSA_new
    - BN_new
    - CryptoLastErrorString
    - KeepKeyPromisesRSA
    - BN_set_word
    - Log
    - BN_clear_free
    - RSA_free
    linkageType: ''
    returnType: bool
    signature: bool KeepKeyPromises(const char *public_key_file, const char *private_key_file,
      const int key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - char
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: ENTERPRISE_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_1ARG_DEFINE_STUB(bool, LicenseInstall, ARG_UNUSED
      char *, path_source)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/cf-key/cf-key-functions.c:374,1
    - Dst: OpenDB
      Src: /src/core/cf-key/cf-key-functions.c:375,1
    - Dst: NewDBCursor
      Src: /src/core/cf-key/cf-key-functions.c:377,1
    - Dst: NextDB
      Src: /src/core/cf-key/cf-key-functions.c:379,1
    - Dst: strncmp
      Src: /src/core/cf-key/cf-key-functions.c:385,1
    - Dst: strlen
      Src: /src/core/cf-key/cf-key-functions.c:385,1
    - Dst: SeqAppend
      Src: /src/core/cf-key/cf-key-functions.c:387,1
    - Dst: xstrdup
      Src: /src/core/cf-key/cf-key-functions.c:387,1
    - Dst: DeleteDBCursor
      Src: /src/core/cf-key/cf-key-functions.c:390,1
    - Dst: CloseDB
      Src: /src/core/cf-key/cf-key-functions.c:392,1
    - Dst: OpenDB
      Src: /src/core/cf-key/cf-key-functions.c:394,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:397,1
    - Dst: ReadDB
      Src: /src/core/cf-key/cf-key-functions.c:399,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:401,1
    - Dst: SeqAppend
      Src: /src/core/cf-key/cf-key-functions.c:405,1
    - Dst: xstrdup
      Src: /src/core/cf-key/cf-key-functions.c:405,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:407,1
    - Dst: DeleteDB
      Src: /src/core/cf-key/cf-key-functions.c:408,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:409,1
    - Dst: DeleteDB
      Src: /src/core/cf-key/cf-key-functions.c:410,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:411,1
    - Dst: DeleteDB
      Src: /src/core/cf-key/cf-key-functions.c:412,1
    - Dst: RemovePublicKey
      Src: /src/core/cf-key/cf-key-functions.c:413,1
    - Dst: SeqLength
      Src: /src/core/cf-key/cf-key-functions.c:414,1
    - Dst: SeqAt
      Src: /src/core/cf-key/cf-key-functions.c:416,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:417,1
    - Dst: DeleteDB
      Src: /src/core/cf-key/cf-key-functions.c:418,1
    - Dst: CloseDB
      Src: /src/core/cf-key/cf-key-functions.c:420,1
    - Dst: SeqDestroy
      Src: /src/core/cf-key/cf-key-functions.c:422,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - hash
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 424
    functionName: ForceKeyRemoval
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 1
    functionsReached:
    - strncmp
    - DeleteDB
    - snprintf
    - NewDBCursor
    - strlen
    - SeqDestroy
    - OpenDB
    - DeleteDBCursor
    - SeqNew
    - ReadDB
    - Log
    - xstrdup
    - CloseDB
    - NextDB
    - SeqLength
    - SeqAt
    - RemovePublicKey
    - SeqAppend
    linkageType: ''
    returnType: int
    signature: int ForceKeyRemoval(const char *hash)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/cf-key/cf-key-functions.c:446,1
    - Dst: OpenDB
      Src: /src/core/cf-key/cf-key-functions.c:447,1
    - Dst: NewDBCursor
      Src: /src/core/cf-key/cf-key-functions.c:449,1
    - Dst: NextDB
      Src: /src/core/cf-key/cf-key-functions.c:451,1
    - Dst: strncmp
      Src: /src/core/cf-key/cf-key-functions.c:457,1
    - Dst: strlen
      Src: /src/core/cf-key/cf-key-functions.c:457,1
    - Dst: SeqAppend
      Src: /src/core/cf-key/cf-key-functions.c:459,1
    - Dst: xstrdup
      Src: /src/core/cf-key/cf-key-functions.c:459,1
    - Dst: DeleteDBCursor
      Src: /src/core/cf-key/cf-key-functions.c:462,1
    - Dst: CloseDB
      Src: /src/core/cf-key/cf-key-functions.c:464,1
    - Dst: OpenDB
      Src: /src/core/cf-key/cf-key-functions.c:466,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:469,1
    - Dst: ReadDB
      Src: /src/core/cf-key/cf-key-functions.c:471,1
    - Dst: Log
      Src: /src/core/cf-key/cf-key-functions.c:473,1
    - Dst: SeqAppend
      Src: /src/core/cf-key/cf-key-functions.c:477,1
    - Dst: xstrdup
      Src: /src/core/cf-key/cf-key-functions.c:477,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:479,1
    - Dst: DeleteDB
      Src: /src/core/cf-key/cf-key-functions.c:480,1
    - Dst: SeqLength
      Src: /src/core/cf-key/cf-key-functions.c:481,1
    - Dst: SeqAt
      Src: /src/core/cf-key/cf-key-functions.c:483,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:484,1
    - Dst: DeleteDB
      Src: /src/core/cf-key/cf-key-functions.c:485,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:486,1
    - Dst: DeleteDB
      Src: /src/core/cf-key/cf-key-functions.c:487,1
    - Dst: snprintf
      Src: /src/core/cf-key/cf-key-functions.c:488,1
    - Dst: DeleteDB
      Src: /src/core/cf-key/cf-key-functions.c:489,1
    - Dst: RemovePublicKey
      Src: /src/core/cf-key/cf-key-functions.c:490,1
    - Dst: CloseDB
      Src: /src/core/cf-key/cf-key-functions.c:492,1
    - Dst: SeqDestroy
      Src: /src/core/cf-key/cf-key-functions.c:494,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - ip
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 496
    functionName: ForceIpAddressRemoval
    functionSourceFile: /src/core/cf-key/cf-key-functions.c
    functionUses: 1
    functionsReached:
    - strncmp
    - DeleteDB
    - snprintf
    - NewDBCursor
    - strlen
    - SeqDestroy
    - OpenDB
    - DeleteDBCursor
    - SeqNew
    - ReadDB
    - Log
    - xstrdup
    - CloseDB
    - NextDB
    - SeqLength
    - SeqAt
    - RemovePublicKey
    - SeqAppend
    linkageType: ''
    returnType: int
    signature: int ForceIpAddressRemoval(const char *ip)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SetupSignalsForAgent
      Src: /src/core/cf-promises/cf-promises.c:144,1
    - Dst: CheckOpts
      Src: /src/core/cf-promises/cf-promises.c:146,1
    - Dst: EvalContextNew
      Src: /src/core/cf-promises/cf-promises.c:148,1
    - Dst: GenericAgentConfigApply
      Src: /src/core/cf-promises/cf-promises.c:149,1
    - Dst: strrchr
      Src: /src/core/cf-promises/cf-promises.c:152,1
    - Dst: GenericAgentDiscoverContext
      Src: /src/core/cf-promises/cf-promises.c:154,1
    - Dst: LoadPolicy
      Src: /src/core/cf-promises/cf-promises.c:156,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:159,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:160,1
    - Dst: GenericAgentPostLoadInit
      Src: /src/core/cf-promises/cf-promises.c:163,1
    - Dst: GenericAgentTagReleaseDirectory
      Src: /src/core/cf-promises/cf-promises.c:168,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:171,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:175,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:176,1
    - Dst: FileWriter
      Src: /src/core/cf-promises/cf-promises.c:187,1
    - Dst: PolicyToString
      Src: /src/core/cf-promises/cf-promises.c:188,1
    - Dst: WriterClose
      Src: /src/core/cf-promises/cf-promises.c:189,1
    - Dst: FileWriter
      Src: /src/core/cf-promises/cf-promises.c:195,1
    - Dst: PolicyToJson
      Src: /src/core/cf-promises/cf-promises.c:196,1
    - Dst: JsonWrite
      Src: /src/core/cf-promises/cf-promises.c:197,1
    - Dst: JsonDestroy
      Src: /src/core/cf-promises/cf-promises.c:198,1
    - Dst: WriterClose
      Src: /src/core/cf-promises/cf-promises.c:199,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-promises/cf-promises.c:209,1
    - Dst: GetInputDir
      Src: /src/core/cf-promises/cf-promises.c:209,1
    - Dst: Cf3ParseFile
      Src: /src/core/cf-promises/cf-promises.c:213,1
    - Dst: CF_ASSERT_FIX
      Src: /src/core/cf-promises/cf-promises.c:214,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:214,1
    - Dst: FileWriter
      Src: /src/core/cf-promises/cf-promises.c:217,1
    - Dst: PolicyToString
      Src: /src/core/cf-promises/cf-promises.c:220,1
    - Dst: PolicyToJson
      Src: /src/core/cf-promises/cf-promises.c:224,1
    - Dst: JsonWrite
      Src: /src/core/cf-promises/cf-promises.c:225,1
    - Dst: JsonDestroy
      Src: /src/core/cf-promises/cf-promises.c:226,1
    - Dst: WriterClose
      Src: /src/core/cf-promises/cf-promises.c:228,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-promises/cf-promises.c:229,1
    - Dst: GenericAgentShowContextsFormatted
      Src: /src/core/cf-promises/cf-promises.c:240,1
    - Dst: free
      Src: /src/core/cf-promises/cf-promises.c:241,1
    - Dst: GenericAgentShowVariablesFormatted
      Src: /src/core/cf-promises/cf-promises.c:246,1
    - Dst: free
      Src: /src/core/cf-promises/cf-promises.c:247,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-promises/cf-promises.c:250,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-promises/cf-promises.c:251,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 252
    functionName: main
    functionSourceFile: /src/core/cf-promises/cf-promises.c
    functionUses: 1
    functionsReached:
    - PolicyDestroy
    - LoadPolicy
    - Log
    - GetInputDir
    - Cf3ParseFile
    - free
    - FileWriter
    - GenericAgentConfigSetInputFile
    - CF_ASSERT_FIX
    - CheckOpts
    - GenericAgentPostLoadInit
    - EvalContextNew
    - strrchr
    - WriterClose
    - GenericAgentTagReleaseDirectory
    - SetupSignalsForAgent
    - PolicyToJson
    - DoCleanupAndExit
    - GenericAgentShowContextsFormatted
    - PolicyToString
    - JsonDestroy
    - GenericAgentConfigApply
    - GenericAgentFinalize
    - GenericAgentDiscoverContext
    - JsonWrite
    - GenericAgentShowVariablesFormatted
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/cf-promises/cf-promises.c:263,1
    - Dst: GetTTYInteractive
      Src: /src/core/cf-promises/cf-promises.c:263,1
    - Dst: getopt_long
      Src: /src/core/cf-promises/cf-promises.c:266,1
    - Dst: strcmp
      Src: /src/core/cf-promises/cf-promises.c:277,1
    - Dst: xstrdup
      Src: /src/core/cf-promises/cf-promises.c:285,1
    - Dst: xstrdup
      Src: /src/core/cf-promises/cf-promises.c:293,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:298,1
    - Dst: StringConcatenate
      Src: /src/core/cf-promises/cf-promises.c:299,1
    - Dst: putenv_wrapper
      Src: /src/core/cf-promises/cf-promises.c:300,1
    - Dst: free
      Src: /src/core/cf-promises/cf-promises.c:301,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-promises/cf-promises.c:310,1
    - Dst: GetInputDir
      Src: /src/core/cf-promises/cf-promises.c:310,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-promises/cf-promises.c:315,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-promises/cf-promises.c:319,1
    - Dst: RlistFromSplitString
      Src: /src/core/cf-promises/cf-promises.c:325,1
    - Dst: GenericAgentConfigSetBundleSequence
      Src: /src/core/cf-promises/cf-promises.c:326,1
    - Dst: RlistDestroy
      Src: /src/core/cf-promises/cf-promises.c:327,1
    - Dst: strcmp
      Src: /src/core/cf-promises/cf-promises.c:332,1
    - Dst: strcmp
      Src: /src/core/cf-promises/cf-promises.c:336,1
    - Dst: strcmp
      Src: /src/core/cf-promises/cf-promises.c:340,1
    - Dst: strcmp
      Src: /src/core/cf-promises/cf-promises.c:344,1
    - Dst: strcmp
      Src: /src/core/cf-promises/cf-promises.c:348,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:354,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:355,1
    - Dst: strcmp
      Src: /src/core/cf-promises/cf-promises.c:360,1
    - Dst: strcmp
      Src: /src/core/cf-promises/cf-promises.c:364,1
    - Dst: SyntaxToJson
      Src: /src/core/cf-promises/cf-promises.c:366,1
    - Dst: FileWriter
      Src: /src/core/cf-promises/cf-promises.c:367,1
    - Dst: JsonWrite
      Src: /src/core/cf-promises/cf-promises.c:368,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-promises/cf-promises.c:369,1
    - Dst: JsonDestroy
      Src: /src/core/cf-promises/cf-promises.c:370,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:371,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:375,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:376,1
    - Dst: StringSetFromString
      Src: /src/core/cf-promises/cf-promises.c:386,1
    - Dst: StringSetJoin
      Src: /src/core/cf-promises/cf-promises.c:393,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-promises/cf-promises.c:394,1
    - Dst: StringSetFromString
      Src: /src/core/cf-promises/cf-promises.c:401,1
    - Dst: StringSetJoin
      Src: /src/core/cf-promises/cf-promises.c:408,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-promises/cf-promises.c:409,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-promises/cf-promises.c:415,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-promises/cf-promises.c:419,1
    - Dst: FileWriter
      Src: /src/core/cf-promises/cf-promises.c:429,1
    - Dst: GenericAgentWriteVersion
      Src: /src/core/cf-promises/cf-promises.c:430,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-promises/cf-promises.c:431,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:433,1
    - Dst: FileWriter
      Src: /src/core/cf-promises/cf-promises.c:437,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-promises/cf-promises.c:438,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-promises/cf-promises.c:439,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:441,1
    - Dst: FileWriter
      Src: /src/core/cf-promises/cf-promises.c:445,1
    - Dst: ManPageWrite
      Src: /src/core/cf-promises/cf-promises.c:446,1
    - Dst: time
      Src: /src/core/cf-promises/cf-promises.c:446,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-promises/cf-promises.c:452,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:453,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:457,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:458,1
    - Dst: GenericAgentConfigParseWarningOptions
      Src: /src/core/cf-promises/cf-promises.c:462,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:464,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:465,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:470,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:471,1
    - Dst: GenericAgentConfigParseColor
      Src: /src/core/cf-promises/cf-promises.c:474,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:476,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-promises/cf-promises.c:481,1
    - Dst: xstrdup
      Src: /src/core/cf-promises/cf-promises.c:483,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/cf-promises/cf-promises.c:487,1
    - Dst: StringEqual
      Src: /src/core/cf-promises/cf-promises.c:494,1
    - Dst: StringEqual
      Src: /src/core/cf-promises/cf-promises.c:498,1
    - Dst: LogEnableModulesFromString
      Src: /src/core/cf-promises/cf-promises.c:500,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:503,1
    - Dst: FileWriter
      Src: /src/core/cf-promises/cf-promises.c:510,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-promises/cf-promises.c:511,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-promises/cf-promises.c:512,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:514,1
    - Dst: GenericAgentConfigParseArguments
      Src: /src/core/cf-promises/cf-promises.c:519,1
    - Dst: Log
      Src: /src/core/cf-promises/cf-promises.c:521,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-promises/cf-promises.c:522,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-promises/cf-promises.c:525,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 176
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 527
    functionName: CheckOpts
    functionSourceFile: /src/core/cf-promises/cf-promises.c
    functionUses: 4
    functionsReached:
    - CallCleanupFunctions
    - putenv_wrapper
    - GenericAgentConfigParseColor
    - Log
    - GetInputDir
    - free
    - FileWriterDetach
    - time
    - StringEqual
    - FileWriter
    - GenericAgentConfigSetInputFile
    - WriterWriteHelp
    - ManPageWrite
    - GenericAgentConfigParseWarningOptions
    - GenericAgentConfigSetBundleSequence
    - strcmp
    - xstrdup
    - GenericAgentConfigNewDefault
    - RlistDestroy
    - GenericAgentWriteVersion
    - LogSetGlobalLevel
    - SyntaxToJson
    - GetTTYInteractive
    - GenericAgentConfigParseArguments
    - getopt_long
    - StringSetFromString
    - DoCleanupAndExit
    - StringSetJoin
    - JsonDestroy
    - LogEnableModulesFromString
    - LoggingEnableTimestamps
    - StringSetDestroy
    - RlistFromSplitString
    - StringConcatenate
    - JsonWrite
    - LogSetGlobalLevelArgOrExit
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *CheckOpts(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:39,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:44,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:46,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:49,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:51,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:52,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:53,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:58,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:59,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:60,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:62,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:65,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:67,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:67,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:69,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:70,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:72,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:74,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:74,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:75,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:79,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:81,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:83,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:84,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:85,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:86,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:88,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:90,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:91,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:93,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:94,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:95,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:98,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:99,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:100,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:102,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:102,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:103,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:104,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:104,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:105,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:106,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:106,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:108,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:108,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:110,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:110,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:111,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:112,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:112,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:114,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:114,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:115,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:116,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:116,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:117,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:118,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:118,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:119,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:120,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:120,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:121,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:122,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:122,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:123,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:124,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 125
    functionName: test_ipv4
    functionSourceFile: /src/core/libntech/tests/unit/ipaddress_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IPV4_parser
    - memset
    linkageType: ''
    returnType: void
    signature: void test_ipv4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:141,1
    - Dst: Char2Hex
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:141,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:143,1
    - Dst: Char2Hex
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 144
    functionName: test_char2hex
    functionSourceFile: /src/core/libntech/tests/unit/ipaddress_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - Char2Hex
    linkageType: ''
    returnType: void
    signature: void test_char2hex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:165,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:166,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:166,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:167,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:168,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:169,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:170,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:171,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:172,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:173,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:174,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:175,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:176,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:177,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:177,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:178,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:179,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:180,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:181,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:182,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:183,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:184,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:185,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:186,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:187,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:188,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:188,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:189,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:190,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:191,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:192,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:193,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:194,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:195,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:196,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:197,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:198,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:199,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:199,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:200,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:201,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:202,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:203,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:204,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:205,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:206,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:207,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:208,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:209,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:210,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:210,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:211,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:212,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:213,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:214,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:215,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:216,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:217,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:218,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:219,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:220,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:221,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:221,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:222,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:223,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:224,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:225,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:226,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:227,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:228,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:229,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:230,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:231,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:232,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:232,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:233,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:234,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:235,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:236,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:237,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:238,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:239,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:240,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:241,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:242,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:243,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:243,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:244,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:245,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:246,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:247,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:248,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:249,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:250,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:251,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:252,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:253,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:254,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:254,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:255,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:256,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:257,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:258,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:259,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:260,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:261,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:262,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:263,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:264,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:265,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:265,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:266,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:267,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 268
    functionName: test_ipv6
    functionSourceFile: /src/core/libntech/tests/unit/ipaddress_test.c
    functionUses: 0
    functionsReached:
    - IPV6_parser
    - assert_int_equal
    - memset
    linkageType: ''
    returnType: void
    signature: void test_ipv6(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:282,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:283,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:284,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:284,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:285,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:286,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:287,1
    - Dst: IPAddressType
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:287,1
    - Dst: IPAddressGetAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:288,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:289,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:289,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:290,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:291,1
    - Dst: IPAddressGetPort
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:291,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:292,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:292,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:294,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:294,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:295,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:296,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:297,1
    - Dst: IPAddressType
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:297,1
    - Dst: IPAddressGetAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:298,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:299,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:299,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:300,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:301,1
    - Dst: IPAddressGetPort
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:301,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:302,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:302,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:304,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:304,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:305,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:306,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:307,1
    - Dst: IPAddressType
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:307,1
    - Dst: IPAddressGetAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:308,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:309,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:309,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:310,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:311,1
    - Dst: IPAddressGetPort
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:311,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:312,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:312,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:314,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:314,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:315,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:316,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:317,1
    - Dst: IPAddressType
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:317,1
    - Dst: IPAddressGetAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:318,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:319,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:319,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:320,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:321,1
    - Dst: IPAddressGetPort
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:321,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:322,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:322,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 325
    functionName: test_generic_interface
    functionSourceFile: /src/core/libntech/tests/unit/ipaddress_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_int_equal
    - IPAddressGetAddress
    - IPAddressType
    - DESTROY_AND_NULL
    - strlen
    - BufferDestroy
    - assert_true
    - BufferSet
    - IPAddressDestroy
    - IPAddressGetPort
    - IPAddressNew
    - assert_string_equal
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_generic_interface(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:345,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:346,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:347,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:347,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:348,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:349,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:351,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:352,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:353,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:353,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:354,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:355,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:357,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:357,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:359,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:359,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:360,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:360,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:361,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:362,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:364,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:364,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:366,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:366,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:367,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:367,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:368,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:369,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:371,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:371,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:373,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:373,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:374,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:374,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:375,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:376,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:378,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:378,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:380,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:380,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:381,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:381,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:382,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:383,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:385,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:385,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:386,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:386,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:387,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:388,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:390,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:390,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:392,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:392,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:393,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:393,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:394,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:395,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:397,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:397,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:399,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:399,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:400,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:400,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:402,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:402,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:403,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:403,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:404,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:405,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:407,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:407,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:408,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:408,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:410,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:410,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:411,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:411,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:413,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 415
    functionName: test_ipv4_address_comparison
    functionSourceFile: /src/core/libntech/tests/unit/ipaddress_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - BufferDestroy
    - strlen
    - assert_true
    - BufferSet
    - IPAddressDestroy
    - IPAddressNew
    - BufferNew
    - IPAddressIsEqual
    linkageType: ''
    returnType: void
    signature: void test_ipv4_address_comparison(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:446,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:447,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:448,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:448,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:449,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:450,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:452,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:453,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:454,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:454,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:455,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:456,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:458,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:458,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:460,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:461,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:461,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:462,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:462,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:463,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:464,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:466,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:466,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:468,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:469,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:469,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:470,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:470,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:471,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:472,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:474,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:474,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:476,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:477,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:477,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:478,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:478,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:479,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:480,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:482,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:482,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:484,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:485,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:485,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:486,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:486,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:487,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:488,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:490,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:490,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:492,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:493,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:493,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:494,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:494,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:495,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:496,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:498,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:498,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:500,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:501,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:501,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:502,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:502,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:503,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:504,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:506,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:506,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:508,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:509,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:509,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:510,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:510,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:511,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:512,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:514,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:514,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:516,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:517,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:517,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:518,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:518,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:519,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:520,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:522,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:522,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:524,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:525,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:525,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:526,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:526,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:527,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:528,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:530,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:531,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:531,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:532,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:532,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:533,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:534,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:536,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:536,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:538,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:539,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:539,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:540,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:540,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:541,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:542,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:544,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:544,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:546,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:547,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:547,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:548,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:548,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:549,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:550,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:552,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:552,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:554,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:555,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:555,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:556,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:556,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:557,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:558,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:560,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:561,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:561,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:562,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:562,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:563,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:564,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:566,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:566,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:568,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:568,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:570,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:571,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:571,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:572,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:572,1
    - Dst: IPAddressNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:573,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:574,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:576,1
    - Dst: IPAddressIsEqual
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:576,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:578,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:579,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:580,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:580,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:581,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 582
    functionName: test_ipv6_address_comparison
    functionSourceFile: /src/core/libntech/tests/unit/ipaddress_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - BufferDestroy
    - strlen
    - assert_true
    - BufferSet
    - IPAddressDestroy
    - IPAddressNew
    - BufferNew
    - IPAddressIsEqual
    linkageType: ''
    returnType: void
    signature: void test_ipv6_address_comparison(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:604,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:605,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:607,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:607,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:608,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:608,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:609,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:609,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:610,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:611,1
    - Dst: IPAddressType
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:611,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:612,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:613,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:613,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:615,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:615,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:616,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:616,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:617,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:617,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:618,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:619,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:621,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:621,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:622,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:622,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:623,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:623,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:624,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:625,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:627,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:627,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:628,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:628,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:629,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:629,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:630,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:631,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:633,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:633,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:634,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:634,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:635,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:635,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:636,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:637,1
    - Dst: IPAddressType
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:637,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:638,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:639,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:639,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:641,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:641,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:642,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:642,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:643,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:643,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:644,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:645,1
    - Dst: IPAddressType
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:645,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:646,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:647,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:647,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:649,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:649,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:650,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:650,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:651,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:651,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:652,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:653,1
    - Dst: IPAddressType
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:653,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:654,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:655,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:655,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:657,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:657,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:658,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:658,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:659,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:659,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:660,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:661,1
    - Dst: IPAddressType
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:661,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:662,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:663,1
    - Dst: IPAddressDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:663,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:665,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:665,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:666,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:666,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:667,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:667,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:668,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:670,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:670,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:671,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:671,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:672,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:672,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:673,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 676
    functionName: test_isipaddress
    functionSourceFile: /src/core/libntech/tests/unit/ipaddress_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - IPAddressType
    - BufferDestroy
    - strlen
    - assert_true
    - BufferSet
    - IPAddressDestroy
    - IPAddressIsIPAddress
    - BufferClear
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_isipaddress(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:682,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:682,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:683,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:683,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:684,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:684,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:685,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:685,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:686,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:686,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:687,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:687,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:688,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:688,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:689,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:689,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:690,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:690,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:691,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:691,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:692,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:692,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:693,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:693,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:694,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:694,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:695,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:695,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:696,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:696,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:697,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:697,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:698,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:698,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:699,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:699,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:700,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:700,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:701,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:701,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:702,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:702,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:703,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:703,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:704,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:704,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:705,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:705,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:706,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:706,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:707,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:707,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:708,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:708,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:709,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:709,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:710,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:710,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:711,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:711,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:712,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:712,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:713,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:713,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:714,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:714,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:715,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:715,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:717,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:717,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:718,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:718,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:719,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:719,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:720,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:720,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:721,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:721,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:722,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:722,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:723,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:723,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:724,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:724,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:725,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:725,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:726,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:726,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:727,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:727,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:728,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:728,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:729,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:729,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:732,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:732,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:733,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:733,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:734,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:734,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:735,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:735,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:736,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:736,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:738,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:738,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:739,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:739,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:740,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:740,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:741,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:741,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:742,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:742,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:743,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:743,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:744,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:744,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:745,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:745,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:746,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:746,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:747,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:747,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:750,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:750,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:751,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:751,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:752,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 754
    functionName: test_string_is_local_host_ip
    functionSourceFile: /src/core/libntech/tests/unit/ipaddress_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - StringIsLocalHostIP
    linkageType: ''
    returnType: void
    signature: void test_string_is_local_host_ip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:758,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:761,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:762,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:763,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:764,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:765,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:766,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:767,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:768,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/ipaddress_test.c:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 772
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/ipaddress_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountNew
      Src: /src/core/libntech/tests/unit/refcount_test.c:9,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:10,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:11,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:12,1
    - Dst: RefCountDestroy
      Src: /src/core/libntech/tests/unit/refcount_test.c:14,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:15,1
    - Dst: RefCountDestroy
      Src: /src/core/libntech/tests/unit/refcount_test.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 19
    functionName: test_init_destroy_RefCount
    functionSourceFile: /src/core/libntech/tests/unit/refcount_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_true
    - RefCountNew
    - RefCountDestroy
    linkageType: ''
    returnType: void
    signature: void test_init_destroy_RefCount(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountNew
      Src: /src/core/libntech/tests/unit/refcount_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:34,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:35,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:36,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/tests/unit/refcount_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:41,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:42,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:43,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:44,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/tests/unit/refcount_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:49,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:50,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:51,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:52,1
    - Dst: RefCountDetach
      Src: /src/core/libntech/tests/unit/refcount_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:57,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:58,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:59,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:60,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/tests/unit/refcount_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:65,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:66,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:67,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:68,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/tests/unit/refcount_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:73,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:74,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:75,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:76,1
    - Dst: RefCountDetach
      Src: /src/core/libntech/tests/unit/refcount_test.c:79,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:81,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:82,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:83,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:84,1
    - Dst: RefCountDetach
      Src: /src/core/libntech/tests/unit/refcount_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:89,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:90,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:91,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:92,1
    - Dst: RefCountDestroy
      Src: /src/core/libntech/tests/unit/refcount_test.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 102
    functionName: test_attach_detach_RefCount
    functionSourceFile: /src/core/libntech/tests/unit/refcount_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - RefCountDetach
    - assert_true
    - RefCountNew
    - RefCountDestroy
    - RefCountAttach
    linkageType: ''
    returnType: void
    signature: void test_attach_detach_RefCount(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountNew
      Src: /src/core/libntech/tests/unit/refcount_test.c:111,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:112,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:113,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:114,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:117,1
    - Dst: RefCountIsShared
      Src: /src/core/libntech/tests/unit/refcount_test.c:117,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/tests/unit/refcount_test.c:120,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:122,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:123,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:124,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:125,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:128,1
    - Dst: RefCountIsShared
      Src: /src/core/libntech/tests/unit/refcount_test.c:128,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/tests/unit/refcount_test.c:131,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:133,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:134,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:135,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:136,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:139,1
    - Dst: RefCountIsShared
      Src: /src/core/libntech/tests/unit/refcount_test.c:139,1
    - Dst: RefCountDetach
      Src: /src/core/libntech/tests/unit/refcount_test.c:142,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:144,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:145,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:146,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:147,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:150,1
    - Dst: RefCountIsShared
      Src: /src/core/libntech/tests/unit/refcount_test.c:150,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:153,1
    - Dst: RefCountIsShared
      Src: /src/core/libntech/tests/unit/refcount_test.c:153,1
    - Dst: RefCountDestroy
      Src: /src/core/libntech/tests/unit/refcount_test.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 157
    functionName: test_isSharedRefCount
    functionSourceFile: /src/core/libntech/tests/unit/refcount_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - RefCountDetach
    - assert_true
    - RefCountNew
    - RefCountDestroy
    - RefCountIsShared
    - RefCountAttach
    linkageType: ''
    returnType: void
    signature: void test_isSharedRefCount(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RefCountNew
      Src: /src/core/libntech/tests/unit/refcount_test.c:166,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:167,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:168,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:169,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:175,1
    - Dst: RefCountIsEqual
      Src: /src/core/libntech/tests/unit/refcount_test.c:175,1
    - Dst: RefCountNew
      Src: /src/core/libntech/tests/unit/refcount_test.c:178,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/refcount_test.c:179,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:180,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/refcount_test.c:181,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:184,1
    - Dst: RefCountIsEqual
      Src: /src/core/libntech/tests/unit/refcount_test.c:184,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/tests/unit/refcount_test.c:187,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:190,1
    - Dst: RefCountIsEqual
      Src: /src/core/libntech/tests/unit/refcount_test.c:190,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/tests/unit/refcount_test.c:193,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:196,1
    - Dst: RefCountIsEqual
      Src: /src/core/libntech/tests/unit/refcount_test.c:196,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:199,1
    - Dst: RefCountIsEqual
      Src: /src/core/libntech/tests/unit/refcount_test.c:199,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:200,1
    - Dst: RefCountIsEqual
      Src: /src/core/libntech/tests/unit/refcount_test.c:200,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/refcount_test.c:203,1
    - Dst: RefCountIsEqual
      Src: /src/core/libntech/tests/unit/refcount_test.c:203,1
    - Dst: RefCountDestroy
      Src: /src/core/libntech/tests/unit/refcount_test.c:206,1
    - Dst: RefCountDestroy
      Src: /src/core/libntech/tests/unit/refcount_test.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 208
    functionName: test_isEqualRefCount
    functionSourceFile: /src/core/libntech/tests/unit/refcount_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - RefCountIsEqual
    - assert_true
    - RefCountNew
    - RefCountDestroy
    - RefCountAttach
    linkageType: ''
    returnType: void
    signature: void test_isEqualRefCount(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/refcount_test.c:213,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/refcount_test.c:214,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/refcount_test.c:215,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/refcount_test.c:216,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/refcount_test.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 220
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/refcount_test.c
    functionUses: 1
    functionsReached:
    - unit_test
    - run_tests
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqFromArgv
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:12,1
    - Dst: StringJoin
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:14,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:15,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:16,1
    - Dst: StringJoin
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:18,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:19,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:20,1
    - Dst: StringJoin
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:23,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:24,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:26,1
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:27,1
    - Dst: StringJoin
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:29,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:30,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:31,1
    - Dst: StringJoin
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:33,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:34,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:35,1
    - Dst: StringJoin
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:37,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:38,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:39,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 42
    functionName: test_StringJoin
    functionSourceFile: /src/core/libntech/tests/unit/string_sequence_test.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - SeqFromArgv
    - SeqNew
    - assert_string_equal
    - StringJoin
    - free
    linkageType: ''
    returnType: void
    signature: void test_StringJoin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:48,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:48,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:49,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:49,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:50,1
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:54,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:54,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:55,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:56,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:56,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:57,1
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:61,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:61,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:62,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:62,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:63,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:63,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:64,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:64,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:65,1
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:69,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:70,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:70,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:71,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:71,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:72,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:72,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:73,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:73,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:74,1
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:78,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:78,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:79,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:79,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:80,1
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:83,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:84,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:84,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:85,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:86,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:86,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:87,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:87,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:88,1
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:91,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:92,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:92,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:93,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:93,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:94,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:94,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:95,1
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:99,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:100,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:100,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:101,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:101,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:102,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:102,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:103,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:103,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:104,1
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:108,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:108,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:109,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:109,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:110,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:110,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:111,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:111,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:112,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:112,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:113,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:113,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:114,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:114,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:115,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:115,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:116,1
    - Dst: StringSplit
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:119,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:120,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:120,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:121,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:121,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 124
    functionName: test_StringSplit
    functionSourceFile: /src/core/libntech/tests/unit/string_sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - StringSplit
    - assert_string_equal
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void test_StringSplit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:128,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:131,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:132,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/string_sequence_test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/string_sequence_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/test.c:14,1
    - Dst: fgetpos
      Src: /src/core/libntech/tests/unit/test.c:14,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/test.c:16,1
    - Dst: fseek
      Src: /src/core/libntech/tests/unit/test.c:16,1
    - Dst: ftell
      Src: /src/core/libntech/tests/unit/test.c:17,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/test.c:18,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/test.c:20,1
    - Dst: fseek
      Src: /src/core/libntech/tests/unit/test.c:20,1
    - Dst: xcalloc
      Src: /src/core/libntech/tests/unit/test.c:22,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/test.c:23,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/test.c:23,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/test.c:25,1
    - Dst: fsetpos
      Src: /src/core/libntech/tests/unit/test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 28
    functionName: file_read_string
    functionSourceFile: /src/core/libntech/tests/unit/test.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - ftell
    - assert_int_equal
    - fsetpos
    - fgetpos
    - assert_true
    - fseek
    - fread
    linkageType: ''
    returnType: char
    signature: char *file_read_string(FILE *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_read_string
      Src: /src/core/libntech/tests/unit/test.c:32,1
    - Dst: file_read_string
      Src: /src/core/libntech/tests/unit/test.c:33,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/test.c:35,1
    - Dst: printf
      Src: /src/core/libntech/tests/unit/test.c:37,1
    - Dst: fail
      Src: /src/core/libntech/tests/unit/test.c:38,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/test.c:41,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/test.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FILE*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: assert_file_equal
    functionSourceFile: /src/core/libntech/tests/unit/test.c
    functionUses: 0
    functionsReached:
    - printf
    - fail
    - strcmp
    - free
    - file_read_string
    linkageType: ''
    returnType: void
    signature: void assert_file_equal(FILE *a, FILE *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/core/libntech/tests/unit/test.c:49,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/test.c:51,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/test.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - left
    - right
    - file
    - line
    argTypes:
    - double
    - double
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: _assert_double_close
    functionSourceFile: /src/core/libntech/tests/unit/test.c
    functionUses: 0
    functionsReached:
    - print_error
    - _fail
    - fabs
    linkageType: ''
    returnType: void
    signature: void _assert_double_close(double left, double right, const char *const
      file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/core/libntech/tests/unit/test.c:58,1
    - Dst: fflush
      Src: /src/core/libntech/tests/unit/test.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: test_progress
    functionSourceFile: /src/core/libntech/tests/unit/test.c
    functionUses: 1
    functionsReached:
    - putchar
    - fflush
    linkageType: ''
    returnType: void
    signature: void test_progress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/core/libntech/tests/unit/test.c:63,1
    - Dst: fflush
      Src: /src/core/libntech/tests/unit/test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: test_progress_end
    functionSourceFile: /src/core/libntech/tests/unit/test.c
    functionUses: 1
    functionsReached:
    - putchar
    - fflush
    linkageType: ''
    returnType: void
    signature: void test_progress_end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedStackNew
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:8,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:10,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:10,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:11,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:11,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:12,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:12,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:14,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:15,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:17,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:18,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:19,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:19,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:21,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:22,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:23,1
    - Dst: ThreadedStackDestroy
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 26
    functionName: test_push_pop
    functionSourceFile: /src/core/libntech/tests/unit/threaded_stack_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ThreadedStackPop
    - ThreadedStackDestroy
    - strcmp
    - xstrdup
    - free
    - ThreadedStackNew
    - ThreadedStackPush
    linkageType: ''
    returnType: void
    signature: void test_push_pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedStackNew
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:30,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:32,1
    - Dst: ThreadedStackIsEmpty
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:32,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:34,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:35,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:36,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:37,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:37,1
    - Dst: ThreadedStackDestroy
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ThreadedStackIsEmpty(stack))
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/libntech/tests/unit/threaded_stack_test.c
    - condition: (i_am_null == NULL)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/core/libntech/tests/unit/threaded_stack_test.c
    - condition: (ThreadedStackPop(stack) == NULL)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/core/libntech/tests/unit/threaded_stack_test.c
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: test_pop_empty_and_push_null
    functionSourceFile: /src/core/libntech/tests/unit/threaded_stack_test.c
    functionUses: 0
    functionsReached:
    - ThreadedStackPop
    - assert
    - ThreadedStackIsEmpty
    - ThreadedStackDestroy
    - ThreadedStackNew
    - ThreadedStackPush
    linkageType: ''
    returnType: void
    signature: void test_pop_empty_and_push_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedStackNew
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:44,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:46,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:46,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:47,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:47,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:48,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:48,1
    - Dst: ThreadedStackCopy
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:50,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:52,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:53,1
    - Dst: ThreadedStackCount
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:53,1
    - Dst: ThreadedStackCount
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:54,1
    - Dst: ThreadedStackCapacity
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:54,1
    - Dst: ThreadedStackCapacity
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:54,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:56,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:56,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:57,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:57,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:58,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:58,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:60,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:61,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:62,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:64,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:65,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:66,1
    - Dst: ThreadedStackSoftDestroy
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:68,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:71,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:71,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:72,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:72,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:73,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:73,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:74,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:74,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:75,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:75,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:77,1
    - Dst: ThreadedStackCount
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:78,1
    - Dst: ThreadedStackCapacity
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:78,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:80,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:81,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:82,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:83,1
    - Dst: ThreadedStackPop
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:84,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:86,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:87,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:87,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:88,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:89,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:89,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:90,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:90,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:92,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:93,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:94,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:95,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:96,1
    - Dst: ThreadedStackDestroy
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (old_str2 == new_str2)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/core/libntech/tests/unit/threaded_stack_test.c
    - condition: (old_str3 == new_str3)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/core/libntech/tests/unit/threaded_stack_test.c
    - condition: (new_stack != NULL)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/core/libntech/tests/unit/threaded_stack_test.c
    - condition: (old_str1 == new_str1)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/core/libntech/tests/unit/threaded_stack_test.c
    constantsTouched: []
    func_position:
      end: 99
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 99
    functionName: test_copy
    functionSourceFile: /src/core/libntech/tests/unit/threaded_stack_test.c
    functionUses: 0
    functionsReached:
    - ThreadedStackCopy
    - assert_int_equal
    - ThreadedStackPop
    - assert
    - ThreadedStackCount
    - ThreadedStackSoftDestroy
    - ThreadedStackDestroy
    - ThreadedStackCapacity
    - strcmp
    - xstrdup
    - free
    - ThreadedStackNew
    - ThreadedStackPush
    linkageType: ''
    returnType: void
    signature: void test_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedStackNew
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:103,1
    - Dst: ThreadedStackPushReportCount
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:105,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:105,1
    - Dst: ThreadedStackPushReportCount
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:106,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:106,1
    - Dst: ThreadedStackPushReportCount
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:107,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:107,1
    - Dst: ThreadedStackPushReportCount
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:108,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:108,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:110,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:111,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:112,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:113,1
    - Dst: ThreadedStackDestroy
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 116
    functionName: test_push_report_count
    functionSourceFile: /src/core/libntech/tests/unit/threaded_stack_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ThreadedStackDestroy
    - xstrdup
    - ThreadedStackPushReportCount
    - ThreadedStackNew
    linkageType: ''
    returnType: void
    signature: void test_push_report_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedStackNew
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:120,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:122,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:122,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:123,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:123,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:124,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:124,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:125,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:125,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:126,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:126,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:127,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:127,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:128,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:128,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:129,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:129,1
    - Dst: ThreadedStackPush
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:130,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:130,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:132,1
    - Dst: ThreadedStackCount
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:132,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:133,1
    - Dst: ThreadedStackCapacity
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:133,1
    - Dst: ThreadedStackDestroy
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 136
    functionName: test_expand
    functionSourceFile: /src/core/libntech/tests/unit/threaded_stack_test.c
    functionUses: 0
    functionsReached:
    - ThreadedStackNew
    - assert_int_equal
    - ThreadedStackDestroy
    - ThreadedStackCapacity
    - xstrdup
    - ThreadedStackCount
    - ThreadedStackPush
    linkageType: ''
    returnType: void
    signature: void test_expand(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:140,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:143,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:144,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:145,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:146,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:147,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/threaded_stack_test.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/threaded_stack_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:10,1
    - Dst: FSAttrsGetImmutableFlag
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:12,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:19,1
    - Dst: mkstemp
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:23,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:24,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:25,1
    - Dst: FSAttrsGetImmutableFlag
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:28,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:29,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 41
    functionName: test_fsattrs_immutable_flag
    functionSourceFile: /src/core/libntech/tests/unit/fsattrs_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - unlink
    - mkstemp
    - assert_int_not_equal
    - FSAttrsGetImmutableFlag
    - close
    linkageType: ''
    returnType: void
    signature: void test_fsattrs_immutable_flag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:45,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:48,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/fsattrs_test.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/fsattrs_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:18,1
    - Dst: StringCountTokens
      Src: /src/core/libntech/tests/unit/string_lib_test.c:18,1
    - Dst: StringGetToken
      Src: /src/core/libntech/tests/unit/string_lib_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:22,1
    - Dst: assert_memory_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:23,1
    - Dst: StringGetToken
      Src: /src/core/libntech/tests/unit/string_lib_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:28,1
    - Dst: assert_memory_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:29,1
    - Dst: StringGetToken
      Src: /src/core/libntech/tests/unit/string_lib_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:34,1
    - Dst: assert_memory_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:35,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:43,1
    - Dst: StringCountTokens
      Src: /src/core/libntech/tests/unit/string_lib_test.c:43,1
    - Dst: StringGetToken
      Src: /src/core/libntech/tests/unit/string_lib_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:47,1
    - Dst: assert_memory_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:48,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:56,1
    - Dst: StringCountTokens
      Src: /src/core/libntech/tests/unit/string_lib_test.c:56,1
    - Dst: StringGetToken
      Src: /src/core/libntech/tests/unit/string_lib_test.c:59,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:60,1
    - Dst: assert_memory_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 64
    functionName: test_get_token
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringCountTokens
    - strlen
    - StringGetToken
    - assert_memory_equal
    linkageType: ''
    returnType: void
    signature: void test_get_token(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToLowerStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: test_mix_case_tolower
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - ToLowerStrInplace
    linkageType: ''
    returnType: void
    signature: void test_mix_case_tolower(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToLowerStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:77,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: test_empty_tolower
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - ToLowerStrInplace
    linkageType: ''
    returnType: void
    signature: void test_empty_tolower(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:87,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:88,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: test_weird_chars_tolower
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - strlcpy
    - ToLowerStrInplace
    linkageType: ''
    returnType: void
    signature: void test_weird_chars_tolower(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:96,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:97,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: test_alphabet_tolower
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - strlcpy
    - ToLowerStrInplace
    linkageType: ''
    returnType: void
    signature: void test_alphabet_tolower(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:105,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:106,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: test_hi_alphabet_tolower
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - strlcpy
    - ToLowerStrInplace
    linkageType: ''
    returnType: void
    signature: void test_hi_alphabet_tolower(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToLowerStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:116,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:117,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:119,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: test_inplace_tolower
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - ToLowerStrInplace
    linkageType: ''
    returnType: void
    signature: void test_inplace_tolower(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUpperStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:126,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: test_mix_case_toupper
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - ToUpperStrInplace
    linkageType: ''
    returnType: void
    signature: void test_mix_case_toupper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUpperStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:133,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: test_empty_toupper
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - ToUpperStrInplace
    linkageType: ''
    returnType: void
    signature: void test_empty_toupper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:142,1
    - Dst: ToUpperStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:143,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: test_weird_chars_toupper
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - strlcpy
    - ToUpperStrInplace
    linkageType: ''
    returnType: void
    signature: void test_weird_chars_toupper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:151,1
    - Dst: ToUpperStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:152,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: test_alphabet_toupper
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - strlcpy
    - ToUpperStrInplace
    linkageType: ''
    returnType: void
    signature: void test_alphabet_toupper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:160,1
    - Dst: ToUpperStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:161,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: test_hi_alphabet_toupper
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - strlcpy
    - ToUpperStrInplace
    linkageType: ''
    returnType: void
    signature: void test_hi_alphabet_toupper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUpperStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:171,1
    - Dst: ToUpperStrInplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:172,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:174,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: test_inplace_toupper
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - ToUpperStrInplace
    linkageType: ''
    returnType: void
    signature: void test_inplace_toupper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SearchAndReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:180,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:182,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: test_long_search
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - SearchAndReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_long_search(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SearchAndReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:188,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:190,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: test_replace_empty_pattern
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - SearchAndReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_replace_empty_pattern(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SearchAndReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:196,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:198,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: test_replace_empty_replacement
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - SearchAndReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_replace_empty_replacement(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SearchAndReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:204,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:206,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: test_replace_eq_size
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - SearchAndReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_replace_eq_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SearchAndReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:212,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:214,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: test_replace_more_size
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - SearchAndReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_replace_more_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SearchAndReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:220,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:222,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: test_replace_less_size
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - SearchAndReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_replace_less_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SearchAndReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:228,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:231,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: test_no_replace
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - SearchAndReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_no_replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:245,1
    - Dst: StringReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:247,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:250,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: test_string_replace_empty_replacement
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringReplace
    - assert_string_equal
    - assert_int_not_equal
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_string_replace_empty_replacement(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:257,1
    - Dst: StringReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:259,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:261,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: test_string_replace_eq_size
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringReplace
    - assert_string_equal
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_string_replace_eq_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:270,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:273,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: test_string_replace_buf_too_small
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_string_replace_buf_too_small(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:280,1
    - Dst: StringReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:282,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:283,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: test_string_replace_smaller
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringReplace
    - assert_string_equal
    - assert_int_not_equal
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_string_replace_smaller(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:290,1
    - Dst: StringReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:292,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:295,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: test_string_replace_none
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringReplace
    - assert_string_equal
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_string_replace_none(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringReplace
      Src: /src/core/libntech/tests/unit/string_lib_test.c:304,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:307,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: test_string_replace_many_percentages
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_string_replace_many_percentages(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringReplaceN
      Src: /src/core/libntech/tests/unit/string_lib_test.c:315,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:316,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:317,1
    - Dst: StringReplaceN
      Src: /src/core/libntech/tests/unit/string_lib_test.c:320,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:321,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:322,1
    - Dst: StringReplaceN
      Src: /src/core/libntech/tests/unit/string_lib_test.c:325,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:326,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:327,1
    - Dst: StringReplaceN
      Src: /src/core/libntech/tests/unit/string_lib_test.c:330,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:331,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:332,1
    - Dst: StringReplaceN
      Src: /src/core/libntech/tests/unit/string_lib_test.c:335,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:336,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 338
    functionName: test_string_replace_n
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringReplaceN
    - assert_int_equal
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_string_replace_n(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringConcatenate
      Src: /src/core/libntech/tests/unit/string_lib_test.c:344,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:345,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:346,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/tests/unit/string_lib_test.c:348,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:349,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:350,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/tests/unit/string_lib_test.c:352,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:353,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:354,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/tests/unit/string_lib_test.c:356,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:357,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:358,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/tests/unit/string_lib_test.c:360,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 362
    functionName: test_concatenate
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringConcatenate
    - assert_false
    - assert_string_equal
    - free
    linkageType: ''
    returnType: void
    signature: void test_concatenate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:366,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:368,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: test_substring_overshoot
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - StringSubstring
    linkageType: ''
    returnType: void
    signature: void test_substring_overshoot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:375,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:376,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:377,1
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:380,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:381,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:382,1
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:385,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:386,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:387,1
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:390,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:391,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:392,1
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:395,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:396,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:397,1
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:400,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:401,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 404
    functionName: test_substring_result_is_one_char
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - StringSubstring
    linkageType: ''
    returnType: void
    signature: void test_substring_result_is_one_char(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:408,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:409,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: test_substring_empty_input
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - StringSubstring
    linkageType: ''
    returnType: void
    signature: void test_substring_empty_input(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:415,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:416,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: test_substring_empty_output
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - StringSubstring
    linkageType: ''
    returnType: void
    signature: void test_substring_empty_output(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:423,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:425,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 427
    functionName: test_substring_positive
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - StringSubstring
    linkageType: ''
    returnType: void
    signature: void test_substring_positive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:431,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:433,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: test_substring_negative_length
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - StringSubstring
    linkageType: ''
    returnType: void
    signature: void test_substring_negative_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:439,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:441,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 443
    functionName: test_substring_negative
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - StringSubstring
    linkageType: ''
    returnType: void
    signature: void test_substring_negative(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSubstring
      Src: /src/core/libntech/tests/unit/string_lib_test.c:447,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:448,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: test_substring_evil
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - StringSubstring
    linkageType: ''
    returnType: void
    signature: void test_substring_evil(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:456,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:456,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:457,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:457,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:458,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:458,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:459,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:459,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:460,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:460,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:463,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:463,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:464,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:464,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:467,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:467,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:468,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:468,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:469,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:469,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:470,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:470,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:473,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:473,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:474,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:474,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:475,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:475,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:476,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:476,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:477,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:477,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:478,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:478,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:481,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:481,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:482,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:482,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:483,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:483,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:484,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:484,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:485,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:485,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:486,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:486,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:489,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:489,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:490,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:490,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:491,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:491,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:494,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:494,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:495,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 496
    functionName: test_string_to_long
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringToLongExitOnError
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_string_to_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:500,1
    - Dst: StringToLongDefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:500,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:501,1
    - Dst: StringToLongDefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:501,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:502,1
    - Dst: StringToLongDefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:502,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:503,1
    - Dst: StringToLongDefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 504
    functionName: test_string_to_long_default
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringToLongDefaultOnError
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_string_to_long_default(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:510,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:510,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:511,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:514,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:514,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:515,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:515,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:516,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:516,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:517,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:517,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:518,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:518,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:519,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:519,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:520,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:520,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:521,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:521,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:524,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:524,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:527,1
    - Dst: StringToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:527,1
    - Dst: LogStringToLongError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:532,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 537
    functionName: test_string_to_long_errors
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringToLong
    - assert_int_equal
    - assert_int_not_equal
    - LogStringToLongError
    linkageType: ''
    returnType: void
    signature: void test_string_to_long_errors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:541,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:541,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:542,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:542,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:543,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:543,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:544,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:544,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:545,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:545,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:546,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:546,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:547,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:547,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:548,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:548,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:549,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:549,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:550,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:550,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:553,1
    - Dst: StringToLongUnsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 554
    functionName: test_string_to_long_unsafe
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringToLongUnsafe
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_string_to_long_unsafe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 561
    functionName: assert_string_to_long_unsafe
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_string_to_long_unsafe(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_string_to_long_unsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:565,1
    - Dst: assert_string_to_long_unsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:566,1
    - Dst: assert_string_to_long_unsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:567,1
    - Dst: assert_string_to_long_unsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:568,1
    - Dst: assert_string_to_long_unsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:569,1
    - Dst: assert_string_to_long_unsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:570,1
    - Dst: assert_string_to_long_unsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:571,1
    - Dst: assert_string_to_long_unsafe
      Src: /src/core/libntech/tests/unit/string_lib_test.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 575
    functionName: test_string_to_long_compatibility
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_to_long_unsafe
    linkageType: ''
    returnType: void
    signature: void test_string_to_long_compatibility(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - value_out
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG(str, value_out, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:586,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:587,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:588,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:589,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:590,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:591,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:594,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:595,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:596,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:597,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:598,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:599,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:602,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:603,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:604,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:605,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:606,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:607,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:610,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:611,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:612,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:615,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:616,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:619,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:620,1
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 622
    functionName: test_string_decimal_to_long
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
    linkageType: ''
    returnType: void
    signature: void test_string_decimal_to_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
      Src: /src/core/libntech/tests/unit/string_lib_test.c:629,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:631,1
    - Dst: StringDecimalToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:631,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:632,1
    - Dst: StringDecimalToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:632,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:633,1
    - Dst: StringDecimalToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:633,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:634,1
    - Dst: StringDecimalToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:634,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:635,1
    - Dst: StringDecimalToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:635,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:636,1
    - Dst: StringDecimalToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:636,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:638,1
    - Dst: StringDecimalToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:638,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:640,1
    - Dst: StringDecimalToLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:640,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 645
    functionName: test_string_decimal_to_long_errors
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringDecimalToLong
    - assert_int_equal
    - ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_string_decimal_to_long_errors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:650,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:650,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:651,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:651,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:652,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:652,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:653,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:653,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:654,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:654,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:657,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:657,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:658,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:658,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:661,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:661,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:662,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:662,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:663,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:663,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:664,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:664,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:665,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:665,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:666,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:666,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:669,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:669,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:670,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:670,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:671,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:671,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:672,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:672,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:673,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:673,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:674,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:674,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:677,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:677,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:678,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:678,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:679,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:679,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:682,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:682,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:683,1
    - Dst: StringToUlongExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 684
    functionName: test_string_to_ulong
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringToUlongExitOnError
    linkageType: ''
    returnType: void
    signature: void test_string_to_ulong(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:688,1
    - Dst: StringToUlongDefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:688,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:689,1
    - Dst: StringToUlongDefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:689,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:690,1
    - Dst: StringToUlongDefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:690,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:691,1
    - Dst: StringToUlongDefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 692
    functionName: test_string_to_ulong_default
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringToUlongDefaultOnError
    linkageType: ''
    returnType: void
    signature: void test_string_to_ulong_default(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:698,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:698,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:699,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:702,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:702,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:703,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:703,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:704,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:704,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:705,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:705,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:706,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:706,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:707,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:707,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:708,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:708,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:709,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:709,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:712,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:712,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:715,1
    - Dst: StringToUlong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:715,1
    - Dst: LogStringToLongError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:720,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 725
    functionName: test_string_to_ulong_errors
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_not_equal
    - assert_int_equal
    - StringToUlong
    - LogStringToLongError
    linkageType: ''
    returnType: void
    signature: void test_string_to_ulong_errors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:729,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:729,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:730,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:730,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:731,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:731,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:732,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:732,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:733,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:733,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:734,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:734,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:735,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:735,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:736,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:736,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:737,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:737,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:739,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:739,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:740,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:740,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:741,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:741,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:742,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:742,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:743,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:743,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:744,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:744,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:745,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:745,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:746,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:746,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:747,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/string_lib_test.c:747,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:754,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:755,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:756,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:758,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:759,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:761,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:770,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:771,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:773,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:774,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:776,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:777,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:779,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:780,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:782,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:783,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:785,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:786,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:788,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:789,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:791,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:792,1
    - Dst: StringToInt64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:794,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 797
    functionName: test_string_to_int64
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_true
    - StringToInt64DefaultOnError
    - StringToInt64ExitOnError
    - StringToInt64
    linkageType: ''
    returnType: void
    signature: void test_string_to_int64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFromLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:801,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:802,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:803,1
    - Dst: StringFromLong
      Src: /src/core/libntech/tests/unit/string_lib_test.c:804,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:805,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 807
    functionName: test_string_from_long
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - StringFromLong
    linkageType: ''
    returnType: void
    signature: void test_string_from_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:811,1
    - Dst: StringToDouble
      Src: /src/core/libntech/tests/unit/string_lib_test.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 812
    functionName: test_string_to_double
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringToDouble
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_string_to_double(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFromDouble
      Src: /src/core/libntech/tests/unit/string_lib_test.c:816,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:817,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 819
    functionName: test_string_from_double
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - StringFromDouble
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_string_from_double(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:824,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:824,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:825,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:825,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:826,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:826,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:827,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:827,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:828,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:828,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:831,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:831,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:832,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:832,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:835,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:835,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:836,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:836,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:837,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:837,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:838,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:838,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:839,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:839,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:840,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 841
    functionName: test_safe_compare
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringSafeCompare
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_safe_compare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:845,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:845,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:846,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:846,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:847,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:847,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:848,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:848,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:849,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:849,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:850,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:850,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:851,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:851,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:853,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:853,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:854,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:854,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:855,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:855,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:856,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:856,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:857,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/string_lib_test.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 858
    functionName: test_safe_equal
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - StringEqual
    linkageType: ''
    returnType: void
    signature: void test_safe_equal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:863,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:863,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:864,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:864,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:865,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:865,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:866,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:866,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:867,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:867,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:870,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:870,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:871,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:871,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:872,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:872,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:873,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:873,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:876,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:876,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:877,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:877,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:878,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:878,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:879,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:879,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:880,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:880,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:881,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:881,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:884,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:884,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:884,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:885,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:885,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:885,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:886,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:886,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:886,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:887,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:887,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:887,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:888,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/tests/unit/string_lib_test.c:888,1
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 889
    functionName: test_safe_compare_ignore_case
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringSafeCompare
    - assert_true
    - StringSafeCompare_IgnoreCase
    linkageType: ''
    returnType: void
    signature: void test_safe_compare_ignore_case(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:893,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:893,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:894,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:894,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:895,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:895,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:896,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:896,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:897,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:897,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:898,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:898,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:899,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:899,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:900,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:900,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:901,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:901,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:903,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:903,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:904,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:904,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:905,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 906
    functionName: test_safe_equal_ignore_case
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - StringEqual_IgnoreCase
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_safe_equal_ignore_case(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:910,1
    - Dst: StringEqualN
      Src: /src/core/libntech/tests/unit/string_lib_test.c:910,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:911,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:911,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:913,1
    - Dst: StringEqualN
      Src: /src/core/libntech/tests/unit/string_lib_test.c:913,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:914,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:914,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:916,1
    - Dst: StringEqualN
      Src: /src/core/libntech/tests/unit/string_lib_test.c:916,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:917,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/tests/unit/string_lib_test.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 918
    functionName: test_safe_equal_n
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - StringEqualN
    - assert_true
    - StringEqualN_IgnoreCase
    linkageType: ''
    returnType: void
    signature: void test_safe_equal_n(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:923,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:923,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:924,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:924,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:925,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:925,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:926,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:926,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:927,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:927,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:929,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:929,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:930,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:930,1
    - Dst: calloc
      Src: /src/core/libntech/tests/unit/string_lib_test.c:932,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:936,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:936,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:937,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:937,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:938,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:938,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:940,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:940,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:941,1
    - Dst: IsStringInArray
      Src: /src/core/libntech/tests/unit/string_lib_test.c:941,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 943
    functionName: test_is_string_in_array
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - calloc
    - IsStringInArray
    - free
    linkageType: ''
    returnType: void
    signature: void test_is_string_in_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEncodeBase64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:949,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:950,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:951,1
    - Dst: StringEncodeBase64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:955,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:956,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:957,1
    - Dst: StringEncodeBase64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:961,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:962,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:963,1
    - Dst: StringEncodeBase64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:967,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:968,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:969,1
    - Dst: StringEncodeBase64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:973,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:974,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:975,1
    - Dst: StringEncodeBase64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:979,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:980,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:981,1
    - Dst: StringEncodeBase64
      Src: /src/core/libntech/tests/unit/string_lib_test.c:985,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:986,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 992
    functionName: test_encode_base64
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringEncodeBase64
    - free
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_encode_base64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EscapeCharCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:998,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:999,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1000,1
    - Dst: EscapeCharCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1003,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1004,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1005,1
    - Dst: EscapeCharCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1008,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1009,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1010,1
    - Dst: EscapeCharCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1013,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1014,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1015,1
    - Dst: EscapeCharCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1018,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1019,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1021
    functionName: test_escape_char_copy
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_string_equal
    - EscapeCharCopy
    linkageType: ''
    returnType: void
    signature: void test_escape_char_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chop
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1026,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1028
    functionName: test_chop_no_spaces
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - Chop
    linkageType: ''
    returnType: void
    signature: void test_chop_no_spaces(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chop
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1033,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1035
    functionName: test_chop_single_space
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - Chop
    linkageType: ''
    returnType: void
    signature: void test_chop_single_space(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chop
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1040,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1042
    functionName: test_chop_two_spaces
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - Chop
    linkageType: ''
    returnType: void
    signature: void test_chop_two_spaces(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chop
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1047,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1049
    functionName: test_chop_empty
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - Chop
    linkageType: ''
    returnType: void
    signature: void test_chop_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chop
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1054,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1056
    functionName: test_chop_empty_single_space
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - Chop
    linkageType: ''
    returnType: void
    signature: void test_chop_empty_single_space(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Chop
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1061,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1063
    functionName: test_chop_empty_two_spaces
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - Chop
    linkageType: ''
    returnType: void
    signature: void test_chop_empty_two_spaces(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1068,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1069,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1070,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1071,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1072,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1075,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1076,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1077,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1078,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1079,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1082,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1083,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1084,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1085,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1086,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1089,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1090,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1091,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1092,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1093,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1096,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1097,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1098,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1099,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1099,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1100,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1103,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1104,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1105,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1106,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1106,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1107,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1111,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1112,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1113,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1114,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1115,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1116,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1117,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1118,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1119,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1120,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1121,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1122,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1127,1
    - Dst: TrimCSVLineCRLFStrict
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1128,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1129,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1130,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1131,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1134,1
    - Dst: TrimCSVLineCRLFStrict
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1135,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1136,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1137,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1138,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1141,1
    - Dst: TrimCSVLineCRLFStrict
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1142,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1143,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1144,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1144,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1145,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1148,1
    - Dst: TrimCSVLineCRLFStrict
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1149,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1150,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1151,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1151,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1152,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1155,1
    - Dst: TrimCSVLineCRLFStrict
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1156,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1157,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1158,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1158,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1161
    functionName: test_trim_crlf
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - TrimCSVLineCRLF
    - assert_int_equal
    - strlen
    - TrimCSVLineCRLFStrict
    - assert_string_equal
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void test_trim_crlf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1165,1
    - Dst: StringCloseHole
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1166,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1167,1
    - Dst: StringCloseHole
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1168,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1169,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1171,1
    - Dst: StringCloseHole
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1172,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1173,1
    - Dst: StringCloseHole
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1174,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1175,1
    - Dst: StringCloseHole
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1176,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1177,1
    - Dst: StringCloseHole
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1178,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1179,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1181
    functionName: test_close_hole
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - strlen
    - StringCloseHole
    - assert_string_equal
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void test_close_hole(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1185,1
    - Dst: StringEndsWith
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1185,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1186,1
    - Dst: StringEndsWith
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1186,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1187,1
    - Dst: StringEndsWith
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1187,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1188,1
    - Dst: StringEndsWith
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1189
    functionName: test_ends_with
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - StringEndsWith
    linkageType: ''
    returnType: void
    signature: void test_ends_with(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1194,1
    - Dst: StringVFormat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1195,1
    - Dst: va_end
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1198
    functionName: test_stringvformat_sup
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - va_end
    - StringVFormat
    - va_start
    linkageType: ''
    returnType: char
    signature: char *test_stringvformat_sup(const char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_stringvformat_sup
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1202,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1203,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1205
    functionName: test_stringvformat
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - test_stringvformat_sup
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_stringvformat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFormat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1209,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1210,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1212
    functionName: test_stringformat
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - StringFormat
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_stringformat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1235,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1235,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1236,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1239,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1239,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1240,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1242,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1242,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1243,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1243,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1244,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1244,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1245,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1245,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1246,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1246,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1247,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1247,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1248,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1248,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1249,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1249,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1250,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1251,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1252,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1253,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1254,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1255,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1256,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1257,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1258,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1258,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1259,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1259,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1260,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1260,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1262,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1262,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1263,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1263,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1264,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1264,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1265,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1265,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1266,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1267,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1268,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1269,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1270,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1271,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1272,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1273,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1276,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1278,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1278,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1279,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1282,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1283,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1284,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1285,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1286,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1286,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1287,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1291,1
    - Dst: StringCopy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1291,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1292,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1294
    functionName: test_string_copy
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - strlen
    - StringCopy
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_string_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1301,1
    - Dst: StringNotMatchingSetCapped
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1302,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1303,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1305,1
    - Dst: StringNotMatchingSetCapped
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1306,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1307,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1309,1
    - Dst: StringNotMatchingSetCapped
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1310,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1311,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1313,1
    - Dst: StringNotMatchingSetCapped
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1314,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1315,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1317,1
    - Dst: StringNotMatchingSetCapped
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1318,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1319,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1321,1
    - Dst: StringNotMatchingSetCapped
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1322,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1324
    functionName: test_stringscanfcapped
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringNotMatchingSetCapped
    - strcpy
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_stringscanfcapped(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1333,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1334,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1335,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1338,1
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1339,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1340,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1341,1
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1345,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1346,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1347,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1350,1
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1351,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1352,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1353,1
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1357,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1358,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1359,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1362,1
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1363,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1364,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1365,1
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1369,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1370,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1371,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1374,1
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1375,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1376,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1377,1
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1381,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1382,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1383,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1386,1
    - Dst: PathAppend
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1387,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1388,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1391
    functionName: test_PathAppend
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - assert_string_equal
    - strcpy
    - PathAppend
    linkageType: ''
    returnType: void
    signature: void test_PathAppend(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1401,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1402,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1403,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1404,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1405,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1406,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1407,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1408,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1409,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1410,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1411,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1412,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1414,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1416,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1418,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1424,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1425,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1426,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1427,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1428,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1429,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1430,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1431,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1432,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1437,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1438,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1440,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1441,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1442,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1443,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1444,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1445,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1446,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1450,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1451,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1452,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1453,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1454,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1455,1
    - Dst: StrCat
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1460,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1461,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1464
    functionName: test_StrCat
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StrCat
    - assert_int_equal
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_StrCat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1473,1
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1474,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1475,1
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1476,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1477,1
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1478,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1479,1
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1484,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1485,1
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1486,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1487,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1488,1
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1489,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1490,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1491,1
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1492,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1493,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1494,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1497,1
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1498,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1499,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1502,1
    - Dst: StrCatDelim
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1504,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1505,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1508
    functionName: test_StrCatDelim
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StrCatDelim
    - strcpy
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_StrCatDelim(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1512,1
    - Dst: StringMatchesOption
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1512,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1513,1
    - Dst: StringMatchesOption
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1513,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1515,1
    - Dst: StringMatchesOption
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1515,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1516,1
    - Dst: StringMatchesOption
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1516,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1518,1
    - Dst: StringMatchesOption
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1518,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1519,1
    - Dst: StringMatchesOption
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1519,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1520,1
    - Dst: StringMatchesOption
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1510
    functionDepth: 1
    functionLinenumber: 1510
    functionLinenumberEnd: 1521
    functionName: test_StringMatchesOption
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - StringMatchesOption
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: void test_StringMatchesOption(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1526,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1526,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1530,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1530,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1532,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1532,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1536,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1536,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1540,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1540,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1544,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1544,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1547,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1547,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1549,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1549,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1553,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1553,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1557,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1558
    functionName: test_StringIsSHA1Hex
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - StringIsSHA1Hex
    linkageType: ''
    returnType: void
    signature: void test_StringIsSHA1Hex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1563,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1564,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1564,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1565,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1565,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1566,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1566,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1567,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1567,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1568,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1568,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1569,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1569,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1570,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1570,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1571,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1571,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1572,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1572,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1573,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1573,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1574,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1574,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1575,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1575,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1576,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1576,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1577,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1577,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1578,1
    - Dst: StringFind
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1579
    functionName: test_StringFind
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringFind
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_StringFind(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1583,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1586,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1588,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1589,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1590,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1591,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1592,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1593,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1595,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1596,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1597,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1598,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1599,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1600,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1602,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1603,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1604,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1605,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1606,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1607,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1608,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1610,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1611,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1612,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1613,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1614,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1615,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1616,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1618,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1620,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1621,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1622,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1623,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1624,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1625,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1626,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1627,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1629,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1630,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1631,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1632,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1633,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1634,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1635,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1636,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1637,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1638,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1639,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1640,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1641,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1642,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1644,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1645,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1646,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1647,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1648,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1649,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1651,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1653,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1655,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1656,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1657,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1658,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1659,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1660,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1662,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1663,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1665,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1667,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1668,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1669,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1671,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1673,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1674,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1675,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1677,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1678,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1679,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/string_lib_test.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1683
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/string_lib_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 11
    functionName: __gcov_init
    functionSourceFile: /src/core/libntech/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_init(ARG_UNUSED void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - p
    - n_counters
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: __gcov_merge_add
    functionSourceFile: /src/core/libntech/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_merge_add(ARG_UNUSED void *p, ARG_UNUSED unsigned n_counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execv
      Src: /src/core/libntech/tests/unit/gcov-stub.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - argv
    argTypes:
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: __gcov_execv
    functionSourceFile: /src/core/libntech/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached:
    - execv
    linkageType: ''
    returnType: int
    signature: int __gcov_execv(const char *path, char *const argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/tests/unit/gcov-stub.c:28,1
    - Dst: va_copy
      Src: /src/core/libntech/tests/unit/gcov-stub.c:29,1
    - Dst: va_arg
      Src: /src/core/libntech/tests/unit/gcov-stub.c:32,1
    - Dst: va_end
      Src: /src/core/libntech/tests/unit/gcov-stub.c:35,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/gcov-stub.c:37,1
    - Dst: va_arg
      Src: /src/core/libntech/tests/unit/gcov-stub.c:40,1
    - Dst: va_end
      Src: /src/core/libntech/tests/unit/gcov-stub.c:42,1
    - Dst: execv
      Src: /src/core/libntech/tests/unit/gcov-stub.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - path
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: __gcov_execl
    functionSourceFile: /src/core/libntech/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - execv
    - xmalloc
    - va_arg
    - va_copy
    linkageType: ''
    returnType: int
    signature: int __gcov_execl(const char *path, char *arg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/core/libntech/tests/unit/gcov-stub.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: __gcov_fork
    functionSourceFile: /src/core/libntech/tests/unit/gcov-stub.c
    functionUses: 0
    functionsReached:
    - fork
    linkageType: ''
    returnType: pid_t
    signature: pid_t __gcov_fork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:14,1
    - Dst: XmlComment
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:16,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:17,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:18,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 20
    functionName: test_comment
    functionSourceFile: /src/core/libntech/tests/unit/xml_writer_test.c
    functionUses: 0
    functionsReached:
    - XmlComment
    - StringWriter
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_comment(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:24,1
    - Dst: XmlTag
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:26,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:27,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:28,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: test_no_attr
    functionSourceFile: /src/core/libntech/tests/unit/xml_writer_test.c
    functionUses: 0
    functionsReached:
    - XmlTag
    - StringWriter
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_no_attr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:34,1
    - Dst: XmlTag
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:36,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:39,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:40,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: test_tag
    functionSourceFile: /src/core/libntech/tests/unit/xml_writer_test.c
    functionUses: 0
    functionsReached:
    - XmlTag
    - StringWriter
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_tag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:46,1
    - Dst: XmlStartTag
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:48,1
    - Dst: XmlContent
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:53,1
    - Dst: XmlEndTag
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:54,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:56,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: test_complex_tag
    functionSourceFile: /src/core/libntech/tests/unit/xml_writer_test.c
    functionUses: 0
    functionsReached:
    - XmlStartTag
    - StringWriter
    - XmlContent
    - assert_string_equal
    - StringWriterClose
    - free
    - XmlEndTag
    linkageType: ''
    returnType: void
    signature: void test_complex_tag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:63,1
    - Dst: XmlContent
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:65,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:66,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:67,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: test_escape
    functionSourceFile: /src/core/libntech/tests/unit/xml_writer_test.c
    functionUses: 0
    functionsReached:
    - StringWriter
    - XmlContent
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_escape(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:73,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:76,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:77,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:78,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:79,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:80,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/xml_writer_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:92,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - lineno
    - format
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: __ProgrammingError
    functionSourceFile: /src/core/libntech/tests/unit/xml_writer_test.c
    functionUses: 0
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: "void __ProgrammingError(ARG_UNUSED const char *file,\n                        ARG_UNUSED
      int lineno,\n                        ARG_UNUSED const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:98,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/xml_writer_test.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: FatalError
    functionSourceFile: /src/core/libntech/tests/unit/xml_writer_test.c
    functionUses: 1
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: void FatalError(ARG_UNUSED char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:19,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:21,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:21,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:23,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:23,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:25,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:25,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:28,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:30,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:32,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:35,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:36,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:37,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:39,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:40,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:41,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 44
    functionName: test_push_pop
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - ThreadedQueuePush
    - assert_string_equal
    - xstrdup
    - free
    - ThreadedQueuePop
    linkageType: ''
    returnType: void
    signature: void test_push_pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:48,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:51,1
    - Dst: ThreadedQueueIsEmpty
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:51,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:53,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:55,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:56,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:57,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:59,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:60,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:61,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (i_am_null == NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    - condition: (ThreadedQueueIsEmpty(queue))
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    - condition: (i_am_null == NULL)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: test_pop_empty_and_push_null
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ThreadedQueueNew
    - assert
    - ThreadedQueueDestroy
    - ThreadedQueueIsEmpty
    - assert_true
    - ThreadedQueuePush
    - ThreadedQueuePop
    linkageType: ''
    returnType: void
    signature: void test_pop_empty_and_push_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:69,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:72,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:72,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:74,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:74,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:76,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:76,1
    - Dst: ThreadedQueueCopy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:79,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:82,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:83,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:83,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:84,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:85,1
    - Dst: ThreadedQueueCapacity
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:85,1
    - Dst: ThreadedQueueCapacity
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:86,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:88,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:90,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:92,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:95,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:97,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:99,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:103,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:104,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:105,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:107,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:108,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:109,1
    - Dst: ThreadedQueueSoftDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:111,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:114,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:114,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:117,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:117,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:119,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:119,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:121,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:121,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:123,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:123,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:127,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:127,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:128,1
    - Dst: ThreadedQueueCapacity
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:128,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:130,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:132,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:134,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:136,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:138,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:141,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:142,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:143,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:144,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:145,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:147,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:148,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:149,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:150,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:151,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (old_str3 == new_str3)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    - condition: (new_queue != NULL)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    - condition: (old_str1 == new_str1)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    - condition: (old_str2 == new_str2)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    constantsTouched: []
    func_position:
      end: 154
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 154
    functionName: test_copy
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - ThreadedQueueCopy
    - assert_int_equal
    - ThreadedQueueCapacity
    - ThreadedQueueNew
    - assert
    - ThreadedQueueDestroy
    - ThreadedQueuePop
    - ThreadedQueuePush
    - assert_string_equal
    - xstrdup
    - free
    - ThreadedQueueCount
    - ThreadedQueueSoftDestroy
    linkageType: ''
    returnType: void
    signature: void test_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:158,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:160,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:160,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:161,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:161,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:162,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:162,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:163,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:163,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:165,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:166,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:167,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:168,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: test_push_report_count
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - ThreadedQueuePush
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void test_push_report_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:175,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:178,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:178,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:180,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:180,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:183,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:185,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:187,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:187,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:189,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:189,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:192,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:192,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:194,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:194,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:197,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:197,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:200,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:202,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:203,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:205,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:207,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:207,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:209,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:209,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:211,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:211,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:213,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:213,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:215,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:215,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:218,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:218,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:220,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:220,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:223,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:223,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:224,1
    - Dst: ThreadedQueueCapacity
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:224,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 227
    functionName: test_expand
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ThreadedQueueCapacity
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - ThreadedQueuePush
    - xstrdup
    - free
    - ThreadedQueueCount
    - ThreadedQueuePop
    linkageType: ''
    returnType: void
    signature: void test_expand(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:231,1
    - Dst: ThreadedQueuePushN
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:234,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:235,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:236,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:237,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:242,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:243,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:245,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:246,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: test_pushn
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - ThreadedQueuePop
    - assert_string_equal
    - ThreadedQueuePushN
    - ThreadedQueueCount
    linkageType: ''
    returnType: void
    signature: void test_pushn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:253,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:261,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:261,1
    - Dst: ThreadedQueuePopN
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:266,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:271,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:272,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:275,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 277
    functionName: test_popn
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - ThreadedQueuePopN
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - ThreadedQueuePush
    - assert_string_equal
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void test_popn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:281,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:289,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:289,1
    - Dst: ThreadedQueuePopNIntoArray
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:294,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:297,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:300,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:301,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:303,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:304,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 307
    functionName: test_popn_into_array
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ThreadedQueuePopNIntoArray
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - ThreadedQueuePush
    - assert_string_equal
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void test_popn_into_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:311,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:317,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:317,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:319,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:320,1
    - Dst: ThreadedQueueClear
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:322,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:323,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:324,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:326,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:326,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:328,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:329,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:330,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 333
    functionName: test_clear
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - ThreadedQueuePop
    - ThreadedQueuePush
    - assert_string_equal
    - xstrdup
    - free
    - ThreadedQueueCount
    - ThreadedQueueClear
    linkageType: ''
    returnType: void
    signature: void test_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:337,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:343,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:345,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:346,1
    - Dst: ThreadedQueueClearAndPush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:348,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:349,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:350,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:351,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:354,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:355,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 358
    functionName: test_clear_and_push
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - ThreadedQueueClearAndPush
    - ThreadedQueuePop
    - ThreadedQueuePush
    - assert_string_equal
    - ThreadedQueueCount
    linkageType: ''
    returnType: void
    signature: void test_clear_and_push(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:366,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:367,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 371
    functionName: thread_pop
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - free
    - ThreadedQueuePop
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void *thread_pop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueuePopN
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:380,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:381,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 385
    functionName: thread_pop_5_3
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_int_equal
    - ThreadedQueuePopN
    linkageType: ''
    returnType: void
    signature: void *thread_pop_5_3()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:390,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 393
    functionName: thread_push
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - ThreadedQueuePush
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void *thread_push()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueWaitEmpty
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:397,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:398,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 401
    functionName: thread_wait_empty
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - ThreadedQueuePush
    - ThreadedQueueWaitEmpty
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void *thread_wait_empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueWaitEmpty
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: thread_just_wait_empty
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - ThreadedQueueWaitEmpty
    linkageType: ''
    returnType: void
    signature: void *thread_just_wait_empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:414,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:419,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:421,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:427,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:429,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:437,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:438,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:439,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:441,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:442,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:443,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (retval == NULL)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    - condition: (retval == NULL)
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    constantsTouched: []
    func_position:
      end: 447
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 447
    functionName: test_threads_wait_pop
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - pthread_create
    - ThreadedQueueNew
    - assert
    - ThreadedQueueDestroy
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void test_threads_wait_pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:452,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:457,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:459,1
    - Dst: sleep
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:462,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:464,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:466,1
    - Dst: sleep
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:469,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:470,1
    - Dst: ThreadedQueuePopN
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:473,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:478,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:481,1
    - Dst: ThreadedQueuePop
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:483,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:484,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:485,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:492,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:493,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:494,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:497,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:498,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:499,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:501,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (retval == NULL)
      pos:
        line_end: 493
        line_start: 493
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    - condition: (retval == NULL)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
    constantsTouched: []
    func_position:
      end: 502
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 502
    functionName: test_threads_wait_empty
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - pthread_create
    - ThreadedQueuePopN
    - ThreadedQueueNew
    - assert
    - sleep
    - ThreadedQueueDestroy
    - pthread_join
    - ThreadedQueuePop
    - assert_string_equal
    - free
    - ThreadedQueueCount
    linkageType: ''
    returnType: void
    signature: void test_threads_wait_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:506,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:509,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:511,1
    - Dst: sleep
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:514,1
    - Dst: ThreadedQueuePushN
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:517,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:518,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:520,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:521,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:523,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:524,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 527
    functionName: test_threads_pushn
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - pthread_create
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - sleep
    - pthread_join
    - ThreadedQueuePushN
    - ThreadedQueueCount
    linkageType: ''
    returnType: void
    signature: void test_threads_pushn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedQueueNew
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:531,1
    - Dst: ThreadedQueuePush
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:537,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:539,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:540,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:543,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:545,1
    - Dst: ThreadedQueueClear
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:547,1
    - Dst: ThreadedQueueCount
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:548,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:549,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:551,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:552,1
    - Dst: ThreadedQueueDestroy
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 555
    functionName: test_threads_clear_empty
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - pthread_create
    - ThreadedQueueNew
    - ThreadedQueueDestroy
    - pthread_join
    - ThreadedQueuePush
    - ThreadedQueueCount
    - ThreadedQueueClear
    linkageType: ''
    returnType: void
    signature: void test_threads_clear_empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:559,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:562,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:563,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:564,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:565,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:566,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:567,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:568,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:569,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:570,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:571,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:572,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:573,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:574,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:575,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/threaded_queue_test.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 578
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/threaded_queue_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrndup
      Src: /src/core/libntech/tests/unit/file_writer_test.c:17,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/file_writer_test.c:19,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/file_writer_test.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - void*
    - size_t
    - size_t
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 23
    functionName: CFENGINE_TEST_fwrite
    functionSourceFile: /src/core/libntech/tests/unit/file_writer_test.c
    functionUses: 0
    functionsReached:
    - free
    - xstrndup
    - WriterWrite
    linkageType: ''
    returnType: size_t
    signature: "size_t CFENGINE_TEST_fwrite(const void *ptr, size_t size, size_t nmemb,\n
      \                                  ARG_UNUSED FILE *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stream
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: CFENGINE_TEST_fclose
    functionSourceFile: /src/core/libntech/tests/unit/file_writer_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CFENGINE_TEST_fclose(ARG_UNUSED FILE *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/file_writer_test.c:38,1
    - Dst: FileWriter
      Src: /src/core/libntech/tests/unit/file_writer_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:42,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/tests/unit/file_writer_test.c:42,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:43,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/file_writer_test.c:43,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/file_writer_test.c:45,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/file_writer_test.c:46,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: test_empty_file_buffer
    functionSourceFile: /src/core/libntech/tests/unit/file_writer_test.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - assert_int_equal
    - WriterClose
    - StringWriter
    - StringWriterData
    - assert_string_equal
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_empty_file_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/file_writer_test.c:52,1
    - Dst: FileWriter
      Src: /src/core/libntech/tests/unit/file_writer_test.c:53,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/file_writer_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:57,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/tests/unit/file_writer_test.c:57,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:58,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/file_writer_test.c:58,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/file_writer_test.c:60,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/file_writer_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: test_write_empty_file_buffer
    functionSourceFile: /src/core/libntech/tests/unit/file_writer_test.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - assert_int_equal
    - WriterClose
    - WriterWrite
    - StringWriter
    - StringWriterData
    - assert_string_equal
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_write_empty_file_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/file_writer_test.c:67,1
    - Dst: FileWriter
      Src: /src/core/libntech/tests/unit/file_writer_test.c:68,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/file_writer_test.c:70,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:72,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/tests/unit/file_writer_test.c:72,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:73,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/file_writer_test.c:73,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/file_writer_test.c:75,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/file_writer_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: test_write_file_buffer
    functionSourceFile: /src/core/libntech/tests/unit/file_writer_test.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - assert_int_equal
    - WriterClose
    - WriterWrite
    - StringWriter
    - StringWriterData
    - assert_string_equal
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_write_file_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/file_writer_test.c:82,1
    - Dst: FileWriter
      Src: /src/core/libntech/tests/unit/file_writer_test.c:83,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/file_writer_test.c:85,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/file_writer_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:88,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/tests/unit/file_writer_test.c:88,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:89,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/file_writer_test.c:89,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/file_writer_test.c:91,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/file_writer_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_writer_test.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: test_multiwrite_file_buffer
    functionSourceFile: /src/core/libntech/tests/unit/file_writer_test.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - assert_int_equal
    - WriterClose
    - WriterWrite
    - StringWriter
    - StringWriterData
    - assert_string_equal
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_multiwrite_file_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/file_writer_test.c:98,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_writer_test.c:101,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_writer_test.c:102,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_writer_test.c:103,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_writer_test.c:104,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/file_writer_test.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/file_writer_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/libntech/tests/unit/file_writer_test.c:116,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/file_writer_test.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - lineno
    - format
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: __ProgrammingError
    functionSourceFile: /src/core/libntech/tests/unit/file_writer_test.c
    functionUses: 0
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: "void __ProgrammingError(ARG_UNUSED const char *file,\n                        ARG_UNUSED
      int lineno,\n                        ARG_UNUSED const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/libntech/tests/unit/file_writer_test.c:122,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/file_writer_test.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: FatalError
    functionSourceFile: /src/core/libntech/tests/unit/file_writer_test.c
    functionUses: 1
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: void FatalError(ARG_UNUSED char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueueNew
      Src: /src/core/libntech/tests/unit/queue_test.c:9,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/queue_test.c:11,1
    - Dst: QueueCount
      Src: /src/core/libntech/tests/unit/queue_test.c:11,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/queue_test.c:12,1
    - Dst: QueueIsEmpty
      Src: /src/core/libntech/tests/unit/queue_test.c:12,1
    - Dst: QueueEnqueue
      Src: /src/core/libntech/tests/unit/queue_test.c:15,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/queue_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/queue_test.c:16,1
    - Dst: QueueCount
      Src: /src/core/libntech/tests/unit/queue_test.c:16,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/queue_test.c:17,1
    - Dst: QueueIsEmpty
      Src: /src/core/libntech/tests/unit/queue_test.c:17,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/queue_test.c:18,1
    - Dst: QueueHead
      Src: /src/core/libntech/tests/unit/queue_test.c:18,1
    - Dst: QueueEnqueue
      Src: /src/core/libntech/tests/unit/queue_test.c:21,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/queue_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/queue_test.c:22,1
    - Dst: QueueCount
      Src: /src/core/libntech/tests/unit/queue_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/queue_test.c:23,1
    - Dst: QueueHead
      Src: /src/core/libntech/tests/unit/queue_test.c:23,1
    - Dst: QueueDequeue
      Src: /src/core/libntech/tests/unit/queue_test.c:26,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/queue_test.c:27,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/queue_test.c:28,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/queue_test.c:31,1
    - Dst: QueueHead
      Src: /src/core/libntech/tests/unit/queue_test.c:31,1
    - Dst: QueueDequeue
      Src: /src/core/libntech/tests/unit/queue_test.c:32,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/queue_test.c:33,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/queue_test.c:34,1
    - Dst: QueueDestroy
      Src: /src/core/libntech/tests/unit/queue_test.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 38
    functionName: test_basics
    functionSourceFile: /src/core/libntech/tests/unit/queue_test.c
    functionUses: 0
    functionsReached:
    - QueueDequeue
    - assert_int_equal
    - assert_false
    - QueueNew
    - QueueHead
    - assert_true
    - QueueCount
    - assert_string_equal
    - xstrdup
    - QueueEnqueue
    - free
    - QueueIsEmpty
    - QueueDestroy
    linkageType: ''
    returnType: void
    signature: void test_basics(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueueNew
      Src: /src/core/libntech/tests/unit/queue_test.c:43,1
    - Dst: QueueEnqueue
      Src: /src/core/libntech/tests/unit/queue_test.c:45,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/queue_test.c:45,1
    - Dst: QueueEnqueue
      Src: /src/core/libntech/tests/unit/queue_test.c:46,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/queue_test.c:46,1
    - Dst: QueueEnqueue
      Src: /src/core/libntech/tests/unit/queue_test.c:47,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/queue_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/queue_test.c:49,1
    - Dst: QueueCount
      Src: /src/core/libntech/tests/unit/queue_test.c:49,1
    - Dst: QueueDestroy
      Src: /src/core/libntech/tests/unit/queue_test.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: test_destroy
    functionSourceFile: /src/core/libntech/tests/unit/queue_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - QueueNew
    - QueueCount
    - xstrdup
    - QueueEnqueue
    - QueueDestroy
    linkageType: ''
    returnType: void
    signature: void test_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/queue_test.c:56,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/queue_test.c:59,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/queue_test.c:60,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/queue_test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/queue_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetFromString
      Src: /src/core/libntech/tests/unit/set_test.c:9,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:11,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/set_test.c:11,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:12,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/set_test.c:12,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:13,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/set_test.c:13,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:14,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/set_test.c:14,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:16,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/set_test.c:16,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 19
    functionName: test_stringset_from_string
    functionSourceFile: /src/core/libntech/tests/unit/set_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringSetContains
    - assert_true
    - StringSetSize
    - StringSetDestroy
    - StringSetFromString
    linkageType: ''
    returnType: void
    signature: void test_stringset_from_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:23,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:24,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:24,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:25,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:27,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/set_test.c:27,1
    - Dst: StringSetClear
      Src: /src/core/libntech/tests/unit/set_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:31,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/set_test.c:31,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: test_stringset_clear
    functionSourceFile: /src/core/libntech/tests/unit/set_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - StringSetSize
    - StringSetDestroy
    - StringSetClear
    - xstrdup
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void test_stringset_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:39,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:40,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:40,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:41,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:41,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:42,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:42,1
    - Dst: StringSetToBuffer
      Src: /src/core/libntech/tests/unit/set_test.c:44,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:46,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/set_test.c:47,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/set_test.c:47,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:49,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:50,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:54,1
    - Dst: StringSetToBuffer
      Src: /src/core/libntech/tests/unit/set_test.c:56,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:58,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/set_test.c:59,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/set_test.c:59,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:61,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: test_stringset_serialization
    functionSourceFile: /src/core/libntech/tests/unit/set_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - StringSetToBuffer
    - BufferDestroy
    - assert_true
    - StringSetDestroy
    - assert_string_equal
    - xstrdup
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void test_stringset_serialization(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:69,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:70,1
    - Dst: StringSetJoin
      Src: /src/core/libntech/tests/unit/set_test.c:71,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:74,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/set_test.c:74,1
    - Dst: StringSetToBuffer
      Src: /src/core/libntech/tests/unit/set_test.c:76,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:78,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/set_test.c:79,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/set_test.c:79,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:81,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:82,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:86,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:87,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:87,1
    - Dst: StringSetJoin
      Src: /src/core/libntech/tests/unit/set_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:90,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/set_test.c:90,1
    - Dst: StringSetToBuffer
      Src: /src/core/libntech/tests/unit/set_test.c:92,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:94,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/set_test.c:95,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/set_test.c:95,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:97,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:98,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:102,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:103,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:104,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:104,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:105,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:105,1
    - Dst: StringSetJoin
      Src: /src/core/libntech/tests/unit/set_test.c:106,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:109,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/set_test.c:109,1
    - Dst: StringSetToBuffer
      Src: /src/core/libntech/tests/unit/set_test.c:111,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:112,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:114,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/set_test.c:115,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/set_test.c:115,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 119
    functionName: test_stringset_join
    functionSourceFile: /src/core/libntech/tests/unit/set_test.c
    functionUses: 0
    functionsReached:
    - StringSetJoin
    - assert_int_equal
    - StringSetToBuffer
    - BufferData
    - BufferDestroy
    - assert_true
    - StringSetSize
    - StringSetDestroy
    - assert_string_equal
    - xstrdup
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void test_stringset_join(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:123,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:124,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:124,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:125,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:125,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:126,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:126,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:130,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/set_test.c:130,1
    - Dst: JsonArrayToStringSet
      Src: /src/core/libntech/tests/unit/set_test.c:131,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:132,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:133,1
    - Dst: StringSetIsEqual
      Src: /src/core/libntech/tests/unit/set_test.c:133,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:134,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:135,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:139,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/set_test.c:139,1
    - Dst: JsonArrayToStringSet
      Src: /src/core/libntech/tests/unit/set_test.c:140,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:141,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:142,1
    - Dst: StringSetIsEqual
      Src: /src/core/libntech/tests/unit/set_test.c:142,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:143,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:144,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:148,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/set_test.c:148,1
    - Dst: JsonArrayToStringSet
      Src: /src/core/libntech/tests/unit/set_test.c:149,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:150,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:151,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/set_test.c:155,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/set_test.c:155,1
    - Dst: JsonArrayToStringSet
      Src: /src/core/libntech/tests/unit/set_test.c:156,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:157,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:158,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 161
    functionName: test_json_array_to_stringset
    functionSourceFile: /src/core/libntech/tests/unit/set_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - JsonDestroy
    - StringSetIsEqual
    - JsonArrayToStringSet
    - assert_true
    - StringSetDestroy
    - xstrdup
    - StringSetNew
    - JsonParse
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void test_json_array_to_stringset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/set_test.c:164,1
    - Dst: StringSetAddF
      Src: /src/core/libntech/tests/unit/set_test.c:166,1
    - Dst: StringSetAddF
      Src: /src/core/libntech/tests/unit/set_test.c:167,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/tests/unit/set_test.c:168,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/set_test.c:168,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:170,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/set_test.c:170,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:171,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/set_test.c:171,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/set_test.c:172,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/set_test.c:172,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/set_test.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: test_stringset_add_f
    functionSourceFile: /src/core/libntech/tests/unit/set_test.c
    functionUses: 0
    functionsReached:
    - StringSetContains
    - assert_true
    - StringSetDestroy
    - StringSetAddF
    - xstrdup
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void test_stringset_add_f(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/set_test.c:179,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/set_test.c:182,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/set_test.c:183,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/set_test.c:184,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/set_test.c:185,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/set_test.c:186,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/set_test.c:187,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/set_test.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 191
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/set_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr1
    - ','
    - expr2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: assert_int_equal
    functionSourceFile: /src/core/libntech/tests/unit/file_lock_test.c
    functionUses: 310
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_equal(expr1, expr2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: assert_true
    functionSourceFile: /src/core/libntech/tests/unit/file_lock_test.c
    functionUses: 184
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_true(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: assert_false
    functionSourceFile: /src/core/libntech/tests/unit/file_lock_test.c
    functionUses: 122
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_false(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lock_test.c:49,1
    - Dst: rmdir
      Src: /src/core/libntech/tests/unit/file_lock_test.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: clear_tempfiles
    functionSourceFile: /src/core/libntech/tests/unit/file_lock_test.c
    functionUses: 0
    functionsReached:
    - unlink
    - rmdir
    linkageType: ''
    returnType: void
    signature: void clear_tempfiles()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atexit
      Src: /src/core/libntech/tests/unit/file_lock_test.c:55,1
    - Dst: mkdir
      Src: /src/core/libntech/tests/unit/file_lock_test.c:56,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lock_test.c:60,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:64,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lock_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:67,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lock_test.c:70,1
    - Dst: ExclusiveFileLockCheck
      Src: /src/core/libntech/tests/unit/file_lock_test.c:70,1
    - Dst: fork
      Src: /src/core/libntech/tests/unit/file_lock_test.c:72,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lock_test.c:81,1
    - Dst: ExclusiveFileLockCheck
      Src: /src/core/libntech/tests/unit/file_lock_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:84,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lock_test.c:84,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lock_test.c:87,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/file_lock_test.c:89,1
    - Dst: waitpid
      Src: /src/core/libntech/tests/unit/file_lock_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:96,1
    - Dst: WEXITSTATUS
      Src: /src/core/libntech/tests/unit/file_lock_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:101,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lock_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:104,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lock_test.c:104,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lock_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:113,1
    - Dst: SharedFileLock
      Src: /src/core/libntech/tests/unit/file_lock_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:116,1
    - Dst: fork
      Src: /src/core/libntech/tests/unit/file_lock_test.c:118,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lock_test.c:127,1
    - Dst: ExclusiveFileLockCheck
      Src: /src/core/libntech/tests/unit/file_lock_test.c:127,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:130,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lock_test.c:130,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:133,1
    - Dst: SharedFileLock
      Src: /src/core/libntech/tests/unit/file_lock_test.c:133,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:136,1
    - Dst: SharedFileUnlock
      Src: /src/core/libntech/tests/unit/file_lock_test.c:136,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/file_lock_test.c:138,1
    - Dst: waitpid
      Src: /src/core/libntech/tests/unit/file_lock_test.c:144,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:145,1
    - Dst: WEXITSTATUS
      Src: /src/core/libntech/tests/unit/file_lock_test.c:146,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lock_test.c:151,1
    - Dst: ExclusiveFileLockCheck
      Src: /src/core/libntech/tests/unit/file_lock_test.c:151,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:154,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lock_test.c:154,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:157,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lock_test.c:157,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lock_test.c:160,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lock_test.c:160,1
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/file_lock_test.c:165,1
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/file_lock_test.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 173
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/file_lock_test.c
    functionUses: 1
    functionsReached:
    - fork
    - WEXITSTATUS
    - assert_int_equal
    - assert_false
    - SharedFileLock
    - atexit
    - SharedFileUnlock
    - assert_true
    - ExclusiveFileUnlock
    - ExclusiveFileLock
    - _exit
    - ExclusiveFileLockCheck
    - open
    - fprintf
    - waitpid
    - mkdir
    - close
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KIBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:10,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:11,1
    - Dst: KIBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:12,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:13,1
    - Dst: KIBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:14,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:15,1
    - Dst: MEBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:18,1
    - Dst: MEBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:19,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:20,1
    - Dst: MEBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:22,1
    - Dst: GIBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:27,1
    - Dst: GIBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:29,1
    - Dst: GIBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:30,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:31,1
    - Dst: TEBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:34,1
    - Dst: TEBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:36,1
    - Dst: TEBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:40,1
    - Dst: KIBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:40,1
    - Dst: MEBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:41,1
    - Dst: MEBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:41,1
    - Dst: GIBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/definitions_test.c:42,1
    - Dst: GIBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:42,1
    - Dst: TEBIBYTE
      Src: /src/core/libntech/tests/unit/definitions_test.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 43
    functionName: test_metric_prefixes
    functionSourceFile: /src/core/libntech/tests/unit/definitions_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - MEBIBYTE
    - TEBIBYTE
    - KIBIBYTE
    - GIBIBYTE
    linkageType: ''
    returnType: void
    signature: void test_metric_prefixes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/definitions_test.c:47,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/definitions_test.c:50,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/definitions_test.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/definitions_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/string_writer_test.c:8,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:10,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/tests/unit/string_writer_test.c:10,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:11,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/string_writer_test.c:11,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/string_writer_test.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 14
    functionName: test_empty_string_buffer
    functionSourceFile: /src/core/libntech/tests/unit/string_writer_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - WriterClose
    - StringWriter
    - StringWriterData
    - assert_string_equal
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_empty_string_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/string_writer_test.c:18,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/string_writer_test.c:20,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:22,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/tests/unit/string_writer_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:23,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/string_writer_test.c:23,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/string_writer_test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: test_write_empty_string_buffer
    functionSourceFile: /src/core/libntech/tests/unit/string_writer_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - WriterClose
    - WriterWrite
    - StringWriter
    - StringWriterData
    - assert_string_equal
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_write_empty_string_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/string_writer_test.c:30,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/string_writer_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:34,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/tests/unit/string_writer_test.c:34,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:35,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/string_writer_test.c:35,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/string_writer_test.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: test_write_string_buffer
    functionSourceFile: /src/core/libntech/tests/unit/string_writer_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - WriterClose
    - WriterWrite
    - StringWriter
    - StringWriterData
    - assert_string_equal
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_write_string_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/string_writer_test.c:42,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/string_writer_test.c:44,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/string_writer_test.c:45,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:47,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/tests/unit/string_writer_test.c:47,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:48,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/string_writer_test.c:48,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/string_writer_test.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: test_multiwrite_string_buffer
    functionSourceFile: /src/core/libntech/tests/unit/string_writer_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - WriterClose
    - WriterWrite
    - StringWriter
    - StringWriterData
    - assert_string_equal
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void test_multiwrite_string_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/string_writer_test.c:55,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/tests/unit/string_writer_test.c:57,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/tests/unit/string_writer_test.c:58,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/tests/unit/string_writer_test.c:59,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:61,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/string_writer_test.c:61,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/string_writer_test.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: test_write_char_string_buffer
    functionSourceFile: /src/core/libntech/tests/unit/string_writer_test.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - WriterWriteChar
    - StringWriter
    - StringWriterData
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_write_char_string_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/string_writer_test.c:68,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/string_writer_test.c:70,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/string_writer_test.c:71,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/string_writer_test.c:73,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/string_writer_test.c:75,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/string_writer_test.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: test_release_string
    functionSourceFile: /src/core/libntech/tests/unit/string_writer_test.c
    functionUses: 0
    functionsReached:
    - WriterWrite
    - StringWriter
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_release_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/string_writer_test.c:81,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_writer_test.c:84,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_writer_test.c:85,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_writer_test.c:86,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_writer_test.c:87,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_writer_test.c:88,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/string_writer_test.c:89,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/string_writer_test.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/string_writer_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/libntech/tests/unit/string_writer_test.c:101,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/string_writer_test.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - lineno
    - format
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: __ProgrammingError
    functionSourceFile: /src/core/libntech/tests/unit/string_writer_test.c
    functionUses: 0
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: "void __ProgrammingError(ARG_UNUSED const char *file,\n                        ARG_UNUSED
      int lineno,\n                        ARG_UNUSED const char *format, ...)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mkstemp
      Src: /src/core/libntech/tests/unit/hash_test.c:28,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/hash_test.c:34,1
    - Dst: write
      Src: /src/core/libntech/tests/unit/hash_test.c:35,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/hash_test.c:38,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/hash_test.c:39,1
    - Dst: OPENSSL_init_crypto
      Src: /src/core/libntech/tests/unit/hash_test.c:44,1
    - Dst: RSA_new
      Src: /src/core/libntech/tests/unit/hash_test.c:47,1
    - Dst: BN_new
      Src: /src/core/libntech/tests/unit/hash_test.c:51,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/hash_test.c:54,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/hash_test.c:55,1
    - Dst: RSA_free
      Src: /src/core/libntech/tests/unit/hash_test.c:56,1
    - Dst: BN_set_word
      Src: /src/core/libntech/tests/unit/hash_test.c:60,1
    - Dst: RSA_generate_key_ex
      Src: /src/core/libntech/tests/unit/hash_test.c:61,1
    - Dst: BN_free
      Src: /src/core/libntech/tests/unit/hash_test.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 64
    functionName: tests_setup
    functionSourceFile: /src/core/libntech/tests/unit/hash_test.c
    functionUses: 12
    functionsReached:
    - BN_free
    - unlink
    - write
    - strlen
    - OPENSSL_init_crypto
    - RSA_generate_key_ex
    - mkstemp
    - RSA_new
    - BN_new
    - BN_set_word
    - RSA_free
    - close
    linkageType: ''
    returnType: void
    signature: void tests_setup()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/core/libntech/tests/unit/hash_test.c:70,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/hash_test.c:71,1
    - Dst: RSA_free
      Src: /src/core/libntech/tests/unit/hash_test.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: tests_teardown
    functionSourceFile: /src/core/libntech/tests/unit/hash_test.c
    functionUses: 10
    functionsReached:
    - unlink
    - close
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void tests_teardown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:98,1
    - Dst: HashNew
      Src: /src/core/libntech/tests/unit/hash_test.c:99,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:101,1
    - Dst: HashType
      Src: /src/core/libntech/tests/unit/hash_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:102,1
    - Dst: HashLength
      Src: /src/core/libntech/tests/unit/hash_test.c:102,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:103,1
    - Dst: HashData
      Src: /src/core/libntech/tests/unit/hash_test.c:103,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:104,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:105,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:105,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:106,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:107,1
    - Dst: HashDestroy
      Src: /src/core/libntech/tests/unit/hash_test.c:108,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:109,1
    - Dst: HashNew
      Src: /src/core/libntech/tests/unit/hash_test.c:110,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:111,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:112,1
    - Dst: HashType
      Src: /src/core/libntech/tests/unit/hash_test.c:112,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:113,1
    - Dst: HashLength
      Src: /src/core/libntech/tests/unit/hash_test.c:113,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:114,1
    - Dst: HashData
      Src: /src/core/libntech/tests/unit/hash_test.c:114,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:115,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:116,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:116,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:117,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:118,1
    - Dst: HashDestroy
      Src: /src/core/libntech/tests/unit/hash_test.c:119,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:121,1
    - Dst: HashNew
      Src: /src/core/libntech/tests/unit/hash_test.c:121,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:122,1
    - Dst: HashNew
      Src: /src/core/libntech/tests/unit/hash_test.c:122,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:123,1
    - Dst: HashNew
      Src: /src/core/libntech/tests/unit/hash_test.c:123,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:124,1
    - Dst: HashNew
      Src: /src/core/libntech/tests/unit/hash_test.c:124,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:125,1
    - Dst: HashNew
      Src: /src/core/libntech/tests/unit/hash_test.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 126
    functionName: test_HashString
    functionSourceFile: /src/core/libntech/tests/unit/hash_test.c
    functionUses: 0
    functionsReached:
    - HashDestroy
    - HashType
    - assert_int_equal
    - HashLength
    - HashData
    - assert_true
    - HashNew
    - HashPrintable
    linkageType: ''
    returnType: void
    signature: void test_HashString(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:133,1
    - Dst: HashNewFromDescriptor
      Src: /src/core/libntech/tests/unit/hash_test.c:134,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:135,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:136,1
    - Dst: HashType
      Src: /src/core/libntech/tests/unit/hash_test.c:136,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:137,1
    - Dst: HashLength
      Src: /src/core/libntech/tests/unit/hash_test.c:137,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:138,1
    - Dst: HashData
      Src: /src/core/libntech/tests/unit/hash_test.c:138,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:139,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:140,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:140,1
    - Dst: HashDestroy
      Src: /src/core/libntech/tests/unit/hash_test.c:141,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:142,1
    - Dst: HashNewFromDescriptor
      Src: /src/core/libntech/tests/unit/hash_test.c:143,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:144,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:145,1
    - Dst: HashType
      Src: /src/core/libntech/tests/unit/hash_test.c:145,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:146,1
    - Dst: HashLength
      Src: /src/core/libntech/tests/unit/hash_test.c:146,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:147,1
    - Dst: HashData
      Src: /src/core/libntech/tests/unit/hash_test.c:147,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:148,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:149,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:149,1
    - Dst: HashDestroy
      Src: /src/core/libntech/tests/unit/hash_test.c:150,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:152,1
    - Dst: HashNewFromDescriptor
      Src: /src/core/libntech/tests/unit/hash_test.c:152,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:153,1
    - Dst: HashNewFromDescriptor
      Src: /src/core/libntech/tests/unit/hash_test.c:153,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:154,1
    - Dst: HashNewFromDescriptor
      Src: /src/core/libntech/tests/unit/hash_test.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: test_HashDescriptor
    functionSourceFile: /src/core/libntech/tests/unit/hash_test.c
    functionUses: 0
    functionsReached:
    - HashDestroy
    - HashType
    - assert_int_equal
    - HashLength
    - HashData
    - assert_true
    - HashPrintable
    - HashNewFromDescriptor
    linkageType: ''
    returnType: void
    signature: void test_HashDescriptor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:162,1
    - Dst: HashNewFromKey
      Src: /src/core/libntech/tests/unit/hash_test.c:163,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:164,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:165,1
    - Dst: HashType
      Src: /src/core/libntech/tests/unit/hash_test.c:165,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:166,1
    - Dst: HashLength
      Src: /src/core/libntech/tests/unit/hash_test.c:166,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:167,1
    - Dst: HashData
      Src: /src/core/libntech/tests/unit/hash_test.c:167,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:168,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:169,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:169,1
    - Dst: HashDestroy
      Src: /src/core/libntech/tests/unit/hash_test.c:170,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:171,1
    - Dst: HashNewFromKey
      Src: /src/core/libntech/tests/unit/hash_test.c:172,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:173,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:174,1
    - Dst: HashType
      Src: /src/core/libntech/tests/unit/hash_test.c:174,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:175,1
    - Dst: HashLength
      Src: /src/core/libntech/tests/unit/hash_test.c:175,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:176,1
    - Dst: HashData
      Src: /src/core/libntech/tests/unit/hash_test.c:176,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:177,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:178,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:178,1
    - Dst: HashDestroy
      Src: /src/core/libntech/tests/unit/hash_test.c:179,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:181,1
    - Dst: HashNewFromKey
      Src: /src/core/libntech/tests/unit/hash_test.c:181,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:182,1
    - Dst: HashNewFromKey
      Src: /src/core/libntech/tests/unit/hash_test.c:182,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:183,1
    - Dst: HashNewFromKey
      Src: /src/core/libntech/tests/unit/hash_test.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 184
    functionName: test_HashKey
    functionSourceFile: /src/core/libntech/tests/unit/hash_test.c
    functionUses: 0
    functionsReached:
    - HashDestroy
    - HashType
    - assert_int_equal
    - HashLength
    - HashData
    - assert_true
    - HashPrintable
    - HashNewFromKey
    linkageType: ''
    returnType: void
    signature: void test_HashKey(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:192,1
    - Dst: HashNew
      Src: /src/core/libntech/tests/unit/hash_test.c:193,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:194,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:195,1
    - Dst: HashType
      Src: /src/core/libntech/tests/unit/hash_test.c:195,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:196,1
    - Dst: HashLength
      Src: /src/core/libntech/tests/unit/hash_test.c:196,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:197,1
    - Dst: HashData
      Src: /src/core/libntech/tests/unit/hash_test.c:197,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:198,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:199,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:199,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:200,1
    - Dst: HashCopy
      Src: /src/core/libntech/tests/unit/hash_test.c:200,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:201,1
    - Dst: HashType
      Src: /src/core/libntech/tests/unit/hash_test.c:201,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:202,1
    - Dst: HashLength
      Src: /src/core/libntech/tests/unit/hash_test.c:202,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:203,1
    - Dst: HashData
      Src: /src/core/libntech/tests/unit/hash_test.c:203,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:204,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:205,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:205,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:206,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:206,1
    - Dst: HashPrintable
      Src: /src/core/libntech/tests/unit/hash_test.c:206,1
    - Dst: HashDestroy
      Src: /src/core/libntech/tests/unit/hash_test.c:207,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:208,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:210,1
    - Dst: HashCopy
      Src: /src/core/libntech/tests/unit/hash_test.c:210,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:211,1
    - Dst: HashCopy
      Src: /src/core/libntech/tests/unit/hash_test.c:211,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:212,1
    - Dst: HashCopy
      Src: /src/core/libntech/tests/unit/hash_test.c:212,1
    - Dst: HashDestroy
      Src: /src/core/libntech/tests/unit/hash_test.c:214,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 216
    functionName: test_HashCopy
    functionSourceFile: /src/core/libntech/tests/unit/hash_test.c
    functionUses: 0
    functionsReached:
    - HashDestroy
    - HashType
    - assert_int_equal
    - HashLength
    - HashData
    - HashCopy
    - assert_true
    - HashNew
    - HashPrintable
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_HashCopy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashString
      Src: /src/core/libntech/tests/unit/hash_test.c:225,1
    - Dst: HashString
      Src: /src/core/libntech/tests/unit/hash_test.c:226,1
    - Dst: HashString
      Src: /src/core/libntech/tests/unit/hash_test.c:227,1
    - Dst: HashString
      Src: /src/core/libntech/tests/unit/hash_test.c:228,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:230,1
    - Dst: HashesMatch
      Src: /src/core/libntech/tests/unit/hash_test.c:230,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/hash_test.c:231,1
    - Dst: HashesMatch
      Src: /src/core/libntech/tests/unit/hash_test.c:231,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/hash_test.c:232,1
    - Dst: HashesMatch
      Src: /src/core/libntech/tests/unit/hash_test.c:232,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/hash_test.c:233,1
    - Dst: HashesMatch
      Src: /src/core/libntech/tests/unit/hash_test.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: test_HashesMatch
    functionSourceFile: /src/core/libntech/tests/unit/hash_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - HashString
    - HashesMatch
    linkageType: ''
    returnType: void
    signature: void test_HashesMatch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringCopyTruncateAndHashIfNecessary
      Src: /src/core/libntech/tests/unit/hash_test.c:242,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:243,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:244,1
    - Dst: StringCopyTruncateAndHashIfNecessary
      Src: /src/core/libntech/tests/unit/hash_test.c:246,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:247,1
    - Dst: StringCopyTruncateAndHashIfNecessary
      Src: /src/core/libntech/tests/unit/hash_test.c:250,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:251,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/hash_test.c:252,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/hash_test.c:252,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:253,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/hash_test.c:253,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/hash_test.c:253,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:254,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/hash_test.c:254,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:255,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/hash_test.c:255,1
    - Dst: StringCopyTruncateAndHashIfNecessary
      Src: /src/core/libntech/tests/unit/hash_test.c:257,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:258,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:259,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/hash_test.c:259,1
    - Dst: StringCopyTruncateAndHashIfNecessary
      Src: /src/core/libntech/tests/unit/hash_test.c:261,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/hash_test.c:262,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/hash_test.c:263,1
    - Dst: StringEqual
      Src: /src/core/libntech/tests/unit/hash_test.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 264
    functionName: test_StringCopyTruncateAndHashIfNecessary
    functionSourceFile: /src/core/libntech/tests/unit/hash_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - strlen
    - assert_true
    - StringCopyTruncateAndHashIfNecessary
    - assert_string_equal
    - StringEqual
    linkageType: ''
    returnType: void
    signature: void test_StringCopyTruncateAndHashIfNecessary(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/hash_test.c:272,1
    - Dst: tests_setup
      Src: /src/core/libntech/tests/unit/hash_test.c:273,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/hash_test.c:276,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/hash_test.c:277,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/hash_test.c:278,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/hash_test.c:279,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/hash_test.c:280,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/hash_test.c:281,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/hash_test.c:283,1
    - Dst: tests_teardown
      Src: /src/core/libntech/tests/unit/hash_test.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 286
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/hash_test.c
    functionUses: 1
    functionsReached:
    - tests_setup
    - unit_test
    - run_tests
    - tests_teardown
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmemdup
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _a
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: _IntCopy
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - xmemdup
    linkageType: ''
    returnType: void
    signature: void *_IntCopy(const void *_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: _IntCompare
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _IntCompare(const void *_a, const void *_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RBTreeNew
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: IntTreeNew_
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - RBTreeNew
    linkageType: ''
    returnType: RBTree
    signature: RBTree *IntTreeNew_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:27,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: test_new_destroy
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - RBTreeDestroy
    - IntTreeNew_
    linkageType: ''
    returnType: void
    signature: void test_new_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:33,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:36,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:36,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:37,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:38,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:40,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:40,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:41,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:42,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: test_put_overwrite
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - IntTreeNew_
    - assert_true
    - RBTreeDestroy
    - RBTreeGet
    - RBTreePut
    linkageType: ''
    returnType: void
    signature: void test_put_overwrite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:49,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:52,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:52,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:54,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:56,1
    - Dst: RBTreeRemove
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:56,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:57,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:58,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:60,1
    - Dst: RBTreeRemove
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:60,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:61,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:62,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: test_put_remove
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - IntTreeNew_
    - assert_true
    - RBTreeDestroy
    - RBTreeRemove
    - RBTreeGet
    - RBTreePut
    linkageType: ''
    returnType: void
    signature: void test_put_remove(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:69,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:72,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:77,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:78,1
    - Dst: RBTreeRemove
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:83,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: test_put_remove_inorder
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - IntTreeNew_
    - RBTreeDestroy
    - RBTreeRemove
    - RBTreeGet
    - RBTreePut
    linkageType: ''
    returnType: void
    signature: void test_put_remove_inorder(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:91,1
    - Dst: RBTreeIteratorNew
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:93,1
    - Dst: RBTreeIteratorNext
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:95,1
    - Dst: fail
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:97,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:99,1
    - Dst: RBTreeIteratorDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:100,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: test_iterate_empty
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - RBTreeDestroy
    - fail
    - RBTreeIteratorDestroy
    - RBTreeIteratorNew
    - RBTreeIteratorNext
    - IntTreeNew_
    linkageType: ''
    returnType: void
    signature: void test_iterate_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:107,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:111,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:114,1
    - Dst: RBTreeSize
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:114,1
    - Dst: RBTreeIteratorNew
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:116,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:121,1
    - Dst: RBTreeIteratorNext
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:121,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:122,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:123,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:126,1
    - Dst: RBTreeIteratorNext
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:126,1
    - Dst: RBTreeIteratorDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:127,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 130
    functionName: test_iterate
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - RBTreeSize
    - IntTreeNew_
    - assert_true
    - RBTreeDestroy
    - RBTreeIteratorDestroy
    - RBTreeIteratorNew
    - RBTreeIteratorNext
    - RBTreePut
    linkageType: ''
    returnType: void
    signature: void test_iterate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:134,1
    - Dst: srand
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:135,1
    - Dst: rand
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:138,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:139,1
    - Dst: xmemdup
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:139,1
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:142,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:143,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:145,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:145,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:145,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:148,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:150,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:151,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:152,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:155,1
    - Dst: RBTreeRemove
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:157,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:157,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:160,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: test_put_remove_random
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - rand
    - xmemdup
    - RBTreePut
    - IntTreeNew_
    - RBTreeDestroy
    - SeqNew
    - srand
    - RBTreeGet
    - RBTreeRemove
    - SeqLength
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_put_remove_random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:166,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:169,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:174,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:174,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:175,1
    - Dst: RBTreeSize
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:175,1
    - Dst: RBTreeClear
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:177,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:179,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:179,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:180,1
    - Dst: RBTreeSize
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:180,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:184,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:187,1
    - Dst: RBTreeGet
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:187,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:188,1
    - Dst: RBTreeSize
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:188,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 191
    functionName: test_clear
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - RBTreeClear
    - assert_int_equal
    - RBTreeSize
    - IntTreeNew_
    - assert_true
    - RBTreeDestroy
    - RBTreeGet
    - RBTreePut
    linkageType: ''
    returnType: void
    signature: void test_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:195,1
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:196,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:199,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:200,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:203,1
    - Dst: RBTreeEqual
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:203,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:205,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: test_equal
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - RBTreeEqual
    - IntTreeNew_
    - assert_true
    - RBTreeDestroy
    - RBTreePut
    linkageType: ''
    returnType: void
    signature: void test_equal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntTreeNew_
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:211,1
    - Dst: RBTreePut
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:214,1
    - Dst: RBTreeCopy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:217,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:219,1
    - Dst: RBTreeEqual
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:219,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:221,1
    - Dst: RBTreeDestroy
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 223
    functionName: test_copy
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 0
    functionsReached:
    - RBTreeEqual
    - IntTreeNew_
    - assert_true
    - RBTreeCopy
    - RBTreeDestroy
    - RBTreePut
    linkageType: ''
    returnType: void
    signature: void test_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:230,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:231,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:232,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:233,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:234,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:235,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:236,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:237,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:238,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:239,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:242,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/rb-tree-test.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 244
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/rb-tree-test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - unit_test
    - run_tests
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/core/libntech/tests/unit/thread_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:19,1
    - Dst: pthread_mutex_destroy
      Src: /src/core/libntech/tests/unit/thread_test.c:21,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: test_init_destroy
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - pthread_mutex_destroy
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void test_init_destroy(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/core/libntech/tests/unit/thread_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:29,1
    - Dst: pthread_mutex_trylock
      Src: /src/core/libntech/tests/unit/thread_test.c:31,1
    - Dst: fail
      Src: /src/core/libntech/tests/unit/thread_test.c:36,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libntech/tests/unit/thread_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: test_trylock_impl
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_trylock
    - pthread_mutex_unlock
    - assert_int_equal
    - fail
    linkageType: ''
    returnType: void
    signature: void test_trylock_impl(pthread_mutex_t *mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/core/libntech/tests/unit/thread_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:49,1
    - Dst: test_trylock_impl
      Src: /src/core/libntech/tests/unit/thread_test.c:51,1
    - Dst: pthread_mutex_destroy
      Src: /src/core/libntech/tests/unit/thread_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: test_trylock_dynamic
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 0
    functionsReached:
    - test_trylock_impl
    - assert_int_equal
    - pthread_mutex_destroy
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void test_trylock_dynamic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_trylock_impl
      Src: /src/core/libntech/tests/unit/thread_test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: test_trylock_static
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 0
    functionsReached:
    - test_trylock_impl
    linkageType: ''
    returnType: void
    signature: void test_trylock_static(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_trylock_impl
      Src: /src/core/libntech/tests/unit/thread_test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: test_trylock_static_errorcheck
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 0
    functionsReached:
    - test_trylock_impl
    linkageType: ''
    returnType: void
    signature: void test_trylock_static_errorcheck(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/thread_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:81,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/thread_test.c:83,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:84,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: test_create
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - assert_int_equal
    - pthread_create
    linkageType: ''
    returnType: void
    signature: void test_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/core/libntech/tests/unit/thread_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:96,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libntech/tests/unit/thread_test.c:106,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: increment_shared_var
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void increment_shared_var(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_children
      Src: /src/core/libntech/tests/unit/thread_test.c:117,1
    - Dst: join_children
      Src: /src/core/libntech/tests/unit/thread_test.c:118,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: test_lock
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - create_children
    - join_children
    linkageType: ''
    returnType: void
    signature: void test_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_attr_init
      Src: /src/core/libntech/tests/unit/thread_test.c:127,1
    - Dst: pthread_attr_setstacksize
      Src: /src/core/libntech/tests/unit/thread_test.c:128,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/thread_test.c:132,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tids
    argTypes:
    - pthread_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: create_children
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 1
    functionsReached:
    - pthread_attr_setstacksize
    - assert_int_equal
    - pthread_create
    - pthread_attr_init
    linkageType: ''
    returnType: void
    signature: void create_children(pthread_t tids[NUM_THREADS])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/thread_test.c:142,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/thread_test.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tids
    argTypes:
    - pthread_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: join_children
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 1
    functionsReached:
    - pthread_join
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void join_children(pthread_t tids[NUM_THREADS])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/thread_test.c:150,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/thread_test.c:153,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/thread_test.c:154,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/thread_test.c:155,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/thread_test.c:156,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/thread_test.c:157,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/thread_test.c:158,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/thread_test.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/thread_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libntech/tests/unit/alloc_test.c:12,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/alloc_test.c:14,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/alloc_test.c:15,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/alloc_test.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: test_xasprintf
    functionSourceFile: /src/core/libntech/tests/unit/alloc_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_int_equal
    - xasprintf
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_xasprintf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/tests/unit/alloc_test.c:24,1
    - Dst: xvasprintf
      Src: /src/core/libntech/tests/unit/alloc_test.c:25,1
    - Dst: va_end
      Src: /src/core/libntech/tests/unit/alloc_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/alloc_test.c:28,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/alloc_test.c:29,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/alloc_test.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: test_xvasprintf_sub
    functionSourceFile: /src/core/libntech/tests/unit/alloc_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - va_start
    - va_end
    - assert_string_equal
    - xvasprintf
    - free
    linkageType: ''
    returnType: void
    signature: void test_xvasprintf_sub(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_xvasprintf_sub
      Src: /src/core/libntech/tests/unit/alloc_test.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: test_xvasprintf
    functionSourceFile: /src/core/libntech/tests/unit/alloc_test.c
    functionUses: 0
    functionsReached:
    - test_xvasprintf_sub
    linkageType: ''
    returnType: void
    signature: void test_xvasprintf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/tests/unit/alloc_test.c:40,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/alloc_test.c:43,1
    - Dst: free_array_items
      Src: /src/core/libntech/tests/unit/alloc_test.c:46,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/alloc_test.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: test_free_array_items
    functionSourceFile: /src/core/libntech/tests/unit/alloc_test.c
    functionUses: 0
    functionsReached:
    - free_array_items
    - xcalloc
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void test_free_array_items(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/alloc_test.c:53,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/alloc_test.c:56,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/alloc_test.c:57,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/alloc_test.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/alloc_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/libntech/tests/unit/json_test.c:76,1
    - Dst: FileRead
      Src: /src/core/libntech/tests/unit/json_test.c:78,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/json_test.c:84,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:85,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:87,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 93
    functionName: LoadTestFile
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - StringWriterData
    - xsnprintf
    - FileRead
    - JsonParse
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *LoadTestFile(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:97,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:99,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: test_new_delete
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonObjectCreate
    - JsonDestroy
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void test_new_delete(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:105,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:107,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:108,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:110,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:110,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: test_object_duplicate_key
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - assert_int_equal
    - JsonDestroy
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void test_object_duplicate_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonStringCreate
      Src: /src/core/libntech/tests/unit/json_test.c:117,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:119,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:121,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:122,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:124,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:126,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: test_show_string
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonStringCreate
    - JsonDestroy
    - JsonWrite
    - StringWriter
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_show_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:132,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:134,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:135,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:137,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:139,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:140,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:142,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:144,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: test_show_object_simple
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - StringWriterClose
    - assert_string_equal
    - JsonWrite
    - free
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void test_show_object_simple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:150,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:152,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:154,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:156,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:157,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:159,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:161,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 163
    functionName: test_show_object_escaped
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - StringWriterClose
    - assert_string_equal
    - JsonWrite
    - free
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void test_show_object_escaped(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:167,1
    - Dst: JsonObjectAppendReal
      Src: /src/core/libntech/tests/unit/json_test.c:169,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:170,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:172,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:174,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:175,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:177,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:179,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 181
    functionName: test_show_object_numeric
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - JsonObjectAppendReal
    - StringWriter
    - JsonObjectAppendInteger
    - StringWriterClose
    - assert_string_equal
    - JsonWrite
    - free
    - JsonObjectCreate
    linkageType: ''
    returnType: void
    signature: void test_show_object_numeric(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:185,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libntech/tests/unit/json_test.c:187,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:189,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:191,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:192,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:194,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:196,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 198
    functionName: test_show_object_boolean
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - StringWriterClose
    - assert_string_equal
    - free
    - JsonWrite
    - JsonObjectAppendBool
    - JsonObjectCreate
    linkageType: ''
    returnType: void
    signature: void test_show_object_boolean(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:202,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:204,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:206,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:208,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libntech/tests/unit/json_test.c:210,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:213,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:215,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libntech/tests/unit/json_test.c:217,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:220,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:222,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:223,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:225,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:227,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 229
    functionName: test_show_object_compound
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - JsonObjectAppendObject
    - StringWriter
    - StringWriterClose
    - assert_string_equal
    - JsonWrite
    - free
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void test_show_object_compound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:233,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:235,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:237,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:239,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libntech/tests/unit/json_test.c:241,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:244,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:246,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libntech/tests/unit/json_test.c:248,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:251,1
    - Dst: JsonWriteCompact
      Src: /src/core/libntech/tests/unit/json_test.c:253,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:254,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:256,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:260,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 262
    functionName: test_show_object_compound_compact
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - JsonObjectAppendObject
    - StringWriter
    - JsonWriteCompact
    - assert_string_equal
    - StringWriterClose
    - free
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void test_show_object_compound_compact(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:266,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:268,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:270,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:271,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libntech/tests/unit/json_test.c:273,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:275,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:277,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:278,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:280,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:282,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 284
    functionName: test_show_object_array
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - StringWriterClose
    - assert_string_equal
    - JsonObjectAppendArray
    - JsonWrite
    - free
    - JsonObjectCreate
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_show_object_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:288,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:290,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:291,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:293,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:295,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:296,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:298,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:300,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 302
    functionName: test_show_array
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - StringWriterClose
    - assert_string_equal
    - JsonWrite
    - free
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_show_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:306,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:308,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:309,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:311,1
    - Dst: JsonWriteCompact
      Src: /src/core/libntech/tests/unit/json_test.c:313,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:314,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:316,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:318,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 320
    functionName: test_show_array_compact
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - JsonWriteCompact
    - assert_string_equal
    - StringWriterClose
    - free
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_show_array_compact(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:324,1
    - Dst: JsonArrayAppendBool
      Src: /src/core/libntech/tests/unit/json_test.c:326,1
    - Dst: JsonArrayAppendBool
      Src: /src/core/libntech/tests/unit/json_test.c:327,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:329,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:331,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:332,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:334,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:341,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 343
    functionName: test_show_array_boolean
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - StringWriterClose
    - JsonArrayAppendBool
    - assert_string_equal
    - JsonWrite
    - free
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_show_array_boolean(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:347,1
    - Dst: JsonArrayAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:349,1
    - Dst: JsonArrayAppendReal
      Src: /src/core/libntech/tests/unit/json_test.c:350,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:352,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:354,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:355,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:357,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:359,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 361
    functionName: test_show_array_numeric
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - JsonArrayAppendInteger
    - StringWriterClose
    - assert_string_equal
    - JsonWrite
    - free
    - JsonArrayAppendReal
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_show_array_numeric(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:365,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:366,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:368,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libntech/tests/unit/json_test.c:370,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:372,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:374,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:375,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:377,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:379,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 381
    functionName: test_show_array_object
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - StringWriterClose
    - JsonArrayAppendObject
    - assert_string_equal
    - JsonWrite
    - free
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_show_array_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:385,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:387,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:389,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:390,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:392,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:394,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 396
    functionName: test_show_array_empty
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - StringWriterClose
    - assert_string_equal
    - JsonWrite
    - free
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_show_array_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:400,1
    - Dst: JsonArrayAppendReal
      Src: /src/core/libntech/tests/unit/json_test.c:401,1
    - Dst: sqrt
      Src: /src/core/libntech/tests/unit/json_test.c:401,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:403,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:405,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:406,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:408,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:410,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 412
    functionName: test_show_array_nan
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - sqrt
    - StringWriter
    - StringWriterClose
    - assert_string_equal
    - JsonWrite
    - free
    - JsonArrayAppendReal
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_show_array_nan(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:420,1
    - Dst: JsonArrayAppendReal
      Src: /src/core/libntech/tests/unit/json_test.c:421,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:423,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:425,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:426,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:428,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:430,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 432
    functionName: test_show_array_infinity
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - StringWriter
    - StringWriterClose
    - assert_string_equal
    - JsonWrite
    - free
    - JsonArrayAppendReal
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_show_array_infinity(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:436,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:438,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:439,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:441,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:441,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:442,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:442,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: test_object_get_string
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - JsonObjectGetAsString
    - assert_string_equal
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void test_object_get_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:449,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libntech/tests/unit/json_test.c:451,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libntech/tests/unit/json_test.c:452,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:454,1
    - Dst: JsonObjectGetAsBool
      Src: /src/core/libntech/tests/unit/json_test.c:454,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:455,1
    - Dst: JsonObjectGetAsBool
      Src: /src/core/libntech/tests/unit/json_test.c:455,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 458
    functionName: test_object_get_bool
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - JsonDestroy
    - JsonObjectGetAsBool
    - JsonObjectAppendBool
    - JsonObjectCreate
    linkageType: ''
    returnType: void
    signature: void test_object_get_bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:462,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:464,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:465,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:467,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libntech/tests/unit/json_test.c:469,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libntech/tests/unit/json_test.c:471,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:473,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:473,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 476
    functionName: test_object_get_array
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - JsonObjectGetAsArray
    - JsonArrayGetAsString
    - assert_string_equal
    - JsonObjectAppendArray
    - JsonObjectCreate
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_object_get_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:480,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:482,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:483,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:484,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libntech/tests/unit/json_test.c:485,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libntech/tests/unit/json_test.c:486,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/tests/unit/json_test.c:490,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:492,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:492,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:493,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/tests/unit/json_test.c:493,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:494,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/tests/unit/json_test.c:494,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:495,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/tests/unit/json_test.c:495,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:496,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/tests/unit/json_test.c:496,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:497,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:497,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:498,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/tests/unit/json_test.c:498,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:499,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:499,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:500,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/tests/unit/json_test.c:500,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/tests/unit/json_test.c:504,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:506,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:506,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:507,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:508,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:508,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:509,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:510,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:510,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:511,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/libntech/tests/unit/json_test.c:512,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:512,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:513,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libntech/tests/unit/json_test.c:513,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:513,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:514,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:514,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:515,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libntech/tests/unit/json_test.c:515,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:515,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:516,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:516,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:517,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:517,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 521
    functionName: test_object_iterator
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonIteratorNextKey
    - JsonPrimitiveGetAsBool
    - assert_false
    - assert_int_equal
    - JsonDestroy
    - JsonPrimitiveGetAsInteger
    - assert_true
    - JsonIteratorHasMore
    - JsonObjectAppendInteger
    - assert_string_equal
    - JsonPrimitiveGetAsString
    - JsonObjectAppendBool
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonIteratorNextValue
    linkageType: ''
    returnType: void
    signature: void test_object_iterator(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:525,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:527,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:528,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:530,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:530,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:531,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:531,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 534
    functionName: test_array_get_string
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - JsonArrayGetAsString
    - assert_string_equal
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_array_get_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:538,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:540,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:541,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/tests/unit/json_test.c:544,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:546,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:546,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:547,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:548,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:548,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:549,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:549,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:550,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:551,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:551,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:552,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:552,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:553,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:553,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 557
    functionName: test_array_iterator
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - assert_false
    - JsonDestroy
    - assert_true
    - JsonIteratorHasMore
    - assert_string_equal
    - JsonPrimitiveGetAsString
    - JsonArrayAppendString
    - JsonIteratorNextValue
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_array_iterator(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadTestFile
      Src: /src/core/libntech/tests/unit/json_test.c:561,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:562,1
    - Dst: JsonCopy
      Src: /src/core/libntech/tests/unit/json_test.c:564,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:565,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:567,1
    - Dst: JsonCompare
      Src: /src/core/libntech/tests/unit/json_test.c:567,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:569,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 571
    functionName: test_copy_compare
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - JsonDestroy
    - JsonCopy
    - assert_true
    - LoadTestFile
    - JsonCompare
    linkageType: ''
    returnType: void
    signature: void test_copy_compare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:575,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:576,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:578,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libntech/tests/unit/json_test.c:579,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:581,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:582,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:583,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libntech/tests/unit/json_test.c:584,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:586,1
    - Dst: JsonCompare
      Src: /src/core/libntech/tests/unit/json_test.c:586,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:588,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 590
    functionName: test_compare_container_type_mismatch
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - JsonObjectAppendObject
    - assert_true
    - JsonCompare
    - JsonObjectAppendArray
    - JsonObjectCreate
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_compare_container_type_mismatch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:596,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:596,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:598,1
    - Dst: JsonSelect
      Src: /src/core/libntech/tests/unit/json_test.c:598,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:602,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/tests/unit/json_test.c:604,1
    - Dst: JsonSelect
      Src: /src/core/libntech/tests/unit/json_test.c:604,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:608,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:609,1
    - Dst: JsonSelect
      Src: /src/core/libntech/tests/unit/json_test.c:609,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:613,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:614,1
    - Dst: JsonSelect
      Src: /src/core/libntech/tests/unit/json_test.c:614,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:618,1
    - Dst: JsonSelect
      Src: /src/core/libntech/tests/unit/json_test.c:618,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:622,1
    - Dst: JsonSelect
      Src: /src/core/libntech/tests/unit/json_test.c:622,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:627,1
    - Dst: JsonSelect
      Src: /src/core/libntech/tests/unit/json_test.c:627,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:632,1
    - Dst: JsonSelect
      Src: /src/core/libntech/tests/unit/json_test.c:632,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 636
    functionName: test_select
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - assert_int_equal
    - JsonDestroy
    - assert_true
    - assert_string_equal
    - JsonPrimitiveGetAsString
    - JsonSelect
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:640,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:641,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:642,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:644,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:645,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:646,1
    - Dst: JsonMerge
      Src: /src/core/libntech/tests/unit/json_test.c:648,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:650,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:650,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:651,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:651,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:652,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:652,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:654,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:654,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:655,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:655,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:656,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:656,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:657,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:657,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:659,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:660,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 662
    functionName: test_merge_array
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonMerge
    - JsonLength
    - assert_int_equal
    - JsonDestroy
    - JsonArrayGetAsString
    - assert_string_equal
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_merge_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:666,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:667,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:668,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:670,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:671,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:672,1
    - Dst: JsonMerge
      Src: /src/core/libntech/tests/unit/json_test.c:674,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:676,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:676,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:677,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:677,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:678,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:678,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:680,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:680,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:681,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:681,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:682,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:682,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:684,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:685,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 687
    functionName: test_merge_object
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonMerge
    - JsonLength
    - assert_int_equal
    - JsonDestroy
    - JsonObjectGetAsString
    - assert_string_equal
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: void test_merge_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:694,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:694,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:695,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:696,1
    - Dst: JsonGetType
      Src: /src/core/libntech/tests/unit/json_test.c:696,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:697,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:697,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:698,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:704,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:704,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:705,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:706,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/tests/unit/json_test.c:706,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:707,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/tests/unit/json_test.c:707,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:708,1
    - Dst: JsonGetType
      Src: /src/core/libntech/tests/unit/json_test.c:708,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:709,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/tests/unit/json_test.c:709,1
    - Dst: JsonGetType
      Src: /src/core/libntech/tests/unit/json_test.c:709,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:710,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:710,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 713
    functionName: test_parse_empty_containers
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonLength
    - assert_int_equal
    - JsonDestroy
    - JsonGetElementType
    - assert_true
    - JsonGetType
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_empty_containers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:719,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:719,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:721,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:721,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:722,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:722,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:723,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:723,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 726
    functionName: test_parse_object_simple
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - JsonDestroy
    - JsonObjectGetAsString
    - assert_string_equal
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_object_simple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:737,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:737,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:739,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:740,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:740,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:743,1
    - Dst: JsonWrite
      Src: /src/core/libntech/tests/unit/json_test.c:744,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:746,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/json_test.c:746,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:748,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 752
    functionName: test_parse_object_escaped
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - WriterClose
    - JsonDestroy
    - JsonObjectGetAsString
    - StringWriter
    - assert_int_not_equal
    - StringWriterData
    - assert_string_equal
    - JsonWrite
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_object_escaped(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:759,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:759,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:761,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:763,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libntech/tests/unit/json_test.c:764,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 767
    functionName: test_parse_tzz_evil_key
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - JsonDestroy
    - JsonObjectGetAsArray
    - JsonArrayGetAsString
    - assert_string_equal
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_tzz_evil_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:774,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:774,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:775,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:775,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:776,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:779,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:779,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:780,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/libntech/tests/unit/json_test.c:780,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:781,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:784,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:784,1
    - Dst: assert_double_close
      Src: /src/core/libntech/tests/unit/json_test.c:785,1
    - Dst: JsonPrimitiveGetAsReal
      Src: /src/core/libntech/tests/unit/json_test.c:785,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:786,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:789,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:789,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:790,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libntech/tests/unit/json_test.c:790,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 792
    functionName: test_parse_primitives
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonPrimitiveGetAsBool
    - JsonDestroy
    - assert_int_equal
    - JsonPrimitiveGetAsInteger
    - JsonPrimitiveGetAsReal
    - assert_double_close
    - assert_true
    - assert_string_equal
    - JsonPrimitiveGetAsString
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_primitives(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:798,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:798,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:800,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:800,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:801,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:801,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 804
    functionName: test_parse_array_simple
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - assert_int_equal
    - JsonArrayGetAsString
    - assert_string_equal
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_array_simple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:810,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:810,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:812,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:812,1
    - Dst: JsonObjectGetAsObject
      Src: /src/core/libntech/tests/unit/json_test.c:814,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:816,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:816,1
    - Dst: JsonObjectGetAsObject
      Src: /src/core/libntech/tests/unit/json_test.c:818,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:820,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:820,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 823
    functionName: test_parse_object_compound
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - JsonObjectGetAsObject
    - JsonDestroy
    - JsonObjectGetAsString
    - assert_string_equal
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_object_compound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:831,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:831,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:832,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:833,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:840,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:840,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:841,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 844
    functionName: test_parse_object_diverse
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_int_equal
    - JsonParse
    - JsonDestroy
    linkageType: ''
    returnType: void
    signature: void test_parse_object_diverse(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:850,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:850,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libntech/tests/unit/json_test.c:852,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:854,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:854,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 857
    functionName: test_parse_array_object
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - JsonDestroy
    - JsonArrayGetAsObject
    - JsonObjectGetAsString
    - assert_string_equal
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_array_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:863,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:863,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:865,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libntech/tests/unit/json_test.c:866,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/tests/unit/json_test.c:868,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/tests/unit/json_test.c:869,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:871,1
    - Dst: JsonIteratorCurrentElementType
      Src: /src/core/libntech/tests/unit/json_test.c:872,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:874,1
    - Dst: JsonIteratorCurrentContainerType
      Src: /src/core/libntech/tests/unit/json_test.c:875,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:877,1
    - Dst: JsonIteratorCurrentKey
      Src: /src/core/libntech/tests/unit/json_test.c:877,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 881
    functionName: test_iterator_current
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - assert_int_equal
    - JsonDestroy
    - JsonIteratorCurrentKey
    - JsonIteratorNextValue
    - JsonIteratorCurrentContainerType
    - JsonIteratorCurrentElementType
    - assert_string_equal
    - JsonObjectAppendArray
    - JsonObjectCreate
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_iterator_current(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:885,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/tests/unit/json_test.c:885,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/json_test.c:888,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:888,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/tests/unit/json_test.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - primitive
    - data
    argTypes:
    - JsonElement*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 891
    functionName: VisitPrimitive
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - JsonGetElementType
    - WriterWriteChar
    - WriterWrite
    - JsonPrimitiveGetAsString
    linkageType: ''
    returnType: bool
    signature: bool VisitPrimitive(JsonElement *primitive, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:895,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/tests/unit/json_test.c:895,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:896,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/tests/unit/json_test.c:896,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/tests/unit/json_test.c:899,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - array
    - data
    argTypes:
    - JsonElement*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 901
    functionName: VisitArray
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonLength
    - assert_int_equal
    - JsonGetElementType
    - WriterWriteF
    linkageType: ''
    returnType: bool
    signature: bool VisitArray(JsonElement *array, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:905,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/tests/unit/json_test.c:905,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:906,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/tests/unit/json_test.c:906,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/tests/unit/json_test.c:909,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/tests/unit/json_test.c:910,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/tests/unit/json_test.c:911,1
    - Dst: WriterWrite
      Src: /src/core/libntech/tests/unit/json_test.c:913,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/tests/unit/json_test.c:913,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/tests/unit/json_test.c:914,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/tests/unit/json_test.c:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - object
    - data
    argTypes:
    - JsonElement*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 918
    functionName: VisitObject
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonIteratorInit
    - JsonIteratorNextKey
    - assert_int_equal
    - JsonGetElementType
    - WriterWriteChar
    - JsonIteratorHasMore
    - WriterWrite
    linkageType: ''
    returnType: bool
    signature: bool VisitObject(JsonElement *object, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:922,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/tests/unit/json_test.c:922,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:923,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/tests/unit/json_test.c:923,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/tests/unit/json_test.c:926,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:926,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - array
    - data
    argTypes:
    - JsonElement*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 928
    functionName: VisitArrayAbortOnEmpty
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonLength
    - assert_int_equal
    - JsonGetElementType
    - WriterWriteF
    linkageType: ''
    returnType: bool
    signature: bool VisitArrayAbortOnEmpty(JsonElement *array, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadTestFile
      Src: /src/core/libntech/tests/unit/json_test.c:933,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:934,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:936,1
    - Dst: JsonWalk
      Src: /src/core/libntech/tests/unit/json_test.c:937,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:938,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:942,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/json_test.c:942,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:943,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:945,1
    - Dst: JsonWalk
      Src: /src/core/libntech/tests/unit/json_test.c:946,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:947,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:949,1
    - Dst: StringWriterData
      Src: /src/core/libntech/tests/unit/json_test.c:949,1
    - Dst: WriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:950,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 930
    functionDepth: 2
    functionLinenumber: 930
    functionLinenumberEnd: 953
    functionName: test_json_walk
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - WriterClose
    - JsonDestroy
    - assert_true
    - LoadTestFile
    - StringWriter
    - JsonWalk
    - StringWriterData
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_json_walk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:959,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:959,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:961,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:964,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:964,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:966,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:966,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 969
    functionName: test_parse_empty_string
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - JsonDestroy
    - assert_int_not_equal
    - assert_string_equal
    - JsonPrimitiveGetAsString
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_empty_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/json_test.c:973,1
    - Dst: JsonWriteCompact
      Src: /src/core/libntech/tests/unit/json_test.c:974,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/json_test.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - json
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 976
    functionName: JsonToString
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - StringWriterClose
    - JsonWriteCompact
    - StringWriter
    linkageType: ''
    returnType: char
    signature: char *JsonToString(const JsonElement *json)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:984,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:984,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:986,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:986,1
    - Dst: JsonToString
      Src: /src/core/libntech/tests/unit/json_test.c:988,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:989,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:990,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:992,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1000,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1000,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1002,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1002,1
    - Dst: JsonToString
      Src: /src/core/libntech/tests/unit/json_test.c:1004,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1005,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:1006,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1008,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1015,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1015,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1017,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1017,1
    - Dst: JsonToString
      Src: /src/core/libntech/tests/unit/json_test.c:1019,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1020,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:1021,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 1025
    functionName: test_parse_escaped_string
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - JsonDestroy
    - assert_string_equal
    - JsonPrimitiveGetAsString
    - free
    - JsonToString
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_escaped_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1035,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1035,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1036,1
    - Dst: JsonArrayGet
      Src: /src/core/libntech/tests/unit/json_test.c:1038,1
    - Dst: JsonPrimitiveGetAsInt64
      Src: /src/core/libntech/tests/unit/json_test.c:1040,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1041,1
    - Dst: xasprintf
      Src: /src/core/libntech/tests/unit/json_test.c:1043,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1044,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:1045,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1046,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1051,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1051,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1052,1
    - Dst: JsonArrayGet
      Src: /src/core/libntech/tests/unit/json_test.c:1054,1
    - Dst: JsonPrimitiveGetAsInt64
      Src: /src/core/libntech/tests/unit/json_test.c:1056,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1057,1
    - Dst: xasprintf
      Src: /src/core/libntech/tests/unit/json_test.c:1059,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1060,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:1061,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1062,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1068,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1068,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1069,1
    - Dst: JsonArrayGet
      Src: /src/core/libntech/tests/unit/json_test.c:1071,1
    - Dst: JsonPrimitiveGetAsInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/json_test.c:1072,1
    - Dst: xasprintf
      Src: /src/core/libntech/tests/unit/json_test.c:1074,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1075,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:1076,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1077,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1082,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1082,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1083,1
    - Dst: JsonArrayGet
      Src: /src/core/libntech/tests/unit/json_test.c:1085,1
    - Dst: JsonPrimitiveGetAsInt64DefaultOnError
      Src: /src/core/libntech/tests/unit/json_test.c:1086,1
    - Dst: xasprintf
      Src: /src/core/libntech/tests/unit/json_test.c:1088,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1089,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:1090,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1091,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1097,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1097,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1098,1
    - Dst: JsonArrayGet
      Src: /src/core/libntech/tests/unit/json_test.c:1100,1
    - Dst: JsonPrimitiveGetAsInt64ExitOnError
      Src: /src/core/libntech/tests/unit/json_test.c:1101,1
    - Dst: xasprintf
      Src: /src/core/libntech/tests/unit/json_test.c:1103,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1104,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:1105,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1106,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1111,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1111,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1112,1
    - Dst: JsonArrayGet
      Src: /src/core/libntech/tests/unit/json_test.c:1114,1
    - Dst: JsonPrimitiveGetAsInt64ExitOnError
      Src: /src/core/libntech/tests/unit/json_test.c:1115,1
    - Dst: xasprintf
      Src: /src/core/libntech/tests/unit/json_test.c:1117,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1118,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:1119,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1120,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1124,1
    - Dst: JsonIntegerCreate64
      Src: /src/core/libntech/tests/unit/json_test.c:1125,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/tests/unit/json_test.c:1126,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1127,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1127,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/tests/unit/json_test.c:1128,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1129,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1130,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1131,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1135,1
    - Dst: JsonObjectAppendInteger64
      Src: /src/core/libntech/tests/unit/json_test.c:1136,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1137,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1137,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/tests/unit/json_test.c:1139,1
    - Dst: JsonPrimitiveGetAsInt64
      Src: /src/core/libntech/tests/unit/json_test.c:1141,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1142,1
    - Dst: xasprintf
      Src: /src/core/libntech/tests/unit/json_test.c:1144,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1145,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:1146,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1151
    functionName: test_parse_big_numbers
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - assert_int_equal
    - JsonDestroy
    - JsonPrimitiveGetAsInt64DefaultOnError
    - assert_true
    - xasprintf
    - JsonObjectAppendInteger64
    - JsonObjectAppendElement
    - JsonArrayGet
    - JsonPrimitiveGetAsInt64
    - assert_string_equal
    - JsonObjectGet
    - JsonPrimitiveGetAsString
    - free
    - JsonObjectCreate
    - JsonIntegerCreate64
    - JsonParse
    - JsonPrimitiveGetAsInt64ExitOnError
    linkageType: ''
    returnType: void
    signature: void test_parse_big_numbers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1158,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1158,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1159,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1160,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1166,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1166,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1167,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1168,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1174,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1174,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1175,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1176,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1182,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1182,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1183,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1184,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1190,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1190,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1191,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1192,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1198,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1198,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1199,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1200,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1206,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1206,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1207,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1208,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1214,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1214,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1215,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1216,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1222,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1222,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1223,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1224,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1230,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1230,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1231,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1232,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1238,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1238,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1239,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1242
    functionName: test_parse_good_numbers
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_int_equal
    - JsonParse
    - JsonDestroy
    linkageType: ''
    returnType: void
    signature: void test_parse_good_numbers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1249,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1249,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1255,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1255,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1261,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1261,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1267,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1267,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1273,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1273,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1279,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1279,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1285,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1285,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1291,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1293
    functionName: test_parse_bad_numbers
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonParse
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_parse_bad_numbers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1299,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1299,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1301,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1304
    functionName: test_parse_trim
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_int_equal
    - JsonParse
    - JsonDestroy
    linkageType: ''
    returnType: void
    signature: void test_parse_trim(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1310,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1310,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1312,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1315
    functionName: test_parse_array_extra_closing
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_int_equal
    - JsonParse
    - JsonDestroy
    linkageType: ''
    returnType: void
    signature: void test_parse_array_extra_closing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1321,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1321,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1322,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1326,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1326,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1327,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1328,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1332,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1332,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1333,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1337,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1337,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1338,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1339,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1343,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1343,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1344,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1348,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1348,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1349,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1353,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1353,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1354,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1358,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1358,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1359,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1363,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1363,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1364,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1368,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1368,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1369,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1373,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1373,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1374,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1378,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1378,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1379,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1383,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1383,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1384,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1388,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1388,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1389,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1393,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1393,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1394,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1398,1
    - Dst: JsonParseAll
      Src: /src/core/libntech/tests/unit/json_test.c:1398,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1400
    functionName: test_parse_all
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - assert_true
    - assert_int_equal
    - JsonParseAll
    linkageType: ''
    returnType: void
    signature: void test_parse_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1407,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1407,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1408,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1409,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1415,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1415,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1416,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1419
    functionName: test_parse_array_diverse
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_int_equal
    - JsonParse
    - JsonDestroy
    linkageType: ''
    returnType: void
    signature: void test_parse_array_diverse(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1425,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1425,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1428
    functionName: test_parse_bad_apple2
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonParse
    - assert_false
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_parse_bad_apple2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1435,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1435,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1436,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1442,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1442,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1443,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1449,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1449,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1450,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1456,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1456,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1459
    functionName: test_parse_object_garbage
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonParse
    - assert_false
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_parse_object_garbage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1466,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1466,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1467,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1473,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1473,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1476
    functionName: test_parse_object_nested_garbage
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonParse
    - assert_false
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_parse_object_nested_garbage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1483,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1483,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1484,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1490,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1490,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1491,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1497,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1497,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1498,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1504,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1504,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1507
    functionName: test_parse_array_garbage
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonParse
    - assert_false
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_parse_array_garbage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1514,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1514,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1515,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1521,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1521,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1524
    functionName: test_parse_array_nested_garbage
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonParse
    - assert_false
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_parse_array_nested_garbage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1529,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1530,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1531,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1532,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1534,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1535,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1536,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1537,1
    - Dst: JsonArrayExtend
      Src: /src/core/libntech/tests/unit/json_test.c:1539,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1541,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1541,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1542,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1542,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1543,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1543,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1544,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1544,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1545,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1545,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1546,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1546,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1547,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1547,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1549,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1552,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1553,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1554,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1555,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1557,1
    - Dst: JsonArrayExtend
      Src: /src/core/libntech/tests/unit/json_test.c:1559,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1561,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1561,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1562,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1562,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1563,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1563,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1564,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1564,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1566,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1569,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1571,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1572,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1573,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1574,1
    - Dst: JsonArrayExtend
      Src: /src/core/libntech/tests/unit/json_test.c:1576,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1578,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1578,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1579,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1579,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1580,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1580,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1581,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1581,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1526
    functionDepth: 1
    functionLinenumber: 1526
    functionLinenumberEnd: 1585
    functionName: test_array_extend
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - assert_int_equal
    - JsonDestroy
    - JsonArrayGetAsString
    - assert_string_equal
    - JsonArrayExtend
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_array_extend(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1591,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1593,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1594,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1595,1
    - Dst: JsonArrayRemoveRange
      Src: /src/core/libntech/tests/unit/json_test.c:1596,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1598,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1598,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1600,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1605,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1607,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1608,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1609,1
    - Dst: JsonArrayRemoveRange
      Src: /src/core/libntech/tests/unit/json_test.c:1610,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1612,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1612,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1613,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1613,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1614,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1614,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1616,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1621,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1623,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1624,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1625,1
    - Dst: JsonArrayRemoveRange
      Src: /src/core/libntech/tests/unit/json_test.c:1626,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1628,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1628,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1629,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1629,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1631,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1636,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1638,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1639,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/tests/unit/json_test.c:1640,1
    - Dst: JsonArrayRemoveRange
      Src: /src/core/libntech/tests/unit/json_test.c:1641,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1643,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1643,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1644,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:1644,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1648
    functionName: test_array_remove_range
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - assert_int_equal
    - JsonDestroy
    - JsonArrayGetAsString
    - assert_string_equal
    - JsonArrayRemoveRange
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void test_array_remove_range(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1652,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:1654,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:1655,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:1656,1
    - Dst: JsonObjectRemoveKey
      Src: /src/core/libntech/tests/unit/json_test.c:1658,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1660,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1660,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1663
    functionName: test_remove_key_from_object
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - assert_int_equal
    - JsonDestroy
    - JsonObjectAppendInteger
    - JsonObjectRemoveKey
    - JsonObjectCreate
    linkageType: ''
    returnType: void
    signature: void test_remove_key_from_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1667,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:1669,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:1670,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:1671,1
    - Dst: JsonObjectDetachKey
      Src: /src/core/libntech/tests/unit/json_test.c:1673,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1675,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1675,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1676,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1678,1
    - Dst: JsonLength
      Src: /src/core/libntech/tests/unit/json_test.c:1678,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1680
    functionName: test_detach_key_from_object
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - assert_int_equal
    - JsonDestroy
    - JsonObjectAppendInteger
    - JsonObjectDetachKey
    - JsonObjectCreate
    linkageType: ''
    returnType: void
    signature: void test_detach_key_from_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1687,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1687,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1688,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1694,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1694,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1695,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1701,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1701,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1702,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1708,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1708,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1709,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1716,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1716,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1682
    functionDepth: 1
    functionLinenumber: 1682
    functionLinenumberEnd: 1719
    functionName: test_parse_array_double_and_trailing_commas
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - JsonDestroy
    - assert_int_not_equal
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_array_double_and_trailing_commas(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1726,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1726,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1727,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1733,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1733,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1736
    functionName: test_parse_array_comma_after_brace
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonParse
    - assert_false
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_parse_array_comma_after_brace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1743,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1743,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1744,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1750,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1750,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1751,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1757,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1757,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1758,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1764,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1764,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1767
    functionName: test_parse_array_bad_nested_elems
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonParse
    - assert_false
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_parse_array_bad_nested_elems(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1774,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1774,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1775,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1781,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1781,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1784
    functionName: test_parse_object_double_colon
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonParse
    - assert_false
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_parse_object_double_colon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1791,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1791,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1792,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1798,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1798,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1799,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1805,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1805,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1806,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1812,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1812,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1813,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:1820,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1820,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1823
    functionName: test_parse_object_double_and_trailing_comma
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - JsonDestroy
    - assert_int_not_equal
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_parse_object_double_and_trailing_comma(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unescaped
    - ','
    - escaped
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1834
    functionName: assert_json_strings_eq
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_json_strings_eq(unescaped, escaped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1837,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1838,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1839,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1840,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1841,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1842,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1843,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1844,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1845,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1846,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1849,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1857,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1863,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1869,1
    - Dst: assert_json_strings_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1835
    functionDepth: 1
    functionLinenumber: 1835
    functionLinenumberEnd: 1876
    functionName: test_string_escape
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_json_strings_eq
    linkageType: ''
    returnType: void
    signature: void test_string_escape(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _size
    - ','
    - unescaped
    - ','
    - escaped
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1878
    functionDepth: 0
    functionLinenumber: 1878
    functionLinenumberEnd: 1887
    functionName: assert_json5_data_eq
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_json5_data_eq(_size, unescaped, escaped)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unescaped
    - ','
    - escaped
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1888
    functionDepth: 0
    functionLinenumber: 1888
    functionLinenumberEnd: 1892
    functionName: assert_json5_strings
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_json5_strings(unescaped, escaped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1896,1
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1897,1
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1898,1
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1899,1
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1900,1
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1901,1
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1902,1
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1903,1
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1904,1
    - Dst: assert_json5_strings
      Src: /src/core/libntech/tests/unit/json_test.c:1905,1
    - Dst: assert_json5_data_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1911,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/json_test.c:1911,1
    - Dst: assert_json5_data_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1915,1
    - Dst: assert_json5_data_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1916,1
    - Dst: assert_json5_data_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1917,1
    - Dst: assert_json5_data_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1919,1
    - Dst: assert_json5_data_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1920,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1924,1
    - Dst: CharIsPrintableAscii
      Src: /src/core/libntech/tests/unit/json_test.c:1924,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1925,1
    - Dst: CharIsPrintableAscii
      Src: /src/core/libntech/tests/unit/json_test.c:1925,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1926,1
    - Dst: CharIsPrintableAscii
      Src: /src/core/libntech/tests/unit/json_test.c:1926,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1927,1
    - Dst: CharIsPrintableAscii
      Src: /src/core/libntech/tests/unit/json_test.c:1927,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1928,1
    - Dst: CharIsPrintableAscii
      Src: /src/core/libntech/tests/unit/json_test.c:1928,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1929,1
    - Dst: CharIsPrintableAscii
      Src: /src/core/libntech/tests/unit/json_test.c:1929,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1930,1
    - Dst: CharIsPrintableAscii
      Src: /src/core/libntech/tests/unit/json_test.c:1930,1
    - Dst: assert_json5_data_eq
      Src: /src/core/libntech/tests/unit/json_test.c:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1893
    functionDepth: 1
    functionLinenumber: 1893
    functionLinenumberEnd: 1932
    functionName: test_string_escape_json5
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_json5_data_eq
    - strlen
    - assert_json5_strings
    - CharIsPrintableAscii
    linkageType: ''
    returnType: void
    signature: void test_string_escape_json5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1937,1
    - Dst: NULL_JSON
      Src: /src/core/libntech/tests/unit/json_test.c:1937,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1938,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libntech/tests/unit/json_test.c:1938,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:1940,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1941,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libntech/tests/unit/json_test.c:1941,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1942,1
    - Dst: NULL_JSON
      Src: /src/core/libntech/tests/unit/json_test.c:1942,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libntech/tests/unit/json_test.c:1944,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/tests/unit/json_test.c:1946,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1947,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libntech/tests/unit/json_test.c:1947,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1948,1
    - Dst: NULL_JSON
      Src: /src/core/libntech/tests/unit/json_test.c:1948,1
    - Dst: JsonObjectAppendNull
      Src: /src/core/libntech/tests/unit/json_test.c:1950,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/tests/unit/json_test.c:1951,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:1952,1
    - Dst: NULL_JSON
      Src: /src/core/libntech/tests/unit/json_test.c:1952,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:1953,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libntech/tests/unit/json_test.c:1953,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1934
    functionDepth: 1
    functionLinenumber: 1934
    functionLinenumberEnd: 1956
    functionName: test_json_null_not_null
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - JsonDestroy
    - NULL_JSON
    - JsonObjectAppendNull
    - assert_true
    - JsonObjectAppendInteger
    - JSON_NOT_NULL
    - JsonObjectCreate
    - JsonObjectGet
    linkageType: ''
    returnType: void
    signature: void test_json_null_not_null(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: LogSetGlobalLevel
      Src: /src/core/libntech/tests/unit/json_test.c:1960,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1969,1
    - Dst: printf
      Src: /src/core/libntech/tests/unit/json_test.c:1971,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1976,1
    - Dst: printf
      Src: /src/core/libntech/tests/unit/json_test.c:1978,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:1983,1
    - Dst: printf
      Src: /src/core/libntech/tests/unit/json_test.c:1984,1
    - Dst: JsonToString
      Src: /src/core/libntech/tests/unit/json_test.c:1989,1
    - Dst: JsonObjectMergeDeep
      Src: /src/core/libntech/tests/unit/json_test.c:1991,1
    - Dst: JsonToString
      Src: /src/core/libntech/tests/unit/json_test.c:1998,1
    - Dst: JsonCompare
      Src: /src/core/libntech/tests/unit/json_test.c:2000,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/libntech/tests/unit/json_test.c:2006,1
    - Dst: JsonObjectMergeDeepInplace
      Src: /src/core/libntech/tests/unit/json_test.c:2007,1
    - Dst: JsonCompare
      Src: /src/core/libntech/tests/unit/json_test.c:2016,1
    - Dst: printf
      Src: /src/core/libntech/tests/unit/json_test.c:2027,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:2029,1
    - Dst: printf
      Src: /src/core/libntech/tests/unit/json_test.c:2035,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/json_test.c:2037,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2042,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2044,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2045,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2046,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 3
    argNames:
    - base_raw
    - extra_raw
    - expected_raw
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 1958
    functionDepth: 2
    functionLinenumber: 1958
    functionLinenumberEnd: 2049
    functionName: check_json_object_merge_deep
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonObjectMergeDeep
    - DESTROY_AND_NULL
    - JsonDestroy
    - LogSetGlobalLevel
    - JsonObjectMergeDeepInplace
    - printf
    - JsonCompare
    - free
    - JsonToString
    - JsonParse
    linkageType: ''
    returnType: bool
    signature: bool check_json_object_merge_deep(const char *base_raw, const char
      *extra_raw, const char *expected_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2056,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2056,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2065,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2065,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2078,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2078,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2091,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2091,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2106,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2106,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2125,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2125,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2156,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2156,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:2199,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2199,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:2229,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2229,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2258,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2258,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2284,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2284,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2311,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2311,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2338,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2338,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2365,1
    - Dst: check_json_object_merge_deep
      Src: /src/core/libntech/tests/unit/json_test.c:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2051
    functionDepth: 3
    functionLinenumber: 2051
    functionLinenumberEnd: 2391
    functionName: test_json_object_merge_deep
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - check_json_object_merge_deep
    linkageType: ''
    returnType: void
    signature: void test_json_object_merge_deep()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonStringCreate
      Src: /src/core/libntech/tests/unit/json_test.c:2396,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libntech/tests/unit/json_test.c:2398,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2399,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2400,1
    - Dst: JsonIntegerCreate
      Src: /src/core/libntech/tests/unit/json_test.c:2404,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libntech/tests/unit/json_test.c:2406,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2407,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2408,1
    - Dst: JsonRealCreate
      Src: /src/core/libntech/tests/unit/json_test.c:2412,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libntech/tests/unit/json_test.c:2414,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2415,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2416,1
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/tests/unit/json_test.c:2420,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libntech/tests/unit/json_test.c:2422,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2423,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2424,1
    - Dst: JsonNullCreate
      Src: /src/core/libntech/tests/unit/json_test.c:2428,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libntech/tests/unit/json_test.c:2430,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2431,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2432,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/tests/unit/json_test.c:2436,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libntech/tests/unit/json_test.c:2438,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2439,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2440,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/tests/unit/json_test.c:2444,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libntech/tests/unit/json_test.c:2446,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2447,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2393
    functionDepth: 1
    functionLinenumber: 2393
    functionLinenumberEnd: 2450
    functionName: test_json_get_type_as_string
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - JsonStringCreate
    - JsonDestroy
    - JsonArrayCreate
    - JsonObjectCreate
    - JsonRealCreate
    - assert_string_equal
    - JsonNullCreate
    - JsonBoolCreate
    - JsonGetTypeAsString
    - JsonIntegerCreate
    linkageType: ''
    returnType: void
    signature: void test_json_get_type_as_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2458,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:2458,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:2459,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2466,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:2466,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:2467,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2474,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:2474,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/json_test.c:2475,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2482,1
    - Dst: JsonParse
      Src: /src/core/libntech/tests/unit/json_test.c:2482,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/json_test.c:2483,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2484,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:2484,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/json_test.c:2485,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libntech/tests/unit/json_test.c:2485,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/tests/unit/json_test.c:2486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2452
    functionDepth: 1
    functionLinenumber: 2452
    functionLinenumberEnd: 2488
    functionName: test_json_parse_object_missing_comma
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - JsonDestroy
    - JsonObjectGetAsString
    - assert_true
    - assert_int_not_equal
    - assert_string_equal
    - JsonParse
    linkageType: ''
    returnType: void
    signature: void test_json_parse_object_missing_comma(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/json_test.c:2492,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2494,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2495,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2496,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2497,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2498,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2499,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2500,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2501,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2502,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2503,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2504,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2505,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2506,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2507,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2508,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2509,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2510,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2511,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2512,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2513,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2514,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2515,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2516,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2517,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2518,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2519,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2520,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2521,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2522,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2523,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2524,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2525,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2526,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2527,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2528,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2529,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2530,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2531,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2532,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2533,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2534,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2535,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2536,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2537,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2538,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2539,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2540,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2541,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2542,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2543,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2544,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2545,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2546,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2547,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2548,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2549,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2550,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2551,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2552,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2553,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2554,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2555,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2556,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2557,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2558,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2559,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2560,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2561,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/json_test.c:2562,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/json_test.c:2565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2490
    functionDepth: 0
    functionLinenumber: 2490
    functionLinenumberEnd: 2566
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/json_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - seed
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: ConstHash
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ConstHash(ARG_UNUSED const void *key,\n                              ARG_UNUSED
      unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapNew
      Src: /src/core/libntech/tests/unit/map_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:24,1
    - Dst: MapSize
      Src: /src/core/libntech/tests/unit/map_test.c:24,1
    - Dst: MapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: test_new_destroy
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - MapNew
    - assert_int_equal
    - MapSize
    - MapDestroy
    linkageType: ''
    returnType: void
    signature: void test_new_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:33,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:34,1
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:39,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: test_new_hashmap_bad_size
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - HashMapNew
    - HashMapDestroy
    linkageType: ''
    returnType: void
    signature: void test_new_hashmap_bad_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:47,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:49,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:49,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:50,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:50,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:50,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:50,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:51,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:51,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:52,1
    - Dst: StringMapSize
      Src: /src/core/libntech/tests/unit/map_test.c:52,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:53,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:53,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:53,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:54,1
    - Dst: StringMapSize
      Src: /src/core/libntech/tests/unit/map_test.c:54,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:56,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:56,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:57,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:57,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:57,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:57,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:58,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:58,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:59,1
    - Dst: StringMapSize
      Src: /src/core/libntech/tests/unit/map_test.c:59,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:61,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:61,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:62,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:62,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:62,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:62,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:63,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:63,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:65,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:65,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:65,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:65,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:66,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:66,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:67,1
    - Dst: StringMapSize
      Src: /src/core/libntech/tests/unit/map_test.c:67,1
    - Dst: StringMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 70
    functionName: test_insert
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - StringMapInsert
    - StringMapDestroy
    - assert_true
    - StringMapSize
    - xstrdup
    - StringMapHasKey
    - StringMapNew
    linkageType: ''
    returnType: void
    signature: void test_insert(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/map_test.c:74,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/map_test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - times
    argTypes:
    - char
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: CharTimes
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - memset
    linkageType: ''
    returnType: char
    signature: char *CharTimes(char c, size_t times)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:84,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/map_test.c:90,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:93,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:93,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:94,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:94,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:94,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:94,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:95,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:95,1
    - Dst: StringMapPrintStats
      Src: /src/core/libntech/tests/unit/map_test.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: test_insert_jumbo
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - StringMapPrintStats
    - StringMapInsert
    - assert_true
    - StringMapHasKey
    - xstrdup
    - StringMapNew
    - memset
    linkageType: ''
    returnType: void
    signature: void test_insert_jumbo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:104,1
    - Dst: HashMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:107,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:107,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:107,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:109,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:110,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:111,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:113,1
    - Dst: HashMapRemove
      Src: /src/core/libntech/tests/unit/map_test.c:113,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:114,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:114,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 117
    functionName: test_remove
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - HashMapGet
    - assert_true
    - HashMapRemove
    - HashMapInsert
    - HashMapDestroy
    - assert_string_equal
    - xstrdup
    - HashMapNew
    linkageType: ''
    returnType: void
    signature: void test_remove(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/tests/unit/map_test.c:122,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:125,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:125,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:126,1
    - Dst: HashMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:126,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:126,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:126,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:127,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - hashmap
    - i
    argTypes:
    - HashMap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: test_add_n_as_to_map
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - HashMapGet
    - assert_true
    - HashMapInsert
    - xstrdup
    - memset
    linkageType: ''
    returnType: void
    signature: void test_add_n_as_to_map(HashMap *hashmap, unsigned int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/tests/unit/map_test.c:133,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:136,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:136,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:137,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:138,1
    - Dst: HashMapRemove
      Src: /src/core/libntech/tests/unit/map_test.c:138,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/map_test.c:139,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:140,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hashmap
    - i
    argTypes:
    - HashMap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: test_remove_n_as_from_map
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - HashMapGet
    - assert_true
    - HashMapRemove
    - xstrdup
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void test_remove_n_as_from_map(HashMap *hashmap, unsigned int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/tests/unit/map_test.c:146,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:151,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:151,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:155,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hashmap
    - i
    - in
    argTypes:
    - HashMap*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: assert_n_as_in_map
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - HashMapGet
    - memset
    linkageType: ''
    returnType: void
    signature: void assert_n_as_in_map(HashMap *hashmap, unsigned int i, bool in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:162,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:170,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:171,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:174,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:175,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:180,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:181,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:182,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:183,1
    - Dst: assert_n_as_in_map
      Src: /src/core/libntech/tests/unit/map_test.c:189,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:199,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:200,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:203,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:204,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:209,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:210,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:211,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:212,1
    - Dst: assert_n_as_in_map
      Src: /src/core/libntech/tests/unit/map_test.c:218,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:228,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:229,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:232,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:233,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:238,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:239,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:240,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:241,1
    - Dst: assert_n_as_in_map
      Src: /src/core/libntech/tests/unit/map_test.c:247,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 251
    functionName: test_grow
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_n_as_in_map
    - assert_int_equal
    - HashMapDestroy
    - HashMapNew
    - test_add_n_as_to_map
    linkageType: ''
    returnType: void
    signature: void test_grow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:256,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:265,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:267,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:268,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:269,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:270,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:271,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:272,1
    - Dst: assert_n_as_in_map
      Src: /src/core/libntech/tests/unit/map_test.c:278,1
    - Dst: test_remove_n_as_from_map
      Src: /src/core/libntech/tests/unit/map_test.c:289,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:290,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:292,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:293,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:294,1
    - Dst: test_remove_n_as_from_map
      Src: /src/core/libntech/tests/unit/map_test.c:297,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:298,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:299,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:300,1
    - Dst: assert_n_as_in_map
      Src: /src/core/libntech/tests/unit/map_test.c:306,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 310
    functionName: test_shrink
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_n_as_in_map
    - assert_int_equal
    - HashMapDestroy
    - test_remove_n_as_from_map
    - HashMapNew
    - test_add_n_as_to_map
    linkageType: ''
    returnType: void
    signature: void test_shrink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:314,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:317,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:318,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:326,1
    - Dst: test_remove_n_as_from_map
      Src: /src/core/libntech/tests/unit/map_test.c:327,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:329,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 332
    functionName: test_no_shrink_below_init_size
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - HashMapDestroy
    - test_remove_n_as_from_map
    - HashMapNew
    - test_add_n_as_to_map
    linkageType: ''
    returnType: void
    signature: void test_no_shrink_below_init_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:336,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:338,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:338,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:338,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:338,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:339,1
    - Dst: StringMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:339,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:340,1
    - Dst: StringMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:340,1
    - Dst: StringMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: test_get
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - StringMapInsert
    - StringMapDestroy
    - StringMapGet
    - assert_string_equal
    - xstrdup
    - StringMapNew
    linkageType: ''
    returnType: void
    signature: void test_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:347,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:349,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:349,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:349,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:349,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:350,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:350,1
    - Dst: StringMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 353
    functionName: test_has_key
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - StringMapInsert
    - StringMapDestroy
    - assert_true
    - xstrdup
    - StringMapHasKey
    - StringMapNew
    linkageType: ''
    returnType: void
    signature: void test_has_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:357,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:359,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:359,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:359,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:359,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:360,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:360,1
    - Dst: StringMapClear
      Src: /src/core/libntech/tests/unit/map_test.c:362,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:363,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:363,1
    - Dst: StringMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 366
    functionName: test_clear
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - StringMapInsert
    - StringMapDestroy
    - assert_true
    - StringMapClear
    - xstrdup
    - StringMapHasKey
    - StringMapNew
    linkageType: ''
    returnType: void
    signature: void test_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:370,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:373,1
    - Dst: HashMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:373,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:373,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:373,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:374,1
    - Dst: HashMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:374,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:374,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:374,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:376,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:376,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:377,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:377,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:378,1
    - Dst: HashMapClear
      Src: /src/core/libntech/tests/unit/map_test.c:380,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:381,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:381,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:382,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:382,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:383,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:395,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:396,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:398,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:399,1
    - Dst: HashMapClear
      Src: /src/core/libntech/tests/unit/map_test.c:402,1
    - Dst: test_add_n_as_to_map
      Src: /src/core/libntech/tests/unit/map_test.c:405,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:406,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:411,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:412,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 415
    functionName: test_clear_hashmap
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - HashMapGet
    - assert_true
    - HashMapInsert
    - HashMapDestroy
    - xstrdup
    - HashMapNew
    - test_add_n_as_to_map
    - HashMapClear
    linkageType: ''
    returnType: void
    signature: void test_clear_hashmap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:419,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:421,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:422,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:424,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:424,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:425,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:425,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:426,1
    - Dst: StringMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:426,1
    - Dst: StringMapSoftDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:428,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:430,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/map_test.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 432
    functionName: test_soft_destroy
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - StringMapSoftDestroy
    - assert_false
    - StringMapInsert
    - assert_true
    - StringMapGet
    - assert_string_equal
    - xstrdup
    - StringMapHasKey
    - free
    - StringMapNew
    linkageType: ''
    returnType: void
    signature: void test_soft_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMapSize
      Src: /src/core/libntech/tests/unit/map_test.c:436,1
    - Dst: MapIteratorInit
      Src: /src/core/libntech/tests/unit/map_test.c:438,1
    - Dst: MapIteratorNext
      Src: /src/core/libntech/tests/unit/map_test.c:442,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/map_test.c:444,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/map_test.c:445,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:446,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:451,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:452,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 454
    functionName: test_iterate_jumbo
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - strlen
    - MapIteratorNext
    - StringMapSize
    - MapIteratorInit
    linkageType: ''
    returnType: void
    signature: void test_iterate_jumbo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/tests/unit/map_test.c:463,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:466,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:466,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:467,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:467,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:467,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:467,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:468,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:468,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/map_test.c:476,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:479,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:479,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:480,1
    - Dst: StringMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:480,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:480,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:480,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:481,1
    - Dst: StringMapHasKey
      Src: /src/core/libntech/tests/unit/map_test.c:481,1
    - Dst: StringMapPrintStats
      Src: /src/core/libntech/tests/unit/map_test.c:485,1
    - Dst: StringMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 491
    functionName: test_insert_jumbo_more
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - StringMapPrintStats
    - StringMapInsert
    - StringMapDestroy
    - assert_true
    - xstrdup
    - StringMapHasKey
    - memset
    linkageType: ''
    returnType: void
    signature: void test_insert_jumbo_more(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:496,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: test_hashmap_new_destroy
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - HashMapNew
    - HashMapDestroy
    linkageType: ''
    returnType: void
    signature: void test_hashmap_new_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:502,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:506,1
    - Dst: HashMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:506,1
    - Dst: CharTimes
      Src: /src/core/libntech/tests/unit/map_test.c:506,1
    - Dst: CharTimes
      Src: /src/core/libntech/tests/unit/map_test.c:506,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:509,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:510,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:511,1
    - Dst: HashMapRemove
      Src: /src/core/libntech/tests/unit/map_test.c:513,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:514,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:514,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 517
    functionName: test_hashmap_degenerate_hash_fn
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - HashMapGet
    - HashMapRemove
    - HashMapInsert
    - HashMapDestroy
    - assert_string_equal
    - CharTimes
    - HashMapNew
    linkageType: ''
    returnType: void
    signature: void test_hashmap_degenerate_hash_fn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - last_char
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: ARRAY_STRING_KEY
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_STRING_KEY(last_char)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - last_char
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: ARRAY_STRING_VALUE
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_STRING_VALUE(last_char)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:528,1
    - Dst: ARRAY_STRING_KEY
      Src: /src/core/libntech/tests/unit/map_test.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - last_char
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: MallocStringKey
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - ARRAY_STRING_KEY
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *MallocStringKey(char last_char)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:537,1
    - Dst: ARRAY_STRING_VALUE
      Src: /src/core/libntech/tests/unit/map_test.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - last_char
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: MallocStringValue
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - ARRAY_STRING_VALUE
    linkageType: ''
    returnType: char
    signature: char *MallocStringValue(char last_char)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:542,1
    - Dst: MallocStringKey
      Src: /src/core/libntech/tests/unit/map_test.c:547,1
    - Dst: MallocStringValue
      Src: /src/core/libntech/tests/unit/map_test.c:548,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:549,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:549,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:552,1
    - Dst: MallocStringKey
      Src: /src/core/libntech/tests/unit/map_test.c:557,1
    - Dst: MallocStringKey
      Src: /src/core/libntech/tests/unit/map_test.c:558,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:559,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:559,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:562,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:567,1
    - Dst: MallocStringKey
      Src: /src/core/libntech/tests/unit/map_test.c:567,1
    - Dst: MallocStringValue
      Src: /src/core/libntech/tests/unit/map_test.c:567,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:570,1
    - Dst: MallocStringKey
      Src: /src/core/libntech/tests/unit/map_test.c:575,1
    - Dst: MallocStringValue
      Src: /src/core/libntech/tests/unit/map_test.c:576,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:577,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:577,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/map_test.c:578,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/map_test.c:579,1
    - Dst: ArrayMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 583
    functionName: test_array_map_insert
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - MallocStringKey
    - ArrayMapInsert
    - free
    - MallocStringValue
    - ArrayMapNew
    - ArrayMapDestroy
    linkageType: ''
    returnType: void
    signature: void test_array_map_insert(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:587,1
    - Dst: MallocStringKey
      Src: /src/core/libntech/tests/unit/map_test.c:592,1
    - Dst: MallocStringValue
      Src: /src/core/libntech/tests/unit/map_test.c:593,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:594,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:594,1
    - Dst: ARRAY_STRING_KEY
      Src: /src/core/libntech/tests/unit/map_test.c:600,1
    - Dst: ArrayMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:601,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:602,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:603,1
    - Dst: ARRAY_STRING_KEY
      Src: /src/core/libntech/tests/unit/map_test.c:603,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:604,1
    - Dst: ARRAY_STRING_VALUE
      Src: /src/core/libntech/tests/unit/map_test.c:604,1
    - Dst: ARRAY_STRING_KEY
      Src: /src/core/libntech/tests/unit/map_test.c:610,1
    - Dst: ArrayMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:611,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:612,1
    - Dst: ArrayMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 616
    functionName: test_array_map_get
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - ArrayMapGet
    - assert_int_equal
    - MallocStringKey
    - assert_true
    - ARRAY_STRING_KEY
    - ArrayMapInsert
    - assert_string_equal
    - MallocStringValue
    - ArrayMapNew
    - ArrayMapDestroy
    - ARRAY_STRING_VALUE
    linkageType: ''
    returnType: void
    signature: void test_array_map_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:620,1
    - Dst: MallocStringKey
      Src: /src/core/libntech/tests/unit/map_test.c:625,1
    - Dst: MallocStringValue
      Src: /src/core/libntech/tests/unit/map_test.c:626,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:627,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:627,1
    - Dst: ARRAY_STRING_KEY
      Src: /src/core/libntech/tests/unit/map_test.c:633,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:634,1
    - Dst: ArrayMapRemove
      Src: /src/core/libntech/tests/unit/map_test.c:634,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:635,1
    - Dst: ArrayMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:635,1
    - Dst: ARRAY_STRING_KEY
      Src: /src/core/libntech/tests/unit/map_test.c:641,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:642,1
    - Dst: ArrayMapRemove
      Src: /src/core/libntech/tests/unit/map_test.c:642,1
    - Dst: ArrayMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 646
    functionName: test_array_map_remove
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - ArrayMapGet
    - assert_int_equal
    - assert_false
    - MallocStringKey
    - ArrayMapRemove
    - assert_true
    - ARRAY_STRING_KEY
    - ArrayMapInsert
    - MallocStringValue
    - ArrayMapNew
    - ArrayMapDestroy
    linkageType: ''
    returnType: void
    signature: void test_array_map_remove(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:650,1
    - Dst: MallocStringKey
      Src: /src/core/libntech/tests/unit/map_test.c:657,1
    - Dst: MallocStringValue
      Src: /src/core/libntech/tests/unit/map_test.c:658,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:660,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:660,1
    - Dst: ArrayMapSoftDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:665,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/map_test.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 671
    functionName: test_array_map_soft_destroy
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - MallocStringKey
    - ArrayMapInsert
    - free
    - MallocStringValue
    - ArrayMapNew
    - ArrayMapSoftDestroy
    linkageType: ''
    returnType: void
    signature: void test_array_map_soft_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:685,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:687,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/map_test.c:688,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:693,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:693,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:697,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/map_test.c:698,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:703,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:703,1
    - Dst: ArrayMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:710,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:711,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:714,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:715,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:718,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/map_test.c:718,1
    - Dst: ArrayMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:721,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:722,1
    - Dst: ArrayMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 726
    functionName: test_array_map_key_referenced_in_value
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - ArrayMapGet
    - assert_int_equal
    - assert_true
    - ArrayMapInsert
    - xmalloc
    - strcmp
    - xstrdup
    - ArrayMapNew
    - ArrayMapDestroy
    linkageType: ''
    returnType: void
    signature: void test_array_map_key_referenced_in_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:730,1
    - Dst: MallocStringKey
      Src: /src/core/libntech/tests/unit/map_test.c:735,1
    - Dst: MallocStringValue
      Src: /src/core/libntech/tests/unit/map_test.c:736,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:737,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:737,1
    - Dst: ArrayMapIteratorInit
      Src: /src/core/libntech/tests/unit/map_test.c:741,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:742,1
    - Dst: ARRAY_STRING_KEY
      Src: /src/core/libntech/tests/unit/map_test.c:746,1
    - Dst: ARRAY_STRING_VALUE
      Src: /src/core/libntech/tests/unit/map_test.c:747,1
    - Dst: ArrayMapIteratorNext
      Src: /src/core/libntech/tests/unit/map_test.c:748,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:749,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:750,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/map_test.c:751,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:757,1
    - Dst: ArrayMapIteratorNext
      Src: /src/core/libntech/tests/unit/map_test.c:757,1
    - Dst: ArrayMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 761
    functionName: test_array_map_iterator
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - MallocStringKey
    - assert_true
    - ARRAY_STRING_KEY
    - ArrayMapIteratorInit
    - ArrayMapInsert
    - ArrayMapIteratorNext
    - assert_string_equal
    - MallocStringValue
    - ArrayMapNew
    - ArrayMapDestroy
    - ARRAY_STRING_VALUE
    linkageType: ''
    returnType: void
    signature: void test_array_map_iterator(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMapNew
      Src: /src/core/libntech/tests/unit/map_test.c:766,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:768,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/map_test.c:769,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/map_test.c:774,1
    - Dst: HashMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:774,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/map_test.c:778,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/map_test.c:779,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:784,1
    - Dst: HashMapInsert
      Src: /src/core/libntech/tests/unit/map_test.c:784,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:791,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:792,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:795,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/map_test.c:796,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:799,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/map_test.c:799,1
    - Dst: HashMapGet
      Src: /src/core/libntech/tests/unit/map_test.c:802,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/map_test.c:803,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/tests/unit/map_test.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 807
    functionName: test_hash_map_key_referenced_in_value
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_int_equal
    - HashMapGet
    - assert_true
    - HashMapInsert
    - xmalloc
    - HashMapDestroy
    - strcmp
    - xstrdup
    - HashMapNew
    linkageType: ''
    returnType: void
    signature: void test_hash_map_key_referenced_in_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/map_test.c:812,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:815,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:816,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:817,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:818,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:819,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:820,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:821,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:822,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:823,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:824,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:825,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:826,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:827,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:828,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:829,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:830,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:831,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:832,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:833,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:834,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:835,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:836,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:837,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/map_test.c:839,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/map_test.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 844
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/map_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequeNew
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:19,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:21,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:21,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:23,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:23,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:25,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:25,1
    - Dst: ThreadedDequePopRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:28,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:30,1
    - Dst: ThreadedDequePopRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:32,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:35,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:36,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:37,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:39,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:40,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:41,1
    - Dst: ThreadedDequeDestroy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 44
    functionName: test_push_pop
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - ThreadedDequeDestroy
    - ThreadedDequeNew
    - ThreadedDequePushRight
    - ThreadedDequePushLeft
    - ThreadedDequePopLeft
    - assert_string_equal
    - xstrdup
    - ThreadedDequePopRight
    - free
    linkageType: ''
    returnType: void
    signature: void test_push_pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequeNew
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:48,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:51,1
    - Dst: ThreadedDequeIsEmpty
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:51,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:54,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:57,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:58,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:59,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:61,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:62,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:63,1
    - Dst: ThreadedDequePopRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:66,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:69,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:70,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:71,1
    - Dst: ThreadedDequePopRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:73,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:74,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:75,1
    - Dst: ThreadedDequeDestroy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (i_am_null == NULL)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    - condition: (ThreadedDequeIsEmpty(deque))
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    - condition: (i_am_null == NULL)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    - condition: (i_am_null == NULL)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    - condition: (i_am_null == NULL)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    constantsTouched: []
    func_position:
      end: 79
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 79
    functionName: test_pop_empty_and_push_null
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ThreadedDequeIsEmpty
    - ThreadedDequeDestroy
    - assert
    - ThreadedDequeNew
    - assert_true
    - ThreadedDequePushRight
    - ThreadedDequePushLeft
    - ThreadedDequePopLeft
    - ThreadedDequePopRight
    linkageType: ''
    returnType: void
    signature: void test_pop_empty_and_push_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequeNew
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:83,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:86,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:86,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:88,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:88,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:90,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:90,1
    - Dst: ThreadedDequeCopy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:93,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:97,1
    - Dst: ThreadedDequeCount
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:97,1
    - Dst: ThreadedDequeCount
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:98,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:99,1
    - Dst: ThreadedDequeCapacity
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:99,1
    - Dst: ThreadedDequeCapacity
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:100,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:102,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:104,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:106,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:109,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:111,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:113,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:117,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:118,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:119,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:121,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:122,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:123,1
    - Dst: ThreadedDequeSoftDestroy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:125,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:128,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:128,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:130,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:130,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:132,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:132,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:134,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:134,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:136,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:136,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:140,1
    - Dst: ThreadedDequeCount
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:140,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:141,1
    - Dst: ThreadedDequeCapacity
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:141,1
    - Dst: ThreadedDequePopRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:143,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:145,1
    - Dst: ThreadedDequePopRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:147,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:149,1
    - Dst: ThreadedDequePopRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:151,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:154,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:155,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:156,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:157,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:158,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:160,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:161,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:162,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:163,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:164,1
    - Dst: ThreadedDequeDestroy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (new_deque != NULL)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    - condition: (old_str3 == new_str3)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    - condition: (old_str1 == new_str1)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    - condition: (old_str2 == new_str2)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    constantsTouched: []
    func_position:
      end: 167
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 167
    functionName: test_copy
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - ThreadedDequeCount
    - assert_int_equal
    - ThreadedDequeDestroy
    - assert
    - ThreadedDequeNew
    - ThreadedDequePushRight
    - ThreadedDequeSoftDestroy
    - ThreadedDequePushLeft
    - ThreadedDequePopLeft
    - ThreadedDequePopRight
    - xstrdup
    - free
    - assert_string_equal
    - ThreadedDequeCapacity
    - ThreadedDequeCopy
    linkageType: ''
    returnType: void
    signature: void test_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequeNew
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:171,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:173,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:173,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:174,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:174,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:175,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:175,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:176,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:176,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:178,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:179,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:180,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:181,1
    - Dst: ThreadedDequeDestroy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: test_push_report_count
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ThreadedDequeDestroy
    - ThreadedDequeNew
    - ThreadedDequePushLeft
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void test_push_report_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequeNew
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:188,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:191,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:191,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:193,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:193,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:196,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:198,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:200,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:200,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:202,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:202,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:205,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:205,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:207,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:207,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:210,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:210,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:213,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:215,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:216,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:218,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:220,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:220,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:222,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:222,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:224,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:224,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:226,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:226,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:228,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:228,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:231,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:231,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:233,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:233,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:236,1
    - Dst: ThreadedDequeCount
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:236,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:237,1
    - Dst: ThreadedDequeCapacity
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:237,1
    - Dst: ThreadedDequeDestroy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 240
    functionName: test_expand
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - ThreadedDequeCount
    - assert_int_equal
    - ThreadedDequeCapacity
    - ThreadedDequeDestroy
    - ThreadedDequeNew
    - ThreadedDequePushRight
    - ThreadedDequePushLeft
    - ThreadedDequePopLeft
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void test_expand(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequeNew
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:244,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:252,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:252,1
    - Dst: ThreadedDequePopRightN
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:257,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:262,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:263,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:266,1
    - Dst: ThreadedDequePushRight
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:271,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:271,1
    - Dst: ThreadedDequePopLeftN
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:275,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:280,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:281,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:284,1
    - Dst: ThreadedDequeDestroy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 286
    functionName: test_popn
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - ThreadedDequePopLeftN
    - ThreadedDequeDestroy
    - ThreadedDequeNew
    - ThreadedDequePushRight
    - ThreadedDequePushLeft
    - assert_string_equal
    - xstrdup
    - free
    - ThreadedDequePopRightN
    linkageType: ''
    returnType: void
    signature: void test_popn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:294,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:295,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: thread_pop
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - free
    - ThreadedDequePopLeft
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void *thread_pop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:304,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: thread_push
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - ThreadedDequePushLeft
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void *thread_push()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequeWaitEmpty
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:311,1
    - Dst: ThreadedDequePushLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:312,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: thread_wait_empty
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - ThreadedDequePushLeft
    - ThreadedDequeWaitEmpty
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void *thread_wait_empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequeNew
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:320,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:325,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:327,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:333,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:335,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:343,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:344,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:345,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:347,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:348,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:349,1
    - Dst: ThreadedDequeDestroy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (retval == NULL)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    - condition: (retval == NULL)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    constantsTouched: []
    func_position:
      end: 353
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 353
    functionName: test_threads_wait_pop
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - pthread_create
    - ThreadedDequeDestroy
    - assert
    - ThreadedDequeNew
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void test_threads_wait_pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadedDequeNew
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:358,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:363,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:365,1
    - Dst: sleep
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:368,1
    - Dst: pthread_create
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:370,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:372,1
    - Dst: sleep
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:375,1
    - Dst: ThreadedDequeCount
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:376,1
    - Dst: ThreadedDequePopLeftN
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:379,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:385,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:388,1
    - Dst: ThreadedDequePopLeft
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:390,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:391,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:392,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:399,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:400,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:401,1
    - Dst: pthread_join
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:404,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:405,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:406,1
    - Dst: ThreadedDequeDestroy
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (retval == NULL)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    - condition: (retval == NULL)
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
    constantsTouched: []
    func_position:
      end: 409
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 409
    functionName: test_threads_wait_empty
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 0
    functionsReached:
    - ThreadedDequeCount
    - ThreadedDequePopLeftN
    - assert_int_equal
    - pthread_create
    - ThreadedDequeDestroy
    - assert
    - sleep
    - ThreadedDequeNew
    - pthread_join
    - ThreadedDequePopLeft
    - assert_string_equal
    - free
    linkageType: ''
    returnType: void
    signature: void test_threads_wait_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:413,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:416,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:417,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:418,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:419,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:420,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:421,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:422,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:423,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/threaded_deque_test.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 426
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/threaded_deque_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: PRINT_TEST_BANNER
    functionSourceFile: /src/core/libntech/tests/unit/test.h
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_TEST_BANNER()
  - 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: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: assert_double_close
    functionSourceFile: /src/core/libntech/tests/unit/test.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_double_close(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: 58
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: assert_string_int_equal
    functionSourceFile: /src/core/libntech/tests/unit/test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_string_int_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:15,1
    - Dst: StringMatch
      Src: /src/core/libntech/tests/unit/regex_test.c:15,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:16,1
    - Dst: StringMatch
      Src: /src/core/libntech/tests/unit/regex_test.c:16,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:17,1
    - Dst: StringMatch
      Src: /src/core/libntech/tests/unit/regex_test.c:17,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:18,1
    - Dst: StringMatch
      Src: /src/core/libntech/tests/unit/regex_test.c:18,1
    - Dst: StringMatch
      Src: /src/core/libntech/tests/unit/regex_test.c:21,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:24,1
    - Dst: StringMatch
      Src: /src/core/libntech/tests/unit/regex_test.c:26,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:29,1
    - Dst: StringMatch
      Src: /src/core/libntech/tests/unit/regex_test.c:31,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:33,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:34,1
    - Dst: StringMatch
      Src: /src/core/libntech/tests/unit/regex_test.c:36,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 40
    functionName: test_match
    functionSourceFile: /src/core/libntech/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - StringMatch
    - assert_int_equal
    - assert_true
    - assert_false
    linkageType: ''
    returnType: void
    signature: void test_match(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:45,1
    - Dst: StringMatchFull
      Src: /src/core/libntech/tests/unit/regex_test.c:45,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:46,1
    - Dst: StringMatchFull
      Src: /src/core/libntech/tests/unit/regex_test.c:46,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:47,1
    - Dst: StringMatchFull
      Src: /src/core/libntech/tests/unit/regex_test.c:47,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:48,1
    - Dst: StringMatchFull
      Src: /src/core/libntech/tests/unit/regex_test.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: test_match_full
    functionSourceFile: /src/core/libntech/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - StringMatchFull
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_match_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchCaptures
      Src: /src/core/libntech/tests/unit/regex_test.c:54,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:56,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/regex_test.c:56,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:57,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:57,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:57,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:58,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:58,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:58,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/regex_test.c:59,1
    - Dst: StringMatchCaptures
      Src: /src/core/libntech/tests/unit/regex_test.c:61,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:62,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:63,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/regex_test.c:63,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:64,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:64,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:65,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:65,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:65,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:66,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:66,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:66,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:67,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:67,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:67,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/regex_test.c:68,1
    - Dst: StringMatchCaptures
      Src: /src/core/libntech/tests/unit/regex_test.c:70,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:72,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/regex_test.c:72,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:73,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:73,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:73,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:74,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:74,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:74,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/regex_test.c:75,1
    - Dst: StringMatchCaptures
      Src: /src/core/libntech/tests/unit/regex_test.c:77,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/regex_test.c:78,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:79,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/regex_test.c:79,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:80,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:80,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:80,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:81,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:81,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:81,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:82,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:82,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:82,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:83,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:83,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/regex_test.c:83,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/regex_test.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 85
    functionName: test_match_with_captures
    functionSourceFile: /src/core/libntech/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_int_equal
    - SeqDestroy
    - assert_true
    - StringMatchCaptures
    - assert_string_equal
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void test_match_with_captures(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNewFrom
      Src: /src/core/libntech/tests/unit/regex_test.c:89,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:90,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:91,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:92,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:92,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:94,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:95,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:96,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:96,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:98,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:99,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:100,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:100,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:102,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:103,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:104,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:104,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:106,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:107,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:108,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:108,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:110,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:111,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:112,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:112,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:114,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:115,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:116,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:116,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:118,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:119,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:120,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:120,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:122,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:123,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:124,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:124,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:126,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:127,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:128,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:128,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:130,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:131,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:132,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:132,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/regex_test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 135
    functionName: test_search_and_replace
    functionSourceFile: /src/core/libntech/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_false
    - BufferDestroy
    - BufferNewFrom
    - BufferSearchAndReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_search_and_replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNewFrom
      Src: /src/core/libntech/tests/unit/regex_test.c:142,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:143,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:144,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:145,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:145,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/regex_test.c:146,1
    - Dst: BufferNewFrom
      Src: /src/core/libntech/tests/unit/regex_test.c:148,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:149,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:150,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:151,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:151,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/regex_test.c:152,1
    - Dst: BufferNewFrom
      Src: /src/core/libntech/tests/unit/regex_test.c:154,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libntech/tests/unit/regex_test.c:155,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/regex_test.c:156,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/regex_test.c:157,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/regex_test.c:157,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/regex_test.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 159
    functionName: test_search_and_replace_bad_backrefs
    functionSourceFile: /src/core/libntech/tests/unit/regex_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_false
    - BufferDestroy
    - BufferNewFrom
    - BufferSearchAndReplace
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_search_and_replace_bad_backrefs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/regex_test.c:163,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/regex_test.c:166,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/regex_test.c:167,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/regex_test.c:168,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/regex_test.c:169,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/regex_test.c:170,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/regex_test.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 174
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/regex_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:9,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:13,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - initialCapacity
    - start
    - end
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 20
    functionName: SequenceCreateRange
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - SeqAppend
    - SeqNew
    linkageType: ''
    returnType: Seq
    signature: Seq *SequenceCreateRange(size_t initialCapacity, size_t start, size_t
      end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:24,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: test_create_destroy
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - SeqNew
    linkageType: ''
    returnType: void
    signature: void test_create_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:31,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:35,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:35,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:38,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:42,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: test_append
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqNew
    - assert_string_equal
    - xstrdup
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_append(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:50,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:53,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:55,1
    - Dst: SeqSet
      Src: /src/core/libntech/tests/unit/sequence_test.c:57,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:58,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:59,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:59,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:61,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:62,1
    - Dst: SeqSoftSet
      Src: /src/core/libntech/tests/unit/sequence_test.c:63,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:65,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:65,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/sequence_test.c:69,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: test_set
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqSet
    - SeqSoftSet
    - SeqNew
    - assert_string_equal
    - xstrdup
    - free
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_set(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - _user_data
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: CompareNumbers
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CompareNumbers(const void *a, const void *b,\n                          ARG_UNUSED
      void *_user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:81,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:85,1
    - Dst: SeqAppendOnce
      Src: /src/core/libntech/tests/unit/sequence_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:92,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:94,1
    - Dst: SeqAppendOnce
      Src: /src/core/libntech/tests/unit/sequence_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:100,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: test_append_once
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - SeqAppendOnce
    - assert_int_equal
    - SeqDestroy
    - xmalloc
    - SequenceCreateRange
    linkageType: ''
    returnType: void
    signature: void test_append_once(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:106,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:108,1
    - Dst: SeqLookup
      Src: /src/core/libntech/tests/unit/sequence_test.c:112,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:113,1
    - Dst: SeqLookup
      Src: /src/core/libntech/tests/unit/sequence_test.c:116,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:117,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:119,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/sequence_test.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: test_lookup
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqLookup
    - xmalloc
    - free
    - SequenceCreateRange
    linkageType: ''
    returnType: void
    signature: void test_lookup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:125,1
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:129,1
    - Dst: SeqBinaryLookup
      Src: /src/core/libntech/tests/unit/sequence_test.c:133,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:134,1
    - Dst: SeqBinaryLookup
      Src: /src/core/libntech/tests/unit/sequence_test.c:137,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:138,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:141,1
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:142,1
    - Dst: SeqBinaryLookup
      Src: /src/core/libntech/tests/unit/sequence_test.c:146,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:147,1
    - Dst: SeqBinaryLookup
      Src: /src/core/libntech/tests/unit/sequence_test.c:150,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:151,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:154,1
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:155,1
    - Dst: SeqBinaryLookup
      Src: /src/core/libntech/tests/unit/sequence_test.c:157,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:158,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:160,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/sequence_test.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 162
    functionName: test_binary_lookup
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqBinaryLookup
    - SeqNew
    - xmalloc
    - free
    - SequenceCreateRange
    linkageType: ''
    returnType: void
    signature: void test_binary_lookup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:166,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:168,1
    - Dst: SeqIndexOf
      Src: /src/core/libntech/tests/unit/sequence_test.c:172,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:173,1
    - Dst: SeqIndexOf
      Src: /src/core/libntech/tests/unit/sequence_test.c:176,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:177,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:179,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/sequence_test.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 181
    functionName: test_index_of
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqIndexOf
    - assert_true
    - xmalloc
    - free
    - SequenceCreateRange
    linkageType: ''
    returnType: void
    signature: void test_index_of(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:185,1
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:189,1
    - Dst: SeqBinaryIndexOf
      Src: /src/core/libntech/tests/unit/sequence_test.c:193,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:194,1
    - Dst: SeqBinaryIndexOf
      Src: /src/core/libntech/tests/unit/sequence_test.c:197,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:198,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:201,1
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:202,1
    - Dst: SeqBinaryIndexOf
      Src: /src/core/libntech/tests/unit/sequence_test.c:206,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:207,1
    - Dst: SeqBinaryIndexOf
      Src: /src/core/libntech/tests/unit/sequence_test.c:210,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:211,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:214,1
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:215,1
    - Dst: SeqBinaryIndexOf
      Src: /src/core/libntech/tests/unit/sequence_test.c:217,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:218,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:220,1
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:221,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:222,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:222,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:222,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:223,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:223,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:223,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:224,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:224,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:224,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:225,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:225,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:225,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:226,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/sequence_test.c:226,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:226,1
    - Dst: SeqBinaryIndexOf
      Src: /src/core/libntech/tests/unit/sequence_test.c:228,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:230,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:232,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/sequence_test.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 234
    functionName: test_binary_index_of
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - assert_true
    - SeqNew
    - xmalloc
    - free
    - SequenceCreateRange
    - SeqAt
    - SeqBinaryIndexOf
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_binary_index_of(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:238,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:246,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:247,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:248,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:249,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:250,1
    - Dst: SeqSort
      Src: /src/core/libntech/tests/unit/sequence_test.c:252,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:254,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:255,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:256,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:257,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:258,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 261
    functionName: test_sort
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqNew
    - SeqSort
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_sort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:265,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:273,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:274,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:275,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:276,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:277,1
    - Dst: SeqSoftSort
      Src: /src/core/libntech/tests/unit/sequence_test.c:279,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:281,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:282,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:283,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:284,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:285,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:287,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:288,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:289,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:290,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:291,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:294,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 297
    functionName: test_soft_sort
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqNew
    - SeqSoftSort
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_soft_sort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:302,1
    - Dst: SeqRemoveRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:304,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:305,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:306,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:307,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:308,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:310,1
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:311,1
    - Dst: SeqRemoveRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:313,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:314,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:315,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:317,1
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:319,1
    - Dst: SeqRemoveRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:321,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:322,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:323,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 326
    functionName: test_remove_range
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - SequenceCreateRange
    - assert_int_equal
    - SeqRemoveRange
    - SeqDestroy
    linkageType: ''
    returnType: void
    signature: void test_remove_range(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:331,1
    - Dst: SeqRemove
      Src: /src/core/libntech/tests/unit/sequence_test.c:333,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:335,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:336,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:338,1
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:339,1
    - Dst: SeqRemove
      Src: /src/core/libntech/tests/unit/sequence_test.c:341,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:342,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:343,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:345,1
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:347,1
    - Dst: SeqRemove
      Src: /src/core/libntech/tests/unit/sequence_test.c:349,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:350,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:351,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 354
    functionName: test_remove
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - SequenceCreateRange
    - assert_int_equal
    - SeqDestroy
    - SeqRemove
    linkageType: ''
    returnType: void
    signature: void test_remove(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:359,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:360,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:361,1
    - Dst: SeqReverse
      Src: /src/core/libntech/tests/unit/sequence_test.c:362,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:363,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:364,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:365,1
    - Dst: SequenceCreateRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:369,1
    - Dst: SeqReverse
      Src: /src/core/libntech/tests/unit/sequence_test.c:370,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:371,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:372,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:373,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 376
    functionName: test_reverse
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - SequenceCreateRange
    - assert_int_equal
    - SeqReverse
    - SeqDestroy
    linkageType: ''
    returnType: void
    signature: void test_reverse(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:381,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:382,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:382,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:383,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:383,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:384,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:384,1
    - Dst: SeqSplit
      Src: /src/core/libntech/tests/unit/sequence_test.c:386,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:388,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:388,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:389,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:389,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:391,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:391,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:392,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:392,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:394,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:395,1
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:399,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:400,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:400,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:401,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:401,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:402,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:402,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:403,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:403,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:404,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:404,1
    - Dst: SeqSplit
      Src: /src/core/libntech/tests/unit/sequence_test.c:406,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:408,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:408,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:409,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:409,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:411,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:411,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:412,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:412,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:413,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:413,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:414,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:414,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:416,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:417,1
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:421,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:422,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:422,1
    - Dst: SeqSplit
      Src: /src/core/libntech/tests/unit/sequence_test.c:424,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:426,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:426,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:427,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:427,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:429,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:430,1
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:434,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:435,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:435,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:436,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:436,1
    - Dst: SeqSplit
      Src: /src/core/libntech/tests/unit/sequence_test.c:438,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:440,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:440,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:441,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:441,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:443,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:443,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:445,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:446,1
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:450,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:451,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:451,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:452,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:452,1
    - Dst: SeqSplit
      Src: /src/core/libntech/tests/unit/sequence_test.c:454,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:456,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:456,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:457,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:457,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:459,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:459,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:461,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 464
    functionName: test_split
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqSplit
    - SeqNew
    - assert_string_equal
    - xstrdup
    - SeqLength
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_split(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:468,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:476,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:477,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:478,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:479,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:480,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:482,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:482,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: test_len
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqNew
    - SeqLength
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_len(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:489,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:497,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:498,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:499,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:500,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:501,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:503,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:503,1
    - Dst: SeqGetRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:506,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:507,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:508,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:509,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:509,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:509,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:510,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:510,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:510,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:511,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:511,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:511,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:512,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:512,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:512,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:513,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:513,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:513,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:514,1
    - Dst: SeqGetRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:518,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:519,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:520,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:521,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:521,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:521,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:522,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:522,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:522,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:523,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:523,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:523,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:524,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:527,1
    - Dst: SeqGetRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:527,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:528,1
    - Dst: SeqGetRange
      Src: /src/core/libntech/tests/unit/sequence_test.c:528,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 531
    functionName: test_get_range
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqSoftDestroy
    - SeqDestroy
    - assert_true
    - SeqNew
    - SeqGetRange
    - SeqLength
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_get_range(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:535,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:536,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:537,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:538,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:539,1
    - Dst: SeqGetData
      Src: /src/core/libntech/tests/unit/sequence_test.c:541,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:543,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:544,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:545,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:546,1
    - Dst: UNUSED
      Src: /src/core/libntech/tests/unit/sequence_test.c:552,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 557
    functionName: test_get_data
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - UNUSED
    - SeqGetData
    - assert_true
    - SeqNew
    - assert_string_equal
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_get_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:561,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:562,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:562,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:563,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:563,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:564,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:564,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:565,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:565,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:567,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:568,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:568,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:569,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:569,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:570,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:570,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:571,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:571,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:573,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:574,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:574,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:575,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:575,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:576,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:576,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:577,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:577,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:579,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:580,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:580,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:581,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:581,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:582,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:582,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:583,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:583,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:585,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:586,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:586,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:587,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:587,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:588,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:588,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/sequence_test.c:589,1
    - Dst: SeqStringContains
      Src: /src/core/libntech/tests/unit/sequence_test.c:589,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 592
    functionName: test_seq_string_contains
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - SeqDestroy
    - assert_true
    - SeqNew
    - SeqStringContains
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_seq_string_contains(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:596,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:597,1
    - Dst: SeqStringLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:597,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:598,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:599,1
    - Dst: SeqStringLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:599,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:600,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:601,1
    - Dst: SeqStringLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:601,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:602,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:603,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:604,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:605,1
    - Dst: SeqStringLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:605,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 607
    functionName: test_seq_string_length
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqNew
    - SeqStringLength
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_seq_string_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:612,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:613,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:614,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/sequence_test.c:615,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:616,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:617,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:618,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:619,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:620,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:620,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:621,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:625,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:625,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:626,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:626,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:629,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:629,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:630,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:630,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:631,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:631,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:634,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:634,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:635,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:635,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:639,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/sequence_test.c:640,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/sequence_test.c:641,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:641,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/core/libntech/tests/unit/sequence_test.c
    - condition: (SeqLength(seq) == 0)
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/core/libntech/tests/unit/sequence_test.c
    constantsTouched: []
    func_position:
      end: 644
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 644
    functionName: test_string_deserialize
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - SeqStringDeserialize
    - assert
    - assert_true
    - assert_string_equal
    - xstrdup
    - SeqLength
    - free
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void test_string_deserialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:649,1
    - Dst: SeqStringSerialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:650,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/sequence_test.c:651,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/sequence_test.c:652,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:653,1
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:657,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:658,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:658,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:659,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:659,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:660,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:660,1
    - Dst: SeqStringSerialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:661,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:662,1
    - Dst: SeqStringDeserialize
      Src: /src/core/libntech/tests/unit/sequence_test.c:663,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/sequence_test.c:664,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:665,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:666,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:667,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:668,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:669,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:670,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:671,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:672,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (str != NULL && str[0] == '\0')
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/core/libntech/tests/unit/sequence_test.c
    constantsTouched: []
    func_position:
      end: 675
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 675
    functionName: test_string_serialize
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - SeqStringDeserialize
    - SeqStringSerialize
    - assert
    - assert_true
    - SeqNew
    - assert_string_equal
    - xstrdup
    - free
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_string_serialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:681,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:682,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:682,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:683,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:683,1
    - Dst: SeqAppend
      Src: /src/core/libntech/tests/unit/sequence_test.c:684,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/sequence_test.c:684,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:686,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:687,1
    - Dst: SeqStringWriteFile
      Src: /src/core/libntech/tests/unit/sequence_test.c:689,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:690,1
    - Dst: SeqStringReadFile
      Src: /src/core/libntech/tests/unit/sequence_test.c:692,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:693,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:695,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:695,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:696,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:696,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:700,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:700,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/sequence_test.c:700,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:702,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:703,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/sequence_test.c:704,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:705,1
    - Dst: SeqStringReadFile
      Src: /src/core/libntech/tests/unit/sequence_test.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 706
    functionName: test_seq_string_file
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - SeqStringWriteFile
    - assert_int_equal
    - SeqStringReadFile
    - SeqDestroy
    - unlink
    - assert_true
    - SeqNew
    - assert_string_equal
    - xstrdup
    - SeqLength
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void test_seq_string_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/tests/unit/sequence_test.c:712,1
    - Dst: SeqStringWriteFile
      Src: /src/core/libntech/tests/unit/sequence_test.c:713,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:714,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/sequence_test.c:718,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:719,1
    - Dst: SeqStringReadFile
      Src: /src/core/libntech/tests/unit/sequence_test.c:721,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:722,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:724,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:724,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:725,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/sequence_test.c:725,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:727,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/sequence_test.c:728,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/sequence_test.c:729,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:731,1
    - Dst: SeqStringReadFile
      Src: /src/core/libntech/tests/unit/sequence_test.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 732
    functionName: test_seq_string_empty_file
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - stat
    - SeqStringWriteFile
    - assert_int_equal
    - SeqStringReadFile
    - SeqDestroy
    - unlink
    - assert_true
    - SeqNew
    - SeqLength
    linkageType: ''
    returnType: void
    signature: void test_seq_string_empty_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:745,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:746,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:747,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:749,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:750,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:751,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:753,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:754,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:755,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:757,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:758,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:759,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:761,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:762,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:763,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:771,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:772,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:773,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:774,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:775,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:776,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:780,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:781,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:782,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:783,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:784,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:788,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:790,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:791,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:792,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:793,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:797,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:798,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:799,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:800,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:801,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:805,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:807,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:808,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:809,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:810,1
    - Dst: sscanf
      Src: /src/core/libntech/tests/unit/sequence_test.c:814,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:816,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:817,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:818,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:819,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 825
    functionName: test_sscanf
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - sscanf
    - assert_int_equal
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_sscanf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:832,1
    - Dst: GetLengthPrefix
      Src: /src/core/libntech/tests/unit/sequence_test.c:832,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:833,1
    - Dst: GetLengthPrefix
      Src: /src/core/libntech/tests/unit/sequence_test.c:833,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:834,1
    - Dst: GetLengthPrefix
      Src: /src/core/libntech/tests/unit/sequence_test.c:834,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 836
    functionName: test_string_prefix
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - GetLengthPrefix
    - assert_int_equal
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_string_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/sequence_test.c:840,1
    - Dst: ValidDuplicate
      Src: /src/core/libntech/tests/unit/sequence_test.c:841,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:842,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:843,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/sequence_test.c:844,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/sequence_test.c:845,1
    - Dst: ValidDuplicate
      Src: /src/core/libntech/tests/unit/sequence_test.c:849,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/sequence_test.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 852
    functionName: dupl_checker
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - strlen
    - assert_true
    - ValidDuplicate
    - assert_string_equal
    - free
    linkageType: ''
    returnType: void
    signature: void dupl_checker(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:856,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:857,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:858,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:859,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:860,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:861,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:862,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:863,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:864,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:865,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:866,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:867,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:868,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:869,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:870,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:871,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:872,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:873,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:874,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:875,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:876,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:877,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:878,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:879,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:880,1
    - Dst: dupl_checker
      Src: /src/core/libntech/tests/unit/sequence_test.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 882
    functionName: test_valid_duplicate
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 0
    functionsReached:
    - dupl_checker
    linkageType: ''
    returnType: void
    signature: void test_valid_duplicate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/sequence_test.c:886,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:889,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:890,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:891,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:892,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:893,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:894,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:895,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:896,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:897,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:898,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:899,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:900,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:901,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:902,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:903,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:904,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:905,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:906,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:907,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:908,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:909,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:910,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:911,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:912,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:913,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/sequence_test.c:914,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/sequence_test.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 918
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/sequence_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/cleanup_test.c:14,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:15,1
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/cleanup_test.c:20,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:21,1
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/cleanup_test.c:26,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 31
    functionName: fn1
    functionSourceFile: /src/core/libntech/tests/unit/cleanup_test.c
    functionUses: 0
    functionsReached:
    - _exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fn1(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/cleanup_test.c:37,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:38,1
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/cleanup_test.c:43,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:44,1
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/cleanup_test.c:49,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: fn2
    functionSourceFile: /src/core/libntech/tests/unit/cleanup_test.c
    functionUses: 0
    functionsReached:
    - _exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fn2(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/cleanup_test.c:60,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:61,1
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/cleanup_test.c:66,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:67,1
    - Dst: fprintf
      Src: /src/core/libntech/tests/unit/cleanup_test.c:72,1
    - Dst: _exit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 77
    functionName: fn3
    functionSourceFile: /src/core/libntech/tests/unit/cleanup_test.c
    functionUses: 0
    functionsReached:
    - _exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fn3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/cleanup_test.c:82,1
    - Dst: RegisterCleanupFunction
      Src: /src/core/libntech/tests/unit/cleanup_test.c:84,1
    - Dst: RegisterCleanupFunction
      Src: /src/core/libntech/tests/unit/cleanup_test.c:85,1
    - Dst: atexit
      Src: /src/core/libntech/tests/unit/cleanup_test.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/cleanup_test.c
    functionUses: 1
    functionsReached:
    - atexit
    - RegisterCleanupFunction
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:7,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:8,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:9,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:9,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:10,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:10,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:11,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:14,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:15,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:16,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:16,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:17,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:18,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:18,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:19,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:22,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:23,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:24,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:24,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:25,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:25,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:26,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:29,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:30,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:31,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:32,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:32,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:33,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:36,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:37,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:38,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:39,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:39,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:40,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:43,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:44,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:45,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:45,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:46,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:46,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:47,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:47,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:48,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:48,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:49,1
    - Dst: StringSetNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:52,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:53,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:54,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:54,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:55,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:55,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 58
    functionName: test_expand_braces
    functionSourceFile: /src/core/libntech/tests/unit/glob_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ExpandBraces
    - StringSetContains
    - assert_true
    - StringSetSize
    - StringSetDestroy
    - StringSetNew
    linkageType: ''
    returnType: void
    signature: void test_expand_braces(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizePath
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:62,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:66,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: test_normalize_path
    functionSourceFile: /src/core/libntech/tests/unit/glob_lib_test.c
    functionUses: 0
    functionsReached:
    - NormalizePath
    - free
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_normalize_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:77,1
    - Dst: TranslateBracket
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:78,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:78,1
    - Dst: BufferClose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:79,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:80,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:81,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:85,1
    - Dst: TranslateBracket
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:86,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:86,1
    - Dst: BufferClose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:87,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:88,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:89,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:93,1
    - Dst: TranslateBracket
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:94,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:94,1
    - Dst: BufferClose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:95,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:96,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:97,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:101,1
    - Dst: TranslateBracket
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:102,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:102,1
    - Dst: BufferClose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:103,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:104,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:105,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:109,1
    - Dst: TranslateBracket
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:110,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:110,1
    - Dst: BufferClose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:111,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:112,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:113,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:117,1
    - Dst: TranslateBracket
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:118,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:118,1
    - Dst: BufferClose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:119,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:120,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:121,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:125,1
    - Dst: TranslateBracket
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:126,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:126,1
    - Dst: BufferClose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:127,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:128,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:129,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:133,1
    - Dst: TranslateBracket
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:134,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:134,1
    - Dst: BufferClose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:135,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:136,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 139
    functionName: test_translate_bracket
    functionSourceFile: /src/core/libntech/tests/unit/glob_lib_test.c
    functionUses: 0
    functionsReached:
    - TranslateBracket
    - strlen
    - BufferClose
    - assert_string_equal
    - BufferNew
    - free
    linkageType: ''
    returnType: void
    signature: void test_translate_bracket(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TranslateGlob
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:144,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:145,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:146,1
    - Dst: TranslateGlob
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:149,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:150,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:151,1
    - Dst: TranslateGlob
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:154,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:155,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:156,1
    - Dst: TranslateGlob
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:159,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:160,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:161,1
    - Dst: TranslateGlob
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:164,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:165,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:166,1
    - Dst: TranslateGlob
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:169,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:170,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:171,1
    - Dst: TranslateGlob
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:174,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:175,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:176,1
    - Dst: TranslateGlob
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:179,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:180,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 183
    functionName: test_translate_glob
    functionSourceFile: /src/core/libntech/tests/unit/glob_lib_test.c
    functionUses: 0
    functionsReached:
    - free
    - TranslateGlob
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_translate_glob(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:187,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:187,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:188,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:188,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:190,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:190,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:191,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:191,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:192,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:192,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:193,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:193,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:195,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:195,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:196,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:196,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:197,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:197,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:199,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:199,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:200,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:200,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:201,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:201,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:203,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:203,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:204,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:204,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:205,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:205,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:207,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:207,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:208,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:208,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:209,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:209,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:210,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:210,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:211,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:211,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:213,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:213,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:214,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:214,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:215,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:215,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:216,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:216,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:218,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:218,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:219,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:219,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:220,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:220,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:221,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:221,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:222,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:222,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:224,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:224,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:225,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:225,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:226,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:226,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:227,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:227,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:228,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:228,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:229,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:229,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:231,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:231,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:232,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:232,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:233,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:233,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:234,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:234,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:235,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:235,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:239,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:239,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:242,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:242,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:247,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:247,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:250,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:250,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:255,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:255,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:256,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:256,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:257,1
    - Dst: GlobMatch
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 258
    functionName: test_glob_match
    functionSourceFile: /src/core/libntech/tests/unit/glob_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - GlobMatch
    linkageType: ''
    returnType: void
    signature: void test_glob_match(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GlobFind
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:265,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:266,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:266,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:267,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:267,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:268,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:268,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:269,1
    - Dst: GlobFind
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:272,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:273,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:273,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:274,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:274,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:275,1
    - Dst: mkdtemp
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:283,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:284,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:287,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:293,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:298,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:301,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:303,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:305,1
    - Dst: mkdir
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:305,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:309,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:310,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:311,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:312,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:313,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:316,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:318,1
    - Dst: fopen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:318,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:319,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:320,1
    - Dst: fopen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:320,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:321,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:322,1
    - Dst: fopen
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:322,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:323,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:326,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:330,1
    - Dst: GlobFind
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:332,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:333,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:333,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:334,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:336,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:337,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:338,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:340,1
    - Dst: rmdir
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:343,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:344,1
    - Dst: rmdir
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:346,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:347,1
    - Dst: rmdir
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:349,1
    - Dst: rmdir
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:350,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 353
    functionName: test_glob_find
    functionSourceFile: /src/core/libntech/tests/unit/glob_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SeqDestroy
    - mkdtemp
    - snprintf
    - fopen
    - unlink
    - rmdir
    - assert_true
    - assert_string_equal
    - fclose
    - GlobFind
    - SeqLength
    - mkdir
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void test_glob_find(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mkdtemp
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:362,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:363,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:379,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:385,1
    - Dst: mkdir
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:386,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:387,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:421,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:427,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:429,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:430,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:431,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:465,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:466,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:468,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:469,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:470,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:474,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:480,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:481,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:481,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:486,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:492,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:493,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:493,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:496,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:503,1
    - Dst: getcwd
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:503,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:505,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:506,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:508,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:509,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:510,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:514,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:521,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:522,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:522,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:527,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:534,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:535,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:535,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:538,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:545,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:546,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:547,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:548,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:548,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:550,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:551,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:552,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:552,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:554,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:559,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:560,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:560,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:562,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:568,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:569,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:569,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:571,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:572,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:573,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:573,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:575,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:582,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:583,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:584,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:586,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:586,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:588,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:590,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:591,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:591,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:593,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:598,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:599,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:599,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:601,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:607,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:608,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:608,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:610,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:616,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:617,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:617,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:619,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:624,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:625,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:625,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:627,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:633,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:634,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:635,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:637,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:637,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:639,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:644,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:645,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:645,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:647,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:652,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:653,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:653,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:655,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:660,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:661,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:661,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:663,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:669,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:670,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:671,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:673,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:673,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:675,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:680,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:681,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:681,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:683,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:688,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:689,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:689,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:691,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:697,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:699,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:700,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:702,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:702,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:704,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:710,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:711,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:711,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:713,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:719,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:720,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:720,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:722,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:731,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:732,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:733,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:735,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:735,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:737,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:739,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:740,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:740,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:742,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:749,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:750,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:751,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:753,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:753,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:755,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:756,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:757,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:757,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:759,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:764,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:765,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:765,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:767,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:773,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:774,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:775,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:777,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:777,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:779,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:784,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:785,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:785,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:787,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:794,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:799,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:800,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:802,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:802,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:804,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:810,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:811,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:811,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:813,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:820,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:822,1
    - Dst: GlobFileList
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:823,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:825,1
    - Dst: StringSetSize
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:825,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:827,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:835,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:836,1
    - Dst: StringSetContains
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:836,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:838,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 154
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 839
    functionName: test_glob_file_list
    functionSourceFile: /src/core/libntech/tests/unit/glob_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - mkdtemp
    - snprintf
    - assert_int_equal
    - StringSetContains
    - assert_true
    - StringSetSize
    - assert_int_not_equal
    - StringSetDestroy
    - open
    - getcwd
    - GlobFileList
    - mkdir
    - close
    linkageType: ''
    returnType: void
    signature: void test_glob_file_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:845,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:845,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:846,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:846,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:847,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:847,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:848,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:848,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:849,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:849,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:852,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:852,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:853,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:853,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:854,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:854,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:855,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:855,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:856,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:856,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:857,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:857,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:862,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:862,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:863,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:863,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:869,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 870
    functionName: test_is_wildcard_pattern
    functionSourceFile: /src/core/libntech/tests/unit/glob_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_false
    - IsWildcardPattern
    linkageType: ''
    returnType: void
    signature: void test_is_wildcard_pattern(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:875,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:877,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:878,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:880,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:881,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:882,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:883,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:884,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:886,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/glob_lib_test.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 890
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/glob_lib_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rmdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:68,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:69,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:74,1
    - Dst: symlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:74,1
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:77,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:80,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 84
    functionName: switch_symlink_hook
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - unlink
    - rmdir
    - lchown
    - getuid
    - symlink
    linkageType: ''
    returnType: void
    signature: void switch_symlink_hook(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/libntech/tests/unit/file_lib_test.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - function
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: complain_missing_sudo
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void complain_missing_sudo(const char *function)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:94,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/file_lib_test.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: chdir_or_exit
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - chdir
    - exit
    linkageType: ''
    returnType: void
    signature: void chdir_or_exit(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:103,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: save_test_dir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - open
    linkageType: ''
    returnType: void
    signature: void save_test_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: close_test_dir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close_test_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:114,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:115,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:116,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:117,1
    - Dst: rmdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:118,1
    - Dst: rmdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:119,1
    - Dst: rmdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: clear_tempfiles
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - unlink
    - rmdir
    linkageType: ''
    returnType: void
    signature: void clear_tempfiles(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:125,1
    - Dst: mkdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:127,1
    - Dst: chdir_or_exit
      Src: /src/core/libntech/tests/unit/file_lib_test.c:128,1
    - Dst: mkdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:129,1
    - Dst: mkdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:130,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:131,1
    - Dst: write
      Src: /src/core/libntech/tests/unit/file_lib_test.c:132,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:132,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:133,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:134,1
    - Dst: write
      Src: /src/core/libntech/tests/unit/file_lib_test.c:135,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:135,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:136,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:137,1
    - Dst: write
      Src: /src/core/libntech/tests/unit/file_lib_test.c:138,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:138,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:139,1
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:141,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:144,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:145,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:146,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:147,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 154
    functionName: setup_tempfiles
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - write
    - strlen
    - getuid
    - clear_tempfiles
    - open
    - chown
    - mkdir
    - close
    - chdir_or_exit
    linkageType: ''
    returnType: void
    signature: void setup_tempfiles(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fchdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:158,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/file_lib_test.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: return_to_test_dir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - exit
    - fchdir
    linkageType: ''
    returnType: void
    signature: void return_to_test_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:167,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:168,1
    - Dst: read
      Src: /src/core/libntech/tests/unit/file_lib_test.c:168,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:168,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:168,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:169,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - str
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: check_contents
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_string_equal
    - read
    - strlen
    linkageType: ''
    returnType: void
    signature: void check_contents(int fd, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:175,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:178,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:178,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:179,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:180,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: test_safe_open_currentdir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_currentdir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:187,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:190,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:190,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:191,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:192,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: test_safe_open_subdir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_subdir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:199,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:202,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:202,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:203,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:204,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: test_safe_open_subsubdir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_subsubdir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:211,1
    - Dst: chdir_or_exit
      Src: /src/core/libntech/tests/unit/file_lib_test.c:213,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:216,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:216,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:217,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:218,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: test_safe_open_updir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    - chdir_or_exit
    linkageType: ''
    returnType: void
    signature: void test_safe_open_updir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:225,1
    - Dst: chdir_or_exit
      Src: /src/core/libntech/tests/unit/file_lib_test.c:227,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:230,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:230,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:231,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:232,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 235
    functionName: test_safe_open_upupdir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    - chdir_or_exit
    linkageType: ''
    returnType: void
    signature: void test_safe_open_upupdir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:239,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:242,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:242,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:243,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:244,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: test_safe_open_generic_relative_dir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_generic_relative_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:251,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:254,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:254,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:258,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:259,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 262
    functionName: test_safe_open_generic_absolute_dir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_generic_absolute_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:266,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:269,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:269,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:270,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:271,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: test_safe_open_extra_slashes_relative
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_extra_slashes_relative(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:278,1
    - Dst: chdir_or_exit
      Src: /src/core/libntech/tests/unit/file_lib_test.c:280,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:283,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:283,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:287,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:288,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: test_safe_open_extra_slashes_absolute
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    - chdir_or_exit
    linkageType: ''
    returnType: void
    signature: void test_safe_open_extra_slashes_absolute(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:295,1
    - Dst: switch_symlink_hook
      Src: /src/core/libntech/tests/unit/file_lib_test.c:300,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:302,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:302,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:303,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: test_safe_open_unsafe_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - switch_symlink_hook
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_unsafe_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:310,1
    - Dst: switch_symlink_hook
      Src: /src/core/libntech/tests/unit/file_lib_test.c:315,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:318,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:318,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:319,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:320,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 323
    functionName: test_safe_open_safe_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - switch_symlink_hook
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_safe_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:327,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:336,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:336,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:337,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 340
    functionName: test_safe_open_unsafe_inserted_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_unsafe_inserted_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:344,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:353,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:353,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:354,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 357
    functionName: test_safe_open_safe_inserted_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_safe_inserted_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:361,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:370,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:370,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:371,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 374
    functionName: test_safe_open_unsafe_switched_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_unsafe_switched_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:378,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:388,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:388,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:389,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:390,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: test_safe_open_safe_switched_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_safe_switched_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:397,1
    - Dst: switch_symlink_hook
      Src: /src/core/libntech/tests/unit/file_lib_test.c:402,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:404,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:404,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:405,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: test_safe_open_unsafe_dir_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - switch_symlink_hook
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_unsafe_dir_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:412,1
    - Dst: switch_symlink_hook
      Src: /src/core/libntech/tests/unit/file_lib_test.c:417,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:420,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:420,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:421,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:422,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 425
    functionName: test_safe_open_safe_dir_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - switch_symlink_hook
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_safe_dir_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:429,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:438,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:438,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:439,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 442
    functionName: test_safe_open_unsafe_inserted_dir_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_unsafe_inserted_dir_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:446,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:455,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:455,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:456,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 459
    functionName: test_safe_open_safe_inserted_dir_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_safe_inserted_dir_symlink(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:463,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:465,1
    - Dst: mkdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:465,1
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:466,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:468,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:468,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:478,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:478,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:479,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 482
    functionName: test_safe_open_unsafe_switched_dir_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - getuid
    - return_to_test_dir
    - setup_tempfiles
    - chown
    - mkdir
    linkageType: ''
    returnType: void
    signature: void test_safe_open_unsafe_switched_dir_symlink(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:486,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:488,1
    - Dst: mkdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:488,1
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:489,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:491,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:491,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:502,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:502,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:503,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:504,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 507
    functionName: test_safe_open_safe_switched_dir_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - check_contents
    - safe_open
    - assert_true
    - getuid
    - return_to_test_dir
    - setup_tempfiles
    - chown
    - mkdir
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_safe_switched_dir_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:511,1
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:520,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:522,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:523,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:524,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 527
    functionName: test_safe_open_create_safe_inserted_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - check_contents
    - assert_true
    - safe_open_create_perms
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_create_safe_inserted_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:531,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:541,1
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:541,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:543,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 546
    functionName: test_safe_open_create_alternating_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_true
    - safe_open_create_perms
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_create_alternating_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:550,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:559,1
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:559,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:561,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 564
    functionName: test_safe_open_create_unsafe_switched_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_true
    - safe_open_create_perms
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_create_unsafe_switched_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:568,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:577,1
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:577,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:579,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 582
    functionName: test_safe_open_create_switched_dangling_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_true
    - safe_open_create_perms
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_create_switched_dangling_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:586,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:595,1
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:595,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:597,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 600
    functionName: test_safe_open_create_switched_dangling_symlink_exclusively
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_true
    - safe_open_create_perms
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_create_switched_dangling_symlink_exclusively(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:604,1
    - Dst: switch_symlink_hook
      Src: /src/core/libntech/tests/unit/file_lib_test.c:609,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:611,1
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:611,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:613,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 616
    functionName: test_safe_open_create_dangling_symlink_exclusively
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_true
    - safe_open_create_perms
    - return_to_test_dir
    - switch_symlink_hook
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_create_dangling_symlink_exclusively(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:620,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:629,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:629,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:630,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 633
    functionName: test_safe_open_switched_dangling_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_switched_dangling_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:639,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:639,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:640,1
    - Dst: fchdir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:640,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:641,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:641,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:642,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 645
    functionName: test_safe_open_root
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - fchdir
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_root(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:649,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:654,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:658,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:665,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:666,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:669,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:673,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:676,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:676,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:677,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 680
    functionName: test_safe_open_ending_slashes
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_true
    - return_to_test_dir
    - open
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_ending_slashes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:684,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:687,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:687,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:688,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 691
    functionName: test_safe_open_null
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - safe_open
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:695,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:698,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:698,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:699,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 702
    functionName: test_safe_open_empty
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - safe_open
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:709,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 712
    functionName: GetFileSize
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - lstat
    - assert_int_not_equal
    linkageType: ''
    returnType: size_t
    signature: size_t GetFileSize(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/core/libntech/tests/unit/file_lib_test.c:715,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:716,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 718
    functionName: assert_file_not_exists
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - access
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void assert_file_not_exists(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:721,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:723,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:724,1
    - Dst: write
      Src: /src/core/libntech/tests/unit/file_lib_test.c:728,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:728,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:729,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:729,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:732,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:733,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:735,1
    - Dst: GetFileSize
      Src: /src/core/libntech/tests/unit/file_lib_test.c:735,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - empty
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 737
    functionName: create_test_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - unlink
    - strlen
    - write
    - assert_int_not_equal
    - open
    - GetFileSize
    - close
    linkageType: ''
    returnType: void
    signature: void create_test_file(bool empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:747,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:756,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:757,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:759,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:760,1
    - Dst: GetFileSize
      Src: /src/core/libntech/tests/unit/file_lib_test.c:763,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:766,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 769
    functionName: test_safe_open_TRUNC_safe_switched_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_int_not_equal
    - return_to_test_dir
    - setup_tempfiles
    - GetFileSize
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_TRUNC_safe_switched_symlink(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:772,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:774,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:778,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:792,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:792,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:796,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:797,1
    - Dst: GetFileSize
      Src: /src/core/libntech/tests/unit/file_lib_test.c:800,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:803,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 806
    functionName: test_safe_open_TRUNC_unsafe_switched_symlink
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - complain_missing_sudo
    - getuid
    - assert_int_not_equal
    - return_to_test_dir
    - setup_tempfiles
    - chown
    - GetFileSize
    linkageType: ''
    returnType: void
    signature: void test_safe_open_TRUNC_unsafe_switched_symlink(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:810,1
    - Dst: create_test_file
      Src: /src/core/libntech/tests/unit/file_lib_test.c:811,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:814,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:815,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:817,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:818,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:820,1
    - Dst: GetFileSize
      Src: /src/core/libntech/tests/unit/file_lib_test.c:820,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 823
    functionName: test_safe_open_TRUNC_existing_nonempty
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_int_not_equal
    - return_to_test_dir
    - setup_tempfiles
    - GetFileSize
    - close
    - create_test_file
    linkageType: ''
    returnType: void
    signature: void test_safe_open_TRUNC_existing_nonempty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:826,1
    - Dst: create_test_file
      Src: /src/core/libntech/tests/unit/file_lib_test.c:827,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:830,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:831,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:833,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:834,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:836,1
    - Dst: GetFileSize
      Src: /src/core/libntech/tests/unit/file_lib_test.c:836,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 839
    functionName: test_safe_open_TRUNC_existing_empty
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_int_not_equal
    - return_to_test_dir
    - setup_tempfiles
    - GetFileSize
    - close
    - create_test_file
    linkageType: ''
    returnType: void
    signature: void test_safe_open_TRUNC_existing_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:842,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:843,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:846,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:847,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:848,1
    - Dst: assert_file_not_exists
      Src: /src/core/libntech/tests/unit/file_lib_test.c:850,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 853
    functionName: test_safe_open_TRUNC_nonexisting
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - unlink
    - safe_open
    - assert_file_not_exists
    - return_to_test_dir
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_open_TRUNC_nonexisting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:856,1
    - Dst: create_test_file
      Src: /src/core/libntech/tests/unit/file_lib_test.c:857,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:860,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:861,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:863,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:864,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:866,1
    - Dst: GetFileSize
      Src: /src/core/libntech/tests/unit/file_lib_test.c:866,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 869
    functionName: test_safe_open_CREAT_TRUNC_existing_nonempty
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_int_not_equal
    - return_to_test_dir
    - setup_tempfiles
    - GetFileSize
    - close
    - create_test_file
    linkageType: ''
    returnType: void
    signature: void test_safe_open_CREAT_TRUNC_existing_nonempty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:872,1
    - Dst: create_test_file
      Src: /src/core/libntech/tests/unit/file_lib_test.c:873,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:876,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:877,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:879,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:880,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:882,1
    - Dst: GetFileSize
      Src: /src/core/libntech/tests/unit/file_lib_test.c:882,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 885
    functionName: test_safe_open_CREAT_TRUNC_existing_empty
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - assert_int_not_equal
    - return_to_test_dir
    - setup_tempfiles
    - GetFileSize
    - close
    - create_test_file
    linkageType: ''
    returnType: void
    signature: void test_safe_open_CREAT_TRUNC_existing_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:888,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:889,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:892,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:893,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:895,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:896,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:898,1
    - Dst: GetFileSize
      Src: /src/core/libntech/tests/unit/file_lib_test.c:898,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 901
    functionName: test_safe_open_CREAT_TRUNC_nonexisting
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - unlink
    - safe_open
    - assert_int_not_equal
    - return_to_test_dir
    - setup_tempfiles
    - GetFileSize
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_open_CREAT_TRUNC_nonexisting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:905,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:911,1
    - Dst: safe_fopen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:911,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:912,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:912,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:913,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:913,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:914,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:915,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:915,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:916,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:916,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:917,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:918,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:920,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:920,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:922,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:922,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:923,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:923,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:924,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:925,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:925,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:926,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:926,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:927,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:928,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:930,1
    - Dst: safe_fopen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:930,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:931,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:931,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:932,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:932,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:933,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:934,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:934,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:935,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:935,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:936,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:937,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:939,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:939,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:941,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:941,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:942,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:942,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:943,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:944,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:944,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:945,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:945,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:946,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:947,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:949,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:949,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:951,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:951,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:952,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:952,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:953,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:954,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:954,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:955,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:955,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:956,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:957,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:959,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:959,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:961,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:961,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:962,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:962,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:963,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:964,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:964,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:965,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:965,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:966,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:967,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:969,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:970,1
    - Dst: safe_fopen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:970,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:972,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:973,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:973,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:975,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:975,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:976,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:976,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:977,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:978,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:978,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:979,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:979,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:980,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:981,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:983,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:984,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:984,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:986,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:986,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:987,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:987,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:988,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:989,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:989,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:990,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:990,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:991,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:992,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:994,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:995,1
    - Dst: safe_fopen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:995,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:997,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:998,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:998,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1000,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1000,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1001,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1001,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1002,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1003,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1003,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1004,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1004,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1005,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1006,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1008,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1009,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1009,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1011,1
    - Dst: fread
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1011,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1012,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1012,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1013,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1014,1
    - Dst: fwrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1014,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1015,1
    - Dst: ferror
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1015,1
    - Dst: clearerr
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1016,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1017,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 1020
    functionName: test_safe_fopen
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - clearerr
    - assert_int_equal
    - assert_false
    - unlink
    - assert_true
    - fread
    - assert_int_not_equal
    - safe_fopen
    - fwrite
    - safe_fopen_create_perms
    - return_to_test_dir
    - fclose
    - setup_tempfiles
    - ferror
    linkageType: ''
    returnType: void
    signature: void test_safe_fopen(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1024,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1026,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1030,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1034,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1034,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1035,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1035,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1036,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1037,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1038,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1038,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1039,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1039,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1040,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1041,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1044
    functionName: test_safe_chown_plain_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - getuid
    - safe_chown
    - return_to_test_dir
    - setup_tempfiles
    - chown
    linkageType: ''
    returnType: void
    signature: void test_safe_chown_plain_file(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1048,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1050,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1054,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1058,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1058,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1059,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1059,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1060,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1061,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1062,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1062,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1063,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1063,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1064,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1065,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1046
    functionDepth: 2
    functionLinenumber: 1046
    functionLinenumberEnd: 1068
    functionName: test_safe_chown_relative_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - getuid
    - safe_chown
    - return_to_test_dir
    - setup_tempfiles
    - chown
    linkageType: ''
    returnType: void
    signature: void test_safe_chown_relative_file(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1072,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1074,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1078,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1082,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1082,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1083,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1083,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1084,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1085,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1086,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1086,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1087,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1087,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1088,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1089,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1070
    functionDepth: 2
    functionLinenumber: 1070
    functionLinenumberEnd: 1092
    functionName: test_safe_chown_absolute_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - getuid
    - safe_chown
    - return_to_test_dir
    - setup_tempfiles
    - chown
    linkageType: ''
    returnType: void
    signature: void test_safe_chown_absolute_file(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1096,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1098,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1102,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1106,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1106,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1107,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1107,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1108,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1109,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1110,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1110,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1111,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1111,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1112,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1113,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1116
    functionName: test_safe_chown_file_extra_slashes
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - getuid
    - safe_chown
    - return_to_test_dir
    - setup_tempfiles
    - chown
    linkageType: ''
    returnType: void
    signature: void test_safe_chown_file_extra_slashes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1120,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1122,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1126,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1130,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1130,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1131,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1131,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1132,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1133,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1134,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1134,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1135,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1135,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1136,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1137,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1118
    functionDepth: 2
    functionLinenumber: 1118
    functionLinenumberEnd: 1140
    functionName: test_safe_chown_plain_directory
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - getuid
    - safe_chown
    - return_to_test_dir
    - setup_tempfiles
    - chown
    linkageType: ''
    returnType: void
    signature: void test_safe_chown_plain_directory(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1144,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1146,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1150,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1161,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1161,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1162,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1162,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1163,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1164,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1165,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1165,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1166,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1167,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1167,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1168,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1169,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1172
    functionName: test_safe_chown_unsafe_link
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - getuid
    - safe_chown
    - return_to_test_dir
    - setup_tempfiles
    - chown
    linkageType: ''
    returnType: void
    signature: void test_safe_chown_unsafe_link(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1176,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1178,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1182,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1186,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1186,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1187,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1187,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1188,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1189,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1190,1
    - Dst: safe_lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1190,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1191,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1191,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1192,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1193,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1174
    functionDepth: 2
    functionLinenumber: 1174
    functionLinenumberEnd: 1196
    functionName: test_safe_lchown_plain_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - lchown
    - getuid
    - return_to_test_dir
    - safe_lchown
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_lchown_plain_file(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1200,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1202,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1206,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1210,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1210,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1211,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1211,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1212,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1213,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1214,1
    - Dst: safe_lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1214,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1215,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1215,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1216,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1217,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1198
    functionDepth: 2
    functionLinenumber: 1198
    functionLinenumberEnd: 1220
    functionName: test_safe_lchown_relative_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - lchown
    - getuid
    - return_to_test_dir
    - safe_lchown
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_lchown_relative_file(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1224,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1226,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1230,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1234,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1234,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1235,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1235,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1236,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1237,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1238,1
    - Dst: safe_lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1238,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1239,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1239,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1240,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1241,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1222
    functionDepth: 2
    functionLinenumber: 1222
    functionLinenumberEnd: 1244
    functionName: test_safe_lchown_absolute_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - lchown
    - getuid
    - return_to_test_dir
    - safe_lchown
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_lchown_absolute_file(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1248,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1250,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1254,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1258,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1258,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1259,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1259,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1260,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1261,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1262,1
    - Dst: safe_lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1262,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1263,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1263,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1264,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1265,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1246
    functionDepth: 2
    functionLinenumber: 1246
    functionLinenumberEnd: 1268
    functionName: test_safe_lchown_file_extra_slashes
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - lchown
    - getuid
    - return_to_test_dir
    - safe_lchown
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_lchown_file_extra_slashes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1272,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1274,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1278,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1282,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1282,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1283,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1283,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1284,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1285,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1286,1
    - Dst: safe_lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1286,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1287,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1287,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1288,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1289,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1292
    functionName: test_safe_lchown_plain_directory
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - lchown
    - getuid
    - return_to_test_dir
    - safe_lchown
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_lchown_plain_directory(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1296,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1298,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1302,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1313,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1313,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1314,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1314,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1315,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1316,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1318,1
    - Dst: safe_lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1318,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1319,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1319,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1320,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1321,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1324
    functionName: test_safe_lchown_unsafe_link
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - lchown
    - getuid
    - return_to_test_dir
    - safe_lchown
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_lchown_unsafe_link(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1328,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1330,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1334,1
    - Dst: switch_symlink_hook
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1341,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1343,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1343,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1344,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1344,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1345,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1346,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1347,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1347,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1348,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1348,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1349,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1350,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1351,1
    - Dst: safe_lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1351,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1352,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1354,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1354,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1355,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1355,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1356,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1357,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1358,1
    - Dst: lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1358,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1359,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1359,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1360,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1361,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1362,1
    - Dst: safe_lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1362,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1363,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1363,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1364,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1365,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1368
    functionName: test_safe_lchown_unsafe_link_to_directory
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - lchown
    - getuid
    - return_to_test_dir
    - switch_symlink_hook
    - safe_lchown
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_lchown_unsafe_link_to_directory(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1372,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1376,1
    - Dst: chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1376,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1377,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1377,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1378,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1379,1
    - Dst: safe_chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1379,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1380,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1380,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1381,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1384
    functionName: test_safe_chmod_plain_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - safe_chmod
    - return_to_test_dir
    - setup_tempfiles
    - chmod
    linkageType: ''
    returnType: void
    signature: void test_safe_chmod_plain_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1388,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1392,1
    - Dst: chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1392,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1393,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1393,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1394,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1395,1
    - Dst: safe_chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1395,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1396,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1396,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1397,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1400
    functionName: test_safe_chmod_relative_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - safe_chmod
    - return_to_test_dir
    - setup_tempfiles
    - chmod
    linkageType: ''
    returnType: void
    signature: void test_safe_chmod_relative_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1404,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1408,1
    - Dst: chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1408,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1409,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1409,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1410,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1411,1
    - Dst: safe_chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1411,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1412,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1412,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1413,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1402
    functionDepth: 2
    functionLinenumber: 1402
    functionLinenumberEnd: 1416
    functionName: test_safe_chmod_absolute_file
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - safe_chmod
    - return_to_test_dir
    - setup_tempfiles
    - chmod
    linkageType: ''
    returnType: void
    signature: void test_safe_chmod_absolute_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1420,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1424,1
    - Dst: chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1424,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1425,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1425,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1426,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1427,1
    - Dst: safe_chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1427,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1428,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1428,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1429,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1418
    functionDepth: 2
    functionLinenumber: 1418
    functionLinenumberEnd: 1432
    functionName: test_safe_chmod_extra_slashes
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - safe_chmod
    - return_to_test_dir
    - setup_tempfiles
    - chmod
    linkageType: ''
    returnType: void
    signature: void test_safe_chmod_extra_slashes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1436,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1438,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1442,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1453,1
    - Dst: chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1453,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1455,1
    - Dst: chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1455,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1456,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1456,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1457,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1458,1
    - Dst: safe_chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1458,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1459,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1460,1
    - Dst: stat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1460,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1461,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1434
    functionDepth: 2
    functionLinenumber: 1434
    functionLinenumberEnd: 1464
    functionName: test_safe_chmod_unsafe_link
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - stat
    - assert_int_equal
    - complain_missing_sudo
    - safe_chmod
    - getuid
    - return_to_test_dir
    - setup_tempfiles
    - chown
    - chmod
    linkageType: ''
    returnType: void
    signature: void test_safe_chmod_unsafe_link(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1468,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1472,1
    - Dst: safe_creat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1472,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1473,1
    - Dst: fstat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1473,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1474,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1475,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1466
    functionDepth: 2
    functionLinenumber: 1466
    functionLinenumberEnd: 1478
    functionName: test_safe_creat_exists
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - safe_creat
    - assert_int_equal
    - fstat
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_creat_exists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1482,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1486,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1487,1
    - Dst: safe_creat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1487,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1488,1
    - Dst: fstat
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1488,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1489,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1490,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1480
    functionDepth: 2
    functionLinenumber: 1480
    functionLinenumberEnd: 1493
    functionName: test_safe_creat_doesnt_exist
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - safe_creat
    - assert_int_equal
    - unlink
    - fstat
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_safe_creat_doesnt_exist(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1497,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1499,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1503,1
    - Dst: switch_symlink_hook
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1508,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1510,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1510,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1511,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1512,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1512,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1513,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1514,1
    - Dst: safe_chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1514,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1515,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1516,1
    - Dst: safe_lchown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1516,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1495
    functionDepth: 2
    functionLinenumber: 1495
    functionLinenumberEnd: 1519
    functionName: test_symlink_loop
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - safe_open
    - complain_missing_sudo
    - safe_chmod
    - getuid
    - safe_chown
    - return_to_test_dir
    - switch_symlink_hook
    - safe_lchown
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_symlink_loop(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1523,1
    - Dst: complain_missing_sudo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1525,1
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1529,1
    - Dst: switch_symlink_hook
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1534,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1536,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1537,1
    - Dst: mkfifo
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1537,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1540,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1540,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1541,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1542,1
    - Dst: safe_chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1542,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1543,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1544,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1544,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1547,1
    - Dst: safe_chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1547,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1548,1
    - Dst: safe_chown
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1548,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1549,1
    - Dst: safe_chmod
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1549,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1552
    functionName: test_safe_chmod_chown_fifos
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - unlink
    - complain_missing_sudo
    - safe_chmod
    - getuid
    - mkfifo
    - safe_chown
    - return_to_test_dir
    - switch_symlink_hook
    - setup_tempfiles
    linkageType: ''
    returnType: void
    signature: void test_safe_chmod_chown_fifos(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1556,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1558,1
    - Dst: FileCanOpen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1558,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1559,1
    - Dst: FileCanOpen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1559,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1554
    functionDepth: 2
    functionLinenumber: 1554
    functionLinenumberEnd: 1562
    functionName: test_file_can_open
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - FileCanOpen
    linkageType: ''
    returnType: void
    signature: void test_file_can_open(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1566,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1568,1
    - Dst: File_Copy
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1568,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1570,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1571,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1572,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1573,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1575,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1575,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1564
    functionDepth: 2
    functionLinenumber: 1564
    functionLinenumberEnd: 1578
    functionName: test_file_copy
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - unlink
    - check_contents
    - safe_open
    - assert_true
    - File_Copy
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_file_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1582,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1584,1
    - Dst: File_CopyToDir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1584,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1585,1
    - Dst: File_CopyToDir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1585,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1588,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1589,1
    - Dst: check_contents
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1590,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1591,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1593,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1593,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1580
    functionDepth: 2
    functionLinenumber: 1580
    functionLinenumberEnd: 1596
    functionName: test_file_copy_to_dir
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - File_CopyToDir
    - assert_false
    - assert_int_equal
    - unlink
    - check_contents
    - safe_open
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_file_copy_to_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1600,1
    - Dst: FileRead
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1604,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1605,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1606,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1607,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1608,1
    - Dst: FileRead
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1613,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1614,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1615,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1616,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1617,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1598
    functionDepth: 2
    functionLinenumber: 1598
    functionLinenumberEnd: 1621
    functionName: test_file_read
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - return_to_test_dir
    - StringWriterClose
    - FileRead
    - assert_string_equal
    - setup_tempfiles
    - free
    linkageType: ''
    returnType: void
    signature: void test_file_read(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1625,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1628,1
    - Dst: safe_fopen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1630,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1631,1
    - Dst: ReadFileStreamToBuffer
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1632,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1633,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1634,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1635,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1639
    functionName: test_read_file_stream_to_buffer
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - strlen
    - assert_true
    - safe_fopen
    - return_to_test_dir
    - assert_string_equal
    - fclose
    - setup_tempfiles
    - ReadFileStreamToBuffer
    linkageType: ''
    returnType: void
    signature: void test_read_file_stream_to_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1643,1
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1646,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1647,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1648,1
    - Dst: FullWrite
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1648,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1649,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1649,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1653,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1655,1
    - Dst: FullRead
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1655,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1656,1
    - Dst: memcmp
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1656,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1657,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1657,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1663,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1665,1
    - Dst: FullRead
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1665,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1666,1
    - Dst: memcmp
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1666,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1667,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1667,1
    - Dst: safe_open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1673,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1675,1
    - Dst: FullRead
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1675,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1676,1
    - Dst: memcmp
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1676,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1677,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1677,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1680,1
    - Dst: unlink
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1680,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1641
    functionDepth: 2
    functionLinenumber: 1641
    functionLinenumberEnd: 1682
    functionName: test_full_read_write
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - unlink
    - strlen
    - safe_open
    - FullWrite
    - assert_true
    - memcmp
    - safe_open_create_perms
    - return_to_test_dir
    - FullRead
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_full_read_write(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1686,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1688,1
    - Dst: IsDirReal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1688,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1689,1
    - Dst: IsDirReal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1689,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1690,1
    - Dst: IsDirReal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1690,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1691,1
    - Dst: IsDirReal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1691,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1684
    functionDepth: 2
    functionLinenumber: 1684
    functionLinenumberEnd: 1696
    functionName: test_is_dir_real
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - assert_true
    - return_to_test_dir
    - setup_tempfiles
    - IsDirReal
    linkageType: ''
    returnType: void
    signature: void test_is_dir_real(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1701,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1704,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1709,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1709,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1712,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1715,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1715,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1718,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1718,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1722,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1726,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1726,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1729,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1733,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1733,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1736,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1736,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1739,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1739,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1742,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1746,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1750,1
    - Dst: SharedFileLock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1750,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1753,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1757,1
    - Dst: ExclusiveFileLockCheck
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1757,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1760,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1760,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1763,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1763,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1766,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1766,1
    - Dst: open
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1771,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1776,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1776,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1779,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1782,1
    - Dst: ExclusiveFileLockCheck
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1782,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1785,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1785,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1788,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1788,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1791,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1791,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1794,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1794,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1698
    functionDepth: 2
    functionLinenumber: 1698
    functionLinenumberEnd: 1798
    functionName: test_file_locking
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - SharedFileLock
    - assert_true
    - ExclusiveFileUnlock
    - ExclusiveFileLock
    - return_to_test_dir
    - ExclusiveFileLockCheck
    - open
    - setup_tempfiles
    - close
    linkageType: ''
    returnType: void
    signature: void test_file_locking(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_tempfiles
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1803,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1809,1
    - Dst: ExclusiveFileLockPath
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1809,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1812,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1815,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1815,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1818,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1818,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1824,1
    - Dst: ExclusiveFileLockPath
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1824,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1827,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1831,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1831,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1834,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1834,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1837,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1837,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1840,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1845,1
    - Dst: SharedFileLockPath
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1845,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1848,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1852,1
    - Dst: ExclusiveFileLockCheck
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1852,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1856,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1856,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1860,1
    - Dst: ExclusiveFileLockPath
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1860,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1863,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1863,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1866,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1866,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1868,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1868,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1873,1
    - Dst: ExclusiveFileLockPath
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1873,1
    - Dst: return_to_test_dir
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1800
    functionDepth: 2
    functionLinenumber: 1800
    functionLinenumberEnd: 1877
    functionName: test_file_locking_with_path
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ExclusiveFileLockPath
    - assert_true
    - ExclusiveFileUnlock
    - assert_int_not_equal
    - ExclusiveFileLock
    - return_to_test_dir
    - ExclusiveFileLockCheck
    - setup_tempfiles
    - SharedFileLockPath
    - close
    linkageType: ''
    returnType: void
    signature: void test_file_locking_with_path(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: system
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1881,1
    - Dst: execlp
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - ARG_UNUSED
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1879
    functionDepth: 0
    functionLinenumber: 1879
    functionLinenumberEnd: 1886
    functionName: try_gaining_root_privileges
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 0
    functionsReached:
    - system
    - execlp
    linkageType: ''
    returnType: void
    signature: void try_gaining_root_privileges(ARG_UNUSED int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1890,1
    - Dst: try_gaining_root_privileges
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1892,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1895,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1899,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1901,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1902,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1903,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1904,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1905,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1906,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1907,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1908,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1909,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1910,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1911,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1912,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1913,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1914,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1915,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1916,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1917,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1918,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1919,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1920,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1921,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1922,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1923,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1924,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1925,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1926,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1927,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1928,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1929,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1930,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1931,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1932,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1934,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1935,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1936,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1937,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1938,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1939,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1940,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1941,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1943,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1945,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1946,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1947,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1948,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1949,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1950,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1952,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1953,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1954,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1955,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1956,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1957,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1958,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1960,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1961,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1962,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1963,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1964,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1966,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1967,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1969,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1971,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1973,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1974,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1975,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1976,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1977,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1978,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1979,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1981,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1982,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1984,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1985,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/file_lib_test.c:1988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1991
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/file_lib_test.c
    functionUses: 1
    functionsReached:
    - unit_test
    - getuid
    - try_gaining_root_privileges
    - run_tests
    - PRINT_TEST_BANNER
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:11,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:12,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:13,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:14,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:18,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:20,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 21
    functionName: test_initList
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ListNew
    - assert_true
    - assert_int_not_equal
    - ListDestroy
    linkageType: ''
    returnType: void
    signature: void test_initList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/libntech/tests/unit/list_test.c:28,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/list_test.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - element
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: testDestroyer
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - free
    - printf
    linkageType: ''
    returnType: void
    signature: void testDestroyer(void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:35,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:36,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:37,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:40,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:41,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:42,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:44,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:45,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:47,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:48,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:49,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:53,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:53,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:55,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:55,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:57,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:59,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:59,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:62,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 63
    functionName: test_destroyer
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - ListPrepend
    - assert_int_equal
    - ListNew
    - assert_true
    - assert_int_not_equal
    - xstrdup
    - ListDestroy
    linkageType: ''
    returnType: void
    signature: void test_destroyer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:68,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:69,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:70,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:71,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:72,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:73,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:74,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:75,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:76,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:77,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:78,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:80,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:81,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:87,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:87,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:89,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:91,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:93,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:94,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:96,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:98,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:101,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:101,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:103,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:104,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:105,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:106,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:107,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:108,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:109,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:110,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:113,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 114
    functionName: test_prependToList
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - ListPrepend
    - assert_int_equal
    - assert_false
    - ListNew
    - assert_true
    - assert_int_not_equal
    - xstrdup
    - ListDestroy
    linkageType: ''
    returnType: void
    signature: void test_prependToList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:119,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:120,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:121,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:122,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:123,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:124,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:125,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:126,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:128,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:129,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:133,1
    - Dst: ListAppend
      Src: /src/core/libntech/tests/unit/list_test.c:133,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:135,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:137,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:138,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:139,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:140,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:141,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:143,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:146,1
    - Dst: ListAppend
      Src: /src/core/libntech/tests/unit/list_test.c:146,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:148,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:149,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:150,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:151,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:152,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:153,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:154,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:155,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:158,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 159
    functionName: test_appendToList
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - assert_false
    - ListNew
    - assert_true
    - assert_int_not_equal
    - xstrdup
    - ListAppend
    - ListDestroy
    linkageType: ''
    returnType: void
    signature: void test_appendToList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/list_test.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: compareFunction
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compareFunction(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - d
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: copyFunction
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void copyFunction(const void *s, void **d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:180,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:181,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:182,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:183,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:184,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:185,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:186,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:187,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:188,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:189,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:190,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:192,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:193,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:194,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:195,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:196,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:204,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:204,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:206,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:208,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:210,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:211,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:213,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:215,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:218,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:218,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:220,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:221,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:222,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:223,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:224,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:226,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:227,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:228,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:229,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:232,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:232,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:234,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:235,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:236,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:237,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:238,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:240,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:241,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:242,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:243,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:246,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:246,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:248,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:249,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:250,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:251,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:252,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:253,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:254,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:255,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:256,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:259,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:259,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:260,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:261,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:262,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:263,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:264,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:265,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:266,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:267,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:268,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:271,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:271,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:273,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:274,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:275,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:276,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:277,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:278,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:279,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:280,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:281,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:284,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:284,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:286,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:287,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:288,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:289,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:290,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:291,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:292,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:293,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:294,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:297,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:297,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:299,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:300,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:301,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:302,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:303,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:304,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:305,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:306,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:307,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:310,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:310,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:312,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:313,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:314,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:315,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:316,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:319,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:319,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/list_test.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 321
    functionName: test_removeFromList
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - ListPrepend
    - assert_int_equal
    - assert_false
    - ListNew
    - assert_true
    - assert_int_not_equal
    - ListRemove
    - xstrdup
    - free
    - ListDestroy
    linkageType: ''
    returnType: void
    signature: void test_removeFromList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:326,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:327,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:328,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:329,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:330,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:331,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:332,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:333,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:336,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:336,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 338
    functionName: test_destroyList
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ListNew
    - assert_true
    - assert_int_not_equal
    - ListDestroy
    linkageType: ''
    returnType: void
    signature: void test_destroyList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:349,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:350,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:351,1
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:353,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:354,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:355,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:356,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:357,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:358,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:359,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:360,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:361,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:361,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:362,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:362,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:366,1
    - Dst: ListCopy
      Src: /src/core/libntech/tests/unit/list_test.c:366,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:367,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:367,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:368,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:369,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:369,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:373,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:373,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:374,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:374,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:375,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:380,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:380,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:381,1
    - Dst: ListCopy
      Src: /src/core/libntech/tests/unit/list_test.c:381,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:382,1
    - Dst: ListCopy
      Src: /src/core/libntech/tests/unit/list_test.c:382,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:383,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:383,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:384,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:384,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:385,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:385,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:386,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:387,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:388,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:389,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:389,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:390,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:390,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:391,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:391,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:392,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:392,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:393,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:394,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:395,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:397,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:397,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:398,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:398,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:399,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:399,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:400,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:400,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:406,1
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:408,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:409,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:410,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:411,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:412,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:413,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:414,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:415,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:416,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:416,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:417,1
    - Dst: ListCount
      Src: /src/core/libntech/tests/unit/list_test.c:417,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:421,1
    - Dst: ListCopy
      Src: /src/core/libntech/tests/unit/list_test.c:421,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:422,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:424,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 425
    functionName: test_copyList
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - ListPrepend
    - assert_int_equal
    - assert_false
    - ListNew
    - assert_true
    - assert_int_not_equal
    - ListRemove
    - xstrdup
    - ListDestroy
    - ListCount
    - ListCopy
    linkageType: ''
    returnType: void
    signature: void test_copyList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:430,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:431,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:432,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:433,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:434,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:435,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:436,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:437,1
    - Dst: ListIteratorGet
      Src: /src/core/libntech/tests/unit/list_test.c:440,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:441,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:442,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:443,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:444,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:445,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:452,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:452,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:454,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:456,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:457,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:458,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:459,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:460,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:461,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:464,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:464,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:466,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:467,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:468,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:470,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:471,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:472,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:473,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:474,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:477,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:477,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:479,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:480,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:481,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:483,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:484,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:485,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:486,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:487,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:490,1
    - Dst: ListPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:490,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:492,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:493,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:494,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:496,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:497,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:498,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:499,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:500,1
    - Dst: ListIteratorGet
      Src: /src/core/libntech/tests/unit/list_test.c:503,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:505,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:506,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:507,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:508,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:511,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:511,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:513,1
    - Dst: ListIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:513,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:515,1
    - Dst: ListIteratorDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:515,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:516,1
    - Dst: ListIteratorGet
      Src: /src/core/libntech/tests/unit/list_test.c:520,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:522,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:523,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:524,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:525,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:527,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:528,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:531,1
    - Dst: ListIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:531,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:533,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:534,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:537,1
    - Dst: ListIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:537,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:539,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:540,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:543,1
    - Dst: ListIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:543,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:545,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:546,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:549,1
    - Dst: ListIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:549,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:551,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:552,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:555,1
    - Dst: ListIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:555,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:557,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:558,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:561,1
    - Dst: ListIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:561,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:563,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:564,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:567,1
    - Dst: ListIteratorLast
      Src: /src/core/libntech/tests/unit/list_test.c:567,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:569,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:570,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:573,1
    - Dst: ListIteratorHasPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:573,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:574,1
    - Dst: ListIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:574,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:576,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:577,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:580,1
    - Dst: ListIteratorFirst
      Src: /src/core/libntech/tests/unit/list_test.c:580,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:582,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:583,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:586,1
    - Dst: ListIteratorHasNext
      Src: /src/core/libntech/tests/unit/list_test.c:586,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:587,1
    - Dst: ListIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:587,1
    - Dst: ListIteratorData
      Src: /src/core/libntech/tests/unit/list_test.c:589,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:590,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:593,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:593,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:594,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:594,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:595,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:595,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:598,1
    - Dst: ListIteratorDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:598,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:600,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 601
    functionName: test_iterator
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - ListPrepend
    - assert_int_equal
    - assert_false
    - ListIteratorHasNext
    - ListNew
    - ListIteratorHasPrevious
    - assert_true
    - ListIteratorData
    - ListIteratorLast
    - assert_int_not_equal
    - ListRemove
    - ListIteratorDestroy
    - ListIteratorPrevious
    - xstrdup
    - ListDestroy
    - ListIteratorFirst
    - ListIteratorGet
    - ListIteratorNext
    linkageType: ''
    returnType: void
    signature: void test_iterator(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListNew
      Src: /src/core/libntech/tests/unit/list_test.c:606,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:607,1
    - Dst: assert_int_not_equal
      Src: /src/core/libntech/tests/unit/list_test.c:608,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:609,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:610,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:611,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:612,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:613,1
    - Dst: ListMutableIteratorGet
      Src: /src/core/libntech/tests/unit/list_test.c:616,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:617,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:618,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:619,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:620,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:621,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:622,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:623,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:624,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/list_test.c:625,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:628,1
    - Dst: ListAppend
      Src: /src/core/libntech/tests/unit/list_test.c:628,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:630,1
    - Dst: ListAppend
      Src: /src/core/libntech/tests/unit/list_test.c:630,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:632,1
    - Dst: ListAppend
      Src: /src/core/libntech/tests/unit/list_test.c:632,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:634,1
    - Dst: ListAppend
      Src: /src/core/libntech/tests/unit/list_test.c:634,1
    - Dst: ListIteratorGet
      Src: /src/core/libntech/tests/unit/list_test.c:638,1
    - Dst: ListMutableIteratorGet
      Src: /src/core/libntech/tests/unit/list_test.c:641,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:642,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:644,1
    - Dst: ListMutableIteratorGet
      Src: /src/core/libntech/tests/unit/list_test.c:646,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:647,1
    - Dst: ListMutableIteratorHasNext
      Src: /src/core/libntech/tests/unit/list_test.c:649,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:651,1
    - Dst: ListMutableIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:651,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:653,1
    - Dst: ListMutableIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:653,1
    - Dst: ListMutableIteratorHasPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:655,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:657,1
    - Dst: ListMutableIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:657,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:659,1
    - Dst: ListMutableIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:659,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:661,1
    - Dst: ListMutableIteratorLast
      Src: /src/core/libntech/tests/unit/list_test.c:661,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:663,1
    - Dst: ListMutableIteratorFirst
      Src: /src/core/libntech/tests/unit/list_test.c:663,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:665,1
    - Dst: ListMutableIteratorPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:665,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:666,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:668,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:670,1
    - Dst: ListMutableIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:670,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:672,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:674,1
    - Dst: ListMutableIteratorAppend
      Src: /src/core/libntech/tests/unit/list_test.c:674,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:675,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:677,1
    - Dst: ListMutableIteratorHasNext
      Src: /src/core/libntech/tests/unit/list_test.c:679,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:681,1
    - Dst: ListMutableIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:681,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:683,1
    - Dst: ListMutableIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:683,1
    - Dst: ListMutableIteratorHasPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:685,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:687,1
    - Dst: ListMutableIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:687,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:689,1
    - Dst: ListMutableIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:689,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:691,1
    - Dst: ListMutableIteratorLast
      Src: /src/core/libntech/tests/unit/list_test.c:691,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:693,1
    - Dst: ListMutableIteratorFirst
      Src: /src/core/libntech/tests/unit/list_test.c:693,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:695,1
    - Dst: ListMutableIteratorLast
      Src: /src/core/libntech/tests/unit/list_test.c:695,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:697,1
    - Dst: ListMutableIteratorAppend
      Src: /src/core/libntech/tests/unit/list_test.c:697,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:698,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:700,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:702,1
    - Dst: ListMutableIteratorNext
      Src: /src/core/libntech/tests/unit/list_test.c:702,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:704,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:706,1
    - Dst: ListMutableIteratorPrepend
      Src: /src/core/libntech/tests/unit/list_test.c:706,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:707,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:709,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:711,1
    - Dst: ListMutableIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:711,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/list_test.c:713,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:715,1
    - Dst: ListMutableIteratorRemove
      Src: /src/core/libntech/tests/unit/list_test.c:715,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:717,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/list_test.c:719,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:720,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:722,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:724,1
    - Dst: ListMutableIteratorRemove
      Src: /src/core/libntech/tests/unit/list_test.c:724,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:726,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/list_test.c:728,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:729,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:731,1
    - Dst: ListMutableIteratorFirst
      Src: /src/core/libntech/tests/unit/list_test.c:731,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:733,1
    - Dst: ListMutableIteratorRemove
      Src: /src/core/libntech/tests/unit/list_test.c:733,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:735,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/list_test.c:737,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:738,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:740,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:740,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:741,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/list_test.c:743,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:744,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:746,1
    - Dst: ListMutableIteratorLast
      Src: /src/core/libntech/tests/unit/list_test.c:746,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/list_test.c:748,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:750,1
    - Dst: ListMutableIteratorPrevious
      Src: /src/core/libntech/tests/unit/list_test.c:750,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:751,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:751,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:752,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/list_test.c:753,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:754,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:756,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:756,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:757,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/list_test.c:758,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:759,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:761,1
    - Dst: ListMutableIteratorFirst
      Src: /src/core/libntech/tests/unit/list_test.c:761,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:763,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:763,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:764,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/list_test.c:765,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:766,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/list_test.c:767,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:769,1
    - Dst: ListMutableIteratorRemove
      Src: /src/core/libntech/tests/unit/list_test.c:769,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:771,1
    - Dst: ListRemove
      Src: /src/core/libntech/tests/unit/list_test.c:771,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/list_test.c:772,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:774,1
    - Dst: ListMutableIteratorRelease
      Src: /src/core/libntech/tests/unit/list_test.c:774,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:775,1
    - Dst: ListIteratorDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:775,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/list_test.c:776,1
    - Dst: ListDestroy
      Src: /src/core/libntech/tests/unit/list_test.c:776,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 777
    functionName: test_mutableIterator
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 0
    functionsReached:
    - ListMutableIteratorLast
    - assert_false
    - ListMutableIteratorRemove
    - ListMutableIteratorPrepend
    - ListDestroy
    - ListIteratorGet
    - ListMutableIteratorRelease
    - ListMutableIteratorFirst
    - ListMutableIteratorNext
    - ListMutableIteratorPrevious
    - ListMutableIteratorAppend
    - ListRemove
    - assert_string_equal
    - xstrdup
    - ListAppend
    - ListMutableIteratorHasPrevious
    - ListMutableIteratorGet
    - ListNew
    - ListIteratorDestroy
    - ListMutableIteratorHasNext
    - assert_int_equal
    - assert_true
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void test_mutableIterator(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/list_test.c:781,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/list_test.c:784,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/list_test.c:785,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/list_test.c:786,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/list_test.c:787,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/list_test.c:788,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/list_test.c:789,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/list_test.c:790,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/list_test.c:791,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/list_test.c:792,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/list_test.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 796
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/list_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:23,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:24,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:27,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:28,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:32,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:33,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:38,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:38,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:38,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:39,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:44,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:44,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:44,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:45,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:50,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:50,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:50,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:51,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:56,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:56,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:56,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:57,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:62,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:62,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:62,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:63,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:68,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:68,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:69,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:74,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:74,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:74,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:75,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:80,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:80,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:80,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:81,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:86,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:86,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:87,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:92,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:92,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:92,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:93,1
    - Dst: memmem
      Src: /src/core/libntech/tests/unit/libcompat_test.c:98,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:98,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/libcompat_test.c:98,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/libcompat_test.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 100
    functionName: test_memmem
    functionSourceFile: /src/core/libntech/tests/unit/libcompat_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - memmem
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_memmem()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf_rigorous_test
      Src: /src/core/libntech/tests/unit/libcompat_test.c:105,1
    - Dst: puts
      Src: /src/core/libntech/tests/unit/libcompat_test.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: test_snprintf
    functionSourceFile: /src/core/libntech/tests/unit/libcompat_test.c
    functionUses: 0
    functionsReached:
    - puts
    - snprintf_rigorous_test
    linkageType: ''
    returnType: void
    signature: void test_snprintf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/libcompat_test.c:122,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/libcompat_test.c:125,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/libcompat_test.c:126,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/libcompat_test.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/libcompat_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: cast_to_largest_integral_type
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cast_to_largest_integral_type(value)
  - 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: mock
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - function
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: will_return
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: will_return(function, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - value
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: will_return_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: will_return_count(function, value, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - check_function
    - ','
    - check_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: expect_check
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_check(function, parameter, check_function, check_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value_array
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: expect_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_in_set(function, parameter, value_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value_array
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: expect_in_set_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_in_set_count(function, parameter, value_array, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value_array
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: expect_not_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_in_set(function, parameter, value_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value_array
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: expect_not_in_set_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_in_set_count(function, parameter, value_array, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - minimum
    - ','
    - maximum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: expect_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_in_range(function, parameter, minimum, maximum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - minimum
    - ','
    - maximum
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: expect_in_range_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_in_range_count(function, parameter, minimum, maximum, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - minimum
    - ','
    - maximum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: expect_not_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_in_range(function, parameter, minimum, maximum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - minimum
    - ','
    - maximum
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: expect_not_in_range_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "expect_not_in_range_count(function, parameter, minimum, maximum, \\\n
      \                                 count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: expect_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_value(function, parameter, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: expect_value_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_value_count(function, parameter, value, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: expect_not_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_value(function, parameter, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - value
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: expect_not_value_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_value_count(function, parameter, value, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: expect_string
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_string(function, parameter, string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - string
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: expect_string_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_string_count(function, parameter, string, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: expect_not_string
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_string(function, parameter, string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - string
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: expect_not_string_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_string_count(function, parameter, string, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - memory
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: expect_memory
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_memory(function, parameter, memory, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - memory
    - ','
    - size
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: expect_memory_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_memory_count(function, parameter, memory, size, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - memory
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: expect_not_memory
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_memory(function, parameter, memory, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - memory
    - ','
    - size
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: expect_not_memory_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_not_memory_count(function, parameter, memory, size, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - function
    - ','
    - parameter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: expect_any
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_any(function, parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - function
    - ','
    - parameter
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: expect_any_count
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_any_count(function, parameter, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - parameter
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: check_expected
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_expected(parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: assert_true
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 304
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_true(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: assert_false
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 180
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_false(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: assert_int_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 492
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_equal(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: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: assert_int_not_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 59
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_not_equal(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: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: assert_string_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 316
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_string_equal(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: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: assert_string_not_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_string_not_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: assert_memory_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_memory_equal(a, b, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: assert_memory_not_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_memory_not_equal(a, b, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - minimum
    - ','
    - maximum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: assert_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_in_range(value, minimum, maximum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - minimum
    - ','
    - maximum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: assert_not_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_not_in_range(value, minimum, maximum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - values
    - ','
    - number_of_values
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: assert_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_in_set(value, values, number_of_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - values
    - ','
    - number_of_values
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: assert_not_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_not_in_set(value, values, number_of_values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: fail
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: run_test
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: run_test(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: unit_test
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: unit_test_with_state
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test_with_state(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - setup
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: unit_test_setup
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test_setup(test, setup)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test
    - ','
    - teardown
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: unit_test_teardown
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test_teardown(test, teardown)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - test
    - ','
    - setup
    - ','
    - teardown
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: unit_test_setup_teardown
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unit_test_setup_teardown(test, setup, teardown)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tests
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: run_tests
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 95
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: run_tests(tests)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: test_malloc
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_malloc(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: test_calloc
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_calloc(num, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: test_free
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_free(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - function_call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 323
    functionName: expect_assert_failure
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expect_assert_failure(function_call)
  - 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: ARRAY_LENGTH
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: declare_initialize_value_pointer_pointer
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_initialize_value_pointer_pointer(name, ptr)
  - 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: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: declare_initialize_value_pointer_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_initialize_value_pointer_value(name, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pointer_type
    - ','
    - largest_integral_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: cast_largest_integral_type_to_pointer
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "cast_largest_integral_type_to_pointer( \\\n    pointer_type, largest_integral_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception_code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: EXCEPTION_CODE_INFO
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXCEPTION_CODE_INFO(exception_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/core/libntech/tests/unit/cmockery.c:290,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/cmockery.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: exit_test
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 7
    functionsReached:
    - exit
    - longjmp
    linkageType: ''
    returnType: void
    signature: void exit_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/core/libntech/tests/unit/cmockery.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 306
    functionName: exit_test_no_app
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - longjmp
    linkageType: ''
    returnType: void
    signature: void exit_test_no_app(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - location
    argTypes:
    - SourceLocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: initialize_source_location
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: void
    signature: void initialize_source_location(SourceLocation *const location)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - location
    argTypes:
    - SourceLocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: source_location_is_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: int
    signature: int source_location_is_set(const SourceLocation *const location)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - location
    - file
    - line
    argTypes:
    - SourceLocation*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: set_source_location
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 3
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: void
    signature: void set_source_location(SourceLocation *const location, const char
      *const file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_initialize
      Src: /src/core/libntech/tests/unit/cmockery.c:335,1
    - Dst: initialize_source_location
      Src: /src/core/libntech/tests/unit/cmockery.c:336,1
    - Dst: list_initialize
      Src: /src/core/libntech/tests/unit/cmockery.c:337,1
    - Dst: initialize_source_location
      Src: /src/core/libntech/tests/unit/cmockery.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: initialize_testing
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - list_initialize
    - initialize_source_location
    linkageType: ''
    returnType: void
    signature: void initialize_testing(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remove_always_return_values
      Src: /src/core/libntech/tests/unit/cmockery.c:345,1
    - Dst: check_for_leftover_values
      Src: /src/core/libntech/tests/unit/cmockery.c:346,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:348,1
    - Dst: remove_always_return_values
      Src: /src/core/libntech/tests/unit/cmockery.c:355,1
    - Dst: check_for_leftover_values
      Src: /src/core/libntech/tests/unit/cmockery.c:356,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:359,1
    - Dst: exit_test
      Src: /src/core/libntech/tests/unit/cmockery.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 370
    functionName: fail_if_leftover_values
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - exit_test
    - remove_always_return_values
    - check_for_leftover_values
    - print_xml
    linkageType: ''
    returnType: void
    signature: void fail_if_leftover_values(const char *test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_free
      Src: /src/core/libntech/tests/unit/cmockery.c:374,1
    - Dst: initialize_source_location
      Src: /src/core/libntech/tests/unit/cmockery.c:375,1
    - Dst: list_free
      Src: /src/core/libntech/tests/unit/cmockery.c:376,1
    - Dst: initialize_source_location
      Src: /src/core/libntech/tests/unit/cmockery.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: teardown_testing
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - list_free
    - initialize_source_location
    linkageType: ''
    returnType: void
    signature: void teardown_testing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 388
    functionName: list_initialize
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_initialize(ListNode *const node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:394,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:396,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:397,1
    - Dst: list_add
      Src: /src/core/libntech/tests/unit/cmockery.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - head
    - value
    - refcount
    argTypes:
    - ListNode*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 401
    functionName: list_add_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - assert_true
    - list_add
    - malloc
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_add_value(ListNode *const head, const void *value, const
      int refcount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:406,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - head
    - new_node
    argTypes:
    - ListNode*
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: list_add
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 3
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_add(ListNode *const head, ListNode *new_node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:418,1
    - Dst: cleanup_value
      Src: /src/core/libntech/tests/unit/cmockery.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - node
    - cleanup_value
    - cleanup_value_data
    argTypes:
    - ListNode*
    - CleanupListValue
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 426
    functionName: list_remove
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - assert_true
    - cleanup_value
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_remove(ListNode *const node, const CleanupListValue
      cleanup_value, void *const cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:431,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/cmockery.c:432,1
    - Dst: list_remove
      Src: /src/core/libntech/tests/unit/cmockery.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - node
    - cleanup_value
    - cleanup_value_data
    argTypes:
    - ListNode*
    - CleanupListValue
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: list_remove_free
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 3
    functionsReached:
    - free
    - assert_true
    - list_remove
    linkageType: ''
    returnType: void
    signature: void list_remove_free(ListNode *const node, const CleanupListValue
      cleanup_value, void *const cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:443,1
    - Dst: list_empty
      Src: /src/core/libntech/tests/unit/cmockery.c:444,1
    - Dst: list_remove_free
      Src: /src/core/libntech/tests/unit/cmockery.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - head
    - cleanup_value
    - cleanup_value_data
    argTypes:
    - ListNode*
    - CleanupListValue
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: list_free
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 3
    functionsReached:
    - list_remove_free
    - assert_true
    - list_empty
    linkageType: ''
    returnType: ListNode
    signature: ListNode *list_free(ListNode *const head, const CleanupListValue cleanup_value,
      void *const cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - head
    argTypes:
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: list_empty
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 6
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: int
    signature: int list_empty(const ListNode *const head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:465,1
    - Dst: equal_func
      Src: /src/core/libntech/tests/unit/cmockery.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - head
    - value
    - equal_func
    - output
    argTypes:
    - ListNode*
    - void*
    - EqualityFunction
    - ListNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 475
    functionName: list_find
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - assert_true
    - equal_func
    linkageType: ''
    returnType: int
    signature: int list_find(ListNode *const head, const void *value, const EqualityFunction
      equal_func, ListNode **output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:482,1
    - Dst: list_empty
      Src: /src/core/libntech/tests/unit/cmockery.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - head
    - output
    argTypes:
    - ListNode*
    - ListNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 490
    functionName: list_first
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - assert_true
    - list_empty
    linkageType: ''
    returnType: int
    signature: int list_first(ListNode *const head, ListNode **output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:501,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/cmockery.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - cleanup_value_data
    argTypes:
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: free_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - free
    - assert_true
    linkageType: ''
    returnType: void
    signature: void free_value(const void *value, ARG_UNUSED void *cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:511,1
    - Dst: list_free
      Src: /src/core/libntech/tests/unit/cmockery.c:512,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/cmockery.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - cleanup_value_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 515
    functionName: free_symbol_map_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - free
    - assert_true
    - list_free
    linkageType: ''
    returnType: void
    signature: void free_symbol_map_value(const void *value, void *cleanup_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/cmockery.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map_value
    - symbol
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: symbol_names_match
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int symbol_names_match(const void *map_value, const void *symbol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:535,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:536,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:537,1
    - Dst: list_find
      Src: /src/core/libntech/tests/unit/cmockery.c:540,1
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:542,1
    - Dst: list_initialize
      Src: /src/core/libntech/tests/unit/cmockery.c:545,1
    - Dst: list_add_value
      Src: /src/core/libntech/tests/unit/cmockery.c:546,1
    - Dst: list_add_value
      Src: /src/core/libntech/tests/unit/cmockery.c:552,1
    - Dst: add_symbol_value
      Src: /src/core/libntech/tests/unit/cmockery.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - symbol_map_head
    - symbol_names
    - number_of_symbol_names
    - value
    - refcount
    argTypes:
    - ListNode*
    - char*[]
    - size_t
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 559
    functionName: add_symbol_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 4
    functionsReached:
    - list_add_value
    - assert_true
    - list_initialize
    - malloc
    - list_find
    - add_symbol_value
    linkageType: ''
    returnType: void
    signature: "void add_symbol_value(ListNode *const symbol_map_head,\n                             const
      char *const symbol_names[],\n                             const size_t number_of_symbol_names,
      const void *value, const int refcount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:573,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:574,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:575,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:576,1
    - Dst: list_find
      Src: /src/core/libntech/tests/unit/cmockery.c:579,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:585,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:586,1
    - Dst: list_first
      Src: /src/core/libntech/tests/unit/cmockery.c:595,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:596,1
    - Dst: list_remove_free
      Src: /src/core/libntech/tests/unit/cmockery.c:601,1
    - Dst: get_symbol_value
      Src: /src/core/libntech/tests/unit/cmockery.c:606,1
    - Dst: list_empty
      Src: /src/core/libntech/tests/unit/cmockery.c:608,1
    - Dst: list_remove_free
      Src: /src/core/libntech/tests/unit/cmockery.c:610,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - head
    - symbol_names
    - number_of_symbol_names
    - output
    argTypes:
    - ListNode*
    - char*[]
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 619
    functionName: get_symbol_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 4
    functionsReached:
    - print_error
    - get_symbol_value
    - assert_true
    - list_find
    - list_remove_free
    - list_first
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int get_symbol_value(ListNode *const head, const char *const symbol_names[],\n
      \                           const size_t number_of_symbol_names, void **output)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:629,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:630,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:638,1
    - Dst: list_empty
      Src: /src/core/libntech/tests/unit/cmockery.c:641,1
    - Dst: list_remove_free
      Src: /src/core/libntech/tests/unit/cmockery.c:650,1
    - Dst: remove_always_return_values
      Src: /src/core/libntech/tests/unit/cmockery.c:655,1
    - Dst: list_empty
      Src: /src/core/libntech/tests/unit/cmockery.c:659,1
    - Dst: list_remove_free
      Src: /src/core/libntech/tests/unit/cmockery.c:661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - map_head
    - number_of_symbol_names
    argTypes:
    - ListNode*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 665
    functionName: remove_always_return_values
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 4
    functionsReached:
    - list_remove_free
    - assert_true
    - list_empty
    - remove_always_return_values
    linkageType: ''
    returnType: void
    signature: void remove_always_return_values(ListNode *const map_head, const size_t
      number_of_symbol_names)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:676,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:677,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:684,1
    - Dst: list_empty
      Src: /src/core/libntech/tests/unit/cmockery.c:687,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:693,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:694,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:700,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:705,1
    - Dst: check_for_leftover_values
      Src: /src/core/libntech/tests/unit/cmockery.c:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - map_head
    - error_message
    - number_of_symbol_names
    argTypes:
    - ListNode*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 712
    functionName: check_for_leftover_values
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 4
    functionsReached:
    - print_error
    - assert_true
    - list_empty
    - check_for_leftover_values
    linkageType: ''
    returnType: int
    signature: "int check_for_leftover_values(const ListNode *const map_head, const
      char *const error_message,\n                                     const size_t
      number_of_symbol_names)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/tests/unit/cmockery.c:719,1
    - Dst: va_arg
      Src: /src/core/libntech/tests/unit/cmockery.c:722,1
    - Dst: va_arg
      Src: /src/core/libntech/tests/unit/cmockery.c:726,1
    - Dst: va_arg
      Src: /src/core/libntech/tests/unit/cmockery.c:730,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/cmockery.c:734,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/cmockery.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts:
    - condition: (size <= sizeof(LargestIntegralType))
      pos:
        line_end: 733
        line_start: 733
        source_file: /src/core/libntech/tests/unit/cmockery.c
    constantsTouched: []
    func_position:
      end: 739
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 739
    functionName: _cast_to_largest_integral_type
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - va_arg
    - assert
    - exit
    - va_start
    linkageType: ''
    returnType: LargestIntegralType
    signature: LargestIntegralType _cast_to_largest_integral_type(size_t size, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_symbol_value
      Src: /src/core/libntech/tests/unit/cmockery.c:745,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/cmockery.c:755,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:761,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:763,1
    - Dst: source_location_is_set
      Src: /src/core/libntech/tests/unit/cmockery.c:767,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:769,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:772,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:779,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:780,1
    - Dst: exit_test
      Src: /src/core/libntech/tests/unit/cmockery.c:784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - function
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 787
    functionName: _mock
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - source_location_is_set
    - get_symbol_value
    - exit_test
    - free
    - print_xml
    linkageType: ''
    returnType: LargestIntegralType
    signature: LargestIntegralType _mock(const char *const function, const char *const
      file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:793,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:795,1
    - Dst: set_source_location
      Src: /src/core/libntech/tests/unit/cmockery.c:797,1
    - Dst: add_symbol_value
      Src: /src/core/libntech/tests/unit/cmockery.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - function_name
    - file
    - line
    - value
    - count
    argTypes:
    - char*
    - char*
    - int
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 799
    functionName: _will_return
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - add_symbol_value
    - assert_true
    - malloc
    - set_source_location
    linkageType: ''
    returnType: void
    signature: "void _will_return(const char *const function_name, const char *const
      file,\n                  const int line, const LargestIntegralType value, const
      int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:811,1
    - Dst: set_source_location
      Src: /src/core/libntech/tests/unit/cmockery.c:816,1
    - Dst: add_symbol_value
      Src: /src/core/libntech/tests/unit/cmockery.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 8
    argNames:
    - function
    - parameter
    - file
    - line
    - check_function
    - check_data
    - event
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - CheckParameterValue
    - LargestIntegralType
    - CheckParameterEvent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 818
    functionName: _expect_check
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 8
    functionsReached:
    - add_symbol_value
    - malloc
    - set_source_location
    linkageType: ''
    returnType: void
    signature: "void _expect_check(const char *const function, const char *const parameter,\n
      \                  const char *const file, const int line,\n                   const
      CheckParameterValue check_function,\n                   const LargestIntegralType
      check_data, CheckParameterEvent *const event, const int count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 831
    functionName: values_equal_display_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: int values_equal_display_error(const LargestIntegralType left, const
      LargestIntegralType right)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 844
    functionName: values_not_equal_display_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: int values_not_equal_display_error(const LargestIntegralType left,
      const LargestIntegralType right)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:856,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:876,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:880,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:882,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - value
    - check_integer_set
    - invert
    argTypes:
    - LargestIntegralType
    - CheckIntegerSet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 885
    functionName: value_in_set_display_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 4
    functionsReached:
    - print_error
    - assert_true
    linkageType: ''
    returnType: int
    signature: "int value_in_set_display_error(const LargestIntegralType value,\n
      \                                     const CheckIntegerSet *const check_integer_set,
      const int invert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - value
    - range_min
    - range_max
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 901
    functionName: integer_in_range_display_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: "int integer_in_range_display_error(const LargestIntegralType value,
      const LargestIntegralType range_min,\n                                          const
      LargestIntegralType range_max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - value
    - range_min
    - range_max
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 917
    functionName: integer_not_in_range_display_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: "int integer_not_in_range_display_error(const LargestIntegralType value,
      const LargestIntegralType range_min,\n                                              const
      LargestIntegralType range_max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/cmockery.c:924,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 930
    functionName: string_equal_display_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    - strcmp
    linkageType: ''
    returnType: int
    signature: int string_equal_display_error(const char *const left, const char *const
      right)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/cmockery.c:937,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 943
    functionName: string_not_equal_display_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    - strcmp
    linkageType: ''
    returnType: int
    signature: int string_not_equal_display_error(const char *const left, const char
      *const right)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:959,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - a
    - b
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 969
    functionName: memory_equal_display_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: int memory_equal_display_error(const char *const a, const char *const
      b, const size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - a
    - b
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 995
    functionName: memory_not_equal_display_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    linkageType: ''
    returnType: int
    signature: int memory_not_equal_display_error(const char *const a, const char
      *const b, const size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_in_set_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1000,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1002
    functionName: check_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - value_in_set_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_in_set(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_in_set_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1007,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1009
    functionName: check_not_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - value_in_set_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_not_in_set(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:1019,1
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1022,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1023,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1024,1
    - Dst: memcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1025,1
    - Dst: _expect_check
      Src: /src/core/libntech/tests/unit/cmockery.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - function
    - parameter
    - file
    - line
    - values
    - number_of_values
    - check_function
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType[]
    - size_t
    - CheckParameterValue
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1028
    functionName: expect_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - memcpy
    - _expect_check
    - assert_true
    - declare_initialize_value_pointer_pointer
    - malloc
    linkageType: ''
    returnType: void
    signature: "void expect_set(const char *const function, const char *const parameter,\n
      \                      const char *const file, const int line,\n                       const
      LargestIntegralType values[], const size_t number_of_values,\n                       const
      CheckParameterValue check_function, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_set
      Src: /src/core/libntech/tests/unit/cmockery.c:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - values
    - number_of_values
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType[]
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1036
    functionName: _expect_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_set
    linkageType: ''
    returnType: void
    signature: "void _expect_in_set(const char *const function, const char *const
      parameter,\n                    const char *const file, const int line,\n                    const
      LargestIntegralType values[], const size_t number_of_values, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_set
      Src: /src/core/libntech/tests/unit/cmockery.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - values
    - number_of_values
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType[]
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1044
    functionName: _expect_not_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_set
    linkageType: ''
    returnType: void
    signature: "void _expect_not_in_set(const char *const function, const char *const
      parameter,\n                        const char *const file, const int line,\n
      \                       const LargestIntegralType values[], const size_t number_of_values,
      const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1049,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1052,1
    - Dst: integer_in_range_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1054
    functionName: check_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - integer_in_range_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_in_range(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1059,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1062,1
    - Dst: integer_not_in_range_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1064
    functionName: check_not_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - integer_not_in_range_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_not_in_range(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:1073,1
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1075,1
    - Dst: _expect_check
      Src: /src/core/libntech/tests/unit/cmockery.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - function
    - parameter
    - file
    - line
    - minimum
    - maximum
    - check_function
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - LargestIntegralType
    - CheckParameterValue
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1080
    functionName: expect_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - declare_initialize_value_pointer_pointer
    - malloc
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void expect_range(const char *const function, const char *const parameter,\n
      \                        const char *const file, const int line,\n                         const
      LargestIntegralType minimum, const LargestIntegralType maximum,\n                         const
      CheckParameterValue check_function, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_range
      Src: /src/core/libntech/tests/unit/cmockery.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - minimum
    - maximum
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1088
    functionName: _expect_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_range
    linkageType: ''
    returnType: void
    signature: "void _expect_in_range(const char *const function, const char *const
      parameter,\n                      const char *const file, const int line,\n
      \                     const LargestIntegralType minimum, const LargestIntegralType
      maximum, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_range
      Src: /src/core/libntech/tests/unit/cmockery.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - minimum
    - maximum
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1096
    functionName: _expect_not_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_range
    linkageType: ''
    returnType: void
    signature: "void _expect_not_in_range(const char *const function, const char *const
      parameter,\n                          const char *const file, const int line,\n
      \                         const LargestIntegralType minimum, const LargestIntegralType
      maximum, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: values_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1103
    functionName: check_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - values_equal_display_error
    linkageType: ''
    returnType: int
    signature: int check_value(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _expect_check
      Src: /src/core/libntech/tests/unit/cmockery.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - function
    - parameter
    - file
    - line
    - value
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1110
    functionName: _expect_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_value(const char *const function, const char *const parameter,\n
      \                  const char *const file, const int line, const LargestIntegralType
      value, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: values_not_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1117
    functionName: check_not_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - values_not_equal_display_error
    linkageType: ''
    returnType: int
    signature: int check_not_value(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _expect_check
      Src: /src/core/libntech/tests/unit/cmockery.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - function
    - parameter
    - file
    - line
    - value
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1124
    functionName: _expect_not_value
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_not_value(const char *const function, const char *const
      parameter,\n                       const char *const file, const int line, const
      LargestIntegralType value, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1129,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1129,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1131
    functionName: check_string
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - string_equal_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_string(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1137,1
    - Dst: _expect_check
      Src: /src/core/libntech/tests/unit/cmockery.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - function
    - parameter
    - file
    - line
    - string
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1139
    functionName: _expect_string
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - declare_initialize_value_pointer_pointer
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_string(const char *const function, const char *const
      parameter,\n                    const char *const file, const int line, const
      char *string, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_not_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1145,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1145,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1147
    functionName: check_not_string
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - string_not_equal_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_not_string(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1153,1
    - Dst: _expect_check
      Src: /src/core/libntech/tests/unit/cmockery.c:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - function
    - parameter
    - file
    - line
    - string
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1155
    functionName: _expect_not_string
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - declare_initialize_value_pointer_pointer
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_not_string(const char *const function, const char *const
      parameter,\n                        const char *const file, const int line,
      const char *string, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1161,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1163,1
    - Dst: memory_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1164,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1165
    functionName: check_memory
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - memory_equal_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_memory(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:1174,1
    - Dst: declare_initialize_value_pointer_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1177,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1178,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1179,1
    - Dst: memcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1180,1
    - Dst: _expect_check
      Src: /src/core/libntech/tests/unit/cmockery.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 8
    argNames:
    - function
    - parameter
    - file
    - line
    - memory
    - size
    - check_function
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - void*
    - size_t
    - CheckParameterValue
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1184
    functionName: expect_memory_setup
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - memcpy
    - _expect_check
    - assert_true
    - declare_initialize_value_pointer_pointer
    - malloc
    linkageType: ''
    returnType: void
    signature: "void expect_memory_setup(const char *const function, const char *const
      parameter,\n                                const char *const file, const int
      line,\n                                const void *const memory, const size_t
      size,\n                                const CheckParameterValue check_function,
      const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_memory_setup
      Src: /src/core/libntech/tests/unit/cmockery.c:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - memory
    - size
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1192
    functionName: _expect_memory
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_memory_setup
    linkageType: ''
    returnType: void
    signature: "void _expect_memory(const char *const function, const char *const
      parameter,\n                    const char *const file, const int line, const
      void *const memory,\n                    const size_t size, const int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1198,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1200,1
    - Dst: memory_not_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1201,1
    - Dst: cast_largest_integral_type_to_pointer
      Src: /src/core/libntech/tests/unit/cmockery.c:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - value
    - check_value_data
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1203
    functionName: check_not_memory
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - assert_true
    - memory_not_equal_display_error
    - cast_largest_integral_type_to_pointer
    linkageType: ''
    returnType: int
    signature: int check_not_memory(const LargestIntegralType value, const LargestIntegralType
      check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expect_memory_setup
      Src: /src/core/libntech/tests/unit/cmockery.c:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - function
    - parameter
    - file
    - line
    - memory
    - size
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1211
    functionName: _expect_not_memory
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - expect_memory_setup
    linkageType: ''
    returnType: void
    signature: "void _expect_not_memory(const char *const function, const char *const
      parameter,\n                        const char *const file, const int line,
      const void *const memory,\n                        const size_t size, const
      int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LargestIntegralType
    - LargestIntegralType check_value_data
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1217
    functionName: check_any
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_any(ARG_UNUSED const LargestIntegralType value, ARG_UNUSED
      const LargestIntegralType check_value_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _expect_check
      Src: /src/core/libntech/tests/unit/cmockery.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - function
    - parameter
    - file
    - line
    - count
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1224
    functionName: _expect_any
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _expect_check
    linkageType: ''
    returnType: void
    signature: "void _expect_any(const char *const function, const char *const parameter,\n
      \                const char *const file, const int line, const int count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_symbol_value
      Src: /src/core/libntech/tests/unit/cmockery.c:1231,1
    - Dst: CheckParameterEvent*::check_value
      Src: /src/core/libntech/tests/unit/cmockery.c:1239,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/cmockery.c:1242,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1247,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1252,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1260,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1265,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1267,1
    - Dst: source_location_is_set
      Src: /src/core/libntech/tests/unit/cmockery.c:1271,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1273,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1276,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1283,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1284,1
    - Dst: exit_test
      Src: /src/core/libntech/tests/unit/cmockery.c:1288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 5
    argNames:
    - function_name
    - parameter_name
    - file
    - line
    - value
    argTypes:
    - char*
    - char*
    - char*
    - int
    - LargestIntegralType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1290
    functionName: _check_expected
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - source_location_is_set
    - get_symbol_value
    - CheckParameterEvent*::check_value
    - exit_test
    - free
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _check_expected(const char *const function_name, const char *const
      parameter_name,\n                     const char *file, const int line, const
      LargestIntegralType value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/core/libntech/tests/unit/cmockery.c:1300,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1305,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1306,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - result
    - expression
    - file
    - line
    argTypes:
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1310
    functionName: mock_assert
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    - _fail
    - longjmp
    - print_xml
    linkageType: ''
    returnType: void
    signature: void mock_assert(const int result, const char *const expression, const
      char *const file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1318,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1319,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - result
    - expression
    - file
    - line
    argTypes:
    - LargestIntegralType
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1322
    functionName: _assert_true
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - print_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_true(const LargestIntegralType result,\n                  const
      char *const expression, const char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: values_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1326,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1329,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - a
    - b
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1324
    functionDepth: 0
    functionLinenumber: 1324
    functionLinenumberEnd: 1332
    functionName: _assert_int_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - values_equal_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: void _assert_int_equal(const LargestIntegralType a, const LargestIntegralType
      b, const char *const file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: values_not_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1337,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1340,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - a
    - b
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1343
    functionName: _assert_int_not_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - values_not_equal_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_int_not_equal(const LargestIntegralType a, const LargestIntegralType
      b,\n                           const char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1347,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1350,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - a
    - b
    - file
    - line
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1353
    functionName: _assert_string_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - string_equal_display_error
    - print_xml
    linkageType: ''
    returnType: void
    signature: void _assert_string_equal(const char *const a, const char *const b,
      const char *const file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: string_not_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1357,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1360,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - a
    - b
    - file
    - line
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1355
    functionDepth: 0
    functionLinenumber: 1355
    functionLinenumberEnd: 1363
    functionName: _assert_string_not_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - string_not_equal_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: void _assert_string_not_equal(const char *const a, const char *const
      b, const char *file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1368,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1371,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - a
    - b
    - size
    - file
    - line
    argTypes:
    - void*
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1374
    functionName: _assert_memory_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - print_xml
    - memory_equal_display_error
    linkageType: ''
    returnType: void
    signature: "void _assert_memory_equal(const void *const a, const void *const b,\n
      \                         const size_t size, const char *const file, const int
      line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memory_not_equal_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1379,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1382,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - a
    - b
    - size
    - file
    - line
    argTypes:
    - void*
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1385
    functionName: _assert_memory_not_equal
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - memory_not_equal_display_error
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_memory_not_equal(const void *const a, const void *const
      b,\n                              const size_t size, const char *const file,
      const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: integer_in_range_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1390,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1393,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - value
    - minimum
    - maximum
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - LargestIntegralType
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1396
    functionName: _assert_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - integer_in_range_display_error
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_in_range(const LargestIntegralType value, const LargestIntegralType
      minimum,\n                      const LargestIntegralType maximum, const char
      *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: integer_not_in_range_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1401,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1404,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - value
    - minimum
    - maximum
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType
    - LargestIntegralType
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1407
    functionName: _assert_not_in_range
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _fail
    - integer_not_in_range_display_error
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_not_in_range(const LargestIntegralType value, const LargestIntegralType
      minimum,\n                          const LargestIntegralType maximum, const
      char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: value_in_set_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1417,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1420,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - value
    - values
    - number_of_values
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType[]
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1423
    functionName: _assert_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - value_in_set_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_in_set(const LargestIntegralType value,\n                    const
      LargestIntegralType values[],\n                    const size_t number_of_values,
      const char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: value_in_set_display_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1433,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1436,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - value
    - values
    - number_of_values
    - file
    - line
    argTypes:
    - LargestIntegralType
    - LargestIntegralType[]
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1439
    functionName: _assert_not_in_set
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - value_in_set_display_error
    - _fail
    - print_xml
    linkageType: ''
    returnType: void
    signature: "void _assert_not_in_set(const LargestIntegralType value,\n                        const
      LargestIntegralType values[],\n                        const size_t number_of_values,
      const char *const file, const int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_initialize
      Src: /src/core/libntech/tests/unit/cmockery.c:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1451
    functionName: get_allocated_blocks_list
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 4
    functionsReached:
    - list_initialize
    linkageType: ''
    returnType: ListNode
    signature: ListNode *get_allocated_blocks_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocated_blocks_list
      Src: /src/core/libntech/tests/unit/cmockery.c:1459,1
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:1461,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1463,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/cmockery.c:1470,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/cmockery.c:1471,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/cmockery.c:1472,1
    - Dst: set_source_location
      Src: /src/core/libntech/tests/unit/cmockery.c:1475,1
    - Dst: list_add
      Src: /src/core/libntech/tests/unit/cmockery.c:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - size
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1482
    functionName: _test_malloc
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - list_add
    - assert_true
    - set_source_location
    - malloc
    - get_allocated_blocks_list
    - memset
    linkageType: ''
    returnType: void
    signature: void *_test_malloc(const size_t size, const char *file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _test_malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:1488,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/cmockery.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - number_of_elements
    - size
    - file
    - line
    argTypes:
    - size_t
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1495
    functionName: _test_calloc
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - _test_malloc
    - memset
    linkageType: ''
    returnType: void
    signature: void *_test_calloc(const size_t number_of_elements, const size_t size,
      const char *file, const int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1505,1
    - Dst: ARRAY_LENGTH
      Src: /src/core/libntech/tests/unit/cmockery.c:1512,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1523,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1527,1
    - Dst: _fail
      Src: /src/core/libntech/tests/unit/cmockery.c:1534,1
    - Dst: list_remove
      Src: /src/core/libntech/tests/unit/cmockery.c:1539,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/cmockery.c:1542,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/cmockery.c:1543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ptr
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1544
    functionName: _test_free
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - ARRAY_LENGTH
    - list_remove
    - _assert_true
    - free
    - _fail
    - print_xml
    - memset
    linkageType: ''
    returnType: void
    signature: void _test_free(void *const ptr, const char *file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocated_blocks_list
      Src: /src/core/libntech/tests/unit/cmockery.c:1551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1552
    functionName: check_point_allocated_blocks
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - get_allocated_blocks_list
    linkageType: ''
    returnType: ListNode
    signature: ListNode *check_point_allocated_blocks()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_allocated_blocks_list
      Src: /src/core/libntech/tests/unit/cmockery.c:1558,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1562,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1563,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1569,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1573,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - check_point
    argTypes:
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1556
    functionDepth: 0
    functionLinenumber: 1556
    functionLinenumberEnd: 1580
    functionName: display_allocated_blocks
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - get_allocated_blocks_list
    - print_error
    - assert_true
    linkageType: ''
    returnType: int
    signature: int display_allocated_blocks(const ListNode *const check_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_allocated_blocks_list
      Src: /src/core/libntech/tests/unit/cmockery.c:1585,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1588,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1591,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/cmockery.c:1598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - check_point
    argTypes:
    - ListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1600
    functionName: free_allocated_blocks
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - get_allocated_blocks_list
    - free
    - assert_true
    linkageType: ''
    returnType: void
    signature: void free_allocated_blocks(const ListNode *const check_point)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_allocated_blocks
      Src: /src/core/libntech/tests/unit/cmockery.c:1605,1
    - Dst: free_allocated_blocks
      Src: /src/core/libntech/tests/unit/cmockery.c:1609,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1610,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1611,1
    - Dst: exit_test
      Src: /src/core/libntech/tests/unit/cmockery.c:1615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - check_point
    - test_name
    argTypes:
    - ListNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1617
    functionName: fail_if_blocks_allocated
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 2
    functionsReached:
    - print_error
    - free_allocated_blocks
    - display_allocated_blocks
    - exit_test
    - print_xml
    linkageType: ''
    returnType: void
    signature: void fail_if_blocks_allocated(const ListNode *const check_point, const
      char *const test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1621,1
    - Dst: exit_test
      Src: /src/core/libntech/tests/unit/cmockery.c:1622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1623
    functionName: _fail
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 30
    functionsReached:
    - print_error
    - exit_test
    linkageType: ''
    returnType: void
    signature: void _fail(const char *const file, const int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1628,1
    - Dst: strsignal
      Src: /src/core/libntech/tests/unit/cmockery.c:1628,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1629,1
    - Dst: strsignal
      Src: /src/core/libntech/tests/unit/cmockery.c:1631,1
    - Dst: exit_test
      Src: /src/core/libntech/tests/unit/cmockery.c:1633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1634
    functionName: exception_handler
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - strsignal
    - print_xml
    - exit_test
    linkageType: ''
    returnType: void
    signature: void exception_handler(int sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LENGTH
      Src: /src/core/libntech/tests/unit/cmockery.c:1644,1
    - Dst: fflush
      Src: /src/core/libntech/tests/unit/cmockery.c:1652,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1653,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1654,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1659,1
    - Dst: exit_test_no_app
      Src: /src/core/libntech/tests/unit/cmockery.c:1672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - exception_pointers
    argTypes:
    - EXCEPTION_POINTERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1677
    functionName: exception_filter
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - fflush
    - ARRAY_LENGTH
    - exit_test_no_app
    - print_xml
    linkageType: ''
    returnType: LONG
    signature: LONG exception_filter(EXCEPTION_POINTERS *exception_pointers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/libntech/tests/unit/cmockery.c:1682,1
    - Dst: vfprintf
      Src: /src/core/libntech/tests/unit/cmockery.c:1683,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/cmockery.c:1684,1
    - Dst: OutputDebugString
      Src: /src/core/libntech/tests/unit/cmockery.c:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1688
    functionName: vinit_xml
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - OutputDebugString
    - fopen
    - vfprintf
    - fclose
    linkageType: ''
    returnType: void
    signature: void vinit_xml (const char *const format, va_list args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/tests/unit/cmockery.c:1695,1
    - Dst: vinit_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1696,1
    - Dst: va_end
      Src: /src/core/libntech/tests/unit/cmockery.c:1697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1690
    functionDepth: 0
    functionLinenumber: 1690
    functionLinenumberEnd: 1699
    functionName: init_xml
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 3
    functionsReached:
    - vinit_xml
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void init_xml (const char *const format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/libntech/tests/unit/cmockery.c:1703,1
    - Dst: vfprintf
      Src: /src/core/libntech/tests/unit/cmockery.c:1704,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/cmockery.c:1705,1
    - Dst: OutputDebugString
      Src: /src/core/libntech/tests/unit/cmockery.c:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1709
    functionName: vprint_xml
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - OutputDebugString
    - fopen
    - vfprintf
    - fclose
    linkageType: ''
    returnType: void
    signature: void vprint_xml(const char *const format, va_list args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/tests/unit/cmockery.c:1716,1
    - Dst: vprint_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1717,1
    - Dst: va_end
      Src: /src/core/libntech/tests/unit/cmockery.c:1718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1720
    functionName: print_xml
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 41
    functionsReached:
    - va_end
    - vprint_xml
    - va_start
    linkageType: ''
    returnType: void
    signature: void print_xml(const char *const format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/libntech/tests/unit/cmockery.c:1727,1
    - Dst: fopen
      Src: /src/core/libntech/tests/unit/cmockery.c:1728,1
    - Dst: feof
      Src: /src/core/libntech/tests/unit/cmockery.c:1729,1
    - Dst: getc
      Src: /src/core/libntech/tests/unit/cmockery.c:1731,1
    - Dst: feof
      Src: /src/core/libntech/tests/unit/cmockery.c:1732,1
    - Dst: putc
      Src: /src/core/libntech/tests/unit/cmockery.c:1734,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/cmockery.c:1737,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/cmockery.c:1738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ofile
    - ifile
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1722
    functionDepth: 1
    functionLinenumber: 1722
    functionLinenumberEnd: 1740
    functionName: append_xml
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - putc
    - fopen
    - feof
    - fclose
    - getc
    linkageType: ''
    returnType: void
    signature: void append_xml(const char *ofile, const char *ifile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vprintf
      Src: /src/core/libntech/tests/unit/cmockery.c:1745,1
    - Dst: OutputDebugString
      Src: /src/core/libntech/tests/unit/cmockery.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1749
    functionName: vprint_message
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - OutputDebugString
    - vprintf
    linkageType: ''
    returnType: void
    signature: void vprint_message(const char *const format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfprintf
      Src: /src/core/libntech/tests/unit/cmockery.c:1753,1
    - Dst: OutputDebugString
      Src: /src/core/libntech/tests/unit/cmockery.c:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1757
    functionName: vprint_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - OutputDebugString
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void vprint_error(const char *const format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/tests/unit/cmockery.c:1763,1
    - Dst: vprint_message
      Src: /src/core/libntech/tests/unit/cmockery.c:1764,1
    - Dst: va_end
      Src: /src/core/libntech/tests/unit/cmockery.c:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1766
    functionName: print_message
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 4
    functionsReached:
    - va_end
    - vprint_message
    - va_start
    linkageType: ''
    returnType: void
    signature: void print_message(const char *const format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/tests/unit/cmockery.c:1772,1
    - Dst: vprint_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1773,1
    - Dst: va_end
      Src: /src/core/libntech/tests/unit/cmockery.c:1774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1775
    functionName: print_error
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 47
    functionsReached:
    - va_end
    - vprint_error
    - va_start
    linkageType: ''
    returnType: void
    signature: void print_error(const char *const format, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_point_allocated_blocks
      Src: /src/core/libntech/tests/unit/cmockery.c:1780,1
    - Dst: IsDebuggerPresent
      Src: /src/core/libntech/tests/unit/cmockery.c:1786,1
    - Dst: ARRAY_LENGTH
      Src: /src/core/libntech/tests/unit/cmockery.c:1797,1
    - Dst: signal
      Src: /src/core/libntech/tests/unit/cmockery.c:1799,1
    - Dst: SetUnhandledExceptionFilter
      Src: /src/core/libntech/tests/unit/cmockery.c:1802,1
    - Dst: print_message
      Src: /src/core/libntech/tests/unit/cmockery.c:1808,1
    - Dst: initialize_testing
      Src: /src/core/libntech/tests/unit/cmockery.c:1810,1
    - Dst: setjmp
      Src: /src/core/libntech/tests/unit/cmockery.c:1812,1
    - Dst: Function
      Src: /src/core/libntech/tests/unit/cmockery.c:1816,1
    - Dst: fail_if_leftover_values
      Src: /src/core/libntech/tests/unit/cmockery.c:1823,1
    - Dst: fail_if_blocks_allocated
      Src: /src/core/libntech/tests/unit/cmockery.c:1829,1
    - Dst: print_message
      Src: /src/core/libntech/tests/unit/cmockery.c:1836,1
    - Dst: print_message
      Src: /src/core/libntech/tests/unit/cmockery.c:1843,1
    - Dst: teardown_testing
      Src: /src/core/libntech/tests/unit/cmockery.c:1845,1
    - Dst: ARRAY_LENGTH
      Src: /src/core/libntech/tests/unit/cmockery.c:1852,1
    - Dst: signal
      Src: /src/core/libntech/tests/unit/cmockery.c:1854,1
    - Dst: SetUnhandledExceptionFilter
      Src: /src/core/libntech/tests/unit/cmockery.c:1859,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - function_name
    - Function
    - state
    - function_type
    - heap_check_point
    argTypes:
    - char*
    - UnitTestFunction
    - void**
    - UnitTestFunctionType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1866
    functionName: _run_test
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 1
    functionsReached:
    - check_point_allocated_blocks
    - fail_if_leftover_values
    - fail_if_blocks_allocated
    - ARRAY_LENGTH
    - print_message
    - setjmp
    - IsDebuggerPresent
    - SetUnhandledExceptionFilter
    - initialize_testing
    - teardown_testing
    - Function
    - signal
    linkageType: ''
    returnType: int
    signature: "int _run_test(const char *const function_name, const UnitTestFunction
      Function,\n              void **const state, const UnitTestFunctionType function_type,
      const void *const heap_check_point)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: check_point_allocated_blocks
      Src: /src/core/libntech/tests/unit/cmockery.c:1877,1
    - Dst: time
      Src: /src/core/libntech/tests/unit/cmockery.c:1883,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1885,1
    - Dst: ctime
      Src: /src/core/libntech/tests/unit/cmockery.c:1885,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/cmockery.c:1886,1
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:1905,1
    - Dst: malloc
      Src: /src/core/libntech/tests/unit/cmockery.c:1909,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1913,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1923,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1924,1
    - Dst: basename
      Src: /src/core/libntech/tests/unit/cmockery.c:1924,1
    - Dst: strrchr
      Src: /src/core/libntech/tests/unit/cmockery.c:1925,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1927,1
    - Dst: strncat
      Src: /src/core/libntech/tests/unit/cmockery.c:1928,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1929,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/cmockery.c:1932,1
    - Dst: init_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1936,1
    - Dst: time
      Src: /src/core/libntech/tests/unit/cmockery.c:1937,1
    - Dst: check_point_allocated_blocks
      Src: /src/core/libntech/tests/unit/cmockery.c:1960,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/cmockery.c:1970,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:1977,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1978,1
    - Dst: exit_test
      Src: /src/core/libntech/tests/unit/cmockery.c:1983,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1989,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1990,1
    - Dst: init_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1991,1
    - Dst: time
      Src: /src/core/libntech/tests/unit/cmockery.c:1992,1
    - Dst: _run_test
      Src: /src/core/libntech/tests/unit/cmockery.c:1993,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/cmockery.c:1995,1
    - Dst: time
      Src: /src/core/libntech/tests/unit/cmockery.c:1996,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:1997,1
    - Dst: difftime
      Src: /src/core/libntech/tests/unit/cmockery.c:1997,1
    - Dst: append_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:2001,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:2003,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/cmockery.c:2032,1
    - Dst: snprintf
      Src: /src/core/libntech/tests/unit/cmockery.c:2037,1
    - Dst: time
      Src: /src/core/libntech/tests/unit/cmockery.c:2038,1
    - Dst: init_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:2039,1
    - Dst: difftime
      Src: /src/core/libntech/tests/unit/cmockery.c:2039,1
    - Dst: append_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:2040,1
    - Dst: print_xml
      Src: /src/core/libntech/tests/unit/cmockery.c:2041,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:2047,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:2050,1
    - Dst: print_message
      Src: /src/core/libntech/tests/unit/cmockery.c:2055,1
    - Dst: print_error
      Src: /src/core/libntech/tests/unit/cmockery.c:2060,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/cmockery.c:2064,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/cmockery.c:2065,1
    - Dst: fail_if_blocks_allocated
      Src: /src/core/libntech/tests/unit/cmockery.c:2067,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 110
    argCount: 3
    argNames:
    - tests
    - number_of_tests
    - file
    argTypes:
    - UnitTest*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 2069
    functionName: _run_tests
    functionSourceFile: /src/core/libntech/tests/unit/cmockery.c
    functionUses: 0
    functionsReached:
    - print_error
    - assert_false
    - append_xml
    - exit_test
    - free
    - difftime
    - time
    - check_point_allocated_blocks
    - fail_if_blocks_allocated
    - snprintf
    - strlen
    - strncat
    - strrchr
    - malloc
    - strcmp
    - strcpy
    - basename
    - print_message
    - init_xml
    - ctime
    - assert_true
    - _run_test
    - print_xml
    linkageType: ''
    returnType: int
    signature: int _run_tests(const UnitTest *const tests, const size_t number_of_tests,
      const char *const file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackNew
      Src: /src/core/libntech/tests/unit/stack_test.c:8,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:10,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:10,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:11,1
    - Dst: StackTop
      Src: /src/core/libntech/tests/unit/stack_test.c:11,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:13,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:13,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:14,1
    - Dst: StackTop
      Src: /src/core/libntech/tests/unit/stack_test.c:14,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:16,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:16,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:17,1
    - Dst: StackTop
      Src: /src/core/libntech/tests/unit/stack_test.c:17,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:19,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:20,1
    - Dst: StackTop
      Src: /src/core/libntech/tests/unit/stack_test.c:20,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:23,1
    - Dst: StackTop
      Src: /src/core/libntech/tests/unit/stack_test.c:23,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:26,1
    - Dst: StackTop
      Src: /src/core/libntech/tests/unit/stack_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:28,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/stack_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:29,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/stack_test.c:29,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:30,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/stack_test.c:30,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:32,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:33,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:34,1
    - Dst: StackDestroy
      Src: /src/core/libntech/tests/unit/stack_test.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 37
    functionName: test_push_pop_top
    functionSourceFile: /src/core/libntech/tests/unit/stack_test.c
    functionUses: 0
    functionsReached:
    - StackNew
    - assert_int_equal
    - StackPop
    - StackPush
    - assert_string_equal
    - StackTop
    - xstrdup
    - strcmp
    - free
    - StackDestroy
    linkageType: ''
    returnType: void
    signature: void test_push_pop_top(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackNew
      Src: /src/core/libntech/tests/unit/stack_test.c:41,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/stack_test.c:43,1
    - Dst: StackIsEmpty
      Src: /src/core/libntech/tests/unit/stack_test.c:43,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:45,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/stack_test.c:46,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:47,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/stack_test.c:48,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:48,1
    - Dst: StackDestroy
      Src: /src/core/libntech/tests/unit/stack_test.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (StackIsEmpty(stack))
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/core/libntech/tests/unit/stack_test.c
    - condition: (i_am_null == NULL)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/core/libntech/tests/unit/stack_test.c
    - condition: (StackPop(stack) == NULL)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/core/libntech/tests/unit/stack_test.c
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: test_pop_empty_and_push_null
    functionSourceFile: /src/core/libntech/tests/unit/stack_test.c
    functionUses: 0
    functionsReached:
    - StackNew
    - assert
    - StackPop
    - StackPush
    - StackIsEmpty
    - StackDestroy
    linkageType: ''
    returnType: void
    signature: void test_pop_empty_and_push_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackNew
      Src: /src/core/libntech/tests/unit/stack_test.c:55,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:57,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:57,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:58,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:58,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:59,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:59,1
    - Dst: StackCopy
      Src: /src/core/libntech/tests/unit/stack_test.c:61,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/stack_test.c:63,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:64,1
    - Dst: StackCount
      Src: /src/core/libntech/tests/unit/stack_test.c:64,1
    - Dst: StackCount
      Src: /src/core/libntech/tests/unit/stack_test.c:64,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:65,1
    - Dst: StackCapacity
      Src: /src/core/libntech/tests/unit/stack_test.c:65,1
    - Dst: StackCapacity
      Src: /src/core/libntech/tests/unit/stack_test.c:65,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:67,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:67,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:68,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:68,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:69,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:69,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/stack_test.c:71,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/stack_test.c:72,1
    - Dst: assert
      Src: /src/core/libntech/tests/unit/stack_test.c:73,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:75,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:76,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:77,1
    - Dst: StackSoftDestroy
      Src: /src/core/libntech/tests/unit/stack_test.c:79,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:82,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:82,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:83,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:83,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:84,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:84,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:85,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:85,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:86,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:86,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:88,1
    - Dst: StackCount
      Src: /src/core/libntech/tests/unit/stack_test.c:88,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:89,1
    - Dst: StackCapacity
      Src: /src/core/libntech/tests/unit/stack_test.c:89,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:91,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:92,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:93,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:94,1
    - Dst: StackPop
      Src: /src/core/libntech/tests/unit/stack_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:97,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/stack_test.c:97,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:98,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/stack_test.c:98,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:99,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/stack_test.c:99,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:100,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/stack_test.c:100,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:101,1
    - Dst: strcmp
      Src: /src/core/libntech/tests/unit/stack_test.c:101,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:103,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:104,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:105,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:106,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/stack_test.c:107,1
    - Dst: StackDestroy
      Src: /src/core/libntech/tests/unit/stack_test.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (old_str3 == new_str3)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/core/libntech/tests/unit/stack_test.c
    - condition: (new_stack != NULL)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/core/libntech/tests/unit/stack_test.c
    - condition: (old_str2 == new_str2)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/core/libntech/tests/unit/stack_test.c
    - condition: (old_str1 == new_str1)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/core/libntech/tests/unit/stack_test.c
    constantsTouched: []
    func_position:
      end: 110
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 110
    functionName: test_copy
    functionSourceFile: /src/core/libntech/tests/unit/stack_test.c
    functionUses: 0
    functionsReached:
    - StackNew
    - assert_int_equal
    - StackCapacity
    - assert
    - StackPop
    - StackPush
    - strcmp
    - xstrdup
    - StackCount
    - StackDestroy
    - free
    - StackCopy
    - StackSoftDestroy
    linkageType: ''
    returnType: void
    signature: void test_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackNew
      Src: /src/core/libntech/tests/unit/stack_test.c:114,1
    - Dst: StackPushReportCount
      Src: /src/core/libntech/tests/unit/stack_test.c:116,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:116,1
    - Dst: StackPushReportCount
      Src: /src/core/libntech/tests/unit/stack_test.c:117,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:117,1
    - Dst: StackPushReportCount
      Src: /src/core/libntech/tests/unit/stack_test.c:118,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:118,1
    - Dst: StackPushReportCount
      Src: /src/core/libntech/tests/unit/stack_test.c:119,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:119,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:121,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:122,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:123,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:124,1
    - Dst: StackDestroy
      Src: /src/core/libntech/tests/unit/stack_test.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: test_push_report_count
    functionSourceFile: /src/core/libntech/tests/unit/stack_test.c
    functionUses: 0
    functionsReached:
    - StackNew
    - assert_int_equal
    - StackPushReportCount
    - xstrdup
    - StackDestroy
    linkageType: ''
    returnType: void
    signature: void test_push_report_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackNew
      Src: /src/core/libntech/tests/unit/stack_test.c:131,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:133,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:133,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:134,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:134,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:135,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:135,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:136,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:136,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:137,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:137,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:138,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:138,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:139,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:139,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:140,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:140,1
    - Dst: StackPush
      Src: /src/core/libntech/tests/unit/stack_test.c:141,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/stack_test.c:141,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:143,1
    - Dst: StackCount
      Src: /src/core/libntech/tests/unit/stack_test.c:143,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/stack_test.c:144,1
    - Dst: StackCapacity
      Src: /src/core/libntech/tests/unit/stack_test.c:144,1
    - Dst: StackDestroy
      Src: /src/core/libntech/tests/unit/stack_test.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 147
    functionName: test_expand
    functionSourceFile: /src/core/libntech/tests/unit/stack_test.c
    functionUses: 0
    functionsReached:
    - StackNew
    - assert_int_equal
    - StackCapacity
    - StackPush
    - StackCount
    - xstrdup
    - StackDestroy
    linkageType: ''
    returnType: void
    signature: void test_expand(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/stack_test.c:151,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/stack_test.c:154,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/stack_test.c:155,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/stack_test.c:156,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/stack_test.c:157,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/stack_test.c:158,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/stack_test.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/stack_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Path_GetQuoted
      Src: /src/core/libntech/tests/unit/path_test.c:7,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/path_test.c:8,1
    - Dst: Path_GetQuoted
      Src: /src/core/libntech/tests/unit/path_test.c:10,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/path_test.c:11,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/path_test.c:12,1
    - Dst: Path_GetQuoted
      Src: /src/core/libntech/tests/unit/path_test.c:14,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/path_test.c:15,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/path_test.c:16,1
    - Dst: Path_GetQuoted
      Src: /src/core/libntech/tests/unit/path_test.c:18,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/path_test.c:19,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/path_test.c:20,1
    - Dst: Path_GetQuoted
      Src: /src/core/libntech/tests/unit/path_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/path_test.c:23,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/path_test.c:24,1
    - Dst: Path_GetQuoted
      Src: /src/core/libntech/tests/unit/path_test.c:26,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/path_test.c:27,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/path_test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 29
    functionName: test_path_getquoted
    functionSourceFile: /src/core/libntech/tests/unit/path_test.c
    functionUses: 0
    functionsReached:
    - free
    - assert_true
    - assert_string_equal
    - Path_GetQuoted
    linkageType: ''
    returnType: void
    signature: void test_path_getquoted(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/path_test.c:33,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/path_test.c:36,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/path_test.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/path_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoggingSetAgentType
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:13,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:14,1
    - Dst: LoggingSetColor
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:15,1
    - Dst: fflush
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:16,1
    - Dst: fflush
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:19,1
    - Dst: pipe
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:19,1
    - Dst: dup
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:21,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:22,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:24,1
    - Dst: dup2
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:24,1
    - Dst: Log
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:25,1
    - Dst: fputc
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:26,1
    - Dst: fflush
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:27,1
    - Dst: fflush
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:28,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:30,1
    - Dst: dup2
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:30,1
    - Dst: fdopen
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:33,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:34,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:35,1
    - Dst: fgets
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:35,1
    - Dst: pcre2_compile
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:40,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:42,1
    - Dst: pcre2_match_data_create
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:43,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:44,1
    - Dst: pcre2_match
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:44,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:45,1
    - Dst: pcre2_code_free
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:46,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:49,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:50,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:51,1
    - Dst: close
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 53
    functionName: test_timestamp_regex
    functionSourceFile: /src/core/libntech/tests/unit/logging_timestamp_test.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_create
    - dup
    - Log
    - fclose
    - pipe
    - fputc
    - close
    - fflush
    - fdopen
    - fgets
    - pcre2_match
    - assert_int_equal
    - pcre2_match_data_free
    - LoggingSetAgentType
    - LoggingEnableTimestamps
    - assert_true
    - pcre2_compile
    - LoggingSetColor
    - dup2
    - pcre2_code_free
    linkageType: ''
    returnType: void
    signature: void test_timestamp_regex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:57,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:60,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/logging_timestamp_test.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/logging_timestamp_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:9,1
    - Dst: UnsignedModulus
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:9,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:10,1
    - Dst: UnsignedModulus
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:10,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:11,1
    - Dst: UnsignedModulus
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:11,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:12,1
    - Dst: UnsignedModulus
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:12,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:13,1
    - Dst: UnsignedModulus
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:13,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:15,1
    - Dst: UnsignedModulus
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:16,1
    - Dst: UnsignedModulus
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:17,1
    - Dst: UnsignedModulus
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:17,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:18,1
    - Dst: UnsignedModulus
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 19
    functionName: test_unsigned_modulus
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 0
    functionsReached:
    - UnsignedModulus
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_unsigned_modulus(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:23,1
    - Dst: UpperPowerOfTwo
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:23,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:24,1
    - Dst: UpperPowerOfTwo
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:24,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:25,1
    - Dst: UpperPowerOfTwo
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:26,1
    - Dst: UpperPowerOfTwo
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:26,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:27,1
    - Dst: UpperPowerOfTwo
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: test_upper_power_of_two
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 0
    functionsReached:
    - UpperPowerOfTwo
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void test_upper_power_of_two(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 102
    functionName: ISPOW2_FORSURE
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISPOW2_FORSURE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - orig
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 129
    functionName: TYPED_TEST_ISPOW2
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPED_TEST_ISPOW2(orig, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: drand48
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:147,1
    - Dst: drand48
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:148,1
    - Dst: TYPED_TEST_ISPOW2
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:166,1
    - Dst: TYPED_TEST_ISPOW2
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:167,1
    - Dst: printf
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 183
    functionName: test_rand_ISPOW2
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 0
    functionsReached:
    - TYPED_TEST_ISPOW2
    - drand48
    - printf
    linkageType: ''
    returnType: void
    signature: void test_rand_ISPOW2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:187,1
    - Dst: ISPOW2
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:187,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:188,1
    - Dst: ISPOW2
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:188,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:190,1
    - Dst: ISPOW2
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:190,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:191,1
    - Dst: ISPOW2
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: test_ISPOW2
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_false
    - ISPOW2
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_ISPOW2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:196,1
    - Dst: ABS
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:196,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:197,1
    - Dst: ABS
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:197,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:198,1
    - Dst: ABS
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:198,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:199,1
    - Dst: ABS
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:199,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:200,1
    - Dst: ABS
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: test_ABS
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - ABS
    linkageType: ''
    returnType: void
    signature: void test_ABS(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:205,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:205,1
    - Dst: putenv_wrapper
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:207,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:208,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:208,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:209,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:209,1
    - Dst: putenv_wrapper
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:211,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:212,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:212,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:213,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:213,1
    - Dst: unsetenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:215,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:216,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: test_putenv_wrapper
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 0
    functionsReached:
    - getenv
    - putenv_wrapper
    - assert_true
    - unsetenv
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_putenv_wrapper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:221,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:221,1
    - Dst: setenv_wrapper
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:223,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:224,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:224,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:225,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:225,1
    - Dst: setenv_wrapper
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:227,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:228,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:228,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:229,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:229,1
    - Dst: setenv_wrapper
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:231,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:232,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:232,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:233,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:233,1
    - Dst: unsetenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:235,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:236,1
    - Dst: getenv
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 237
    functionName: test_setenv_wrapper
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 0
    functionsReached:
    - getenv
    - assert_true
    - unsetenv
    - setenv_wrapper
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_setenv_wrapper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srand48
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:241,1
    - Dst: time
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:241,1
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:243,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:246,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:247,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:248,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:249,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:250,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:251,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:252,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/misc_lib_test.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 256
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/misc_lib_test.c
    functionUses: 1
    functionsReached:
    - srand48
    - unit_test
    - run_tests
    - PRINT_TEST_BANNER
    - time
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:6,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:6,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:7,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:7,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:8,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:8,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:9,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:9,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:10,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:10,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:11,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:11,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:12,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:12,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:13,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:13,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:14,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:14,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:15,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:15,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:16,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:16,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:17,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:17,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:19,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:19,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:20,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:20,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:21,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:21,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:22,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:22,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:23,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:23,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:24,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:24,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:25,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:25,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:26,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:26,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:27,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:27,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:28,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:28,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:29,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:29,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:30,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:30,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:31,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:31,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:33,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:33,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:34,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:34,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:35,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:35,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:36,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:36,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:37,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:37,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:38,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:38,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:39,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:39,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:40,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:40,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:41,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:41,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:42,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:42,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:43,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:43,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:44,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:44,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:45,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:45,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:47,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:47,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:48,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:48,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:49,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:49,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:50,1
    - Dst: CompareVersion
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 51
    functionName: test_CompareVersion
    functionSourceFile: /src/core/libntech/tests/unit/version_comparison_test.c
    functionUses: 0
    functionsReached:
    - CompareVersion
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_CompareVersion(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:55,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:55,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:56,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:56,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:57,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:57,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:58,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:58,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:59,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:59,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:60,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:60,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:62,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:62,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:63,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:63,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:64,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:64,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:65,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:65,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:66,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:66,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:67,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:67,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:69,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:69,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:70,1
    - Dst: CompareVersionExpression
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: test_CompareVersionExpression
    functionSourceFile: /src/core/libntech/tests/unit/version_comparison_test.c
    functionUses: 0
    functionsReached:
    - assert_true
    - CompareVersionExpression
    linkageType: ''
    returnType: void
    signature: void test_CompareVersionExpression(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:75,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:78,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:79,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/version_comparison_test.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/version_comparison_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:12,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:13,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:14,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:15,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:16,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:17,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:18,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:19,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:20,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:21,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:22,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:23,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:24,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:25,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 27
    functionName: test_new_csv_reader_empty_string
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - SeqDestroy
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_new_csv_reader_empty_string()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:43,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:44,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:45,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:48,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 53
    functionName: test_new_csv_reader_basic
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - SeqDestroy
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_new_csv_reader_basic()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:61,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:63,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:65,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:66,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:69,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 75
    functionName: test_new_csv_reader
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - SeqDestroy
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_new_csv_reader()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:83,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:86,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:89,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 95
    functionName: test_new_csv_reader_lfln
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - SeqDestroy
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_new_csv_reader_lfln()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:103,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:105,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:106,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:107,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:108,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:111,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 117
    functionName: test_new_csv_reader_lfln_at_end
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - SeqDestroy
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_new_csv_reader_lfln_at_end()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:124,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:126,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:127,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:130,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: test_new_csv_reader_lfln_at_end2
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - SeqDestroy
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_new_csv_reader_lfln_at_end2()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:144,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:146,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:147,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:150,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: test_new_csv_reader_lfln_at_end3
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - SeqDestroy
    - assert_true
    - assert_string_equal
    linkageType: ''
    returnType: void
    signature: void test_new_csv_reader_lfln_at_end3()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:160,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:161,1
    - Dst: GetCsvLineNext
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:164,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:165,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:166,1
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:168,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:169,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:170,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:170,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:171,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:171,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:172,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:172,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:173,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:174,1
    - Dst: GetCsvLineNext
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:178,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:179,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:180,1
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:182,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:183,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:184,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:184,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:185,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:185,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:186,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:186,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:187,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:188,1
    - Dst: GetCsvLineNext
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:192,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:193,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:194,1
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:195,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:196,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:197,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:197,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:198,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:198,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:199,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:199,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:200,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:201,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 205
    functionName: test_get_next_line
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - fopen
    - SeqDestroy
    - assert_true
    - GetCsvLineNext
    - assert_string_equal
    - fclose
    - SeqLength
    - free
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void test_get_next_line()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:215,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:216,1
    - Dst: GetCsvLineNext
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:219,1
    - Dst: GetCsvLineNext
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:220,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:222,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:223,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:225,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:226,1
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:228,1
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:229,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:230,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:231,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:232,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:232,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:233,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:233,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:235,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:235,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:236,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:236,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:237,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:237,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:238,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:238,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:239,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:239,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:240,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:240,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:241,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:241,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:242,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:242,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:243,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:243,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:244,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:244,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:245,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:245,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:246,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:246,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:247,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:247,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:248,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:248,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:249,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:249,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:250,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:250,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:252,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:253,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:254,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:255,1
    - Dst: fclose
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 259
    functionName: test_get_next_line_edge_cases
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - fopen
    - SeqDestroy
    - assert_true
    - GetCsvLineNext
    - assert_string_equal
    - fclose
    - SeqLength
    - free
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void test_get_next_line_edge_cases()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:266,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:267,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:267,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:268,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:268,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: test_new_csv_reader_zd3151_ENT3023
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - SeqDestroy
    - assert_string_equal
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void test_new_csv_reader_zd3151_ENT3023()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:283,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:284,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:284,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:285,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:285,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:286,1
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:289,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:290,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:290,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:291,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:291,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:292,1
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:295,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:296,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:296,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:297,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:297,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:298,1
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:301,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:302,1
    - Dst: SeqLength
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:302,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:303,1
    - Dst: SeqAt
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:303,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 305
    functionName: test_new_csv_reader_carriage_return
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - assert_int_equal
    - SeqDestroy
    - assert_string_equal
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void test_new_csv_reader_carriage_return()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:309,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:312,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:313,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:314,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:315,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:316,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:317,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:318,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:319,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:320,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:321,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:322,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/csv_parser_test.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/csv_parser_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:15,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:18,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:19,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:20,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:23,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:24,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:27,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:28,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:29,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:30,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:33,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:34,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:35,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:36,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:43,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:47,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:50,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:50,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:50,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:51,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:51,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:51,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:52,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:52,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:53,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 64
    functionName: test_nt_static_assert
    functionSourceFile: /src/core/libntech/tests/unit/condition_macros_test.c
    functionUses: 0
    functionsReached:
    - nt_static_assert
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_nt_static_assert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 90
    functionName: test_nt_static_assert_string_equal
    functionSourceFile: /src/core/libntech/tests/unit/condition_macros_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_nt_static_assert_string_equal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:95,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:98,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:99,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/condition_macros_test.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/condition_macros_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:11,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:13,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:14,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:15,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:16,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:17,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 20
    functionName: test_createBuffer
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - BufferNew
    - assert_int_equal
    - assert_true
    - BufferDestroy
    linkageType: ''
    returnType: void
    signature: void test_createBuffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:24,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:25,1
    - Dst: BufferNewFrom
      Src: /src/core/libntech/tests/unit/buffer_test.c:27,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:29,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:30,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:31,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:32,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:33,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:35,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: test_createBufferFrom
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - BufferDestroy
    - BufferNewFrom
    - strlen
    - assert_true
    - assert_string_equal
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void test_createBufferFrom(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:41,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:42,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: test_destroyBuffer
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - BufferNew
    - BufferDestroy
    linkageType: ''
    returnType: void
    signature: void test_destroyBuffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:49,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:50,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/buffer_test.c:51,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:54,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:55,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/buffer_test.c:57,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:58,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:59,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:59,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:60,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:61,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:61,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/buffer_test.c:68,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:70,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:71,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:71,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:76,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:77,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:78,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/buffer_test.c:95,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:96,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/buffer_test.c:101,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:102,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/buffer_test.c:107,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:108,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/buffer_test.c:109,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:113,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:114,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:115,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:116,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:117,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 119
    functionName: test_setBuffer
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_int_equal
    - BufferDestroy
    - strlen
    - assert_true
    - BufferSet
    - xmalloc
    - assert_string_equal
    - xstrdup
    - BufferSize
    - BufferNew
    - free
    linkageType: ''
    returnType: void
    signature: void test_setBuffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:123,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:124,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:127,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/buffer_test.c:128,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:130,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:131,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:131,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/buffer_test.c:132,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:133,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:134,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:135,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:135,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:136,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:137,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:138,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:139,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: test_zeroBuffer
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_int_equal
    - BufferDestroy
    - strlen
    - assert_true
    - BufferSet
    - BufferClear
    - assert_string_equal
    - xstrdup
    - BufferSize
    - BufferNew
    - free
    linkageType: ''
    returnType: void
    signature: void test_zeroBuffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:145,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:146,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:147,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:148,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:154,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:155,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:156,1
    - Dst: BufferCompare
      Src: /src/core/libntech/tests/unit/buffer_test.c:156,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:157,1
    - Dst: BufferCompare
      Src: /src/core/libntech/tests/unit/buffer_test.c:157,1
    - Dst: BufferCopy
      Src: /src/core/libntech/tests/unit/buffer_test.c:158,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:159,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:160,1
    - Dst: BufferCompare
      Src: /src/core/libntech/tests/unit/buffer_test.c:160,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:163,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/buffer_test.c:164,1
    - Dst: BufferSet
      Src: /src/core/libntech/tests/unit/buffer_test.c:165,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:166,1
    - Dst: BufferCompare
      Src: /src/core/libntech/tests/unit/buffer_test.c:166,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:167,1
    - Dst: BufferCompare
      Src: /src/core/libntech/tests/unit/buffer_test.c:167,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:168,1
    - Dst: BufferCompare
      Src: /src/core/libntech/tests/unit/buffer_test.c:168,1
    - Dst: BufferCopy
      Src: /src/core/libntech/tests/unit/buffer_test.c:169,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:170,1
    - Dst: BufferCompare
      Src: /src/core/libntech/tests/unit/buffer_test.c:170,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:173,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:174,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:175,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:177,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 179
    functionName: test_copyCompareBuffer
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - BufferDestroy
    - strlen
    - assert_true
    - BufferSet
    - xstrdup
    - BufferNew
    - free
    - BufferCopy
    - BufferCompare
    linkageType: ''
    returnType: void
    signature: void test_copyCompareBuffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:183,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:184,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:186,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:187,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/buffer_test.c:189,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:192,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:193,1
    - Dst: BufferAppend
      Src: /src/core/libntech/tests/unit/buffer_test.c:195,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:197,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:198,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:198,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:199,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:200,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:200,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:201,1
    - Dst: BufferAppend
      Src: /src/core/libntech/tests/unit/buffer_test.c:203,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:204,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:204,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:206,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:207,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:208,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:208,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/buffer_test.c:210,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/buffer_test.c:211,1
    - Dst: strcat
      Src: /src/core/libntech/tests/unit/buffer_test.c:212,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:213,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:214,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:214,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/buffer_test.c:219,1
    - Dst: BufferAppend
      Src: /src/core/libntech/tests/unit/buffer_test.c:220,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:221,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:221,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:223,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:224,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:224,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:225,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:226,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:226,1
    - Dst: BufferAppend
      Src: /src/core/libntech/tests/unit/buffer_test.c:236,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:237,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:237,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:238,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:239,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:239,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/buffer_test.c:241,1
    - Dst: strcpy
      Src: /src/core/libntech/tests/unit/buffer_test.c:242,1
    - Dst: strcat
      Src: /src/core/libntech/tests/unit/buffer_test.c:243,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:244,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:245,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:245,1
    - Dst: BufferClear
      Src: /src/core/libntech/tests/unit/buffer_test.c:247,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:252,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:253,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:254,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:255,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:256,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 258
    functionName: test_appendBuffer
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_int_equal
    - BufferAppend
    - BufferDestroy
    - strlen
    - assert_true
    - strcat
    - xmalloc
    - BufferClear
    - assert_string_equal
    - xstrdup
    - BufferSize
    - BufferNew
    - free
    - strcpy
    linkageType: ''
    returnType: void
    signature: void test_appendBuffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:277,1
    - Dst: BufferAppend
      Src: /src/core/libntech/tests/unit/buffer_test.c:279,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:280,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:280,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:280,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:281,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:282,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:287,1
    - Dst: BufferAppend
      Src: /src/core/libntech/tests/unit/buffer_test.c:289,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:290,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:290,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:290,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:291,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:292,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:297,1
    - Dst: BufferAppend
      Src: /src/core/libntech/tests/unit/buffer_test.c:299,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:300,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:300,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:300,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:301,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 304
    functionName: test_append_boundaries
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - BufferAppend
    - BufferDestroy
    - strlen
    - BufferSize
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void test_append_boundaries(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:308,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:309,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:311,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:312,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/buffer_test.c:314,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:317,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:318,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:320,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:321,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:322,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:323,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:325,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:326,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:330,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:330,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:332,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:333,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:333,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:334,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:335,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:335,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:339,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:339,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:341,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:342,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:342,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:343,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:344,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:344,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:345,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:349,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:349,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:350,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:351,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:351,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:352,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:353,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:353,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:357,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:357,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:358,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:359,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:359,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:360,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:361,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:361,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:365,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:365,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:366,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:367,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:367,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:368,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:369,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:369,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:378,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:378,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:379,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:380,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:380,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:381,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:382,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:382,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:386,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:387,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:388,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:402,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:403,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:404,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:408,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:409,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:410,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:415,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:415,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:416,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:417,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:423,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:423,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:424,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:425,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:431,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:431,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:432,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:433,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:437,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:438,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:439,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:440,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:441,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:442,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:443,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:444,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:445,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 447
    functionName: test_printf
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_int_equal
    - BufferDestroy
    - strlen
    - assert_true
    - BufferPrintf
    - xmalloc
    - assert_string_equal
    - xstrdup
    - BufferSize
    - BufferNew
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void test_printf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/tests/unit/buffer_test.c:452,1
    - Dst: BufferVPrintf
      Src: /src/core/libntech/tests/unit/buffer_test.c:454,1
    - Dst: va_end
      Src: /src/core/libntech/tests/unit/buffer_test.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - fmt
    argTypes:
    - Buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 457
    functionName: test_vprintf_helper
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - va_end
    - BufferVPrintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int test_vprintf_helper(Buffer *buffer, char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:461,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:462,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:464,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:465,1
    - Dst: xmalloc
      Src: /src/core/libntech/tests/unit/buffer_test.c:467,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:470,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:471,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:473,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:474,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/buffer_test.c:475,1
    - Dst: strlen
      Src: /src/core/libntech/tests/unit/buffer_test.c:476,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:478,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:479,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:483,1
    - Dst: test_vprintf_helper
      Src: /src/core/libntech/tests/unit/buffer_test.c:483,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:485,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:486,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:486,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:487,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:488,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:488,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:492,1
    - Dst: test_vprintf_helper
      Src: /src/core/libntech/tests/unit/buffer_test.c:492,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:494,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:495,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:495,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:496,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:497,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:497,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/buffer_test.c:498,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:502,1
    - Dst: test_vprintf_helper
      Src: /src/core/libntech/tests/unit/buffer_test.c:502,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:503,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:504,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:504,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:505,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:506,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:506,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:510,1
    - Dst: test_vprintf_helper
      Src: /src/core/libntech/tests/unit/buffer_test.c:510,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:511,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:512,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:512,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:513,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:514,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:514,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:518,1
    - Dst: test_vprintf_helper
      Src: /src/core/libntech/tests/unit/buffer_test.c:518,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:519,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:520,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:520,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:521,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:522,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:522,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:531,1
    - Dst: test_vprintf_helper
      Src: /src/core/libntech/tests/unit/buffer_test.c:531,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:532,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:533,1
    - Dst: BufferData
      Src: /src/core/libntech/tests/unit/buffer_test.c:533,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:534,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:535,1
    - Dst: BufferSize
      Src: /src/core/libntech/tests/unit/buffer_test.c:535,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:539,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:540,1
    - Dst: BufferNew
      Src: /src/core/libntech/tests/unit/buffer_test.c:541,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:555,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:556,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:557,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:561,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:562,1
    - Dst: memset
      Src: /src/core/libntech/tests/unit/buffer_test.c:563,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:568,1
    - Dst: test_vprintf_helper
      Src: /src/core/libntech/tests/unit/buffer_test.c:568,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:569,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:570,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:576,1
    - Dst: test_vprintf_helper
      Src: /src/core/libntech/tests/unit/buffer_test.c:576,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:577,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:578,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:584,1
    - Dst: test_vprintf_helper
      Src: /src/core/libntech/tests/unit/buffer_test.c:584,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:585,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/buffer_test.c:586,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:590,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:591,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:592,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/tests/unit/buffer_test.c:593,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:594,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:595,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:596,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:597,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:598,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/buffer_test.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 600
    functionName: test_vprintf
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 0
    functionsReached:
    - BufferData
    - assert_int_equal
    - BufferDestroy
    - strlen
    - assert_true
    - xmalloc
    - assert_string_equal
    - xstrdup
    - BufferSize
    - BufferNew
    - free
    - test_vprintf_helper
    - memset
    linkageType: ''
    returnType: void
    signature: void test_vprintf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/buffer_test.c:604,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:607,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:608,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:609,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:610,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:611,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:612,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:613,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:614,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:615,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/buffer_test.c:616,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/buffer_test.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 620
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/buffer_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - inp
    - ','
    - expected_key
    - ','
    - expected_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 19
    functionName: single_line_check
    functionSourceFile: /src/core/libntech/tests/unit/env_file_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: single_line_check(inp, expected_key, expected_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:23,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:24,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:26,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:27,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:28,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:30,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:32,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:33,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:35,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:39,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:40,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:41,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:42,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:43,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:46,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:49,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:50,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:53,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:54,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:55,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:56,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:59,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:60,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:61,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:64,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:65,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:66,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:67,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:68,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:69,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:70,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:73,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:74,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:77,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:78,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:79,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:80,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:81,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:84,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:85,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:86,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:87,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:90,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:91,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:92,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:93,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:94,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:95,1
    - Dst: single_line_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 97
    functionName: test_ParseEnvLine
    functionSourceFile: /src/core/libntech/tests/unit/env_file_test.c
    functionUses: 0
    functionsReached:
    - single_line_check
    linkageType: ''
    returnType: void
    signature: void test_ParseEnvLine(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: single_filter_check_moved
    functionSourceFile: /src/core/libntech/tests/unit/env_file_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: single_filter_check_moved(src, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: single_filter_check_in_place
    functionSourceFile: /src/core/libntech/tests/unit/env_file_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: single_filter_check_in_place(src, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: double_filter_check
    functionSourceFile: /src/core/libntech/tests/unit/env_file_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: double_filter_check(src, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - invalid_input
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: filter_expect_null
    functionSourceFile: /src/core/libntech/tests/unit/env_file_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: filter_expect_null(invalid_input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:144,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:145,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:146,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:147,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:148,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:151,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:152,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:153,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:154,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:157,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:158,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:159,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:160,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:161,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:162,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:165,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:166,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:169,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:170,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:173,1
    - Dst: double_filter_check
      Src: /src/core/libntech/tests/unit/env_file_test.c:174,1
    - Dst: filter_expect_null
      Src: /src/core/libntech/tests/unit/env_file_test.c:177,1
    - Dst: filter_expect_null
      Src: /src/core/libntech/tests/unit/env_file_test.c:178,1
    - Dst: filter_expect_null
      Src: /src/core/libntech/tests/unit/env_file_test.c:179,1
    - Dst: filter_expect_null
      Src: /src/core/libntech/tests/unit/env_file_test.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 181
    functionName: test_filtered_copy
    functionSourceFile: /src/core/libntech/tests/unit/env_file_test.c
    functionUses: 0
    functionsReached:
    - filter_expect_null
    - double_filter_check
    linkageType: ''
    returnType: void
    signature: void test_filtered_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/env_file_test.c:185,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/env_file_test.c:189,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/env_file_test.c:190,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/env_file_test.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 196
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/env_file_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RingBufferNew
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:12,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:14,1
    - Dst: RingBufferLength
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:14,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:15,1
    - Dst: RingBufferHead
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:15,1
    - Dst: StringFromLong
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:19,1
    - Dst: RingBufferAppend
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:20,1
    - Dst: assert_true
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:24,1
    - Dst: RingBufferIsFull
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:24,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:25,1
    - Dst: RingBufferLength
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:25,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:29,1
    - Dst: RingBufferLength
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:29,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:32,1
    - Dst: RingBufferHead
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:32,1
    - Dst: RingBufferIteratorNew
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:35,1
    - Dst: RingBufferIteratorNext
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:39,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:41,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:41,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:45,1
    - Dst: RingBufferIteratorNext
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:45,1
    - Dst: RingBufferIteratorDestroy
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:46,1
    - Dst: RingBufferClear
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:48,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:49,1
    - Dst: RingBufferLength
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:49,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:50,1
    - Dst: RingBufferHead
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:50,1
    - Dst: RingBufferDestroy
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 53
    functionName: test_excess
    functionSourceFile: /src/core/libntech/tests/unit/ring_buffer_test.c
    functionUses: 0
    functionsReached:
    - RingBufferClear
    - assert_false
    - assert_int_equal
    - RingBufferAppend
    - RingBufferLength
    - RingBufferNew
    - assert_true
    - StringToLongExitOnError
    - StringFromLong
    - RingBufferIteratorNext
    - RingBufferDestroy
    - RingBufferIteratorNew
    - RingBufferIsFull
    - assert_string_equal
    - RingBufferIteratorDestroy
    - RingBufferHead
    linkageType: ''
    returnType: void
    signature: void test_excess(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RingBufferNew
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:59,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:61,1
    - Dst: RingBufferHead
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:61,1
    - Dst: RingBufferAppend
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:62,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:62,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:63,1
    - Dst: RingBufferHead
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:63,1
    - Dst: RingBufferAppend
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:64,1
    - Dst: xstrdup
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:64,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:65,1
    - Dst: RingBufferHead
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:65,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:67,1
    - Dst: RingBufferLength
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:67,1
    - Dst: RingBufferIteratorNew
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:69,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:70,1
    - Dst: RingBufferIteratorNext
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:70,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:71,1
    - Dst: RingBufferIteratorNext
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:71,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:72,1
    - Dst: RingBufferIteratorNext
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:72,1
    - Dst: RingBufferIteratorDestroy
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:73,1
    - Dst: RingBufferClear
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:75,1
    - Dst: assert_int_equal
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:76,1
    - Dst: RingBufferLength
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:76,1
    - Dst: assert_false
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:77,1
    - Dst: RingBufferHead
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:77,1
    - Dst: RingBufferDestroy
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 80
    functionName: test_shortage
    functionSourceFile: /src/core/libntech/tests/unit/ring_buffer_test.c
    functionUses: 0
    functionsReached:
    - RingBufferClear
    - assert_false
    - RingBufferAppend
    - assert_int_equal
    - RingBufferLength
    - RingBufferNew
    - RingBufferIteratorNext
    - RingBufferDestroy
    - RingBufferIteratorNew
    - assert_string_equal
    - xstrdup
    - RingBufferIteratorDestroy
    - RingBufferHead
    linkageType: ''
    returnType: void
    signature: void test_shortage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:84,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:87,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:88,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/ring_buffer_test.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/ring_buffer_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:7,1
    - Dst: CsvWriterOpen
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:8,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:10,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:11,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:12,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 14
    functionName: test_empty
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - CsvWriterClose
    - StringWriter
    - CsvWriterOpen
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:18,1
    - Dst: CsvWriterOpen
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:19,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:21,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:23,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:24,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:25,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: test_single_field
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - CsvWriterClose
    - StringWriter
    - CsvWriterOpen
    - CsvWriterField
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_single_field(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:31,1
    - Dst: CsvWriterOpen
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:32,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:34,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:35,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:36,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:38,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:39,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:40,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: test_several_fields
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - CsvWriterClose
    - StringWriter
    - CsvWriterOpen
    - CsvWriterField
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_several_fields(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:46,1
    - Dst: CsvWriterOpen
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:47,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:49,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:50,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:51,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:52,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:54,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:55,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:56,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: test_two_records
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - CsvWriterClose
    - StringWriter
    - CsvWriterOpen
    - CsvWriterField
    - assert_string_equal
    - StringWriterClose
    - free
    - CsvWriterNewRecord
    linkageType: ''
    returnType: void
    signature: void test_two_records(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:62,1
    - Dst: CsvWriterOpen
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:63,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:65,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:66,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:67,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:69,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:70,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:71,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: test_empty_record
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - CsvWriterClose
    - StringWriter
    - CsvWriterOpen
    - CsvWriterField
    - assert_string_equal
    - StringWriterClose
    - free
    - CsvWriterNewRecord
    linkageType: ''
    returnType: void
    signature: void test_empty_record(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:77,1
    - Dst: CsvWriterOpen
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:78,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:80,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:81,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:82,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:84,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:85,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:86,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: test_empty_last_record
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - CsvWriterClose
    - StringWriter
    - CsvWriterOpen
    - CsvWriterField
    - assert_string_equal
    - StringWriterClose
    - free
    - CsvWriterNewRecord
    linkageType: ''
    returnType: void
    signature: void test_empty_last_record(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:92,1
    - Dst: CsvWriterOpen
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:93,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:95,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:97,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:98,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:99,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: test_escape
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - CsvWriterClose
    - StringWriter
    - CsvWriterOpen
    - CsvWriterField
    - assert_string_equal
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void test_escape(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:105,1
    - Dst: CsvWriterOpenSpecifyTerminate
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:106,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:108,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:110,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:111,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:112,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: test_terminate
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - CsvWriterClose
    - StringWriter
    - CsvWriterField
    - assert_string_equal
    - StringWriterClose
    - free
    - CsvWriterOpenSpecifyTerminate
    linkageType: ''
    returnType: void
    signature: void test_terminate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:119,1
    - Dst: CsvWriterOpenSpecifyTerminate
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:121,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:122,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:123,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:125,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:126,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:127,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:130,1
    - Dst: CsvWriterOpenSpecifyTerminate
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:132,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:133,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:134,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:135,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:136,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:138,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:139,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:140,1
    - Dst: StringWriter
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:143,1
    - Dst: CsvWriterOpenSpecifyTerminate
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:145,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:146,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:147,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:148,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:149,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:150,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:151,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:152,1
    - Dst: CsvWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:153,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:155,1
    - Dst: assert_string_equal
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:156,1
    - Dst: free
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 159
    functionName: test_no_terminate
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - CsvWriterClose
    - StringWriter
    - CsvWriterField
    - assert_string_equal
    - StringWriterClose
    - free
    - CsvWriterOpenSpecifyTerminate
    - CsvWriterNewRecord
    linkageType: ''
    returnType: void
    signature: void test_no_terminate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_BANNER
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:163,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:166,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:167,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:168,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:169,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:170,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:171,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:172,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:173,1
    - Dst: unit_test
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:174,1
    - Dst: run_tests
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 178
    functionName: main
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 1
    functionsReached:
    - PRINT_TEST_BANNER
    - run_tests
    - unit_test
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:186,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - lineno
    - format
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: __ProgrammingError
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 0
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: "void __ProgrammingError(ARG_UNUSED const char *file,\n                        ARG_UNUSED
      int lineno,\n                        ARG_UNUSED const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:192,1
    - Dst: exit
      Src: /src/core/libntech/tests/unit/csv_writer_test.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: FatalError
    functionSourceFile: /src/core/libntech/tests/unit/csv_writer_test.c
    functionUses: 1
    functionsReached:
    - exit
    - fail
    linkageType: ''
    returnType: void
    signature: void FatalError(ARG_UNUSED char *s, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_compile
      Src: /src/core/libntech/libutils/regex.c:38,1
    - Dst: pcre2_get_error_message
      Src: /src/core/libntech/libutils/regex.c:48,1
    - Dst: Log
      Src: /src/core/libntech/libutils/regex.c:51,1
    - Dst: Log
      Src: /src/core/libntech/libutils/regex.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 62
    functionName: CompileRegex
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 1
    functionsReached:
    - Log
    - pcre2_get_error_message
    - pcre2_compile
    linkageType: ''
    returnType: Regex
    signature: Regex *CompileRegex(const char *pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_code_free
      Src: /src/core/libntech/libutils/regex.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regex
    argTypes:
    - Regex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: RegexDestroy
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 1
    functionsReached:
    - pcre2_code_free
    linkageType: ''
    returnType: void
    signature: void RegexDestroy(Regex *regex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/regex.c:71,1
    - Dst: assert
      Src: /src/core/libntech/libutils/regex.c:72,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/core/libntech/libutils/regex.c:74,1
    - Dst: pcre2_match
      Src: /src/core/libntech/libutils/regex.c:75,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/core/libntech/libutils/regex.c:80,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libntech/libutils/regex.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - regex
    - str
    - start
    - end
    argTypes:
    - Regex*
    - char*
    - size_t*
    - size_t*
    assertStmts:
    - condition: (regex != NULL)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/core/libntech/libutils/regex.c
    - condition: (str != NULL)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/core/libntech/libutils/regex.c
    constantsTouched: []
    func_position:
      end: 104
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 104
    functionName: StringMatchWithPrecompiledRegex
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_free
    - pcre2_get_ovector_pointer
    - assert
    - pcre2_match_data_create_from_pattern
    - pcre2_match
    linkageType: ''
    returnType: bool
    signature: "bool StringMatchWithPrecompiledRegex(const Regex *regex, const char
      *str,\n                                     size_t *start, size_t *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libntech/libutils/regex.c:108,1
    - Dst: StringMatchWithPrecompiledRegex
      Src: /src/core/libntech/libutils/regex.c:115,1
    - Dst: RegexDestroy
      Src: /src/core/libntech/libutils/regex.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pattern
    - str
    - start
    - end
    argTypes:
    - char*
    - char*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: StringMatch
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 1
    functionsReached:
    - StringMatchWithPrecompiledRegex
    - RegexDestroy
    - CompileRegex
    linkageType: ''
    returnType: bool
    signature: bool StringMatch(const char *pattern, const char *str, size_t *start,
      size_t *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libntech/libutils/regex.c:122,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libntech/libutils/regex.c:128,1
    - Dst: RegexDestroy
      Src: /src/core/libntech/libutils/regex.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pattern
    - str
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: StringMatchFull
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 5
    functionsReached:
    - RegexDestroy
    - StringMatchFullWithPrecompiledRegex
    - CompileRegex
    linkageType: ''
    returnType: bool
    signature: bool StringMatchFull(const char *pattern, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchWithPrecompiledRegex
      Src: /src/core/libntech/libutils/regex.c:137,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/regex.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - regex
    - str
    argTypes:
    - Regex*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: StringMatchFullWithPrecompiledRegex
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 1
    functionsReached:
    - StringMatchWithPrecompiledRegex
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool StringMatchFullWithPrecompiledRegex(const Regex *regex, const
      char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/core/libntech/libutils/regex.c:158,1
    - Dst: pcre2_match
      Src: /src/core/libntech/libutils/regex.c:159,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libntech/libutils/regex.c:166,1
    - Dst: pcre2_pattern_info
      Src: /src/core/libntech/libutils/regex.c:171,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libntech/libutils/regex.c:174,1
    - Dst: pcre2_pattern_info
      Src: /src/core/libntech/libutils/regex.c:179,1
    - Dst: assert
      Src: /src/core/libntech/libutils/regex.c:180,1
    - Dst: pcre2_pattern_info
      Src: /src/core/libntech/libutils/regex.c:189,1
    - Dst: assert
      Src: /src/core/libntech/libutils/regex.c:190,1
    - Dst: pcre2_pattern_info
      Src: /src/core/libntech/libutils/regex.c:191,1
    - Dst: assert
      Src: /src/core/libntech/libutils/regex.c:192,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/core/libntech/libutils/regex.c:195,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/regex.c:196,1
    - Dst: BufferNewFrom
      Src: /src/core/libntech/libutils/regex.c:212,1
    - Dst: BufferNew
      Src: /src/core/libntech/libutils/regex.c:223,1
    - Dst: BufferAppendF
      Src: /src/core/libntech/libutils/regex.c:224,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/regex.c:227,1
    - Dst: BufferNewFrom
      Src: /src/core/libntech/libutils/regex.c:230,1
    - Dst: Log
      Src: /src/core/libntech/libutils/regex.c:232,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/regex.c:235,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/regex.c:235,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/regex.c:236,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libntech/libutils/regex.c:239,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - regex
    - str
    - return_names
    argTypes:
    - Regex*
    - char*
    - bool
    assertStmts:
    - condition: (res == 0)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/core/libntech/libutils/regex.c
    - condition: (res == 0)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/core/libntech/libutils/regex.c
    - condition: (res == 0)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/core/libntech/libutils/regex.c
    constantsTouched: []
    func_position:
      end: 241
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 241
    functionName: StringMatchCapturesWithPrecompiledRegex
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferAppendF
    - pcre2_match_data_free
    - BufferNewFrom
    - pcre2_get_ovector_pointer
    - assert
    - pcre2_match_data_create_from_pattern
    - pcre2_match
    - pcre2_pattern_info
    - SeqNew
    - Log
    - BufferNew
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *StringMatchCapturesWithPrecompiledRegex(const Regex *regex, const
      char *str, const bool return_names)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/regex.c:255,1
    - Dst: assert
      Src: /src/core/libntech/libutils/regex.c:256,1
    - Dst: pcre2_compile
      Src: /src/core/libntech/libutils/regex.c:260,1
    - Dst: StringMatchCapturesWithPrecompiledRegex
      Src: /src/core/libntech/libutils/regex.c:268,1
    - Dst: pcre2_code_free
      Src: /src/core/libntech/libutils/regex.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pattern
    - str
    - return_names
    argTypes:
    - char*
    - char*
    - bool
    assertStmts:
    - condition: (pattern)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/core/libntech/libutils/regex.c
    - condition: (str)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/core/libntech/libutils/regex.c
    constantsTouched: []
    func_position:
      end: 271
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 271
    functionName: StringMatchCaptures
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 1
    functionsReached:
    - assert
    - StringMatchCapturesWithPrecompiledRegex
    - pcre2_compile
    - pcre2_code_free
    linkageType: ''
    returnType: Seq
    signature: Seq *StringMatchCaptures(const char *pattern, const char *str, const
      bool return_names)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libntech/libutils/regex.c:277,1
    - Dst: StringMatchFull
      Src: /src/core/libntech/libutils/regex.c:277,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libntech/libutils/regex.c:284,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/regex.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - value
    - compareTo
    - regex
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: CompareStringOrRegex
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 0
    functionsReached:
    - StringMatchFull
    - NULL_OR_EMPTY
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool CompareStringOrRegex(const char *value, const char *compareTo,
      bool regex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/core/libntech/libutils/regex.c:298,1
    - Dst: pcre2_match
      Src: /src/core/libntech/libutils/regex.c:299,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libntech/libutils/regex.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - regex
    - teststring
    argTypes:
    - Regex*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: RegexPartialMatch
    functionSourceFile: /src/core/libntech/libutils/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_create_from_pattern
    - pcre2_match
    - pcre2_match_data_free
    linkageType: ''
    returnType: bool
    signature: bool RegexPartialMatch(const Regex *regex, const char *teststring)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xvasprintf
      Src: /src/core/libntech/libutils/string_lib.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: StringVFormat
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - xvasprintf
    linkageType: ''
    returnType: char
    signature: char *StringVFormat(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/string_lib.c:54,1
    - Dst: StringVFormat
      Src: /src/core/libntech/libutils/string_lib.c:55,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/string_lib.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: StringFormat
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 6
    functionsReached:
    - va_end
    - StringVFormat
    - va_start
    linkageType: ''
    returnType: char
    signature: char *StringFormat(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:62,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:63,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:64,1
    - Dst: memset
      Src: /src/core/libntech/libutils/string_lib.c:66,1
    - Dst: strncpy
      Src: /src/core/libntech/libutils/string_lib.c:67,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - from
    - to
    - buf_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts:
    - condition: (from != NULL)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (from != to)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (to != NULL)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 87
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 87
    functionName: StringCopy
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 2
    functionsReached:
    - assert
    - strlen
    - strncpy
    - memset
    linkageType: ''
    returnType: size_t
    signature: size_t StringCopy(const char *const from, char *const to, const size_t
      buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:91,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - str
    - seed
    argTypes:
    - char*
    - unsigned int
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: StringHash
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - assert
    - strlen
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int StringHash(const char *str, unsigned int seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringHash
      Src: /src/core/libntech/libutils/string_lib.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - seed
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: StringHash_untyped
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - StringHash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int StringHash_untyped(const void *str, unsigned int seed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isupper
      Src: /src/core/libntech/libutils/string_lib.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: ToLower
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - isupper
    linkageType: ''
    returnType: char
    signature: char ToLower(char ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/core/libntech/libutils/string_lib.c:134,1
    - Dst: ispunct
      Src: /src/core/libntech/libutils/string_lib.c:134,1
    - Dst: isupper
      Src: /src/core/libntech/libutils/string_lib.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 147
    functionName: ToUpper
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - isdigit
    - ispunct
    - isupper
    linkageType: ''
    returnType: char
    signature: char ToUpper(char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUpper
      Src: /src/core/libntech/libutils/string_lib.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: ToUpperStrInplace
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 6
    functionsReached:
    - ToUpper
    linkageType: ''
    returnType: void
    signature: void ToUpperStrInplace(char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToLower
      Src: /src/core/libntech/libutils/string_lib.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: ToLowerStrInplace
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 9
    functionsReached:
    - ToLower
    linkageType: ''
    returnType: void
    signature: void ToLowerStrInplace(char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/string_lib.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: SafeStringDuplicate
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 6
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *SafeStringDuplicate(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/string_lib.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: SafeStringNDuplicate
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - xstrndup
    linkageType: ''
    returnType: char
    signature: char *SafeStringNDuplicate(const char *str, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: SafeStringLength
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int SafeStringLength(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:208,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:209,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/string_lib.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (a != b)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (a == NULL || b == NULL)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 223
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 223
    functionName: NullCompare
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - assert
    - ProgrammingError
    linkageType: ''
    returnType: int
    signature: int NullCompare(const void *const a, const void *const b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libntech/libutils/string_lib.c:235,1
    - Dst: abs
      Src: /src/core/libntech/libutils/string_lib.c:238,1
    - Dst: NullCompare
      Src: /src/core/libntech/libutils/string_lib.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 245
    functionName: StringSafeCompare
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 2
    functionsReached:
    - abs
    - NullCompare
    - strcmp
    linkageType: ''
    returnType: int
    signature: int StringSafeCompare(const char *const a, const char *const b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/libntech/libutils/string_lib.c:255,1
    - Dst: NullCompare
      Src: /src/core/libntech/libutils/string_lib.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: StringSafeCompareN
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - strncmp
    - NullCompare
    linkageType: ''
    returnType: int
    signature: int StringSafeCompareN(const char *const a, const char *const b, const
      size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSafeCompare
      Src: /src/core/libntech/libutils/string_lib.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: StringEqual
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 5
    functionsReached:
    - StringSafeCompare
    linkageType: ''
    returnType: bool
    signature: bool StringEqual(const char *const a, const char *const b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSafeCompareN
      Src: /src/core/libntech/libutils/string_lib.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: StringEqualN
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - StringSafeCompareN
    linkageType: ''
    returnType: bool
    signature: bool StringEqualN(const char *const a, const char *const b, const size_t
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/core/libntech/libutils/string_lib.c:280,1
    - Dst: NullCompare
      Src: /src/core/libntech/libutils/string_lib.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: StringSafeCompare_IgnoreCase
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - NullCompare
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int StringSafeCompare_IgnoreCase(const char *const a, const char *const
      b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/core/libntech/libutils/string_lib.c:295,1
    - Dst: NullCompare
      Src: /src/core/libntech/libutils/string_lib.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 300
    functionName: StringSafeCompareN_IgnoreCase
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - NullCompare
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int StringSafeCompareN_IgnoreCase(const char *const a, const char *const
      b, const size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSafeCompare_IgnoreCase
      Src: /src/core/libntech/libutils/string_lib.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: StringEqual_IgnoreCase
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - StringSafeCompare_IgnoreCase
    linkageType: ''
    returnType: bool
    signature: bool StringEqual_IgnoreCase(const char *const a, const char *const
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSafeCompareN_IgnoreCase
      Src: /src/core/libntech/libutils/string_lib.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: StringEqualN_IgnoreCase
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - StringSafeCompareN_IgnoreCase
    linkageType: ''
    returnType: bool
    signature: bool StringEqualN_IgnoreCase(const char *const a, const char *const
      b, const size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/string_lib.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: StringEqual_untyped
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool StringEqual_untyped(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/string_lib.c:325,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/string_lib.c:328,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/string_lib.c:330,1
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/string_lib.c:333,1
    - Dst: strstr
      Src: /src/core/libntech/libutils/string_lib.c:337,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/string_lib.c:341,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/string_lib.c:342,1
    - Dst: WriterWriteLen
      Src: /src/core/libntech/libutils/string_lib.c:345,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/string_lib.c:346,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - source
    - search
    - replace
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 350
    functionName: SearchAndReplace
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 9
    functionsReached:
    - WriterWriteLen
    - strlen
    - strstr
    - WriterWrite
    - StringWriter
    - strcmp
    - xstrdup
    - ProgrammingError
    - StringWriterClose
    linkageType: ''
    returnType: char
    signature: char *SearchAndReplace(const char *source, const char *search, const
      char *replace)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:361,1
    - Dst: va_start
      Src: /src/core/libntech/libutils/string_lib.c:364,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/string_lib.c:367,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:370,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/string_lib.c:373,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/string_lib.c:375,1
    - Dst: strncpy
      Src: /src/core/libntech/libutils/string_lib.c:378,1
    - Dst: va_start
      Src: /src/core/libntech/libutils/string_lib.c:381,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/string_lib.c:384,1
    - Dst: strcat
      Src: /src/core/libntech/libutils/string_lib.c:387,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/string_lib.c:390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - count
    - first
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 393
    functionName: StringConcatenate
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 4
    functionsReached:
    - xcalloc
    - va_start
    - strlen
    - strncpy
    - va_end
    - strcat
    - va_arg
    linkageType: ''
    returnType: char
    signature: char *StringConcatenate(size_t count, const char *first, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/string_lib.c:403,1
    - Dst: MIN
      Src: /src/core/libntech/libutils/string_lib.c:414,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/string_lib.c:423,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/string_lib.c:426,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - source
    - source_len
    - start
    - len
    argTypes:
    - char*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 430
    functionName: StringSubstring
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 8
    functionsReached:
    - SafeStringDuplicate
    - MIN
    - memcpy
    - xcalloc
    linkageType: ''
    returnType: char
    signature: char *StringSubstring(const char *source, size_t source_len, int start,
      int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/core/libntech/libutils/string_lib.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: StringIsNumeric
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool StringIsNumeric(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isprint
      Src: /src/core/libntech/libutils/string_lib.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 458
    functionName: StringIsPrintable
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - isprint
    linkageType: ''
    returnType: bool
    signature: bool StringIsPrintable(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/core/libntech/libutils/string_lib.c:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 482
    functionName: StringIsSHA1Hex
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - isxdigit
    linkageType: ''
    returnType: bool
    signature: bool StringIsSHA1Hex(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 497
    functionName: EmptyString
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: bool
    signature: bool EmptyString(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nt_static_assert
      Src: /src/core/libntech/libutils/string_lib.c:517,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:518,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:519,1
    - Dst: strtol
      Src: /src/core/libntech/libutils/string_lib.c:524,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:541,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - str
    - value_out
    argTypes:
    - char*
    - long*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (value_out != NULL)
      pos:
        line_end: 518
        line_start: 518
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 553
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 553
    functionName: StringToLong
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - strtol
    - isspace
    - nt_static_assert
    linkageType: ''
    returnType: int
    signature: int StringToLong(const char *str, long *value_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:568,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:569,1
    - Dst: strcspn
      Src: /src/core/libntech/libutils/string_lib.c:571,1
    - Dst: PRINTSIZE
      Src: /src/core/libntech/libutils/string_lib.c:573,1
    - Dst: StringToLong
      Src: /src/core/libntech/libutils/string_lib.c:580,1
    - Dst: strncpy
      Src: /src/core/libntech/libutils/string_lib.c:584,1
    - Dst: StringToLong
      Src: /src/core/libntech/libutils/string_lib.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - str
    - value_out
    argTypes:
    - char*
    - long*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (value_out != NULL)
      pos:
        line_end: 568
        line_start: 568
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 588
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 588
    functionName: StringDecimalToLong
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - strcspn
    - PRINTSIZE
    - strncpy
    - assert
    - StringToLong
    linkageType: ''
    returnType: int
    signature: int StringDecimalToLong(const char *str, long *value_out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:596,1
    - Dst: Log
      Src: /src/core/libntech/libutils/string_lib.c:616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - str_attempted
    - id
    - error_code
    argTypes:
    - char*
    - char*
    - int
    assertStmts:
    - condition: (error_code != 0)
      pos:
        line_end: 595
        line_start: 595
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 617
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 617
    functionName: LogStringToLongError
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 2
    functionsReached:
    - assert
    - Log
    linkageType: ''
    returnType: void
    signature: void LogStringToLongError(const char *str_attempted, const char *id,
      int error_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:630,1
    - Dst: StringToLong
      Src: /src/core/libntech/libutils/string_lib.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - default_return
    argTypes:
    - char*
    - long
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 629
        line_start: 629
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 639
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 639
    functionName: StringToLongDefaultOnError
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 2
    functionsReached:
    - StringToLong
    - assert
    linkageType: ''
    returnType: long
    signature: long StringToLongDefaultOnError(const char *str, long default_return)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:654,1
    - Dst: StringToLong
      Src: /src/core/libntech/libutils/string_lib.c:656,1
    - Dst: LogStringToLongError
      Src: /src/core/libntech/libutils/string_lib.c:659,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/string_lib.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 663
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 663
    functionName: StringToLongExitOnError
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 6
    functionsReached:
    - StringToLong
    - assert
    - LogStringToLongError
    - DoCleanupAndExit
    linkageType: ''
    returnType: long
    signature: long StringToLongExitOnError(const char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nt_static_assert
      Src: /src/core/libntech/libutils/string_lib.c:682,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:683,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:684,1
    - Dst: strtoul
      Src: /src/core/libntech/libutils/string_lib.c:689,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:700,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:717,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - str
    - value_out
    argTypes:
    - char*
    - unsigned long*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (value_out != NULL)
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 729
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 729
    functionName: StringToUlong
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - isspace
    - strtoul
    - nt_static_assert
    linkageType: ''
    returnType: int
    signature: int StringToUlong(const char *str, unsigned long *value_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:742,1
    - Dst: StringToUlong
      Src: /src/core/libntech/libutils/string_lib.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - default_return
    argTypes:
    - char*
    - unsigned long
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 741
        line_start: 741
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 751
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 751
    functionName: StringToUlongDefaultOnError
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - StringToUlong
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long StringToUlongDefaultOnError(const char *str, unsigned
      long default_return)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:767,1
    - Dst: StringToUlong
      Src: /src/core/libntech/libutils/string_lib.c:769,1
    - Dst: LogStringToLongError
      Src: /src/core/libntech/libutils/string_lib.c:772,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/string_lib.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 776
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 776
    functionName: StringToUlongExitOnError
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - DoCleanupAndExit
    - assert
    - LogStringToLongError
    - StringToUlong
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long StringToUlongExitOnError(const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nt_static_assert
      Src: /src/core/libntech/libutils/string_lib.c:791,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/libutils/string_lib.c:792,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:793,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:794,1
    - Dst: strtoimax
      Src: /src/core/libntech/libutils/string_lib.c:800,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:817,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - str
    - value_out
    argTypes:
    - char*
    - int64_t*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 792
        line_start: 792
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (value_out != NULL)
      pos:
        line_end: 793
        line_start: 793
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 829
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 829
    functionName: StringToInt64
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - strtoimax
    - nt_static_assert
    - isspace
    linkageType: ''
    returnType: int
    signature: int StringToInt64(const char *str, int64_t *value_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:845,1
    - Dst: StringToInt64
      Src: /src/core/libntech/libutils/string_lib.c:848,1
    - Dst: LogStringToLongError
      Src: /src/core/libntech/libutils/string_lib.c:851,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/string_lib.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 855
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 855
    functionName: StringToInt64ExitOnError
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - DoCleanupAndExit
    - assert
    - LogStringToLongError
    - StringToInt64
    linkageType: ''
    returnType: int64_t
    signature: int64_t StringToInt64ExitOnError(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:868,1
    - Dst: StringToInt64
      Src: /src/core/libntech/libutils/string_lib.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - default_return
    argTypes:
    - char*
    - int64_t
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 877
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 877
    functionName: StringToInt64DefaultOnError
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - StringToInt64
    linkageType: ''
    returnType: int64_t
    signature: int64_t StringToInt64DefaultOnError(const char *str, int64_t default_return)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:890,1
    - Dst: strtol
      Src: /src/core/libntech/libutils/string_lib.c:893,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (!*end && "Failed to convert string to long")
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 899
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 899
    functionName: StringToLongUnsafe
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - strtol
    linkageType: ''
    returnType: long
    signature: long StringToLongUnsafe(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/string_lib.c:903,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/string_lib.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - number
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 906
    functionName: StringFromLong
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 4
    functionsReached:
    - xcalloc
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *StringFromLong(long number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:912,1
    - Dst: strtod
      Src: /src/core/libntech/libutils/string_lib.c:915,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str)
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (!*end && "Failed to convert string to double")
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 920
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 920
    functionName: StringToDouble
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - strtod
    linkageType: ''
    returnType: double
    signature: double StringToDouble(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFormat
      Src: /src/core/libntech/libutils/string_lib.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - number
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 922
    functionDepth: 3
    functionLinenumber: 922
    functionLinenumberEnd: 925
    functionName: StringFromDouble
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - StringFormat
    linkageType: ''
    returnType: char
    signature: char *StringFromDouble(double number)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 937
    functionName: NULLStringToEmpty
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *NULLStringToEmpty(char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - dst
    - dst_size
    - src_bytes
    - src_len
    argTypes:
    - char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts:
    - condition: (2*i < dst_size)
      pos:
        line_end: 956
        line_start: 956
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 961
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 961
    functionName: StringBytesToHex
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t StringBytesToHex(char *dst, size_t dst_size,\n                        const
      unsigned char *src_bytes, size_t src_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libntech/libutils/string_lib.c:969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - str
    - strs
    argTypes:
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 975
    functionName: IsStrIn
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool IsStrIn(const char *str, const char *const strs[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/core/libntech/libutils/string_lib.c:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - str
    - strs
    argTypes:
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 989
    functionName: IsStrCaseIn
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: bool
    signature: bool IsStrCaseIn(const char *str, const char *const strs[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1000,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - string
    - sep
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1018
    functionName: CountChar
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int CountChar(const char *string, char sep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/libutils/string_lib.c:1027,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - in
    - out
    - outSz
    - from
    - to
    argTypes:
    - char*
    - char*
    - int
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1041
    functionName: ReplaceChar
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - strlen
    - memset
    linkageType: ''
    returnType: void
    signature: void ReplaceChar(const char *in, char *out, int outSz, char from, char
      to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringReplaceN
      Src: /src/core/libntech/libutils/string_lib.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - buf_size
    - find
    - replace
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1053
    functionName: StringReplace
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 6
    functionsReached:
    - StringReplaceN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t StringReplace(char *buf, size_t buf_size,\n                      const
      char *find, const char *replace)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1065,1
    - Dst: strstr
      Src: /src/core/libntech/libutils/string_lib.c:1072,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1078,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1079,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1080,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1096,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1099,1
    - Dst: strstr
      Src: /src/core/libntech/libutils/string_lib.c:1103,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1113,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - buf
    - buf_size
    - find
    - replace
    - n
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    - size_t
    assertStmts:
    - condition: (find[0] != '\0')
      pos:
        line_end: 1064
        line_start: 1064
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1120
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1120
    functionName: StringReplaceN
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 2
    functionsReached:
    - strstr
    - assert
    - memcpy
    - strlen
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t StringReplaceN(char *buf, size_t buf_size,\n                       const
      char *find, const char *replace, size_t n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SafeStringLength
      Src: /src/core/libntech/libutils/string_lib.c:1127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - from
    - to
    argTypes:
    - char*
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1138
    functionName: ReplaceTrailingChar
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - SafeStringLength
    linkageType: ''
    returnType: void
    signature: void ReplaceTrailingChar(char *str, char from, char to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1143
    functionName: StringRefNull
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StringRef
    signature: StringRef StringRefNull(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libutils/string_lib.c:1152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - str
    - len
    - seps
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1167
    functionName: StringCountTokens
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - strchr
    linkageType: ''
    returnType: size_t
    signature: size_t StringCountTokens(const char *str, size_t len, const char *seps)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libutils/string_lib.c:1175,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1179,1
    - Dst: StringRefNull
      Src: /src/core/libntech/libutils/string_lib.c:1199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - str
    - len
    - seps
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts:
    - condition: (i > 0)
      pos:
        line_end: 1178
        line_start: 1178
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1201
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1201
    functionName: StringNextToken
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - strchr
    - assert
    - StringRefNull
    linkageType: ''
    returnType: StringRef
    signature: StringRef StringNextToken(const char *str, size_t len, const char *seps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringNextToken
      Src: /src/core/libntech/libutils/string_lib.c:1205,1
    - Dst: StringNextToken
      Src: /src/core/libntech/libutils/string_lib.c:1216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - str
    - len
    - index
    - seps
    argTypes:
    - char*
    - size_t
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1203
    functionDepth: 2
    functionLinenumber: 1203
    functionLinenumberEnd: 1220
    functionName: StringGetToken
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - StringNextToken
    linkageType: ''
    returnType: StringRef
    signature: StringRef StringGetToken(const char *str, size_t len, size_t index,
      const char *seps)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/string_lib.c:1243,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/string_lib.c:1250,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1259,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/string_lib.c:1262,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1270
    functionName: String2StringArray
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - strchr
    - memcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char **String2StringArray(const char *str, char separator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/string_lib.c:1283,1
    - Dst: free
      Src: /src/core/libntech/libutils/string_lib.c:1287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - strs
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1288
    functionName: FreeStringArray
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void FreeStringArray(char **strs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1297,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1299,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/string_lib.c:1303,1
    - Dst: CountChar
      Src: /src/core/libntech/libutils/string_lib.c:1306,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/string_lib.c:1308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - str
    - to_escape
    - escape_with
    argTypes:
    - char*
    - char
    - char
    assertStmts:
    - condition: (str)
      pos:
        line_end: 1296
        line_start: 1296
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1324
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1324
    functionName: EscapeCharCopy
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - CountChar
    - strlen
    - assert
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *EscapeCharCopy(const char *str, char to_escape, char escape_with)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libutils/string_lib.c:1330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - scanpast
    - input
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1336
    functionName: ScanPastChars
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *ScanPastChars(char *scanpast, char *input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/core/libntech/libutils/string_lib.c:1342,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - str
    - max_length
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (str[i] == '\0' || str[i] == '\n')
      pos:
        line_end: 1351
        line_start: 1351
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1356
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1356
    functionName: StripTrailingNewline
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 2
    functionsReached:
    - assert
    - strnlen
    linkageType: ''
    returnType: int
    signature: int StripTrailingNewline(char *str, size_t max_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/core/libntech/libutils/string_lib.c:1378,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:1386,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1390,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:1390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - str
    - max_length
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (str[i] == '\0' || isspace((unsigned char)str[i]))
      pos:
        line_end: 1389
        line_start: 1389
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1394
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1394
    functionName: Chop
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 10
    functionsReached:
    - assert
    - isspace
    - strnlen
    linkageType: ''
    returnType: int
    signature: int Chop(char *str, size_t max_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1398,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:1401,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1413,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:1414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (s)
      pos:
        line_end: 1397
        line_start: 1397
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1421
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1421
    functionName: TrimWhitespace
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: char *TrimWhitespace(char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1439,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1441,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1442,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1456,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 1438
        line_start: 1438
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (length == strlen(data))
      pos:
        line_end: 1455
        line_start: 1455
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (data[length] == '\0')
      pos:
        line_end: 1441
        line_start: 1441
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1459
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1459
    functionName: TrimCSVLineCRLF
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t TrimCSVLineCRLF(char *const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1473,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1474,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1474,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1475,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1475,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1476,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:1476,1
    - Dst: TrimCSVLineCRLF
      Src: /src/core/libntech/libutils/string_lib.c:1478,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1479,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1479,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1480,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1481,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:1481,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1482,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/string_lib.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 1472
        line_start: 1472
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (strlen(data) < 4096)
      pos:
        line_end: 1474
        line_start: 1474
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (strlen(data) > 0)
      pos:
        line_end: 1473
        line_start: 1473
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (!isspace(data[0]))
      pos:
        line_end: 1475
        line_start: 1475
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (length == strlen(data))
      pos:
        line_end: 1478
        line_start: 1478
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (!isspace(data[length - 1]))
      pos:
        line_end: 1480
        line_start: 1480
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (!isspace(data[0]))
      pos:
        line_end: 1481
        line_start: 1481
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (length > 0)
      pos:
        line_end: 1479
        line_start: 1479
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1485
      start: 1471
    functionDepth: 2
    functionLinenumber: 1471
    functionLinenumberEnd: 1485
    functionName: TrimCSVLineCRLFStrict
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - isspace
    - TrimCSVLineCRLF
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t TrimCSVLineCRLFStrict(char *const data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1489,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1490,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1490,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1491,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1491,1
    - Dst: memmove
      Src: /src/core/libntech/libutils/string_lib.c:1495,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - start
    - end
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 1488
        line_start: 1488
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (start <= end && end <= strlen(s))
      pos:
        line_end: 1489
        line_start: 1489
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: ((end - start) <= strlen(s))
      pos:
        line_end: 1490
        line_start: 1490
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1499
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1499
    functionName: StringCloseHole
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - memmove
    - assert
    - strlen
    linkageType: ''
    returnType: void
    signature: void StringCloseHole(char *s, const size_t start, const size_t end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1503,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1504,1
    - Dst: ToLower
      Src: /src/core/libntech/libutils/string_lib.c:1517,1
    - Dst: ToLower
      Src: /src/core/libntech/libutils/string_lib.c:1518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - str
    - suffix
    - case_fold
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1528
    functionName: StringEndsWithCase
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - ToLower
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool StringEndsWithCase(const char *str, const char *suffix, const
      bool case_fold)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEndsWithCase
      Src: /src/core/libntech/libutils/string_lib.c:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1530
    functionDepth: 2
    functionLinenumber: 1530
    functionLinenumberEnd: 1533
    functionName: StringEndsWith
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - StringEndsWithCase
    linkageType: ''
    returnType: bool
    signature: bool StringEndsWith(const char *str, const char *suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1537,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - str
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1553
    functionName: StringStartsWith
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 4
    functionsReached:
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool StringStartsWith(const char *str, const char *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - c
    - buf_size
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1564
    functionDepth: 0
    functionLinenumber: 1564
    functionLinenumberEnd: 1575
    functionName: memcchr
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *memcchr(const void *buf, int c, size_t buf_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/core/libntech/libutils/string_lib.c:1592,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1596,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - isp
    - limit
    - exclude
    - obuf
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1606
    functionName: StringNotMatchingSetCapped
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - memcpy
    - strcspn
    linkageType: ''
    returnType: bool
    signature: "bool StringNotMatchingSetCapped(const char *isp, size_t limit,\n                      const
      char *exclude, char *obuf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - dst
    - src
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1621
    functionName: StringAppend
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool StringAppend(char *dst, const char *src, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/core/libntech/libutils/string_lib.c:1634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1649
    functionName: StringCanonify
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: char
    signature: char *StringCanonify(char *dst, const char *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1656,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1657,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - path
    - path_size
    - leaf
    - sep
    argTypes:
    - char*
    - size_t
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1674
    functionName: PathAppend
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool PathAppend(char *path, size_t path_size, const char *leaf, char
      sep)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1697,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1698,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1708,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1713,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - dst
    - dst_size
    - dst_len
    - src
    - src_len
    argTypes:
    - char*
    - size_t
    - size_t*
    - char*
    - size_t
    assertStmts:
    - condition: (dlen + slen >= dst_size)
      pos:
        line_end: 1712
        line_start: 1712
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1722
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1722
    functionName: StrCat
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 2
    functionsReached:
    - memcpy
    - assert
    - strlen
    linkageType: ''
    returnType: void
    signature: "void StrCat(char *dst, size_t dst_size, size_t *dst_len,\n            const
      char *src, size_t src_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1737,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1738,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/string_lib.c:1758,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - dst
    - dst_size
    - dst_len
    - src
    - sep
    argTypes:
    - char*
    - size_t
    - size_t*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1734
    functionDepth: 1
    functionLinenumber: 1734
    functionLinenumberEnd: 1770
    functionName: StrCatDelim
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 2
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: "void StrCatDelim(char *dst, size_t dst_size, size_t *dst_len,\n                 const
      char *src, char sep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/core/libntech/libutils/string_lib.c:1778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1774
    functionDepth: 0
    functionLinenumber: 1774
    functionLinenumberEnd: 1783
    functionName: CanonifyNameInPlace
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 7
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: void
    signature: void CanonifyNameInPlace(char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1790,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1791,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1792,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1793,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1793,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1794,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1794,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1795,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1796,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1798,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/string_lib.c:1805,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/libutils/string_lib.c:1807,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - supplied
    - longopt
    - shortopt
    argTypes:
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (supplied != NULL)
      pos:
        line_end: 1789
        line_start: 1789
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (strlen(shortopt) == 2)
      pos:
        line_end: 1792
        line_start: 1792
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (shortopt != NULL)
      pos:
        line_end: 1790
        line_start: 1790
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (longopt != NULL)
      pos:
        line_end: 1791
        line_start: 1791
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (strlen(longopt) >= 3)
      pos:
        line_end: 1793
        line_start: 1793
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (shortopt[0] == '-' && shortopt[1] != '-')
      pos:
        line_end: 1794
        line_start: 1794
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (longopt[0] == '-' && longopt[1] == '-' && longopt[2] != '-')
      pos:
        line_end: 1795
        line_start: 1795
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1808
      start: 1785
    functionDepth: 4
    functionLinenumber: 1785
    functionLinenumberEnd: 1808
    functionName: StringMatchesOption
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - StringEqualN_IgnoreCase
    - StringEqual
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool StringMatchesOption(\n    const char *const supplied,\n    const
      char *const longopt,\n    const char *const shortopt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1816,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.c:1817,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1819,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_lib.c:1820,1
    - Dst: MIN
      Src: /src/core/libntech/libutils/string_lib.c:1822,1
    - Dst: strncmp
      Src: /src/core/libntech/libutils/string_lib.c:1824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - str
    - sub
    - from
    - to
    argTypes:
    - char*
    - char*
    - size_t
    - size_t
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 1815
        line_start: 1815
        source_file: /src/core/libntech/libutils/string_lib.c
    - condition: (sub != NULL)
      pos:
        line_end: 1816
        line_start: 1816
        source_file: /src/core/libntech/libutils/string_lib.c
    constantsTouched: []
    func_position:
      end: 1830
      start: 1810
    functionDepth: 1
    functionLinenumber: 1810
    functionLinenumberEnd: 1830
    functionName: StringFind
    functionSourceFile: /src/core/libntech/libutils/string_lib.c
    functionUses: 1
    functionsReached:
    - strncmp
    - assert
    - MIN
    - strlen
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t StringFind(\n    const char *const str,\n    const char *const
      sub,\n    const size_t from,\n    const size_t to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dividend
    - divisor
    argTypes:
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: UnsignedModulus
    functionSourceFile: /src/core/libntech/libutils/misc_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long UnsignedModulus(long dividend, long divisor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: UpperPowerOfTwo
    functionSourceFile: /src/core/libntech/libutils/misc_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t UpperPowerOfTwo(size_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/misc_lib.c:59,1
    - Dst: xasprintf
      Src: /src/core/libntech/libutils/misc_lib.c:60,1
    - Dst: vfprintf
      Src: /src/core/libntech/libutils/misc_lib.c:61,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/misc_lib.c:62,1
    - Dst: free
      Src: /src/core/libntech/libutils/misc_lib.c:64,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/misc_lib.c:66,1
    - Dst: abort
      Src: /src/core/libntech/libutils/misc_lib.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - file
    - lineno
    - format
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: __ProgrammingError
    functionSourceFile: /src/core/libntech/libutils/misc_lib.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - vfprintf
    - va_start
    - va_end
    - xasprintf
    - abort
    - free
    linkageType: ''
    returnType: void
    signature: void __ProgrammingError(const char *file, int lineno, const char *format,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/misc_lib.c:81,1
    - Dst: xasprintf
      Src: /src/core/libntech/libutils/misc_lib.c:82,1
    - Dst: vfprintf
      Src: /src/core/libntech/libutils/misc_lib.c:85,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/misc_lib.c:86,1
    - Dst: free
      Src: /src/core/libntech/libutils/misc_lib.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - file
    - lineno
    - format
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: __UnexpectedError
    functionSourceFile: /src/core/libntech/libutils/misc_lib.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - va_start
    - va_end
    - xasprintf
    - free
    linkageType: ''
    returnType: void
    signature: void __UnexpectedError(const char *file, int lineno, const char *format,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/core/libntech/libutils/misc_lib.c:95,1
    - Dst: Log
      Src: /src/core/libntech/libutils/misc_lib.c:98,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/misc_lib.c:100,1
    - Dst: time
      Src: /src/core/libntech/libutils/misc_lib.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - clk_id
    - ts
    argTypes:
    - clockid_t
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: xclock_gettime
    functionSourceFile: /src/core/libntech/libutils/misc_lib.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - Log
    - clock_gettime
    - time
    linkageType: ''
    returnType: void
    signature: void xclock_gettime(clockid_t clk_id, struct timespec *ts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/misc_lib.c:117,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libutils/misc_lib.c:118,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/misc_lib.c:119,1
    - Dst: Log
      Src: /src/core/libntech/libutils/misc_lib.c:124,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/misc_lib.c:125,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/misc_lib.c:130,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/misc_lib.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - str
    - str_size
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 137
    functionName: xsnprintf
    functionSourceFile: /src/core/libntech/libutils/misc_lib.c
    functionUses: 43
    functionsReached:
    - GetErrorStr
    - va_start
    - va_end
    - UnexpectedError
    - Log
    - vsnprintf
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void xsnprintf(char *str, size_t str_size, const char *format, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/core/libntech/libutils/misc_lib.c:142,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libntech/libutils/misc_lib.c:144,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/misc_lib.c:144,1
    - Dst: getenv
      Src: /src/core/libntech/libutils/misc_lib.c:149,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/misc_lib.c:156,1
    - Dst: putenv
      Src: /src/core/libntech/libutils/misc_lib.c:164,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/misc_lib.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - name
    - value
    - overwrite
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 166
    functionName: setenv_wrapper
    functionSourceFile: /src/core/libntech/libutils/misc_lib.c
    functionUses: 1
    functionsReached:
    - snprintf
    - getenv
    - putenv
    - setenv
    - strchr
    - xstrdup
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: int
    signature: int setenv_wrapper(const char *name, const char *value, int overwrite)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/misc_lib.c:170,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/misc_lib.c:171,1
    - Dst: free
      Src: /src/core/libntech/libutils/misc_lib.c:174,1
    - Dst: setenv_wrapper
      Src: /src/core/libntech/libutils/misc_lib.c:180,1
    - Dst: free
      Src: /src/core/libntech/libutils/misc_lib.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 183
    functionName: putenv_wrapper
    functionSourceFile: /src/core/libntech/libutils/misc_lib.c
    functionUses: 2
    functionsReached:
    - strchr
    - free
    - setenv_wrapper
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int putenv_wrapper(const char* str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:43,1
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:44,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:46,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/libutils/glob_lib.c:71,1
    - Dst: StringSplit
      Src: /src/core/libntech/libutils/glob_lib.c:85,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/glob_lib.c:90,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/glob_lib.c:93,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/libutils/glob_lib.c:94,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/libutils/glob_lib.c:95,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:96,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:99,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - pattern
    - expanded
    argTypes:
    - char*
    - StringSet*
    assertStmts:
    - condition: (pattern != NULL)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/core/libntech/libutils/glob_lib.c
    - condition: (expanded != NULL)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 101
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 101
    functionName: ExpandBraces
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 2
    functionsReached:
    - SeqDestroy
    - StringSplit
    - ExpandBraces
    - assert
    - SafeStringDuplicate
    - StringConcatenate
    - SeqLength
    - free
    - SeqAt
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void ExpandBraces(const char *const pattern, StringSet *const expanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:113,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/glob_lib.c:114,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libntech/libutils/glob_lib.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts:
    - condition: (path != NULL)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: NormalizePath
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - xstrdup
    - ToLowerStrInplace
    linkageType: ''
    returnType: char
    signature: char *NormalizePath(const char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/glob_lib.c:150,1
    - Dst: SafeStringNDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:154,1
    - Dst: StringContains
      Src: /src/core/libntech/libutils/glob_lib.c:155,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/glob_lib.c:159,1
    - Dst: StringFind
      Src: /src/core/libntech/libutils/glob_lib.c:163,1
    - Dst: SafeStringNDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:169,1
    - Dst: SearchAndReplace
      Src: /src/core/libntech/libutils/glob_lib.c:170,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/glob_lib.c:171,1
    - Dst: SearchAndReplace
      Src: /src/core/libntech/libutils/glob_lib.c:172,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:173,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/glob_lib.c:174,1
    - Dst: SafeStringNDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:179,1
    - Dst: SearchAndReplace
      Src: /src/core/libntech/libutils/glob_lib.c:180,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/glob_lib.c:181,1
    - Dst: SearchAndReplace
      Src: /src/core/libntech/libutils/glob_lib.c:182,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/glob_lib.c:183,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/glob_lib.c:184,1
    - Dst: StringJoin
      Src: /src/core/libntech/libutils/glob_lib.c:186,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/glob_lib.c:187,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:189,1
    - Dst: SearchAndReplace
      Src: /src/core/libntech/libutils/glob_lib.c:193,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/glob_lib.c:194,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/libutils/glob_lib.c:201,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/glob_lib.c:202,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/libutils/glob_lib.c:207,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/glob_lib.c:208,1
    - Dst: BufferAppendF
      Src: /src/core/libntech/libutils/glob_lib.c:212,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/glob_lib.c:213,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 4
    argNames:
    - pattern
    - n
    - left
    - buf
    argTypes:
    - char*
    - size_t
    - size_t
    - Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 216
    functionName: TranslateBracket
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 1
    functionsReached:
    - SeqDestroy
    - BufferAppendF
    - SafeStringNDuplicate
    - StringContains
    - StringFind
    - SeqNew
    - StringConcatenate
    - StringJoin
    - free
    - FREE_AND_NULL
    - SearchAndReplace
    - BufferAppendString
    - SeqAppend
    linkageType: ''
    returnType: size_t
    signature: "size_t TranslateBracket(\n    const char *const pattern, const size_t
      n, size_t left, Buffer *const buf)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:227,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/glob_lib.c:231,1
    - Dst: BufferNew
      Src: /src/core/libntech/libutils/glob_lib.c:232,1
    - Dst: BufferAppendChar
      Src: /src/core/libntech/libutils/glob_lib.c:246,1
    - Dst: BufferAppendChar
      Src: /src/core/libntech/libutils/glob_lib.c:247,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/glob_lib.c:251,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/glob_lib.c:255,1
    - Dst: TranslateBracket
      Src: /src/core/libntech/libutils/glob_lib.c:259,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/glob_lib.c:263,1
    - Dst: BufferAppendF
      Src: /src/core/libntech/libutils/glob_lib.c:265,1
    - Dst: BufferAppendChar
      Src: /src/core/libntech/libutils/glob_lib.c:269,1
    - Dst: StringFormat
      Src: /src/core/libntech/libutils/glob_lib.c:275,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/glob_lib.c:275,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts:
    - condition: (pattern != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 278
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 278
    functionName: TranslateGlob
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 1
    functionsReached:
    - BufferData
    - BufferDestroy
    - TranslateBracket
    - BufferAppendF
    - strlen
    - assert
    - BufferAppendChar
    - strchr
    - StringFormat
    - BufferNew
    - BufferAppendString
    linkageType: ''
    returnType: char
    signature: char *TranslateGlob(const char *const pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:282,1
    - Dst: strpbrk
      Src: /src/core/libntech/libutils/glob_lib.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 300
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 300
    functionName: IsWildcardPattern
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 1
    functionsReached:
    - strpbrk
    - assert
    linkageType: ''
    returnType: bool
    signature: bool IsWildcardPattern(const char *const str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:304,1
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:305,1
    - Dst: NormalizePath
      Src: /src/core/libntech/libutils/glob_lib.c:307,1
    - Dst: NormalizePath
      Src: /src/core/libntech/libutils/glob_lib.c:308,1
    - Dst: StringSetNew
      Src: /src/core/libntech/libutils/glob_lib.c:310,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/libutils/glob_lib.c:311,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/glob_lib.c:312,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libntech/libutils/glob_lib.c:315,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libntech/libutils/glob_lib.c:316,1
    - Dst: TranslateGlob
      Src: /src/core/libntech/libutils/glob_lib.c:318,1
    - Dst: StringMatchFull
      Src: /src/core/libntech/libutils/glob_lib.c:319,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:320,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:323,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - _pattern
    - _filename
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (_pattern != NULL)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/core/libntech/libutils/glob_lib.c
    - condition: (_filename != NULL)
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 327
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 327
    functionName: GlobMatch
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 1
    functionsReached:
    - ExpandBraces
    - assert
    - StringSetIteratorNext
    - TranslateGlob
    - StringSetDestroy
    - NormalizePath
    - StringMatchFull
    - StringSetIteratorInit
    - free
    - StringSetNew
    - FREE_AND_NULL
    linkageType: ''
    returnType: bool
    signature: bool GlobMatch(const char *const _pattern, const char *const _filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:344,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/glob_lib.c:347,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/glob_lib.c:349,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/glob_lib.c:350,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/glob_lib.c:353,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/glob_lib.c:354,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/glob_lib.c:355,1
    - Dst: components::components
      Src: /src/core/libntech/libutils/glob_lib.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 361
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 361
    functionName: GlobFindDataCopy
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 0
    functionsReached:
    - components::components
    - assert
    - SeqAppend
    - SeqNew
    - xmalloc
    - xstrdup
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void *GlobFindDataCopy(void *const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:369,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:372,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts:
    - condition: (_data != NULL)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 374
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 374
    functionName: GlobFindDataDestroy
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 0
    functionsReached:
    - assert
    - SeqDestroy
    - free
    linkageType: ''
    returnType: void
    signature: void GlobFindDataDestroy(void *const _data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Path_JoinAlloc
      Src: /src/core/libntech/libutils/glob_lib.c:389,1
    - Dst: GetShortPathNameA
      Src: /src/core/libntech/libutils/glob_lib.c:392,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:395,1
    - Dst: GetLastError
      Src: /src/core/libntech/libutils/glob_lib.c:398,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:399,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:405,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:411,1
    - Dst: basename
      Src: /src/core/libntech/libutils/glob_lib.c:415,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/glob_lib.c:416,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:418,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:422,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:423,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:425,1
    - Dst: UNUSED
      Src: /src/core/libntech/libutils/glob_lib.c:427,1
    - Dst: UNUSED
      Src: /src/core/libntech/libutils/glob_lib.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - dirpath
    - filename
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 431
    functionName: ConvertLongNameToShortName
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 0
    functionsReached:
    - GetShortPathNameA
    - UNUSED
    - Path_JoinAlloc
    - GetLastError
    - SafeStringDuplicate
    - Log
    - free
    - basename
    - StringEqual
    linkageType: ''
    returnType: char
    signature: "char *ConvertLongNameToShortName(\n    const char *const dirpath,
      const char *const filename)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:443,1
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:444,1
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:445,1
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:446,1
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:449,1
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:450,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/glob_lib.c:452,1
    - Dst: StringFormat
      Src: /src/core/libntech/libutils/glob_lib.c:457,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/glob_lib.c:458,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:459,1
    - Dst: SeqClear
      Src: /src/core/libntech/libutils/glob_lib.c:464,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/glob_lib.c:469,1
    - Dst: SeqSoftRemove
      Src: /src/core/libntech/libutils/glob_lib.c:470,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/glob_lib.c:475,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/glob_lib.c:475,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/glob_lib.c:477,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/glob_lib.c:478,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/glob_lib.c:481,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/glob_lib.c:484,1
    - Dst: ConvertLongNameToShortName
      Src: /src/core/libntech/libutils/glob_lib.c:485,1
    - Dst: GlobMatch
      Src: /src/core/libntech/libutils/glob_lib.c:486,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:488,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:492,1
    - Dst: GlobMatch
      Src: /src/core/libntech/libutils/glob_lib.c:494,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:499,1
    - Dst: SeqSet
      Src: /src/core/libntech/libutils/glob_lib.c:504,1
    - Dst: SeqSet
      Src: /src/core/libntech/libutils/glob_lib.c:511,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:512,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:520,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/glob_lib.c:524,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/glob_lib.c:527,1
    - Dst: ConvertLongNameToShortName
      Src: /src/core/libntech/libutils/glob_lib.c:528,1
    - Dst: GlobMatch
      Src: /src/core/libntech/libutils/glob_lib.c:529,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/glob_lib.c:531,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/glob_lib.c:532,1
    - Dst: Path_JoinAlloc
      Src: /src/core/libntech/libutils/glob_lib.c:533,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:534,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/glob_lib.c:540,1
    - Dst: GlobMatch
      Src: /src/core/libntech/libutils/glob_lib.c:542,1
    - Dst: Path_JoinAlloc
      Src: /src/core/libntech/libutils/glob_lib.c:544,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:545,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/glob_lib.c:551,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:553,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:556,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - dirpath
    - dirnames
    - filenames
    - _data
    argTypes:
    - char*
    - Seq*
    - Seq*
    - void*
    assertStmts:
    - condition: (dirnames != NULL)
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/core/libntech/libutils/glob_lib.c
    - condition: (data->matches != NULL)
      pos:
        line_end: 449
        line_start: 449
        source_file: /src/core/libntech/libutils/glob_lib.c
    - condition: (data->components != NULL)
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/core/libntech/libutils/glob_lib.c
    - condition: (dirpath != NULL)
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/core/libntech/libutils/glob_lib.c
    - condition: (_data != NULL)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/core/libntech/libutils/glob_lib.c
    - condition: (filenames != NULL)
      pos:
        line_end: 444
        line_start: 444
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 557
      start: 437
    functionDepth: 5
    functionLinenumber: 437
    functionLinenumberEnd: 557
    functionName: PathWalkCallback
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 0
    functionsReached:
    - SeqSet
    - assert
    - ConvertLongNameToShortName
    - Path_JoinAlloc
    - GlobMatch
    - SeqClear
    - StringFormat
    - Log
    - xstrdup
    - SeqLength
    - free
    - SeqSoftRemove
    - SeqAt
    - StringEqual
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: "void PathWalkCallback(\n    const char *const dirpath,\n    Seq *const
      dirnames,\n    const Seq *const filenames,\n    void *const _data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:565,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/glob_lib.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - void*
    assertStmts:
    - condition: (item != NULL)
      pos:
        line_end: 564
        line_start: 564
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 4
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: EmptyStringFilter
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 0
    functionsReached:
    - assert
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool EmptyStringFilter(void *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:596,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/glob_lib.c:599,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/glob_lib.c:601,1
    - Dst: IsWildcardPattern
      Src: /src/core/libntech/libutils/glob_lib.c:602,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:614,1
    - Dst: Path_JoinAlloc
      Src: /src/core/libntech/libutils/glob_lib.c:615,1
    - Dst: Path_JoinAlloc
      Src: /src/core/libntech/libutils/glob_lib.c:619,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:621,1
    - Dst: SeqSoftRemove
      Src: /src/core/libntech/libutils/glob_lib.c:626,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:627,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:633,1
    - Dst: stat
      Src: /src/core/libntech/libutils/glob_lib.c:640,1
    - Dst: S_ISDIR
      Src: /src/core/libntech/libutils/glob_lib.c:640,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:642,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - seed
    - components
    argTypes:
    - char*
    - Seq*
    assertStmts:
    - condition: (components != NULL)
      pos:
        line_end: 595
        line_start: 595
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 646
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 646
    functionName: PeelLiteralPrefix
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 0
    functionsReached:
    - stat
    - assert
    - SafeStringDuplicate
    - Path_JoinAlloc
    - S_ISDIR
    - IsWildcardPattern
    - SeqLength
    - free
    - SeqSoftRemove
    - SeqAt
    linkageType: ''
    returnType: char
    signature: char *PeelLiteralPrefix(const char *const seed, Seq *const components)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/glob_lib.c:650,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/glob_lib.c:652,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/glob_lib.c:655,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/glob_lib.c:658,1
    - Dst: StringSetNew
      Src: /src/core/libntech/libutils/glob_lib.c:660,1
    - Dst: ExpandBraces
      Src: /src/core/libntech/libutils/glob_lib.c:661,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libntech/libutils/glob_lib.c:663,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libntech/libutils/glob_lib.c:664,1
    - Dst: StringSplit
      Src: /src/core/libntech/libutils/glob_lib.c:668,1
    - Dst: SeqFilter
      Src: /src/core/libntech/libutils/glob_lib.c:670,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libntech/libutils/glob_lib.c:672,1
    - Dst: IsWindowsNetworkPath
      Src: /src/core/libntech/libutils/glob_lib.c:674,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/glob_lib.c:677,1
    - Dst: StringFormat
      Src: /src/core/libntech/libutils/glob_lib.c:680,1
    - Dst: SeqRemoveRange
      Src: /src/core/libntech/libutils/glob_lib.c:681,1
    - Dst: PathWalk
      Src: /src/core/libntech/libutils/glob_lib.c:683,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:689,1
    - Dst: IsWindowsDiskPath
      Src: /src/core/libntech/libutils/glob_lib.c:691,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/glob_lib.c:695,1
    - Dst: SeqSoftRemoveRange
      Src: /src/core/libntech/libutils/glob_lib.c:696,1
    - Dst: PathWalk
      Src: /src/core/libntech/libutils/glob_lib.c:698,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:704,1
    - Dst: PeelLiteralPrefix
      Src: /src/core/libntech/libutils/glob_lib.c:710,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:713,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:717,1
    - Dst: PathWalk
      Src: /src/core/libntech/libutils/glob_lib.c:721,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:727,1
    - Dst: PeelLiteralPrefix
      Src: /src/core/libntech/libutils/glob_lib.c:738,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:741,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:745,1
    - Dst: PathWalk
      Src: /src/core/libntech/libutils/glob_lib.c:749,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:755,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:758,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:761,1
    - Dst: SeqSort
      Src: /src/core/libntech/libutils/glob_lib.c:762,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts:
    - condition: (pattern != NULL)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/core/libntech/libutils/glob_lib.c
    constantsTouched: []
    func_position:
      end: 765
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 765
    functionName: GlobFind
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 1
    functionsReached:
    - ExpandBraces
    - IsAbsoluteFileName
    - Log
    - free
    - StringSetNew
    - StringEqual
    - SeqDestroy
    - SeqSoftRemoveRange
    - StringFormat
    - SeqAt
    - StringSplit
    - IsWindowsDiskPath
    - assert
    - SeqNew
    - SeqFilter
    - SeqRemoveRange
    - StringSetIteratorInit
    - PathWalk
    - StringSetIteratorNext
    - StringSetDestroy
    - SeqSort
    - IsWindowsNetworkPath
    - PeelLiteralPrefix
    linkageType: ''
    returnType: Seq
    signature: Seq *GlobFind(const char *pattern)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libntech/libutils/glob_lib.c:771,1
    - Dst: strstr
      Src: /src/core/libntech/libutils/glob_lib.c:775,1
    - Dst: SearchAndReplace
      Src: /src/core/libntech/libutils/glob_lib.c:782,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:783,1
    - Dst: GlobFind
      Src: /src/core/libntech/libutils/glob_lib.c:786,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/glob_lib.c:787,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:790,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/glob_lib.c:790,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/libutils/glob_lib.c:791,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/glob_lib.c:793,1
    - Dst: Log
      Src: /src/core/libntech/libutils/glob_lib.c:798,1
    - Dst: SearchAndReplace
      Src: /src/core/libntech/libutils/glob_lib.c:805,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:806,1
    - Dst: glob
      Src: /src/core/libntech/libutils/glob_lib.c:810,1
    - Dst: stat
      Src: /src/core/libntech/libutils/glob_lib.c:814,1
    - Dst: S_ISDIR
      Src: /src/core/libntech/libutils/glob_lib.c:816,1
    - Dst: StringFormat
      Src: /src/core/libntech/libutils/glob_lib.c:817,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/glob_lib.c:818,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/libutils/glob_lib.c:819,1
    - Dst: globfree
      Src: /src/core/libntech/libutils/glob_lib.c:822,1
    - Dst: free
      Src: /src/core/libntech/libutils/glob_lib.c:825,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 769
    functionDepth: 5
    functionLinenumber: 769
    functionLinenumberEnd: 829
    functionName: GlobFileList
    functionSourceFile: /src/core/libntech/libutils/glob_lib.c
    functionUses: 2
    functionsReached:
    - stat
    - StringSetAdd
    - SeqDestroy
    - strstr
    - SafeStringDuplicate
    - globfree
    - S_ISDIR
    - Log
    - StringFormat
    - free
    - GlobFind
    - SeqLength
    - StringSetNew
    - SearchAndReplace
    - glob
    - SeqAt
    linkageType: ''
    returnType: StringSet
    signature: StringSet *GlobFileList(const char *pattern)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libntech/libutils/version_comparison.c:12,1
    - Dst: sscanf
      Src: /src/core/libntech/libutils/version_comparison.c:22,1
    - Dst: assert
      Src: /src/core/libntech/libutils/version_comparison.c:38,1
    - Dst: assert
      Src: /src/core/libntech/libutils/version_comparison.c:45,1
    - Dst: assert
      Src: /src/core/libntech/libutils/version_comparison.c:57,1
    - Dst: assert
      Src: /src/core/libntech/libutils/version_comparison.c:64,1
    - Dst: assert
      Src: /src/core/libntech/libutils/version_comparison.c:76,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (a_minor == b_minor)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/core/libntech/libutils/version_comparison.c
    - condition: (a_major == b_major)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/core/libntech/libutils/version_comparison.c
    - condition: (a_num >= 2 && b_num >= 2)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/core/libntech/libutils/version_comparison.c
    - condition: (a_num == 3 && b_num == 3)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/core/libntech/libutils/version_comparison.c
    - condition: (a_patch == b_patch)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/core/libntech/libutils/version_comparison.c
    constantsTouched: []
    func_position:
      end: 79
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 79
    functionName: CompareVersion
    functionSourceFile: /src/core/libntech/libutils/version_comparison.c
    functionUses: 1
    functionsReached:
    - sscanf
    - assert
    linkageType: ''
    returnType: VersionComparison
    signature: VersionComparison CompareVersion(const char *a, const char *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CompareVersion
      Src: /src/core/libntech/libutils/version_comparison.c:84,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/version_comparison.c:89,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/version_comparison.c:89,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/version_comparison.c:93,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/version_comparison.c:97,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/version_comparison.c:101,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/version_comparison.c:105,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/version_comparison.c:109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 114
    functionName: CompareVersionExpression
    functionSourceFile: /src/core/libntech/libutils/version_comparison.c
    functionUses: 1
    functionsReached:
    - CompareVersion
    - StringEqual
    linkageType: ''
    returnType: BooleanOrError
    signature: "BooleanOrError CompareVersionExpression(\n    const char *const a,
      const char *const operator, const char * const b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: Char2Dec
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Char2Dec(o, c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - beginning
    - increment
    argTypes:
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: Char2Hex
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Char2Hex(int beginning, char increment)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/ip_address.c:90,1
    - Dst: sscanf
      Src: /src/core/libntech/libutils/ip_address.c:91,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/ip_address.c:102,1
    - Dst: sscanf
      Src: /src/core/libntech/libutils/ip_address.c:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - source
    - address
    argTypes:
    - char*
    - struct IPV4Address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 115
    functionName: IPV4_hex_parser
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strlen
    linkageType: ''
    returnType: int
    signature: int IPV4_hex_parser(const char *source, struct IPV4Address *address)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/core/libntech/libutils/ip_address.c:180,1
    - Dst: Char2Dec
      Src: /src/core/libntech/libutils/ip_address.c:208,1
    - Dst: Char2Dec
      Src: /src/core/libntech/libutils/ip_address.c:233,1
    - Dst: Char2Dec
      Src: /src/core/libntech/libutils/ip_address.c:256,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 119
    argCount: 2
    argNames:
    - source
    - address
    argTypes:
    - char*
    - struct IPV4Address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 369
    functionName: IPV4_parser
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 1
    functionsReached:
    - isdigit
    - Char2Dec
    linkageType: ''
    returnType: int
    signature: int IPV4_parser(const char *source, struct IPV4Address *address)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/ip_address.c:383,1
    - Dst: sscanf
      Src: /src/core/libntech/libutils/ip_address.c:384,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/ip_address.c:397,1
    - Dst: sscanf
      Src: /src/core/libntech/libutils/ip_address.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - source
    - address
    argTypes:
    - char*
    - struct IPV6Address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 414
    functionName: IPV6_hex_parser
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strlen
    linkageType: ''
    returnType: int
    signature: int IPV6_hex_parser(const char *source, struct IPV6Address *address)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/core/libntech/libutils/ip_address.c:495,1
    - Dst: isdigit
      Src: /src/core/libntech/libutils/ip_address.c:496,1
    - Dst: isalpha
      Src: /src/core/libntech/libutils/ip_address.c:500,1
    - Dst: isupper
      Src: /src/core/libntech/libutils/ip_address.c:502,1
    - Dst: Char2Hex
      Src: /src/core/libntech/libutils/ip_address.c:538,1
    - Dst: Char2Hex
      Src: /src/core/libntech/libutils/ip_address.c:573,1
    - Dst: Char2Hex
      Src: /src/core/libntech/libutils/ip_address.c:620,1
    - Dst: Char2Hex
      Src: /src/core/libntech/libutils/ip_address.c:718,1
    - Dst: Char2Dec
      Src: /src/core/libntech/libutils/ip_address.c:767,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 248
    argCount: 2
    argNames:
    - source
    - address
    argTypes:
    - char*
    - struct IPV6Address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 954
    functionName: IPV6_parser
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 1
    functionsReached:
    - isalpha
    - Char2Dec
    - Char2Hex
    - isxdigit
    - isdigit
    - isupper
    linkageType: ''
    returnType: int
    signature: int IPV6_parser(const char *source, struct IPV6Address *address)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferData
      Src: /src/core/libntech/libutils/ip_address.c:958,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/ip_address.c:963,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:966,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:967,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/libutils/ip_address.c:969,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:971,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:972,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/libutils/ip_address.c:976,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:978,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:979,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:988,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - source
    argTypes:
    - Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 993
    functionName: IPAddressNew
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 3
    functionsReached:
    - BufferData
    - IPV6_parser
    - xmalloc
    - free
    - IPV4_parser
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress *IPAddressNew(Buffer *source)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferData
      Src: /src/core/libntech/libutils/ip_address.c:997,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/ip_address.c:1002,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:1005,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:1006,1
    - Dst: IPV4_hex_parser
      Src: /src/core/libntech/libutils/ip_address.c:1008,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1010,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:1011,1
    - Dst: IPV6_hex_parser
      Src: /src/core/libntech/libutils/ip_address.c:1015,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1017,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:1018,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1027,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - source
    argTypes:
    - Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1032
    functionName: IPAddressNewHex
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 1
    functionsReached:
    - BufferData
    - IPV6_hex_parser
    - xmalloc
    - free
    - IPV4_hex_parser
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress *IPAddressNewHex(Buffer *source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1042,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - address
    argTypes:
    - IPAddress**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1047
    functionName: IPAddressDestroy
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 5
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int IPAddressDestroy(IPAddress **address)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - address
    argTypes:
    - IPAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1056
    functionName: IPAddressType
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IPAddressType(IPAddress *address)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libntech/libutils/ip_address.c:1070,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/libutils/ip_address.c:1072,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/libutils/ip_address.c:1074,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/libutils/ip_address.c:1077,1
    - Dst: BufferNew
      Src: /src/core/libntech/libutils/ip_address.c:1083,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/libutils/ip_address.c:1085,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/libutils/ip_address.c:1088,1
    - Dst: BufferPrintf
      Src: /src/core/libntech/libutils/ip_address.c:1092,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/libutils/ip_address.c:1102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - address
    argTypes:
    - IPAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1106
    functionName: IPAddressGetAddress
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 2
    functionsReached:
    - BufferNew
    - BufferDestroy
    - BufferPrintf
    linkageType: ''
    returnType: Buffer
    signature: Buffer *IPAddressGetAddress(IPAddress *address)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - address
    argTypes:
    - IPAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1130
    functionName: IPAddressGetPort
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IPAddressGetPort(IPAddress *address)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct IPV4Address*
    - struct IPV4Address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1146
    functionName: IPV4Compare
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IPV4Compare(struct IPV4Address *a, struct IPV4Address *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct IPV6Address*
    - struct IPV6Address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1151
    functionDepth: 0
    functionLinenumber: 1151
    functionLinenumberEnd: 1162
    functionName: IPV6Compare
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IPV6Compare(struct IPV6Address *a, struct IPV6Address *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IPV4Compare
      Src: /src/core/libntech/libutils/ip_address.c:1181,1
    - Dst: IPV6Compare
      Src: /src/core/libntech/libutils/ip_address.c:1185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddress*
    - IPAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1188
    functionName: IPAddressIsEqual
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 2
    functionsReached:
    - IPV4Compare
    - IPV6Compare
    linkageType: ''
    returnType: int
    signature: int IPAddressIsEqual(IPAddress *a, IPAddress *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct IPV4Address*
    - struct IPV4Address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1209
    functionName: IPV4CompareLess
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IPV4CompareLess(struct IPV4Address *a, struct IPV4Address *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct IPV6Address*
    - struct IPV6Address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1230
    functionName: IPV6CompareLess
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IPV6CompareLess(struct IPV6Address *a, struct IPV6Address *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/ip_address.c:1244,1
    - Dst: assert
      Src: /src/core/libntech/libutils/ip_address.c:1245,1
    - Dst: assert
      Src: /src/core/libntech/libutils/ip_address.c:1256,1
    - Dst: assert
      Src: /src/core/libntech/libutils/ip_address.c:1261,1
    - Dst: IPV4CompareLess
      Src: /src/core/libntech/libutils/ip_address.c:1266,1
    - Dst: assert
      Src: /src/core/libntech/libutils/ip_address.c:1269,1
    - Dst: IPV6CompareLess
      Src: /src/core/libntech/libutils/ip_address.c:1271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddress*
    - IPAddress*
    assertStmts:
    - condition: (a->type == IP_ADDRESS_TYPE_IPV4 || a->type == IP_ADDRESS_TYPE_IPV6)
      pos:
        line_end: 1243
        line_start: 1243
        source_file: /src/core/libntech/libutils/ip_address.c
    - condition: (a->type == b->type)
      pos:
        line_end: 1260
        line_start: 1260
        source_file: /src/core/libntech/libutils/ip_address.c
    - condition: (b->type == IP_ADDRESS_TYPE_IPV4 || b->type == IP_ADDRESS_TYPE_IPV6)
      pos:
        line_end: 1244
        line_start: 1244
        source_file: /src/core/libntech/libutils/ip_address.c
    - condition: (b->type == IP_ADDRESS_TYPE_IPV4)
      pos:
        line_end: 1255
        line_start: 1255
        source_file: /src/core/libntech/libutils/ip_address.c
    - condition: (type == IP_ADDRESS_TYPE_IPV6)
      pos:
        line_end: 1268
        line_start: 1268
        source_file: /src/core/libntech/libutils/ip_address.c
    constantsTouched: []
    func_position:
      end: 1272
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1272
    functionName: IPAddressCompareLess
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 0
    functionsReached:
    - assert
    - IPV6CompareLess
    - IPV4CompareLess
    linkageType: ''
    returnType: bool
    signature: bool IPAddressCompareLess(IPAddress *a, IPAddress *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BufferData
      Src: /src/core/libntech/libutils/ip_address.c:1276,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/ip_address.c:1285,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:1288,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:1289,1
    - Dst: IPV4_parser
      Src: /src/core/libntech/libutils/ip_address.c:1290,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1292,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:1295,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1305,1
    - Dst: IPV6_parser
      Src: /src/core/libntech/libutils/ip_address.c:1308,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1310,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ip_address.c:1313,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1323,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1331,1
    - Dst: free
      Src: /src/core/libntech/libutils/ip_address.c:1332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - source
    - address
    argTypes:
    - Buffer*
    - IPAddress**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1336
    functionName: IPAddressIsIPAddress
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 1
    functionsReached:
    - BufferData
    - IPV6_parser
    - xmalloc
    - free
    - IPV4_parser
    linkageType: ''
    returnType: bool
    signature: bool IPAddressIsIPAddress(Buffer *source, IPAddress **address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchFull
      Src: /src/core/libntech/libutils/ip_address.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1339
    functionDepth: 3
    functionLinenumber: 1339
    functionLinenumberEnd: 1351
    functionName: StringIsLocalHostIP
    functionSourceFile: /src/core/libntech/libutils/ip_address.c
    functionUses: 1
    functionsReached:
    - StringMatchFull
    linkageType: ''
    returnType: bool
    signature: bool StringIsLocalHostIP(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: CSVCL_BLANK
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_BLANK(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: CSVCL_QUOTE
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_QUOTE(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: CSVCL_SEP
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_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: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: CSVCL_EOL
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_EOL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: CSVCL_ANY1
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_ANY1(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: CSVCL_ANY2
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_ANY2(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: CSVCL_ANY3
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_ANY3(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: CSVCL_ANY4
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_ANY4(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: CSVCL_ANY5
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_ANY5(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: CSVCL_ANY6
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_ANY6(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: CSVCL_ANY7
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_ANY7(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: CSVCL_ANY8
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSVCL_ANY8(x)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/csv_parser.c:76,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/csv_parser.c:83,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/csv_parser.c:83,1
    - Dst: CSVCL_SEP
      Src: /src/core/libntech/libutils/csv_parser.c:99,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/csv_parser.c:102,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/csv_parser.c:102,1
    - Dst: CSVCL_BLANK
      Src: /src/core/libntech/libutils/csv_parser.c:105,1
    - Dst: CSVCL_QUOTE
      Src: /src/core/libntech/libutils/csv_parser.c:110,1
    - Dst: CSVCL_ANY1
      Src: /src/core/libntech/libutils/csv_parser.c:115,1
    - Dst: CSVCL_SEP
      Src: /src/core/libntech/libutils/csv_parser.c:123,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/csv_parser.c:126,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/csv_parser.c:126,1
    - Dst: CSVCL_BLANK
      Src: /src/core/libntech/libutils/csv_parser.c:130,1
    - Dst: CSVCL_QUOTE
      Src: /src/core/libntech/libutils/csv_parser.c:135,1
    - Dst: CSVCL_ANY2
      Src: /src/core/libntech/libutils/csv_parser.c:140,1
    - Dst: CSVCL_SEP
      Src: /src/core/libntech/libutils/csv_parser.c:148,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/csv_parser.c:151,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/csv_parser.c:151,1
    - Dst: CSVCL_QUOTE
      Src: /src/core/libntech/libutils/csv_parser.c:155,1
    - Dst: CSVCL_ANY3
      Src: /src/core/libntech/libutils/csv_parser.c:160,1
    - Dst: CSVCL_SEP
      Src: /src/core/libntech/libutils/csv_parser.c:168,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/csv_parser.c:171,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/csv_parser.c:171,1
    - Dst: CSVCL_BLANK
      Src: /src/core/libntech/libutils/csv_parser.c:174,1
    - Dst: CSVCL_QUOTE
      Src: /src/core/libntech/libutils/csv_parser.c:179,1
    - Dst: CSVCL_ANY4
      Src: /src/core/libntech/libutils/csv_parser.c:184,1
    - Dst: CSVCL_QUOTE
      Src: /src/core/libntech/libutils/csv_parser.c:192,1
    - Dst: CSVCL_ANY5
      Src: /src/core/libntech/libutils/csv_parser.c:197,1
    - Dst: CSVCL_SEP
      Src: /src/core/libntech/libutils/csv_parser.c:206,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/csv_parser.c:209,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/csv_parser.c:209,1
    - Dst: CSVCL_BLANK
      Src: /src/core/libntech/libutils/csv_parser.c:212,1
    - Dst: CSVCL_QUOTE
      Src: /src/core/libntech/libutils/csv_parser.c:216,1
    - Dst: CSVCL_ANY6
      Src: /src/core/libntech/libutils/csv_parser.c:221,1
    - Dst: CSVCL_QUOTE
      Src: /src/core/libntech/libutils/csv_parser.c:229,1
    - Dst: CSVCL_ANY7
      Src: /src/core/libntech/libutils/csv_parser.c:233,1
    - Dst: CSVCL_SEP
      Src: /src/core/libntech/libutils/csv_parser.c:241,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/csv_parser.c:244,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/csv_parser.c:244,1
    - Dst: CSVCL_BLANK
      Src: /src/core/libntech/libutils/csv_parser.c:247,1
    - Dst: CSVCL_ANY8
      Src: /src/core/libntech/libutils/csv_parser.c:256,1
    - Dst: assert
      Src: /src/core/libntech/libutils/csv_parser.c:269,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/csv_parser.c:284,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/csv_parser.c:291,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/csv_parser.c:291,1
    - Dst: free
      Src: /src/core/libntech/libutils/csv_parser.c:300,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/csv_parser.c:307,1
    - Dst: free
      Src: /src/core/libntech/libutils/csv_parser.c:309,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 198
    argCount: 2
    argNames:
    - str
    - newlist
    argTypes:
    - char*
    - Seq**
    assertStmts:
    - condition: (*s == '\0')
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/core/libntech/libutils/csv_parser.c
    - condition: (str)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/core/libntech/libutils/csv_parser.c
    constantsTouched: []
    func_position:
      end: 311
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 311
    functionName: LaunchCsvAutomata
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 0
    functionsReached:
    - CSVCL_SEP
    - CSVCL_ANY7
    - SeqDestroy
    - CSVCL_ANY6
    - strlen
    - assert
    - CSVCL_ANY1
    - CSVCL_BLANK
    - xmalloc
    - CSVCL_ANY4
    - CSVCL_ANY8
    - xstrdup
    - CSVCL_ANY3
    - free
    - CSVCL_ANY2
    - CSVCL_QUOTE
    - CSVCL_ANY5
    - SeqAppend
    linkageType: ''
    returnType: csv_parser_error
    signature: csv_parser_error LaunchCsvAutomata(const char *str, Seq **newlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/csv_parser.c:315,1
    - Dst: LaunchCsvAutomata
      Src: /src/core/libntech/libutils/csv_parser.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 323
    functionName: SeqParseCsvString
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 11
    functionsReached:
    - LaunchCsvAutomata
    - SeqNew
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqParseCsvString(const char *string)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/csv_parser.c:332,1
    - Dst: fgetc
      Src: /src/core/libntech/libutils/csv_parser.c:338,1
    - Dst: feof
      Src: /src/core/libntech/libutils/csv_parser.c:340,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/csv_parser.c:345,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/libutils/csv_parser.c:359,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/csv_parser.c:361,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/csv_parser.c:365,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 366
    functionName: GetCsvLineNext
    functionSourceFile: /src/core/libntech/libutils/csv_parser.c
    functionUses: 2
    functionsReached:
    - WriterClose
    - WriterWriteChar
    - StringWriter
    - feof
    - StringWriterClose
    - fgetc
    - StringWriterLength
    linkageType: ''
    returnType: char
    signature: char *GetCsvLineNext(FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libntech/libutils/proc_keyvalue.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - field
    - value
    - param
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 51
    functionName: KeyNumericParserCallback
    functionSourceFile: /src/core/libntech/libutils/proc_keyvalue.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: bool
    signature: bool KeyNumericParserCallback(const char *field, const char *value,
      void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseKeyValue
      Src: /src/core/libntech/libutils/proc_keyvalue.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - callback
    - param
    argTypes:
    - FILE*
    - KeyNumericValueCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: ParseKeyNumericValue
    functionSourceFile: /src/core/libntech/libutils/proc_keyvalue.c
    functionUses: 0
    functionsReached:
    - ParseKeyValue
    linkageType: ''
    returnType: bool
    signature: bool ParseKeyNumericValue(FILE *fd, KeyNumericValueCallback callback,
      void *param)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/core/libntech/libutils/proc_keyvalue.c:64,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/proc_keyvalue.c:66,1
    - Dst: ferror
      Src: /src/core/libntech/libutils/proc_keyvalue.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - callback
    - param
    argTypes:
    - FILE*
    - KeyValueCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: ParseKeyValue
    functionSourceFile: /src/core/libntech/libutils/proc_keyvalue.c
    functionUses: 1
    functionsReached:
    - strchr
    - fgets
    - ferror
    linkageType: ''
    returnType: bool
    signature: bool ParseKeyValue(FILE *fd, KeyValueCallback callback, void *param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json-utils.c:53,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json-utils.c:54,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (src)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/core/libntech/libutils/json-utils.c
    - condition: (dst)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/core/libntech/libutils/json-utils.c
    constantsTouched: []
    func_position:
      end: 93
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 93
    functionName: filtered_copy
    functionSourceFile: /src/core/libntech/libutils/json-utils.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *filtered_copy(const char *src, char *dst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json-utils.c:110,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json-utils.c:111,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json-utils.c:112,1
    - Dst: TrimWhitespace
      Src: /src/core/libntech/libutils/json-utils.c:118,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libntech/libutils/json-utils.c:119,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/json-utils.c:125,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/json-utils.c:131,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:134,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:141,1
    - Dst: TrimWhitespace
      Src: /src/core/libntech/libutils/json-utils.c:146,1
    - Dst: TrimWhitespace
      Src: /src/core/libntech/libutils/json-utils.c:147,1
    - Dst: filtered_copy
      Src: /src/core/libntech/libutils/json-utils.c:153,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - raw_line
    - key_out
    - value_out
    - filename_for_log
    - linenumber
    argTypes:
    - char*
    - char**
    - char**
    - char*
    - int
    assertStmts:
    - condition: (raw_line)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/core/libntech/libutils/json-utils.c
    - condition: (value_out)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/core/libntech/libutils/json-utils.c
    - condition: (key_out)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/core/libntech/libutils/json-utils.c
    constantsTouched: []
    func_position:
      end: 167
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 167
    functionName: ParseEnvLine
    functionSourceFile: /src/core/libntech/libutils/json-utils.c
    functionUses: 0
    functionsReached:
    - strlen
    - assert
    - filtered_copy
    - TrimWhitespace
    - strchr
    - Log
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: void
    signature: void ParseEnvLine(char *raw_line, char **key_out, char **value_out,
      const char *filename_for_log, int linenumber)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json-utils.c:181,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json-utils.c:182,1
    - Dst: safe_fopen
      Src: /src/core/libntech/libutils/json-utils.c:189,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:192,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/json-utils.c:193,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/libutils/json-utils.c:197,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/json-utils.c:199,1
    - Dst: CfReadLine
      Src: /src/core/libntech/libutils/json-utils.c:200,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/json-utils.c:203,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:206,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:208,1
    - Dst: ParseEnvLine
      Src: /src/core/libntech/libutils/json-utils.c:212,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/libutils/json-utils.c:215,1
    - Dst: feof
      Src: /src/core/libntech/libutils/json-utils.c:219,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/json-utils.c:220,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-utils.c:221,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:225,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/json-utils.c:227,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json-utils.c:228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - input_path
    - size_max
    - json_out
    argTypes:
    - char*
    - size_t
    - JsonElement**
    assertStmts:
    - condition: (input_path != NULL)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/core/libntech/libutils/json-utils.c
    - condition: (json_out != NULL)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/core/libntech/libutils/json-utils.c
    constantsTouched: []
    func_position:
      end: 234
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 234
    functionName: JsonParseEnvFile
    functionSourceFile: /src/core/libntech/libutils/json-utils.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ParseEnvLine
    - JsonDestroy
    - strlen
    - assert
    - JsonObjectAppendString
    - feof
    - safe_fopen
    - xmalloc
    - Log
    - fclose
    - free
    - JsonObjectCreate
    - CfReadLine
    linkageType: ''
    returnType: bool
    signature: bool JsonParseEnvFile(const char *input_path, size_t size_max, JsonElement
      **json_out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json-utils.c:238,1
    - Dst: safe_fopen
      Src: /src/core/libntech/libutils/json-utils.c:246,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:249,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/json-utils.c:250,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/libutils/json-utils.c:254,1
    - Dst: feof
      Src: /src/core/libntech/libutils/json-utils.c:256,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:259,1
    - Dst: GetCsvLineNext
      Src: /src/core/libntech/libutils/json-utils.c:265,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/json-utils.c:269,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:272,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:274,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-utils.c:275,1
    - Dst: SeqParseCsvString
      Src: /src/core/libntech/libutils/json-utils.c:279,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-utils.c:280,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/libutils/json-utils.c:284,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json-utils.c:284,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json-utils.c:286,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/libutils/json-utils.c:288,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json-utils.c:288,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/json-utils.c:291,1
    - Dst: JsonArrayAppendArray
      Src: /src/core/libntech/libutils/json-utils.c:292,1
    - Dst: feof
      Src: /src/core/libntech/libutils/json-utils.c:296,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:300,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/json-utils.c:302,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json-utils.c:303,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/json-utils.c:304,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json-utils.c:308,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:310,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:313,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/json-utils.c:317,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - input_path
    - size_max
    - json_out
    argTypes:
    - char*
    - size_t
    - JsonElement**
    assertStmts:
    - condition: (json_out != NULL)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/core/libntech/libutils/json-utils.c
    constantsTouched: []
    func_position:
      end: 320
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 320
    functionName: JsonParseCsvFile
    functionSourceFile: /src/core/libntech/libutils/json-utils.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - SeqParseCsvString
    - JsonArrayAppendArray
    - JsonDestroy
    - SeqDestroy
    - JsonLength
    - strlen
    - assert
    - feof
    - safe_fopen
    - GetCsvLineNext
    - Log
    - fclose
    - SeqLength
    - free
    - JsonArrayAppendString
    - SeqAt
    - JsonArrayCreate
    linkageType: ''
    returnType: bool
    signature: bool JsonParseCsvFile(const char *input_path, size_t size_max, JsonElement
      **json_out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JsonParseEnvFile
      Src: /src/core/libntech/libutils/json-utils.c:336,1
    - Dst: JsonParseCsvFile
      Src: /src/core/libntech/libutils/json-utils.c:340,1
    - Dst: JsonParseAnyFile
      Src: /src/core/libntech/libutils/json-utils.c:351,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:355,1
    - Dst: DataFileTypeToString
      Src: /src/core/libntech/libutils/json-utils.c:357,1
    - Dst: JsonParseErrorToString
      Src: /src/core/libntech/libutils/json-utils.c:358,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:362,1
    - Dst: DataFileTypeToString
      Src: /src/core/libntech/libutils/json-utils.c:364,1
    - Dst: JsonParseErrorToString
      Src: /src/core/libntech/libutils/json-utils.c:365,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json-utils.c:367,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-utils.c:369,1
    - Dst: DataFileTypeToString
      Src: /src/core/libntech/libutils/json-utils.c:371,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json-utils.c:372,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - log_identifier
    - input_path
    - requested_mode
    - size_max
    argTypes:
    - char*
    - char*
    - DataFileType
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 380
    functionName: JsonReadDataFile
    functionSourceFile: /src/core/libntech/libutils/json-utils.c
    functionUses: 1
    functionsReached:
    - DataFileTypeToString
    - JsonDestroy
    - JsonParseAnyFile
    - JsonParseCsvFile
    - JsonGetElementType
    - JsonParseEnvFile
    - Log
    - JsonParseErrorToString
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonReadDataFile(const char *log_identifier, const char
      *input_path,\n                              const DataFileType requested_mode,
      size_t size_max)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/libutils/json-utils.c:385,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/libutils/json-utils.c:389,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/libutils/json-utils.c:393,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libntech/libutils/json-utils.c:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - requested_mode
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 403
    functionName: GetDataFileTypeFromString
    functionSourceFile: /src/core/libntech/libutils/json-utils.c
    functionUses: 0
    functionsReached:
    - StringEqual_IgnoreCase
    linkageType: ''
    returnType: DataFileType
    signature: DataFileType GetDataFileTypeFromString(const char *const requested_mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringEndsWithCase
      Src: /src/core/libntech/libutils/json-utils.c:407,1
    - Dst: StringEndsWithCase
      Src: /src/core/libntech/libutils/json-utils.c:411,1
    - Dst: StringEndsWithCase
      Src: /src/core/libntech/libutils/json-utils.c:412,1
    - Dst: StringEndsWithCase
      Src: /src/core/libntech/libutils/json-utils.c:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 424
    functionName: GetDataFileTypeFromSuffix
    functionSourceFile: /src/core/libntech/libutils/json-utils.c
    functionUses: 0
    functionsReached:
    - StringEndsWithCase
    linkageType: ''
    returnType: DataFileType
    signature: DataFileType GetDataFileTypeFromSuffix(const char *filename)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - DataFileType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 441
    functionName: DataFileTypeToString
    functionSourceFile: /src/core/libntech/libutils/json-utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *DataFileTypeToString(const DataFileType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.h:199,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.h:203,1
    - Dst: JsonObjectMergeDeepInplace
      Src: /src/core/libntech/libutils/json.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - base
    - extra
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (base != NULL)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/core/libntech/libutils/json.h
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: JsonObjectMergeDeep
    functionSourceFile: /src/core/libntech/libutils/json.h
    functionUses: 1
    functionsReached:
    - JsonCopy
    - assert
    - JsonObjectMergeDeepInplace
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonObjectMergeDeep(const JsonElement *const base, const
      JsonElement *const extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: NULL_JSON
    functionSourceFile: /src/core/libntech/libutils/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NULL_JSON(json)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - json
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: JSON_NOT_NULL
    functionSourceFile: /src/core/libntech/libutils/json.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_NOT_NULL(json)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/fsattrs.h:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - res
    argTypes:
    - FSAttrsResult
    assertStmts:
    - condition: (false && "Bad argument in FSAttrsErrorCodeToString()")
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/libntech/libutils/fsattrs.h
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: FSAttrsErrorCodeToString
    functionSourceFile: /src/core/libntech/libutils/fsattrs.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *FSAttrsErrorCodeToString(FSAttrsResult res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/core/libntech/libutils/passopenfile.c:46,1
    - Dst: FD_SET
      Src: /src/core/libntech/libutils/passopenfile.c:47,1
    - Dst: select
      Src: /src/core/libntech/libutils/passopenfile.c:54,1
    - Dst: select
      Src: /src/core/libntech/libutils/passopenfile.c:58,1
    - Dst: FD_ISSET
      Src: /src/core/libntech/libutils/passopenfile.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - uds
    - write
    - ready
    argTypes:
    - int
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 67
    functionName: wait_for
    functionSourceFile: /src/core/libntech/libutils/passopenfile.c
    functionUses: 0
    functionsReached:
    - FD_ZERO
    - select
    - FD_ISSET
    - FD_SET
    linkageType: ''
    returnType: bool
    signature: bool wait_for(const int uds, bool write, bool *ready)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/core/libntech/libutils/passopenfile.c:84,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:87,1
    - Dst: sscanf
      Src: /src/core/libntech/libutils/passopenfile.c:93,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:95,1
    - Dst: WSADuplicateSocket
      Src: /src/core/libntech/libutils/passopenfile.c:99,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:101,1
    - Dst: wait_for
      Src: /src/core/libntech/libutils/passopenfile.c:107,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:109,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/passopenfile.c:111,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:116,1
    - Dst: send
      Src: /src/core/libntech/libutils/passopenfile.c:123,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/passopenfile.c:127,1
    - Dst: send
      Src: /src/core/libntech/libutils/passopenfile.c:128,1
    - Dst: send
      Src: /src/core/libntech/libutils/passopenfile.c:133,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:147,1
    - Dst: wait_for
      Src: /src/core/libntech/libutils/passopenfile.c:154,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:156,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/passopenfile.c:158,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:162,1
    - Dst: recv
      Src: /src/core/libntech/libutils/passopenfile.c:168,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/passopenfile.c:172,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:174,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 3
    argNames:
    - uds
    - descriptor
    - text
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 182
    functionName: PassOpenFile_Put
    functionSourceFile: /src/core/libntech/libutils/passopenfile.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - recv
    - WSADuplicateSocket
    - send
    - strlen
    - sscanf
    - Log
    - strcmp
    - wait_for
    linkageType: ''
    returnType: bool
    signature: bool PassOpenFile_Put(int uds, int descriptor, const char *text)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: nt_static_assert
      Src: /src/core/libntech/libutils/passopenfile.c:190,1
    - Dst: PRINTSIZE
      Src: /src/core/libntech/libutils/passopenfile.c:190,1
    - Dst: GetCurrentProcessId
      Src: /src/core/libntech/libutils/passopenfile.c:191,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/passopenfile.c:192,1
    - Dst: assert
      Src: /src/core/libntech/libutils/passopenfile.c:193,1
    - Dst: send
      Src: /src/core/libntech/libutils/passopenfile.c:194,1
    - Dst: wait_for
      Src: /src/core/libntech/libutils/passopenfile.c:197,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:199,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/passopenfile.c:201,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:206,1
    - Dst: recv
      Src: /src/core/libntech/libutils/passopenfile.c:214,1
    - Dst: WSASocket
      Src: /src/core/libntech/libutils/passopenfile.c:218,1
    - Dst: recv
      Src: /src/core/libntech/libutils/passopenfile.c:234,1
    - Dst: malloc
      Src: /src/core/libntech/libutils/passopenfile.c:239,1
    - Dst: recv
      Src: /src/core/libntech/libutils/passopenfile.c:242,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:245,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:252,1
    - Dst: free
      Src: /src/core/libntech/libutils/passopenfile.c:262,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:268,1
    - Dst: closesocket
      Src: /src/core/libntech/libutils/passopenfile.c:275,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:281,1
    - Dst: wait_for
      Src: /src/core/libntech/libutils/passopenfile.c:288,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:290,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/passopenfile.c:292,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:296,1
    - Dst: send
      Src: /src/core/libntech/libutils/passopenfile.c:301,1
    - Dst: closesocket
      Src: /src/core/libntech/libutils/passopenfile.c:306,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 2
    argNames:
    - uds
    - text
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (len > 0 && len < PID_MSG_SIZE)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/core/libntech/libutils/passopenfile.c
    constantsTouched: []
    func_position:
      end: 308
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 308
    functionName: PassOpenFile_Get
    functionSourceFile: /src/core/libntech/libutils/passopenfile.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - send
    - recv
    - PRINTSIZE
    - snprintf
    - nt_static_assert
    - GetCurrentProcessId
    - assert
    - WSASocket
    - Log
    - malloc
    - closesocket
    - free
    - wait_for
    linkageType: ''
    returnType: int
    signature: int PassOpenFile_Get(int uds, char **text)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: CMSG_ALIGN
    functionSourceFile: /src/core/libntech/libutils/passopenfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMSG_ALIGN(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: CMSG_SPACE
    functionSourceFile: /src/core/libntech/libutils/passopenfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMSG_SPACE(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: CMSG_LEN
    functionSourceFile: /src/core/libntech/libutils/passopenfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMSG_LEN(len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/passopenfile.c:350,1
    - Dst: assert
      Src: /src/core/libntech/libutils/passopenfile.c:351,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:352,1
    - Dst: memset
      Src: /src/core/libntech/libutils/passopenfile.c:386,1
    - Dst: memset
      Src: /src/core/libntech/libutils/passopenfile.c:387,1
    - Dst: CMSG_SPACE
      Src: /src/core/libntech/libutils/passopenfile.c:394,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/core/libntech/libutils/passopenfile.c:400,1
    - Dst: CMSG_LEN
      Src: /src/core/libntech/libutils/passopenfile.c:403,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/passopenfile.c:404,1
    - Dst: CMSG_DATA
      Src: /src/core/libntech/libutils/passopenfile.c:404,1
    - Dst: sendmsg
      Src: /src/core/libntech/libutils/passopenfile.c:412,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:414,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/passopenfile.c:416,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - uds
    - descriptor
    - text
    argTypes:
    - int
    - int
    - char*
    assertStmts:
    - condition: (MAX_MESSAGE_SIZE >= msglen)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/core/libntech/libutils/passopenfile.c
    constantsTouched: []
    func_position:
      end: 425
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 425
    functionName: PassOpenFile_Put
    functionSourceFile: /src/core/libntech/libutils/passopenfile.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - memcpy
    - strlen
    - CMSG_FIRSTHDR
    - assert
    - CMSG_DATA
    - CMSG_SPACE
    - CMSG_LEN
    - Log
    - sendmsg
    - memset
    linkageType: ''
    returnType: bool
    signature: bool PassOpenFile_Put(int uds, int descriptor, const char *text)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/passopenfile.c:432,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/passopenfile.c:432,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:435,1
    - Dst: memset
      Src: /src/core/libntech/libutils/passopenfile.c:438,1
    - Dst: memset
      Src: /src/core/libntech/libutils/passopenfile.c:439,1
    - Dst: memset
      Src: /src/core/libntech/libutils/passopenfile.c:440,1
    - Dst: CMSG_SPACE
      Src: /src/core/libntech/libutils/passopenfile.c:448,1
    - Dst: recvmsg
      Src: /src/core/libntech/libutils/passopenfile.c:457,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:459,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/passopenfile.c:461,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/core/libntech/libutils/passopenfile.c:467,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:470,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:475,1
    - Dst: assert
      Src: /src/core/libntech/libutils/passopenfile.c:479,1
    - Dst: CMSG_DATA
      Src: /src/core/libntech/libutils/passopenfile.c:482,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/passopenfile.c:483,1
    - Dst: CMSG_DATA
      Src: /src/core/libntech/libutils/passopenfile.c:483,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:487,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:494,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/passopenfile.c:500,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/passopenfile.c:504,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:506,1
    - Dst: Log
      Src: /src/core/libntech/libutils/passopenfile.c:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 2
    argNames:
    - uds
    - text
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: "((char *)control_message + control_message->cmsg_len ==\n           /*
        i.e. we only have *one* descriptor here; otherwise, we\n            * need
        to close() all but the first. */\n           (char *)CMSG_DATA(control_message)
        + sizeof(int))"
      pos:
        line_end: 481
        line_start: 478
        source_file: /src/core/libntech/libutils/passopenfile.c
    - condition: (strcmp(buffer + 1, NULL_MSG + 1) != 0)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/core/libntech/libutils/passopenfile.c
    constantsTouched: []
    func_position:
      end: 522
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 522
    functionName: PassOpenFile_Get
    functionSourceFile: /src/core/libntech/libutils/passopenfile.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - memcpy
    - CMSG_FIRSTHDR
    - assert
    - CMSG_DATA
    - recvmsg
    - CMSG_SPACE
    - Log
    - strcmp
    - xstrndup
    - memset
    linkageType: ''
    returnType: int
    signature: int PassOpenFile_Get(int uds, char **text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/core/libntech/libutils/mutex.c:35,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/mutex.c:41,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/mutex.c:44,1
    - Dst: fflush
      Src: /src/core/libntech/libutils/mutex.c:45,1
    - Dst: fflush
      Src: /src/core/libntech/libutils/mutex.c:46,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/mutex.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mutex
    - funcname
    - filename
    - lineno
    argTypes:
    - pthread_mutex_t*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: __ThreadLock
    functionSourceFile: /src/core/libntech/libutils/mutex.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - fflush
    - fprintf
    - GetErrorStrFromCode
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: "void __ThreadLock(pthread_mutex_t *mutex,\n                  const
      char *funcname, const char *filename, int lineno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/core/libntech/libutils/mutex.c:54,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/mutex.c:60,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/mutex.c:63,1
    - Dst: fflush
      Src: /src/core/libntech/libutils/mutex.c:64,1
    - Dst: fflush
      Src: /src/core/libntech/libutils/mutex.c:65,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/mutex.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mutex
    - funcname
    - filename
    - lineno
    argTypes:
    - pthread_mutex_t*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: __ThreadUnlock
    functionSourceFile: /src/core/libntech/libutils/mutex.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - fflush
    - fprintf
    - GetErrorStrFromCode
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void __ThreadUnlock(pthread_mutex_t *mutex,\n                    const
      char *funcname, const char *filename, int lineno)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_wait
      Src: /src/core/libntech/libutils/mutex.c:77,1
    - Dst: clock_gettime
      Src: /src/core/libntech/libutils/mutex.c:82,1
    - Dst: pthread_cond_timedwait
      Src: /src/core/libntech/libutils/mutex.c:85,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mutex.c:92,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/mutex.c:95,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/mutex.c:101,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/mutex.c:104,1
    - Dst: fflush
      Src: /src/core/libntech/libutils/mutex.c:105,1
    - Dst: fflush
      Src: /src/core/libntech/libutils/mutex.c:106,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/mutex.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - pcond
    - mutex
    - timeout
    - funcname
    - filename
    - lineno
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 112
    functionName: __ThreadWait
    functionSourceFile: /src/core/libntech/libutils/mutex.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - fflush
    - fprintf
    - clock_gettime
    - pthread_cond_wait
    - Log
    - GetErrorStrFromCode
    - pthread_cond_timedwait
    linkageType: ''
    returnType: int
    signature: "int __ThreadWait(pthread_cond_t *pcond, pthread_mutex_t *mutex, int
      timeout,\n                    const char *funcname, const char *filename, int
      lineno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/hash_map.c:39,1
    - Dst: MIN
      Src: /src/core/libntech/libutils/hash_map.c:46,1
    - Dst: MAX
      Src: /src/core/libntech/libutils/hash_map.c:46,1
    - Dst: ISPOW2
      Src: /src/core/libntech/libutils/hash_map.c:48,1
    - Dst: UpperPowerOfTwo
      Src: /src/core/libntech/libutils/hash_map.c:54,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/hash_map.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 5
    argNames:
    - hash_fn
    - equal_fn
    - destroy_key_fn
    - destroy_value_fn
    - init_size
    argTypes:
    - MapHashFn
    - MapKeyEqualFn
    - MapDestroyDataFn
    - MapDestroyDataFn
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 63
    functionName: HashMapNew
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 9
    functionsReached:
    - UpperPowerOfTwo
    - xcalloc
    - MAX
    - MIN
    - ISPOW2
    linkageType: ''
    returnType: HashMap
    signature: "HashMap *HashMapNew(MapHashFn hash_fn, MapKeyEqualFn equal_fn,\n                    MapDestroyDataFn
      destroy_key_fn,\n                    MapDestroyDataFn destroy_value_fn,\n                    size_t
      init_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/hash_map.c:67,1
    - Dst: HashMap*::hash_fn
      Src: /src/core/libntech/libutils/hash_map.c:68,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash_map.c:69,1
    - Dst: ISPOW2
      Src: /src/core/libntech/libutils/hash_map.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - HashMap*
    - void*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/core/libntech/libutils/hash_map.c
    - condition: (ISPOW2 (map->size))
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/core/libntech/libutils/hash_map.c
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: HashMapGetBucket
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 0
    functionsReached:
    - assert
    - ISPOW2
    - HashMap*::hash_fn
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int HashMapGetBucket(const HashMap *map, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/hash_map.c:85,1
    - Dst: HashMapGetBucket
      Src: /src/core/libntech/libutils/hash_map.c:96,1
    - Dst: free
      Src: /src/core/libntech/libutils/hash_map.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - map
    - new_size
    argTypes:
    - HashMap*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: HashMapResize
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - free
    - HashMapGetBucket
    linkageType: ''
    returnType: void
    signature: void HashMapResize(HashMap *map, size_t new_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HashMapGetBucket
      Src: /src/core/libntech/libutils/hash_map.c:110,1
    - Dst: HashMap*::equal_fn
      Src: /src/core/libntech/libutils/hash_map.c:114,1
    - Dst: HashMap*::destroy_key_fn
      Src: /src/core/libntech/libutils/hash_map.c:121,1
    - Dst: HashMap*::destroy_value_fn
      Src: /src/core/libntech/libutils/hash_map.c:125,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/hash_map.c:133,1
    - Dst: HashMapResize
      Src: /src/core/libntech/libutils/hash_map.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - map
    - key
    - value
    argTypes:
    - HashMap*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 145
    functionName: HashMapInsert
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 5
    functionsReached:
    - HashMap*::destroy_value_fn
    - xcalloc
    - HashMapResize
    - HashMapGetBucket
    - HashMap*::equal_fn
    - HashMap*::destroy_key_fn
    linkageType: ''
    returnType: bool
    signature: bool HashMapInsert(HashMap *map, void *key, void *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HashMapGetBucket
      Src: /src/core/libntech/libutils/hash_map.c:149,1
    - Dst: HashMap*::equal_fn
      Src: /src/core/libntech/libutils/hash_map.c:161,1
    - Dst: HashMap*::destroy_key_fn
      Src: /src/core/libntech/libutils/hash_map.c:165,1
    - Dst: HashMap*::destroy_value_fn
      Src: /src/core/libntech/libutils/hash_map.c:169,1
    - Dst: free
      Src: /src/core/libntech/libutils/hash_map.c:172,1
    - Dst: HashMapResize
      Src: /src/core/libntech/libutils/hash_map.c:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - HashMap*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 184
    functionName: HashMapRemove
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 3
    functionsReached:
    - HashMap*::destroy_value_fn
    - HashMapResize
    - HashMapGetBucket
    - HashMap*::equal_fn
    - free
    - HashMap*::destroy_key_fn
    linkageType: ''
    returnType: bool
    signature: bool HashMapRemove(HashMap *map, const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HashMapGetBucket
      Src: /src/core/libntech/libutils/hash_map.c:188,1
    - Dst: HashMap*::equal_fn
      Src: /src/core/libntech/libutils/hash_map.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - HashMap*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: HashMapGet
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 7
    functionsReached:
    - HashMap*::equal_fn
    - HashMapGetBucket
    linkageType: ''
    returnType: MapKeyValue
    signature: MapKeyValue *HashMapGet(const HashMap *map, const void *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FreeBucketListItem
      Src: /src/core/libntech/libutils/hash_map.c:207,1
    - Dst: HashMap*::destroy_key_fn
      Src: /src/core/libntech/libutils/hash_map.c:212,1
    - Dst: HashMap*::destroy_value_fn
      Src: /src/core/libntech/libutils/hash_map.c:216,1
    - Dst: free
      Src: /src/core/libntech/libutils/hash_map.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - map
    - item
    argTypes:
    - HashMap*
    - BucketListItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 220
    functionName: FreeBucketListItem
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 1
    functionsReached:
    - HashMap*::destroy_value_fn
    - free
    - HashMap*::destroy_key_fn
    - FreeBucketListItem
    linkageType: ''
    returnType: void
    signature: void FreeBucketListItem(HashMap *map, BucketListItem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FreeBucketListItemSoft
      Src: /src/core/libntech/libutils/hash_map.c:227,1
    - Dst: HashMap*::destroy_key_fn
      Src: /src/core/libntech/libutils/hash_map.c:230,1
    - Dst: free
      Src: /src/core/libntech/libutils/hash_map.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - map
    - item
    argTypes:
    - HashMap*
    - BucketListItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: FreeBucketListItemSoft
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 1
    functionsReached:
    - free
    - FreeBucketListItemSoft
    - HashMap*::destroy_key_fn
    linkageType: ''
    returnType: void
    signature: void FreeBucketListItemSoft(HashMap *map, BucketListItem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FreeBucketListItem
      Src: /src/core/libntech/libutils/hash_map.c:241,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash_map.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - map
    argTypes:
    - HashMap*
    assertStmts:
    - condition: (map->load == 0)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/core/libntech/libutils/hash_map.c
    constantsTouched: []
    func_position:
      end: 246
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 246
    functionName: HashMapClear
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 1
    functionsReached:
    - assert
    - FreeBucketListItem
    linkageType: ''
    returnType: void
    signature: void HashMapClear(HashMap *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FreeBucketListItemSoft
      Src: /src/core/libntech/libutils/hash_map.c:256,1
    - Dst: free
      Src: /src/core/libntech/libutils/hash_map.c:261,1
    - Dst: free
      Src: /src/core/libntech/libutils/hash_map.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - map
    argTypes:
    - HashMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: HashMapSoftDestroy
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 0
    functionsReached:
    - free
    - FreeBucketListItemSoft
    linkageType: ''
    returnType: void
    signature: void HashMapSoftDestroy(HashMap *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HashMapClear
      Src: /src/core/libntech/libutils/hash_map.c:270,1
    - Dst: free
      Src: /src/core/libntech/libutils/hash_map.c:271,1
    - Dst: free
      Src: /src/core/libntech/libutils/hash_map.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - map
    argTypes:
    - HashMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: HashMapDestroy
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 9
    functionsReached:
    - free
    - HashMapClear
    linkageType: ''
    returnType: void
    signature: void HashMapDestroy(HashMap *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/hash_map.c:281,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/hash_map.c:299,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/hash_map.c:300,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/hash_map.c:301,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/hash_map.c:302,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/hash_map.c:305,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/hash_map.c:317,1
    - Dst: free
      Src: /src/core/libntech/libutils/hash_map.c:321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - hmap
    - f
    argTypes:
    - HashMap*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 322
    functionName: HashMapPrintStats
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void HashMapPrintStats(const HashMap *hmap, FILE *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - HashMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: HashMapIteratorInit
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashMapIterator
    signature: HashMapIterator HashMapIteratorInit(HashMap *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - HashMapIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 345
    functionName: HashMapIteratorNext
    functionSourceFile: /src/core/libntech/libutils/hash_map.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MapKeyValue
    signature: MapKeyValue *HashMapIteratorNext(HashMapIterator *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/alloc.h:44,1
    - Dst: free
      Src: /src/core/libntech/libutils/alloc.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - array
    - n_items
    argTypes:
    - void**
    - size_t
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/core/libntech/libutils/alloc.h
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: free_array_items
    functionSourceFile: /src/core/libntech/libutils/alloc.h
    functionUses: 1
    functionsReached:
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void free_array_items(void **array, size_t n_items)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - destroy
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: DESTROY_AND_NULL
    functionSourceFile: /src/core/libntech/libutils/alloc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DESTROY_AND_NULL(destroy, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: FREE_AND_NULL
    functionSourceFile: /src/core/libntech/libutils/alloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_AND_NULL(ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack_base.c:55,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/stack_base.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - stack
    - initial_capacity
    argTypes:
    - Stack*
    - size_t
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/core/libntech/libutils/stack_base.c
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: StackInit
    functionSourceFile: /src/core/libntech/libutils/stack_base.c
    functionUses: 0
    functionsReached:
    - assert
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void StackInit(Stack *stack, size_t initial_capacity, void (ItemDestroy)
      (void *item))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack_base.c:77,1
    - Dst: Stack*::ItemDestroy
      Src: /src/core/libntech/libutils/stack_base.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - stack
    - start
    - end
    argTypes:
    - Stack*
    - size_t
    - size_t
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/core/libntech/libutils/stack_base.c
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: DestroyRange
    functionSourceFile: /src/core/libntech/libutils/stack_base.c
    functionUses: 0
    functionsReached:
    - Stack*::ItemDestroy
    - assert
    linkageType: ''
    returnType: void
    signature: void DestroyRange(Stack *stack, size_t start, size_t end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/unix_dir.c:42,1
    - Dst: safe_open
      Src: /src/core/libntech/libutils/unix_dir.c:45,1
    - Dst: free
      Src: /src/core/libntech/libutils/unix_dir.c:48,1
    - Dst: opendir
      Src: /src/core/libntech/libutils/unix_dir.c:52,1
    - Dst: close
      Src: /src/core/libntech/libutils/unix_dir.c:55,1
    - Dst: free
      Src: /src/core/libntech/libutils/unix_dir.c:56,1
    - Dst: fstat
      Src: /src/core/libntech/libutils/unix_dir.c:61,1
    - Dst: fstat
      Src: /src/core/libntech/libutils/unix_dir.c:61,1
    - Dst: dirfd
      Src: /src/core/libntech/libutils/unix_dir.c:61,1
    - Dst: close
      Src: /src/core/libntech/libutils/unix_dir.c:62,1
    - Dst: closedir
      Src: /src/core/libntech/libutils/unix_dir.c:65,1
    - Dst: free
      Src: /src/core/libntech/libutils/unix_dir.c:66,1
    - Dst: closedir
      Src: /src/core/libntech/libutils/unix_dir.c:73,1
    - Dst: free
      Src: /src/core/libntech/libutils/unix_dir.c:74,1
    - Dst: GetDirentBufferSize
      Src: /src/core/libntech/libutils/unix_dir.c:79,1
    - Dst: GetNameMax
      Src: /src/core/libntech/libutils/unix_dir.c:79,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/unix_dir.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 84
    functionName: DirOpen
    functionSourceFile: /src/core/libntech/libutils/unix_dir.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - closedir
    - safe_open
    - fstat
    - GetNameMax
    - opendir
    - dirfd
    - GetDirentBufferSize
    - free
    - close
    linkageType: ''
    returnType: Dir
    signature: Dir *DirOpen(const char *dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/unix_dir.c:93,1
    - Dst: readdir
      Src: /src/core/libntech/libutils/unix_dir.c:96,1
    - Dst: readdir_r
      Src: /src/core/libntech/libutils/unix_dir.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dir
    argTypes:
    - Dir*
    assertStmts:
    - condition: (dir != NULL)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/core/libntech/libutils/unix_dir.c
    constantsTouched: []
    func_position:
      end: 115
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 115
    functionName: DirRead
    functionSourceFile: /src/core/libntech/libutils/unix_dir.c
    functionUses: 0
    functionsReached:
    - assert
    - readdir_r
    - readdir
    linkageType: ''
    returnType: struct dirent
    signature: struct dirent *DirRead(Dir *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/core/libntech/libutils/unix_dir.c:119,1
    - Dst: free
      Src: /src/core/libntech/libutils/unix_dir.c:120,1
    - Dst: free
      Src: /src/core/libntech/libutils/unix_dir.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dir
    argTypes:
    - Dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: DirClose
    functionSourceFile: /src/core/libntech/libutils/unix_dir.c
    functionUses: 0
    functionsReached:
    - closedir
    - free
    linkageType: ''
    returnType: void
    signature: void DirClose(Dir *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fpathconf
      Src: /src/core/libntech/libutils/unix_dir.c:163,1
    - Dst: dirfd
      Src: /src/core/libntech/libutils/unix_dir.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: GetNameMax
    functionSourceFile: /src/core/libntech/libutils/unix_dir.c
    functionUses: 1
    functionsReached:
    - fpathconf
    - dirfd
    linkageType: ''
    returnType: size_t
    signature: size_t GetNameMax(DIR *dirp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: GetNameMax
    functionSourceFile: /src/core/libntech/libutils/unix_dir.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetNameMax(DIR *dirp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/core/libntech/libutils/unix_dir.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: GetDirentBufferSize
    functionSourceFile: /src/core/libntech/libutils/unix_dir.c
    functionUses: 1
    functionsReached:
    - MAX
    linkageType: ''
    returnType: size_t
    signature: size_t GetDirentBufferSize(size_t name_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/unix_dir.c:202,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/unix_dir.c:203,1
    - Dst: GetDirentBufferSize
      Src: /src/core/libntech/libutils/unix_dir.c:203,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/unix_dir.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: AllocateDirentForFilename
    functionSourceFile: /src/core/libntech/libutils/unix_dir.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - memcpy
    - GetDirentBufferSize
    - strlen
    linkageType: ''
    returnType: struct dirent
    signature: struct dirent *AllocateDirentForFilename(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iterator
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: IsIteratorValid
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsIteratorValid(iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iterator
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: IsMutableIteratorValid
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsMutableIteratorValid(iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: ChangeListState
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ChangeListState(list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/list.c:79,1
    - Dst: RefCountIsShared
      Src: /src/core/libntech/libutils/list.c:81,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:93,1
    - Dst: List*::copy
      Src: /src/core/libntech/libutils/list.c:102,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:113,1
    - Dst: List*::copy
      Src: /src/core/libntech/libutils/list.c:122,1
    - Dst: RefCountDetach
      Src: /src/core/libntech/libutils/list.c:136,1
    - Dst: RefCountNew
      Src: /src/core/libntech/libutils/list.c:138,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/libutils/list.c:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 1
    argNames:
    - list
    argTypes:
    - List*
    assertStmts:
    - condition: (list != NULL)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/core/libntech/libutils/list.c
    constantsTouched: []
    func_position:
      end: 141
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 141
    functionName: ListDetach
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 0
    functionsReached:
    - RefCountDetach
    - assert
    - xmalloc
    - List*::copy
    - RefCountNew
    - RefCountIsShared
    - RefCountAttach
    linkageType: ''
    returnType: void
    signature: void ListDetach(List *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:146,1
    - Dst: RefCountNew
      Src: /src/core/libntech/libutils/list.c:156,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/libutils/list.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: ListNew
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 9
    functionsReached:
    - RefCountNew
    - xmalloc
    - RefCountAttach
    linkageType: ''
    returnType: List
    signature: List *ListNew(int (*compare)(const void *, const void *), void (*copy)(const
      void *, void **), void (*destroy)(void *))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RefCountIsShared
      Src: /src/core/libntech/libutils/list.c:167,1
    - Dst: RefCountDetach
      Src: /src/core/libntech/libutils/list.c:173,1
    - Dst: destroy
      Src: /src/core/libntech/libutils/list.c:184,1
    - Dst: free
      Src: /src/core/libntech/libutils/list.c:187,1
    - Dst: RefCountDestroy
      Src: /src/core/libntech/libutils/list.c:189,1
    - Dst: free
      Src: /src/core/libntech/libutils/list.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - list
    argTypes:
    - List**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 194
    functionName: ListDestroy
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 12
    functionsReached:
    - RefCountDetach
    - destroy
    - free
    - RefCountDestroy
    - RefCountIsShared
    linkageType: ''
    returnType: int
    signature: int ListDestroy(List **list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:210,1
    - Dst: RefCountAttach
      Src: /src/core/libntech/libutils/list.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - origin
    - destination
    argTypes:
    - List*
    - List**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 227
    functionName: ListCopy
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - RefCountAttach
    linkageType: ''
    returnType: int
    signature: int ListCopy(List *origin, List **destination)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ListDetach
      Src: /src/core/libntech/libutils/list.c:236,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - list
    - payload
    argTypes:
    - List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 256
    functionName: ListPrepend
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 5
    functionsReached:
    - ListDetach
    - xmalloc
    linkageType: ''
    returnType: int
    signature: int ListPrepend(List *list, void *payload)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ListDetach
      Src: /src/core/libntech/libutils/list.c:265,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - list
    - payload
    argTypes:
    - List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 285
    functionName: ListAppend
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 2
    functionsReached:
    - ListDetach
    - xmalloc
    linkageType: ''
    returnType: int
    signature: int ListAppend(List *list, void *payload)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: List*::compare
      Src: /src/core/libntech/libutils/list.c:309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - list
    - payload
    argTypes:
    - List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 325
    functionName: ListFindNode
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 0
    functionsReached:
    - List*::compare
    linkageType: ''
    returnType: int
    signature: int ListFindNode(List *list, void *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/list.c:328,1
    - Dst: ChangeListState
      Src: /src/core/libntech/libutils/list.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - List*
    assertStmts:
    - condition: (list != NULL)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/core/libntech/libutils/list.c
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: ListUpdateListState
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 0
    functionsReached:
    - assert
    - ChangeListState
    linkageType: ''
    returnType: void
    signature: void ListUpdateListState(List *list)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ListFindNode
      Src: /src/core/libntech/libutils/list.c:348,1
    - Dst: ListDetach
      Src: /src/core/libntech/libutils/list.c:354,1
    - Dst: List*::compare
      Src: /src/core/libntech/libutils/list.c:366,1
    - Dst: assert
      Src: /src/core/libntech/libutils/list.c:384,1
    - Dst: assert
      Src: /src/core/libntech/libutils/list.c:385,1
    - Dst: List*::destroy
      Src: /src/core/libntech/libutils/list.c:447,1
    - Dst: free
      Src: /src/core/libntech/libutils/list.c:451,1
    - Dst: free
      Src: /src/core/libntech/libutils/list.c:453,1
    - Dst: ListUpdateListState
      Src: /src/core/libntech/libutils/list.c:454,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 2
    argNames:
    - list
    - payload
    argTypes:
    - List*
    - void*
    assertStmts:
    - condition: (found == 1)
      pos:
        line_end: 384
        line_start: 384
        source_file: /src/core/libntech/libutils/list.c
    - condition: (node)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/core/libntech/libutils/list.c
    constantsTouched: []
    func_position:
      end: 456
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 456
    functionName: ListRemove
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 4
    functionsReached:
    - ListDetach
    - ListUpdateListState
    - assert
    - List*::compare
    - List*::destroy
    - ListFindNode
    - free
    linkageType: ''
    returnType: int
    signature: int ListRemove(List *list, void *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: ListCount
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ListCount(const List *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - list
    argTypes:
    - List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 485
    functionName: ListIteratorGet
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 4
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: ListIterator
    signature: ListIterator *ListIteratorGet(const List *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/list.c:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListIterator**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 497
    functionName: ListIteratorDestroy
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int ListIteratorDestroy(ListIterator **iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsIteratorValid
      Src: /src/core/libntech/libutils/list.c:505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 512
    functionName: ListIteratorFirst
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - IsIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListIteratorFirst(ListIterator *iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsIteratorValid
      Src: /src/core/libntech/libutils/list.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 527
    functionName: ListIteratorLast
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - IsIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListIteratorLast(ListIterator *iterator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsIteratorValid
      Src: /src/core/libntech/libutils/list.c:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 550
    functionName: ListIteratorNext
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 2
    functionsReached:
    - IsIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListIteratorNext(ListIterator *iterator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsIteratorValid
      Src: /src/core/libntech/libutils/list.c:558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 573
    functionName: ListIteratorPrevious
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - IsIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListIteratorPrevious(ListIterator *iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsIteratorValid
      Src: /src/core/libntech/libutils/list.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 587
    functionName: ListIteratorData
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 3
    functionsReached:
    - IsIteratorValid
    linkageType: ''
    returnType: void
    signature: void *ListIteratorData(const ListIterator *iterator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsIteratorValid
      Src: /src/core/libntech/libutils/list.c:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: ListIteratorHasNext
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - IsIteratorValid
    linkageType: ''
    returnType: bool
    signature: bool ListIteratorHasNext(const ListIterator *iterator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsIteratorValid
      Src: /src/core/libntech/libutils/list.c:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 623
    functionName: ListIteratorHasPrevious
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - IsIteratorValid
    linkageType: ''
    returnType: bool
    signature: bool ListIteratorHasPrevious(const ListIterator *iterator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - list
    argTypes:
    - List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 651
    functionName: ListMutableIteratorGet
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: ListMutableIterator
    signature: ListMutableIterator *ListMutableIteratorGet(List *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/list.c:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListMutableIterator**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 661
    functionName: ListMutableIteratorRelease
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int ListMutableIteratorRelease(ListMutableIterator **iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsMutableIteratorValid
      Src: /src/core/libntech/libutils/list.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListMutableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 675
    functionName: ListMutableIteratorFirst
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - IsMutableIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListMutableIteratorFirst(ListMutableIterator *iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsMutableIteratorValid
      Src: /src/core/libntech/libutils/list.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListMutableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 689
    functionName: ListMutableIteratorLast
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - IsMutableIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListMutableIteratorLast(ListMutableIterator *iterator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsMutableIteratorValid
      Src: /src/core/libntech/libutils/list.c:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListMutableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 707
    functionName: ListMutableIteratorNext
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - IsMutableIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListMutableIteratorNext(ListMutableIterator *iterator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsMutableIteratorValid
      Src: /src/core/libntech/libutils/list.c:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListMutableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 725
    functionName: ListMutableIteratorPrevious
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - IsMutableIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListMutableIteratorPrevious(ListMutableIterator *iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsMutableIteratorValid
      Src: /src/core/libntech/libutils/list.c:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListMutableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 738
    functionName: ListMutableIteratorData
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 0
    functionsReached:
    - IsMutableIteratorValid
    linkageType: ''
    returnType: void
    signature: void *ListMutableIteratorData(const ListMutableIterator *iterator)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IsMutableIteratorValid
      Src: /src/core/libntech/libutils/list.c:746,1
    - Dst: ListDetach
      Src: /src/core/libntech/libutils/list.c:750,1
    - Dst: ListMutableIterator*::origin::destroy
      Src: /src/core/libntech/libutils/list.c:806,1
    - Dst: free
      Src: /src/core/libntech/libutils/list.c:810,1
    - Dst: free
      Src: /src/core/libntech/libutils/list.c:812,1
    - Dst: ListUpdateListState
      Src: /src/core/libntech/libutils/list.c:814,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListMutableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 816
    functionName: ListMutableIteratorRemove
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - ListDetach
    - ListMutableIterator*::origin::destroy
    - ListUpdateListState
    - IsMutableIteratorValid
    - free
    linkageType: ''
    returnType: int
    signature: int ListMutableIteratorRemove(ListMutableIterator *iterator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsMutableIteratorValid
      Src: /src/core/libntech/libutils/list.c:824,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:829,1
    - Dst: ListDetach
      Src: /src/core/libntech/libutils/list.c:830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - iterator
    - payload
    argTypes:
    - ListMutableIterator*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 850
    functionName: ListMutableIteratorPrepend
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - ListDetach
    - xmalloc
    - IsMutableIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListMutableIteratorPrepend(ListMutableIterator *iterator, void
      *payload)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsMutableIteratorValid
      Src: /src/core/libntech/libutils/list.c:858,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/list.c:863,1
    - Dst: ListDetach
      Src: /src/core/libntech/libutils/list.c:864,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - iterator
    - payload
    argTypes:
    - ListMutableIterator*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 852
    functionDepth: 2
    functionLinenumber: 852
    functionLinenumberEnd: 883
    functionName: ListMutableIteratorAppend
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached:
    - ListDetach
    - xmalloc
    - IsMutableIteratorValid
    linkageType: ''
    returnType: int
    signature: int ListMutableIteratorAppend(ListMutableIterator *iterator, void *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListMutableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 888
    functionName: ListMutableIteratorHasNext
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ListMutableIteratorHasNext(const ListMutableIterator *iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ListMutableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 893
    functionName: ListMutableIteratorHasPrevious
    functionSourceFile: /src/core/libntech/libutils/list.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ListMutableIteratorHasPrevious(const ListMutableIterator *iterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 57
    functionName: WriteCopyright
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void WriteCopyright(Writer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libntech/libutils/man.c:62,1
    - Dst: ToUpperStrInplace
      Src: /src/core/libntech/libutils/man.c:63,1
    - Dst: gmtime_r
      Src: /src/core/libntech/libutils/man.c:68,1
    - Dst: strftime
      Src: /src/core/libntech/libutils/man.c:69,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - out
    - program
    - last_modified
    argTypes:
    - Writer*
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: WriteHeader
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strftime
    - WriterWriteF
    - gmtime_r
    - ToUpperStrInplace
    linkageType: ''
    returnType: void
    signature: void WriteHeader(Writer *out, const char *program, time_t last_modified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - program
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: WriteAvailability
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    linkageType: ''
    returnType: void
    signature: void WriteAvailability(Writer *out, const char *program)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: WriteAuthor
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void WriteAuthor(Writer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - program
    - short_description
    argTypes:
    - Writer*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: WriteName
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    linkageType: ''
    returnType: void
    signature: void WriteName(Writer *out, const char *program, const char *short_description)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:110,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:111,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:114,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:116,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:119,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:123,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - out
    - program
    - command
    - command_first
    - accepts_file_argument
    argTypes:
    - Writer*
    - char*
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 129
    functionName: WriteSynopsis
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: "void WriteSynopsis(Writer *out, const char *program,\n                          bool
      command, bool command_first,\n                          bool accepts_file_argument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - description
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: WriteDescription
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    linkageType: ''
    returnType: void
    signature: void WriteDescription(Writer *out, const char *description)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/man.c:138,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:139,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:143,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:144,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:145,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - out
    - commands
    argTypes:
    - Writer*
    - Description*
    assertStmts:
    - condition: (commands != NULL)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/core/libntech/libutils/man.c
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: WriteCommands
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - assert
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void WriteCommands(Writer *out, const Description *commands)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:153,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:170,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/man.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - out
    - options
    - option_hints
    argTypes:
    - Writer*
    - struct option[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 179
    functionName: WriteOptions
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: "void WriteOptions(Writer *out, const struct option options[],\n                         const
      char *const option_hints[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: WriteSeeAlso
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void WriteSeeAlso(Writer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: WriteBugs
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void WriteBugs(Writer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: WriteCFEngine
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void WriteCFEngine(Writer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/man.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 237
    functionName: WritePromiseTheory
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 0
    functionsReached:
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void WritePromiseTheory(Writer *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/libntech/libutils/man.c:246,1
    - Dst: strtoll
      Src: /src/core/libntech/libutils/man.c:248,1
    - Dst: WriteCopyright
      Src: /src/core/libntech/libutils/man.c:252,1
    - Dst: WriteHeader
      Src: /src/core/libntech/libutils/man.c:253,1
    - Dst: WriteName
      Src: /src/core/libntech/libutils/man.c:254,1
    - Dst: WriteSynopsis
      Src: /src/core/libntech/libutils/man.c:255,1
    - Dst: WriteDescription
      Src: /src/core/libntech/libutils/man.c:256,1
    - Dst: WriteCommands
      Src: /src/core/libntech/libutils/man.c:259,1
    - Dst: WriteOptions
      Src: /src/core/libntech/libutils/man.c:261,1
    - Dst: WriteCFEngine
      Src: /src/core/libntech/libutils/man.c:262,1
    - Dst: WritePromiseTheory
      Src: /src/core/libntech/libutils/man.c:263,1
    - Dst: WriteAvailability
      Src: /src/core/libntech/libutils/man.c:264,1
    - Dst: WriteBugs
      Src: /src/core/libntech/libutils/man.c:265,1
    - Dst: WriteSeeAlso
      Src: /src/core/libntech/libutils/man.c:266,1
    - Dst: WriteAuthor
      Src: /src/core/libntech/libutils/man.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 10
    argNames:
    - out
    - program
    - last_modified
    - short_description
    - long_description
    - options
    - option_hints
    - commands
    - command_first
    - accepts_file_argument
    argTypes:
    - Writer*
    - char*
    - time_t
    - char*
    - char*
    - struct option[]
    - char*[]
    - Description*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 268
    functionName: ManPageWrite
    functionSourceFile: /src/core/libntech/libutils/man.c
    functionUses: 3
    functionsReached:
    - WriteBugs
    - WriteSynopsis
    - getenv
    - WriteName
    - WriteOptions
    - WriteAuthor
    - WriteSeeAlso
    - WriteCopyright
    - strtoll
    - WriteCommands
    - WriteCFEngine
    - WriteAvailability
    - WriteDescription
    - WritePromiseTheory
    - WriteHeader
    linkageType: ''
    returnType: void
    signature: "void ManPageWrite(Writer *out, const char *program, time_t last_modified,\n
      \                 const char *short_description, const char *long_description,\n
      \                 const struct option options[], const char *const option_hints[],\n
      \                 const Description *commands, bool command_first,\n                  bool
      accepts_file_argument)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:81,1
    - Dst: JsonContainerTypeToString
      Src: /src/core/libntech/libutils/json.c:84,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:84,1
    - Dst: JsonPrimitiveTypeToString
      Src: /src/core/libntech/libutils/json.c:86,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libntech/libutils/json.c:86,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:88,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/json.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - element
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: JsonGetTypeAsString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - JsonGetContainerType
    - JsonPrimitiveTypeToString
    - JsonContainerTypeToString
    - JsonGetElementType
    - UnexpectedError
    - JsonGetType
    - JsonGetPrimitiveType
    linkageType: ''
    returnType: char
    signature: char *JsonGetTypeAsString(const JsonElement *element)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - JsonContainerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: JsonContainerTypeToString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - UnexpectedError
    linkageType: ''
    returnType: char
    signature: char *JsonContainerTypeToString(const JsonContainerType type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - JsonPrimitiveType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: JsonPrimitiveTypeToString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - UnexpectedError
    linkageType: ''
    returnType: char
    signature: char *JsonPrimitiveTypeToString(const JsonPrimitiveType type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:129,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:133,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/json.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - element
    - propertyName
    argTypes:
    - JsonElement*
    - char*
    assertStmts:
    - condition: (element != NULL)
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: JsonElementSetPropertyName
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: "void JsonElementSetPropertyName(\n    JsonElement *const element,
      const char *const propertyName)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - element
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (element != NULL)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: JsonElementGetPropertyName
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *JsonElementGetPropertyName(const JsonElement *const element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/json.c:155,1
    - Dst: JsonElementSetPropertyName
      Src: /src/core/libntech/libutils/json.c:159,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/json.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - containerType
    - propertyName
    - initialCapacity
    argTypes:
    - JsonContainerType
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: JsonElementCreateContainer
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - JsonElementSetPropertyName
    - SeqNew
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonElementCreateContainer(\n    const JsonContainerType
      containerType,\n    const char *const propertyName,\n    const size_t initialCapacity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/json.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - primitiveType
    - value
    argTypes:
    - JsonPrimitiveType
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: JsonElementCreatePrimitive
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonElementCreatePrimitive(\n    JsonPrimitiveType primitiveType,
      const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:182,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:183,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:184,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/libutils/json.c:186,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:186,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/libutils/json.c:188,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/libutils/json.c:190,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:192,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - array
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 196
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 196
    functionName: JsonArrayCopy
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonLength
    - JsonCopy
    - assert
    - JsonArrayAppendElement
    - JsonIteratorNextValue
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonArrayCopy(const JsonElement *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:200,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:201,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:202,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/libutils/json.c:204,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:204,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/libutils/json.c:206,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/libutils/json.c:208,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:210,1
    - Dst: JsonIteratorCurrentKey
      Src: /src/core/libntech/libutils/json.c:211,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 215
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 215
    functionName: JsonObjectCopy
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonLength
    - JsonCopy
    - assert
    - JsonIteratorCurrentKey
    - JsonObjectAppendElement
    - JsonObjectCreate
    - JsonIteratorNextValue
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonObjectCopy(const JsonElement *const object)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:220,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:221,1
    - Dst: JsonArrayCopy
      Src: /src/core/libntech/libutils/json.c:227,1
    - Dst: JsonObjectCopy
      Src: /src/core/libntech/libutils/json.c:230,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - container
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (container != NULL)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/core/libntech/libutils/json.c
    - condition: (container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 236
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 236
    functionName: JsonContainerCopy
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - JsonArrayCopy
    - UnexpectedError
    - JsonObjectCopy
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonContainerCopy(const JsonElement *const container)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:240,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:241,1
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/libutils/json.c:248,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libntech/libutils/json.c:248,1
    - Dst: JsonIntegerCreate
      Src: /src/core/libntech/libutils/json.c:251,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/libntech/libutils/json.c:251,1
    - Dst: JsonNullCreate
      Src: /src/core/libntech/libutils/json.c:254,1
    - Dst: JsonRealCreate
      Src: /src/core/libntech/libutils/json.c:257,1
    - Dst: JsonPrimitiveGetAsReal
      Src: /src/core/libntech/libutils/json.c:257,1
    - Dst: JsonStringCreate
      Src: /src/core/libntech/libutils/json.c:260,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/libutils/json.c:260,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - primitive
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (primitive != NULL)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 265
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 265
    functionName: JsonPrimitiveCopy
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonPrimitiveGetAsBool
    - JsonStringCreate
    - JsonPrimitiveGetAsReal
    - assert
    - JsonPrimitiveGetAsString
    - JsonRealCreate
    - UnexpectedError
    - JsonPrimitiveGetAsInteger
    - JsonNullCreate
    - JsonBoolCreate
    - JsonIntegerCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonPrimitiveCopy(const JsonElement *const primitive)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:269,1
    - Dst: JsonContainerCopy
      Src: /src/core/libntech/libutils/json.c:273,1
    - Dst: JsonPrimitiveCopy
      Src: /src/core/libntech/libutils/json.c:275,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - element
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (element != NULL)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: JsonCopy
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 5
    functionsReached:
    - assert
    - UnexpectedError
    - JsonPrimitiveCopy
    - JsonContainerCopy
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonCopy(const JsonElement *const element)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:285,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:286,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:287,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:288,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:289,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:290,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:292,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:292,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json.c:295,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/libutils/json.c:299,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/libutils/json.c:300,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:302,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/libutils/json.c:304,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/libutils/json.c:305,1
    - Dst: JsonCompare
      Src: /src/core/libntech/libutils/json.c:307,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/core/libntech/libutils/json.c
    - condition: (a->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b != NULL)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/core/libntech/libutils/json.c
    - condition: (a->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: JsonArrayCompare
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonLength
    - assert
    - Log
    - JsonCompare
    - JsonIteratorNextValue
    linkageType: ''
    returnType: int
    signature: "int JsonArrayCompare(\n    const JsonElement *const a, const JsonElement
      *const b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:321,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:322,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:323,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:324,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:325,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:326,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:328,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:328,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json.c:331,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/libutils/json.c:335,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/libutils/json.c:337,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/libutils/json.c:339,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libntech/libutils/json.c:340,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/libutils/json.c:341,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json.c:345,1
    - Dst: JsonCompare
      Src: /src/core/libntech/libutils/json.c:348,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json.c:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b != NULL)
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/core/libntech/libutils/json.c
    - condition: (a->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/core/libntech/libutils/json.c
    - condition: (a->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 357
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 357
    functionName: JsonObjectCompare
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonIteratorNextKey
    - JsonLength
    - assert
    - JsonIteratorCurrentValue
    - JsonIteratorHasMore
    - Log
    - JsonCompare
    - JsonObjectGet
    linkageType: ''
    returnType: int
    signature: "int JsonObjectCompare(\n    const JsonElement *const a, const JsonElement
      *const b)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:363,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:364,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:365,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:366,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json.c:373,1
    - Dst: JsonContainerTypeToString
      Src: /src/core/libntech/libutils/json.c:373,1
    - Dst: JsonContainerTypeToString
      Src: /src/core/libntech/libutils/json.c:373,1
    - Dst: JsonArrayCompare
      Src: /src/core/libntech/libutils/json.c:380,1
    - Dst: JsonObjectCompare
      Src: /src/core/libntech/libutils/json.c:383,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b != NULL)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/core/libntech/libutils/json.c
    - condition: (a->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 364
        line_start: 364
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 389
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 389
    functionName: JsonContainerCompare
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonContainerTypeToString
    - assert
    - JsonArrayCompare
    - UnexpectedError
    - JsonObjectCompare
    - Log
    linkageType: ''
    returnType: int
    signature: "int JsonContainerCompare(\n    const JsonElement *const a, const JsonElement
      *const b)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:393,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:394,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json.c:401,1
    - Dst: JsonContainerCompare
      Src: /src/core/libntech/libutils/json.c:408,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/json.c:412,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json.c:414,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b != NULL)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 424
      start: 391
    functionDepth: 4
    functionLinenumber: 391
    functionLinenumberEnd: 424
    functionName: JsonCompare
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 5
    functionsReached:
    - assert
    - UnexpectedError
    - JsonContainerCompare
    - Log
    - StringEqual
    linkageType: ''
    returnType: int
    signature: int JsonCompare(const JsonElement *const a, const JsonElement *const
      b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:434,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/json.c:435,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:440,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:445,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:451,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:456,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - element
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (element->container.children)
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element->primitive.value)
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 461
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 461
    functionName: JsonDestroy
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 72
    functionsReached:
    - assert
    - SeqDestroy
    - UnexpectedError
    - free
    linkageType: ''
    returnType: void
    signature: void JsonDestroy(JsonElement *const element)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - element
    - allocated
    argTypes:
    - JsonElement*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 469
    functionName: JsonDestroyMaybe
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    linkageType: ''
    returnType: void
    signature: void JsonDestroyMaybe(JsonElement *const element, const bool allocated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:474,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:474,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:474,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:475,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:475,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:476,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:476,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:476,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:477,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:477,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/libutils/json.c:479,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:479,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:479,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:480,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:482,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.c:482,1
    - Dst: JsonAt
      Src: /src/core/libntech/libutils/json.c:482,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:485,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:487,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.c:487,1
    - Dst: JsonAt
      Src: /src/core/libntech/libutils/json.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (JsonGetElementType(a) == JsonGetElementType(b))
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetContainerType(a) == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetElementType(a) == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetContainerType(a) == JsonGetContainerType(b))
      pos:
        line_end: 475
        line_start: 475
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 491
      start: 471
    functionDepth: 4
    functionLinenumber: 471
    functionLinenumberEnd: 491
    functionName: JsonArrayMergeArray
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonLength
    - JsonCopy
    - assert
    - JsonGetElementType
    - JsonAt
    - JsonArrayAppendElement
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonArrayMergeArray(\n    const JsonElement *const a,
      const JsonElement *const b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:496,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:496,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:496,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:497,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:497,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:498,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:498,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:499,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:499,1
    - Dst: JsonObjectCopy
      Src: /src/core/libntech/libutils/json.c:501,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:502,1
    - Dst: StringFromLong
      Src: /src/core/libntech/libutils/json.c:504,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:505,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.c:505,1
    - Dst: JsonAt
      Src: /src/core/libntech/libutils/json.c:505,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (JsonGetElementType(a) == JsonGetElementType(b))
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetElementType(a) == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetContainerType(a) == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetContainerType(b) == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 510
      start: 493
    functionDepth: 4
    functionLinenumber: 493
    functionLinenumberEnd: 510
    functionName: JsonObjectMergeArray
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonLength
    - JsonCopy
    - assert
    - JsonGetElementType
    - StringFromLong
    - JsonObjectCopy
    - JsonObjectAppendElement
    - JsonAt
    - free
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonObjectMergeArray(\n    const JsonElement *const a,
      const JsonElement *const b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:515,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:515,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:515,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:516,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:516,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:517,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:517,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:518,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:518,1
    - Dst: JsonObjectCopy
      Src: /src/core/libntech/libutils/json.c:520,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/libutils/json.c:521,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/libutils/json.c:523,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:525,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.c:526,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libntech/libutils/json.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (JsonGetElementType(a) == JsonGetElementType(b))
      pos:
        line_end: 514
        line_start: 514
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetElementType(a) == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetContainerType(a) == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 516
        line_start: 516
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetContainerType(b) == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 530
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 530
    functionName: JsonObjectMergeObject
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonIteratorInit
    - JsonIteratorNextKey
    - JsonCopy
    - assert
    - JsonGetElementType
    - JsonIteratorCurrentValue
    - JsonObjectCopy
    - JsonObjectAppendElement
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonObjectMergeObject(\n    const JsonElement *const
      a, const JsonElement *const b)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:534,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:534,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:534,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:535,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:535,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:537,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:540,1
    - Dst: JsonObjectMergeArray
      Src: /src/core/libntech/libutils/json.c:543,1
    - Dst: JsonArrayMergeArray
      Src: /src/core/libntech/libutils/json.c:545,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:547,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:548,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:552,1
    - Dst: JsonObjectMergeObject
      Src: /src/core/libntech/libutils/json.c:555,1
    - Dst: JsonObjectMergeArray
      Src: /src/core/libntech/libutils/json.c:557,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:559,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:560,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:564,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (JsonGetElementType(a) == JsonGetElementType(b))
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetElementType(a) == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 569
      start: 532
    functionDepth: 5
    functionLinenumber: 532
    functionLinenumberEnd: 569
    functionName: JsonMerge
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - JsonGetContainerType
    - assert
    - JsonGetElementType
    - JsonArrayMergeArray
    - UnexpectedError
    - JsonObjectMergeObject
    - JsonObjectMergeArray
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonMerge(const JsonElement *const a, const JsonElement
      *const b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:573,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:574,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:576,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/json.c:576,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:577,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/json.c:577,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/libutils/json.c:579,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/libutils/json.c:580,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libntech/libutils/json.c:582,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:583,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libntech/libutils/json.c:585,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:586,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/libutils/json.c:588,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.c:592,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:593,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:594,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/json.c:598,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/json.c:599,1
    - Dst: JsonObjectMergeDeepInplace
      Src: /src/core/libntech/libutils/json.c:604,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.c:609,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:610,1
    - Dst: JsonArrayExtend
      Src: /src/core/libntech/libutils/json.c:611,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json.c:616,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:617,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:618,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - base
    - extra
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (extra != NULL)
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/core/libntech/libutils/json.c
    - condition: (base != NULL)
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element != NULL)
      pos:
        line_end: 616
        line_start: 616
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element != NULL)
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element != NULL)
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetType(base) == JSON_TYPE_OBJECT)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetType(extra) == JSON_TYPE_OBJECT)
      pos:
        line_end: 576
        line_start: 576
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 623
      start: 571
    functionDepth: 4
    functionLinenumber: 571
    functionLinenumberEnd: 623
    functionName: JsonObjectMergeDeepInplace
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 3
    functionsReached:
    - JsonIteratorInit
    - JsonIteratorNextKey
    - JsonCopy
    - assert
    - JsonIteratorCurrentValue
    - JsonIteratorHasMore
    - JsonObjectMergeDeepInplace
    - JsonObjectAppendElement
    - JsonArrayExtend
    - JsonObjectGet
    - JsonGetType
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonObjectMergeDeepInplace(JsonElement *const base, const
      JsonElement *const extra)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:627,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:632,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/json.c:635,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - element
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (element != NULL)
      pos:
        line_end: 626
        line_start: 626
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 641
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 641
    functionName: JsonLength
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 21
    functionsReached:
    - SeqLength
    - assert
    - UnexpectedError
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t JsonLength(const JsonElement *const element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:645,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - container
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (container != NULL)
      pos:
        line_end: 644
        line_start: 644
        source_file: /src/core/libntech/libutils/json.c
    - condition: (container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 649
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 649
    functionName: JsonIteratorInit
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 11
    functionsReached:
    - assert
    linkageType: ''
    returnType: JsonIterator
    signature: JsonIterator JsonIteratorInit(const JsonElement *const container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:653,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:654,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:655,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:656,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/libutils/json.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iter
    argTypes:
    - JsonIterator*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 652
        line_start: 652
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container != NULL)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 654
        line_start: 654
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 660
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 660
    functionName: JsonIteratorNextKey
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 5
    functionsReached:
    - assert
    - JsonIteratorNextValue
    linkageType: ''
    returnType: char
    signature: char *JsonIteratorNextKey(JsonIterator *const iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:664,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:665,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:666,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:668,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - iter
    argTypes:
    - JsonIterator*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container != NULL)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 675
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 675
    functionName: JsonIteratorNextValue
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 8
    functionsReached:
    - assert
    - JsonLength
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonIteratorNextValue(JsonIterator *const iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/libutils/json.c:681,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/json.c:683,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - iter
    - type
    - skip_null
    argTypes:
    - JsonIterator*
    - JsonElementType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 695
    functionName: JsonIteratorNextValueByType
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonGetType
    - JsonIteratorNextValue
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonIteratorNextValueByType(\n    JsonIterator *const
      iter, const JsonElementType type, const bool skip_null)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:699,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:700,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:701,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:703,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - iter
    argTypes:
    - JsonIterator*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 698
        line_start: 698
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container != NULL)
      pos:
        line_end: 699
        line_start: 699
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 700
        line_start: 700
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 710
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 710
    functionName: JsonIteratorCurrentValue
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 3
    functionsReached:
    - assert
    - JsonLength
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonIteratorCurrentValue(const JsonIterator *const iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:714,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:715,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:716,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:717,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libntech/libutils/json.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iter
    argTypes:
    - JsonIterator*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container != NULL)
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/core/libntech/libutils/json.c
    - condition: (iter->container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 722
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 722
    functionName: JsonIteratorCurrentKey
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - assert
    - JsonIteratorCurrentValue
    linkageType: ''
    returnType: char
    signature: char *JsonIteratorCurrentKey(const JsonIterator *const iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:726,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libntech/libutils/json.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iter
    argTypes:
    - JsonIterator*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: JsonIteratorCurrentElementType
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - JsonIteratorCurrentValue
    linkageType: ''
    returnType: JsonElementType
    signature: JsonElementType JsonIteratorCurrentElementType(const JsonIterator *const
      iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:735,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libntech/libutils/json.c:737,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - JsonIterator*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 734
        line_start: 734
        source_file: /src/core/libntech/libutils/json.c
    - condition: (child->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 737
        line_start: 737
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 741
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 741
    functionName: JsonIteratorCurrentContainerType
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - JsonIteratorCurrentValue
    linkageType: ''
    returnType: JsonContainerType
    signature: "JsonContainerType JsonIteratorCurrentContainerType(\n    const JsonIterator
      *const iter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:746,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libntech/libutils/json.c:748,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - JsonIterator*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 745
        line_start: 745
        source_file: /src/core/libntech/libutils/json.c
    - condition: (child->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 748
        line_start: 748
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 752
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 752
    functionName: JsonIteratorCurrentPrimitiveType
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - JsonIteratorCurrentValue
    linkageType: ''
    returnType: JsonPrimitiveType
    signature: "JsonPrimitiveType JsonIteratorCurrentPrimitiveType(\n    const JsonIterator
      *const iter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:756,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iter
    argTypes:
    - JsonIterator*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 755
        line_start: 755
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 759
      start: 754
    functionDepth: 2
    functionLinenumber: 754
    functionLinenumberEnd: 759
    functionName: JsonIteratorHasMore
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 5
    functionsReached:
    - assert
    - JsonLength
    linkageType: ''
    returnType: bool
    signature: bool JsonIteratorHasMore(const JsonIterator *const iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - element
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (element != NULL)
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 766
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 766
    functionName: JsonGetElementType
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 12
    functionsReached:
    - assert
    linkageType: ''
    returnType: JsonElementType
    signature: JsonElementType JsonGetElementType(const JsonElement *const element)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:770,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:772,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:775,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:775,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libntech/libutils/json.c:776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - element
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (JsonGetElementType(element) == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 774
        line_start: 774
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 777
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 777
    functionName: JsonGetType
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 4
    functionsReached:
    - JsonGetContainerType
    - assert
    - JsonGetElementType
    - JsonGetPrimitiveType
    linkageType: ''
    returnType: JsonType
    signature: JsonType JsonGetType(const JsonElement *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:781,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - container
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (container != NULL)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/core/libntech/libutils/json.c
    - condition: (container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 781
        line_start: 781
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 785
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 785
    functionName: JsonGetContainerType
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 11
    functionsReached:
    - assert
    linkageType: ''
    returnType: JsonContainerType
    signature: JsonContainerType JsonGetContainerType(const JsonElement *const container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:789,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - primitive
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (primitive != NULL)
      pos:
        line_end: 788
        line_start: 788
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 789
        line_start: 789
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 793
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 793
    functionName: JsonGetPrimitiveType
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: JsonPrimitiveType
    signature: JsonPrimitiveType JsonGetPrimitiveType(const JsonElement *const primitive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:797,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - primitive
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (primitive != NULL)
      pos:
        line_end: 796
        line_start: 796
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 797
        line_start: 797
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 801
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 801
    functionName: JsonPrimitiveGetAsString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 10
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *JsonPrimitiveGetAsString(const JsonElement *const primitive)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:805,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libntech/libutils/json.c:810,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/json.c:813,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libntech/libutils/json.c:813,1
    - Dst: StringFromLong
      Src: /src/core/libntech/libutils/json.c:817,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/libntech/libutils/json.c:817,1
    - Dst: StringFromDouble
      Src: /src/core/libntech/libutils/json.c:821,1
    - Dst: JsonPrimitiveGetAsReal
      Src: /src/core/libntech/libutils/json.c:821,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/json.c:825,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/libutils/json.c:825,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - primitive
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 803
    functionDepth: 4
    functionLinenumber: 803
    functionLinenumberEnd: 833
    functionName: JsonPrimitiveToString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonPrimitiveGetAsBool
    - JsonPrimitiveGetAsReal
    - JsonPrimitiveGetAsString
    - JsonGetElementType
    - StringFromDouble
    - StringFromLong
    - xstrdup
    - JsonPrimitiveGetAsInteger
    - JsonGetPrimitiveType
    linkageType: ''
    returnType: char
    signature: char *JsonPrimitiveToString(const JsonElement *const primitive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:837,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:838,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:839,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/json.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - primitive
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (primitive != NULL)
      pos:
        line_end: 836
        line_start: 836
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 837
        line_start: 837
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->primitive.type == JSON_PRIMITIVE_TYPE_BOOL)
      pos:
        line_end: 838
        line_start: 838
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 842
      start: 835
    functionDepth: 4
    functionLinenumber: 835
    functionLinenumberEnd: 842
    functionName: JsonPrimitiveGetAsBool
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 5
    functionsReached:
    - assert
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool JsonPrimitiveGetAsBool(const JsonElement *const primitive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:846,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:847,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:848,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/libutils/json.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - primitive
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (primitive != NULL)
      pos:
        line_end: 845
        line_start: 845
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 846
        line_start: 846
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->primitive.type == JSON_PRIMITIVE_TYPE_INTEGER)
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 851
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 851
    functionName: JsonPrimitiveGetAsInteger
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 6
    functionsReached:
    - assert
    - StringToLongExitOnError
    linkageType: ''
    returnType: long
    signature: long JsonPrimitiveGetAsInteger(const JsonElement *const primitive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:856,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:857,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:858,1
    - Dst: StringToInt64
      Src: /src/core/libntech/libutils/json.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - primitive
    - value_out
    argTypes:
    - JsonElement*
    - int64_t*
    assertStmts:
    - condition: (primitive != NULL)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->primitive.type == JSON_PRIMITIVE_TYPE_INTEGER)
      pos:
        line_end: 857
        line_start: 857
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 861
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 861
    functionName: JsonPrimitiveGetAsInt64
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - StringToInt64
    linkageType: ''
    returnType: int
    signature: int JsonPrimitiveGetAsInt64(const JsonElement *primitive, int64_t *value_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:865,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:866,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:867,1
    - Dst: StringToInt64DefaultOnError
      Src: /src/core/libntech/libutils/json.c:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - primitive
    - default_return
    argTypes:
    - JsonElement*
    - int64_t
    assertStmts:
    - condition: (primitive != NULL)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 865
        line_start: 865
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->primitive.type == JSON_PRIMITIVE_TYPE_INTEGER)
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 870
      start: 863
    functionDepth: 3
    functionLinenumber: 863
    functionLinenumberEnd: 870
    functionName: JsonPrimitiveGetAsInt64DefaultOnError
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - StringToInt64DefaultOnError
    linkageType: ''
    returnType: int64_t
    signature: int64_t JsonPrimitiveGetAsInt64DefaultOnError(const JsonElement *primitive,
      int64_t default_return)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:874,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:875,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:876,1
    - Dst: StringToInt64ExitOnError
      Src: /src/core/libntech/libutils/json.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - primitive
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (primitive != NULL)
      pos:
        line_end: 873
        line_start: 873
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 874
        line_start: 874
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->primitive.type == JSON_PRIMITIVE_TYPE_INTEGER)
      pos:
        line_end: 875
        line_start: 875
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 879
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 879
    functionName: JsonPrimitiveGetAsInt64ExitOnError
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - StringToInt64ExitOnError
    linkageType: ''
    returnType: int64_t
    signature: int64_t JsonPrimitiveGetAsInt64ExitOnError(const JsonElement *primitive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:883,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:884,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:885,1
    - Dst: StringToDouble
      Src: /src/core/libntech/libutils/json.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - primitive
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (primitive != NULL)
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitive->primitive.type == JSON_PRIMITIVE_TYPE_REAL)
      pos:
        line_end: 884
        line_start: 884
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 888
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 888
    functionName: JsonPrimitiveGetAsReal
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 3
    functionsReached:
    - assert
    - StringToDouble
    linkageType: ''
    returnType: double
    signature: double JsonPrimitiveGetAsReal(const JsonElement *const primitive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - element
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (element != NULL)
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 895
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 895
    functionName: JsonGetPropertyAsString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *JsonGetPropertyAsString(const JsonElement *const element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:902,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:903,1
    - Dst: SeqSort
      Src: /src/core/libntech/libutils/json.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - container
    - Compare
    - user_data
    argTypes:
    - JsonElement*
    - JsonComparator*
    - void*
    assertStmts:
    - condition: (container != NULL)
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/core/libntech/libutils/json.c
    - condition: (container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 907
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 907
    functionName: JsonSort
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - SeqSort
    linkageType: ''
    returnType: void
    signature: "void JsonSort(\n    const JsonElement *const container,\n    JsonComparator
      *const Compare,\n    void *const user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:911,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:912,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:913,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:913,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - container
    - index
    argTypes:
    - JsonElement*
    - size_t
    assertStmts:
    - condition: (container != NULL)
      pos:
        line_end: 910
        line_start: 910
        source_file: /src/core/libntech/libutils/json.c
    - condition: (container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/core/libntech/libutils/json.c
    - condition: (index < JsonLength(container))
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 916
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 916
    functionName: JsonAt
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 3
    functionsReached:
    - assert
    - JsonLength
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonAt(const JsonElement *container, const size_t index)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json.c:927,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:934,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/libutils/json.c:938,1
    - Dst: JsonSelect
      Src: /src/core/libntech/libutils/json.c:941,1
    - Dst: StringIsNumeric
      Src: /src/core/libntech/libutils/json.c:947,1
    - Dst: StringToLongExitOnError
      Src: /src/core/libntech/libutils/json.c:949,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:950,1
    - Dst: JsonArrayGet
      Src: /src/core/libntech/libutils/json.c:952,1
    - Dst: JsonSelect
      Src: /src/core/libntech/libutils/json.c:955,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:962,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json.c:964,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - element
    - num_indices
    - indices
    argTypes:
    - JsonElement*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 918
    functionDepth: 3
    functionLinenumber: 918
    functionLinenumberEnd: 968
    functionName: JsonSelect
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - JsonGetContainerType
    - JsonLength
    - JsonGetElementType
    - StringToLongExitOnError
    - UnexpectedError
    - JsonArrayGet
    - StringIsNumeric
    - JsonObjectGet
    - JsonSelect
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonSelect(\n    JsonElement *const element, const size_t
      num_indices, char **const indices)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonElementCreateContainer
      Src: /src/core/libntech/libutils/json.c:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initialCapacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 974
    functionDepth: 2
    functionLinenumber: 974
    functionLinenumberEnd: 978
    functionName: JsonObjectCreate
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 31
    functionsReached:
    - JsonElementCreateContainer
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonObjectCreate(const size_t initialCapacity)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:983,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:991,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:992,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:995,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:996,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:999,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1000,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1003,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1004,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1007,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1008,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1011,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1012,1
    - Dst: CharIsPrintableAscii
      Src: /src/core/libntech/libutils/json.c:1015,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1017,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/json.c:1021,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - unescaped_string
    - writer
    argTypes:
    - char*
    - Writer*
    assertStmts:
    - condition: (unescaped_string != NULL)
      pos:
        line_end: 982
        line_start: 982
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1025
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 1025
    functionName: JsonEncodeStringWriter
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - assert
    - WriterWriteChar
    - CharIsPrintableAscii
    linkageType: ''
    returnType: void
    signature: "void JsonEncodeStringWriter(\n    const char *const unescaped_string,
      Writer *const writer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/json.c:1029,1
    - Dst: JsonEncodeStringWriter
      Src: /src/core/libntech/libutils/json.c:1031,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/json.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unescaped_string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1034
    functionName: JsonEncodeString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonEncodeStringWriter
    - StringWriterClose
    - StringWriter
    linkageType: ''
    returnType: char
    signature: char *JsonEncodeString(const char *const unescaped_string)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1038,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/json.c:1041,1
    - Dst: alloca
      Src: /src/core/libntech/libutils/json.c:1047,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/json.c:1048,1
    - Dst: isdigit
      Src: /src/core/libntech/libutils/json.c:1053,1
    - Dst: strtol
      Src: /src/core/libntech/libutils/json.c:1062,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - hex_string
    - res
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (hex_string != NULL)
      pos:
        line_end: 1037
        line_start: 1037
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1070
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1070
    functionName: HexStringToChar
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - alloca
    - memcpy
    - strlen
    - assert
    - isdigit
    - strtol
    linkageType: ''
    returnType: bool
    signature: bool HexStringToChar(const char *hex_string, char *res)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1075,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1085,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1089,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1093,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1097,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1101,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1105,1
    - Dst: HexStringToChar
      Src: /src/core/libntech/libutils/json.c:1115,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/json.c:1117,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1122,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1128,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - escaped_string
    - w
    argTypes:
    - char*
    - Writer*
    assertStmts:
    - condition: (escaped_string != NULL)
      pos:
        line_end: 1074
        line_start: 1074
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1131
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1131
    functionName: JsonDecodeStringWriter
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - assert
    - WriterWriteChar
    - HexStringToChar
    linkageType: ''
    returnType: void
    signature: "void JsonDecodeStringWriter(\n    const char *const escaped_string,
      Writer *const w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/json.c:1135,1
    - Dst: JsonDecodeStringWriter
      Src: /src/core/libntech/libutils/json.c:1137,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/json.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - escaped_string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1133
    functionDepth: 3
    functionLinenumber: 1133
    functionLinenumberEnd: 1140
    functionName: JsonDecodeString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonDecodeStringWriter
    - StringWriterClose
    - StringWriter
    linkageType: ''
    returnType: char
    signature: char *JsonDecodeString(const char *const escaped_string)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1147,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1157,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1161,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1162,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1165,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1168,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1171,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1174,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1177,1
    - Dst: CharIsPrintableAscii
      Src: /src/core/libntech/libutils/json.c:1181,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1183,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/json.c:1188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - unescaped_data
    - writer
    argTypes:
    - Slice
    - Writer*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 1146
        line_start: 1146
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1194
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1194
    functionName: Json5EscapeDataWriter
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - WriterWriteChar
    - WriterWrite
    - CharIsPrintableAscii
    - WriterWriteF
    linkageType: ''
    returnType: void
    signature: void Json5EscapeDataWriter(const Slice unescaped_data, Writer *const
      writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/json.c:1198,1
    - Dst: Json5EscapeDataWriter
      Src: /src/core/libntech/libutils/json.c:1200,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/json.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unescaped_data
    argTypes:
    - Slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1196
    functionDepth: 2
    functionLinenumber: 1196
    functionLinenumberEnd: 1203
    functionName: Json5EscapeData
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - Json5EscapeDataWriter
    - StringWriterClose
    - StringWriter
    linkageType: ''
    returnType: char
    signature: char *Json5EscapeData(Slice unescaped_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonStringCreate
      Src: /src/core/libntech/libutils/json.c:1208,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - key
    - value
    argTypes:
    - JsonElement*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1210
    functionName: JsonObjectAppendString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 17
    functionsReached:
    - JsonStringCreate
    - JsonObjectAppendElement
    linkageType: ''
    returnType: void
    signature: "void JsonObjectAppendString(\n    JsonElement *const object, const
      char *const key, const char *const value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonIntegerCreate
      Src: /src/core/libntech/libutils/json.c:1215,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - key
    - value
    argTypes:
    - JsonElement*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1217
    functionName: JsonObjectAppendInteger
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 9
    functionsReached:
    - JsonObjectAppendElement
    - JsonIntegerCreate
    linkageType: ''
    returnType: void
    signature: "void JsonObjectAppendInteger(\n    JsonElement *const object, const
      char *const key, const int value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonIntegerCreate64
      Src: /src/core/libntech/libutils/json.c:1222,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - key
    - value
    argTypes:
    - JsonElement*
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1224
    functionName: JsonObjectAppendInteger64
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - JsonIntegerCreate64
    - JsonObjectAppendElement
    linkageType: ''
    returnType: void
    signature: "void JsonObjectAppendInteger64(\n    JsonElement *const object, const
      char *const key, const int64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/libutils/json.c:1229,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - key
    - value
    argTypes:
    - JsonElement*
    - char*
    - _Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1231
    functionName: JsonObjectAppendBool
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 4
    functionsReached:
    - JsonBoolCreate
    - JsonObjectAppendElement
    linkageType: ''
    returnType: void
    signature: "void JsonObjectAppendBool(\n    JsonElement *const object, const char
      *const key, const _Bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonRealCreate
      Src: /src/core/libntech/libutils/json.c:1236,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - key
    - value
    argTypes:
    - JsonElement*
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1238
    functionName: JsonObjectAppendReal
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - JsonRealCreate
    - JsonObjectAppendElement
    linkageType: ''
    returnType: void
    signature: "void JsonObjectAppendReal(\n    JsonElement *const object, const char
      *const key, const double value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonNullCreate
      Src: /src/core/libntech/libutils/json.c:1242,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - key
    argTypes:
    - JsonElement*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1244
    functionName: JsonObjectAppendNull
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - JsonNullCreate
    - JsonObjectAppendElement
    linkageType: ''
    returnType: void
    signature: void JsonObjectAppendNull(JsonElement *const object, const char *const
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1249,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1250,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1251,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - object
    - key
    - array
    argTypes:
    - JsonElement*
    - char*
    - JsonElement*
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1248
        line_start: 1248
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1249
        line_start: 1249
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1250
        line_start: 1250
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1254
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1254
    functionName: JsonObjectAppendArray
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 5
    functionsReached:
    - assert
    - JsonObjectAppendElement
    linkageType: ''
    returnType: void
    signature: "void JsonObjectAppendArray(\n    JsonElement *const object, const
      char *const key, JsonElement *const array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1261,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1262,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1263,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - object
    - key
    - childObject
    argTypes:
    - JsonElement*
    - char*
    - JsonElement*
    assertStmts:
    - condition: (childObject != NULL)
      pos:
        line_end: 1260
        line_start: 1260
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childObject->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1262
        line_start: 1262
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childObject->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1261
        line_start: 1261
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1266
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1266
    functionName: JsonObjectAppendObject
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 3
    functionsReached:
    - assert
    - JsonObjectAppendElement
    linkageType: ''
    returnType: void
    signature: "void JsonObjectAppendObject(\n    JsonElement *const object,\n    const
      char *const key,\n    JsonElement *const childObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1273,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1274,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1275,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1276,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1277,1
    - Dst: JsonObjectRemoveKey
      Src: /src/core/libntech/libutils/json.c:1279,1
    - Dst: JsonElementSetPropertyName
      Src: /src/core/libntech/libutils/json.c:1281,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/json.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - object
    - key
    - element
    argTypes:
    - JsonElement*
    - char*
    - JsonElement*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1272
        line_start: 1272
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element != NULL)
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 1275
        line_start: 1275
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1273
        line_start: 1273
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1283
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1283
    functionName: JsonObjectAppendElement
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 20
    functionsReached:
    - assert
    - JsonElementSetPropertyName
    - JsonObjectRemoveKey
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: "void JsonObjectAppendElement(\n    JsonElement *const object,\n    const
      char *const key,\n    JsonElement *const element)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1290,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1294,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/json.c:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - propertyName
    - jsonElement
    - user_data
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts:
    - condition: (propertyName != NULL)
      pos:
        line_end: 1289
        line_start: 1289
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element->propertyName != NULL)
      pos:
        line_end: 1293
        line_start: 1293
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1301
      start: 1285
    functionDepth: 4
    functionLinenumber: 1285
    functionLinenumberEnd: 1301
    functionName: JsonElementHasProperty
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - StringEqual
    linkageType: ''
    returnType: int
    signature: "int JsonElementHasProperty(\n    const void *const propertyName,\n
      \   const void *const jsonElement,\n    ARG_UNUSED void *const user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1306,1
    - Dst: StringSafeCompare
      Src: /src/core/libntech/libutils/json.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - user_data
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 1305
        line_start: 1305
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1310
      start: 1303
    functionDepth: 3
    functionLinenumber: 1303
    functionLinenumberEnd: 1310
    functionName: CompareKeyToPropertyName
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - StringSafeCompare
    linkageType: ''
    returnType: int
    signature: "int CompareKeyToPropertyName(\n    const void *const a, const void
      *const b, ARG_UNUSED void *const user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1315,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1316,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1317,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1318,1
    - Dst: SeqIndexOf
      Src: /src/core/libntech/libutils/json.c:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - parent
    - key
    argTypes:
    - JsonElement*
    - char*
    assertStmts:
    - condition: (parent != NULL)
      pos:
        line_end: 1314
        line_start: 1314
        source_file: /src/core/libntech/libutils/json.c
    - condition: (parent->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1315
        line_start: 1315
        source_file: /src/core/libntech/libutils/json.c
    - condition: (parent->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 1317
        line_start: 1317
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1322
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1322
    functionName: JsonElementIndexInParentObject
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - SeqIndexOf
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t JsonElementIndexInParentObject(\n    JsonElement *const parent,
      const char *const key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1326,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1327,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1328,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1329,1
    - Dst: JsonElementIndexInParentObject
      Src: /src/core/libntech/libutils/json.c:1331,1
    - Dst: SeqRemove
      Src: /src/core/libntech/libutils/json.c:1334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - object
    - key
    argTypes:
    - JsonElement*
    - char*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1325
        line_start: 1325
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1326
        line_start: 1326
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1327
        line_start: 1327
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1338
      start: 1324
    functionDepth: 2
    functionLinenumber: 1324
    functionLinenumberEnd: 1338
    functionName: JsonObjectRemoveKey
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 5
    functionsReached:
    - assert
    - SeqRemove
    - JsonElementIndexInParentObject
    linkageType: ''
    returnType: bool
    signature: bool JsonObjectRemoveKey(JsonElement *const object, const char *const
      key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1343,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1344,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1345,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1346,1
    - Dst: JsonElementIndexInParentObject
      Src: /src/core/libntech/libutils/json.c:1350,1
    - Dst: SeqLookup
      Src: /src/core/libntech/libutils/json.c:1354,1
    - Dst: SeqSoftRemove
      Src: /src/core/libntech/libutils/json.c:1355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - object
    - key
    argTypes:
    - JsonElement*
    - char*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1342
        line_start: 1342
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1344
        line_start: 1344
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1343
        line_start: 1343
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 1345
        line_start: 1345
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1359
      start: 1340
    functionDepth: 2
    functionLinenumber: 1340
    functionLinenumberEnd: 1359
    functionName: JsonObjectDetachKey
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - SeqSoftRemove
    - SeqLookup
    - JsonElementIndexInParentObject
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonObjectDetachKey(\n    JsonElement *const object,
      const char *const key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1364,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1365,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1366,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1367,1
    - Dst: SeqLookup
      Src: /src/core/libntech/libutils/json.c:1370,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - object
    - key
    argTypes:
    - JsonElement*
    - char*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1363
        line_start: 1363
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1364
        line_start: 1364
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 1366
        line_start: 1366
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1365
        line_start: 1365
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childPrimitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 1373
        line_start: 1373
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1379
      start: 1361
    functionDepth: 1
    functionLinenumber: 1361
    functionLinenumberEnd: 1379
    functionName: JsonObjectGetAsString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 16
    functionsReached:
    - assert
    - SeqLookup
    linkageType: ''
    returnType: char
    signature: "char *JsonObjectGetAsString(\n    const JsonElement *const object,
      const char *const key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1384,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1385,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/json.c:1385,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1386,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/libutils/json.c:1388,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1392,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/json.c:1392,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/json.c:1393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - object
    - key
    argTypes:
    - JsonElement*
    - char*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1383
        line_start: 1383
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 1385
        line_start: 1385
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetType(object) == JSON_TYPE_OBJECT)
      pos:
        line_end: 1384
        line_start: 1384
        source_file: /src/core/libntech/libutils/json.c
    - condition: (JsonGetType(childPrimitive) == JSON_TYPE_BOOL)
      pos:
        line_end: 1391
        line_start: 1391
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1397
      start: 1381
    functionDepth: 4
    functionLinenumber: 1381
    functionLinenumberEnd: 1397
    functionName: JsonObjectGetAsBool
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - JsonGetType
    - JsonObjectGet
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: "bool JsonObjectGetAsBool(\n    const JsonElement *const object, const
      char *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1402,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1403,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1404,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1405,1
    - Dst: SeqLookup
      Src: /src/core/libntech/libutils/json.c:1408,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1412,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - object
    - key
    argTypes:
    - JsonElement*
    - char*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1401
        line_start: 1401
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 1404
        line_start: 1404
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1402
        line_start: 1402
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1403
        line_start: 1403
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childPrimitive->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1411
        line_start: 1411
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childPrimitive->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1412
        line_start: 1412
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1418
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1418
    functionName: JsonObjectGetAsObject
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - SeqLookup
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonObjectGetAsObject(\n    JsonElement *const object,
      const char *const key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1423,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1424,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1425,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1426,1
    - Dst: SeqLookup
      Src: /src/core/libntech/libutils/json.c:1429,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1433,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - object
    - key
    argTypes:
    - JsonElement*
    - char*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1422
        line_start: 1422
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 1425
        line_start: 1425
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1423
        line_start: 1423
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1424
        line_start: 1424
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childPrimitive->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1432
        line_start: 1432
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childPrimitive->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1433
        line_start: 1433
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1439
      start: 1420
    functionDepth: 1
    functionLinenumber: 1420
    functionLinenumberEnd: 1439
    functionName: JsonObjectGetAsArray
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 4
    functionsReached:
    - assert
    - SeqLookup
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonObjectGetAsArray(\n    JsonElement *const object,
      const char *const key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1444,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1445,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1446,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1447,1
    - Dst: SeqLookup
      Src: /src/core/libntech/libutils/json.c:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - object
    - key
    argTypes:
    - JsonElement*
    - char*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1443
        line_start: 1443
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1444
        line_start: 1444
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1445
        line_start: 1445
        source_file: /src/core/libntech/libutils/json.c
    - condition: (key != NULL)
      pos:
        line_end: 1446
        line_start: 1446
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1450
      start: 1441
    functionDepth: 1
    functionLinenumber: 1441
    functionLinenumberEnd: 1450
    functionName: JsonObjectGet
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 11
    functionsReached:
    - assert
    - SeqLookup
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *JsonObjectGet(\n    const JsonElement *const object,
      const char *const key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonElementCreateContainer
      Src: /src/core/libntech/libutils/json.c:1458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initialCapacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1460
    functionName: JsonArrayCreate
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 24
    functionsReached:
    - JsonElementCreateContainer
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonArrayCreate(const size_t initialCapacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonStringCreate
      Src: /src/core/libntech/libutils/json.c:1464,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - JsonElement*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1466
    functionName: JsonArrayAppendString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 14
    functionsReached:
    - JsonStringCreate
    - JsonArrayAppendElement
    linkageType: ''
    returnType: void
    signature: void JsonArrayAppendString(JsonElement *const array, const char *const
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/libutils/json.c:1470,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:1471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - JsonElement*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1472
    functionName: JsonArrayAppendBool
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - JsonBoolCreate
    - JsonArrayAppendElement
    linkageType: ''
    returnType: void
    signature: void JsonArrayAppendBool(JsonElement *const array, const bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonIntegerCreate
      Src: /src/core/libntech/libutils/json.c:1476,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - JsonElement*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1474
    functionDepth: 1
    functionLinenumber: 1474
    functionLinenumberEnd: 1478
    functionName: JsonArrayAppendInteger
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - JsonArrayAppendElement
    - JsonIntegerCreate
    linkageType: ''
    returnType: void
    signature: void JsonArrayAppendInteger(JsonElement *const array, const int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonRealCreate
      Src: /src/core/libntech/libutils/json.c:1482,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - value
    argTypes:
    - JsonElement*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1484
    functionName: JsonArrayAppendReal
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 3
    functionsReached:
    - JsonRealCreate
    - JsonArrayAppendElement
    linkageType: ''
    returnType: void
    signature: void JsonArrayAppendReal(JsonElement *const array, const double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonNullCreate
      Src: /src/core/libntech/libutils/json.c:1488,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:1489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1490
    functionName: JsonArrayAppendNull
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonNullCreate
    - JsonArrayAppendElement
    linkageType: ''
    returnType: void
    signature: void JsonArrayAppendNull(JsonElement *const array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1495,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1496,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1497,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - array
    - childArray
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (childArray != NULL)
      pos:
        line_end: 1494
        line_start: 1494
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childArray->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1495
        line_start: 1495
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childArray->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1496
        line_start: 1496
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1500
      start: 1492
    functionDepth: 1
    functionLinenumber: 1492
    functionLinenumberEnd: 1500
    functionName: JsonArrayAppendArray
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - JsonArrayAppendElement
    linkageType: ''
    returnType: void
    signature: "void JsonArrayAppendArray(\n    JsonElement *const array, JsonElement
      *const childArray)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1504,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1505,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1506,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - array
    - object
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1503
        line_start: 1503
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1505
        line_start: 1505
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1504
        line_start: 1504
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1509
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1509
    functionName: JsonArrayAppendObject
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    - JsonArrayAppendElement
    linkageType: ''
    returnType: void
    signature: void JsonArrayAppendObject(JsonElement *const array, JsonElement *const
      object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1514,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1515,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1516,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1517,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/json.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - array
    - element
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1513
        line_start: 1513
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1514
        line_start: 1514
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1515
        line_start: 1515
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element != NULL)
      pos:
        line_end: 1516
        line_start: 1516
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1520
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1520
    functionName: JsonArrayAppendElement
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 10
    functionsReached:
    - assert
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: "void JsonArrayAppendElement(\n    JsonElement *const array, JsonElement
      *const element)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1524,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1525,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1526,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1527,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1528,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1529,1
    - Dst: SeqAppendSeq
      Src: /src/core/libntech/libutils/json.c:1531,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libntech/libutils/json.c:1532,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:1535,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:1537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - JsonElement*
    - JsonElement*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1523
        line_start: 1523
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1527
        line_start: 1527
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b != NULL)
      pos:
        line_end: 1526
        line_start: 1526
        source_file: /src/core/libntech/libutils/json.c
    - condition: (a->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1524
        line_start: 1524
        source_file: /src/core/libntech/libutils/json.c
    - condition: (a->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1525
        line_start: 1525
        source_file: /src/core/libntech/libutils/json.c
    - condition: (b->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1528
        line_start: 1528
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1538
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1538
    functionName: JsonArrayExtend
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - assert
    - SeqSoftDestroy
    - SeqAppendSeq
    - free
    linkageType: ''
    returnType: void
    signature: void JsonArrayExtend(JsonElement *a, JsonElement *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1543,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1544,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1545,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1546,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:1546,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1547,1
    - Dst: SeqRemoveRange
      Src: /src/core/libntech/libutils/json.c:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - array
    - start
    - end
    argTypes:
    - JsonElement*
    - size_t
    - size_t
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1542
        line_start: 1542
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1543
        line_start: 1543
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1544
        line_start: 1544
        source_file: /src/core/libntech/libutils/json.c
    - condition: (end < SeqLength(array->container.children))
      pos:
        line_end: 1545
        line_start: 1545
        source_file: /src/core/libntech/libutils/json.c
    - condition: (start <= end)
      pos:
        line_end: 1546
        line_start: 1546
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1550
      start: 1540
    functionDepth: 1
    functionLinenumber: 1540
    functionLinenumberEnd: 1550
    functionName: JsonArrayRemoveRange
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - assert
    - SeqRemoveRange
    linkageType: ''
    returnType: void
    signature: "void JsonArrayRemoveRange(\n    JsonElement *const array, const size_t
      start, const size_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1554,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1555,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1556,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1557,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:1557,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:1559,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1563,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JsonElement*
    - size_t
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1553
        line_start: 1553
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1554
        line_start: 1554
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1555
        line_start: 1555
        source_file: /src/core/libntech/libutils/json.c
    - condition: (index < SeqLength(array->container.children))
      pos:
        line_end: 1556
        line_start: 1556
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childPrimitive->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 1562
        line_start: 1562
        source_file: /src/core/libntech/libutils/json.c
    - condition: (childPrimitive->primitive.type == JSON_PRIMITIVE_TYPE_STRING)
      pos:
        line_end: 1563
        line_start: 1563
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1569
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1569
    functionName: JsonArrayGetAsString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 7
    functionsReached:
    - SeqLength
    - assert
    - SeqAt
    linkageType: ''
    returnType: char
    signature: char *JsonArrayGetAsString(JsonElement *const array, const size_t index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1573,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1574,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1575,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1576,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:1576,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:1578,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1582,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JsonElement*
    - size_t
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1572
        line_start: 1572
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1573
        line_start: 1573
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1574
        line_start: 1574
        source_file: /src/core/libntech/libutils/json.c
    - condition: (index < SeqLength(array->container.children))
      pos:
        line_end: 1575
        line_start: 1575
        source_file: /src/core/libntech/libutils/json.c
    - condition: (child->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1581
        line_start: 1581
        source_file: /src/core/libntech/libutils/json.c
    - condition: (child->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1582
        line_start: 1582
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1588
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1588
    functionName: JsonArrayGetAsObject
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - SeqLength
    - assert
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonArrayGetAsObject(JsonElement *const array, const size_t
      index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1592,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1593,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1594,1
    - Dst: JsonAt
      Src: /src/core/libntech/libutils/json.c:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - array
    - index
    argTypes:
    - JsonElement*
    - size_t
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1591
        line_start: 1591
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1592
        line_start: 1592
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1593
        line_start: 1593
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1597
      start: 1590
    functionDepth: 3
    functionLinenumber: 1590
    functionLinenumberEnd: 1597
    functionName: JsonArrayGet
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - JsonAt
    - assert
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonArrayGet(const JsonElement *const array, const size_t
      index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1601,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1602,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1603,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:1606,1
    - Dst: JsonArrayGet
      Src: /src/core/libntech/libutils/json.c:1608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - array
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1600
        line_start: 1600
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1601
        line_start: 1601
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1602
        line_start: 1602
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1617
      start: 1599
    functionDepth: 4
    functionLinenumber: 1599
    functionLinenumberEnd: 1617
    functionName: JsonArrayContainsOnlyPrimitives
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - JsonLength
    - JsonArrayGet
    linkageType: ''
    returnType: bool
    signature: bool JsonArrayContainsOnlyPrimitives(JsonElement *const array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1621,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1622,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1623,1
    - Dst: SeqReverse
      Src: /src/core/libntech/libutils/json.c:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1621
        line_start: 1621
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1622
        line_start: 1622
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1626
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1626
    functionName: JsonContainerReverse
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - SeqReverse
    linkageType: ''
    returnType: void
    signature: void JsonContainerReverse(JsonElement *const array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1634,1
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:1636,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/json.c:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 1633
        line_start: 1633
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1638
      start: 1632
    functionDepth: 1
    functionLinenumber: 1632
    functionLinenumberEnd: 1638
    functionName: JsonStringCreate
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 5
    functionsReached:
    - assert
    - JsonElementCreatePrimitive
    - xstrdup
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonStringCreate(const char *const value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libntech/libutils/json.c:1643,1
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:1645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1646
    functionName: JsonIntegerCreate
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 4
    functionsReached:
    - xasprintf
    - JsonElementCreatePrimitive
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonIntegerCreate(const int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libntech/libutils/json.c:1651,1
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1654
    functionName: JsonIntegerCreate64
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - xasprintf
    - JsonElementCreatePrimitive
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonIntegerCreate64(const int64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/core/libntech/libutils/json.c:1658,1
    - Dst: isfinite
      Src: /src/core/libntech/libutils/json.c:1658,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/json.c:1663,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/json.c:1664,1
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:1666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1667
    functionName: JsonRealCreate
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 4
    functionsReached:
    - xcalloc
    - JsonElementCreatePrimitive
    - snprintf
    - isfinite
    - isnan
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonRealCreate(double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:1672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1673
    functionName: JsonBoolCreate
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 4
    functionsReached:
    - JsonElementCreatePrimitive
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonBoolCreate(const bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:1677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1675
    functionDepth: 1
    functionLinenumber: 1675
    functionLinenumberEnd: 1678
    functionName: JsonNullCreate
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 4
    functionsReached:
    - JsonElementCreatePrimitive
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonNullCreate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1689
    functionDepth: 0
    functionLinenumber: 1689
    functionLinenumberEnd: 1692
    functionName: IsWhitespace
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsWhitespace(const char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsWhitespace
      Src: /src/core/libntech/libutils/json.c:1696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1697
    functionName: IsSeparator
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - IsWhitespace
    linkageType: ''
    returnType: bool
    signature: bool IsSeparator(const char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1703
    functionName: IsDigit
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDigit(const char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - num
    argTypes:
    - Writer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1705
    functionDepth: 1
    functionLinenumber: 1705
    functionLinenumberEnd: 1713
    functionName: PrintIndent
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - WriterWriteChar
    linkageType: ''
    returnType: void
    signature: void PrintIndent(Writer *const writer, const int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1720,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1721,1
    - Dst: PrintIndent
      Src: /src/core/libntech/libutils/json.c:1727,1
    - Dst: JsonEncodeString
      Src: /src/core/libntech/libutils/json.c:1729,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/json.c:1730,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:1731,1
    - Dst: PrintIndent
      Src: /src/core/libntech/libutils/json.c:1736,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - writer
    - primitiveElement
    - indent_level
    argTypes:
    - Writer*
    - JsonElement*
    - size_t
    assertStmts:
    - condition: (primitiveElement != NULL)
      pos:
        line_end: 1719
        line_start: 1719
        source_file: /src/core/libntech/libutils/json.c
    - condition: (primitiveElement->type == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 1720
        line_start: 1720
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1739
      start: 1715
    functionDepth: 3
    functionLinenumber: 1715
    functionLinenumberEnd: 1739
    functionName: JsonPrimitiveWrite
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - WriterWrite
    - WriterWriteF
    - PrintIndent
    - free
    - JsonEncodeString
    linkageType: ''
    returnType: void
    signature: "void JsonPrimitiveWrite(\n    Writer *const writer,\n    const JsonElement
      *const primitiveElement,\n    const size_t indent_level)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1746,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1747,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1748,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1749,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:1751,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1753,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1757,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:1760,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:1763,1
    - Dst: JsonPrimitiveWrite
      Src: /src/core/libntech/libutils/json.c:1768,1
    - Dst: PrintIndent
      Src: /src/core/libntech/libutils/json.c:1772,1
    - Dst: JsonContainerWrite
      Src: /src/core/libntech/libutils/json.c:1773,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:1777,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1782,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1786,1
    - Dst: PrintIndent
      Src: /src/core/libntech/libutils/json.c:1790,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - writer
    - array
    - indent_level
    argTypes:
    - Writer*
    - JsonElement*
    - size_t
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1745
        line_start: 1745
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1746
        line_start: 1746
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1747
        line_start: 1747
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.children != NULL)
      pos:
        line_end: 1748
        line_start: 1748
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1792
      start: 1741
    functionDepth: 4
    functionLinenumber: 1741
    functionLinenumberEnd: 1792
    functionName: JsonArrayWrite
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - assert
    - PrintIndent
    - JsonContainerWrite
    - WriterWrite
    - WriterWriteChar
    - UnexpectedError
    - JsonPrimitiveWrite
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void JsonArrayWrite(\n    Writer *const writer,\n    const JsonElement
      *const array,\n    const size_t indent_level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1799,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1800,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json.c:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - e1
    - e2
    - user_data
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts:
    - condition: (e1 != NULL)
      pos:
        line_end: 1798
        line_start: 1798
        source_file: /src/core/libntech/libutils/json.c
    - condition: (e2 != NULL)
      pos:
        line_end: 1799
        line_start: 1799
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1805
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1805
    functionName: JsonElementPropertyCompare
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int JsonElementPropertyCompare(\n    const void *const e1,\n    const
      void *const e2,\n    ARG_UNUSED void *const user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1811,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1812,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:1815,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:1818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - object
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1810
        line_start: 1810
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1811
        line_start: 1811
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1825
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1825
    functionName: all_children_have_keys
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool all_children_have_keys(const JsonElement *const object)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1834,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1835,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1836,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1837,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1839,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1841,1
    - Dst: all_children_have_keys
      Src: /src/core/libntech/libutils/json.c:1841,1
    - Dst: JsonSort
      Src: /src/core/libntech/libutils/json.c:1845,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:1848,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:1851,1
    - Dst: PrintIndent
      Src: /src/core/libntech/libutils/json.c:1853,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1855,1
    - Dst: JsonEncodeString
      Src: /src/core/libntech/libutils/json.c:1856,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/json.c:1857,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:1858,1
    - Dst: JsonPrimitiveWrite
      Src: /src/core/libntech/libutils/json.c:1863,1
    - Dst: JsonContainerWrite
      Src: /src/core/libntech/libutils/json.c:1867,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:1871,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1876,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1878,1
    - Dst: PrintIndent
      Src: /src/core/libntech/libutils/json.c:1881,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1882,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - writer
    - object
    - indent_level
    argTypes:
    - Writer*
    - JsonElement*
    - size_t
    assertStmts:
    - condition: (object->container.children != NULL)
      pos:
        line_end: 1836
        line_start: 1836
        source_file: /src/core/libntech/libutils/json.c
    - condition: (all_children_have_keys(object))
      pos:
        line_end: 1840
        line_start: 1840
        source_file: /src/core/libntech/libutils/json.c
    - condition: (child->propertyName != NULL)
      pos:
        line_end: 1854
        line_start: 1854
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object != NULL)
      pos:
        line_end: 1833
        line_start: 1833
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1834
        line_start: 1834
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1835
        line_start: 1835
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1883
      start: 1829
    functionDepth: 4
    functionLinenumber: 1829
    functionLinenumberEnd: 1883
    functionName: JsonObjectWrite
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - PrintIndent
    - JsonContainerWrite
    - WriterWrite
    - WriterWriteChar
    - UnexpectedError
    - JsonPrimitiveWrite
    - all_children_have_keys
    - JsonSort
    - free
    - SeqLength
    - WriterWriteF
    - JsonEncodeString
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void JsonObjectWrite(\n    Writer *const writer,\n    const JsonElement
      *const object,\n    const size_t indent_level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1890,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1891,1
    - Dst: JsonObjectWrite
      Src: /src/core/libntech/libutils/json.c:1896,1
    - Dst: JsonArrayWrite
      Src: /src/core/libntech/libutils/json.c:1900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - writer
    - container
    - indent_level
    argTypes:
    - Writer*
    - JsonElement*
    - size_t
    assertStmts:
    - condition: (container != NULL)
      pos:
        line_end: 1889
        line_start: 1889
        source_file: /src/core/libntech/libutils/json.c
    - condition: (container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1890
        line_start: 1890
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1902
      start: 1885
    functionDepth: 5
    functionLinenumber: 1885
    functionLinenumberEnd: 1902
    functionName: JsonContainerWrite
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - assert
    - JsonArrayWrite
    - JsonObjectWrite
    linkageType: ''
    returnType: void
    signature: "void JsonContainerWrite(\n    Writer *const writer,\n    const JsonElement
      *const container,\n    const size_t indent_level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1909,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1910,1
    - Dst: JsonContainerWrite
      Src: /src/core/libntech/libutils/json.c:1915,1
    - Dst: JsonPrimitiveWrite
      Src: /src/core/libntech/libutils/json.c:1919,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:1923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - writer
    - element
    - indent_level
    argTypes:
    - Writer*
    - JsonElement*
    - size_t
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 1908
        line_start: 1908
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element != NULL)
      pos:
        line_end: 1909
        line_start: 1909
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1925
      start: 1904
    functionDepth: 6
    functionLinenumber: 1904
    functionLinenumberEnd: 1925
    functionName: JsonWrite
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 17
    functionsReached:
    - assert
    - JsonPrimitiveWrite
    - JsonContainerWrite
    - UnexpectedError
    linkageType: ''
    returnType: void
    signature: "void JsonWrite(\n    Writer *const writer,\n    const JsonElement
      *const element,\n    const size_t indent_level)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1930,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1931,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1932,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1933,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json.c:1935,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1937,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1941,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:1943,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:1946,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1947,1
    - Dst: JsonPrimitiveWrite
      Src: /src/core/libntech/libutils/json.c:1952,1
    - Dst: JsonContainerWriteCompact
      Src: /src/core/libntech/libutils/json.c:1956,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:1960,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1965,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:1969,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - writer
    - array
    argTypes:
    - Writer*
    - JsonElement*
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 1929
        line_start: 1929
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.children != NULL)
      pos:
        line_end: 1932
        line_start: 1932
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1930
        line_start: 1930
        source_file: /src/core/libntech/libutils/json.c
    - condition: (array->container.type == JSON_CONTAINER_TYPE_ARRAY)
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/core/libntech/libutils/json.c
    - condition: (child != NULL)
      pos:
        line_end: 1946
        line_start: 1946
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 1970
      start: 1927
    functionDepth: 4
    functionLinenumber: 1927
    functionLinenumberEnd: 1970
    functionName: JsonArrayWriteCompact
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - assert
    - WriterWriteChar
    - WriterWrite
    - UnexpectedError
    - JsonPrimitiveWrite
    - SeqLength
    - JsonContainerWriteCompact
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void JsonArrayWriteCompact(\n    Writer *const writer, const JsonElement
      *const array)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1975,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1976,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1977,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/json.c:1979,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:1981,1
    - Dst: all_children_have_keys
      Src: /src/core/libntech/libutils/json.c:1981,1
    - Dst: JsonSort
      Src: /src/core/libntech/libutils/json.c:1985,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:1988,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:1991,1
    - Dst: JsonEncodeString
      Src: /src/core/libntech/libutils/json.c:1993,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/json.c:1994,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:1995,1
    - Dst: JsonPrimitiveWrite
      Src: /src/core/libntech/libutils/json.c:2000,1
    - Dst: JsonContainerWriteCompact
      Src: /src/core/libntech/libutils/json.c:2004,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:2008,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2013,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2017,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - writer
    - object
    argTypes:
    - Writer*
    - JsonElement*
    assertStmts:
    - condition: (object != NULL)
      pos:
        line_end: 1974
        line_start: 1974
        source_file: /src/core/libntech/libutils/json.c
    - condition: (all_children_have_keys(object))
      pos:
        line_end: 1980
        line_start: 1980
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 1975
        line_start: 1975
        source_file: /src/core/libntech/libutils/json.c
    - condition: (object->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 1976
        line_start: 1976
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2018
      start: 1972
    functionDepth: 4
    functionLinenumber: 1972
    functionLinenumberEnd: 2018
    functionName: JsonObjectWriteCompact
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - WriterWriteChar
    - WriterWrite
    - UnexpectedError
    - JsonPrimitiveWrite
    - all_children_have_keys
    - JsonSort
    - free
    - SeqLength
    - WriterWriteF
    - JsonContainerWriteCompact
    - JsonEncodeString
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void JsonObjectWriteCompact(\n    Writer *const writer, const JsonElement
      *const object)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2023,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2024,1
    - Dst: JsonObjectWriteCompact
      Src: /src/core/libntech/libutils/json.c:2029,1
    - Dst: JsonArrayWriteCompact
      Src: /src/core/libntech/libutils/json.c:2033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - writer
    - container
    argTypes:
    - Writer*
    - JsonElement*
    assertStmts:
    - condition: (container != NULL)
      pos:
        line_end: 2022
        line_start: 2022
        source_file: /src/core/libntech/libutils/json.c
    - condition: (container->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 2023
        line_start: 2023
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2035
      start: 2020
    functionDepth: 5
    functionLinenumber: 2020
    functionLinenumberEnd: 2035
    functionName: JsonContainerWriteCompact
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - assert
    - JsonObjectWriteCompact
    - JsonArrayWriteCompact
    linkageType: ''
    returnType: void
    signature: "void JsonContainerWriteCompact(\n    Writer *const writer, const JsonElement
      *const container)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2039,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2040,1
    - Dst: JsonContainerWriteCompact
      Src: /src/core/libntech/libutils/json.c:2045,1
    - Dst: JsonPrimitiveWrite
      Src: /src/core/libntech/libutils/json.c:2049,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libutils/json.c:2053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - w
    - element
    argTypes:
    - Writer*
    - JsonElement*
    assertStmts:
    - condition: (w != NULL)
      pos:
        line_end: 2038
        line_start: 2038
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element != NULL)
      pos:
        line_end: 2039
        line_start: 2039
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2055
      start: 2037
    functionDepth: 6
    functionLinenumber: 2037
    functionLinenumberEnd: 2055
    functionName: JsonWriteCompact
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 3
    functionsReached:
    - JsonPrimitiveWrite
    - assert
    - JsonContainerWriteCompact
    - UnexpectedError
    linkageType: ''
    returnType: void
    signature: void JsonWriteCompact(Writer *const w, const JsonElement *const element)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2069,1
    - Dst: StringStartsWith
      Src: /src/core/libntech/libutils/json.c:2071,1
    - Dst: IsSeparator
      Src: /src/core/libntech/libutils/json.c:2074,1
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/libutils/json.c:2077,1
    - Dst: StringStartsWith
      Src: /src/core/libntech/libutils/json.c:2080,1
    - Dst: IsSeparator
      Src: /src/core/libntech/libutils/json.c:2083,1
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/libutils/json.c:2086,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - char**
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 2068
        line_start: 2068
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2091
      start: 2067
    functionDepth: 2
    functionLinenumber: 2067
    functionLinenumberEnd: 2091
    functionName: JsonParseAsBoolean
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - IsSeparator
    - JsonBoolCreate
    - StringStartsWith
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonParseAsBoolean(const char **const data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2095,1
    - Dst: StringStartsWith
      Src: /src/core/libntech/libutils/json.c:2097,1
    - Dst: IsSeparator
      Src: /src/core/libntech/libutils/json.c:2100,1
    - Dst: JsonNullCreate
      Src: /src/core/libntech/libutils/json.c:2103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - char**
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 2094
        line_start: 2094
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2108
      start: 2093
    functionDepth: 2
    functionLinenumber: 2093
    functionLinenumberEnd: 2108
    functionName: JsonParseAsNull
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - assert
    - IsSeparator
    - JsonNullCreate
    - StringStartsWith
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonParseAsNull(const char **const data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - JsonParseError
    assertStmts:
    - condition: (error < JSON_PARSE_ERROR_MAX)
      pos:
        line_end: 2111
        line_start: 2111
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2182
      start: 2110
    functionDepth: 0
    functionLinenumber: 2110
    functionLinenumberEnd: 2182
    functionName: JsonParseErrorToString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *JsonParseErrorToString(const JsonParseError error)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2187,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2188,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2189,1
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/json.c:2199,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/json.c:2206,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2221,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2224,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2227,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2230,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2233,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json.c:2243,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2246,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2251,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2256,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - data
    - str_out
    argTypes:
    - char**
    - char**
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 2186
        line_start: 2186
        source_file: /src/core/libntech/libutils/json.c
    - condition: (str_out != NULL)
      pos:
        line_end: 2188
        line_start: 2188
        source_file: /src/core/libntech/libutils/json.c
    - condition: (*data != NULL)
      pos:
        line_end: 2187
        line_start: 2187
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2259
      start: 2184
    functionDepth: 1
    functionLinenumber: 2184
    functionLinenumberEnd: 2259
    functionName: JsonParseAsString
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - assert
    - WriterWriteChar
    - StringWriter
    - Log
    - StringWriterClose
    linkageType: ''
    returnType: JsonParseError
    signature: "JsonParseError JsonParseAsString(\n    const char **const data, char
      **const str_out)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2264,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2265,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2266,1
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/json.c:2268,1
    - Dst: IsSeparator
      Src: /src/core/libntech/libutils/json.c:2276,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2285,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2294,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2303,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2316,1
    - Dst: IsDigit
      Src: /src/core/libntech/libutils/json.c:2319,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2322,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2333,1
    - Dst: IsDigit
      Src: /src/core/libntech/libutils/json.c:2336,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2339,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2349,1
    - Dst: IsDigit
      Src: /src/core/libntech/libutils/json.c:2353,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2356,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/json.c:2362,1
    - Dst: IsDigit
      Src: /src/core/libntech/libutils/json.c:2365,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2368,1
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:2377,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/json.c:2378,1
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:2383,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/json.c:2384,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 85
    argCount: 2
    argNames:
    - data
    - json_out
    argTypes:
    - char**
    - JsonElement**
    assertStmts:
    - condition: (*data != NULL)
      pos:
        line_end: 2264
        line_start: 2264
        source_file: /src/core/libntech/libutils/json.c
    - condition: (json_out != NULL)
      pos:
        line_end: 2265
        line_start: 2265
        source_file: /src/core/libntech/libutils/json.c
    - condition: (data != NULL)
      pos:
        line_end: 2263
        line_start: 2263
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2387
      start: 2261
    functionDepth: 2
    functionLinenumber: 2261
    functionLinenumberEnd: 2387
    functionName: JsonParseAsNumber
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - IsDigit
    - IsSeparator
    - WriterClose
    - JsonElementCreatePrimitive
    - assert
    - WriterWriteChar
    - StringWriter
    - StringWriterClose
    linkageType: ''
    returnType: JsonParseError
    signature: "JsonParseError JsonParseAsNumber(\n    const char **const data, JsonElement
      **const json_out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2392,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2393,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2394,1
    - Dst: JsonParseAsString
      Src: /src/core/libntech/libutils/json.c:2399,1
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:2404,1
    - Dst: JsonDecodeString
      Src: /src/core/libntech/libutils/json.c:2405,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2406,1
    - Dst: IsDigit
      Src: /src/core/libntech/libutils/json.c:2411,1
    - Dst: JsonParseAsNumber
      Src: /src/core/libntech/libutils/json.c:2413,1
    - Dst: JsonParseAsBoolean
      Src: /src/core/libntech/libutils/json.c:2421,1
    - Dst: JsonParseAsNull
      Src: /src/core/libntech/libutils/json.c:2428,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - data
    - json_out
    argTypes:
    - char**
    - JsonElement**
    assertStmts:
    - condition: (json_out != NULL)
      pos:
        line_end: 2391
        line_start: 2391
        source_file: /src/core/libntech/libutils/json.c
    - condition: (data != NULL)
      pos:
        line_end: 2392
        line_start: 2392
        source_file: /src/core/libntech/libutils/json.c
    - condition: (*data != NULL)
      pos:
        line_end: 2393
        line_start: 2393
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2438
      start: 2389
    functionDepth: 4
    functionLinenumber: 2389
    functionLinenumberEnd: 2438
    functionName: JsonParseAsPrimitive
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - IsDigit
    - JsonParseAsNull
    - JsonElementCreatePrimitive
    - assert
    - JsonDecodeString
    - JsonParseAsBoolean
    - JsonParseAsNumber
    - JsonParseAsString
    - free
    linkageType: ''
    returnType: JsonParseError
    signature: "JsonParseError JsonParseAsPrimitive(\n    const char **const data,
      JsonElement **const json_out)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2446,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2447,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2448,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/libutils/json.c:2456,1
    - Dst: IsWhitespace
      Src: /src/core/libntech/libutils/json.c:2461,1
    - Dst: JsonParseAsString
      Src: /src/core/libntech/libutils/json.c:2471,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:2476,1
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:2478,1
    - Dst: JsonDecodeString
      Src: /src/core/libntech/libutils/json.c:2479,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2480,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2488,1
    - Dst: JsonParseAsArray
      Src: /src/core/libntech/libutils/json.c:2492,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2496,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2499,1
    - Dst: JsonArrayAppendArray
      Src: /src/core/libntech/libutils/json.c:2501,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2509,1
    - Dst: JsonParseAsObject
      Src: /src/core/libntech/libutils/json.c:2513,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2517,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2520,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libntech/libutils/json.c:2522,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2529,1
    - Dst: IsDigit
      Src: /src/core/libntech/libutils/json.c:2539,1
    - Dst: JsonParseAsNumber
      Src: /src/core/libntech/libutils/json.c:2542,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2545,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2548,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:2550,1
    - Dst: JsonParseAsBoolean
      Src: /src/core/libntech/libutils/json.c:2554,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:2557,1
    - Dst: JsonParseAsNull
      Src: /src/core/libntech/libutils/json.c:2561,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:2564,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json.c:2574,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2580,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2588,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 4
    argNames:
    - lookup_context
    - lookup_function
    - data
    - json_out
    argTypes:
    - void*
    - JsonLookup*
    - char**
    - JsonElement**
    assertStmts:
    - condition: (json_out != NULL)
      pos:
        line_end: 2445
        line_start: 2445
        source_file: /src/core/libntech/libutils/json.c
    - condition: (child_array)
      pos:
        line_end: 2498
        line_start: 2498
        source_file: /src/core/libntech/libutils/json.c
    - condition: (data != NULL)
      pos:
        line_end: 2446
        line_start: 2446
        source_file: /src/core/libntech/libutils/json.c
    - condition: (*data != NULL)
      pos:
        line_end: 2447
        line_start: 2447
        source_file: /src/core/libntech/libutils/json.c
    - condition: (child_object)
      pos:
        line_end: 2519
        line_start: 2519
        source_file: /src/core/libntech/libutils/json.c
    - condition: (child)
      pos:
        line_end: 2547
        line_start: 2547
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2590
      start: 2440
    functionDepth: 4
    functionLinenumber: 2440
    functionLinenumberEnd: 2590
    functionName: JsonParseAsArray
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - IsDigit
    - JsonParseAsNull
    - JsonDestroy
    - JsonElementCreatePrimitive
    - JsonParseAsArray
    - assert
    - JsonDecodeString
    - JsonParseAsBoolean
    - JsonParseAsObject
    - JsonParseAsNumber
    - JsonParseAsString
    - JsonArrayAppendObject
    - JsonArrayAppendElement
    - JsonArrayAppendArray
    - free
    - JsonArrayCreate
    - IsWhitespace
    linkageType: ''
    returnType: JsonParseError
    signature: "JsonParseError JsonParseAsArray(\n    void *const lookup_context,\n
      \   JsonLookup *const lookup_function,\n    const char **const data,\n    JsonElement
      **const json_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/core/libntech/libutils/json.c:2595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2592
    functionDepth: 0
    functionLinenumber: 2592
    functionLinenumberEnd: 2596
    functionName: wc
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: bool
    signature: bool wc(char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wc
      Src: /src/core/libntech/libutils/json.c:2601,1
    - Dst: wc
      Src: /src/core/libntech/libutils/json.c:2606,1
    - Dst: IsWhitespace
      Src: /src/core/libntech/libutils/json.c:2610,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2598
    functionDepth: 1
    functionLinenumber: 2598
    functionLinenumberEnd: 2619
    functionName: unquoted_key_with_colon
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - wc
    - IsWhitespace
    linkageType: ''
    returnType: char
    signature: char *unquoted_key_with_colon(const char *data)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2627,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2628,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2629,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/libutils/json.c:2637,1
    - Dst: IsWhitespace
      Src: /src/core/libntech/libutils/json.c:2643,1
    - Dst: JsonParseAsString
      Src: /src/core/libntech/libutils/json.c:2654,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2657,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2658,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2661,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:2663,1
    - Dst: JsonElementCreatePrimitive
      Src: /src/core/libntech/libutils/json.c:2666,1
    - Dst: JsonDecodeString
      Src: /src/core/libntech/libutils/json.c:2668,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2669,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2670,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2677,1
    - Dst: JsonParseAsString
      Src: /src/core/libntech/libutils/json.c:2681,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2684,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2687,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2695,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2696,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2704,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2705,1
    - Dst: JsonParseAsArray
      Src: /src/core/libntech/libutils/json.c:2714,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2718,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2719,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libntech/libutils/json.c:2723,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2724,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2729,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2730,1
    - Dst: JsonParseAsObject
      Src: /src/core/libntech/libutils/json.c:2739,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2743,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2744,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libntech/libutils/json.c:2748,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2749,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2755,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2756,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2765,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2766,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2769,1
    - Dst: unquoted_key_with_colon
      Src: /src/core/libntech/libutils/json.c:2779,1
    - Dst: IsWhitespace
      Src: /src/core/libntech/libutils/json.c:2787,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/json.c:2792,1
    - Dst: IsDigit
      Src: /src/core/libntech/libutils/json.c:2799,1
    - Dst: JsonParseAsNumber
      Src: /src/core/libntech/libutils/json.c:2802,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2805,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2806,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:2809,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2810,1
    - Dst: JsonParseAsBoolean
      Src: /src/core/libntech/libutils/json.c:2815,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:2818,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2819,1
    - Dst: JsonParseAsNull
      Src: /src/core/libntech/libutils/json.c:2824,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:2827,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2828,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json.c:2839,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2841,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2849,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2850,1
    - Dst: free
      Src: /src/core/libntech/libutils/json.c:2859,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2860,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 150
    argCount: 4
    argNames:
    - lookup_context
    - lookup_function
    - data
    - json_out
    argTypes:
    - void*
    - JsonLookup*
    - char**
    - JsonElement**
    assertStmts:
    - condition: (*data != NULL)
      pos:
        line_end: 2628
        line_start: 2628
        source_file: /src/core/libntech/libutils/json.c
    - condition: (data != NULL)
      pos:
        line_end: 2627
        line_start: 2627
        source_file: /src/core/libntech/libutils/json.c
    - condition: (json_out != NULL)
      pos:
        line_end: 2626
        line_start: 2626
        source_file: /src/core/libntech/libutils/json.c
    - condition: (property_name)
      pos:
        line_end: 2686
        line_start: 2686
        source_file: /src/core/libntech/libutils/json.c
    - condition: (property_value)
      pos:
        line_end: 2660
        line_start: 2660
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2862
      start: 2621
    functionDepth: 5
    functionLinenumber: 2621
    functionLinenumberEnd: 2862
    functionName: JsonParseAsObject
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - IsDigit
    - JsonObjectAppendObject
    - JsonParseAsBoolean
    - free
    - xstrndup
    - JsonParseAsArray
    - JsonDecodeString
    - JsonParseAsString
    - JsonObjectCreate
    - JsonParseAsNull
    - JsonElementCreatePrimitive
    - assert
    - unquoted_key_with_colon
    - JsonParseAsNumber
    - JsonDestroy
    - JsonObjectAppendElement
    - JsonParseAsObject
    - JsonObjectAppendArray
    - IsWhitespace
    linkageType: ''
    returnType: JsonParseError
    signature: "JsonParseError JsonParseAsObject(\n    void *const lookup_context,\n
      \   JsonLookup *const lookup_function,\n    const char **const data,\n    JsonElement
      **const json_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonParseWithLookup
      Src: /src/core/libntech/libutils/json.c:2866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - json_out
    argTypes:
    - char**
    - JsonElement**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2864
    functionDepth: 1
    functionLinenumber: 2864
    functionLinenumberEnd: 2867
    functionName: JsonParse
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 34
    functionsReached:
    - JsonParseWithLookup
    linkageType: ''
    returnType: JsonParseError
    signature: JsonParseError JsonParse(const char **const data, JsonElement **const
      json_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JsonParseWithLookup
      Src: /src/core/libntech/libutils/json.c:2871,1
    - Dst: isspace
      Src: /src/core/libntech/libutils/json.c:2879,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json.c:2883,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - data
    - json_out
    argTypes:
    - char**
    - JsonElement**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2869
    functionDepth: 2
    functionLinenumber: 2869
    functionLinenumberEnd: 2889
    functionName: JsonParseAll
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - JsonParseWithLookup
    - isspace
    - JsonDestroy
    linkageType: ''
    returnType: JsonParseError
    signature: JsonParseError JsonParseAll(const char **const data, JsonElement **const
      json_out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2897,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2898,1
    - Dst: JsonParseAsObject
      Src: /src/core/libntech/libutils/json.c:2908,1
    - Dst: JsonParseAsArray
      Src: /src/core/libntech/libutils/json.c:2913,1
    - Dst: IsWhitespace
      Src: /src/core/libntech/libutils/json.c:2916,1
    - Dst: JsonParseAsPrimitive
      Src: /src/core/libntech/libutils/json.c:2922,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - lookup_context
    - lookup_function
    - data
    - json_out
    argTypes:
    - void*
    - JsonLookup*
    - char**
    - JsonElement**
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 2896
        line_start: 2896
        source_file: /src/core/libntech/libutils/json.c
    - condition: (*data != NULL)
      pos:
        line_end: 2897
        line_start: 2897
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2927
      start: 2891
    functionDepth: 6
    functionLinenumber: 2891
    functionLinenumberEnd: 2927
    functionName: JsonParseWithLookup
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - JsonParseAsArray
    - assert
    - JsonParseAsObject
    - JsonParseAsPrimitive
    - IsWhitespace
    linkageType: ''
    returnType: JsonParseError
    signature: "JsonParseError JsonParseWithLookup(\n    void *const lookup_context,\n
      \   JsonLookup *const lookup_function,\n    const char **const data,\n    JsonElement
      **const json_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2935,1
    - Dst: FileRead
      Src: /src/core/libntech/libutils/json.c:2938,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2947,1
    - Dst: StringWriterData
      Src: /src/core/libntech/libutils/json.c:2949,1
    - Dst: JsonParseYamlString
      Src: /src/core/libntech/libutils/json.c:2954,1
    - Dst: JsonParse
      Src: /src/core/libntech/libutils/json.c:2958,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/json.c:2961,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - path
    - size_max
    - json_out
    - yaml_format
    argTypes:
    - char*
    - size_t
    - JsonElement**
    - bool
    assertStmts:
    - condition: (json_out != NULL)
      pos:
        line_end: 2934
        line_start: 2934
        source_file: /src/core/libntech/libutils/json.c
    - condition: (json_out)
      pos:
        line_end: 2946
        line_start: 2946
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 2963
      start: 2929
    functionDepth: 2
    functionLinenumber: 2929
    functionLinenumberEnd: 2963
    functionName: JsonParseAnyFile
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - WriterClose
    - assert
    - StringWriterData
    - FileRead
    - JsonParseYamlString
    - JsonParse
    linkageType: ''
    returnType: JsonParseError
    signature: "JsonParseError JsonParseAnyFile(\n    const char *const path,\n    const
      size_t size_max,\n    JsonElement **const json_out,\n    const bool yaml_format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonParseAnyFile
      Src: /src/core/libntech/libutils/json.c:2970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - size_max
    - json_out
    argTypes:
    - char*
    - size_t
    - JsonElement**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2965
    functionDepth: 3
    functionLinenumber: 2965
    functionLinenumberEnd: 2971
    functionName: JsonParseFile
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached:
    - JsonParseAnyFile
    linkageType: ''
    returnType: JsonParseError
    signature: "JsonParseError JsonParseFile(\n    const char *const path,\n    const
      size_t size_max,\n    JsonElement **const json_out)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2979,1
    - Dst: primitive_visitor
      Src: /src/core/libntech/libutils/json.c:2985,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:2993,1
    - Dst: array_visitor
      Src: /src/core/libntech/libutils/json.c:2998,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:3007,1
    - Dst: object_visitor
      Src: /src/core/libntech/libutils/json.c:3010,1
    - Dst: JsonIteratorInit
      Src: /src/core/libntech/libutils/json.c:3019,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libntech/libutils/json.c:3020,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libntech/libutils/json.c:3022,1
    - Dst: JsonWalk
      Src: /src/core/libntech/libutils/json.c:3023,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 5
    argNames:
    - element
    - object_visitor
    - array_visitor
    - primitive_visitor
    - data
    argTypes:
    - JsonElement*
    - JsonElementVisitor
    - JsonElementVisitor
    - JsonElementVisitor
    - void*
    assertStmts:
    - condition: (element != NULL)
      pos:
        line_end: 2978
        line_start: 2978
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element->type == JSON_ELEMENT_TYPE_CONTAINER)
      pos:
        line_end: 2992
        line_start: 2992
        source_file: /src/core/libntech/libutils/json.c
    - condition: (element->container.type == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 3006
        line_start: 3006
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 3026
      start: 2973
    functionDepth: 3
    functionLinenumber: 2973
    functionLinenumberEnd: 3026
    functionName: JsonWalk
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 2
    functionsReached:
    - JsonIteratorInit
    - assert
    - JsonIteratorHasMore
    - JsonWalk
    - primitive_visitor
    - array_visitor
    - object_visitor
    - JsonIteratorNextValue
    linkageType: ''
    returnType: bool
    signature: "bool JsonWalk(JsonElement *element,\n              JsonElementVisitor
      object_visitor,\n              JsonElementVisitor array_visitor,\n              JsonElementVisitor
      primitive_visitor,\n              void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - JsonElement *element
    - data
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3031
      start: 3028
    functionDepth: 0
    functionLinenumber: 3028
    functionLinenumberEnd: 3031
    functionName: JsonErrorVisitor
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool JsonErrorVisitor(ARG_UNUSED JsonElement *element, ARG_UNUSED void
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:3044,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json.c:3045,1
    - Dst: StringMatchCapturesWithPrecompiledRegex
      Src: /src/core/libntech/libutils/json.c:3051,1
    - Dst: StringMatchCaptures
      Src: /src/core/libntech/libutils/json.c:3055,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/json.c:3058,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/json.c:3062,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/libutils/json.c:3066,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:3070,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/json.c:3071,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libntech/libutils/json.c:3073,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/json.c:3073,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/json.c:3073,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/json.c:3076,1
    - Dst: JsonObjectRemoveKey
      Src: /src/core/libntech/libutils/json.c:3078,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - regex
    - pattern
    - data
    argTypes:
    - Regex*
    - char*
    - char*
    assertStmts:
    - condition: (regex != NULL || pattern != NULL)
      pos:
        line_end: 3043
        line_start: 3043
        source_file: /src/core/libntech/libutils/json.c
    - condition: (data != NULL)
      pos:
        line_end: 3044
        line_start: 3044
        source_file: /src/core/libntech/libutils/json.c
    constantsTouched: []
    func_position:
      end: 3080
      start: 3041
    functionDepth: 3
    functionLinenumber: 3041
    functionLinenumberEnd: 3080
    functionName: StringCaptureData
    functionSourceFile: /src/core/libntech/libutils/json.c
    functionUses: 1
    functionsReached:
    - BufferData
    - SeqDestroy
    - StringMatchCapturesWithPrecompiledRegex
    - assert
    - StringMatchCaptures
    - JsonObjectRemoveKey
    - SeqLength
    - JsonObjectCreate
    - JsonObjectAppendString
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *StringCaptureData(\n    const Regex *const regex, const
      char *const pattern, const char *const data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - what
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: PRINTSIZE
    functionSourceFile: /src/core/libntech/libutils/printsize.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTSIZE(what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/ring_buffer.c:48,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ring_buffer.c:50,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/ring_buffer.c:55,1
    - Dst: MAX
      Src: /src/core/libntech/libutils/ring_buffer.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - capacity
    - (*copy)(const void *)
    argTypes:
    - size_t
    - void*
    assertStmts:
    - condition: (capacity > 0)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/core/libntech/libutils/ring_buffer.c
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: RingBufferNew
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 2
    functionsReached:
    - assert
    - MAX
    - xmalloc
    - xcalloc
    linkageType: ''
    returnType: RingBuffer
    signature: RingBuffer *RingBufferNew(size_t capacity, void *(*copy)(const void
      *), void (*destroy)(void *))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RingBuffer*::destroy
      Src: /src/core/libntech/libutils/ring_buffer.c:67,1
    - Dst: RingBuffer*::copy
      Src: /src/core/libntech/libutils/ring_buffer.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - item
    argTypes:
    - RingBuffer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: RingBufferAppend
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 2
    functionsReached:
    - RingBuffer*::copy
    - RingBuffer*::destroy
    linkageType: ''
    returnType: void
    signature: void RingBufferAppend(RingBuffer *buf, void *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RingBuffer*::destroy
      Src: /src/core/libntech/libutils/ring_buffer.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: RingBufferClear
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 2
    functionsReached:
    - RingBuffer*::destroy
    linkageType: ''
    returnType: void
    signature: void RingBufferClear(RingBuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: RingBufferLength
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RingBufferLength(const RingBuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: RingBufferIsFull
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RingBufferIsFull(const RingBuffer *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RingBufferLength
      Src: /src/core/libntech/libutils/ring_buffer.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: RingBufferHead
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 2
    functionsReached:
    - RingBufferLength
    linkageType: ''
    returnType: void
    signature: void *RingBufferHead(const RingBuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/ring_buffer.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: RingBufferIteratorNew
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 2
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: RingBufferIterator
    signature: RingBufferIterator *RingBufferIteratorNew(const RingBuffer *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RingBufferClear
      Src: /src/core/libntech/libutils/ring_buffer.c:138,1
    - Dst: free
      Src: /src/core/libntech/libutils/ring_buffer.c:139,1
    - Dst: free
      Src: /src/core/libntech/libutils/ring_buffer.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - RingBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: RingBufferDestroy
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 2
    functionsReached:
    - RingBufferClear
    - free
    linkageType: ''
    returnType: void
    signature: void RingBufferDestroy(RingBuffer *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/ring_buffer.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - RingBufferIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: RingBufferIteratorDestroy
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void RingBufferIteratorDestroy(RingBufferIterator *iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RingBufferIsFull
      Src: /src/core/libntech/libutils/ring_buffer.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - iter
    argTypes:
    - RingBufferIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: RingBufferIteratorNext
    functionSourceFile: /src/core/libntech/libutils/ring_buffer.c
    functionUses: 2
    functionsReached:
    - RingBufferIsFull
    linkageType: ''
    returnType: void
    signature: void *RingBufferIteratorNext(RingBufferIterator *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/writer.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: FileWriter
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 12
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: Writer
    signature: Writer *FileWriter(FILE *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/writer.c:68,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/writer.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: StringWriter
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 53
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: Writer
    signature: Writer *StringWriter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:81,1
    - Dst: MAX
      Src: /src/core/libntech/libutils/writer.c:82,1
    - Dst: xrealloc
      Src: /src/core/libntech/libutils/writer.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - extra_length
    argTypes:
    - Writer*
    - size_t
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: StringWriterReallocate
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 0
    functionsReached:
    - assert
    - MAX
    - xrealloc
    linkageType: ''
    returnType: void
    signature: void StringWriterReallocate(Writer *writer, size_t extra_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:88,1
    - Dst: StringWriterReallocate
      Src: /src/core/libntech/libutils/writer.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - c
    argTypes:
    - Writer*
    - char
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: StringWriterWriteChar
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 0
    functionsReached:
    - assert
    - StringWriterReallocate
    linkageType: ''
    returnType: size_t
    signature: size_t StringWriterWriteChar(Writer *writer, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:103,1
    - Dst: strnlen
      Src: /src/core/libntech/libutils/writer.c:105,1
    - Dst: StringWriterReallocate
      Src: /src/core/libntech/libutils/writer.c:109,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/writer.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - writer
    - str
    - len_
    argTypes:
    - Writer*
    - char*
    - size_t
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: StringWriterWriteLen
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 0
    functionsReached:
    - assert
    - StringWriterReallocate
    - memcpy
    - strnlen
    linkageType: ''
    returnType: size_t
    signature: size_t StringWriterWriteLen(Writer *writer, const char *str, size_t
      len_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:123,1
    - Dst: vfprintf
      Src: /src/core/libntech/libutils/writer.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - writer
    - fmt
    - ap
    argTypes:
    - Writer*
    - char*
    - va_list
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: FileWriterWriteF
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 0
    functionsReached:
    - assert
    - vfprintf
    linkageType: ''
    returnType: size_t
    signature: size_t FileWriterWriteF(Writer *writer, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:131,1
    - Dst: strnlen
      Src: /src/core/libntech/libutils/writer.c:132,1
    - Dst: CFENGINE_TEST_fwrite
      Src: /src/core/libntech/libutils/writer.c:135,1
    - Dst: fwrite
      Src: /src/core/libntech/libutils/writer.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - writer
    - str
    - len_
    argTypes:
    - Writer*
    - char*
    - size_t
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: FileWriterWriteLen
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 0
    functionsReached:
    - assert
    - fwrite
    - CFENGINE_TEST_fwrite
    - strnlen
    linkageType: ''
    returnType: size_t
    signature: size_t FileWriterWriteLen(Writer *writer, const char *str, size_t len_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/writer.c:147,1
    - Dst: WriterWriteVF
      Src: /src/core/libntech/libutils/writer.c:148,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/writer.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - fmt
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: WriterWriteF
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 15
    functionsReached:
    - va_end
    - WriterWriteVF
    - va_start
    linkageType: ''
    returnType: size_t
    signature: size_t WriterWriteF(Writer *writer, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:158,1
    - Dst: xvasprintf
      Src: /src/core/libntech/libutils/writer.c:163,1
    - Dst: StringWriterWriteLen
      Src: /src/core/libntech/libutils/writer.c:164,1
    - Dst: free
      Src: /src/core/libntech/libutils/writer.c:166,1
    - Dst: FileWriterWriteF
      Src: /src/core/libntech/libutils/writer.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - writer
    - fmt
    - ap
    argTypes:
    - Writer*
    - char*
    - va_list
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 173
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 173
    functionName: WriterWriteVF
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 1
    functionsReached:
    - FileWriterWriteF
    - assert
    - StringWriterWriteLen
    - xvasprintf
    - free
    linkageType: ''
    returnType: size_t
    signature: size_t WriterWriteVF(Writer *writer, const char *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:179,1
    - Dst: StringWriterWriteLen
      Src: /src/core/libntech/libutils/writer.c:182,1
    - Dst: FileWriterWriteLen
      Src: /src/core/libntech/libutils/writer.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - writer
    - str
    - len
    argTypes:
    - Writer*
    - char*
    - size_t
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: WriterWriteLen
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 3
    functionsReached:
    - assert
    - StringWriterWriteLen
    - FileWriterWriteLen
    linkageType: ''
    returnType: size_t
    signature: size_t WriterWriteLen(Writer *writer, const char *str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteLen
      Src: /src/core/libntech/libutils/writer.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: WriterWrite
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 27
    functionsReached:
    - WriterWriteLen
    linkageType: ''
    returnType: size_t
    signature: size_t WriterWrite(Writer *writer, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:201,1
    - Dst: StringWriterWriteChar
      Src: /src/core/libntech/libutils/writer.c:204,1
    - Dst: FileWriterWriteLen
      Src: /src/core/libntech/libutils/writer.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - c
    argTypes:
    - Writer*
    - char
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 211
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 211
    functionName: WriterWriteChar
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 15
    functionsReached:
    - assert
    - FileWriterWriteLen
    - StringWriterWriteChar
    linkageType: ''
    returnType: size_t
    signature: size_t WriterWriteChar(Writer *writer, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:217,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/writer.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - writer
    argTypes:
    - Writer*
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: StringWriterLength
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 12
    functionsReached:
    - assert
    - ProgrammingError
    linkageType: ''
    returnType: size_t
    signature: size_t StringWriterLength(const Writer *writer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:230,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/writer.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - writer
    argTypes:
    - Writer*
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: StringWriterData
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 20
    functionsReached:
    - assert
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *StringWriterData(const Writer *writer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:243,1
    - Dst: free
      Src: /src/core/libntech/libutils/writer.c:246,1
    - Dst: CFENGINE_TEST_fclose
      Src: /src/core/libntech/libutils/writer.c:251,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/writer.c:253,1
    - Dst: free
      Src: /src/core/libntech/libutils/writer.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - writer
    argTypes:
    - Writer*
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 257
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 257
    functionName: WriterClose
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 62
    functionsReached:
    - assert
    - CFENGINE_TEST_fclose
    - free
    - fclose
    linkageType: ''
    returnType: void
    signature: void WriterClose(Writer *writer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:264,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/writer.c:268,1
    - Dst: free
      Src: /src/core/libntech/libutils/writer.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - writer
    argTypes:
    - Writer*
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: StringWriterClose
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 40
    functionsReached:
    - assert
    - free
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *StringWriterClose(Writer *writer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:278,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/writer.c:281,1
    - Dst: free
      Src: /src/core/libntech/libutils/writer.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - writer
    argTypes:
    - Writer*
    assertStmts:
    - condition: (writer != NULL)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: FileWriterDetach
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 6
    functionsReached:
    - assert
    - free
    - ProgrammingError
    linkageType: ''
    returnType: FILE
    signature: FILE *FileWriterDetach(Writer *writer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/writer.c:291,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/writer.c:307,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/writer.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - w
    - options
    - hints
    argTypes:
    - Writer*
    - struct option[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 316
    functionName: WriterWriteOptions
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    linkageType: ''
    returnType: void
    signature: "void WriterWriteOptions(Writer *w, const struct option options[],\n
      \                              const char *const hints[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:320,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/writer.c:321,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/writer.c:324,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/writer.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - w
    - commands
    argTypes:
    - Writer*
    - Description*
    assertStmts:
    - condition: (commands != NULL)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 328
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 328
    functionName: WriterWriteCommands
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - assert
    linkageType: ''
    returnType: void
    signature: void WriterWriteCommands(Writer *w, const Description *commands)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:335,1
    - Dst: assert
      Src: /src/core/libntech/libutils/writer.c:336,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/writer.c:337,1
    - Dst: WriterWriteCommands
      Src: /src/core/libntech/libutils/writer.c:343,1
    - Dst: WriterWriteOptions
      Src: /src/core/libntech/libutils/writer.c:345,1
    - Dst: WriterWriteCommands
      Src: /src/core/libntech/libutils/writer.c:348,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/writer.c:351,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/writer.c:354,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 7
    argNames:
    - w
    - component
    - options
    - hints
    - commands
    - command_first
    - accepts_file_argument
    argTypes:
    - Writer*
    - Component*
    - struct option[]
    - char*[]
    - Description*
    - bool
    - bool
    assertStmts:
    - condition: (component != NULL)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/core/libntech/libutils/writer.c
    - condition: (component->name != NULL)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/core/libntech/libutils/writer.c
    constantsTouched: []
    func_position:
      end: 356
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 356
    functionName: WriterWriteHelp
    functionSourceFile: /src/core/libntech/libutils/writer.c
    functionUses: 4
    functionsReached:
    - WriterWriteF
    - assert
    - WriterWriteOptions
    - WriterWriteCommands
    linkageType: ''
    returnType: void
    signature: "void WriterWriteHelp(Writer *w, const Component *component,\n                     const
      struct option options[], const char *const hints[],\n                     const
      Description *commands, bool command_first,\n                     bool accepts_file_argument)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:60,1
    - Dst: pthread_mutexattr_init
      Src: /src/core/libntech/libutils/threaded_queue.c:68,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_queue.c:70,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_queue.c:73,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_queue.c:76,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_queue.c:77,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:80,1
    - Dst: pthread_mutex_init
      Src: /src/core/libntech/libutils/threaded_queue.c:81,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_queue.c:84,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_queue.c:86,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libntech/libutils/threaded_queue.c:87,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:88,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:89,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libntech/libutils/threaded_queue.c:93,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:95,1
    - Dst: pthread_cond_init
      Src: /src/core/libntech/libutils/threaded_queue.c:96,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_queue.c:99,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_queue.c:101,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:102,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:103,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:104,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:108,1
    - Dst: pthread_cond_init
      Src: /src/core/libntech/libutils/threaded_queue.c:109,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_queue.c:112,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_queue.c:115,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:116,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:117,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:118,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:119,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 1
    argNames:
    - initial_capacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 131
    functionName: ThreadedQueueNew
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 14
    functionsReached:
    - xcalloc
    - pthread_mutexattr_settype
    - pthread_mutex_init
    - pthread_mutexattr_destroy
    - xmalloc
    - Log
    - GetErrorStrFromCode
    - free
    - pthread_cond_init
    - pthread_mutexattr_init
    linkageType: ''
    returnType: ThreadedQueue
    signature: "ThreadedQueue *ThreadedQueueNew(size_t initial_capacity,\n                                void
      (ItemDestroy) (void *item))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:137,1
    - Dst: DestroyRange
      Src: /src/core/libntech/libutils/threaded_queue.c:138,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:139,1
    - Dst: ThreadedQueueSoftDestroy
      Src: /src/core/libntech/libutils/threaded_queue.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - queue
    argTypes:
    - ThreadedQueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: ThreadedQueueDestroy
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 14
    functionsReached:
    - ThreadUnlock
    - ThreadLock
    - DestroyRange
    - ThreadedQueueSoftDestroy
    linkageType: ''
    returnType: void
    signature: void ThreadedQueueDestroy(ThreadedQueue *queue)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/core/libntech/libutils/threaded_queue.c:151,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:152,1
    - Dst: pthread_cond_destroy
      Src: /src/core/libntech/libutils/threaded_queue.c:157,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:158,1
    - Dst: pthread_cond_destroy
      Src: /src/core/libntech/libutils/threaded_queue.c:163,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:164,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:167,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - queue
    argTypes:
    - ThreadedQueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 170
    functionName: ThreadedQueueSoftDestroy
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 2
    functionsReached:
    - pthread_cond_destroy
    - pthread_mutex_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void ThreadedQueueSoftDestroy(ThreadedQueue *queue)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:174,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:176,1
    - Dst: ThreadWait
      Src: /src/core/libntech/libutils/threaded_queue.c:182,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:188,1
    - Dst: pthread_cond_broadcast
      Src: /src/core/libntech/libutils/threaded_queue.c:214,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - queue
    - item
    - timeout
    argTypes:
    - ThreadedQueue*
    - void**
    - int
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 220
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 220
    functionName: ThreadedQueuePop
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 9
    functionsReached:
    - ThreadLock
    - assert
    - ThreadUnlock
    - ThreadWait
    - pthread_cond_broadcast
    linkageType: ''
    returnType: bool
    signature: bool ThreadedQueuePop(ThreadedQueue *queue, void **item, int timeout)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:227,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:229,1
    - Dst: ThreadWait
      Src: /src/core/libntech/libutils/threaded_queue.c:235,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:241,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:254,1
    - Dst: pthread_cond_broadcast
      Src: /src/core/libntech/libutils/threaded_queue.c:271,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:276,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - queue
    - data_array
    - num
    - timeout
    argTypes:
    - ThreadedQueue*
    - void***
    - size_t
    - int
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 279
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 279
    functionName: ThreadedQueuePopN
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 3
    functionsReached:
    - xcalloc
    - ThreadLock
    - assert
    - ThreadUnlock
    - ThreadWait
    - pthread_cond_broadcast
    linkageType: ''
    returnType: size_t
    signature: "size_t ThreadedQueuePopN(ThreadedQueue *queue,\n                         void
      ***data_array,\n                         size_t num,\n                         int
      timeout)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:286,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:288,1
    - Dst: ThreadWait
      Src: /src/core/libntech/libutils/threaded_queue.c:294,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:300,1
    - Dst: pthread_cond_broadcast
      Src: /src/core/libntech/libutils/threaded_queue.c:326,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:329,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - queue
    - data_array
    - num
    - timeout
    argTypes:
    - ThreadedQueue*
    - void**
    - size_t
    - int
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 332
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 332
    functionName: ThreadedQueuePopNIntoArray
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 1
    functionsReached:
    - ThreadLock
    - assert
    - ThreadUnlock
    - ThreadWait
    - pthread_cond_broadcast
    linkageType: ''
    returnType: size_t
    signature: "size_t ThreadedQueuePopNIntoArray(ThreadedQueue *queue,\n                                  void
      **data_array,\n                                  size_t num,\n                                  int
      timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:336,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:338,1
    - Dst: ExpandIfNecessary
      Src: /src/core/libntech/libutils/threaded_queue.c:340,1
    - Dst: pthread_cond_signal
      Src: /src/core/libntech/libutils/threaded_queue.c:344,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - queue
    - item
    argTypes:
    - ThreadedQueue*
    - void*
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 349
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 349
    functionName: ThreadedQueuePush
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 12
    functionsReached:
    - pthread_cond_signal
    - ThreadLock
    - assert
    - ThreadUnlock
    - ExpandIfNecessary
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedQueuePush(ThreadedQueue *queue, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:353,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:355,1
    - Dst: ExpandIfNecessary
      Src: /src/core/libntech/libutils/threaded_queue.c:360,1
    - Dst: pthread_cond_signal
      Src: /src/core/libntech/libutils/threaded_queue.c:366,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - queue
    - items
    - n_items
    argTypes:
    - ThreadedQueue*
    - void**
    - size_t
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 371
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 371
    functionName: ThreadedQueuePushN
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 2
    functionsReached:
    - pthread_cond_signal
    - ThreadLock
    - assert
    - ThreadUnlock
    - ExpandIfNecessary
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedQueuePushN(ThreadedQueue *queue, void **items, size_t
      n_items)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:375,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:377,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - queue
    argTypes:
    - ThreadedQueue*
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 374
        line_start: 374
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 382
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 382
    functionName: ThreadedQueueCount
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 8
    functionsReached:
    - assert
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedQueueCount(ThreadedQueue const *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:386,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:388,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - queue
    argTypes:
    - ThreadedQueue*
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: ThreadedQueueCapacity
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 2
    functionsReached:
    - assert
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedQueueCapacity(ThreadedQueue const *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:397,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:399,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - queue
    argTypes:
    - ThreadedQueue*
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 396
        line_start: 396
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 404
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 404
    functionName: ThreadedQueueIsEmpty
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 1
    functionsReached:
    - assert
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: bool
    signature: bool ThreadedQueueIsEmpty(ThreadedQueue const *queue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:408,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:411,1
    - Dst: ThreadWait
      Src: /src/core/libntech/libutils/threaded_queue.c:420,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:426,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - queue
    - timeout
    argTypes:
    - ThreadedQueue*
    - int
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 441
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 441
    functionName: ThreadedQueueWaitEmpty
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 2
    functionsReached:
    - ThreadWait
    - assert
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: bool
    signature: bool ThreadedQueueWaitEmpty(ThreadedQueue const *queue, int timeout)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:445,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:447,1
    - Dst: xmemdup
      Src: /src/core/libntech/libutils/threaded_queue.c:449,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:450,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/threaded_queue.c:451,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:454,1
    - Dst: pthread_mutexattr_init
      Src: /src/core/libntech/libutils/threaded_queue.c:457,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_queue.c:459,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_queue.c:462,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_queue.c:465,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_queue.c:466,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:469,1
    - Dst: pthread_mutex_init
      Src: /src/core/libntech/libutils/threaded_queue.c:470,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_queue.c:473,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_queue.c:475,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libntech/libutils/threaded_queue.c:476,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:477,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:478,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:482,1
    - Dst: pthread_cond_init
      Src: /src/core/libntech/libutils/threaded_queue.c:483,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_queue.c:486,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_queue.c:489,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:490,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:491,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:492,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_queue.c:496,1
    - Dst: pthread_cond_init
      Src: /src/core/libntech/libutils/threaded_queue.c:497,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_queue.c:500,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_queue.c:503,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:504,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:505,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:506,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_queue.c:507,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 1
    argNames:
    - queue
    argTypes:
    - ThreadedQueue*
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 444
        line_start: 444
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 512
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 512
    functionName: ThreadedQueueCopy
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 1
    functionsReached:
    - memcpy
    - ThreadLock
    - xmemdup
    - assert
    - ThreadUnlock
    - pthread_mutex_init
    - GetErrorStrFromCode
    - pthread_mutexattr_destroy
    - xmalloc
    - Log
    - pthread_mutexattr_settype
    - free
    - pthread_cond_init
    - pthread_mutexattr_init
    linkageType: ''
    returnType: ThreadedQueue
    signature: ThreadedQueue *ThreadedQueueCopy(ThreadedQueue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:516,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:517,1
    - Dst: DestroyRange
      Src: /src/core/libntech/libutils/threaded_queue.c:519,1
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:520,1
    - Dst: pthread_cond_broadcast
      Src: /src/core/libntech/libutils/threaded_queue.c:524,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - queue
    argTypes:
    - ThreadedQueue*
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/core/libntech/libutils/threaded_queue.c
    - condition: (queue->size == 0)
      pos:
        line_end: 519
        line_start: 519
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 526
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 526
    functionName: ThreadedQueueClear
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 2
    functionsReached:
    - ThreadLock
    - assert
    - ThreadUnlock
    - DestroyRange
    - pthread_cond_broadcast
    linkageType: ''
    returnType: void
    signature: void ThreadedQueueClear(ThreadedQueue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:530,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_queue.c:532,1
    - Dst: DestroyRange
      Src: /src/core/libntech/libutils/threaded_queue.c:534,1
    - Dst: ExpandIfNecessary
      Src: /src/core/libntech/libutils/threaded_queue.c:538,1
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:542,1
    - Dst: pthread_cond_signal
      Src: /src/core/libntech/libutils/threaded_queue.c:543,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_queue.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - queue
    - item
    argTypes:
    - ThreadedQueue*
    - void*
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/core/libntech/libutils/threaded_queue.c
    - condition: (queue->size == 1)
      pos:
        line_end: 541
        line_start: 541
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 548
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 548
    functionName: ThreadedQueueClearAndPush
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 1
    functionsReached:
    - pthread_cond_signal
    - ThreadLock
    - assert
    - ThreadUnlock
    - ExpandIfNecessary
    - DestroyRange
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedQueueClearAndPush(ThreadedQueue *queue, void *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:562,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_queue.c:565,1
    - Dst: ThreadedQueue*::ItemDestroy
      Src: /src/core/libntech/libutils/threaded_queue.c:576,1
    - Dst: ThreadedQueue*::ItemDestroy
      Src: /src/core/libntech/libutils/threaded_queue.c:587,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - queue
    - start
    - end
    argTypes:
    - ThreadedQueue*
    - size_t
    - size_t
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 592
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 592
    functionName: DestroyRange
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 3
    functionsReached:
    - assert
    - ThreadedQueue*::ItemDestroy
    - Log
    linkageType: ''
    returnType: void
    signature: void DestroyRange(ThreadedQueue *queue, size_t start, size_t end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:601,1
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_queue.c:602,1
    - Dst: xrealloc
      Src: /src/core/libntech/libutils/threaded_queue.c:611,1
    - Dst: memmove
      Src: /src/core/libntech/libutils/threaded_queue.c:614,1
    - Dst: xrealloc
      Src: /src/core/libntech/libutils/threaded_queue.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - queue
    argTypes:
    - ThreadedQueue*
    assertStmts:
    - condition: (queue != NULL)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/core/libntech/libutils/threaded_queue.c
    - condition: (queue->size <= queue->capacity)
      pos:
        line_end: 601
        line_start: 601
        source_file: /src/core/libntech/libutils/threaded_queue.c
    constantsTouched: []
    func_position:
      end: 628
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 628
    functionName: ExpandIfNecessary
    functionSourceFile: /src/core/libntech/libutils/threaded_queue.c
    functionUses: 3
    functionsReached:
    - memmove
    - assert
    - xrealloc
    linkageType: ''
    returnType: void
    signature: void ExpandIfNecessary(ThreadedQueue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.h:59,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq
    - i
    argTypes:
    - Seq*
    - size_t
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/core/libntech/libutils/sequence.h
    - condition: (i < seq->length)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/core/libntech/libutils/sequence.h
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: SeqAt
    functionSourceFile: /src/core/libntech/libutils/sequence.h
    functionUses: 46
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void *SeqAt(const Seq *seq, size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/core/libntech/libutils/file_lib.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: PathExists
    functionSourceFile: /src/core/libntech/libutils/file_lib.h
    functionUses: 0
    functionsReached:
    - lstat
    linkageType: ''
    returnType: bool
    signature: bool PathExists(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: IsFileSep
    functionSourceFile: /src/core/libntech/libutils/file_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsFileSep(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: IsFileSep
    functionSourceFile: /src/core/libntech/libutils/file_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsFileSep(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/core/libntech/libutils/signal_lib.h:7,1
    - Dst: assert
      Src: /src/core/libntech/libutils/signal_lib.h:8,1
    - Dst: sigaddset
      Src: /src/core/libntech/libutils/signal_lib.h:9,1
    - Dst: assert
      Src: /src/core/libntech/libutils/signal_lib.h:10,1
    - Dst: sigaddset
      Src: /src/core/libntech/libutils/signal_lib.h:11,1
    - Dst: assert
      Src: /src/core/libntech/libutils/signal_lib.h:12,1
    - Dst: pthread_sigmask
      Src: /src/core/libntech/libutils/signal_lib.h:13,1
    - Dst: assert
      Src: /src/core/libntech/libutils/signal_lib.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/core/libntech/libutils/signal_lib.h
    - condition: (ret == 0)
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/core/libntech/libutils/signal_lib.h
    - condition: (ret == 0)
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/core/libntech/libutils/signal_lib.h
    - condition: (ret == 0)
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/core/libntech/libutils/signal_lib.h
    constantsTouched: []
    func_position:
      end: 15
      start: 1
    functionDepth: 1
    functionLinenumber: 1
    functionLinenumberEnd: 15
    functionName: MaskTerminationSignalsInThread
    functionSourceFile: /src/core/libntech/libutils/signal_lib.h
    functionUses: 0
    functionsReached:
    - sigaddset
    - assert
    - pthread_sigmask
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void MaskTerminationSignalsInThread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonParseAnyFile
      Src: /src/core/libntech/libutils/json-yaml.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - size_max
    - json_out
    argTypes:
    - char*
    - size_t
    - JsonElement**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: JsonParseYamlFile
    functionSourceFile: /src/core/libntech/libutils/json-yaml.c
    functionUses: 0
    functionsReached:
    - JsonParseAnyFile
    linkageType: ''
    returnType: JsonParseError
    signature: JsonParseError JsonParseYamlFile(const char *path, size_t size_max,
      JsonElement **json_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tag
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: JSON_YAML_SCALAR_TAG_IS
    functionSourceFile: /src/core/libntech/libutils/json-yaml.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_YAML_SCALAR_TAG_IS(tag, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - event
    - ','
    - tag
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: JSON_YAML_IS_NOT_IMPLICIT_AND_TAG_IS
    functionSourceFile: /src/core/libntech/libutils/json-yaml.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_YAML_IS_NOT_IMPLICIT_AND_TAG_IS(event, tag, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - event
    - ','
    - tag
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: JSON_YAML_IS_NOT_QUOTED_OR_TAG_IS
    functionSourceFile: /src/core/libntech/libutils/json-yaml.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_YAML_IS_NOT_QUOTED_OR_TAG_IS(event, tag, name)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json-yaml.c:51,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json-yaml.c:52,1
    - Dst: JSON_YAML_SCALAR_TAG_IS
      Src: /src/core/libntech/libutils/json-yaml.c:63,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:67,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:67,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:68,1
    - Dst: JsonNullCreate
      Src: /src/core/libntech/libutils/json-yaml.c:70,1
    - Dst: JSON_YAML_IS_NOT_QUOTED_OR_TAG_IS
      Src: /src/core/libntech/libutils/json-yaml.c:74,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:78,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:78,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:79,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:79,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:80,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:80,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:81,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:81,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:81,1
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/libutils/json-yaml.c:83,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:87,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:87,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:87,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:88,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:88,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:89,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:89,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:90,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:90,1
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/libutils/json-yaml.c:92,1
    - Dst: JSON_YAML_IS_NOT_IMPLICIT_AND_TAG_IS
      Src: /src/core/libntech/libutils/json-yaml.c:95,1
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/libutils/json-yaml.c:99,1
    - Dst: JsonBoolCreate
      Src: /src/core/libntech/libutils/json-yaml.c:103,1
    - Dst: JSON_YAML_SCALAR_TAG_IS
      Src: /src/core/libntech/libutils/json-yaml.c:110,1
    - Dst: JSON_YAML_SCALAR_TAG_IS
      Src: /src/core/libntech/libutils/json-yaml.c:111,1
    - Dst: JsonParseAsNumber
      Src: /src/core/libntech/libutils/json-yaml.c:115,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/json-yaml.c:121,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:124,1
    - Dst: JsonStringCreate
      Src: /src/core/libntech/libutils/json-yaml.c:125,1
    - Dst: JSON_YAML_SCALAR_TAG_IS
      Src: /src/core/libntech/libutils/json-yaml.c:128,1
    - Dst: JsonStringCreate
      Src: /src/core/libntech/libutils/json-yaml.c:130,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:133,1
    - Dst: JsonStringCreate
      Src: /src/core/libntech/libutils/json-yaml.c:134,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 40
    argCount: 1
    argNames:
    - event
    argTypes:
    - yaml_event_t*
    assertStmts:
    - condition: (event != NULL)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/core/libntech/libutils/json-yaml.c
    - condition: (event->type == YAML_SCALAR_EVENT)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/core/libntech/libutils/json-yaml.c
    constantsTouched: []
    func_position:
      end: 135
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 135
    functionName: JsonParseYamlScalarValue
    functionSourceFile: /src/core/libntech/libutils/json-yaml.c
    functionUses: 0
    functionsReached:
    - JsonStringCreate
    - assert
    - JSON_YAML_IS_NOT_IMPLICIT_AND_TAG_IS
    - JsonParseAsNumber
    - JSON_YAML_SCALAR_TAG_IS
    - Log
    - strcmp
    - JSON_YAML_IS_NOT_QUOTED_OR_TAG_IS
    - JsonNullCreate
    - JsonBoolCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * JsonParseYamlScalarValue(yaml_event_t *event)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:142,1
    - Dst: yaml_parser_parse
      Src: /src/core/libntech/libutils/json-yaml.c:146,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:147,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:156,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json-yaml.c:157,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json-yaml.c:159,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/json-yaml.c:164,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json-yaml.c:168,1
    - Dst: JsonParseYamlScalarValue
      Src: /src/core/libntech/libutils/json-yaml.c:168,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-yaml.c:170,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json-yaml.c:174,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libntech/libutils/json-yaml.c:176,1
    - Dst: JsonParseYamlScalarValue
      Src: /src/core/libntech/libutils/json-yaml.c:176,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-yaml.c:178,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:183,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:188,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:193,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/libutils/json-yaml.c:194,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json-yaml.c:196,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json-yaml.c:198,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json-yaml.c:202,1
    - Dst: JsonParseYamlData
      Src: /src/core/libntech/libutils/json-yaml.c:203,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-yaml.c:205,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:210,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json-yaml.c:213,1
    - Dst: JsonArrayAppendArray
      Src: /src/core/libntech/libutils/json-yaml.c:215,1
    - Dst: JsonParseYamlData
      Src: /src/core/libntech/libutils/json-yaml.c:216,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-yaml.c:218,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:223,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:229,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json-yaml.c:230,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json-yaml.c:232,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:239,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:244,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:249,1
    - Dst: JsonObjectCreate
      Src: /src/core/libntech/libutils/json-yaml.c:250,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json-yaml.c:252,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json-yaml.c:254,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libntech/libutils/json-yaml.c:258,1
    - Dst: JsonParseYamlData
      Src: /src/core/libntech/libutils/json-yaml.c:259,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-yaml.c:261,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:266,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json-yaml.c:269,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libntech/libutils/json-yaml.c:271,1
    - Dst: JsonParseYamlData
      Src: /src/core/libntech/libutils/json-yaml.c:272,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-yaml.c:274,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:279,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:285,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/json-yaml.c:286,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/json-yaml.c:288,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:295,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/json-yaml.c:300,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:305,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:310,1
    - Dst: yaml_event_delete
      Src: /src/core/libntech/libutils/json-yaml.c:318,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:320,1
    - Dst: free
      Src: /src/core/libntech/libutils/json-yaml.c:325,1
    - Dst: Log
      Src: /src/core/libntech/libutils/json-yaml.c:328,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 114
    argCount: 3
    argNames:
    - parser
    - element
    - depth
    argTypes:
    - yaml_parser_t*
    - JsonElement*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 329
    functionName: JsonParseYamlData
    functionSourceFile: /src/core/libntech/libutils/json-yaml.c
    functionUses: 1
    functionsReached:
    - JsonGetContainerType
    - JsonArrayAppendArray
    - JsonGetElementType
    - yaml_event_delete
    - JsonObjectCreate
    - JsonObjectAppendElement
    - yaml_parser_parse
    - ProgrammingError
    - Log
    - JsonArrayAppendObject
    - xstrdup
    - JsonParseYamlScalarValue
    - JsonArrayAppendElement
    - free
    - JsonParseYamlData
    - JsonArrayCreate
    linkageType: ''
    returnType: void
    signature: void JsonParseYamlData(yaml_parser_t *parser, JsonElement *element,
      const int depth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/json-yaml.c:333,1
    - Dst: yaml_parser_initialize
      Src: /src/core/libntech/libutils/json-yaml.c:341,1
    - Dst: yaml_parser_set_input_string
      Src: /src/core/libntech/libutils/json-yaml.c:346,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/json-yaml.c:346,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/libutils/json-yaml.c:348,1
    - Dst: JsonParseYamlData
      Src: /src/core/libntech/libutils/json-yaml.c:349,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/json-yaml.c:350,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json-yaml.c:352,1
    - Dst: yaml_parser_delete
      Src: /src/core/libntech/libutils/json-yaml.c:353,1
    - Dst: assert
      Src: /src/core/libntech/libutils/json-yaml.c:356,1
    - Dst: JsonAt
      Src: /src/core/libntech/libutils/json-yaml.c:356,1
    - Dst: JsonCopy
      Src: /src/core/libntech/libutils/json-yaml.c:357,1
    - Dst: JsonAt
      Src: /src/core/libntech/libutils/json-yaml.c:357,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/libutils/json-yaml.c:358,1
    - Dst: yaml_parser_delete
      Src: /src/core/libntech/libutils/json-yaml.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - data
    - json_out
    argTypes:
    - char**
    - JsonElement**
    assertStmts:
    - condition: (data && *data)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/core/libntech/libutils/json-yaml.c
    - condition: (JsonAt(holder, 0) != NULL)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/core/libntech/libutils/json-yaml.c
    constantsTouched: []
    func_position:
      end: 363
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 363
    functionName: JsonParseYamlString
    functionSourceFile: /src/core/libntech/libutils/json-yaml.c
    functionUses: 1
    functionsReached:
    - JsonLength
    - JsonDestroy
    - strlen
    - yaml_parser_delete
    - assert
    - JsonCopy
    - yaml_parser_set_input_string
    - JsonAt
    - yaml_parser_initialize
    - JsonParseYamlData
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonParseError
    signature: JsonParseError JsonParseYamlString(const char **data, JsonElement **json_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - JsonElement **json_out
    argTypes:
    - ARG_UNUSED**
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: JsonParseYamlString
    functionSourceFile: /src/core/libntech/libutils/json-yaml.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: JsonParseError
    signature: "JsonParseError JsonParseYamlString(ARG_UNUSED const char **data,\n
      \                                  ARG_UNUSED JsonElement **json_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/queue.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item_destroy
    argTypes:
    - QueueItemDestroy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: QueueNew
    functionSourceFile: /src/core/libntech/libutils/queue.c
    functionUses: 16
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: Queue
    signature: Queue *QueueNew(QueueItemDestroy *item_destroy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Queue*::destroy
      Src: /src/core/libntech/libutils/queue.c:60,1
    - Dst: free
      Src: /src/core/libntech/libutils/queue.c:62,1
    - Dst: free
      Src: /src/core/libntech/libutils/queue.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - q
    argTypes:
    - Queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: QueueDestroy
    functionSourceFile: /src/core/libntech/libutils/queue.c
    functionUses: 16
    functionsReached:
    - free
    - Queue*::destroy
    linkageType: ''
    returnType: void
    signature: void QueueDestroy(Queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/queue.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - element
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: QueueNodeNew
    functionSourceFile: /src/core/libntech/libutils/queue.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: QueueNode
    signature: QueueNode *QueueNodeNew(void *element)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/queue.c:83,1
    - Dst: QueueNodeNew
      Src: /src/core/libntech/libutils/queue.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - q
    - element
    argTypes:
    - Queue*
    - void*
    assertStmts:
    - condition: (q)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/core/libntech/libutils/queue.c
    constantsTouched: []
    func_position:
      end: 100
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 100
    functionName: QueueEnqueue
    functionSourceFile: /src/core/libntech/libutils/queue.c
    functionUses: 2
    functionsReached:
    - assert
    - QueueNodeNew
    linkageType: ''
    returnType: void
    signature: void QueueEnqueue(Queue *q, void *element)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/queue.c:104,1
    - Dst: free
      Src: /src/core/libntech/libutils/queue.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - q
    argTypes:
    - Queue*
    assertStmts:
    - condition: (q)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/core/libntech/libutils/queue.c
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: QueueDequeue
    functionSourceFile: /src/core/libntech/libutils/queue.c
    functionUses: 1
    functionsReached:
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void *QueueDequeue(Queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/queue.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - q
    argTypes:
    - Queue*
    assertStmts:
    - condition: (q)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/core/libntech/libutils/queue.c
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: QueueHead
    functionSourceFile: /src/core/libntech/libutils/queue.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void *QueueHead(Queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/queue.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - q
    argTypes:
    - Queue*
    assertStmts:
    - condition: (q)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/core/libntech/libutils/queue.c
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: QueueCount
    functionSourceFile: /src/core/libntech/libutils/queue.c
    functionUses: 10
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int QueueCount(const Queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/queue.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - q
    argTypes:
    - Queue*
    assertStmts:
    - condition: (q)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/core/libntech/libutils/queue.c
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: QueueIsEmpty
    functionSourceFile: /src/core/libntech/libutils/queue.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool QueueIsEmpty(const Queue *q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/xml_writer.c:36,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:39,1
    - Dst: WriteEscaped
      Src: /src/core/libntech/libutils/xml_writer.c:40,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - comment
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: XmlComment
    functionSourceFile: /src/core/libntech/libutils/xml_writer.c
    functionUses: 1
    functionsReached:
    - WriteEscaped
    - WriterWrite
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void XmlComment(Writer *writer, const char *comment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/xml_writer.c:48,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:52,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/xml_writer.c:57,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/xml_writer.c:59,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - writer
    - tag_name
    - attr_cnt
    - args
    argTypes:
    - Writer*
    - char*
    - int
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: XmlEmitStartTag
    functionSourceFile: /src/core/libntech/libutils/xml_writer.c
    functionUses: 0
    functionsReached:
    - va_arg
    - WriterWriteF
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void XmlEmitStartTag(Writer *writer, const char *tag_name, int attr_cnt,
      va_list args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/xml_writer.c:73,1
    - Dst: va_start
      Src: /src/core/libntech/libutils/xml_writer.c:76,1
    - Dst: XmlEmitStartTag
      Src: /src/core/libntech/libutils/xml_writer.c:77,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/xml_writer.c:78,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - writer
    - tag_name
    - attr_cnt
    argTypes:
    - Writer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: XmlStartTag
    functionSourceFile: /src/core/libntech/libutils/xml_writer.c
    functionUses: 1
    functionsReached:
    - va_start
    - va_end
    - WriterWrite
    - XmlEmitStartTag
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void XmlStartTag(Writer *writer, const char *tag_name, int attr_cnt,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/xml_writer.c:89,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/xml_writer.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - tag_name
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: XmlEndTag
    functionSourceFile: /src/core/libntech/libutils/xml_writer.c
    functionUses: 1
    functionsReached:
    - WriterWriteF
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void XmlEndTag(Writer *writer, const char *tag_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/xml_writer.c:106,1
    - Dst: XmlEmitStartTag
      Src: /src/core/libntech/libutils/xml_writer.c:107,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/xml_writer.c:108,1
    - Dst: WriteEscaped
      Src: /src/core/libntech/libutils/xml_writer.c:112,1
    - Dst: XmlEndTag
      Src: /src/core/libntech/libutils/xml_writer.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - writer
    - tag_name
    - value
    - attr_cnt
    argTypes:
    - Writer*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 97
    functionDepth: 6
    functionLinenumber: 97
    functionLinenumberEnd: 116
    functionName: XmlTag
    functionSourceFile: /src/core/libntech/libutils/xml_writer.c
    functionUses: 2
    functionsReached:
    - va_start
    - va_end
    - XmlEmitStartTag
    - WriteEscaped
    - XmlEndTag
    linkageType: ''
    returnType: void
    signature: void XmlTag(Writer *writer, const char *tag_name, const char *value,
      int attr_cnt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/xml_writer.c:124,1
    - Dst: WriteEscaped
      Src: /src/core/libntech/libutils/xml_writer.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - value
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: XmlContent
    functionSourceFile: /src/core/libntech/libutils/xml_writer.c
    functionUses: 2
    functionsReached:
    - WriteEscaped
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void XmlContent(Writer *writer, const char *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:139,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:142,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:145,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:148,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/xml_writer.c:151,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/xml_writer.c:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - w
    - source
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: WriteEscaped
    functionSourceFile: /src/core/libntech/libutils/xml_writer.c
    functionUses: 3
    functionsReached:
    - WriterWriteChar
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void WriteEscaped(Writer *w, const char *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string_index
    - ','
    - first_to_check
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: FUNC_ATTR_PRINTF
    functionSourceFile: /src/core/libntech/libutils/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC_ATTR_PRINTF(string_index, first_to_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: FUNC_DEPRECATED
    functionSourceFile: /src/core/libntech/libutils/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC_DEPRECATED(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: FUNC_DEPRECATED
    functionSourceFile: /src/core/libntech/libutils/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC_DEPRECATED(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: UNUSED
    functionSourceFile: /src/core/libntech/libutils/compiler.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: STRINGIFY__INTERNAL_MACRO
    functionSourceFile: /src/core/libntech/libutils/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY__INTERNAL_MACRO(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: TO_STRING
    functionSourceFile: /src/core/libntech/libutils/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_STRING(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: KIBIBYTE
    functionSourceFile: /src/core/libntech/libutils/definitions.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KIBIBYTE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: MEBIBYTE
    functionSourceFile: /src/core/libntech/libutils/definitions.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEBIBYTE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GIBIBYTE
    functionSourceFile: /src/core/libntech/libutils/definitions.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GIBIBYTE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: TEBIBYTE
    functionSourceFile: /src/core/libntech/libutils/definitions.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEBIBYTE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/array_map.c:35,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/array_map.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - equal_fn
    - destroy_key_fn
    - destroy_value_fn
    argTypes:
    - MapKeyEqualFn
    - MapDestroyDataFn
    - MapDestroyDataFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: ArrayMapNew
    functionSourceFile: /src/core/libntech/libutils/array_map.c
    functionUses: 6
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: ArrayMap
    signature: "ArrayMap *ArrayMapNew(MapKeyEqualFn equal_fn,\n                      MapDestroyDataFn
      destroy_key_fn,\n                      MapDestroyDataFn destroy_value_fn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMap*::equal_fn
      Src: /src/core/libntech/libutils/array_map.c:52,1
    - Dst: ArrayMap*::destroy_key_fn
      Src: /src/core/libntech/libutils/array_map.c:57,1
    - Dst: ArrayMap*::destroy_value_fn
      Src: /src/core/libntech/libutils/array_map.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - map
    - key
    - value
    argTypes:
    - ArrayMap*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: ArrayMapInsert
    functionSourceFile: /src/core/libntech/libutils/array_map.c
    functionUses: 6
    functionsReached:
    - ArrayMap*::destroy_key_fn
    - ArrayMap*::destroy_value_fn
    - ArrayMap*::equal_fn
    linkageType: ''
    returnType: int
    signature: int ArrayMapInsert(ArrayMap *map, void *key, void *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMap*::equal_fn
      Src: /src/core/libntech/libutils/array_map.c:73,1
    - Dst: ArrayMap*::destroy_key_fn
      Src: /src/core/libntech/libutils/array_map.c:75,1
    - Dst: ArrayMap*::destroy_value_fn
      Src: /src/core/libntech/libutils/array_map.c:76,1
    - Dst: memmove
      Src: /src/core/libntech/libutils/array_map.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - ArrayMap*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: ArrayMapRemove
    functionSourceFile: /src/core/libntech/libutils/array_map.c
    functionUses: 1
    functionsReached:
    - memmove
    - ArrayMap*::destroy_key_fn
    - ArrayMap*::destroy_value_fn
    - ArrayMap*::equal_fn
    linkageType: ''
    returnType: bool
    signature: bool ArrayMapRemove(ArrayMap *map, const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMap*::equal_fn
      Src: /src/core/libntech/libutils/array_map.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - ArrayMap*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: ArrayMapGet
    functionSourceFile: /src/core/libntech/libutils/array_map.c
    functionUses: 3
    functionsReached:
    - ArrayMap*::equal_fn
    linkageType: ''
    returnType: MapKeyValue
    signature: MapKeyValue *ArrayMapGet(const ArrayMap *map, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMap*::destroy_key_fn
      Src: /src/core/libntech/libutils/array_map.c:104,1
    - Dst: ArrayMap*::destroy_value_fn
      Src: /src/core/libntech/libutils/array_map.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - map
    argTypes:
    - ArrayMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: ArrayMapClear
    functionSourceFile: /src/core/libntech/libutils/array_map.c
    functionUses: 0
    functionsReached:
    - ArrayMap*::destroy_key_fn
    - ArrayMap*::destroy_value_fn
    linkageType: ''
    returnType: void
    signature: void ArrayMapClear(ArrayMap *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMap*::destroy_key_fn
      Src: /src/core/libntech/libutils/array_map.c:116,1
    - Dst: free
      Src: /src/core/libntech/libutils/array_map.c:120,1
    - Dst: free
      Src: /src/core/libntech/libutils/array_map.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - map
    argTypes:
    - ArrayMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: ArrayMapSoftDestroy
    functionSourceFile: /src/core/libntech/libutils/array_map.c
    functionUses: 1
    functionsReached:
    - ArrayMap*::destroy_key_fn
    - free
    linkageType: ''
    returnType: void
    signature: void ArrayMapSoftDestroy(ArrayMap *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMapClear
      Src: /src/core/libntech/libutils/array_map.c:129,1
    - Dst: free
      Src: /src/core/libntech/libutils/array_map.c:130,1
    - Dst: free
      Src: /src/core/libntech/libutils/array_map.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - map
    argTypes:
    - ArrayMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: ArrayMapDestroy
    functionSourceFile: /src/core/libntech/libutils/array_map.c
    functionUses: 5
    functionsReached:
    - ArrayMapClear
    - free
    linkageType: ''
    returnType: void
    signature: void ArrayMapDestroy(ArrayMap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - ArrayMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: ArrayMapIteratorInit
    functionSourceFile: /src/core/libntech/libutils/array_map.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ArrayMapIterator
    signature: ArrayMapIterator ArrayMapIteratorInit(ArrayMap *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - ArrayMapIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: ArrayMapIteratorNext
    functionSourceFile: /src/core/libntech/libutils/array_map.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: MapKeyValue
    signature: MapKeyValue *ArrayMapIteratorNext(ArrayMapIterator *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: assert_or_return
    functionSourceFile: /src/core/libntech/libutils/condition_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_or_return(expr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: debug_abort_if_reached
    functionSourceFile: /src/core/libntech/libutils/condition_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: debug_abort_if_reached()
  - 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: nt_static_assert
    functionSourceFile: /src/core/libntech/libutils/condition_macros.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nt_static_assert(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: nt_static_assert
    functionSourceFile: /src/core/libntech/libutils/condition_macros.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nt_static_assert(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: PointerCompare_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PointerCompare_(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: NoopDestroy_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoopDestroy_(ARG_UNUSED void *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: NoopCopy_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *NoopCopy_(const void *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/rb-tree.c:83,1
    - Dst: RBTree*::KeyCopy
      Src: /src/core/libntech/libutils/rb-tree.c:87,1
    - Dst: RBTree*::ValueCopy
      Src: /src/core/libntech/libutils/rb-tree.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - tree
    - parent
    - red
    - key
    - value
    argTypes:
    - RBTree*
    - RBNode*
    - bool
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: NodeNew_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached:
    - RBTree*::KeyCopy
    - xmalloc
    - RBTree*::ValueCopy
    linkageType: ''
    returnType: RBNode
    signature: RBNode *NodeNew_(RBTree *tree, RBNode *parent, bool red, const void
      *key, const void *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RBTree*::KeyDestroy
      Src: /src/core/libntech/libutils/rb-tree.c:99,1
    - Dst: RBTree*::ValueDestroy
      Src: /src/core/libntech/libutils/rb-tree.c:100,1
    - Dst: free
      Src: /src/core/libntech/libutils/rb-tree.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - node
    argTypes:
    - RBTree*
    - RBNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: NodeDestroy_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached:
    - free
    - RBTree*::ValueDestroy
    - RBTree*::KeyDestroy
    linkageType: ''
    returnType: void
    signature: void NodeDestroy_(RBTree *tree, RBNode *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tree
    argTypes:
    - RBTree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: Reset_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reset_(RBTree *tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:125,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:126,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/rb-tree.c:128,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/rb-tree.c:138,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/rb-tree.c:139,1
    - Dst: Reset_
      Src: /src/core/libntech/libutils/rb-tree.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - (*KeyCopy)(const void *key)
    - (*ValueCopy)(const void *key)
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (!(KeyCopy && KeyDestroy) || (KeyCopy && KeyDestroy))
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!(ValueCopy && ValueDestroy) || (ValueCopy && ValueDestroy))
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 144
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 144
    functionName: RBTreeNew
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 1
    functionsReached:
    - assert
    - xmalloc
    - Reset_
    - xcalloc
    linkageType: ''
    returnType: RBTree
    signature: "RBTree *RBTreeNew(void *(*KeyCopy)(const void *key),\n                  int
      (*KeyCompare)(const void *a, const void *b),\n                  void (*KeyDestroy)(void
      *key),\n                  void *(*ValueCopy)(const void *key),\n                  int
      (*ValueCompare)(const void *a, const void *b),\n                  void (*ValueDestroy)(void
      *key))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TreeDestroy_
      Src: /src/core/libntech/libutils/rb-tree.c:150,1
    - Dst: TreeDestroy_
      Src: /src/core/libntech/libutils/rb-tree.c:151,1
    - Dst: NodeDestroy_
      Src: /src/core/libntech/libutils/rb-tree.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - x
    argTypes:
    - RBTree*
    - RBNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: TreeDestroy_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 1
    functionsReached:
    - TreeDestroy_
    - NodeDestroy_
    linkageType: ''
    returnType: void
    signature: void TreeDestroy_(RBTree *tree, RBNode *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/rb-tree.c:158,1
    - Dst: RBTreeIteratorNew
      Src: /src/core/libntech/libutils/rb-tree.c:163,1
    - Dst: Next_
      Src: /src/core/libntech/libutils/rb-tree.c:163,1
    - Dst: filter
      Src: /src/core/libntech/libutils/rb-tree.c:165,1
    - Dst: RBTreeIteratorDestroy
      Src: /src/core/libntech/libutils/rb-tree.c:171,1
    - Dst: RBTreeNew
      Src: /src/core/libntech/libutils/rb-tree.c:174,1
    - Dst: RBTreePut
      Src: /src/core/libntech/libutils/rb-tree.c:182,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:190,1
    - Dst: RBTreePut
      Src: /src/core/libntech/libutils/rb-tree.c:196,1
    - Dst: RBTreePut
      Src: /src/core/libntech/libutils/rb-tree.c:199,1
    - Dst: free
      Src: /src/core/libntech/libutils/rb-tree.c:202,1
    - Dst: VerifyTree_
      Src: /src/core/libntech/libutils/rb-tree.c:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - tree
    - filter
    - user_data
    argTypes:
    - RBTree*
    - RBTreePredicate*
    - void*
    assertStmts:
    - condition: ((node_count % 2) == 0)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 207
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 207
    functionName: RBTreeCopy
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 1
    functionsReached:
    - RBTreeNew
    - VerifyTree_
    - Next_
    - assert
    - xmalloc
    - RBTreeIteratorDestroy
    - free
    - RBTreeIteratorNew
    - filter
    - RBTreePut
    linkageType: ''
    returnType: RBTree
    signature: RBTree *RBTreeCopy(const RBTree *tree, RBTreePredicate *filter, void
      *user_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RBTreeSize
      Src: /src/core/libntech/libutils/rb-tree.c:225,1
    - Dst: RBTreeSize
      Src: /src/core/libntech/libutils/rb-tree.c:225,1
    - Dst: RBTreeIteratorNew
      Src: /src/core/libntech/libutils/rb-tree.c:230,1
    - Dst: RBTreeIteratorNew
      Src: /src/core/libntech/libutils/rb-tree.c:231,1
    - Dst: RBTreeIteratorNext
      Src: /src/core/libntech/libutils/rb-tree.c:234,1
    - Dst: RBTreeIteratorNext
      Src: /src/core/libntech/libutils/rb-tree.c:235,1
    - Dst: RBTree*::KeyCompare
      Src: /src/core/libntech/libutils/rb-tree.c:237,1
    - Dst: ValueCompare
      Src: /src/core/libntech/libutils/rb-tree.c:238,1
    - Dst: RBTreeIteratorDestroy
      Src: /src/core/libntech/libutils/rb-tree.c:240,1
    - Dst: RBTreeIteratorDestroy
      Src: /src/core/libntech/libutils/rb-tree.c:241,1
    - Dst: RBTreeIteratorDestroy
      Src: /src/core/libntech/libutils/rb-tree.c:246,1
    - Dst: RBTreeIteratorDestroy
      Src: /src/core/libntech/libutils/rb-tree.c:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 250
    functionName: RBTreeEqual
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 2
    functionsReached:
    - ValueCompare
    - RBTreeSize
    - RBTree*::KeyCompare
    - RBTreeIteratorDestroy
    - RBTreeIteratorNew
    - RBTreeIteratorNext
    linkageType: ''
    returnType: bool
    signature: bool RBTreeEqual(const void *_a, const void *_b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TreeDestroy_
      Src: /src/core/libntech/libutils/rb-tree.c:257,1
    - Dst: free
      Src: /src/core/libntech/libutils/rb-tree.c:258,1
    - Dst: free
      Src: /src/core/libntech/libutils/rb-tree.c:259,1
    - Dst: free
      Src: /src/core/libntech/libutils/rb-tree.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rb_tree
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: RBTreeDestroy
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 10
    functionsReached:
    - TreeDestroy_
    - free
    linkageType: ''
    returnType: void
    signature: void RBTreeDestroy(void *rb_tree)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:266,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - tree
    - x
    argTypes:
    - RBTree*
    - RBNode*
    assertStmts:
    - condition: (!tree->nil->red)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->nil->red)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 291
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 291
    functionName: RotateLeft_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void RotateLeft_(RBTree *tree, RBNode *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:295,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - tree
    - y
    argTypes:
    - RBTree*
    - RBNode*
    assertStmts:
    - condition: (!tree->nil->red)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->nil->red)
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 320
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 320
    functionName: RotateRight_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void RotateRight_(RBTree *tree, RBNode *y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RotateLeft_
      Src: /src/core/libntech/libutils/rb-tree.c:349,1
    - Dst: RotateRight_
      Src: /src/core/libntech/libutils/rb-tree.c:355,1
    - Dst: RotateRight_
      Src: /src/core/libntech/libutils/rb-tree.c:375,1
    - Dst: RotateLeft_
      Src: /src/core/libntech/libutils/rb-tree.c:381,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:388,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - tree
    - z
    argTypes:
    - RBTree*
    - RBNode*
    assertStmts:
    - condition: (!tree->nil->red)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->root->red)
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 390
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 390
    functionName: PutFix_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached:
    - assert
    - RotateLeft_
    - RotateRight_
    linkageType: ''
    returnType: void
    signature: void PutFix_(RBTree *tree, RBNode *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RBTree*::KeyCompare
      Src: /src/core/libntech/libutils/rb-tree.c:401,1
    - Dst: RBTree*::KeyDestroy
      Src: /src/core/libntech/libutils/rb-tree.c:404,1
    - Dst: RBTree*::KeyCopy
      Src: /src/core/libntech/libutils/rb-tree.c:405,1
    - Dst: RBTree*::ValueDestroy
      Src: /src/core/libntech/libutils/rb-tree.c:406,1
    - Dst: RBTree*::ValueCopy
      Src: /src/core/libntech/libutils/rb-tree.c:407,1
    - Dst: NodeNew_
      Src: /src/core/libntech/libutils/rb-tree.c:413,1
    - Dst: RBTree*::KeyCompare
      Src: /src/core/libntech/libutils/rb-tree.c:415,1
    - Dst: PutFix_
      Src: /src/core/libntech/libutils/rb-tree.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - tree
    - key
    - value
    argTypes:
    - RBTree*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 428
    functionName: RBTreePut
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 9
    functionsReached:
    - PutFix_
    - NodeNew_
    - RBTree*::KeyCopy
    - RBTree*::KeyCompare
    - RBTree*::ValueCopy
    - RBTree*::ValueDestroy
    - RBTree*::KeyDestroy
    linkageType: ''
    returnType: bool
    signature: bool RBTreePut(RBTree *tree, const void *key, const void *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tree
    - node
    argTypes:
    - RBTree*
    - RBNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: Next_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: RBNode
    signature: RBNode *Next_(const RBTree *tree, const RBNode *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:448,1
    - Dst: RBTree*::KeyCompare
      Src: /src/core/libntech/libutils/rb-tree.c:453,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - tree
    - key
    argTypes:
    - RBTree*
    - void*
    assertStmts:
    - condition: (!tree->nil->red)
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->nil->red)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 470
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 470
    functionName: Get_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached:
    - assert
    - RBTree*::KeyCompare
    linkageType: ''
    returnType: RBNode
    signature: RBNode *Get_(const RBTree *tree, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Get_
      Src: /src/core/libntech/libutils/rb-tree.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - key
    argTypes:
    - RBTree*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: RBTreeGet
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 5
    functionsReached:
    - Get_
    linkageType: ''
    returnType: void
    signature: void *RBTreeGet(const RBTree *tree, const void *key)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:481,1
    - Dst: RotateLeft_
      Src: /src/core/libntech/libutils/rb-tree.c:495,1
    - Dst: RotateRight_
      Src: /src/core/libntech/libutils/rb-tree.c:510,1
    - Dst: RotateLeft_
      Src: /src/core/libntech/libutils/rb-tree.c:516,1
    - Dst: RotateRight_
      Src: /src/core/libntech/libutils/rb-tree.c:527,1
    - Dst: RotateLeft_
      Src: /src/core/libntech/libutils/rb-tree.c:542,1
    - Dst: RotateRight_
      Src: /src/core/libntech/libutils/rb-tree.c:549,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:556,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 2
    argNames:
    - tree
    - x
    argTypes:
    - RBTree*
    - RBNode*
    assertStmts:
    - condition: (!tree->nil->red)
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->nil->red)
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 557
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 557
    functionName: RemoveFix_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached:
    - assert
    - RotateLeft_
    - RotateRight_
    linkageType: ''
    returnType: void
    signature: void RemoveFix_(RBTree *tree, RBNode *x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:561,1
    - Dst: Get_
      Src: /src/core/libntech/libutils/rb-tree.c:563,1
    - Dst: Next_
      Src: /src/core/libntech/libutils/rb-tree.c:569,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:591,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:592,1
    - Dst: RemoveFix_
      Src: /src/core/libntech/libutils/rb-tree.c:596,1
    - Dst: NodeDestroy_
      Src: /src/core/libntech/libutils/rb-tree.c:614,1
    - Dst: RemoveFix_
      Src: /src/core/libntech/libutils/rb-tree.c:620,1
    - Dst: NodeDestroy_
      Src: /src/core/libntech/libutils/rb-tree.c:622,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - tree
    - key
    argTypes:
    - RBTree*
    - void*
    assertStmts:
    - condition: (!tree->nil->red)
      pos:
        line_end: 560
        line_start: 560
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (y != tree->nil)
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->nil->red)
      pos:
        line_end: 591
        line_start: 591
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->nil->red)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 629
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 629
    functionName: RBTreeRemove
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 3
    functionsReached:
    - Next_
    - assert
    - RemoveFix_
    - NodeDestroy_
    - Get_
    linkageType: ''
    returnType: bool
    signature: bool RBTreeRemove(RBTree *tree, const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClearRecursive_
      Src: /src/core/libntech/libutils/rb-tree.c:638,1
    - Dst: ClearRecursive_
      Src: /src/core/libntech/libutils/rb-tree.c:639,1
    - Dst: NodeDestroy_
      Src: /src/core/libntech/libutils/rb-tree.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tree
    - node
    argTypes:
    - RBTree*
    - RBNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 642
    functionName: ClearRecursive_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 1
    functionsReached:
    - ClearRecursive_
    - NodeDestroy_
    linkageType: ''
    returnType: void
    signature: void ClearRecursive_(RBTree *tree, RBNode *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:646,1
    - Dst: ClearRecursive_
      Src: /src/core/libntech/libutils/rb-tree.c:648,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/rb-tree.c:649,1
    - Dst: Reset_
      Src: /src/core/libntech/libutils/rb-tree.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tree
    argTypes:
    - RBTree*
    assertStmts:
    - condition: (tree)
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 652
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 652
    functionName: RBTreeClear
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 1
    functionsReached:
    - ClearRecursive_
    - assert
    - Reset_
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void RBTreeClear(RBTree *tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - RBTree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 657
    functionName: RBTreeSize
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t RBTreeSize(const RBTree *tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/rb-tree.c:661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tree
    argTypes:
    - RBTree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 667
    functionName: RBTreeIteratorNew
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 4
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: RBTreeIterator
    signature: RBTreeIterator *RBTreeIteratorNew(const RBTree *tree)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - iter
    - key
    - value
    argTypes:
    - RBTreeIterator*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 692
    functionName: Peek_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Peek_(RBTreeIterator *iter, void **key, void **value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Peek_
      Src: /src/core/libntech/libutils/rb-tree.c:696,1
    - Dst: Next_
      Src: /src/core/libntech/libutils/rb-tree.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - iter
    - key
    - value
    argTypes:
    - RBTreeIterator*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 705
    functionName: RBTreeIteratorNext
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 3
    functionsReached:
    - Peek_
    - Next_
    linkageType: ''
    returnType: bool
    signature: bool RBTreeIteratorNext(RBTreeIterator *iter, void **key, void **value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/rb-tree.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _rb_iter
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 710
    functionName: RBTreeIteratorDestroy
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void RBTreeIteratorDestroy(void *_rb_iter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:716,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:717,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:726,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:733,1
    - Dst: VerifyNode_
      Src: /src/core/libntech/libutils/rb-tree.c:738,1
    - Dst: VerifyNode_
      Src: /src/core/libntech/libutils/rb-tree.c:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - tree
    - node
    - black_count
    - path_black_count
    argTypes:
    - RBTree*
    - RBNode*
    - int
    - int*
    assertStmts:
    - condition: (!node->left->red)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!node->red)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!node->right->red)
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (black_count == *path_black_count)
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 741
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 741
    functionName: VerifyNode_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 1
    functionsReached:
    - assert
    - VerifyNode_
    linkageType: ''
    returnType: void
    signature: void VerifyNode_(RBTree *tree, RBNode *node, int black_count, int *path_black_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:745,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:746,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:747,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:749,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:750,1
    - Dst: assert
      Src: /src/core/libntech/libutils/rb-tree.c:751,1
    - Dst: VerifyNode_
      Src: /src/core/libntech/libutils/rb-tree.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tree
    argTypes:
    - RBTree*
    assertStmts:
    - condition: (!tree->root->red)
      pos:
        line_end: 744
        line_start: 744
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->root->value)
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->root->key)
      pos:
        line_end: 745
        line_start: 745
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->nil->key)
      pos:
        line_end: 749
        line_start: 749
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->nil->red)
      pos:
        line_end: 748
        line_start: 748
        source_file: /src/core/libntech/libutils/rb-tree.c
    - condition: (!tree->nil->value)
      pos:
        line_end: 750
        line_start: 750
        source_file: /src/core/libntech/libutils/rb-tree.c
    constantsTouched: []
    func_position:
      end: 755
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 755
    functionName: VerifyTree_
    functionSourceFile: /src/core/libntech/libutils/rb-tree.c
    functionUses: 1
    functionsReached:
    - assert
    - VerifyNode_
    linkageType: ''
    returnType: void
    signature: void VerifyTree_(RBTree *tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/hash.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - method
    argTypes:
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: HashBasicInit
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: Hash
    signature: Hash *HashBasicInit(HashMethod method)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/libntech/libutils/hash.c:91,1
    - Dst: strcpy
      Src: /src/core/libntech/libutils/hash.c:99,1
    - Dst: strcpy
      Src: /src/core/libntech/libutils/hash.c:102,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/hash.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - hash
    argTypes:
    - Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 114
    functionName: HashCalculatePrintableRepresentation
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 0
    functionsReached:
    - strcpy
    - snprintf
    linkageType: ''
    returnType: void
    signature: void HashCalculatePrintableRepresentation(Hash *hash)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/core/libntech/libutils/hash.c:137,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:140,1
    - Dst: EVP_MD_CTX_create
      Src: /src/core/libntech/libutils/hash.c:144,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:147,1
    - Dst: HashBasicInit
      Src: /src/core/libntech/libutils/hash.c:150,1
    - Dst: EVP_DigestInit_ex
      Src: /src/core/libntech/libutils/hash.c:151,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libntech/libutils/hash.c:152,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/core/libntech/libutils/hash.c:154,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/core/libntech/libutils/hash.c:155,1
    - Dst: HashCalculatePrintableRepresentation
      Src: /src/core/libntech/libutils/hash.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - data
    - length
    - method
    argTypes:
    - char*
    - unsigned int
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 160
    functionName: HashNew
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 2
    functionsReached:
    - EVP_DigestInit_ex
    - HashCalculatePrintableRepresentation
    - EVP_DigestUpdate
    - EVP_MD_CTX_create
    - EVP_MD_CTX_destroy
    - HashBasicInit
    - Log
    - EVP_DigestFinal_ex
    - EVP_get_digestbyname
    linkageType: ''
    returnType: Hash
    signature: Hash *HashNew(const char *data, const unsigned int length, HashMethod
      method)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HashDigestFromId
      Src: /src/core/libntech/libutils/hash.c:173,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:176,1
    - Dst: EVP_MD_CTX_create
      Src: /src/core/libntech/libutils/hash.c:179,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:182,1
    - Dst: EVP_DigestInit_ex
      Src: /src/core/libntech/libutils/hash.c:186,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:188,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/core/libntech/libutils/hash.c:189,1
    - Dst: read
      Src: /src/core/libntech/libutils/hash.c:197,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libntech/libutils/hash.c:198,1
    - Dst: HashBasicInit
      Src: /src/core/libntech/libutils/hash.c:201,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/core/libntech/libutils/hash.c:203,1
    - Dst: HashCalculatePrintableRepresentation
      Src: /src/core/libntech/libutils/hash.c:206,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/core/libntech/libutils/hash.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - descriptor
    - method
    argTypes:
    - int
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 210
    functionName: HashNewFromDescriptor
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 1
    functionsReached:
    - EVP_DigestInit_ex
    - read
    - HashDigestFromId
    - HashCalculatePrintableRepresentation
    - EVP_DigestUpdate
    - EVP_MD_CTX_create
    - EVP_MD_CTX_destroy
    - Log
    - HashBasicInit
    - EVP_DigestFinal_ex
    linkageType: ''
    returnType: Hash
    signature: Hash *HashNewFromDescriptor(const int descriptor, HashMethod method)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get0_key
      Src: /src/core/libntech/libutils/hash.c:224,1
    - Dst: BN_num_bytes
      Src: /src/core/libntech/libutils/hash.c:226,1
    - Dst: BN_num_bytes
      Src: /src/core/libntech/libutils/hash.c:227,1
    - Dst: MAX
      Src: /src/core/libntech/libutils/hash.c:228,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:233,1
    - Dst: EVP_get_digestbyname
      Src: /src/core/libntech/libutils/hash.c:237,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:240,1
    - Dst: EVP_MD_CTX_new
      Src: /src/core/libntech/libutils/hash.c:244,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:247,1
    - Dst: EVP_DigestInit_ex
      Src: /src/core/libntech/libutils/hash.c:251,1
    - Dst: EVP_MD_CTX_free
      Src: /src/core/libntech/libutils/hash.c:253,1
    - Dst: BN_bn2bin
      Src: /src/core/libntech/libutils/hash.c:260,1
    - Dst: CF_ASSERT
      Src: /src/core/libntech/libutils/hash.c:261,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libntech/libutils/hash.c:263,1
    - Dst: BN_bn2bin
      Src: /src/core/libntech/libutils/hash.c:265,1
    - Dst: CF_ASSERT
      Src: /src/core/libntech/libutils/hash.c:266,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libntech/libutils/hash.c:268,1
    - Dst: HashBasicInit
      Src: /src/core/libntech/libutils/hash.c:270,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/core/libntech/libutils/hash.c:272,1
    - Dst: EVP_MD_CTX_free
      Src: /src/core/libntech/libutils/hash.c:274,1
    - Dst: HashCalculatePrintableRepresentation
      Src: /src/core/libntech/libutils/hash.c:277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - rsa
    - method
    argTypes:
    - RSA*
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 280
    functionName: HashNewFromKey
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 1
    functionsReached:
    - MAX
    - EVP_DigestInit_ex
    - HashCalculatePrintableRepresentation
    - EVP_DigestUpdate
    - BN_bn2bin
    - RSA_get0_key
    - EVP_MD_CTX_new
    - Log
    - HashBasicInit
    - CF_ASSERT
    - EVP_DigestFinal_ex
    - EVP_get_digestbyname
    - EVP_MD_CTX_free
    - BN_num_bytes
    linkageType: ''
    returnType: Hash
    signature: Hash *HashNewFromKey(const RSA *rsa, HashMethod method)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/hash.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hash
    argTypes:
    - Hash**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 290
    functionName: HashDestroy
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void HashDestroy(Hash **hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/hash.c:298,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/hash.c:299,1
    - Dst: strlcpy
      Src: /src/core/libntech/libutils/hash.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - origin
    - destination
    argTypes:
    - Hash*
    - Hash**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 304
    functionName: HashCopy
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 1
    functionsReached:
    - memcpy
    - xmalloc
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int HashCopy(Hash *origin, Hash **destination)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Hash*
    - Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 333
    functionName: HashEqual
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HashEqual(const Hash *a, const Hash *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - hash
    - length
    argTypes:
    - Hash*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: HashData
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *HashData(const Hash *hash, unsigned int *length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: HashPrintable
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *HashPrintable(const Hash *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: HashType
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: HashMethod
    signature: HashMethod HashType(const Hash *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: HashLength
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: HashSize
    signature: HashSize HashLength(const Hash *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libntech/libutils/hash.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - hash_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 373
    functionName: HashIdFromName
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: HashMethod
    signature: HashMethod HashIdFromName(const char *hash_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash_id
    argTypes:
    - HashMethod
    assertStmts:
    - condition: (hash_id >= 0)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/core/libntech/libutils/hash.c
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: HashNameFromId
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *HashNameFromId(HashMethod hash_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HashNameFromId
      Src: /src/core/libntech/libutils/hash.c:383,1
    - Dst: EVP_get_digestbyname
      Src: /src/core/libntech/libutils/hash.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: HashDigestFromId
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 1
    functionsReached:
    - EVP_get_digestbyname
    - HashNameFromId
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *HashDigestFromId(HashMethod type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash_id
    argTypes:
    - HashMethod
    assertStmts:
    - condition: (hash_id >= 0)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/core/libntech/libutils/hash.c
    constantsTouched: []
    func_position:
      end: 396
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 396
    functionName: HashSizeFromId
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: HashSize
    signature: HashSize HashSizeFromId(HashMethod hash_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:403,1
    - Dst: HashDigestFromId
      Src: /src/core/libntech/libutils/hash.c:404,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:407,1
    - Dst: EVP_MD_CTX_new
      Src: /src/core/libntech/libutils/hash.c:413,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:416,1
    - Dst: EVP_DigestInit
      Src: /src/core/libntech/libutils/hash.c:420,1
    - Dst: fread
      Src: /src/core/libntech/libutils/hash.c:424,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libntech/libutils/hash.c:426,1
    - Dst: EVP_DigestFinal
      Src: /src/core/libntech/libutils/hash.c:430,1
    - Dst: EVP_MD_CTX_free
      Src: /src/core/libntech/libutils/hash.c:433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - file
    - digest
    - type
    argTypes:
    - FILE*
    - unsigned char[]
    - HashMethod
    assertStmts:
    - condition: (file != NULL)
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/core/libntech/libutils/hash.c
    constantsTouched: []
    func_position:
      end: 434
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 434
    functionName: HashFile_Stream
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 0
    functionsReached:
    - EVP_DigestInit
    - HashDigestFromId
    - assert
    - EVP_DigestUpdate
    - fread
    - EVP_DigestFinal
    - EVP_MD_CTX_new
    - Log
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: "void HashFile_Stream(\n    FILE *const file,\n    unsigned char digest[EVP_MAX_MD_SIZE
      + 1],\n    const HashMethod type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:447,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:448,1
    - Dst: memset
      Src: /src/core/libntech/libutils/hash.c:450,1
    - Dst: safe_fopen
      Src: /src/core/libntech/libutils/hash.c:455,1
    - Dst: safe_fopen
      Src: /src/core/libntech/libutils/hash.c:459,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:463,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/hash.c:466,1
    - Dst: HashFile_Stream
      Src: /src/core/libntech/libutils/hash.c:470,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/hash.c:471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - filename
    - digest
    - type
    - text_mode
    argTypes:
    - char*
    - unsigned char[]
    - HashMethod
    - bool
    assertStmts:
    - condition: (filename != NULL)
      pos:
        line_end: 446
        line_start: 446
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (digest != NULL)
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/core/libntech/libutils/hash.c
    constantsTouched: []
    func_position:
      end: 472
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 472
    functionName: HashFile
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - HashFile_Stream
    - assert
    - safe_fopen
    - Log
    - fclose
    - memset
    linkageType: ''
    returnType: void
    signature: "void HashFile(\n    const char *const filename,\n    unsigned char
      digest[EVP_MAX_MD_SIZE + 1],\n    HashMethod type,\n    bool text_mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:482,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:483,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:484,1
    - Dst: memset
      Src: /src/core/libntech/libutils/hash.c:486,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:490,1
    - Dst: HashDigestFromId
      Src: /src/core/libntech/libutils/hash.c:495,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:498,1
    - Dst: EVP_MD_CTX_new
      Src: /src/core/libntech/libutils/hash.c:504,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:507,1
    - Dst: EVP_DigestInit
      Src: /src/core/libntech/libutils/hash.c:511,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libntech/libutils/hash.c:513,1
    - Dst: EVP_DigestFinal
      Src: /src/core/libntech/libutils/hash.c:514,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:518,1
    - Dst: EVP_MD_CTX_free
      Src: /src/core/libntech/libutils/hash.c:523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - buffer
    - len
    - digest
    - type
    argTypes:
    - char*
    - int
    - unsigned char[]
    - HashMethod
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (digest != NULL)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (type != HASH_METHOD_CRYPT)
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/core/libntech/libutils/hash.c
    constantsTouched: []
    func_position:
      end: 524
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 524
    functionName: HashString
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 1
    functionsReached:
    - HashDigestFromId
    - EVP_DigestInit
    - assert
    - EVP_DigestUpdate
    - EVP_DigestFinal
    - EVP_MD_CTX_new
    - Log
    - EVP_MD_CTX_free
    - memset
    linkageType: ''
    returnType: void
    signature: "void HashString(\n    const char *const buffer,\n    const int len,\n
      \   unsigned char digest[EVP_MAX_MD_SIZE + 1],\n    HashMethod type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:533,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:534,1
    - Dst: memset
      Src: /src/core/libntech/libutils/hash.c:536,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:540,1
    - Dst: HashDigestFromId
      Src: /src/core/libntech/libutils/hash.c:545,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:548,1
    - Dst: EVP_MD_CTX_new
      Src: /src/core/libntech/libutils/hash.c:554,1
    - Dst: Log
      Src: /src/core/libntech/libutils/hash.c:557,1
    - Dst: EVP_DigestInit
      Src: /src/core/libntech/libutils/hash.c:562,1
    - Dst: RSA_get0_key
      Src: /src/core/libntech/libutils/hash.c:565,1
    - Dst: BN_num_bytes
      Src: /src/core/libntech/libutils/hash.c:567,1
    - Dst: BN_num_bytes
      Src: /src/core/libntech/libutils/hash.c:568,1
    - Dst: MAX
      Src: /src/core/libntech/libutils/hash.c:569,1
    - Dst: BN_bn2bin
      Src: /src/core/libntech/libutils/hash.c:573,1
    - Dst: CF_ASSERT
      Src: /src/core/libntech/libutils/hash.c:574,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libntech/libutils/hash.c:576,1
    - Dst: BN_bn2bin
      Src: /src/core/libntech/libutils/hash.c:578,1
    - Dst: CF_ASSERT
      Src: /src/core/libntech/libutils/hash.c:579,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libntech/libutils/hash.c:581,1
    - Dst: EVP_DigestFinal
      Src: /src/core/libntech/libutils/hash.c:584,1
    - Dst: EVP_MD_CTX_free
      Src: /src/core/libntech/libutils/hash.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - key
    - digest
    - type
    argTypes:
    - RSA*
    - unsigned char[]
    - HashMethod
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 532
        line_start: 532
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (type != HASH_METHOD_CRYPT)
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/core/libntech/libutils/hash.c
    constantsTouched: []
    func_position:
      end: 588
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 588
    functionName: HashPubKey
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 1
    functionsReached:
    - MAX
    - HashDigestFromId
    - EVP_DigestInit
    - assert
    - EVP_DigestUpdate
    - EVP_DigestFinal
    - BN_bn2bin
    - RSA_get0_key
    - EVP_MD_CTX_new
    - Log
    - BN_num_bytes
    - CF_ASSERT
    - EVP_MD_CTX_free
    - memset
    linkageType: ''
    returnType: void
    signature: "void HashPubKey(\n    const RSA *const key,\n    unsigned char digest[EVP_MAX_MD_SIZE
      + 1],\n    const HashMethod type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HashSizeFromId
      Src: /src/core/libntech/libutils/hash.c:597,1
    - Dst: memcmp
      Src: /src/core/libntech/libutils/hash.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - digest1
    - digest2
    - type
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 604
    functionName: HashesMatch
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 1
    functionsReached:
    - memcmp
    - HashSizeFromId
    linkageType: ''
    returnType: bool
    signature: "bool HashesMatch(\n    const unsigned char digest1[EVP_MAX_MD_SIZE
      + 1],\n    const unsigned char digest2[EVP_MAX_MD_SIZE + 1],\n    HashMethod
      type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STARTSWITH
      Src: /src/core/libntech/libutils/hash.c:652,1
    - Dst: STARTSWITH
      Src: /src/core/libntech/libutils/hash.c:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 658
    functionName: SkipHashType
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 0
    functionsReached:
    - STARTSWITH
    linkageType: ''
    returnType: char
    signature: char *SkipHashType(char *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:663,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:664,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:665,1
    - Dst: StringCopy
      Src: /src/core/libntech/libutils/hash.c:667,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:674,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:680,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:681,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/hash.c:681,1
    - Dst: HashString
      Src: /src/core/libntech/libutils/hash.c:685,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/hash.c:685,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:689,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:691,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:693,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/hash.c:696,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:701,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:707,1
    - Dst: assert
      Src: /src/core/libntech/libutils/hash.c:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - src
    - dst
    - dst_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts:
    - condition: (src != NULL)
      pos:
        line_end: 662
        line_start: 662
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (dst != NULL)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (dst_size > (32 + 5))
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (length == dst_size)
      pos:
        line_end: 673
        line_start: 673
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (dst_size > md5_string_length)
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (md5_prefix_length == strlen(md5_prefix))
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (hash_start + md5_hex_length == terminator)
      pos:
        line_end: 707
        line_start: 707
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (*terminator == '\0')
      pos:
        line_end: 688
        line_start: 688
        source_file: /src/core/libntech/libutils/hash.c
    - condition: ((md5_hex_length % 2) == 0)
      pos:
        line_end: 700
        line_start: 700
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (hash_prefix_start >= dst)
      pos:
        line_end: 690
        line_start: 690
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (hash_start > hash_prefix_start)
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/core/libntech/libutils/hash.c
    - condition: (hash_start[md5_hex_length] == '\0')
      pos:
        line_end: 706
        line_start: 706
        source_file: /src/core/libntech/libutils/hash.c
    constantsTouched: []
    func_position:
      end: 711
      start: 660
    functionDepth: 3
    functionLinenumber: 660
    functionLinenumberEnd: 711
    functionName: StringCopyTruncateAndHashIfNecessary
    functionSourceFile: /src/core/libntech/libutils/hash.c
    functionUses: 1
    functionsReached:
    - memcpy
    - strlen
    - assert
    - StringCopy
    - HashString
    linkageType: ''
    returnType: size_t
    signature: "size_t StringCopyTruncateAndHashIfNecessary(\n    const char *const
      src, char *const dst, size_t dst_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ProgrammingError
    functionSourceFile: /src/core/libntech/libutils/misc_lib.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ProgrammingError(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: UnexpectedError
    functionSourceFile: /src/core/libntech/libutils/misc_lib.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UnexpectedError(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: UnexpectedError
    functionSourceFile: /src/core/libntech/libutils/misc_lib.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UnexpectedError(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - condition
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: CF_ASSERT
    functionSourceFile: /src/core/libntech/libutils/misc_lib.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_ASSERT(condition, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - condition
    - ','
    - fix
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: CF_ASSERT_FIX
    functionSourceFile: /src/core/libntech/libutils/misc_lib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_ASSERT_FIX(condition, fix, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ISPOW2
    functionSourceFile: /src/core/libntech/libutils/misc_lib.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISPOW2(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: ABS
    functionSourceFile: /src/core/libntech/libutils/misc_lib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ABS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - anew
    - aold
    - p
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: GAverage
    functionSourceFile: /src/core/libntech/libutils/statistics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double GAverage(double anew, double aold, double p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: q::q
      Src: /src/core/libntech/libutils/statistics.c:49,1
    - Dst: q::q
      Src: /src/core/libntech/libutils/statistics.c:49,1
    - Dst: q::q
      Src: /src/core/libntech/libutils/statistics.c:51,1
    - Dst: GAverage
      Src: /src/core/libntech/libutils/statistics.c:52,1
    - Dst: q::q
      Src: /src/core/libntech/libutils/statistics.c:52,1
    - Dst: GAverage
      Src: /src/core/libntech/libutils/statistics.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - old
    - new_q
    - p
    argTypes:
    - QPoint
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: QAverage
    functionSourceFile: /src/core/libntech/libutils/statistics.c
    functionUses: 0
    functionsReached:
    - GAverage
    - q::q
    linkageType: ''
    returnType: QPoint
    signature: QPoint QAverage(QPoint old, double new_q, double p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: QDefinite
    functionSourceFile: /src/core/libntech/libutils/statistics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: QPoint
    signature: QPoint QDefinite(double q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - int16_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: ConvertFromCharToWChar
    functionSourceFile: /src/core/libntech/libutils/unicode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConvertFromCharToWChar(int16_t *dst, const char *src, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - int16_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 57
    functionName: ConvertFromWCharToChar
    functionSourceFile: /src/core/libntech/libutils/unicode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ConvertFromWCharToChar(char *dst, const int16_t *src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FUNC
    - ','
    - GLOBAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: GET_DEFAULT_DIRECTORY_DEFINE
    functionSourceFile: /src/core/libntech/libutils/known_dirs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_DEFAULT_DIRECTORY_DEFINE(FUNC, GLOBAL)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/known_dirs.c:74,1
    - Dst: getuid
      Src: /src/core/libntech/libutils/known_dirs.c:76,1
    - Dst: getpwuid
      Src: /src/core/libntech/libutils/known_dirs.c:80,1
    - Dst: getuid
      Src: /src/core/libntech/libutils/known_dirs.c:80,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/known_dirs.c:89,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/known_dirs.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - dir
    - root_dir
    - append_dir
    argTypes:
    - char[]
    - char*
    - char*
    assertStmts:
    - condition: (dir != NULL)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/core/libntech/libutils/known_dirs.c
    constantsTouched: []
    func_position:
      end: 110
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 110
    functionName: GetDefaultDir_helper
    functionSourceFile: /src/core/libntech/libutils/known_dirs.c
    functionUses: 0
    functionsReached:
    - assert
    - snprintf
    - getuid
    - getpwuid
    linkageType: ''
    returnType: char
    signature: "char *GetDefaultDir_helper(char dir[PATH_MAX], const char *root_dir,\n
      \                                       const char *append_dir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - FUNC
    - ','
    - STATIC
    - ','
    - GLOBAL
    - ','
    - FOLDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: GET_DEFAULT_DIRECTORY_DEFINE
    functionSourceFile: /src/core/libntech/libutils/known_dirs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_DEFAULT_DIRECTORY_DEFINE(FUNC, STATIC, GLOBAL, FOLDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/libntech/libutils/known_dirs.c:139,1
    - Dst: GetDefaultWorkDir
      Src: /src/core/libntech/libutils/known_dirs.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: GetWorkDir
    functionSourceFile: /src/core/libntech/libutils/known_dirs.c
    functionUses: 11
    functionsReached:
    - GetDefaultWorkDir
    - getenv
    linkageType: ''
    returnType: char
    signature: char *GetWorkDir(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/libntech/libutils/known_dirs.c:146,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/known_dirs.c:154,1
    - Dst: GetDefaultWorkDir
      Src: /src/core/libntech/libutils/known_dirs.c:155,1
    - Dst: GetDefaultBinDir
      Src: /src/core/libntech/libutils/known_dirs.c:158,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/known_dirs.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: GetBinDir
    functionSourceFile: /src/core/libntech/libutils/known_dirs.c
    functionUses: 1
    functionsReached:
    - GetDefaultBinDir
    - GetDefaultWorkDir
    - snprintf
    - getenv
    linkageType: ''
    returnType: char
    signature: char *GetBinDir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/libntech/libutils/known_dirs.c:171,1
    - Dst: GetDefaultLogDir
      Src: /src/core/libntech/libutils/known_dirs.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: GetLogDir
    functionSourceFile: /src/core/libntech/libutils/known_dirs.c
    functionUses: 1
    functionsReached:
    - GetDefaultLogDir
    - getenv
    linkageType: ''
    returnType: char
    signature: char *GetLogDir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/libntech/libutils/known_dirs.c:178,1
    - Dst: GetDefaultPidDir
      Src: /src/core/libntech/libutils/known_dirs.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: GetPidDir
    functionSourceFile: /src/core/libntech/libutils/known_dirs.c
    functionUses: 1
    functionsReached:
    - GetDefaultPidDir
    - getenv
    linkageType: ''
    returnType: char
    signature: char *GetPidDir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - FUNC
    - ','
    - VAR
    - ','
    - GLOBAL
    - ','
    - FOLDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: GET_DIRECTORY_DEFINE_FUNC_BODY
    functionSourceFile: /src/core/libntech/libutils/known_dirs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_DIRECTORY_DEFINE_FUNC_BODY(FUNC, VAR, GLOBAL, FOLDER)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/path.c:31,1
    - Dst: strrchr
      Src: /src/core/libntech/libutils/path.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts:
    - condition: (path != NULL)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/core/libntech/libutils/path.c
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: Path_Basename
    functionSourceFile: /src/core/libntech/libutils/path.c
    functionUses: 0
    functionsReached:
    - assert
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *Path_Basename(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringEndsWith
      Src: /src/core/libntech/libutils/path.c:54,1
    - Dst: StringEndsWith
      Src: /src/core/libntech/libutils/path.c:56,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/libutils/path.c:60,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/libutils/path.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - dir
    - leaf
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: Path_JoinAlloc
    functionSourceFile: /src/core/libntech/libutils/path.c
    functionUses: 3
    functionsReached:
    - StringConcatenate
    - StringEndsWith
    linkageType: ''
    returnType: char
    signature: char *Path_JoinAlloc(const char *dir, const char *leaf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/path.c:72,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/path.c:76,1
    - Dst: IsFileSep
      Src: /src/core/libntech/libutils/path.c:88,1
    - Dst: StringConcatenate
      Src: /src/core/libntech/libutils/path.c:92,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libntech/libutils/path.c:96,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 98
    functionName: Path_GetQuoted
    functionSourceFile: /src/core/libntech/libutils/path.c
    functionUses: 1
    functionsReached:
    - StringConcatenate
    - SafeStringDuplicate
    - IsFileSep
    - strlen
    linkageType: ''
    returnType: char
    signature: char *Path_GetQuoted(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/encode.c:36,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/encode.c:44,1
    - Dst: BIO_new
      Src: /src/core/libntech/libutils/encode.c:47,1
    - Dst: BIO_f_base64
      Src: /src/core/libntech/libutils/encode.c:47,1
    - Dst: BIO_new
      Src: /src/core/libntech/libutils/encode.c:48,1
    - Dst: BIO_s_mem
      Src: /src/core/libntech/libutils/encode.c:48,1
    - Dst: BIO_push
      Src: /src/core/libntech/libutils/encode.c:49,1
    - Dst: BIO_write
      Src: /src/core/libntech/libutils/encode.c:50,1
    - Dst: BIO_flush
      Src: /src/core/libntech/libutils/encode.c:51,1
    - Dst: assert
      Src: /src/core/libntech/libutils/encode.c:53,1
    - Dst: BIO_get_mem_ptr
      Src: /src/core/libntech/libutils/encode.c:58,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/encode.c:59,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/encode.c:60,1
    - Dst: BIO_free_all
      Src: /src/core/libntech/libutils/encode.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (str)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/core/libntech/libutils/encode.c
    - condition: (false && "Unable to encode string to base64" && str)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/core/libntech/libutils/encode.c
    constantsTouched: []
    func_position:
      end: 66
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 66
    functionName: StringEncodeBase64
    functionSourceFile: /src/core/libntech/libutils/encode.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - memcpy
    - assert
    - BIO_write
    - BIO_flush
    - BIO_push
    - BIO_free_all
    - BIO_get_mem_ptr
    - BIO_new
    - BIO_f_base64
    - BIO_s_mem
    linkageType: ''
    returnType: char
    signature: char *StringEncodeBase64(const char *str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/buffer.c:38,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/buffer.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - initial_capacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: BufferNewWithCapacity
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: Buffer
    signature: Buffer *BufferNewWithCapacity(size_t initial_capacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNewWithCapacity
      Src: /src/core/libntech/libutils/buffer.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: BufferNew
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 32
    functionsReached:
    - BufferNewWithCapacity
    linkageType: ''
    returnType: Buffer
    signature: Buffer *BufferNew(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:56,1
    - Dst: UpperPowerOfTwo
      Src: /src/core/libntech/libutils/buffer.c:59,1
    - Dst: xrealloc
      Src: /src/core/libntech/libutils/buffer.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - needed
    argTypes:
    - Buffer*
    - size_t
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: ExpandIfNeeded
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - UpperPowerOfTwo
    - assert
    - xrealloc
    linkageType: ''
    returnType: void
    signature: void ExpandIfNeeded(Buffer *buffer, size_t needed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNewWithCapacity
      Src: /src/core/libntech/libutils/buffer.c:67,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: BufferNewFrom
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 6
    functionsReached:
    - BufferAppend
    - BufferNewWithCapacity
    linkageType: ''
    returnType: Buffer
    signature: Buffer * BufferNewFrom(const char *data, size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/buffer.c:77,1
    - Dst: free
      Src: /src/core/libntech/libutils/buffer.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: BufferDestroy
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 38
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void BufferDestroy(Buffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:84,1
    - Dst: free
      Src: /src/core/libntech/libutils/buffer.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Buffer*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: BufferClose
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 2
    functionsReached:
    - assert
    - free
    linkageType: ''
    returnType: char
    signature: char *BufferClose(Buffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:93,1
    - Dst: BufferNewFrom
      Src: /src/core/libntech/libutils/buffer.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Buffer*
    assertStmts:
    - condition: (source != NULL)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: BufferCopy
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 1
    functionsReached:
    - assert
    - BufferNewFrom
    linkageType: ''
    returnType: Buffer
    signature: Buffer *BufferCopy(const Buffer *source)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:99,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:100,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/buffer.c:117,1
    - Dst: abs
      Src: /src/core/libntech/libutils/buffer.c:120,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 76
    argCount: 2
    argNames:
    - buffer1
    - buffer2
    argTypes:
    - Buffer*
    - Buffer*
    assertStmts:
    - condition: (buffer1 != NULL)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (buffer2 != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 235
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 235
    functionName: BufferCompare
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 1
    functionsReached:
    - assert
    - strcmp
    - abs
    linkageType: ''
    returnType: int
    signature: int BufferCompare(const Buffer *buffer1, const Buffer *buffer2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:239,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:240,1
    - Dst: BufferClear
      Src: /src/core/libntech/libutils/buffer.c:242,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buffer
    - bytes
    - length
    argTypes:
    - Buffer*
    - char*
    - size_t
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (bytes != NULL)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: BufferSet
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 7
    functionsReached:
    - BufferAppend
    - assert
    - BufferClear
    linkageType: ''
    returnType: void
    signature: void BufferSet(Buffer *buffer, const char *bytes, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Buffer*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: BufferGet
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *BufferGet(Buffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:256,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/buffer.c:258,1
    - Dst: ExpandIfNeeded
      Src: /src/core/libntech/libutils/buffer.c:259,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/buffer.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - str
    argTypes:
    - Buffer*
    - char*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: BufferAppendString
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 2
    functionsReached:
    - assert
    - ExpandIfNeeded
    - memcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: void BufferAppendString(Buffer *buffer, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - max
    argTypes:
    - Buffer*
    - size_t
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: BufferTrimToMaxLength
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void BufferTrimToMaxLength(Buffer *buffer, size_t max)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:279,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:280,1
    - Dst: strnlen
      Src: /src/core/libntech/libutils/buffer.c:291,1
    - Dst: ExpandIfNeeded
      Src: /src/core/libntech/libutils/buffer.c:292,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/buffer.c:293,1
    - Dst: ExpandIfNeeded
      Src: /src/core/libntech/libutils/buffer.c:300,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/buffer.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - buffer
    - bytes
    - length
    argTypes:
    - Buffer*
    - char*
    - size_t
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (bytes != NULL)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 305
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 305
    functionName: BufferAppend
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 6
    functionsReached:
    - assert
    - ExpandIfNeeded
    - memcpy
    - strnlen
    linkageType: ''
    returnType: void
    signature: void BufferAppend(Buffer *buffer, const char *bytes, size_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:309,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - buffer
    - byte
    argTypes:
    - Buffer*
    - char
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 324
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 324
    functionName: BufferAppendChar
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 1
    functionsReached:
    - assert
    - BufferAppend
    linkageType: ''
    returnType: void
    signature: void BufferAppendChar(Buffer *buffer, char byte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:328,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:329,1
    - Dst: va_start
      Src: /src/core/libntech/libutils/buffer.c:333,1
    - Dst: va_copy
      Src: /src/core/libntech/libutils/buffer.c:334,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libutils/buffer.c:336,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:337,1
    - Dst: ExpandIfNeeded
      Src: /src/core/libntech/libutils/buffer.c:344,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libutils/buffer.c:346,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/buffer.c:353,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/buffer.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - buffer
    - format
    argTypes:
    - Buffer*
    - char*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (format != NULL)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (printed >= 0)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 355
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 355
    functionName: BufferAppendF
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 3
    functionsReached:
    - va_start
    - assert
    - ExpandIfNeeded
    - va_end
    - vsnprintf
    - va_copy
    linkageType: ''
    returnType: void
    signature: void BufferAppendF(Buffer *buffer, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:359,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:360,1
    - Dst: va_start
      Src: /src/core/libntech/libutils/buffer.c:367,1
    - Dst: va_copy
      Src: /src/core/libntech/libutils/buffer.c:368,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libutils/buffer.c:378,1
    - Dst: ExpandIfNeeded
      Src: /src/core/libntech/libutils/buffer.c:389,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libutils/buffer.c:392,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/buffer.c:399,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/buffer.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - buffer
    - format
    argTypes:
    - Buffer*
    - char*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (format != NULL)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 402
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 402
    functionName: BufferPrintf
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 7
    functionsReached:
    - va_start
    - assert
    - ExpandIfNeeded
    - va_end
    - vsnprintf
    - va_copy
    linkageType: ''
    returnType: int
    signature: int BufferPrintf(Buffer *buffer, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:407,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:408,1
    - Dst: va_copy
      Src: /src/core/libntech/libutils/buffer.c:410,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libutils/buffer.c:421,1
    - Dst: ExpandIfNeeded
      Src: /src/core/libntech/libutils/buffer.c:428,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libutils/buffer.c:430,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/buffer.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - buffer
    - format
    - ap
    argTypes:
    - Buffer*
    - char*
    - va_list
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 406
        line_start: 406
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (format != NULL)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 439
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 439
    functionName: BufferVPrintf
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 1
    functionsReached:
    - assert
    - ExpandIfNeeded
    - va_end
    - vsnprintf
    - va_copy
    linkageType: ''
    returnType: int
    signature: int BufferVPrintf(Buffer *buffer, const char *format, va_list ap)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/core/libntech/libutils/buffer.c:469,1
    - Dst: isdigit
      Src: /src/core/libntech/libutils/buffer.c:477,1
    - Dst: pcre2_pattern_info
      Src: /src/core/libntech/libutils/buffer.c:484,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:485,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/buffer.c:496,1
    - Dst: BufferNewWithCapacity
      Src: /src/core/libntech/libutils/buffer.c:502,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/core/libntech/libutils/buffer.c:503,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/buffer.c:507,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:513,1
    - Dst: BufferAppendF
      Src: /src/core/libntech/libutils/buffer.c:514,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:519,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:520,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:525,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:526,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:531,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:532,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/buffer.c:537,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/buffer.c:539,1
    - Dst: BufferNewFrom
      Src: /src/core/libntech/libutils/buffer.c:543,1
    - Dst: BufferGet
      Src: /src/core/libntech/libutils/buffer.c:547,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/buffer.c:551,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:552,1
    - Dst: isdigit
      Src: /src/core/libntech/libutils/buffer.c:557,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/buffer.c:561,1
    - Dst: BufferSize
      Src: /src/core/libntech/libutils/buffer.c:568,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:576,1
    - Dst: isdigit
      Src: /src/core/libntech/libutils/buffer.c:582,1
    - Dst: atoi
      Src: /src/core/libntech/libutils/buffer.c:582,1
    - Dst: isdigit
      Src: /src/core/libntech/libutils/buffer.c:587,1
    - Dst: BufferTrimToMaxLength
      Src: /src/core/libntech/libutils/buffer.c:601,1
    - Dst: BufferClose
      Src: /src/core/libntech/libutils/buffer.c:604,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 79
    argCount: 5
    argNames:
    - regex
    - orig_str
    - orig_str_len
    - md
    - substitute
    argTypes:
    - pcre2_code*
    - char*
    - size_t
    - pcre2_match_data*
    - char*
    assertStmts:
    - condition: (backslash != NULL)
      pos:
        line_end: 551
        line_start: 551
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (i < subst_len)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (ret == 0)
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 605
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 605
    functionName: ExpandCFESpecialReplacements
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - BufferAppend
    - BufferAppendF
    - BufferNewWithCapacity
    - strlen
    - pcre2_get_ovector_pointer
    - assert
    - isdigit
    - BufferNewFrom
    - pcre2_pattern_info
    - BufferTrimToMaxLength
    - BufferClose
    - strchr
    - BufferSize
    - atoi
    - BufferGet
    linkageType: ''
    returnType: char
    signature: "char *ExpandCFESpecialReplacements(const pcre2_code *regex,\n                                          const
      char *orig_str, size_t orig_str_len,\n                                          pcre2_match_data
      *md, const char *substitute)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:611,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:612,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:613,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:614,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:650,1
    - Dst: Log
      Src: /src/core/libntech/libutils/buffer.c:651,1
    - Dst: pcre2_compile
      Src: /src/core/libntech/libutils/buffer.c:657,1
    - Dst: pcre2_get_error_message
      Src: /src/core/libntech/libutils/buffer.c:662,1
    - Dst: Log
      Src: /src/core/libntech/libutils/buffer.c:665,1
    - Dst: Log
      Src: /src/core/libntech/libutils/buffer.c:670,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/core/libntech/libutils/buffer.c:675,1
    - Dst: pcre2_match
      Src: /src/core/libntech/libutils/buffer.c:676,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/buffer.c:676,1
    - Dst: BufferSize
      Src: /src/core/libntech/libutils/buffer.c:676,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:678,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libntech/libutils/buffer.c:682,1
    - Dst: pcre2_code_free
      Src: /src/core/libntech/libutils/buffer.c:683,1
    - Dst: pcre2_get_error_message
      Src: /src/core/libntech/libutils/buffer.c:685,1
    - Dst: Log
      Src: /src/core/libntech/libutils/buffer.c:688,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/buffer.c:689,1
    - Dst: Log
      Src: /src/core/libntech/libutils/buffer.c:693,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/buffer.c:694,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libntech/libutils/buffer.c:701,1
    - Dst: pcre2_code_free
      Src: /src/core/libntech/libutils/buffer.c:702,1
    - Dst: ExpandCFESpecialReplacements
      Src: /src/core/libntech/libutils/buffer.c:707,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/buffer.c:707,1
    - Dst: BufferSize
      Src: /src/core/libntech/libutils/buffer.c:707,1
    - Dst: BufferSize
      Src: /src/core/libntech/libutils/buffer.c:717,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/buffer.c:718,1
    - Dst: pcre2_substitute
      Src: /src/core/libntech/libutils/buffer.c:721,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/buffer.c:721,1
    - Dst: BufferSize
      Src: /src/core/libntech/libutils/buffer.c:721,1
    - Dst: xrealloc
      Src: /src/core/libntech/libutils/buffer.c:727,1
    - Dst: pcre2_get_error_message
      Src: /src/core/libntech/libutils/buffer.c:735,1
    - Dst: Log
      Src: /src/core/libntech/libutils/buffer.c:738,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/buffer.c:740,1
    - Dst: Log
      Src: /src/core/libntech/libutils/buffer.c:744,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/buffer.c:746,1
    - Dst: BufferSet
      Src: /src/core/libntech/libutils/buffer.c:749,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libntech/libutils/buffer.c:751,1
    - Dst: pcre2_code_free
      Src: /src/core/libntech/libutils/buffer.c:752,1
    - Dst: free
      Src: /src/core/libntech/libutils/buffer.c:753,1
    - Dst: free
      Src: /src/core/libntech/libutils/buffer.c:754,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 80
    argCount: 4
    argNames:
    - buffer
    - pattern
    - substitute
    - options
    argTypes:
    - Buffer*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (substitute != NULL)
      pos:
        line_end: 612
        line_start: 612
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (ret != 0)
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (buffer != NULL)
      pos:
        line_end: 610
        line_start: 610
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (false)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (pattern != NULL)
      pos:
        line_end: 611
        line_start: 611
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (options != NULL)
      pos:
        line_end: 613
        line_start: 613
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 757
      start: 608
    functionDepth: 4
    functionLinenumber: 608
    functionLinenumberEnd: 757
    functionName: BufferSearchAndReplace
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 2
    functionsReached:
    - BufferData
    - pcre2_match_data_free
    - assert
    - pcre2_match_data_create_from_pattern
    - pcre2_match
    - xrealloc
    - BufferSet
    - pcre2_substitute
    - xmalloc
    - Log
    - pcre2_compile
    - BufferSize
    - free
    - pcre2_get_error_message
    - ExpandCFESpecialReplacements
    - pcre2_code_free
    linkageType: ''
    returnType: char
    signature: "char * BufferSearchAndReplace(Buffer *buffer, const char *pattern,\n
      \                                  const char *substitute, const char *options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Buffer*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 766
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 766
    functionName: BufferClear
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 9
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void BufferClear(Buffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Buffer*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 772
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 772
    functionName: BufferSize
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 11
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t BufferSize(const Buffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Buffer*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 775
        line_start: 775
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 778
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 778
    functionName: BufferData
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 33
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *BufferData(const Buffer *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:782,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libntech/libutils/buffer.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Buffer*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 781
        line_start: 781
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 788
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 788
    functionName: BufferCanonify
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - CanonifyNameInPlace
    - assert
    linkageType: ''
    returnType: void
    signature: void BufferCanonify(Buffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Buffer*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: BufferMode
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: BufferBehavior
    signature: BufferBehavior BufferMode(const Buffer *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:798,1
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:799,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - mode
    argTypes:
    - Buffer*
    - BufferBehavior
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 797
        line_start: 797
        source_file: /src/core/libntech/libutils/buffer.c
    - condition: (mode == BUFFER_BEHAVIOR_CSTRING || mode == BUFFER_BEHAVIOR_BYTEARRAY)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 816
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 816
    functionName: BufferSetMode
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void BufferSetMode(Buffer *buffer, BufferBehavior mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:820,1
    - Dst: BufferNew
      Src: /src/core/libntech/libutils/buffer.c:822,1
    - Dst: BufferAppendChar
      Src: /src/core/libntech/libutils/buffer.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - buffer
    - filter
    - invert
    argTypes:
    - Buffer*
    - BufferFilterFn
    - bool
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 819
        line_start: 819
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 838
      start: 818
    functionDepth: 4
    functionLinenumber: 818
    functionLinenumberEnd: 838
    functionName: BufferFilter
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - BufferNew
    - assert
    - BufferAppendChar
    linkageType: ''
    returnType: Buffer
    signature: Buffer * BufferFilter(Buffer *buffer, BufferFilterFn filter, const
      bool invert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:842,1
    - Dst: BufferFilter
      Src: /src/core/libntech/libutils/buffer.c:844,1
    - Dst: BufferSet
      Src: /src/core/libntech/libutils/buffer.c:845,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/buffer.c:845,1
    - Dst: BufferSize
      Src: /src/core/libntech/libutils/buffer.c:845,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/libutils/buffer.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - filter
    - invert
    argTypes:
    - Buffer*
    - BufferFilterFn
    - bool
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 847
      start: 840
    functionDepth: 5
    functionLinenumber: 840
    functionLinenumberEnd: 847
    functionName: BufferRewrite
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - assert
    - BufferSet
    - BufferSize
    - BufferFilter
    linkageType: ''
    returnType: void
    signature: void BufferRewrite(Buffer *buffer, BufferFilterFn filter, const bool
      invert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/buffer.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - Buffer*
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 850
        line_start: 850
        source_file: /src/core/libntech/libutils/buffer.c
    constantsTouched: []
    func_position:
      end: 853
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 853
    functionName: BufferCapacity
    functionSourceFile: /src/core/libntech/libutils/buffer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t BufferCapacity(const Buffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/csv_writer.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - w
    - terminate_last_line
    argTypes:
    - Writer*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: CsvWriterOpenSpecifyTerminate
    functionSourceFile: /src/core/libntech/libutils/csv_writer.c
    functionUses: 2
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: CsvWriter
    signature: CsvWriter *CsvWriterOpenSpecifyTerminate(Writer *w, bool terminate_last_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CsvWriterOpenSpecifyTerminate
      Src: /src/core/libntech/libutils/csv_writer.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: CsvWriterOpen
    functionSourceFile: /src/core/libntech/libutils/csv_writer.c
    functionUses: 7
    functionsReached:
    - CsvWriterOpenSpecifyTerminate
    linkageType: ''
    returnType: CsvWriter
    signature: CsvWriter *CsvWriterOpen(Writer *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/csv_writer.c:62,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/csv_writer.c:70,1
    - Dst: strpbrk
      Src: /src/core/libntech/libutils/csv_writer.c:73,1
    - Dst: WriteCsvEscapedString
      Src: /src/core/libntech/libutils/csv_writer.c:75,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/csv_writer.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - csvw
    - str
    argTypes:
    - CsvWriter*
    - char*
    assertStmts:
    - condition: (csvw != NULL)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/core/libntech/libutils/csv_writer.c
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: CsvWriterField
    functionSourceFile: /src/core/libntech/libutils/csv_writer.c
    functionUses: 8
    functionsReached:
    - strpbrk
    - assert
    - WriterWriteChar
    - WriteCsvEscapedString
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void CsvWriterField(CsvWriter * csvw, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/csv_writer.c:89,1
    - Dst: CsvWriterFieldVF
      Src: /src/core/libntech/libutils/csv_writer.c:90,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/csv_writer.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - csvw
    - fmt
    argTypes:
    - CsvWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: CsvWriterFieldF
    functionSourceFile: /src/core/libntech/libutils/csv_writer.c
    functionUses: 0
    functionsReached:
    - va_end
    - CsvWriterFieldVF
    - va_start
    linkageType: ''
    returnType: void
    signature: void CsvWriterFieldF(CsvWriter * csvw, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/csv_writer.c:98,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/csv_writer.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - csvw
    argTypes:
    - CsvWriter*
    assertStmts:
    - condition: (csvw != NULL)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/core/libntech/libutils/csv_writer.c
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: CsvWriterNewRecord
    functionSourceFile: /src/core/libntech/libutils/csv_writer.c
    functionUses: 4
    functionsReached:
    - assert
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void CsvWriterNewRecord(CsvWriter * csvw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/csv_writer.c:108,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/csv_writer.c:112,1
    - Dst: free
      Src: /src/core/libntech/libutils/csv_writer.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - csvw
    argTypes:
    - CsvWriter*
    assertStmts:
    - condition: (csvw != NULL)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/core/libntech/libutils/csv_writer.c
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: CsvWriterClose
    functionSourceFile: /src/core/libntech/libutils/csv_writer.c
    functionUses: 9
    functionsReached:
    - assert
    - WriterWrite
    - free
    linkageType: ''
    returnType: void
    signature: void CsvWriterClose(CsvWriter * csvw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xvasprintf
      Src: /src/core/libntech/libutils/csv_writer.c:128,1
    - Dst: CsvWriterField
      Src: /src/core/libntech/libutils/csv_writer.c:129,1
    - Dst: free
      Src: /src/core/libntech/libutils/csv_writer.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - csvw
    - fmt
    - ap
    argTypes:
    - CsvWriter*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: CsvWriterFieldVF
    functionSourceFile: /src/core/libntech/libutils/csv_writer.c
    functionUses: 1
    functionsReached:
    - free
    - CsvWriterField
    - xvasprintf
    linkageType: ''
    returnType: void
    signature: void CsvWriterFieldVF(CsvWriter * csvw, const char *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/csv_writer.c:137,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/csv_writer.c:142,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/csv_writer.c:144,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/csv_writer.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - w
    - s
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: WriteCsvEscapedString
    functionSourceFile: /src/core/libntech/libutils/csv_writer.c
    functionUses: 1
    functionsReached:
    - WriterWriteChar
    linkageType: ''
    returnType: void
    signature: void WriteCsvEscapedString(Writer *w, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/csv_writer.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - csvw
    argTypes:
    - CsvWriter*
    assertStmts:
    - condition: (csvw != NULL)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/core/libntech/libutils/csv_writer.c
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: CsvWriterGetWriter
    functionSourceFile: /src/core/libntech/libutils/csv_writer.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Writer
    signature: Writer *CsvWriterGetWriter(CsvWriter *csvw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_stack.c:49,1
    - Dst: pthread_mutexattr_init
      Src: /src/core/libntech/libutils/threaded_stack.c:52,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_stack.c:53,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_stack.c:56,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_stack.c:59,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_stack.c:60,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_stack.c:63,1
    - Dst: pthread_mutex_init
      Src: /src/core/libntech/libutils/threaded_stack.c:64,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_stack.c:67,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_stack.c:69,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libntech/libutils/threaded_stack.c:70,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_stack.c:71,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libntech/libutils/threaded_stack.c:75,1
    - Dst: StackInit
      Src: /src/core/libntech/libutils/threaded_stack.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - initial_capacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 80
    functionName: ThreadedStackNew
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 5
    functionsReached:
    - pthread_mutexattr_settype
    - pthread_mutex_init
    - StackInit
    - pthread_mutexattr_destroy
    - xmalloc
    - Log
    - GetErrorStrFromCode
    - free
    - pthread_mutexattr_init
    linkageType: ''
    returnType: ThreadedStack
    signature: ThreadedStack *ThreadedStackNew(size_t initial_capacity, void (ItemDestroy)
      (void *item))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_stack.c:86,1
    - Dst: DestroyRange
      Src: /src/core/libntech/libutils/threaded_stack.c:87,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_stack.c:88,1
    - Dst: ThreadedStackSoftDestroy
      Src: /src/core/libntech/libutils/threaded_stack.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ThreadedStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: ThreadedStackDestroy
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 5
    functionsReached:
    - ThreadUnlock
    - ThreadLock
    - DestroyRange
    - ThreadedStackSoftDestroy
    linkageType: ''
    returnType: void
    signature: void ThreadedStackDestroy(ThreadedStack *stack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/core/libntech/libutils/threaded_stack.c:100,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_stack.c:101,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_stack.c:103,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_stack.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ThreadedStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: ThreadedStackSoftDestroy
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void ThreadedStackSoftDestroy(ThreadedStack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_stack.c:110,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_stack.c:112,1
    - Dst: StackPop
      Src: /src/core/libntech/libutils/threaded_stack.c:113,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_stack.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ThreadedStack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/core/libntech/libutils/threaded_stack.c
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: ThreadedStackPop
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 3
    functionsReached:
    - assert
    - ThreadLock
    - ThreadUnlock
    - StackPop
    linkageType: ''
    returnType: void
    signature: void *ThreadedStackPop(ThreadedStack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_stack.c:121,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_stack.c:123,1
    - Dst: StackPush
      Src: /src/core/libntech/libutils/threaded_stack.c:124,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_stack.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - stack
    - item
    argTypes:
    - ThreadedStack*
    - void*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/core/libntech/libutils/threaded_stack.c
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: ThreadedStackPush
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 4
    functionsReached:
    - assert
    - StackPush
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: void
    signature: void ThreadedStackPush(ThreadedStack *stack, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_stack.c:130,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_stack.c:132,1
    - Dst: StackPushReportCount
      Src: /src/core/libntech/libutils/threaded_stack.c:133,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_stack.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - stack
    - item
    argTypes:
    - ThreadedStack*
    - void*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/core/libntech/libutils/threaded_stack.c
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: ThreadedStackPushReportCount
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 1
    functionsReached:
    - assert
    - ThreadLock
    - StackPushReportCount
    - ThreadUnlock
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedStackPushReportCount(ThreadedStack *stack, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_stack.c:141,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_stack.c:143,1
    - Dst: StackCount
      Src: /src/core/libntech/libutils/threaded_stack.c:144,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_stack.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ThreadedStack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/core/libntech/libutils/threaded_stack.c
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: ThreadedStackCount
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 2
    functionsReached:
    - ThreadUnlock
    - assert
    - ThreadLock
    - StackCount
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedStackCount(ThreadedStack const *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_stack.c:152,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_stack.c:154,1
    - Dst: StackCapacity
      Src: /src/core/libntech/libutils/threaded_stack.c:155,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_stack.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ThreadedStack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/core/libntech/libutils/threaded_stack.c
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: ThreadedStackCapacity
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 2
    functionsReached:
    - ThreadUnlock
    - assert
    - ThreadLock
    - StackCapacity
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedStackCapacity(ThreadedStack const *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_stack.c:163,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_stack.c:165,1
    - Dst: StackIsEmpty
      Src: /src/core/libntech/libutils/threaded_stack.c:166,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_stack.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ThreadedStack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/core/libntech/libutils/threaded_stack.c
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: ThreadedStackIsEmpty
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 1
    functionsReached:
    - assert
    - ThreadLock
    - StackIsEmpty
    - ThreadUnlock
    linkageType: ''
    returnType: bool
    signature: bool ThreadedStackIsEmpty(ThreadedStack const *stack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_stack.c:174,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_stack.c:176,1
    - Dst: xmemdup
      Src: /src/core/libntech/libutils/threaded_stack.c:178,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_stack.c:179,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/threaded_stack.c:180,1
    - Dst: pthread_mutexattr_init
      Src: /src/core/libntech/libutils/threaded_stack.c:183,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_stack.c:184,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_stack.c:187,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_stack.c:190,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_stack.c:191,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_stack.c:194,1
    - Dst: pthread_mutex_init
      Src: /src/core/libntech/libutils/threaded_stack.c:195,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_stack.c:198,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_stack.c:200,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_stack.c:201,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_stack.c:202,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libntech/libutils/threaded_stack.c:206,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_stack.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - stack
    argTypes:
    - ThreadedStack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/core/libntech/libutils/threaded_stack.c
    constantsTouched: []
    func_position:
      end: 210
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 210
    functionName: ThreadedStackCopy
    functionSourceFile: /src/core/libntech/libutils/threaded_stack.c
    functionUses: 1
    functionsReached:
    - memcpy
    - ThreadLock
    - xmemdup
    - assert
    - ThreadUnlock
    - pthread_mutex_init
    - GetErrorStrFromCode
    - pthread_mutexattr_destroy
    - xmalloc
    - Log
    - pthread_mutexattr_settype
    - free
    - pthread_mutexattr_init
    linkageType: ''
    returnType: ThreadedStack
    signature: ThreadedStack *ThreadedStackCopy(ThreadedStack const *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Prefix
    - ','
    - KeyType
    - ','
    - ValueType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: TYPED_MAP_DECLARE
    functionSourceFile: /src/core/libntech/libutils/map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPED_MAP_DECLARE(Prefix, KeyType, ValueType)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - Prefix
    - ','
    - KeyType
    - ','
    - ValueType
    - ','
    - hash_fn
    - ','
    - equal_fn
    - ','
    - destroy_key_fn
    - ','
    - destroy_value_fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 224
    functionName: TYPED_MAP_DEFINE
    functionSourceFile: /src/core/libntech/libutils/map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TYPED_MAP_DEFINE(Prefix, KeyType, ValueType, hash_fn, equal_fn, \\\n
      \                        destroy_key_fn, destroy_value_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - seed
    argTypes:
    - void*
    - ARG_UNUSED unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: IdentityHashFn
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned IdentityHashFn(const void *ptr, ARG_UNUSED unsigned int seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: IdentityEqualFn
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IdentityEqualFn(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p1
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: NopDestroyFn
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NopDestroyFn(ARG_UNUSED void *p1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - map
    argTypes:
    - Map*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: IsArrayMap
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool IsArrayMap(const Map *map)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/map.c:105,1
    - Dst: ArrayMapNew
      Src: /src/core/libntech/libutils/map.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - hash_fn
    - equal_fn
    - destroy_key_fn
    - destroy_value_fn
    argTypes:
    - MapHashFn
    - MapKeyEqualFn
    - MapDestroyDataFn
    - MapDestroyDataFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 109
    functionName: MapNew
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 25
    functionsReached:
    - xcalloc
    - ArrayMapNew
    linkageType: ''
    returnType: Map
    signature: "Map *MapNew(MapHashFn hash_fn,\n            MapKeyEqualFn equal_fn,\n
      \           MapDestroyDataFn destroy_key_fn,\n            MapDestroyDataFn destroy_value_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:113,1
    - Dst: IsArrayMap
      Src: /src/core/libntech/libutils/map.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - map
    argTypes:
    - Map*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: MapSize
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 3
    functionsReached:
    - assert
    - IsArrayMap
    linkageType: ''
    returnType: size_t
    signature: size_t MapSize(const Map *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:127,1
    - Dst: HashMapNew
      Src: /src/core/libntech/libutils/map.c:129,1
    - Dst: HashMapInsert
      Src: /src/core/libntech/libutils/map.c:140,1
    - Dst: free
      Src: /src/core/libntech/libutils/map.c:145,1
    - Dst: free
      Src: /src/core/libntech/libutils/map.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - map
    argTypes:
    - Map*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 150
    functionName: ConvertToHashMap
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 0
    functionsReached:
    - assert
    - HashMapInsert
    - HashMapNew
    - free
    linkageType: ''
    returnType: void
    signature: void ConvertToHashMap(Map *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:154,1
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:156,1
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:157,1
    - Dst: IsArrayMap
      Src: /src/core/libntech/libutils/map.c:159,1
    - Dst: ArrayMapInsert
      Src: /src/core/libntech/libutils/map.c:161,1
    - Dst: ConvertToHashMap
      Src: /src/core/libntech/libutils/map.c:170,1
    - Dst: HashMapInsert
      Src: /src/core/libntech/libutils/map.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - map
    - key
    - value
    argTypes:
    - Map*
    - void*
    - void*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/core/libntech/libutils/map.c
    - condition: (key != NULL)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/core/libntech/libutils/map.c
    - condition: (value != NULL)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 5
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: MapInsert
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 21
    functionsReached:
    - ConvertToHashMap
    - assert
    - ArrayMapInsert
    - HashMapInsert
    - IsArrayMap
    linkageType: ''
    returnType: bool
    signature: bool MapInsert(Map *map, void *key, void *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:182,1
    - Dst: IsArrayMap
      Src: /src/core/libntech/libutils/map.c:184,1
    - Dst: ArrayMapGet
      Src: /src/core/libntech/libutils/map.c:186,1
    - Dst: HashMapGet
      Src: /src/core/libntech/libutils/map.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - Map*
    - void*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 192
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: MapGetRaw
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 0
    functionsReached:
    - assert
    - IsArrayMap
    - HashMapGet
    - ArrayMapGet
    linkageType: ''
    returnType: MapKeyValue
    signature: MapKeyValue *MapGetRaw(const Map *map, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:196,1
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:197,1
    - Dst: MapGetRaw
      Src: /src/core/libntech/libutils/map.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - Map*
    - void*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/core/libntech/libutils/map.c
    - condition: (key != NULL)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: MapHasKey
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 6
    functionsReached:
    - assert
    - MapGetRaw
    linkageType: ''
    returnType: bool
    signature: bool MapHasKey(const Map *map, const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:206,1
    - Dst: MapGetRaw
      Src: /src/core/libntech/libutils/map.c:207,1
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - Map*
    - void*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/core/libntech/libutils/map.c
    - condition: (kv->value != NULL)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: MapGet
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 13
    functionsReached:
    - assert
    - MapGetRaw
    linkageType: ''
    returnType: void
    signature: void *MapGet(Map *map, const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:219,1
    - Dst: IsArrayMap
      Src: /src/core/libntech/libutils/map.c:221,1
    - Dst: ArrayMapRemove
      Src: /src/core/libntech/libutils/map.c:223,1
    - Dst: HashMapRemove
      Src: /src/core/libntech/libutils/map.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - Map*
    - void*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: MapRemove
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 5
    functionsReached:
    - assert
    - IsArrayMap
    - HashMapRemove
    - ArrayMapRemove
    linkageType: ''
    returnType: bool
    signature: bool MapRemove(Map *map, const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:233,1
    - Dst: IsArrayMap
      Src: /src/core/libntech/libutils/map.c:235,1
    - Dst: ArrayMapClear
      Src: /src/core/libntech/libutils/map.c:237,1
    - Dst: HashMapClear
      Src: /src/core/libntech/libutils/map.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - map
    argTypes:
    - Map*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: MapClear
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 5
    functionsReached:
    - ArrayMapClear
    - assert
    - IsArrayMap
    - HashMapClear
    linkageType: ''
    returnType: void
    signature: void MapClear(Map *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsArrayMap
      Src: /src/core/libntech/libutils/map.c:249,1
    - Dst: ArrayMapSoftDestroy
      Src: /src/core/libntech/libutils/map.c:251,1
    - Dst: HashMapSoftDestroy
      Src: /src/core/libntech/libutils/map.c:255,1
    - Dst: free
      Src: /src/core/libntech/libutils/map.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - map
    argTypes:
    - Map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 259
    functionName: MapSoftDestroy
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 3
    functionsReached:
    - HashMapSoftDestroy
    - IsArrayMap
    - ArrayMapSoftDestroy
    - free
    linkageType: ''
    returnType: void
    signature: void MapSoftDestroy(Map *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsArrayMap
      Src: /src/core/libntech/libutils/map.c:265,1
    - Dst: ArrayMapDestroy
      Src: /src/core/libntech/libutils/map.c:267,1
    - Dst: HashMapDestroy
      Src: /src/core/libntech/libutils/map.c:271,1
    - Dst: free
      Src: /src/core/libntech/libutils/map.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - map
    argTypes:
    - Map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 275
    functionName: MapDestroy
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 23
    functionsReached:
    - free
    - IsArrayMap
    - HashMapDestroy
    - ArrayMapDestroy
    linkageType: ''
    returnType: void
    signature: void MapDestroy(Map *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:279,1
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:280,1
    - Dst: MapIteratorInit
      Src: /src/core/libntech/libutils/map.c:282,1
    - Dst: MapIteratorNext
      Src: /src/core/libntech/libutils/map.c:285,1
    - Dst: MapHasKey
      Src: /src/core/libntech/libutils/map.c:288,1
    - Dst: MapSize
      Src: /src/core/libntech/libutils/map.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - map1
    - map2
    argTypes:
    - Map*
    - Map*
    assertStmts:
    - condition: (map1 != NULL)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/core/libntech/libutils/map.c
    - condition: (map2 != NULL)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 5
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: MapContainsSameKeys
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 0
    functionsReached:
    - MapSize
    - assert
    - MapIteratorNext
    - MapHasKey
    - MapIteratorInit
    linkageType: ''
    returnType: bool
    signature: bool MapContainsSameKeys(const Map *map1, const Map *map2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:298,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/map.c:300,1
    - Dst: IsArrayMap
      Src: /src/core/libntech/libutils/map.c:302,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/map.c:304,1
    - Dst: HashMapPrintStats
      Src: /src/core/libntech/libutils/map.c:308,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/map.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - map
    - f
    argTypes:
    - Map*
    - FILE*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 312
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 312
    functionName: MapPrintStats
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 3
    functionsReached:
    - assert
    - IsArrayMap
    - HashMapPrintStats
    - fprintf
    linkageType: ''
    returnType: void
    signature: void MapPrintStats(const Map *map, FILE *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/map.c:318,1
    - Dst: IsArrayMap
      Src: /src/core/libntech/libutils/map.c:321,1
    - Dst: ArrayMapIteratorInit
      Src: /src/core/libntech/libutils/map.c:324,1
    - Dst: HashMapIteratorInit
      Src: /src/core/libntech/libutils/map.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - map
    argTypes:
    - Map*
    assertStmts:
    - condition: (map != NULL)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/core/libntech/libutils/map.c
    constantsTouched: []
    func_position:
      end: 332
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 332
    functionName: MapIteratorInit
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 6
    functionsReached:
    - ArrayMapIteratorInit
    - assert
    - HashMapIteratorInit
    - IsArrayMap
    linkageType: ''
    returnType: MapIterator
    signature: MapIterator MapIteratorInit(Map *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ArrayMapIteratorNext
      Src: /src/core/libntech/libutils/map.c:338,1
    - Dst: HashMapIteratorNext
      Src: /src/core/libntech/libutils/map.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - MapIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 344
    functionName: MapIteratorNext
    functionSourceFile: /src/core/libntech/libutils/map.c
    functionUses: 6
    functionsReached:
    - ArrayMapIteratorNext
    - HashMapIteratorNext
    linkageType: ''
    returnType: MapKeyValue
    signature: MapKeyValue *MapIteratorNext(MapIterator *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: WEXITSTATUS
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEXITSTATUS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: WIFEXITED
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIFEXITED(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: WIFSIGNALED
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIFSIGNALED(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: WTERMSIG
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WTERMSIG(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: timersub
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timersub(a, b, result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - le32uint
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: ByteSwap32
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ByteSwap32(uint32_t le32uint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 443
    functionName: le32toh
    functionSourceFile: /src/core/libntech/libutils/platform.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: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: htole32
    functionSourceFile: /src/core/libntech/libutils/platform.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: 450
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 450
    functionName: le32toh
    functionSourceFile: /src/core/libntech/libutils/platform.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: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: htole32
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: MIN
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: MAX
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: realpath
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: realpath(N,R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 637
    functionName: isfinite
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isfinite(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 705
    functionName: _stat64
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _stat64(name, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statbuf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 851
    functionName: ST_BLKSIZE
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_BLKSIZE(statbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statbuf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 852
    functionName: ST_NBLOCKS
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_NBLOCKS(statbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statbuf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 853
    functionName: ST_NBYTES
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_NBYTES(statbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statbuf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 859
    functionName: ST_BLKSIZE
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_BLKSIZE(statbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statbuf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 861
    functionName: ST_NBLOCKS
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_NBLOCKS(statbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statbuf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 864
    functionName: ST_NBYTES
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_NBYTES(statbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statbuf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 868
    functionName: ST_NBYTES
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ST_NBYTES(statbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 910
    functionName: S_ISREG
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 913
    functionName: S_ISDIR
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 916
    functionName: S_ISLNK
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 919
    functionName: S_ISFIFO
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISFIFO(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 922
    functionName: S_ISCHR
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISCHR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 925
    functionName: S_ISBLK
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISBLK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 928
    functionName: S_ISSOCK
    functionSourceFile: /src/core/libntech/libutils/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/core/libntech/libutils/logging.c:62,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/logging.c:68,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/logging.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: LoggingInitializeOnce
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - pthread_key_create
    - fprintf
    linkageType: ''
    returnType: void
    signature: void LoggingInitializeOnce(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/core/libntech/libutils/logging.c:75,1
    - Dst: pthread_getspecific
      Src: /src/core/libntech/libutils/logging.c:76,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/logging.c:79,1
    - Dst: pthread_setspecific
      Src: /src/core/libntech/libutils/logging.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: GetCurrentThreadContext
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - pthread_setspecific
    - pthread_getspecific
    - pthread_once
    linkageType: ''
    returnType: LoggingContext
    signature: LoggingContext *GetCurrentThreadContext(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/core/libntech/libutils/logging.c:91,1
    - Dst: pthread_getspecific
      Src: /src/core/libntech/libutils/logging.c:92,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libntech/libutils/logging.c:98,1
    - Dst: pthread_setspecific
      Src: /src/core/libntech/libutils/logging.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: LoggingFreeCurrentThreadContext
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - pthread_setspecific
    - pthread_getspecific
    - pthread_once
    linkageType: ''
    returnType: void
    signature: void LoggingFreeCurrentThreadContext(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libntech/libutils/logging.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: LoggingSetAgentType
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 1
    functionsReached:
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void LoggingSetAgentType(const char *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: LoggingEnableTimestamps
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LoggingEnableTimestamps(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadContext
      Src: /src/core/libntech/libutils/logging.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pctx
    argTypes:
    - LoggingPrivContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: LoggingPrivSetContext
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadContext
    linkageType: ''
    returnType: void
    signature: void LoggingPrivSetContext(LoggingPrivContext *pctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadContext
      Src: /src/core/libntech/libutils/logging.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: LoggingPrivGetContext
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadContext
    linkageType: ''
    returnType: LoggingPrivContext
    signature: LoggingPrivContext *LoggingPrivGetContext(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadContext
      Src: /src/core/libntech/libutils/logging.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - log_level
    - report_level
    argTypes:
    - LogLevel
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: LoggingPrivSetLevels
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadContext
    linkageType: ''
    returnType: void
    signature: void LoggingPrivSetLevels(LogLevel log_level, LogLevel report_level)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/logging.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - level
    argTypes:
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: LogLevelToString
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *LogLevelToString(LogLevel level)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SafeStringLength
      Src: /src/core/libntech/libutils/logging.c:158,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/libutils/logging.c:163,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/libutils/logging.c:167,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/libutils/logging.c:171,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/libutils/logging.c:175,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/libutils/logging.c:179,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/libutils/logging.c:183,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/libutils/logging.c:187,1
    - Dst: StringEqualN_IgnoreCase
      Src: /src/core/libntech/libutils/logging.c:191,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - level
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 196
    functionName: LogLevelFromString
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 1
    functionsReached:
    - StringEqualN_IgnoreCase
    - SafeStringLength
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel LogLevelFromString(const char *const level)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/logging.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - level
    argTypes:
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: LogLevelToColor
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *LogLevelToColor(LogLevel level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strftime
      Src: /src/core/libntech/libutils/logging.c:225,1
    - Dst: strlcpy
      Src: /src/core/libntech/libutils/logging.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - n
    - timestamp
    argTypes:
    - char[]
    - size_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 231
    functionName: LoggingFormatTimestamp
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - strftime
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool LoggingFormatTimestamp(char dest[64], size_t n, struct tm *timestamp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/libntech/libutils/logging.c:236,1
    - Dst: localtime_r
      Src: /src/core/libntech/libutils/logging.c:237,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/logging.c:241,1
    - Dst: LogLevelToColor
      Src: /src/core/libntech/libutils/logging.c:241,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/logging.c:245,1
    - Dst: LoggingFormatTimestamp
      Src: /src/core/libntech/libutils/logging.c:250,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/logging.c:251,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/logging.c:254,1
    - Dst: LogLevelToString
      Src: /src/core/libntech/libutils/logging.c:254,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/logging.c:259,1
    - Dst: fflush
      Src: /src/core/libntech/libutils/logging.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - msg
    - level
    - color
    argTypes:
    - char*
    - LogLevel
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 263
    functionName: LogToConsole
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - fflush
    - LogLevelToColor
    - localtime_r
    - LoggingFormatTimestamp
    - LogLevelToString
    - fprintf
    - time
    linkageType: ''
    returnType: void
    signature: void LogToConsole(const char *msg, LogLevel level, bool color)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/logging.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - level
    argTypes:
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 282
    functionName: LogLevelToSyslogPriority
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: int
    signature: int LogLevelToSyslogPriority(LogLevel level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libntech/libutils/logging.c:287,1
    - Dst: syslog
      Src: /src/core/libntech/libutils/logging.c:288,1
    - Dst: LogLevelToSyslogPriority
      Src: /src/core/libntech/libutils/logging.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - level
    argTypes:
    - char*
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: LogToSystemLog
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - LogLevelToSyslogPriority
    - syslog
    - snprintf
    linkageType: ''
    returnType: void
    signature: void LogToSystemLog(const char *msg, LogLevel level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/logging.c:296,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/logging.c:299,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/logging.c:300,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/logging.c:300,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/logging.c:301,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/logging.c:303,1
    - Dst: StringFormat
      Src: /src/core/libntech/libutils/logging.c:304,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/logging.c:305,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/logging.c:309,1
    - Dst: StringVFormat
      Src: /src/core/libntech/libutils/logging.c:310,1
    - Dst: StringFormat
      Src: /src/core/libntech/libutils/logging.c:311,1
    - Dst: free
      Src: /src/core/libntech/libutils/logging.c:312,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/logging.c:313,1
    - Dst: LogLevelToSyslogPriority
      Src: /src/core/libntech/libutils/logging.c:316,1
    - Dst: StringFormat
      Src: /src/core/libntech/libutils/logging.c:317,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/logging.c:318,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/logging.c:320,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/logging.c:324,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/logging.c:325,1
    - Dst: sd_journal_sendv
      Src: /src/core/libntech/libutils/logging.c:328,1
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:329,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/logging.c:330,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/logging.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 332
      start: 293
    functionDepth: 4
    functionLinenumber: 293
    functionLinenumberEnd: 332
    functionName: LogToSystemLogStructured
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - sd_journal_sendv
    - SeqDestroy
    - StringVFormat
    - va_start
    - strlen
    - LogLevelToSyslogPriority
    - assert
    - va_end
    - SeqNew
    - SeqLength
    - StringFormat
    - va_arg
    - free
    - SeqAt
    - StringEqual
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void LogToSystemLogStructured(const int level, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/logging.c:337,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/logging.c:339,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/logging.c:339,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/logging.c:340,1
    - Dst: va_arg
      Src: /src/core/libntech/libutils/logging.c:345,1
    - Dst: StringVFormat
      Src: /src/core/libntech/libutils/logging.c:346,1
    - Dst: LogToSystemLog
      Src: /src/core/libntech/libutils/logging.c:347,1
    - Dst: free
      Src: /src/core/libntech/libutils/logging.c:348,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/logging.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 334
    functionDepth: 5
    functionLinenumber: 334
    functionLinenumberEnd: 350
    functionName: LogToSystemLogStructured
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - StringVFormat
    - va_start
    - va_end
    - va_arg
    - free
    - LogToSystemLog
    - StringEqual
    linkageType: ''
    returnType: void
    signature: void LogToSystemLogStructured(const int level, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:358,1
    - Dst: LogToSystemLogStructured
      Src: /src/core/libntech/libutils/logging.c:361,1
    - Dst: LogToSystemLogStructured
      Src: /src/core/libntech/libutils/logging.c:364,1
    - Dst: LogToSystemLogStructured
      Src: /src/core/libntech/libutils/logging.c:367,1
    - Dst: LogToSystemLogStructured
      Src: /src/core/libntech/libutils/logging.c:370,1
    - Dst: LogToSystemLogStructured
      Src: /src/core/libntech/libutils/logging.c:373,1
    - Dst: LogToSystemLogStructured
      Src: /src/core/libntech/libutils/logging.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (false)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 377
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 377
    functionName: __ImproperUseOfLogToSystemLogStructured
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - assert
    - LogToSystemLogStructured
    linkageType: ''
    returnType: void
    signature: void __ImproperUseOfLogToSystemLogStructured(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/core/libntech/libutils/logging.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error_code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: GetErrorStrFromCode
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 8
    functionsReached:
    - strerror
    linkageType: ''
    returnType: char
    signature: char *GetErrorStrFromCode(int error_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/core/libntech/libutils/logging.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: GetErrorStr
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 40
    functionsReached:
    - strerror
    linkageType: ''
    returnType: char
    signature: char *GetErrorStr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/libutils/logging.c:397,1
    - Dst: FormatMessage
      Src: /src/core/libntech/libutils/logging.c:399,1
    - Dst: MAKELANGID
      Src: /src/core/libntech/libutils/logging.c:400,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/logging.c:403,1
    - Dst: strcpy
      Src: /src/core/libntech/libutils/logging.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - error_code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 410
    functionName: GetErrorStrFromCode
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 8
    functionsReached:
    - MAKELANGID
    - strlen
    - FormatMessage
    - strcpy
    - memset
    linkageType: ''
    returnType: char
    signature: char *GetErrorStrFromCode(int error_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/logging.c:414,1
    - Dst: GetLastError
      Src: /src/core/libntech/libutils/logging.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: GetErrorStr
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 40
    functionsReached:
    - GetLastError
    - GetErrorStrFromCode
    linkageType: ''
    returnType: char
    signature: char *GetErrorStr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadContext
      Src: /src/core/libntech/libutils/logging.c:420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 430
    functionName: WouldLog
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadContext
    linkageType: ''
    returnType: bool
    signature: bool WouldLog(LogLevel level)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadContext
      Src: /src/core/libntech/libutils/logging.c:441,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/logging.c:459,1
    - Dst: StringVFormat
      Src: /src/core/libntech/libutils/logging.c:463,1
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:470,1
    - Dst: Log
      Src: /src/core/libntech/libutils/logging.c:475,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/logging.c:479,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/logging.c:483,1
    - Dst: LoggingContext*::pctx::log_hook
      Src: /src/core/libntech/libutils/logging.c:499,1
    - Dst: LogToConsole
      Src: /src/core/libntech/libutils/logging.c:508,1
    - Dst: LogToSystemLogStructured
      Src: /src/core/libntech/libutils/logging.c:512,1
    - Dst: free
      Src: /src/core/libntech/libutils/logging.c:517,1
    - Dst: free
      Src: /src/core/libntech/libutils/logging.c:519,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 4
    argNames:
    - level
    - fmt_msg
    - ap
    - no_format
    argTypes:
    - LogLevel
    - char*
    - va_list
    - bool
    assertStmts:
    - condition: (log_buffer != NULL)
      pos:
        line_end: 469
        line_start: 469
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 520
      start: 439
    functionDepth: 5
    functionLinenumber: 439
    functionLinenumberEnd: 520
    functionName: VLogNoFormat
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - LogToConsole
    - LogToSystemLogStructured
    - StringVFormat
    - GetCurrentThreadContext
    - assert
    - xmalloc
    - Log
    - xstrdup
    - LoggingContext*::pctx::log_hook
    - free
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void VLogNoFormat(LogLevel level, const char *fmt_msg, va_list ap,
      bool no_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VLogNoFormat
      Src: /src/core/libntech/libutils/logging.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - level
    - fmt
    - ap
    argTypes:
    - LogLevel
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 522
    functionDepth: 6
    functionLinenumber: 522
    functionLinenumberEnd: 525
    functionName: VLog
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - VLogNoFormat
    linkageType: ''
    returnType: void
    signature: void VLog(LogLevel level, const char *fmt, va_list ap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: debug_abort_if_reached
      Src: /src/core/libntech/libutils/logging.c:536,1
    - Dst: GetCurrentThreadContext
      Src: /src/core/libntech/libutils/logging.c:540,1
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:545,1
    - Dst: isprint
      Src: /src/core/libntech/libutils/logging.c:549,1
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:551,1
    - Dst: Log
      Src: /src/core/libntech/libutils/logging.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - level
    - prefix
    - buf
    - buflen
    argTypes:
    - LogLevel
    - char*
    - void*
    - size_t
    assertStmts:
    - condition: (i < sizeof(dst))
      pos:
        line_end: 550
        line_start: 550
        source_file: /src/core/libntech/libutils/logging.c
    - condition: (buflen < sizeof(dst))
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 557
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 557
    functionName: LogRaw
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadContext
    - assert
    - Log
    - isprint
    - debug_abort_if_reached
    linkageType: ''
    returnType: void
    signature: void LogRaw(LogLevel level, const char *prefix, const void *buf, size_t
      buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/logging.c:562,1
    - Dst: VLog
      Src: /src/core/libntech/libutils/logging.c:563,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/logging.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - level
    - fmt
    argTypes:
    - LogLevel
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 559
    functionDepth: 7
    functionLinenumber: 559
    functionLinenumberEnd: 565
    functionName: Log
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 137
    functionsReached:
    - VLog
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void Log(LogLevel level, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/logging.c:585,1
    - Dst: VLogNoFormat
      Src: /src/core/libntech/libutils/logging.c:586,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/logging.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - level
    - msg
    argTypes:
    - LogLevel
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 582
    functionDepth: 6
    functionLinenumber: 582
    functionLinenumberEnd: 588
    functionName: LogNoFormat
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 2
    functionsReached:
    - va_end
    - VLogNoFormat
    - va_start
    linkageType: ''
    returnType: void
    signature: void LogNoFormat(LogLevel level, const char *msg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libntech/libutils/logging.c:608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 615
    functionName: LogModuleFromString
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum LogModule
    signature: enum LogModule LogModuleFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - enum LogModule
    assertStmts:
    - condition: (mod < LOG_MOD_MAX)
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 622
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 622
    functionName: LogEnableModule
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void LogEnableModule(enum LogModule mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/libntech/libutils/logging.c:626,1
    - Dst: printf
      Src: /src/core/libntech/libutils/logging.c:627,1
    - Dst: printf
      Src: /src/core/libntech/libutils/logging.c:628,1
    - Dst: printf
      Src: /src/core/libntech/libutils/logging.c:631,1
    - Dst: printf
      Src: /src/core/libntech/libutils/logging.c:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 634
    functionName: LogModuleHelp
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void LogModuleHelp(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/core/libntech/libutils/logging.c:655,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/logging.c:660,1
    - Dst: LogModuleHelp
      Src: /src/core/libntech/libutils/logging.c:662,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/logging.c:665,1
    - Dst: LogEnableModule
      Src: /src/core/libntech/libutils/logging.c:669,1
    - Dst: LogModuleFromString
      Src: /src/core/libntech/libutils/logging.c:674,1
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:676,1
    - Dst: Log
      Src: /src/core/libntech/libutils/logging.c:679,1
    - Dst: LogEnableModule
      Src: /src/core/libntech/libutils/logging.c:685,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (mod < LOG_MOD_MAX)
      pos:
        line_end: 675
        line_start: 675
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 696
      start: 647
    functionDepth: 8
    functionLinenumber: 647
    functionLinenumberEnd: 696
    functionName: LogEnableModulesFromString
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 2
    functionsReached:
    - LogModuleFromString
    - assert
    - strchrnul
    - Log
    - LogModuleHelp
    - strcmp
    - LogEnableModule
    linkageType: ''
    returnType: bool
    signature: bool LogEnableModulesFromString(char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:700,1
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mod
    argTypes:
    - enum LogModule
    assertStmts:
    - condition: (mod > LOG_MOD_NONE)
      pos:
        line_end: 699
        line_start: 699
        source_file: /src/core/libntech/libutils/logging.c
    - condition: (mod < LOG_MOD_MAX)
      pos:
        line_end: 700
        line_start: 700
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 711
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 711
    functionName: LogModuleEnabled
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool LogModuleEnabled(enum LogModule mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:715,1
    - Dst: nt_static_assert
      Src: /src/core/libntech/libutils/logging.c:718,1
    - Dst: LogModuleEnabled
      Src: /src/core/libntech/libutils/logging.c:720,1
    - Dst: va_start
      Src: /src/core/libntech/libutils/logging.c:723,1
    - Dst: VLog
      Src: /src/core/libntech/libutils/logging.c:724,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/logging.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - mod
    - fmt
    argTypes:
    - enum LogModule
    - char*
    assertStmts:
    - condition: (mod < LOG_MOD_MAX)
      pos:
        line_end: 714
        line_start: 714
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 729
      start: 713
    functionDepth: 7
    functionLinenumber: 713
    functionLinenumberEnd: 729
    functionName: LogDebug
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - nt_static_assert
    - va_start
    - assert
    - va_end
    - VLog
    - LogModuleEnabled
    linkageType: ''
    returnType: void
    signature: void LogDebug(enum LogModule mod, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LoggingPrivSetLevels
      Src: /src/core/libntech/libutils/logging.c:737,1
    - Dst: LoggingPrivSetLevels
      Src: /src/core/libntech/libutils/logging.c:741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - level
    argTypes:
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 743
    functionName: LogSetGlobalLevel
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 10
    functionsReached:
    - LoggingPrivSetLevels
    linkageType: ''
    returnType: void
    signature: void LogSetGlobalLevel(LogLevel level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LogLevelFromString
      Src: /src/core/libntech/libutils/logging.c:747,1
    - Dst: fprintf
      Src: /src/core/libntech/libutils/logging.c:753,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/logging.c:754,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/libntech/libutils/logging.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 745
    functionDepth: 5
    functionLinenumber: 745
    functionLinenumberEnd: 757
    functionName: LogSetGlobalLevelArgOrExit
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 3
    functionsReached:
    - DoCleanupAndExit
    - LogSetGlobalLevel
    - LogLevelFromString
    - fprintf
    linkageType: ''
    returnType: void
    signature: void LogSetGlobalLevelArgOrExit(const char *const arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 762
    functionName: LogGetGlobalLevel
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel LogGetGlobalLevel(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:767,1
    - Dst: LoggingPrivSetLevels
      Src: /src/core/libntech/libutils/logging.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - level
    argTypes:
    - LogLevel
    assertStmts:
    - condition: (level != LOG_LEVEL_NOTHING)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 771
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 771
    functionName: LogSetGlobalSystemLogLevel
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - assert
    - LoggingPrivSetLevels
    linkageType: ''
    returnType: void
    signature: void LogSetGlobalSystemLogLevel(LogLevel level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoggingPrivSetLevels
      Src: /src/core/libntech/libutils/logging.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: LogUnsetGlobalSystemLogLevel
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - LoggingPrivSetLevels
    linkageType: ''
    returnType: void
    signature: void LogUnsetGlobalSystemLogLevel(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 782
    functionName: LogGetGlobalSystemLogLevel
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel LogGetGlobalSystemLogLevel(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadContext
      Src: /src/core/libntech/libutils/logging.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 788
    functionName: LoggingSetColor
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 1
    functionsReached:
    - GetCurrentThreadContext
    linkageType: ''
    returnType: void
    signature: void LoggingSetColor(bool enabled)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 810
    functionName: byte_magnitude
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long byte_magnitude(long bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 834
    functionName: byte_unit
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *byte_unit(long bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/logging.c:840,1
    - Dst: free
      Src: /src/core/libntech/libutils/logging.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - LogEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 843
    functionName: LogEntryDestroy
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void LogEntryDestroy(LogEntry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:847,1
    - Dst: Log
      Src: /src/core/libntech/libutils/logging.c:852,1
    - Dst: DiscardLogBuffer
      Src: /src/core/libntech/libutils/logging.c:853,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/logging.c:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - min_level
    - max_level
    argTypes:
    - LogLevel
    - LogLevel
    assertStmts:
    - condition: ((log_buffer == NULL) && (!logging_into_buffer))
      pos:
        line_end: 846
        line_start: 846
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 860
      start: 845
    functionDepth: 8
    functionLinenumber: 845
    functionLinenumberEnd: 860
    functionName: StartLoggingIntoBuffer
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - assert
    - Log
    - SeqNew
    - DiscardLogBuffer
    linkageType: ''
    returnType: void
    signature: void StartLoggingIntoBuffer(LogLevel min_level, LogLevel max_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/logging.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 867
    functionName: DiscardLogBuffer
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 1
    functionsReached:
    - SeqDestroy
    linkageType: ''
    returnType: void
    signature: void DiscardLogBuffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:871,1
    - Dst: assert
      Src: /src/core/libntech/libutils/logging.c:872,1
    - Dst: Log
      Src: /src/core/libntech/libutils/logging.c:877,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/logging.c:884,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/logging.c:887,1
    - Dst: LogNoFormat
      Src: /src/core/libntech/libutils/logging.c:888,1
    - Dst: DiscardLogBuffer
      Src: /src/core/libntech/libutils/logging.c:891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (logging_into_buffer)
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/core/libntech/libutils/logging.c
    - condition: (log_buffer != NULL)
      pos:
        line_end: 871
        line_start: 871
        source_file: /src/core/libntech/libutils/logging.c
    constantsTouched: []
    func_position:
      end: 892
      start: 869
    functionDepth: 8
    functionLinenumber: 869
    functionLinenumberEnd: 892
    functionName: CommitLogBuffer
    functionSourceFile: /src/core/libntech/libutils/logging.c
    functionUses: 0
    functionsReached:
    - DiscardLogBuffer
    - LogNoFormat
    - assert
    - Log
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void CommitLogBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: NULL_OR_EMPTY
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NULL_OR_EMPTY(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: NOT_NULL_AND_EMPTY
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_NULL_AND_EMPTY(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - start
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: STARTSWITH
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STARTSWITH(str,start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: SAFENULL
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAFENULL(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: EMPTY_STRING_TO_NULL
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMPTY_STRING_TO_NULL(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: NULL_TO_EMPTY_STRING
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NULL_TO_EMPTY_STRING(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: CharIsPrintableAscii
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CharIsPrintableAscii(const char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/core/libntech/libutils/string_lib.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: StringContains
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 2
    functionsReached:
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool StringContains(const char *const haystack, const char *const needle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libutils/string_lib.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: StringContainsChar
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: bool
    signature: bool StringContainsChar(const char *const haystack, const char needle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.h:150,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.h:151,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_lib.h:154,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/string_lib.h:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - str
    - array
    - n_items
    argTypes:
    - char*
    - char**
    - size_t
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/core/libntech/libutils/string_lib.h
    - condition: (array[i] != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/core/libntech/libutils/string_lib.h
    - condition: (array != NULL)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/core/libntech/libutils/string_lib.h
    constantsTouched: []
    func_position:
      end: 161
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: IsStringInArray
    functionSourceFile: /src/core/libntech/libutils/string_lib.h
    functionUses: 1
    functionsReached:
    - assert
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: "bool IsStringInArray(\n    const char *const str, const char *const
      *const array, const size_t n_items)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/core/libntech/libutils/cleanup.c:40,1
    - Dst: free
      Src: /src/core/libntech/libutils/cleanup.c:48,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libntech/libutils/cleanup.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: CallCleanupFunctions
    functionSourceFile: /src/core/libntech/libutils/cleanup.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_lock
    - free
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void CallCleanupFunctions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CallCleanupFunctions
      Src: /src/core/libntech/libutils/cleanup.c:58,1
    - Dst: exit
      Src: /src/core/libntech/libutils/cleanup.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: DoCleanupAndExit
    functionSourceFile: /src/core/libntech/libutils/cleanup.c
    functionUses: 15
    functionsReached:
    - CallCleanupFunctions
    - exit
    linkageType: ''
    returnType: void
    signature: void DoCleanupAndExit(int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/core/libntech/libutils/cleanup.c:64,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/cleanup.c:66,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libntech/libutils/cleanup.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fn
    argTypes:
    - CleanupFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: RegisterCleanupFunction
    functionSourceFile: /src/core/libntech/libutils/cleanup.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void RegisterCleanupFunction(CleanupFn fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Prefix
    - ','
    - ElementType
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: TYPED_SET_DECLARE
    functionSourceFile: /src/core/libntech/libutils/set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPED_SET_DECLARE(Prefix, ElementType)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - Prefix
    - ','
    - ElementType
    - ','
    - hash_fn
    - ','
    - equal_fn
    - ','
    - destroy_fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 137
    functionName: TYPED_SET_DEFINE
    functionSourceFile: /src/core/libntech/libutils/set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPED_SET_DEFINE(Prefix, ElementType, hash_fn, equal_fn, destroy_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.h:158,1
    - Dst: assert
      Src: /src/core/libntech/libutils/set.h:159,1
    - Dst: va_start
      Src: /src/core/libntech/libutils/set.h:162,1
    - Dst: xvasprintf
      Src: /src/core/libntech/libutils/set.h:165,1
    - Dst: assert
      Src: /src/core/libntech/libutils/set.h:166,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/set.h:168,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/libutils/set.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - set
    - fmt
    argTypes:
    - StringSet*
    - char*
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/core/libntech/libutils/set.h
    - condition: (fmt != NULL)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/core/libntech/libutils/set.h
    - condition: (ret >= 0)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/core/libntech/libutils/set.h
    constantsTouched: []
    func_position:
      end: 170
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 170
    functionName: StringSetAddF
    functionSourceFile: /src/core/libntech/libutils/set.h
    functionUses: 1
    functionsReached:
    - va_start
    - assert
    - va_end
    - xvasprintf
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void StringSetAddF(StringSet *const set, const char *const fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: IsSpace
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSpace(char c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:65,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:66,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:67,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:68,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:69,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:71,1
    - Dst: IsSpace
      Src: /src/core/libntech/libutils/mustache.c:76,1
    - Dst: IsSpace
      Src: /src/core/libntech/libutils/mustache.c:99,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:128,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 5
    argNames:
    - start
    - tag_start
    - tag_end
    - line_begin
    - line_end
    argTypes:
    - char*
    - char*
    - char*
    - char**
    - char**
    assertStmts:
    - condition: (start != NULL)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/core/libntech/libutils/mustache.c
    - condition: (tag_end != NULL)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/core/libntech/libutils/mustache.c
    - condition: (line_begin != NULL)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/core/libntech/libutils/mustache.c
    - condition: (line_end != NULL)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/core/libntech/libutils/mustache.c
    - condition: (tag_start != NULL)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/core/libntech/libutils/mustache.c
    - condition: (start <= tag_start)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/core/libntech/libutils/mustache.c
    - condition: (*line_end)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/core/libntech/libutils/mustache.c
    constantsTouched: []
    func_position:
      end: 131
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 131
    functionName: IsTagStandalone
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - assert
    - IsSpace
    linkageType: ''
    returnType: bool
    signature: bool IsTagStandalone(const char *start, const char *tag_start, const
      char *tag_end, const char **line_begin, const char **line_end)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - type
    argTypes:
    - TagType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: IsTagTypeRenderable
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTagTypeRenderable(TagType type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:151,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/mustache.c:151,1
    - Dst: StringCountTokens
      Src: /src/core/libntech/libutils/mustache.c:153,1
    - Dst: StringGetToken
      Src: /src/core/libntech/libutils/mustache.c:157,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/mustache.c:158,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/mustache.c:160,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/mustache.c:162,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/mustache.c:165,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/mustache.c:167,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/mustache.c:173,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/libutils/mustache.c:175,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:183,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/mustache.c:193,1
    - Dst: StringGetToken
      Src: /src/core/libntech/libutils/mustache.c:198,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/mustache.c:199,1
    - Dst: JsonObjectGet
      Src: /src/core/libntech/libutils/mustache.c:200,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:201,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:209,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - hash_stack
    - name
    - name_len
    argTypes:
    - Seq*
    - char*
    - size_t
    assertStmts:
    - condition: (SeqLength(hash_stack) > 0)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/core/libntech/libutils/mustache.c
    - condition: (base_var)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/core/libntech/libutils/mustache.c
    constantsTouched: []
    func_position:
      end: 211
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 211
    functionName: LookupVariable
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - StringCountTokens
    - assert
    - StringGetToken
    - strcmp
    - free
    - SeqLength
    - JsonObjectGet
    - xstrndup
    - JsonGetType
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *LookupVariable(Seq *hash_stack, const char *name, size_t
      name_len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/core/libntech/libutils/mustache.c:220,1
    - Dst: strstr
      Src: /src/core/libntech/libutils/mustache.c:274,1
    - Dst: strncmp
      Src: /src/core/libntech/libutils/mustache.c:275,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:277,1
    - Dst: strstr
      Src: /src/core/libntech/libutils/mustache.c:287,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:290,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 5
    argNames:
    - input
    - delim_start
    - delim_start_len
    - delim_end
    - delim_end_len
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 213
    functionDepth: 8
    functionLinenumber: 213
    functionLinenumberEnd: 313
    functionName: NextTag
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - strstr
    - strncmp
    - Log
    linkageType: ''
    returnType: Mustache
    signature: "Mustache NextTag(const char *input,\n                        const
      char *delim_start, size_t delim_start_len,\n                        const char
      *delim_end, size_t delim_end_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:322,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:326,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:330,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:334,1
    - Dst: BufferAppendChar
      Src: /src/core/libntech/libutils/mustache.c:338,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - out
    - input
    - len
    argTypes:
    - Buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 315
    functionDepth: 4
    functionLinenumber: 315
    functionLinenumberEnd: 342
    functionName: RenderHTMLContent
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - BufferAppendChar
    - BufferAppendString
    linkageType: ''
    returnType: void
    signature: void RenderHTMLContent(Buffer *out, const char *input, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RenderHTMLContent
      Src: /src/core/libntech/libutils/mustache.c:353,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/mustache.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - out
    - content
    - len
    - html
    - skip_content
    argTypes:
    - Buffer*
    - char*
    - size_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 359
    functionName: RenderContent
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - RenderHTMLContent
    - BufferAppend
    linkageType: ''
    returnType: void
    signature: void RenderContent(Buffer *out, const char *content, size_t len, bool
      html, bool skip_content)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RenderHTMLContent
      Src: /src/core/libntech/libutils/mustache.c:367,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/mustache.c:367,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:371,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libntech/libutils/mustache.c:376,1
    - Dst: RenderHTMLContent
      Src: /src/core/libntech/libutils/mustache.c:381,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/libutils/mustache.c:381,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/mustache.c:381,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/libutils/mustache.c:381,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:385,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libntech/libutils/mustache.c:385,1
    - Dst: StringFromLong
      Src: /src/core/libntech/libutils/mustache.c:391,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/libntech/libutils/mustache.c:391,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:392,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:393,1
    - Dst: StringFromDouble
      Src: /src/core/libntech/libutils/mustache.c:399,1
    - Dst: JsonPrimitiveGetAsReal
      Src: /src/core/libntech/libutils/mustache.c:399,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:400,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:401,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:406,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libntech/libutils/mustache.c:406,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 4
    argNames:
    - out
    - primitive
    - escaped
    - json_key
    argTypes:
    - Buffer*
    - JsonElement*
    - bool
    - char*
    assertStmts:
    - condition: (!"Unrecognised JSON primitive type")
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/core/libntech/libutils/mustache.c
    constantsTouched: []
    func_position:
      end: 416
      start: 361
    functionDepth: 5
    functionLinenumber: 361
    functionLinenumberEnd: 416
    functionName: RenderVariablePrimitive
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - JsonPrimitiveGetAsBool
    - JsonPrimitiveGetAsInteger
    - strlen
    - JsonPrimitiveGetAsReal
    - assert
    - RenderHTMLContent
    - StringFromDouble
    - StringFromLong
    - JsonPrimitiveGetAsString
    - free
    - JsonGetPrimitiveType
    - BufferAppendString
    linkageType: ''
    returnType: bool
    signature: bool RenderVariablePrimitive(Buffer *out, const JsonElement *primitive,
      const bool escaped, const char* json_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/mustache.c:420,1
    - Dst: JsonWriteCompact
      Src: /src/core/libntech/libutils/mustache.c:423,1
    - Dst: JsonWrite
      Src: /src/core/libntech/libutils/mustache.c:427,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:430,1
    - Dst: StringWriterData
      Src: /src/core/libntech/libutils/mustache.c:430,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/mustache.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - out
    - container
    - compact
    argTypes:
    - Buffer*
    - JsonElement*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 418
    functionDepth: 7
    functionLinenumber: 418
    functionLinenumberEnd: 433
    functionName: RenderVariableContainer
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - StringWriter
    - JsonWriteCompact
    - StringWriterData
    - JsonWrite
    - BufferAppendString
    linkageType: ''
    returnType: bool
    signature: bool RenderVariableContainer(Buffer *out, const JsonElement *container,
      bool compact)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/libntech/libutils/mustache.c:446,1
    - Dst: strncmp
      Src: /src/core/libntech/libutils/mustache.c:447,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/mustache.c:451,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/mustache.c:451,1
    - Dst: LookupVariable
      Src: /src/core/libntech/libutils/mustache.c:464,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:469,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/mustache.c:478,1
    - Dst: RenderVariablePrimitive
      Src: /src/core/libntech/libutils/mustache.c:482,1
    - Dst: RenderVariableContainer
      Src: /src/core/libntech/libutils/mustache.c:487,1
    - Dst: RenderVariablePrimitive
      Src: /src/core/libntech/libutils/mustache.c:493,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:502,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:509,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 6
    argNames:
    - out
    - content
    - content_len
    - conversion
    - hash_stack
    - json_key
    argTypes:
    - Buffer*
    - char*
    - size_t
    - TagType
    - Seq*
    - char*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/core/libntech/libutils/mustache.c
    constantsTouched: []
    func_position:
      end: 511
      start: 435
    functionDepth: 8
    functionLinenumber: 435
    functionLinenumberEnd: 511
    functionName: RenderVariable
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - strncmp
    - assert
    - JsonGetElementType
    - LookupVariable
    - RenderVariableContainer
    - Log
    - RenderVariablePrimitive
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: "bool RenderVariable(Buffer *out,\n                           const
      char *content, size_t content_len,\n                           TagType conversion,\n
      \                          Seq *hash_stack,\n                           const
      char *json_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringCountTokens
      Src: /src/core/libntech/libutils/mustache.c:517,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:520,1
    - Dst: StringGetToken
      Src: /src/core/libntech/libutils/mustache.c:525,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:528,1
    - Dst: strncpy
      Src: /src/core/libntech/libutils/mustache.c:532,1
    - Dst: StringGetToken
      Src: /src/core/libntech/libutils/mustache.c:536,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:539,1
    - Dst: strncpy
      Src: /src/core/libntech/libutils/mustache.c:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 6
    argNames:
    - content
    - content_len
    - delim_start
    - delim_start_len
    - delim_end
    - delim_end_len
    argTypes:
    - char*
    - size_t
    - char*
    - size_t*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 513
    functionDepth: 8
    functionLinenumber: 513
    functionLinenumberEnd: 548
    functionName: SetDelimiters
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - StringGetToken
    - Log
    - strncpy
    - StringCountTokens
    linkageType: ''
    returnType: bool
    signature: "bool SetDelimiters(const char *content, size_t content_len,\n                          char
      *delim_start, size_t *delim_start_len,\n                          char *delim_end,
      size_t *delim_end_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: StringStartsWith
      Src: /src/core/libntech/libutils/mustache.c:559,1
    - Dst: StringStartsWith
      Src: /src/core/libntech/libutils/mustache.c:561,1
    - Dst: StringStartsWith
      Src: /src/core/libntech/libutils/mustache.c:575,1
    - Dst: StringStartsWith
      Src: /src/core/libntech/libutils/mustache.c:576,1
    - Dst: StringStartsWith
      Src: /src/core/libntech/libutils/mustache.c:577,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/mustache.c:585,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/mustache.c:586,1
    - Dst: StringStartsWith
      Src: /src/core/libntech/libutils/mustache.c:587,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 6
    argNames:
    - tag_type
    - tag_start
    - delim_start
    - delim_start_len
    - delim_end
    - delim_end_len
    argTypes:
    - TagType
    - char*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 550
    functionDepth: 4
    functionLinenumber: 550
    functionLinenumberEnd: 595
    functionName: IsKeyExtensionVar
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - StringStartsWith
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: "bool IsKeyExtensionVar(TagType tag_type, const char *tag_start,\n
      \                             char *delim_start, size_t delim_start_len,\n                              char
      *delim_end, size_t delim_end_len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:608,1
    - Dst: strncpy
      Src: /src/core/libntech/libutils/mustache.c:612,1
    - Dst: strncpy
      Src: /src/core/libntech/libutils/mustache.c:616,1
    - Dst: NextTag
      Src: /src/core/libntech/libutils/mustache.c:624,1
    - Dst: IsKeyExtensionVar
      Src: /src/core/libntech/libutils/mustache.c:638,1
    - Dst: SetDelimiters
      Src: /src/core/libntech/libutils/mustache.c:650,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - input
    - delim_start
    - delim_start_len
    - delim_end
    - delim_end_len
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts:
    - condition: (input != NULL)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/core/libntech/libutils/mustache.c
    constantsTouched: []
    func_position:
      end: 666
      start: 604
    functionDepth: 9
    functionLinenumber: 604
    functionLinenumberEnd: 666
    functionName: ShouldIterateObject
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 0
    functionsReached:
    - strncpy
    - IsKeyExtensionVar
    - assert
    - NextTag
    - SetDelimiters
    linkageType: ''
    returnType: bool
    signature: "bool ShouldIterateObject(const char *input,\n                                char
      *delim_start, size_t delim_start_len,\n                                char
      *delim_end, size_t delim_end_len)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:680,1
    - Dst: NextTag
      Src: /src/core/libntech/libutils/mustache.c:684,1
    - Dst: IsTagTypeRenderable
      Src: /src/core/libntech/libutils/mustache.c:689,1
    - Dst: IsTagStandalone
      Src: /src/core/libntech/libutils/mustache.c:691,1
    - Dst: RenderContent
      Src: /src/core/libntech/libutils/mustache.c:693,1
    - Dst: RenderContent
      Src: /src/core/libntech/libutils/mustache.c:698,1
    - Dst: SetDelimiters
      Src: /src/core/libntech/libutils/mustache.c:709,1
    - Dst: RenderVariable
      Src: /src/core/libntech/libutils/mustache.c:731,1
    - Dst: RenderContent
      Src: /src/core/libntech/libutils/mustache.c:738,1
    - Dst: RenderContent
      Src: /src/core/libntech/libutils/mustache.c:739,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/mustache.c:747,1
    - Dst: LookupVariable
      Src: /src/core/libntech/libutils/mustache.c:748,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/mustache.c:749,1
    - Dst: Render
      Src: /src/core/libntech/libutils/mustache.c:755,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:758,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:761,1
    - Dst: JsonGetElementType
      Src: /src/core/libntech/libutils/mustache.c:766,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libntech/libutils/mustache.c:769,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libntech/libutils/mustache.c:771,1
    - Dst: Render
      Src: /src/core/libntech/libutils/mustache.c:774,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:777,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:780,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:786,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:788,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/mustache.c:794,1
    - Dst: ShouldIterateObject
      Src: /src/core/libntech/libutils/mustache.c:798,1
    - Dst: Render
      Src: /src/core/libntech/libutils/mustache.c:802,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:808,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:812,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/mustache.c:820,1
    - Dst: JsonLength
      Src: /src/core/libntech/libutils/mustache.c:823,1
    - Dst: JsonAt
      Src: /src/core/libntech/libutils/mustache.c:825,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/mustache.c:826,1
    - Dst: BufferNew
      Src: /src/core/libntech/libutils/mustache.c:828,1
    - Dst: JsonGetContainerType
      Src: /src/core/libntech/libutils/mustache.c:829,1
    - Dst: BufferAppendString
      Src: /src/core/libntech/libutils/mustache.c:831,1
    - Dst: JsonElementGetPropertyName
      Src: /src/core/libntech/libutils/mustache.c:831,1
    - Dst: BufferAppendF
      Src: /src/core/libntech/libutils/mustache.c:835,1
    - Dst: Render
      Src: /src/core/libntech/libutils/mustache.c:838,1
    - Dst: BufferData
      Src: /src/core/libntech/libutils/mustache.c:840,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:844,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/libutils/mustache.c:845,1
    - Dst: BufferDestroy
      Src: /src/core/libntech/libutils/mustache.c:849,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:852,1
    - Dst: Render
      Src: /src/core/libntech/libutils/mustache.c:858,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:861,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:864,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/mustache.c:876,1
    - Dst: Log
      Src: /src/core/libntech/libutils/mustache.c:877,1
    - Dst: free
      Src: /src/core/libntech/libutils/mustache.c:878,1
    - Dst: SeqRemove
      Src: /src/core/libntech/libutils/mustache.c:883,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/mustache.c:883,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:890,1
    - Dst: assert
      Src: /src/core/libntech/libutils/mustache.c:895,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 131
    argCount: 12
    argNames:
    - out
    - start
    - input
    - hash_stack
    - json_key
    - delim_start
    - delim_start_len
    - delim_end
    - delim_end_len
    - skip_content
    - section
    - section_end
    argTypes:
    - Buffer*
    - char*
    - char*
    - Seq*
    - char*
    - char*
    - size_t*
    - char*
    - size_t*
    - bool
    - char*
    - char**
    assertStmts:
    - condition: (false)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/core/libntech/libutils/mustache.c
    - condition: (false)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/core/libntech/libutils/mustache.c
    constantsTouched: []
    func_position:
      end: 896
      start: 668
    functionDepth: 10
    functionLinenumber: 668
    functionLinenumberEnd: 896
    functionName: Render
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 2
    functionsReached:
    - JsonGetContainerType
    - BufferDestroy
    - SeqRemove
    - Render
    - JsonAt
    - JsonElementGetPropertyName
    - Log
    - RenderVariable
    - BufferNew
    - free
    - xstrndup
    - SetDelimiters
    - SeqLength
    - JsonGetPrimitiveType
    - IsTagStandalone
    - SeqAppend
    - BufferData
    - JsonGetElementType
    - NextTag
    - BufferAppendF
    - RenderContent
    - assert
    - LookupVariable
    - JsonPrimitiveGetAsBool
    - JsonLength
    - ShouldIterateObject
    - IsTagTypeRenderable
    - BufferAppendString
    linkageType: ''
    returnType: bool
    signature: "bool Render(Buffer *out, const char *start, const char *input, Seq
      *hash_stack,\n                   const char *json_key,\n                   char
      *delim_start, size_t *delim_start_len,\n                   char *delim_end,
      size_t *delim_end_len,\n                   bool skip_content,\n                   const
      char *section,\n                   const char **section_end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/mustache.c:901,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/mustache.c:904,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/mustache.c:906,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/mustache.c:907,1
    - Dst: Render
      Src: /src/core/libntech/libutils/mustache.c:909,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/mustache.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - input
    - hash
    argTypes:
    - Buffer*
    - char*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 898
    functionDepth: 11
    functionLinenumber: 898
    functionLinenumberEnd: 919
    functionName: MustacheRender
    functionSourceFile: /src/core/libntech/libutils/mustache.c
    functionUses: 1
    functionsReached:
    - SeqDestroy
    - strlen
    - Render
    - SeqNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool MustacheRender(Buffer *out, const char *input, const JsonElement
      *hash)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/fsattrs.c:22,1
    - Dst: assert
      Src: /src/core/libntech/libutils/fsattrs.c:23,1
    - Dst: lstat
      Src: /src/core/libntech/libutils/fsattrs.c:32,1
    - Dst: S_ISREG
      Src: /src/core/libntech/libutils/fsattrs.c:36,1
    - Dst: safe_open
      Src: /src/core/libntech/libutils/fsattrs.c:41,1
    - Dst: ioctl
      Src: /src/core/libntech/libutils/fsattrs.c:48,1
    - Dst: close
      Src: /src/core/libntech/libutils/fsattrs.c:51,1
    - Dst: close
      Src: /src/core/libntech/libutils/fsattrs.c:57,1
    - Dst: Log
      Src: /src/core/libntech/libutils/fsattrs.c:66,1
    - Dst: close
      Src: /src/core/libntech/libutils/fsattrs.c:69,1
    - Dst: Log
      Src: /src/core/libntech/libutils/fsattrs.c:73,1
    - Dst: Log
      Src: /src/core/libntech/libutils/fsattrs.c:82,1
    - Dst: close
      Src: /src/core/libntech/libutils/fsattrs.c:85,1
    - Dst: Log
      Src: /src/core/libntech/libutils/fsattrs.c:89,1
    - Dst: ioctl
      Src: /src/core/libntech/libutils/fsattrs.c:95,1
    - Dst: close
      Src: /src/core/libntech/libutils/fsattrs.c:96,1
    - Dst: lstat
      Src: /src/core/libntech/libutils/fsattrs.c:107,1
    - Dst: Log
      Src: /src/core/libntech/libutils/fsattrs.c:123,1
    - Dst: Log
      Src: /src/core/libntech/libutils/fsattrs.c:129,1
    - Dst: Log
      Src: /src/core/libntech/libutils/fsattrs.c:138,1
    - Dst: Log
      Src: /src/core/libntech/libutils/fsattrs.c:144,1
    - Dst: chflags
      Src: /src/core/libntech/libutils/fsattrs.c:150,1
    - Dst: UNUSED
      Src: /src/core/libntech/libutils/fsattrs.c:161,1
    - Dst: UNUSED
      Src: /src/core/libntech/libutils/fsattrs.c:162,1
    - Dst: UNUSED
      Src: /src/core/libntech/libutils/fsattrs.c:163,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 3
    argNames:
    - filename
    - flag
    - get_flag
    argTypes:
    - char*
    - bool*
    - bool
    assertStmts:
    - condition: (flag != NULL)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/core/libntech/libutils/fsattrs.c
    - condition: (filename != NULL)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/core/libntech/libutils/fsattrs.c
    constantsTouched: []
    func_position:
      end: 166
      start: 19
    functionDepth: 8
    functionLinenumber: 19
    functionLinenumberEnd: 166
    functionName: ImmutableFlag
    functionSourceFile: /src/core/libntech/libutils/fsattrs.c
    functionUses: 1
    functionsReached:
    - ioctl
    - UNUSED
    - safe_open
    - assert
    - chflags
    - S_ISREG
    - lstat
    - Log
    - close
    linkageType: ''
    returnType: FSAttrsResult
    signature: "FSAttrsResult ImmutableFlag(\n    const char *filename, bool *flag,
      bool get_flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImmutableFlag
      Src: /src/core/libntech/libutils/fsattrs.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - flag
    argTypes:
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 9
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: FSAttrsGetImmutableFlag
    functionSourceFile: /src/core/libntech/libutils/fsattrs.c
    functionUses: 1
    functionsReached:
    - ImmutableFlag
    linkageType: ''
    returnType: FSAttrsResult
    signature: FSAttrsResult FSAttrsGetImmutableFlag(const char *filename, bool *flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImmutableFlag
      Src: /src/core/libntech/libutils/fsattrs.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - flag
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 9
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: FSAttrsUpdateImmutableFlag
    functionSourceFile: /src/core/libntech/libutils/fsattrs.c
    functionUses: 0
    functionsReached:
    - ImmutableFlag
    linkageType: ''
    returnType: FSAttrsResult
    signature: FSAttrsResult FSAttrsUpdateImmutableFlag(const char *filename, bool
      flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ThreadLock
    functionSourceFile: /src/core/libntech/libutils/mutex.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThreadLock(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: ThreadUnlock
    functionSourceFile: /src/core/libntech/libutils/mutex.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThreadUnlock(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - n
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: ThreadWait
    functionSourceFile: /src/core/libntech/libutils/mutex.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ThreadWait(m, n, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/stack.c:31,1
    - Dst: StackInit
      Src: /src/core/libntech/libutils/stack.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - initial_capacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: StackNew
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 10
    functionsReached:
    - xmalloc
    - StackInit
    linkageType: ''
    returnType: Stack
    signature: Stack *StackNew(size_t initial_capacity, void (ItemDestroy) (void *item))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DestroyRange
      Src: /src/core/libntech/libutils/stack.c:42,1
    - Dst: StackSoftDestroy
      Src: /src/core/libntech/libutils/stack.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - Stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: StackDestroy
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 10
    functionsReached:
    - DestroyRange
    - StackSoftDestroy
    linkageType: ''
    returnType: void
    signature: void StackDestroy(Stack *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/stack.c:52,1
    - Dst: free
      Src: /src/core/libntech/libutils/stack.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - Stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: StackSoftDestroy
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void StackSoftDestroy(Stack *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - stack
    argTypes:
    - Stack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/core/libntech/libutils/stack.c
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: StackPop
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void *StackPop(Stack *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - stack
    argTypes:
    - Stack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/core/libntech/libutils/stack.c
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: StackTop
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void *StackTop(Stack *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:97,1
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:98,1
    - Dst: xrealloc
      Src: /src/core/libntech/libutils/stack.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stack
    argTypes:
    - Stack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/core/libntech/libutils/stack.c
    - condition: (stack->size <= stack->capacity)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/core/libntech/libutils/stack.c
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: ExpandIfNecessary
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 3
    functionsReached:
    - assert
    - xrealloc
    linkageType: ''
    returnType: void
    signature: void ExpandIfNecessary(Stack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:109,1
    - Dst: ExpandIfNecessary
      Src: /src/core/libntech/libutils/stack.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - stack
    - item
    argTypes:
    - Stack*
    - void*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/core/libntech/libutils/stack.c
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: StackPush
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 9
    functionsReached:
    - assert
    - ExpandIfNecessary
    linkageType: ''
    returnType: void
    signature: void StackPush(Stack *stack, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:117,1
    - Dst: ExpandIfNecessary
      Src: /src/core/libntech/libutils/stack.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - stack
    - item
    argTypes:
    - Stack*
    - void*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/core/libntech/libutils/stack.c
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: StackPushReportCount
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 3
    functionsReached:
    - assert
    - ExpandIfNecessary
    linkageType: ''
    returnType: size_t
    signature: size_t StackPushReportCount(Stack *stack, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stack
    argTypes:
    - Stack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/core/libntech/libutils/stack.c
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: StackCount
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t StackCount(Stack const *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stack
    argTypes:
    - Stack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/core/libntech/libutils/stack.c
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: StackCapacity
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 5
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t StackCapacity(Stack const *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stack
    argTypes:
    - Stack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/core/libntech/libutils/stack.c
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: StackIsEmpty
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool StackIsEmpty(Stack const *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/stack.c:155,1
    - Dst: xmemdup
      Src: /src/core/libntech/libutils/stack.c:157,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/stack.c:158,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/stack.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - Stack*
    assertStmts:
    - condition: (stack != NULL)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/core/libntech/libutils/stack.c
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: StackCopy
    functionSourceFile: /src/core/libntech/libutils/stack.c
    functionUses: 2
    functionsReached:
    - assert
    - xmalloc
    - memcpy
    - xmemdup
    linkageType: ''
    returnType: Stack
    signature: Stack *StackCopy(Stack const *stack)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:60,1
    - Dst: pthread_mutexattr_init
      Src: /src/core/libntech/libutils/threaded_deque.c:68,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_deque.c:70,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_deque.c:73,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_deque.c:76,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_deque.c:77,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:80,1
    - Dst: pthread_mutex_init
      Src: /src/core/libntech/libutils/threaded_deque.c:81,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_deque.c:84,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_deque.c:86,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libntech/libutils/threaded_deque.c:87,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:88,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:89,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libntech/libutils/threaded_deque.c:93,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:95,1
    - Dst: pthread_cond_init
      Src: /src/core/libntech/libutils/threaded_deque.c:96,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_deque.c:99,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_deque.c:101,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:102,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:103,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:104,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:108,1
    - Dst: pthread_cond_init
      Src: /src/core/libntech/libutils/threaded_deque.c:109,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_deque.c:112,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_deque.c:115,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:116,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:117,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:118,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:119,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 1
    argNames:
    - initial_capacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 131
    functionName: ThreadedDequeNew
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 8
    functionsReached:
    - xcalloc
    - pthread_mutexattr_settype
    - pthread_mutex_init
    - pthread_mutexattr_destroy
    - xmalloc
    - Log
    - GetErrorStrFromCode
    - free
    - pthread_cond_init
    - pthread_mutexattr_init
    linkageType: ''
    returnType: ThreadedDeque
    signature: "ThreadedDeque *ThreadedDequeNew(size_t initial_capacity,\n                                void
      (ItemDestroy) (void *item))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DestroyRange
      Src: /src/core/libntech/libutils/threaded_deque.c:137,1
    - Dst: ThreadedDequeSoftDestroy
      Src: /src/core/libntech/libutils/threaded_deque.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - deque
    argTypes:
    - ThreadedDeque*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: ThreadedDequeDestroy
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 8
    functionsReached:
    - DestroyRange
    - ThreadedDequeSoftDestroy
    linkageType: ''
    returnType: void
    signature: void ThreadedDequeDestroy(ThreadedDeque *deque)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/core/libntech/libutils/threaded_deque.c:149,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:150,1
    - Dst: pthread_cond_destroy
      Src: /src/core/libntech/libutils/threaded_deque.c:155,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:156,1
    - Dst: pthread_cond_destroy
      Src: /src/core/libntech/libutils/threaded_deque.c:161,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:162,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:165,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - deque
    argTypes:
    - ThreadedDeque*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: ThreadedDequeSoftDestroy
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 2
    functionsReached:
    - pthread_cond_destroy
    - pthread_mutex_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void ThreadedDequeSoftDestroy(ThreadedDeque *deque)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:174,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:176,1
    - Dst: ThreadWait
      Src: /src/core/libntech/libutils/threaded_deque.c:182,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:188,1
    - Dst: pthread_cond_broadcast
      Src: /src/core/libntech/libutils/threaded_deque.c:214,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - deque
    - item
    - timeout
    argTypes:
    - ThreadedDeque*
    - void**
    - int
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 220
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 220
    functionName: ThreadedDequePopLeft
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 6
    functionsReached:
    - ThreadLock
    - assert
    - ThreadUnlock
    - ThreadWait
    - pthread_cond_broadcast
    linkageType: ''
    returnType: bool
    signature: "bool ThreadedDequePopLeft(ThreadedDeque *deque,\n                          void
      **item,\n                          int timeout)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:226,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:228,1
    - Dst: ThreadWait
      Src: /src/core/libntech/libutils/threaded_deque.c:234,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:240,1
    - Dst: pthread_cond_broadcast
      Src: /src/core/libntech/libutils/threaded_deque.c:266,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:269,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - deque
    - item
    - timeout
    argTypes:
    - ThreadedDeque*
    - void**
    - int
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 272
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 272
    functionName: ThreadedDequePopRight
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 3
    functionsReached:
    - ThreadLock
    - assert
    - ThreadUnlock
    - ThreadWait
    - pthread_cond_broadcast
    linkageType: ''
    returnType: bool
    signature: "bool ThreadedDequePopRight(ThreadedDeque *deque,\n                           void
      **item,\n                           int timeout)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:279,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:281,1
    - Dst: ThreadWait
      Src: /src/core/libntech/libutils/threaded_deque.c:287,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:293,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:306,1
    - Dst: pthread_cond_broadcast
      Src: /src/core/libntech/libutils/threaded_deque.c:323,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:328,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - deque
    - data_array
    - num
    - timeout
    argTypes:
    - ThreadedDeque*
    - void***
    - size_t
    - int
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 331
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 331
    functionName: ThreadedDequePopLeftN
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 2
    functionsReached:
    - xcalloc
    - ThreadLock
    - assert
    - ThreadUnlock
    - ThreadWait
    - pthread_cond_broadcast
    linkageType: ''
    returnType: size_t
    signature: "size_t ThreadedDequePopLeftN(ThreadedDeque *deque,\n                             void
      ***data_array,\n                             size_t num,\n                             int
      timeout)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:338,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:340,1
    - Dst: ThreadWait
      Src: /src/core/libntech/libutils/threaded_deque.c:346,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:352,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:365,1
    - Dst: pthread_cond_broadcast
      Src: /src/core/libntech/libutils/threaded_deque.c:382,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:387,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - deque
    - data_array
    - num
    - timeout
    argTypes:
    - ThreadedDeque*
    - void***
    - size_t
    - int
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 390
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 390
    functionName: ThreadedDequePopRightN
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - ThreadLock
    - assert
    - ThreadUnlock
    - ThreadWait
    - pthread_cond_broadcast
    linkageType: ''
    returnType: size_t
    signature: "size_t ThreadedDequePopRightN(ThreadedDeque *deque,\n                              void
      ***data_array,\n                              size_t num,\n                              int
      timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:394,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:396,1
    - Dst: ExpandIfNecessary
      Src: /src/core/libntech/libutils/threaded_deque.c:398,1
    - Dst: pthread_cond_signal
      Src: /src/core/libntech/libutils/threaded_deque.c:404,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - ThreadedDeque*
    - void*
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 409
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: ThreadedDequePushLeft
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 8
    functionsReached:
    - pthread_cond_signal
    - ThreadLock
    - assert
    - ThreadUnlock
    - ExpandIfNecessary
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedDequePushLeft(ThreadedDeque *deque, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:413,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:415,1
    - Dst: ExpandIfNecessary
      Src: /src/core/libntech/libutils/threaded_deque.c:417,1
    - Dst: pthread_cond_signal
      Src: /src/core/libntech/libutils/threaded_deque.c:424,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - ThreadedDeque*
    - void*
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 429
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 429
    functionName: ThreadedDequePushRight
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 5
    functionsReached:
    - pthread_cond_signal
    - ThreadLock
    - assert
    - ThreadUnlock
    - ExpandIfNecessary
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedDequePushRight(ThreadedDeque *deque, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:433,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:435,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - deque
    argTypes:
    - ThreadedDeque*
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 440
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 440
    functionName: ThreadedDequeCount
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 3
    functionsReached:
    - assert
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedDequeCount(ThreadedDeque const *deque)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:444,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:446,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - deque
    argTypes:
    - ThreadedDeque*
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 451
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 451
    functionName: ThreadedDequeCapacity
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 2
    functionsReached:
    - assert
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadedDequeCapacity(ThreadedDeque const *deque)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:455,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:457,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - deque
    argTypes:
    - ThreadedDeque*
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 462
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 462
    functionName: ThreadedDequeIsEmpty
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 1
    functionsReached:
    - assert
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: bool
    signature: bool ThreadedDequeIsEmpty(ThreadedDeque const *deque)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:466,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:468,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:472,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:478,1
    - Dst: ThreadWait
      Src: /src/core/libntech/libutils/threaded_deque.c:483,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:489,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - deque
    - timeout
    argTypes:
    - ThreadedDeque*
    - int
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 465
        line_start: 465
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 498
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 498
    functionName: ThreadedDequeWaitEmpty
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 1
    functionsReached:
    - ThreadWait
    - assert
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: bool
    signature: bool ThreadedDequeWaitEmpty(ThreadedDeque const *deque, int timeout)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:502,1
    - Dst: ThreadLock
      Src: /src/core/libntech/libutils/threaded_deque.c:504,1
    - Dst: xmemdup
      Src: /src/core/libntech/libutils/threaded_deque.c:506,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:507,1
    - Dst: memcpy
      Src: /src/core/libntech/libutils/threaded_deque.c:508,1
    - Dst: ThreadUnlock
      Src: /src/core/libntech/libutils/threaded_deque.c:511,1
    - Dst: pthread_mutexattr_init
      Src: /src/core/libntech/libutils/threaded_deque.c:514,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_deque.c:516,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_deque.c:519,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_deque.c:522,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libntech/libutils/threaded_deque.c:523,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:526,1
    - Dst: pthread_mutex_init
      Src: /src/core/libntech/libutils/threaded_deque.c:527,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_deque.c:530,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_deque.c:532,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libntech/libutils/threaded_deque.c:533,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:534,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:535,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:539,1
    - Dst: pthread_cond_init
      Src: /src/core/libntech/libutils/threaded_deque.c:540,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_deque.c:543,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_deque.c:546,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:547,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:548,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:549,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/threaded_deque.c:553,1
    - Dst: pthread_cond_init
      Src: /src/core/libntech/libutils/threaded_deque.c:554,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_deque.c:557,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libutils/threaded_deque.c:560,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:561,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:562,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:563,1
    - Dst: free
      Src: /src/core/libntech/libutils/threaded_deque.c:564,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 1
    argNames:
    - deque
    argTypes:
    - ThreadedDeque*
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 569
      start: 500
    functionDepth: 8
    functionLinenumber: 500
    functionLinenumberEnd: 569
    functionName: ThreadedDequeCopy
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 1
    functionsReached:
    - memcpy
    - ThreadLock
    - xmemdup
    - assert
    - ThreadUnlock
    - pthread_mutex_init
    - GetErrorStrFromCode
    - pthread_mutexattr_destroy
    - xmalloc
    - Log
    - pthread_mutexattr_settype
    - free
    - pthread_cond_init
    - pthread_mutexattr_init
    linkageType: ''
    returnType: ThreadedDeque
    signature: ThreadedDeque *ThreadedDequeCopy(ThreadedDeque *deque)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:584,1
    - Dst: Log
      Src: /src/core/libntech/libutils/threaded_deque.c:587,1
    - Dst: ThreadedDeque*::ItemDestroy
      Src: /src/core/libntech/libutils/threaded_deque.c:598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - deque
    - start
    - end
    argTypes:
    - ThreadedDeque*
    - size_t
    - size_t
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 603
      start: 582
    functionDepth: 8
    functionLinenumber: 582
    functionLinenumberEnd: 603
    functionName: DestroyRange
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 6
    functionsReached:
    - assert
    - Log
    - ThreadedDeque*::ItemDestroy
    linkageType: ''
    returnType: void
    signature: void DestroyRange(ThreadedDeque *deque, size_t start, size_t end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:612,1
    - Dst: assert
      Src: /src/core/libntech/libutils/threaded_deque.c:613,1
    - Dst: xrealloc
      Src: /src/core/libntech/libutils/threaded_deque.c:622,1
    - Dst: memmove
      Src: /src/core/libntech/libutils/threaded_deque.c:629,1
    - Dst: xrealloc
      Src: /src/core/libntech/libutils/threaded_deque.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - deque
    argTypes:
    - ThreadedDeque*
    assertStmts:
    - condition: (deque != NULL)
      pos:
        line_end: 611
        line_start: 611
        source_file: /src/core/libntech/libutils/threaded_deque.c
    - condition: (deque->size <= deque->capacity)
      pos:
        line_end: 612
        line_start: 612
        source_file: /src/core/libntech/libutils/threaded_deque.c
    constantsTouched: []
    func_position:
      end: 641
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 641
    functionName: ExpandIfNecessary
    functionSourceFile: /src/core/libntech/libutils/threaded_deque.c
    functionUses: 7
    functionsReached:
    - memmove
    - assert
    - xrealloc
    linkageType: ''
    returnType: void
    signature: void ExpandIfNecessary(ThreadedDeque *deque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/refcount.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ref
    argTypes:
    - RefCount**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: RefCountNew
    functionSourceFile: /src/core/libntech/libutils/refcount.c
    functionUses: 6
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void RefCountNew(RefCount **ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/refcount.c:47,1
    - Dst: free
      Src: /src/core/libntech/libutils/refcount.c:51,1
    - Dst: free
      Src: /src/core/libntech/libutils/refcount.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ref
    argTypes:
    - RefCount**
    assertStmts:
    - condition: ((*ref)->user_count <= 1)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/core/libntech/libutils/refcount.c
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: RefCountDestroy
    functionSourceFile: /src/core/libntech/libutils/refcount.c
    functionUses: 5
    functionsReached:
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void RefCountDestroy(RefCount **ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/refcount.c:61,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/refcount.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ref
    - owner
    argTypes:
    - RefCount*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: RefCountAttach
    functionSourceFile: /src/core/libntech/libutils/refcount.c
    functionUses: 6
    functionsReached:
    - xmalloc
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void RefCountAttach(RefCount *ref, void *owner)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/refcount.c:84,1
    - Dst: free
      Src: /src/core/libntech/libutils/refcount.c:123,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/refcount.c:129,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - ref
    - owner
    argTypes:
    - RefCount*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 132
    functionName: RefCountDetach
    functionSourceFile: /src/core/libntech/libutils/refcount.c
    functionUses: 4
    functionsReached:
    - free
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void RefCountDetach(RefCount *ref, void *owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - RefCount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: RefCountIsShared
    functionSourceFile: /src/core/libntech/libutils/refcount.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RefCountIsShared(RefCount *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - RefCount*
    - RefCount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: RefCountIsEqual
    functionSourceFile: /src/core/libntech/libutils/refcount.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RefCountIsEqual(RefCount *a, RefCount *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/sequence.c:32,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/sequence.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - initialCapacity
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: SeqNew
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 39
    functionsReached:
    - xcalloc
    - xmalloc
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqNew(size_t initialCapacity, void (ItemDestroy) (void *item))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:49,1
    - Dst: Seq*::ItemDestroy
      Src: /src/core/libntech/libutils/sequence.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - seq
    - start
    - end
    argTypes:
    - Seq*
    - size_t
    - size_t
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: DestroyRange
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 6
    functionsReached:
    - assert
    - Seq*::ItemDestroy
    linkageType: ''
    returnType: void
    signature: void DestroyRange(Seq *seq, size_t start, size_t end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DestroyRange
      Src: /src/core/libntech/libutils/sequence.c:65,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libntech/libutils/sequence.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - seq
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: SeqDestroy
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 71
    functionsReached:
    - SeqSoftDestroy
    - DestroyRange
    linkageType: ''
    returnType: void
    signature: void SeqDestroy(Seq *seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libutils/sequence.c:75,1
    - Dst: free
      Src: /src/core/libntech/libutils/sequence.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - seq
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: SeqSoftDestroy
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void SeqSoftDestroy(Seq *seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:82,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:83,1
    - Dst: xrealloc
      Src: /src/core/libntech/libutils/sequence.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - seq
    argTypes:
    - Seq*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (seq->length <= seq->capacity)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: ExpandIfNeccessary
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 0
    functionsReached:
    - assert
    - xrealloc
    linkageType: ''
    returnType: void
    signature: void ExpandIfNeccessary(Seq *seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED
      Src: /src/core/libntech/libutils/sequence.c:94,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/sequence.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s1
    - s2
    - user_data
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: StrCmpWrapper
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED
    linkageType: ''
    returnType: int
    signature: int StrCmpWrapper(const void *s1, const void *s2, void *user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:100,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:101,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:101,1
    - Dst: Seq*::ItemDestroy
      Src: /src/core/libntech/libutils/sequence.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - seq
    - index
    - item
    argTypes:
    - Seq*
    - size_t
    - void*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (index < SeqLength(seq))
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: SeqSet
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 2
    functionsReached:
    - SeqLength
    - assert
    - Seq*::ItemDestroy
    linkageType: ''
    returnType: void
    signature: void SeqSet(Seq *seq, size_t index, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:111,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:112,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - seq
    - index
    - item
    argTypes:
    - Seq*
    - size_t
    - void*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (index < SeqLength(seq))
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: SeqSoftSet
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - assert
    linkageType: ''
    returnType: void
    signature: void SeqSoftSet(Seq *seq, size_t index, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:118,1
    - Dst: ExpandIfNeccessary
      Src: /src/core/libntech/libutils/sequence.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seq
    - item
    argTypes:
    - Seq*
    - void*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: SeqAppend
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 35
    functionsReached:
    - assert
    - ExpandIfNeccessary
    linkageType: ''
    returnType: void
    signature: void SeqAppend(Seq *seq, void *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:127,1
    - Dst: SeqLookup
      Src: /src/core/libntech/libutils/sequence.c:128,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/sequence.c:130,1
    - Dst: Seq*::ItemDestroy
      Src: /src/core/libntech/libutils/sequence.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - seq
    - item
    - Compare
    argTypes:
    - Seq*
    - void*
    - SeqItemComparator
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: SeqAppendOnce
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - assert
    - Seq*::ItemDestroy
    - SeqLookup
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void SeqAppendOnce(Seq *seq, void *item, SeqItemComparator Compare)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:144,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/sequence.c:146,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/sequence.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - seq
    - items
    argTypes:
    - Seq*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: SeqAppendSeq
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void SeqAppendSeq(Seq *seq, const Seq *items)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:152,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:153,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:154,1
    - Dst: DestroyRange
      Src: /src/core/libntech/libutils/sequence.c:156,1
    - Dst: memmove
      Src: /src/core/libntech/libutils/sequence.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - seq
    - start
    - end
    argTypes:
    - Seq*
    - size_t
    - size_t
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (end < seq->length)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (start <= end)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: SeqRemoveRange
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 3
    functionsReached:
    - memmove
    - assert
    - DestroyRange
    linkageType: ''
    returnType: void
    signature: void SeqRemoveRange(Seq *seq, size_t start, size_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqRemoveRange
      Src: /src/core/libntech/libutils/sequence.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seq
    - index
    argTypes:
    - Seq*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: SeqRemove
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 3
    functionsReached:
    - SeqRemoveRange
    linkageType: ''
    returnType: void
    signature: void SeqRemove(Seq *seq, size_t index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:175,1
    - Dst: Compare
      Src: /src/core/libntech/libutils/sequence.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - seq
    - key
    - Compare
    argTypes:
    - Seq*
    - void*
    - SeqItemComparator
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 185
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 185
    functionName: SeqLookup
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 7
    functionsReached:
    - Compare
    - assert
    linkageType: ''
    returnType: void
    signature: void *SeqLookup(Seq *seq, const void *key, SeqItemComparator Compare)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:189,1
    - Dst: SeqBinaryIndexOf
      Src: /src/core/libntech/libutils/sequence.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - seq
    - key
    - Compare
    argTypes:
    - Seq*
    - void*
    - SeqItemComparator
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: SeqBinaryLookup
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - assert
    - SeqBinaryIndexOf
    linkageType: ''
    returnType: void
    signature: void *SeqBinaryLookup(Seq *seq, const void *key, SeqItemComparator
      Compare)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:203,1
    - Dst: Compare
      Src: /src/core/libntech/libutils/sequence.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - seq
    - key
    - Compare
    argTypes:
    - Seq*
    - void*
    - SeqItemComparator
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: SeqIndexOf
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 2
    functionsReached:
    - Compare
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t SeqIndexOf(Seq *seq, const void *key, SeqItemComparator Compare)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:217,1
    - Dst: Compare
      Src: /src/core/libntech/libutils/sequence.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - seq
    - key
    - Compare
    argTypes:
    - Seq*
    - void*
    - SeqItemComparator
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 247
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 247
    functionName: SeqBinaryIndexOf
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 2
    functionsReached:
    - Compare
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t SeqBinaryIndexOf(Seq *seq, const void *key, SeqItemComparator
      Compare)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - l
    - r
    argTypes:
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: Swap
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Swap(void **l, void **r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Compare
      Src: /src/core/libntech/libutils/sequence.c:271,1
    - Dst: Compare
      Src: /src/core/libntech/libutils/sequence.c:275,1
    - Dst: Swap
      Src: /src/core/libntech/libutils/sequence.c:281,1
    - Dst: QuickSortRecursive
      Src: /src/core/libntech/libutils/sequence.c:287,1
    - Dst: QuickSortRecursive
      Src: /src/core/libntech/libutils/sequence.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - data
    - n
    - Compare
    - user_data
    - maxterm
    argTypes:
    - void**
    - int
    - SeqItemComparator
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 289
    functionName: QuickSortRecursive
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - Swap
    - Compare
    - QuickSortRecursive
    linkageType: ''
    returnType: void
    signature: void QuickSortRecursive(void **data, int n, SeqItemComparator Compare,
      void *user_data, size_t maxterm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:293,1
    - Dst: QuickSortRecursive
      Src: /src/core/libntech/libutils/sequence.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - seq
    - Compare
    - user_data
    argTypes:
    - Seq*
    - SeqItemComparator
    - void*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: SeqSort
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 3
    functionsReached:
    - assert
    - QuickSortRecursive
    linkageType: ''
    returnType: void
    signature: void SeqSort(Seq *seq, SeqItemComparator Compare, void *user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:299,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/sequence.c:302,1
    - Dst: SeqGetRange
      Src: /src/core/libntech/libutils/sequence.c:305,1
    - Dst: SeqSort
      Src: /src/core/libntech/libutils/sequence.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - seq
    - compare
    - user_data
    argTypes:
    - Seq*
    - SeqItemComparator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: SeqSoftSort
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - SeqSort
    - SeqGetRange
    - SeqNew
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqSoftSort(const Seq *seq, SeqItemComparator compare, void *user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:312,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:313,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:314,1
    - Dst: memmove
      Src: /src/core/libntech/libutils/sequence.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - seq
    - start
    - end
    argTypes:
    - Seq*
    - size_t
    - size_t
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (end < seq->length)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (start <= end)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 324
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 324
    functionName: SeqSoftRemoveRange
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: void SeqSoftRemoveRange(Seq *seq, size_t start, size_t end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:328,1
    - Dst: SeqRemoveRange
      Src: /src/core/libntech/libutils/sequence.c:330,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - seq
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: SeqClear
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 2
    functionsReached:
    - SeqLength
    - SeqRemoveRange
    linkageType: ''
    returnType: void
    signature: void SeqClear(Seq *seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqSoftRemoveRange
      Src: /src/core/libntech/libutils/sequence.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seq
    - index
    argTypes:
    - Seq*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: SeqSoftRemove
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 3
    functionsReached:
    - SeqSoftRemoveRange
    linkageType: ''
    returnType: void
    signature: void SeqSoftRemove(Seq *seq, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:341,1
    - Dst: Swap
      Src: /src/core/libntech/libutils/sequence.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - seq
    argTypes:
    - Seq*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: SeqReverse
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 2
    functionsReached:
    - Swap
    - assert
    linkageType: ''
    returnType: void
    signature: void SeqReverse(Seq *seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:350,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:351,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:352,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/sequence.c:357,1
    - Dst: SeqGetRange
      Src: /src/core/libntech/libutils/sequence.c:360,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:361,1
    - Dst: SeqSoftRemoveRange
      Src: /src/core/libntech/libutils/sequence.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - seq
    - index
    argTypes:
    - Seq*
    - size_t
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (index <= length)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (ret != NULL)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 364
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 364
    functionName: SeqSplit
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - assert
    - SeqSoftRemoveRange
    - SeqNew
    - SeqGetRange
    - SeqLength
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqSplit(Seq *seq, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seq
    argTypes:
    - Seq*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: SeqLength
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 58
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t SeqLength(const Seq *seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:374,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:375,1
    - Dst: rand
      Src: /src/core/libntech/libutils/sequence.c:381,1
    - Dst: srand
      Src: /src/core/libntech/libutils/sequence.c:383,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:384,1
    - Dst: rand
      Src: /src/core/libntech/libutils/sequence.c:386,1
    - Dst: Swap
      Src: /src/core/libntech/libutils/sequence.c:388,1
    - Dst: srand
      Src: /src/core/libntech/libutils/sequence.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - seq
    - seed
    argTypes:
    - Seq*
    - unsigned int
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 393
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 393
    functionName: SeqShuffle
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 0
    functionsReached:
    - rand
    - Swap
    - assert
    - srand
    - SeqLength
    linkageType: ''
    returnType: void
    signature: void SeqShuffle(Seq *seq, unsigned int seed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:397,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/sequence.c:404,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:408,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:408,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/sequence.c:409,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/sequence.c:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - seq
    - start
    - end
    argTypes:
    - Seq*
    - size_t
    - size_t
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 396
        line_start: 396
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (i < SeqLength(seq))
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 413
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 413
    functionName: SeqGetRange
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 3
    functionsReached:
    - assert
    - SeqNew
    - SeqLength
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqGetRange(const Seq *seq, size_t start, size_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: SeqGetData
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void *const *SeqGetData(const Seq *seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:423,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:424,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/sequence.c:426,1
    - Dst: filter
      Src: /src/core/libntech/libutils/sequence.c:431,1
    - Dst: Seq*::ItemDestroy
      Src: /src/core/libntech/libutils/sequence.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - seq
    - filter
    argTypes:
    - Seq*
    - SeqFilterFn
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (filter != NULL)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 446
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 446
    functionName: SeqFilter
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - assert
    - Seq*::ItemDestroy
    - filter
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqFilter(Seq *const seq, SeqFilterFn filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: FilterNullCallback
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FilterNullCallback(void *const item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:455,1
    - Dst: SeqFilter
      Src: /src/core/libntech/libutils/sequence.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seq
    argTypes:
    - Seq*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 457
    functionName: SeqRemoveNulls
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 0
    functionsReached:
    - assert
    - SeqFilter
    linkageType: ''
    returnType: void
    signature: void SeqRemoveNulls(Seq *const seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:461,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:462,1
    - Dst: assert
      Src: /src/core/libntech/libutils/sequence.c:463,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/sequence.c:465,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/sequence.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (argc > 0)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (argv[0] != NULL)
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/core/libntech/libutils/sequence.c
    - condition: (argv != NULL)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/core/libntech/libutils/sequence.c
    constantsTouched: []
    func_position:
      end: 471
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 471
    functionName: SeqFromArgv
    functionSourceFile: /src/core/libntech/libutils/sequence.c
    functionUses: 1
    functionsReached:
    - assert
    - SeqAppend
    - SeqNew
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqFromArgv(int argc, const char *const *const argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapNew
      Src: /src/core/libntech/libutils/set.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - element_hash_fn
    - element_equal_fn
    - element_destroy_fn
    argTypes:
    - MapHashFn
    - MapKeyEqualFn
    - MapDestroyDataFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: SetNew
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 11
    functionsReached:
    - MapNew
    linkageType: ''
    returnType: Set
    signature: "Set *SetNew(MapHashFn element_hash_fn,\n            MapKeyEqualFn
      element_equal_fn,\n            MapDestroyDataFn element_destroy_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapDestroy
      Src: /src/core/libntech/libutils/set.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - Set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: SetDestroy
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 16
    functionsReached:
    - MapDestroy
    linkageType: ''
    returnType: void
    signature: void SetDestroy(Set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:49,1
    - Dst: MapInsert
      Src: /src/core/libntech/libutils/set.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - set
    - element
    argTypes:
    - Set*
    - void*
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 6
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: SetAdd
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 9
    functionsReached:
    - assert
    - MapInsert
    linkageType: ''
    returnType: void
    signature: void SetAdd(Set *set, void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:55,1
    - Dst: MapHasKey
      Src: /src/core/libntech/libutils/set.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - set
    - element
    argTypes:
    - Set*
    - void*
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: SetContains
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 7
    functionsReached:
    - assert
    - MapHasKey
    linkageType: ''
    returnType: bool
    signature: bool SetContains(const Set *set, const void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:61,1
    - Dst: MapRemove
      Src: /src/core/libntech/libutils/set.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - set
    - element
    argTypes:
    - Set*
    - void*
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: SetRemove
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 0
    functionsReached:
    - assert
    - MapRemove
    linkageType: ''
    returnType: bool
    signature: bool SetRemove(Set *set, const void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:67,1
    - Dst: MapClear
      Src: /src/core/libntech/libutils/set.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - Set*
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: SetClear
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 1
    functionsReached:
    - MapClear
    - assert
    linkageType: ''
    returnType: void
    signature: void SetClear(Set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:73,1
    - Dst: MapSize
      Src: /src/core/libntech/libutils/set.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - Set*
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: SetSize
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 8
    functionsReached:
    - assert
    - MapSize
    linkageType: ''
    returnType: size_t
    signature: size_t SetSize(const Set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:79,1
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:80,1
    - Dst: MapContainsSameKeys
      Src: /src/core/libntech/libutils/set.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - set1
    - set2
    argTypes:
    - Set*
    - Set*
    assertStmts:
    - condition: (set1 != NULL)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/core/libntech/libutils/set.c
    - condition: (set2 != NULL)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: SetIsEqual
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 1
    functionsReached:
    - assert
    - MapContainsSameKeys
    linkageType: ''
    returnType: bool
    signature: bool SetIsEqual(const Set *set1, const Set *set2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:86,1
    - Dst: MapIteratorInit
      Src: /src/core/libntech/libutils/set.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - Set*
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: SetIteratorInit
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 5
    functionsReached:
    - assert
    - MapIteratorInit
    linkageType: ''
    returnType: SetIterator
    signature: SetIterator SetIteratorInit(Set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapIteratorNext
      Src: /src/core/libntech/libutils/set.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - SetIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: SetIteratorNext
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 5
    functionsReached:
    - MapIteratorNext
    linkageType: ''
    returnType: void
    signature: void *SetIteratorNext(SetIterator *i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:98,1
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:99,1
    - Dst: SetIteratorInit
      Src: /src/core/libntech/libutils/set.c:103,1
    - Dst: SetIteratorNext
      Src: /src/core/libntech/libutils/set.c:106,1
    - Dst: SetIteratorNext
      Src: /src/core/libntech/libutils/set.c:106,1
    - Dst: copy_function
      Src: /src/core/libntech/libutils/set.c:110,1
    - Dst: SetAdd
      Src: /src/core/libntech/libutils/set.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - set
    - otherset
    - copy_function
    argTypes:
    - Set*
    - Set*
    - SetElementCopyFn
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/core/libntech/libutils/set.c
    - condition: (otherset != NULL)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 114
      start: 96
    functionDepth: 7
    functionLinenumber: 96
    functionLinenumberEnd: 114
    functionName: SetJoin
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 2
    functionsReached:
    - SetIteratorInit
    - assert
    - SetAdd
    - SetIteratorNext
    - copy_function
    linkageType: ''
    returnType: void
    signature: void SetJoin(Set *set, Set *otherset, SetElementCopyFn copy_function)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:118,1
    - Dst: BufferNew
      Src: /src/core/libntech/libutils/set.c:120,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libntech/libutils/set.c:121,1
    - Dst: StringSetSize
      Src: /src/core/libntech/libutils/set.c:124,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libntech/libutils/set.c:130,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/set.c:132,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/set.c:132,1
    - Dst: BufferAppend
      Src: /src/core/libntech/libutils/set.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - set
    - delimiter
    argTypes:
    - StringSet*
    - char
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 142
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 142
    functionName: StringSetToBuffer
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 2
    functionsReached:
    - BufferAppend
    - strlen
    - assert
    - StringSetIteratorNext
    - StringSetSize
    - StringSetIteratorInit
    - BufferNew
    linkageType: ''
    returnType: Buffer
    signature: Buffer *StringSetToBuffer(StringSet *set, const char delimiter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:146,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/libutils/set.c:159,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/set.c:159,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/libutils/set.c:163,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/set.c:163,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/libutils/set.c:173,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/set.c:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - set
    - str
    - delimiter
    argTypes:
    - StringSet*
    - char*
    - char
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 176
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 176
    functionName: StringSetAddSplit
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 0
    functionsReached:
    - assert
    - xstrndup
    - xstrdup
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void StringSetAddSplit(StringSet *set, const char *str, char delimiter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libntech/libutils/set.c:180,1
    - Dst: StringSetAddSplit
      Src: /src/core/libntech/libutils/set.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - delimiter
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: StringSetFromString
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 2
    functionsReached:
    - StringSetAddSplit
    - StringSetNew
    linkageType: ''
    returnType: StringSet
    signature: StringSet *StringSetFromString(const char *str, char delimiter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:189,1
    - Dst: JsonArrayCreate
      Src: /src/core/libntech/libutils/set.c:191,1
    - Dst: StringSetSize
      Src: /src/core/libntech/libutils/set.c:191,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libntech/libutils/set.c:192,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libntech/libutils/set.c:195,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libntech/libutils/set.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - StringSet*
    assertStmts:
    - condition: (set != NULL)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 201
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 201
    functionName: StringSetToJson
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 0
    functionsReached:
    - assert
    - StringSetIteratorNext
    - StringSetSize
    - StringSetIteratorInit
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *StringSetToJson(const StringSet *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetSize
      Src: /src/core/libntech/libutils/set.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - JsonElement *element
    - data
    argTypes:
    - ARG_UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: VisitJsonArrayFirst
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 0
    functionsReached:
    - StringSetSize
    linkageType: ''
    returnType: bool
    signature: bool VisitJsonArrayFirst(ARG_UNUSED JsonElement *element, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonPrimitiveToString
      Src: /src/core/libntech/libutils/set.c:215,1
    - Dst: StringSetAdd
      Src: /src/core/libntech/libutils/set.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - element
    - data
    argTypes:
    - JsonElement*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: AddArrayItemToStringSet
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 0
    functionsReached:
    - StringSetAdd
    - JsonPrimitiveToString
    linkageType: ''
    returnType: bool
    signature: bool AddArrayItemToStringSet(JsonElement *element, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/set.c:227,1
    - Dst: JsonGetType
      Src: /src/core/libntech/libutils/set.c:229,1
    - Dst: StringSetNew
      Src: /src/core/libntech/libutils/set.c:234,1
    - Dst: JsonWalk
      Src: /src/core/libntech/libutils/set.c:238,1
    - Dst: StringSetDestroy
      Src: /src/core/libntech/libutils/set.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - array
    argTypes:
    - JsonElement*
    assertStmts:
    - condition: (array != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/core/libntech/libutils/set.c
    constantsTouched: []
    func_position:
      end: 246
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 246
    functionName: JsonArrayToStringSet
    functionSourceFile: /src/core/libntech/libutils/set.c
    functionUses: 1
    functionsReached:
    - assert
    - StringSetDestroy
    - JsonWalk
    - StringSetNew
    - JsonGetType
    linkageType: ''
    returnType: StringSet
    signature: StringSet *JsonArrayToStringSet(const JsonElement *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/libntech/libutils/file_lib.c:63,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/file_lib.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - path
    - modes
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: FileCanOpen
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 3
    functionsReached:
    - fopen
    - fclose
    linkageType: ''
    returnType: bool
    signature: bool FileCanOpen(const char *path, const char *modes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: safe_open
      Src: /src/core/libntech/libutils/file_lib.c:78,1
    - Dst: FileReadFromFd
      Src: /src/core/libntech/libutils/file_lib.c:84,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - filename
    - max_size
    - truncated
    argTypes:
    - char*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: FileRead
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 8
    functionsReached:
    - FileReadFromFd
    - close
    - safe_open
    linkageType: ''
    returnType: Writer
    signature: Writer *FileRead(const char *filename, size_t max_size, bool *truncated)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/core/libntech/libutils/file_lib.c:95,1
    - Dst: ferror
      Src: /src/core/libntech/libutils/file_lib.c:96,1
    - Dst: feof
      Src: /src/core/libntech/libutils/file_lib.c:96,1
    - Dst: ferror
      Src: /src/core/libntech/libutils/file_lib.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - file
    - max_bytes
    - buf
    argTypes:
    - FILE*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: ReadFileStreamToBuffer
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - fread
    - ferror
    - feof
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ReadFileStreamToBuffer(FILE *file, size_t max_bytes, char *buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:115,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:116,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:118,1
    - Dst: safe_fopen
      Src: /src/core/libntech/libutils/file_lib.c:120,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:123,1
    - Dst: strerror
      Src: /src/core/libntech/libutils/file_lib.c:123,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/libutils/file_lib.c:127,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:130,1
    - Dst: strerror
      Src: /src/core/libntech/libutils/file_lib.c:130,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/file_lib.c:131,1
    - Dst: fread
      Src: /src/core/libntech/libutils/file_lib.c:143,1
    - Dst: fwrite
      Src: /src/core/libntech/libutils/file_lib.c:144,1
    - Dst: ferror
      Src: /src/core/libntech/libutils/file_lib.c:145,1
    - Dst: fwrite
      Src: /src/core/libntech/libutils/file_lib.c:147,1
    - Dst: feof
      Src: /src/core/libntech/libutils/file_lib.c:150,1
    - Dst: ferror
      Src: /src/core/libntech/libutils/file_lib.c:150,1
    - Dst: ferror
      Src: /src/core/libntech/libutils/file_lib.c:150,1
    - Dst: ferror
      Src: /src/core/libntech/libutils/file_lib.c:153,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:155,1
    - Dst: ferror
      Src: /src/core/libntech/libutils/file_lib.c:158,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:160,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:165,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/file_lib.c:169,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:172,1
    - Dst: strerror
      Src: /src/core/libntech/libutils/file_lib.c:175,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/file_lib.c:178,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:181,1
    - Dst: strerror
      Src: /src/core/libntech/libutils/file_lib.c:184,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (src != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (dst != NULL)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 188
      start: 113
    functionDepth: 8
    functionLinenumber: 113
    functionLinenumberEnd: 188
    functionName: File_Copy
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - strerror
    - assert
    - fread
    - feof
    - safe_fopen
    - safe_fopen_create_perms
    - fwrite
    - Log
    - fclose
    - ferror
    linkageType: ''
    returnType: bool
    signature: bool File_Copy(const char *src, const char *dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:192,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:193,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:194,1
    - Dst: StringEndsWith
      Src: /src/core/libntech/libutils/file_lib.c:194,1
    - Dst: Path_Basename
      Src: /src/core/libntech/libutils/file_lib.c:196,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:199,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/file_lib.c:204,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:207,1
    - Dst: File_Copy
      Src: /src/core/libntech/libutils/file_lib.c:211,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - src
    - dst_dir
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (src != NULL)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (dst_dir != NULL)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (StringEndsWith(dst_dir, FILE_SEPARATOR_STR))
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 218
      start: 190
    functionDepth: 9
    functionLinenumber: 190
    functionLinenumberEnd: 218
    functionName: File_CopyToDir
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - snprintf
    - assert
    - StringEndsWith
    - Path_Basename
    - File_Copy
    - Log
    linkageType: ''
    returnType: bool
    signature: bool File_CopyToDir(const char *src, const char *dst_dir)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/file_lib.c:227,1
    - Dst: read
      Src: /src/core/libntech/libutils/file_lib.c:232,1
    - Dst: WriterClose
      Src: /src/core/libntech/libutils/file_lib.c:244,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/libutils/file_lib.c:249,1
    - Dst: WriterWriteLen
      Src: /src/core/libntech/libutils/file_lib.c:251,1
    - Dst: StringWriterLength
      Src: /src/core/libntech/libutils/file_lib.c:251,1
    - Dst: WriterWriteLen
      Src: /src/core/libntech/libutils/file_lib.c:261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - fd
    - max_size
    - truncated
    argTypes:
    - int
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 264
    functionName: FileReadFromFd
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - WriterClose
    - read
    - WriterWriteLen
    - StringWriter
    - StringWriterLength
    linkageType: ''
    returnType: Writer
    signature: Writer *FileReadFromFd(int fd, size_t max_size, bool *truncated)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/core/libntech/libutils/file_lib.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - desc
    - ptr
    - len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 290
    functionName: FullWrite
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t FullWrite(int desc, const char *ptr, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/core/libntech/libutils/file_lib.c:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - fd
    - ptr
    - len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 321
    functionName: FullRead
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 2
    functionsReached:
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t FullRead(int fd, char *ptr, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/core/libntech/libutils/file_lib.c:331,1
    - Dst: S_ISDIR
      Src: /src/core/libntech/libutils/file_lib.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 337
    functionName: IsDirReal
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - lstat
    linkageType: ''
    returnType: bool
    signature: bool IsDirReal(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: FileNewLineMode
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NewLineMode
    signature: NewLineMode FileNewLineMode(ARG_UNUSED const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsFileSep
      Src: /src/core/libntech/libutils/file_lib.c:357,1
    - Dst: IsFileSep
      Src: /src/core/libntech/libutils/file_lib.c:357,1
    - Dst: UNUSED
      Src: /src/core/libntech/libutils/file_lib.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: IsWindowsNetworkPath
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - IsFileSep
    linkageType: ''
    returnType: bool
    signature: bool IsWindowsNetworkPath(const char *const path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/core/libntech/libutils/file_lib.c:378,1
    - Dst: IsFileSep
      Src: /src/core/libntech/libutils/file_lib.c:378,1
    - Dst: UNUSED
      Src: /src/core/libntech/libutils/file_lib.c:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 386
    functionName: IsWindowsDiskPath
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - UNUSED
    - isalpha
    - IsFileSep
    linkageType: ''
    returnType: bool
    signature: bool IsWindowsDiskPath(const char *const path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsWindowsNetworkPath
      Src: /src/core/libntech/libutils/file_lib.c:398,1
    - Dst: IsWindowsDiskPath
      Src: /src/core/libntech/libutils/file_lib.c:402,1
    - Dst: IsFileSep
      Src: /src/core/libntech/libutils/file_lib.c:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 412
    functionName: IsAbsoluteFileName
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 2
    functionsReached:
    - IsFileSep
    - IsWindowsDiskPath
    - IsWindowsNetworkPath
    linkageType: ''
    returnType: bool
    signature: bool IsAbsoluteFileName(const char *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/file_lib.c:422,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/file_lib.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 431
    functionName: MapNameCopy
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - strchr
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *MapNameCopy(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libutils/file_lib.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 442
    functionName: MapName
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *MapName(char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/file_lib.c:448,1
    - Dst: isalpha
      Src: /src/core/libntech/libutils/file_lib.c:451,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/file_lib.c:453,1
    - Dst: IsFileSep
      Src: /src/core/libntech/libutils/file_lib.c:461,1
    - Dst: IsFileSep
      Src: /src/core/libntech/libutils/file_lib.c:461,1
    - Dst: WriterWriteChar
      Src: /src/core/libntech/libutils/file_lib.c:467,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/file_lib.c:470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 471
    functionName: MapNameCopy
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - isalpha
    - IsFileSep
    - WriterWriteChar
    - StringWriter
    - StringWriterClose
    - WriterWriteF
    linkageType: ''
    returnType: char
    signature: char *MapNameCopy(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MapNameCopy
      Src: /src/core/libntech/libutils/file_lib.c:475,1
    - Dst: strlcpy
      Src: /src/core/libntech/libutils/file_lib.c:477,1
    - Dst: FatalError
      Src: /src/core/libntech/libutils/file_lib.c:479,1
    - Dst: TO_STRING
      Src: /src/core/libntech/libutils/file_lib.c:480,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 486
    functionName: MapName
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - MapNameCopy
    - FatalError
    - free
    - strlcpy
    - TO_STRING
    linkageType: ''
    returnType: char
    signature: char *MapName(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: MapName
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *MapName(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/file_lib.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: MapNameCopy
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *MapNameCopy(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libutils/file_lib.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: MapNameForward
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *MapNameForward(char *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:530,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:531,1
    - Dst: ListDir
      Src: /src/core/libntech/libutils/file_lib.c:533,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:535,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/file_lib.c:541,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/file_lib.c:543,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/file_lib.c:544,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/file_lib.c:548,1
    - Dst: StringCopy
      Src: /src/core/libntech/libutils/file_lib.c:553,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:555,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/file_lib.c:558,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/file_lib.c:559,1
    - Dst: basename
      Src: /src/core/libntech/libutils/file_lib.c:562,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/file_lib.c:566,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/file_lib.c:566,1
    - Dst: stat
      Src: /src/core/libntech/libutils/file_lib.c:573,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/file_lib.c:575,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/file_lib.c:578,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/file_lib.c:582,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:587,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:590,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/file_lib.c:594,1
    - Dst: callback
      Src: /src/core/libntech/libutils/file_lib.c:595,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/file_lib.c:596,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/file_lib.c:599,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/file_lib.c:602,1
    - Dst: copy
      Src: /src/core/libntech/libutils/file_lib.c:605,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/file_lib.c:606,1
    - Dst: PathWalk
      Src: /src/core/libntech/libutils/file_lib.c:608,1
    - Dst: Path_JoinAlloc
      Src: /src/core/libntech/libutils/file_lib.c:612,1
    - Dst: PathWalk
      Src: /src/core/libntech/libutils/file_lib.c:613,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:614,1
    - Dst: destroy
      Src: /src/core/libntech/libutils/file_lib.c:618,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/file_lib.c:623,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 5
    argNames:
    - path
    - callback
    - data
    - copy
    - destroy
    argTypes:
    - char*
    - PathWalkFn
    - void*
    - PathWalkCopyFn
    - PathWalkDestroyFn
    assertStmts:
    - condition: (path != NULL)
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (callback != NULL)
      pos:
        line_end: 530
        line_start: 530
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 624
      start: 523
    functionDepth: 8
    functionLinenumber: 523
    functionLinenumberEnd: 624
    functionName: PathWalk
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 2
    functionsReached:
    - copy
    - Path_JoinAlloc
    - Log
    - SeqLength
    - free
    - StringEqual
    - SeqAppend
    - SeqDestroy
    - xstrdup
    - basename
    - SeqAt
    - ListDir
    - assert
    - SeqNew
    - PathWalk
    - GetErrorStr
    - stat
    - callback
    - StringCopy
    - destroy
    linkageType: ''
    returnType: void
    signature: "void PathWalk(\n    const char *const path,\n    PathWalkFn callback,\n
      \   void *const data,\n    PathWalkCopyFn copy,\n    PathWalkDestroyFn destroy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DirOpen
      Src: /src/core/libntech/libutils/file_lib.c:628,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/file_lib.c:634,1
    - Dst: DirRead
      Src: /src/core/libntech/libutils/file_lib.c:638,1
    - Dst: StringEndsWithCase
      Src: /src/core/libntech/libutils/file_lib.c:641,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/file_lib.c:643,1
    - Dst: Path_JoinAlloc
      Src: /src/core/libntech/libutils/file_lib.c:643,1
    - Dst: DirClose
      Src: /src/core/libntech/libutils/file_lib.c:646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - dir
    - extension
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 626
    functionDepth: 4
    functionLinenumber: 626
    functionLinenumberEnd: 649
    functionName: ListDir
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - Path_JoinAlloc
    - DirRead
    - DirOpen
    - StringEndsWithCase
    - SeqNew
    - DirClose
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *ListDir(const char *dir, const char *extension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/core/libntech/libutils/file_lib.c:653,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - new_mask
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 651
    functionDepth: 8
    functionLinenumber: 651
    functionLinenumberEnd: 656
    functionName: SetUmask
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - Log
    - umask
    linkageType: ''
    returnType: mode_t
    signature: mode_t SetUmask(mode_t new_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/core/libntech/libutils/file_lib.c:659,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - old_mask
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 8
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: RestoreUmask
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - Log
    - umask
    linkageType: ''
    returnType: void
    signature: void RestoreUmask(mode_t old_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/libutils/file_lib.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pathname
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 674
    functionName: safe_open
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 41
    functionsReached:
    - safe_open_create_perms
    linkageType: ''
    returnType: int
    signature: int safe_open(const char *pathname, int flags)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:702,1
    - Dst: open
      Src: /src/core/libntech/libutils/file_lib.c:719,1
    - Dst: geteuid
      Src: /src/core/libntech/libutils/file_lib.c:723,1
    - Dst: open
      Src: /src/core/libntech/libutils/file_lib.c:726,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/file_lib.c:729,1
    - Dst: StringCopy
      Src: /src/core/libntech/libutils/file_lib.c:731,1
    - Dst: UNUSED
      Src: /src/core/libntech/libutils/file_lib.c:732,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:733,1
    - Dst: strlen
      Src: /src/core/libntech/libutils/file_lib.c:733,1
    - Dst: openat
      Src: /src/core/libntech/libutils/file_lib.c:755,1
    - Dst: geteuid
      Src: /src/core/libntech/libutils/file_lib.c:762,1
    - Dst: strchr
      Src: /src/core/libntech/libutils/file_lib.c:768,1
    - Dst: fstatat
      Src: /src/core/libntech/libutils/file_lib.c:814,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:820,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:842,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:854,1
    - Dst: openat
      Src: /src/core/libntech/libutils/file_lib.c:866,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:888,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:891,1
    - Dst: openat
      Src: /src/core/libntech/libutils/file_lib.c:896,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:897,1
    - Dst: fstat
      Src: /src/core/libntech/libutils/file_lib.c:909,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:911,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:923,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:924,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 110
    argCount: 3
    argNames:
    - pathname
    - flags
    - create_perms
    argTypes:
    - char*
    - int
    - mode_t
    assertStmts:
    - condition: (res_len == strlen(pathname))
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: ((flags & O_RDWR) || (flags & O_WRONLY))
      pos:
        line_end: 701
        line_start: 701
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (flags & O_CREAT)
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 940
      start: 696
    functionDepth: 8
    functionLinenumber: 696
    functionLinenumberEnd: 940
    functionName: safe_open_create_perms
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 8
    functionsReached:
    - fstatat
    - UNUSED
    - strlen
    - assert
    - StringCopy
    - fstat
    - strchr
    - Log
    - open
    - geteuid
    - openat
    - close
    linkageType: ''
    returnType: int
    signature: "int safe_open_create_perms(\n    const char *const pathname, int flags,
      const mode_t create_perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen_create_perms
      Src: /src/core/libntech/libutils/file_lib.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 970
    functionName: safe_fopen
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 13
    functionsReached:
    - safe_fopen_create_perms
    linkageType: ''
    returnType: FILE
    signature: FILE *safe_fopen(const char *const path, const char *const mode)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libutils/file_lib.c:1009,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/file_lib.c:1013,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/file_lib.c:1043,1
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/libutils/file_lib.c:1048,1
    - Dst: fdopen
      Src: /src/core/libntech/libutils/file_lib.c:1054,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1057,1
    - Dst: fseek
      Src: /src/core/libntech/libutils/file_lib.c:1063,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/file_lib.c:1065,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 3
    argNames:
    - path
    - mode
    - create_perms
    argTypes:
    - char*
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 987
    functionDepth: 9
    functionLinenumber: 987
    functionLinenumberEnd: 1071
    functionName: safe_fopen_create_perms
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 4
    functionsReached:
    - fdopen
    - fseek
    - safe_open_create_perms
    - strchr
    - fclose
    - ProgrammingError
    - close
    linkageType: ''
    returnType: FILE
    signature: "FILE *safe_fopen_create_perms(\n    const char *const path, const
      char *const mode, const mode_t create_perms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chdir
      Src: /src/core/libntech/libutils/file_lib.c:1081,1
    - Dst: safe_open
      Src: /src/core/libntech/libutils/file_lib.c:1083,1
    - Dst: fchdir
      Src: /src/core/libntech/libutils/file_lib.c:1088,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1090,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1096
    functionName: safe_chdir
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - chdir
    - fchdir
    - close
    - safe_open
    linkageType: ''
    returnType: int
    signature: int safe_chdir(const char *path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1130,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/file_lib.c:1135,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/file_lib.c:1136,1
    - Dst: dirname
      Src: /src/core/libntech/libutils/file_lib.c:1137,1
    - Dst: basename
      Src: /src/core/libntech/libutils/file_lib.c:1138,1
    - Dst: geteuid
      Src: /src/core/libntech/libutils/file_lib.c:1140,1
    - Dst: safe_open
      Src: /src/core/libntech/libutils/file_lib.c:1142,1
    - Dst: fstatat
      Src: /src/core/libntech/libutils/file_lib.c:1147,1
    - Dst: S_ISLNK
      Src: /src/core/libntech/libutils/file_lib.c:1167,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/file_lib.c:1178,1
    - Dst: readlinkat
      Src: /src/core/libntech/libutils/file_lib.c:1179,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1184,1
    - Dst: xasprintf
      Src: /src/core/libntech/libutils/file_lib.c:1199,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1201,1
    - Dst: safe_open_true_parent_dir
      Src: /src/core/libntech/libutils/file_lib.c:1204,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1208,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1218,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/file_lib.c:1224,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1227,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1231,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 7
    argNames:
    - path
    - flags
    - link_user
    - link_group
    - traversed_link
    - loop_countdown
    - true_leaf
    argTypes:
    - char*
    - int
    - uid_t
    - gid_t
    - bool
    - int
    - char**
    assertStmts:
    - condition: ((true_leaf == NULL) || (*true_leaf == NULL))
      pos:
        line_end: 1129
        line_start: 1129
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 1235
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1235
    functionName: safe_open_true_parent_dir
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - readlinkat
    - safe_open_true_parent_dir
    - fstatat
    - S_ISLNK
    - safe_open
    - assert
    - xasprintf
    - xmalloc
    - dirname
    - xstrdup
    - geteuid
    - free
    - basename
    - close
    linkageType: ''
    returnType: int
    signature: "int safe_open_true_parent_dir(const char *path,\n                                     int
      flags,\n                                     uid_t link_user,\n                                     gid_t
      link_group,\n                                     bool traversed_link,\n                                     int
      loop_countdown,\n                                     char **true_leaf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: safe_open_true_parent_dir
      Src: /src/core/libntech/libutils/file_lib.c:1252,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/file_lib.c:1253,1
    - Dst: basename
      Src: /src/core/libntech/libutils/file_lib.c:1254,1
    - Dst: safe_open_true_parent_dir
      Src: /src/core/libntech/libutils/file_lib.c:1260,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1265,1
    - Dst: fchownat
      Src: /src/core/libntech/libutils/file_lib.c:1274,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1275,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - path
    - owner
    - group
    - flags
    argTypes:
    - char*
    - uid_t
    - gid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1244
    functionDepth: 3
    functionLinenumber: 1244
    functionLinenumberEnd: 1278
    functionName: safe_chown_impl
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - safe_open_true_parent_dir
    - fchownat
    - xstrdup
    - free
    - basename
    - close
    linkageType: ''
    returnType: int
    signature: int safe_chown_impl(const char *path, uid_t owner, gid_t group, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chown
      Src: /src/core/libntech/libutils/file_lib.c:1292,1
    - Dst: safe_chown_impl
      Src: /src/core/libntech/libutils/file_lib.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - path
    - owner
    - group
    argTypes:
    - char*
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1289
    functionDepth: 4
    functionLinenumber: 1289
    functionLinenumberEnd: 1296
    functionName: safe_chown
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 8
    functionsReached:
    - safe_chown_impl
    - chown
    linkageType: ''
    returnType: int
    signature: int safe_chown(const char *path, uid_t owner, gid_t group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_chown_impl
      Src: /src/core/libntech/libutils/file_lib.c:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - owner
    - group
    argTypes:
    - char*
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1306
    functionDepth: 4
    functionLinenumber: 1306
    functionLinenumberEnd: 1309
    functionName: safe_lchown
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 8
    functionsReached:
    - safe_chown_impl
    linkageType: ''
    returnType: int
    signature: int safe_lchown(const char *path, uid_t owner, gid_t group)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: chmod
      Src: /src/core/libntech/libutils/file_lib.c:1321,1
    - Dst: safe_open_true_parent_dir
      Src: /src/core/libntech/libutils/file_lib.c:1327,1
    - Dst: basename
      Src: /src/core/libntech/libutils/file_lib.c:1332,1
    - Dst: fstatat
      Src: /src/core/libntech/libutils/file_lib.c:1334,1
    - Dst: S_ISFIFO
      Src: /src/core/libntech/libutils/file_lib.c:1340,1
    - Dst: S_ISSOCK
      Src: /src/core/libntech/libutils/file_lib.c:1340,1
    - Dst: geteuid
      Src: /src/core/libntech/libutils/file_lib.c:1351,1
    - Dst: seteuid
      Src: /src/core/libntech/libutils/file_lib.c:1353,1
    - Dst: fchmodat
      Src: /src/core/libntech/libutils/file_lib.c:1358,1
    - Dst: seteuid
      Src: /src/core/libntech/libutils/file_lib.c:1362,1
    - Dst: ProgrammingError
      Src: /src/core/libntech/libutils/file_lib.c:1364,1
    - Dst: safe_open
      Src: /src/core/libntech/libutils/file_lib.c:1370,1
    - Dst: fchmod
      Src: /src/core/libntech/libutils/file_lib.c:1377,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1378,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1381,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1385,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1318
    functionDepth: 3
    functionLinenumber: 1318
    functionLinenumberEnd: 1390
    functionName: safe_chmod
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 7
    functionsReached:
    - safe_open_true_parent_dir
    - fstatat
    - S_ISSOCK
    - safe_open
    - fchmod
    - S_ISFIFO
    - seteuid
    - ProgrammingError
    - geteuid
    - free
    - chmod
    - fchmodat
    - basename
    - close
    linkageType: ''
    returnType: int
    signature: int safe_chmod(const char *path, mode_t mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_open_create_perms
      Src: /src/core/libntech/libutils/file_lib.c:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pathname
    - mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1398
    functionDepth: 9
    functionLinenumber: 1398
    functionLinenumberEnd: 1403
    functionName: safe_creat
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 2
    functionsReached:
    - safe_open_create_perms
    linkageType: ''
    returnType: int
    signature: int safe_creat(const char *pathname, mode_t mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/core/libntech/libutils/file_lib.c:1409,1
    - Dst: fcntl
      Src: /src/core/libntech/libutils/file_lib.c:1418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - enable
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1419
    functionName: SetCloseOnExec
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: bool
    signature: bool SetCloseOnExec(int fd, bool enable)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DirOpen
      Src: /src/core/libntech/libutils/file_lib.c:1424,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1436,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1437,1
    - Dst: DirRead
      Src: /src/core/libntech/libutils/file_lib.c:1441,1
    - Dst: DirRead
      Src: /src/core/libntech/libutils/file_lib.c:1441,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/file_lib.c:1443,1
    - Dst: strcmp
      Src: /src/core/libntech/libutils/file_lib.c:1443,1
    - Dst: snprintf
      Src: /src/core/libntech/libutils/file_lib.c:1449,1
    - Dst: lstat
      Src: /src/core/libntech/libutils/file_lib.c:1452,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1460,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1460,1
    - Dst: S_ISDIR
      Src: /src/core/libntech/libutils/file_lib.c:1465,1
    - Dst: DeleteDirectoryTreeInternal
      Src: /src/core/libntech/libutils/file_lib.c:1467,1
    - Dst: rmdir
      Src: /src/core/libntech/libutils/file_lib.c:1472,1
    - Dst: unlink
      Src: /src/core/libntech/libutils/file_lib.c:1479,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1487,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1488,1
    - Dst: DirClose
      Src: /src/core/libntech/libutils/file_lib.c:1495,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - basepath
    - path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1422
    functionDepth: 8
    functionLinenumber: 1422
    functionLinenumberEnd: 1497
    functionName: DeleteDirectoryTreeInternal
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - snprintf
    - unlink
    - rmdir
    - DirRead
    - DirOpen
    - S_ISDIR
    - DeleteDirectoryTreeInternal
    - Log
    - strcmp
    - lstat
    - DirClose
    linkageType: ''
    returnType: bool
    signature: bool DeleteDirectoryTreeInternal(const char *basepath, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteDirectoryTreeInternal
      Src: /src/core/libntech/libutils/file_lib.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1499
    functionDepth: 9
    functionLinenumber: 1499
    functionLinenumberEnd: 1502
    functionName: DeleteDirectoryTree
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - DeleteDirectoryTreeInternal
    linkageType: ''
    returnType: bool
    signature: bool DeleteDirectoryTree(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcchr
      Src: /src/core/libntech/libutils/file_lib.c:1514,1
    - Dst: lseek
      Src: /src/core/libntech/libutils/file_lib.c:1518,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1521,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1523,1
    - Dst: FullWrite
      Src: /src/core/libntech/libutils/file_lib.c:1529,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1532,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - fd
    - buf
    - count
    - wrote_hole
    argTypes:
    - int
    - void*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1511
    functionDepth: 8
    functionLinenumber: 1511
    functionLinenumberEnd: 1541
    functionName: FileSparseWrite
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - memcchr
    - FullWrite
    - Log
    - lseek
    linkageType: ''
    returnType: bool
    signature: "bool FileSparseWrite(int fd, const void *buf, size_t count,\n                     bool
      *wrote_hole)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1569,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1570,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/file_lib.c:1573,1
    - Dst: FullRead
      Src: /src/core/libntech/libutils/file_lib.c:1582,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1585,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1587,1
    - Dst: FileSparseWrite
      Src: /src/core/libntech/libutils/file_lib.c:1596,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1600,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1608,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 7
    argNames:
    - sd
    - src_name
    - dd
    - dst_name
    - blk_size
    - total_bytes_written
    - last_write_was_a_hole
    argTypes:
    - int
    - char*
    - int
    - char*
    - size_t
    - size_t*
    - bool*
    assertStmts:
    - condition: (total_bytes_written   != NULL)
      pos:
        line_end: 1568
        line_start: 1568
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (last_write_was_a_hole != NULL)
      pos:
        line_end: 1569
        line_start: 1569
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 1611
      start: 1563
    functionDepth: 9
    functionLinenumber: 1563
    functionLinenumberEnd: 1611
    functionName: FileSparseCopyShoveling
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - FileSparseWrite
    - assert
    - FullRead
    - xmalloc
    - Log
    - free
    linkageType: ''
    returnType: SMART_SYSCALLS_UNUSED
    signature: "SMART_SYSCALLS_UNUSED FileSparseCopyShoveling(int sd, const char *src_name,\n
      \                                                         int dd, const char
      *dst_name,\n                                                          size_t
      blk_size,\n                                                          size_t
      *total_bytes_written,\n                                                          bool
      \  *last_write_was_a_hole)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1629,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1630,1
    - Dst: FileSparseCopyShoveling
      Src: /src/core/libntech/libutils/file_lib.c:1633,1
    - Dst: fstat
      Src: /src/core/libntech/libutils/file_lib.c:1642,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1648,1
    - Dst: fstat
      Src: /src/core/libntech/libutils/file_lib.c:1654,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1660,1
    - Dst: ioctl
      Src: /src/core/libntech/libutils/file_lib.c:1672,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1674,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1681,1
    - Dst: ftruncate
      Src: /src/core/libntech/libutils/file_lib.c:1687,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1689,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1696,1
    - Dst: fallocate
      Src: /src/core/libntech/libutils/file_lib.c:1711,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1714,1
    - Dst: lseek
      Src: /src/core/libntech/libutils/file_lib.c:1732,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1746,1
    - Dst: lseek
      Src: /src/core/libntech/libutils/file_lib.c:1752,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1755,1
    - Dst: lseek
      Src: /src/core/libntech/libutils/file_lib.c:1759,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1763,1
    - Dst: lseek
      Src: /src/core/libntech/libutils/file_lib.c:1766,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1769,1
    - Dst: copy_file_range
      Src: /src/core/libntech/libutils/file_lib.c:1779,1
    - Dst: sendfile
      Src: /src/core/libntech/libutils/file_lib.c:1785,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 96
    argCount: 7
    argNames:
    - sd
    - src_name
    - dd
    - dst_name
    - blk_size
    - total_bytes_written
    - last_write_was_a_hole
    argTypes:
    - int
    - char*
    - int
    - char*
    - SMART_SYSCALLS_UNUSED
    - size_t*
    - bool*
    assertStmts:
    - condition: (total_bytes_written != NULL)
      pos:
        line_end: 1628
        line_start: 1628
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (last_write_was_a_hole != NULL)
      pos:
        line_end: 1629
        line_start: 1629
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 1799
      start: 1623
    functionDepth: 10
    functionLinenumber: 1623
    functionLinenumberEnd: 1799
    functionName: FileSparseCopy
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - FileSparseCopyShoveling
    - ioctl
    - fallocate
    - ftruncate
    - assert
    - fstat
    - sendfile
    - Log
    - copy_file_range
    - lseek
    linkageType: ''
    returnType: bool
    signature: "bool FileSparseCopy(int sd, const char *src_name,\n                    int
      dd, const char *dst_name,\n                    SMART_SYSCALLS_UNUSED size_t
      blk_size,\n                    size_t *total_bytes_written,\n                    bool
      *last_write_was_a_hole)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fsync
      Src: /src/core/libntech/libutils/file_lib.c:1828,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1830,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1833,1
    - Dst: FullWrite
      Src: /src/core/libntech/libutils/file_lib.c:1838,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1841,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1843,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1844,1
    - Dst: ftruncate
      Src: /src/core/libntech/libutils/file_lib.c:1848,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1851,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1853,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1854,1
    - Dst: fsync
      Src: /src/core/libntech/libutils/file_lib.c:1861,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1863,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1865,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:1869,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1872,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1874,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - fd
    - filename
    - do_sync
    - total_bytes_written
    - last_write_was_hole
    argTypes:
    - int
    - char*
    - bool
    - SMART_SYSCALLS_UNUSED
    - SMART_SYSCALLS_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1820
    functionDepth: 8
    functionLinenumber: 1820
    functionLinenumberEnd: 1880
    functionName: FileSparseClose
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ftruncate
    - FullWrite
    - Log
    - fsync
    - close
    linkageType: ''
    returnType: bool
    signature: "bool FileSparseClose(int fd, const char *filename,\n                     bool
      do_sync,\n                     SMART_SYSCALLS_UNUSED size_t total_bytes_written,\n
      \                    SMART_SYSCALLS_UNUSED bool last_write_was_hole)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/core/libntech/libutils/file_lib.c:1885,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - buff
    - size
    - fp
    argTypes:
    - char**
    - size_t*
    - FILE*
    assertStmts:
    - condition: (b != 0 && "To the best of my knowledge, getline never returns zero")
      pos:
        line_end: 1885
        line_start: 1885
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 1898
      start: 1883
    functionDepth: 1
    functionLinenumber: 1883
    functionLinenumberEnd: 1898
    functionName: CfReadLine
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 8
    functionsReached:
    - getline
    - assert
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t CfReadLine(char **buff, size_t *size, FILE *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1902,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1903,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1904,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1905,1
    - Dst: feof
      Src: /src/core/libntech/libutils/file_lib.c:1911,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:1913,1
    - Dst: CfReadLine
      Src: /src/core/libntech/libutils/file_lib.c:1914,1
    - Dst: feof
      Src: /src/core/libntech/libutils/file_lib.c:1917,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1921,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/file_lib.c:1928,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/file_lib.c:1928,1
    - Dst: free
      Src: /src/core/libntech/libutils/file_lib.c:1934,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - buff
    - size
    - fp
    - lines
    argTypes:
    - char**
    - size_t*
    - FILE*
    - Seq*
    assertStmts:
    - condition: (size != NULL)
      pos:
        line_end: 1901
        line_start: 1901
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lines != NULL)
      pos:
        line_end: 1903
        line_start: 1903
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: ((buff != NULL) || *size == 0)
      pos:
        line_end: 1904
        line_start: 1904
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (fp != NULL)
      pos:
        line_end: 1902
        line_start: 1902
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: ((buff != NULL) || *size == 0)
      pos:
        line_end: 1912
        line_start: 1912
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 1938
      start: 1900
    functionDepth: 3
    functionLinenumber: 1900
    functionLinenumberEnd: 1938
    functionName: CfReadLines
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - assert
    - feof
    - xstrdup
    - free
    - CfReadLine
    - SeqAppend
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t CfReadLines(char **buff, size_t *size, FILE *fp, Seq *lines)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/core/libntech/libutils/file_lib.c:1956,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1960,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1961,1
    - Dst: fcntl
      Src: /src/core/libntech/libutils/file_lib.c:1969,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1971,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1972,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - fd
    - lock_type
    - wait
    argTypes:
    - int
    - short int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1945
    functionDepth: 8
    functionLinenumber: 1945
    functionLinenumberEnd: 1978
    functionName: LockFD
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fcntl
    - Log
    linkageType: ''
    returnType: int
    signature: int LockFD(int fd, short int lock_type, bool wait)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/core/libntech/libutils/file_lib.c:1989,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:1991,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:1992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1980
    functionDepth: 8
    functionLinenumber: 1980
    functionLinenumberEnd: 1997
    functionName: UnlockFD
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fcntl
    - Log
    linkageType: ''
    returnType: int
    signature: int UnlockFD(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2001,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2002,1
    - Dst: LockFD
      Src: /src/core/libntech/libutils/file_lib.c:2004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lock
    - wait
    argTypes:
    - FileLock*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2000
        line_start: 2000
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd >= 0)
      pos:
        line_end: 2001
        line_start: 2001
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2005
      start: 1999
    functionDepth: 9
    functionLinenumber: 1999
    functionLinenumberEnd: 2005
    functionName: ExclusiveFileLock
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 3
    functionsReached:
    - assert
    - LockFD
    linkageType: ''
    returnType: int
    signature: int ExclusiveFileLock(FileLock *lock, bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2009,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2010,1
    - Dst: LockFD
      Src: /src/core/libntech/libutils/file_lib.c:2012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lock
    - wait
    argTypes:
    - FileLock*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2008
        line_start: 2008
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd >= 0)
      pos:
        line_end: 2009
        line_start: 2009
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2013
      start: 2007
    functionDepth: 9
    functionLinenumber: 2007
    functionLinenumberEnd: 2013
    functionName: SharedFileLock
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 2
    functionsReached:
    - assert
    - LockFD
    linkageType: ''
    returnType: int
    signature: int SharedFileLock(FileLock *lock, bool wait)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2017,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2018,1
    - Dst: fcntl
      Src: /src/core/libntech/libutils/file_lib.c:2026,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:2029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lock
    argTypes:
    - FileLock*
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2016
        line_start: 2016
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd >= 0)
      pos:
        line_end: 2017
        line_start: 2017
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2033
      start: 2015
    functionDepth: 8
    functionLinenumber: 2015
    functionLinenumberEnd: 2033
    functionName: ExclusiveFileLockCheck
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 3
    functionsReached:
    - assert
    - fcntl
    - Log
    linkageType: ''
    returnType: bool
    signature: bool ExclusiveFileLockCheck(FileLock *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2037,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2038,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:2043,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:2046,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:2047,1
    - Dst: UnlockFD
      Src: /src/core/libntech/libutils/file_lib.c:2057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - lock
    - close_fd
    argTypes:
    - FileLock*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2036
        line_start: 2036
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd >= 0)
      pos:
        line_end: 2037
        line_start: 2037
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2059
      start: 2035
    functionDepth: 9
    functionLinenumber: 2035
    functionLinenumberEnd: 2059
    functionName: ExclusiveFileUnlock
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 3
    functionsReached:
    - GetErrorStr
    - assert
    - UnlockFD
    - Log
    - close
    linkageType: ''
    returnType: int
    signature: int ExclusiveFileUnlock(FileLock *lock, bool close_fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2063,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2064,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/libutils/file_lib.c:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lock
    - close_fd
    argTypes:
    - FileLock*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2062
        line_start: 2062
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd >= 0)
      pos:
        line_end: 2063
        line_start: 2063
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2068
      start: 2061
    functionDepth: 10
    functionLinenumber: 2061
    functionLinenumberEnd: 2068
    functionName: SharedFileUnlock
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - ExclusiveFileUnlock
    linkageType: ''
    returnType: int
    signature: int SharedFileUnlock(FileLock *lock, bool close_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/core/libntech/libutils/file_lib.c:2082,1
    - Dst: LockFileEx
      Src: /src/core/libntech/libutils/file_lib.c:2084,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:2086,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:2087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - flags
    - wait
    argTypes:
    - int
    - DWORD
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2072
    functionDepth: 8
    functionLinenumber: 2072
    functionLinenumberEnd: 2092
    functionName: LockFD
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - LockFileEx
    - Log
    - _get_osfhandle
    linkageType: ''
    returnType: int
    signature: int LockFD(int fd, DWORD flags, bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2096,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2097,1
    - Dst: LockFD
      Src: /src/core/libntech/libutils/file_lib.c:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lock
    - wait
    argTypes:
    - FileLock*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2095
        line_start: 2095
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd >= 0)
      pos:
        line_end: 2096
        line_start: 2096
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2100
      start: 2094
    functionDepth: 9
    functionLinenumber: 2094
    functionLinenumberEnd: 2100
    functionName: ExclusiveFileLock
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 3
    functionsReached:
    - assert
    - LockFD
    linkageType: ''
    returnType: int
    signature: int ExclusiveFileLock(FileLock *lock, bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2104,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2105,1
    - Dst: LockFD
      Src: /src/core/libntech/libutils/file_lib.c:2107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lock
    - wait
    argTypes:
    - FileLock*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2103
        line_start: 2103
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd >= 0)
      pos:
        line_end: 2104
        line_start: 2104
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2108
      start: 2102
    functionDepth: 9
    functionLinenumber: 2102
    functionLinenumberEnd: 2108
    functionName: SharedFileLock
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 2
    functionsReached:
    - assert
    - LockFD
    linkageType: ''
    returnType: int
    signature: int SharedFileLock(FileLock *lock, bool wait)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/core/libntech/libutils/file_lib.c:2115,1
    - Dst: UnlockFileEx
      Src: /src/core/libntech/libutils/file_lib.c:2117,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:2119,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libutils/file_lib.c:2120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2110
    functionDepth: 8
    functionLinenumber: 2110
    functionLinenumberEnd: 2125
    functionName: UnlockFD
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - UnlockFileEx
    - Log
    - _get_osfhandle
    linkageType: ''
    returnType: int
    signature: int UnlockFD(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - FileLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2132
    functionName: ExclusiveFileLockCheck
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ExclusiveFileLockCheck(FileLock *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2136,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2137,1
    - Dst: UnlockFD
      Src: /src/core/libntech/libutils/file_lib.c:2139,1
    - Dst: close
      Src: /src/core/libntech/libutils/file_lib.c:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - lock
    - close_fd
    argTypes:
    - FileLock*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2135
        line_start: 2135
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd >= 0)
      pos:
        line_end: 2136
        line_start: 2136
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2146
      start: 2134
    functionDepth: 9
    functionLinenumber: 2134
    functionLinenumberEnd: 2146
    functionName: ExclusiveFileUnlock
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 4
    functionsReached:
    - assert
    - close
    - UnlockFD
    linkageType: ''
    returnType: int
    signature: int ExclusiveFileUnlock(FileLock *lock, bool close_fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2150,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2151,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libntech/libutils/file_lib.c:2154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lock
    - close_fd
    argTypes:
    - FileLock*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2149
        line_start: 2149
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd >= 0)
      pos:
        line_end: 2150
        line_start: 2150
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2155
      start: 2148
    functionDepth: 10
    functionLinenumber: 2148
    functionLinenumberEnd: 2155
    functionName: SharedFileUnlock
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - ExclusiveFileUnlock
    linkageType: ''
    returnType: int
    signature: int SharedFileUnlock(FileLock *lock, bool close_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2161,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2162,1
    - Dst: safe_open
      Src: /src/core/libntech/libutils/file_lib.c:2164,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:2167,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libntech/libutils/file_lib.c:2172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - lock
    - fpath
    - wait
    argTypes:
    - FileLock*
    - char*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2160
        line_start: 2160
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd < 0)
      pos:
        line_end: 2161
        line_start: 2161
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2178
      start: 2159
    functionDepth: 10
    functionLinenumber: 2159
    functionLinenumberEnd: 2178
    functionName: ExclusiveFileLockPath
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - ExclusiveFileLock
    - safe_open
    linkageType: ''
    returnType: int
    signature: int ExclusiveFileLockPath(FileLock *lock, const char *fpath, bool wait)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2182,1
    - Dst: assert
      Src: /src/core/libntech/libutils/file_lib.c:2183,1
    - Dst: safe_open
      Src: /src/core/libntech/libutils/file_lib.c:2185,1
    - Dst: Log
      Src: /src/core/libntech/libutils/file_lib.c:2188,1
    - Dst: SharedFileLock
      Src: /src/core/libntech/libutils/file_lib.c:2193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - lock
    - fpath
    - wait
    argTypes:
    - FileLock*
    - char*
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 2181
        line_start: 2181
        source_file: /src/core/libntech/libutils/file_lib.c
    - condition: (lock->fd < 0)
      pos:
        line_end: 2182
        line_start: 2182
        source_file: /src/core/libntech/libutils/file_lib.c
    constantsTouched: []
    func_position:
      end: 2199
      start: 2180
    functionDepth: 10
    functionLinenumber: 2180
    functionLinenumberEnd: 2199
    functionName: SharedFileLockPath
    functionSourceFile: /src/core/libntech/libutils/file_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - SharedFileLock
    - Log
    - safe_open
    linkageType: ''
    returnType: int
    signature: int SharedFileLockPath(FileLock *lock, const char *fpath, bool wait)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/string_sequence.c:27,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/string_sequence.c:27,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/string_sequence.c:31,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/string_sequence.c:31,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/string_sequence.c:41,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/string_sequence.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - seq
    - str
    - delimiter
    argTypes:
    - Seq*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 44
    functionName: SeqStringAddSplit
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 0
    functionsReached:
    - xstrndup
    - xstrdup
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void SeqStringAddSplit(Seq *seq, const char *str, char delimiter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/string_sequence.c:48,1
    - Dst: SeqStringAddSplit
      Src: /src/core/libntech/libutils/string_sequence.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - delimiter
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: SeqStringFromString
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 1
    functionsReached:
    - SeqStringAddSplit
    - SeqNew
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqStringFromString(const char *str, char delimiter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:57,1
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/string_sequence.c:59,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/string_sequence.c:60,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/string_sequence.c:65,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/string_sequence.c:67,1
    - Dst: WriterWrite
      Src: /src/core/libntech/libutils/string_sequence.c:68,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/string_sequence.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - seq
    - sep
    argTypes:
    - Seq*
    - char*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/core/libntech/libutils/string_sequence.c
    constantsTouched: []
    func_position:
      end: 73
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 73
    functionName: StringJoin
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 2
    functionsReached:
    - assert
    - WriterWrite
    - StringWriter
    - StringWriterClose
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: char
    signature: char *StringJoin(const Seq *const seq, const char *sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:77,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:78,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/string_sequence.c:80,1
    - Dst: strpbrk
      Src: /src/core/libntech/libutils/string_sequence.c:83,1
    - Dst: xstrndup
      Src: /src/core/libntech/libutils/string_sequence.c:87,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/string_sequence.c:88,1
    - Dst: strpbrk
      Src: /src/core/libntech/libutils/string_sequence.c:90,1
    - Dst: xstrdup
      Src: /src/core/libntech/libutils/string_sequence.c:93,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/string_sequence.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - str
    - charset
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/core/libntech/libutils/string_sequence.c
    - condition: (charset != NULL)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/core/libntech/libutils/string_sequence.c
    constantsTouched: []
    func_position:
      end: 97
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 97
    functionName: StringSplit
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 3
    functionsReached:
    - strpbrk
    - assert
    - SeqNew
    - xstrdup
    - xstrndup
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *StringSplit(const char *const str, const char *const charset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:101,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:102,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/string_sequence.c:104,1
    - Dst: StringEqual
      Src: /src/core/libntech/libutils/string_sequence.c:107,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/string_sequence.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - seq
    - str
    argTypes:
    - Seq*
    - char*
    assertStmts:
    - condition: (seq != NULL)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/core/libntech/libutils/string_sequence.c
    - condition: (str != NULL)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/core/libntech/libutils/string_sequence.c
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: SeqStringContains
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - assert
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool SeqStringContains(const Seq *const seq, const char *const str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:117,1
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/string_sequence.c:120,1
    - Dst: SafeStringLength
      Src: /src/core/libntech/libutils/string_sequence.c:123,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/string_sequence.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seq
    argTypes:
    - Seq*
    assertStmts:
    - condition: (seq)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/core/libntech/libutils/string_sequence.c
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: SeqStringLength
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - assert
    - SafeStringLength
    - SeqAt
    linkageType: ''
    returnType: int
    signature: int SeqStringLength(Seq *seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: HasNulByte
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasNulByte(const char *str, size_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HasNulByte
      Src: /src/core/libntech/libutils/string_sequence.c:144,1
    - Dst: isdigit
      Src: /src/core/libntech/libutils/string_sequence.c:149,1
    - Dst: sscanf
      Src: /src/core/libntech/libutils/string_sequence.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 170
    functionName: GetLengthPrefix
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 1
    functionsReached:
    - sscanf
    - isdigit
    - HasNulByte
    linkageType: ''
    returnType: long
    signature: long GetLengthPrefix(const char *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:174,1
    - Dst: xcalloc
      Src: /src/core/libntech/libutils/string_sequence.c:175,1
    - Dst: StringCopy
      Src: /src/core/libntech/libutils/string_sequence.c:177,1
    - Dst: free
      Src: /src/core/libntech/libutils/string_sequence.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (src != NULL)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/core/libntech/libutils/string_sequence.c
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: ValidDuplicate
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 1
    functionsReached:
    - assert
    - StringCopy
    - free
    - xcalloc
    linkageType: ''
    returnType: char
    signature: char *ValidDuplicate(const char *src, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libutils/string_sequence.c:190,1
    - Dst: WriterWriteF
      Src: /src/core/libntech/libutils/string_sequence.c:191,1
    - Dst: TO_STRING
      Src: /src/core/libntech/libutils/string_sequence.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - w
    - string
    argTypes:
    - Writer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: WriteLenPrefixedString
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - TO_STRING
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool WriteLenPrefixedString(Writer *w, const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libntech/libutils/string_sequence.c:204,1
    - Dst: SeqAt
      Src: /src/core/libntech/libutils/string_sequence.c:207,1
    - Dst: WriteLenPrefixedString
      Src: /src/core/libntech/libutils/string_sequence.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - seq
    - w
    argTypes:
    - Seq*
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: SeqStringWrite
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - WriteLenPrefixedString
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool SeqStringWrite(Seq *seq, Writer *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libntech/libutils/string_sequence.c:219,1
    - Dst: SeqStringWrite
      Src: /src/core/libntech/libutils/string_sequence.c:220,1
    - Dst: StringWriterClose
      Src: /src/core/libntech/libutils/string_sequence.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seq
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: SeqStringSerialize
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 1
    functionsReached:
    - StringWriterClose
    - SeqStringWrite
    - StringWriter
    linkageType: ''
    returnType: char
    signature: char *SeqStringSerialize(Seq *seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileWriter
      Src: /src/core/libntech/libutils/string_sequence.c:226,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:227,1
    - Dst: SeqStringWrite
      Src: /src/core/libntech/libutils/string_sequence.c:229,1
    - Dst: FileWriterDetach
      Src: /src/core/libntech/libutils/string_sequence.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seq
    - file
    argTypes:
    - Seq*
    - FILE*
    assertStmts:
    - condition: (w != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/core/libntech/libutils/string_sequence.c
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: SeqStringWriteFileStream
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - assert
    - FileWriterDetach
    - SeqStringWrite
    linkageType: ''
    returnType: bool
    signature: bool SeqStringWriteFileStream(Seq *seq, FILE *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libntech/libutils/string_sequence.c:236,1
    - Dst: SeqStringWriteFileStream
      Src: /src/core/libntech/libutils/string_sequence.c:242,1
    - Dst: fclose
      Src: /src/core/libntech/libutils/string_sequence.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - seq
    - file
    argTypes:
    - Seq*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: SeqStringWriteFile
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 2
    functionsReached:
    - safe_fopen
    - SeqStringWriteFileStream
    - fclose
    linkageType: ''
    returnType: bool
    signature: bool SeqStringWriteFile(Seq *seq, const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:249,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:250,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/string_sequence.c:252,1
    - Dst: GetLengthPrefix
      Src: /src/core/libntech/libutils/string_sequence.c:258,1
    - Dst: ValidDuplicate
      Src: /src/core/libntech/libutils/string_sequence.c:268,1
    - Dst: free
      Src: /src/core/libntech/libutils/string_sequence.c:271,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/string_sequence.c:272,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/string_sequence.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - serialized
    argTypes:
    - char*
    assertStmts:
    - condition: (serialized != NULL)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/core/libntech/libutils/string_sequence.c
    - condition: (STR_LENGTH_PREFIX_LEN > 0)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/core/libntech/libutils/string_sequence.c
    constantsTouched: []
    func_position:
      end: 283
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 283
    functionName: SeqStringDeserialize
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 2
    functionsReached:
    - SeqDestroy
    - assert
    - GetLengthPrefix
    - SeqNew
    - ValidDuplicate
    - free
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqStringDeserialize(const char *const serialized)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FullRead
      Src: /src/core/libntech/libutils/string_sequence.c:288,1
    - Dst: assert
      Src: /src/core/libntech/libutils/string_sequence.c:299,1
    - Dst: GetLengthPrefix
      Src: /src/core/libntech/libutils/string_sequence.c:300,1
    - Dst: xmalloc
      Src: /src/core/libntech/libutils/string_sequence.c:304,1
    - Dst: FullRead
      Src: /src/core/libntech/libutils/string_sequence.c:305,1
    - Dst: free
      Src: /src/core/libntech/libutils/string_sequence.c:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - fd
    - string
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (prefix[STR_LENGTH_PREFIX_LEN - 1] == ' ')
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/core/libntech/libutils/string_sequence.c
    constantsTouched: []
    func_position:
      end: 316
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 316
    functionName: ReadLenPrefixedString
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 0
    functionsReached:
    - assert
    - GetLengthPrefix
    - FullRead
    - xmalloc
    - free
    linkageType: ''
    returnType: int
    signature: int ReadLenPrefixedString(int fd, char **string)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_open
      Src: /src/core/libntech/libutils/string_sequence.c:320,1
    - Dst: SeqNew
      Src: /src/core/libntech/libutils/string_sequence.c:326,1
    - Dst: ReadLenPrefixedString
      Src: /src/core/libntech/libutils/string_sequence.c:331,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/libutils/string_sequence.c:335,1
    - Dst: SeqAppend
      Src: /src/core/libntech/libutils/string_sequence.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 348
    functionName: SeqStringReadFile
    functionSourceFile: /src/core/libntech/libutils/string_sequence.c
    functionUses: 2
    functionsReached:
    - ReadLenPrefixedString
    - SeqDestroy
    - safe_open
    - SeqNew
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *SeqStringReadFile(const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/core/libntech/libutils/alloc.c:33,1
    - Dst: fputs
      Src: /src/core/libntech/libutils/alloc.c:34,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libntech/libutils/alloc.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - fn
    - check_result
    argTypes:
    - void*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: CheckResult
    functionSourceFile: /src/core/libntech/libutils/alloc.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - fputs
    linkageType: ''
    returnType: void
    signature: void *CheckResult(void *ptr, const char *fn, bool check_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckResult
      Src: /src/core/libntech/libutils/alloc.c:42,1
    - Dst: malloc
      Src: /src/core/libntech/libutils/alloc.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: xmalloc
    functionSourceFile: /src/core/libntech/libutils/alloc.c
    functionUses: 74
    functionsReached:
    - CheckResult
    - malloc
    linkageType: ''
    returnType: void
    signature: void *xmalloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckResult
      Src: /src/core/libntech/libutils/alloc.c:47,1
    - Dst: calloc
      Src: /src/core/libntech/libutils/alloc.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: xcalloc
    functionSourceFile: /src/core/libntech/libutils/alloc.c
    functionUses: 43
    functionsReached:
    - CheckResult
    - calloc
    linkageType: ''
    returnType: void
    signature: void *xcalloc(size_t nmemb, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckResult
      Src: /src/core/libntech/libutils/alloc.c:52,1
    - Dst: realloc
      Src: /src/core/libntech/libutils/alloc.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: xrealloc
    functionSourceFile: /src/core/libntech/libutils/alloc.c
    functionUses: 7
    functionsReached:
    - CheckResult
    - realloc
    linkageType: ''
    returnType: void
    signature: void *xrealloc(void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckResult
      Src: /src/core/libntech/libutils/alloc.c:57,1
    - Dst: strdup
      Src: /src/core/libntech/libutils/alloc.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: xstrdup
    functionSourceFile: /src/core/libntech/libutils/alloc.c
    functionUses: 115
    functionsReached:
    - CheckResult
    - strdup
    linkageType: ''
    returnType: char
    signature: char *xstrdup(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckResult
      Src: /src/core/libntech/libutils/alloc.c:62,1
    - Dst: strndup
      Src: /src/core/libntech/libutils/alloc.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: xstrndup
    functionSourceFile: /src/core/libntech/libutils/alloc.c
    functionUses: 9
    functionsReached:
    - CheckResult
    - strndup
    linkageType: ''
    returnType: char
    signature: char *xstrndup(const char *str, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckResult
      Src: /src/core/libntech/libutils/alloc.c:67,1
    - Dst: memdup
      Src: /src/core/libntech/libutils/alloc.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: xmemdup
    functionSourceFile: /src/core/libntech/libutils/alloc.c
    functionUses: 8
    functionsReached:
    - CheckResult
    - memdup
    linkageType: ''
    returnType: void
    signature: void *xmemdup(const void *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libutils/alloc.c:74,1
    - Dst: xvasprintf
      Src: /src/core/libntech/libutils/alloc.c:75,1
    - Dst: va_end
      Src: /src/core/libntech/libutils/alloc.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - strp
    - fmt
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: xasprintf
    functionSourceFile: /src/core/libntech/libutils/alloc.c
    functionUses: 20
    functionsReached:
    - xvasprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int xasprintf(char **strp, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vasprintf
      Src: /src/core/libntech/libutils/alloc.c:83,1
    - Dst: CheckResult
      Src: /src/core/libntech/libutils/alloc.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - strp
    - fmt
    - ap
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: xvasprintf
    functionSourceFile: /src/core/libntech/libutils/alloc.c
    functionUses: 7
    functionsReached:
    - CheckResult
    - vasprintf
    linkageType: ''
    returnType: int
    signature: int xvasprintf(char **strp, const char *fmt, va_list ap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JsonParseAll
      Src: /src/core/libntech/examples/json_example.c:8,1
    - Dst: printf
      Src: /src/core/libntech/examples/json_example.c:10,1
    - Dst: JsonParseErrorToString
      Src: /src/core/libntech/examples/json_example.c:10,1
    - Dst: FileWriter
      Src: /src/core/libntech/examples/json_example.c:13,1
    - Dst: printf
      Src: /src/core/libntech/examples/json_example.c:15,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/examples/json_example.c:16,1
    - Dst: JsonWrite
      Src: /src/core/libntech/examples/json_example.c:19,1
    - Dst: JsonDestroy
      Src: /src/core/libntech/examples/json_example.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - json_data
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 6
    functionDepth: 7
    functionLinenumber: 6
    functionLinenumberEnd: 23
    functionName: JsonParseAndWrite
    functionSourceFile: /src/core/libntech/examples/json_example.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - JsonDestroy
    - printf
    - JsonParseAll
    - JsonWrite
    - JsonParseErrorToString
    linkageType: ''
    returnType: int
    signature: int JsonParseAndWrite(const char *json_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JsonParseAndWrite
      Src: /src/core/libntech/examples/json_example.c:26,1
    - Dst: puts
      Src: /src/core/libntech/examples/json_example.c:30,1
    - Dst: JsonParseAndWrite
      Src: /src/core/libntech/examples/json_example.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: main
    functionSourceFile: /src/core/libntech/examples/json_example.c
    functionUses: 1
    functionsReached:
    - puts
    - JsonParseAndWrite
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libntech/examples/sequence_example.c:9,1
    - Dst: SeqAppend
      Src: /src/core/libntech/examples/sequence_example.c:10,1
    - Dst: strdup
      Src: /src/core/libntech/examples/sequence_example.c:10,1
    - Dst: SeqAppend
      Src: /src/core/libntech/examples/sequence_example.c:11,1
    - Dst: strdup
      Src: /src/core/libntech/examples/sequence_example.c:11,1
    - Dst: SeqLength
      Src: /src/core/libntech/examples/sequence_example.c:13,1
    - Dst: printf
      Src: /src/core/libntech/examples/sequence_example.c:15,1
    - Dst: SeqAt
      Src: /src/core/libntech/examples/sequence_example.c:15,1
    - Dst: printf
      Src: /src/core/libntech/examples/sequence_example.c:17,1
    - Dst: SeqDestroy
      Src: /src/core/libntech/examples/sequence_example.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 8
    functionDepth: 3
    functionLinenumber: 8
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/core/libntech/examples/sequence_example.c
    functionUses: 1
    functionsReached:
    - SeqDestroy
    - printf
    - SeqNew
    - SeqLength
    - strdup
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/core/libntech/libcompat/openat.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: openat_inner
    functionSourceFile: /src/core/libntech/libcompat/openat.c
    functionUses: 0
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int openat_inner(void *generic_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/core/libntech/libcompat/openat.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: cleanup
    functionSourceFile: /src/core/libntech/libcompat/openat.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void cleanup(void *generic_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libcompat/openat.c:68,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/openat.c:69,1
    - Dst: va_end
      Src: /src/core/libntech/libcompat/openat.c:70,1
    - Dst: generic_at_function
      Src: /src/core/libntech/libcompat/openat.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - dirfd
    - pathname
    - flags
    argTypes:
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: openat
    functionSourceFile: /src/core/libntech/libcompat/openat.c
    functionUses: 1
    functionsReached:
    - va_arg
    - va_end
    - generic_at_function
    - va_start
    linkageType: ''
    returnType: int
    signature: int openat(int dirfd, const char *pathname, int flags, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setvbuf
      Src: /src/core/libntech/libcompat/setlinebuf.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: setlinebuf
    functionSourceFile: /src/core/libntech/libcompat/setlinebuf.c
    functionUses: 0
    functionsReached:
    - setvbuf
    linkageType: ''
    returnType: void
    signature: void setlinebuf(FILE *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: strlcpy
    functionSourceFile: /src/core/libntech/libcompat/strlcpy.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strlcpy(char *dst, const char *src, size_t siz)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/core/libntech/libcompat/closefrom.c:39,1
    - Dst: getpid
      Src: /src/core/libntech/libcompat/closefrom.c:44,1
    - Dst: pstat_getfile2
      Src: /src/core/libntech/libcompat/closefrom.c:48,1
    - Dst: close
      Src: /src/core/libntech/libcompat/closefrom.c:60,1
    - Dst: xsnprintf
      Src: /src/core/libntech/libcompat/closefrom.c:68,1
    - Dst: getpid
      Src: /src/core/libntech/libcompat/closefrom.c:68,1
    - Dst: opendir
      Src: /src/core/libntech/libcompat/closefrom.c:70,1
    - Dst: dirfd
      Src: /src/core/libntech/libcompat/closefrom.c:73,1
    - Dst: readdir
      Src: /src/core/libntech/libcompat/closefrom.c:76,1
    - Dst: strcmp
      Src: /src/core/libntech/libcompat/closefrom.c:80,1
    - Dst: strcmp
      Src: /src/core/libntech/libcompat/closefrom.c:80,1
    - Dst: sscanf
      Src: /src/core/libntech/libcompat/closefrom.c:85,1
    - Dst: closedir
      Src: /src/core/libntech/libcompat/closefrom.c:87,1
    - Dst: close
      Src: /src/core/libntech/libcompat/closefrom.c:94,1
    - Dst: closedir
      Src: /src/core/libntech/libcompat/closefrom.c:98,1
    - Dst: sysconf
      Src: /src/core/libntech/libcompat/closefrom.c:107,1
    - Dst: close
      Src: /src/core/libntech/libcompat/closefrom.c:114,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 119
    functionName: closefrom
    functionSourceFile: /src/core/libntech/libcompat/closefrom.c
    functionUses: 1
    functionsReached:
    - readdir
    - closedir
    - getpid
    - fcntl
    - pstat_getfile2
    - sysconf
    - sscanf
    - opendir
    - dirfd
    - xsnprintf
    - strcmp
    - close
    linkageType: ''
    returnType: int
    signature: int closefrom(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chmod
      Src: /src/core/libntech/libcompat/fchmodat.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: fchmodat_inner
    functionSourceFile: /src/core/libntech/libcompat/fchmodat.c
    functionUses: 0
    functionsReached:
    - chmod
    linkageType: ''
    returnType: int
    signature: int fchmodat_inner(void *generic_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: cleanup
    functionSourceFile: /src/core/libntech/libcompat/fchmodat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup(ARG_UNUSED void *generic_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generic_at_function
      Src: /src/core/libntech/libcompat/fchmodat.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dirfd
    - pathname
    - mode
    - flags
    argTypes:
    - int
    - char*
    - mode_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: fchmodat
    functionSourceFile: /src/core/libntech/libcompat/fchmodat.c
    functionUses: 1
    functionsReached:
    - generic_at_function
    linkageType: ''
    returnType: int
    signature: int fchmodat(int dirfd, const char *pathname, mode_t mode, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libcompat/strcasestr.c:37,1
    - Dst: strncasecmp
      Src: /src/core/libntech/libcompat/strcasestr.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: strcasestr
    functionSourceFile: /src/core/libntech/libcompat/strcasestr.c
    functionUses: 1
    functionsReached:
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strcasestr(const char *haystack, const char *needle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/core/libntech/libcompat/srand48.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: srand48
    functionSourceFile: /src/core/libntech/libcompat/srand48.c
    functionUses: 2
    functionsReached:
    - srand
    linkageType: ''
    returnType: void
    signature: void srand48(long seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libntech/libcompat/strsignal.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: strsignal
    functionSourceFile: /src/core/libntech/libcompat/strsignal.c
    functionUses: 2
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *strsignal(int sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - stringp
    - delim
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 77
    functionName: strsep
    functionSourceFile: /src/core/libntech/libcompat/strsep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strsep(char **stringp, const char *delim)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/libntech/libcompat/clock_gettime.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - clockid_t
    - tp
    argTypes:
    - ARG_UNUSED
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: clock_gettime
    functionSourceFile: /src/core/libntech/libcompat/clock_gettime.c
    functionUses: 3
    functionsReached:
    - time
    linkageType: ''
    returnType: int
    signature: int clock_gettime(ARG_UNUSED clockid_t clock_id, struct timespec *tp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strrstr
      Src: /src/core/libntech/libcompat/mkdtemp.c:31,1
    - Dst: strcmp
      Src: /src/core/libntech/libcompat/mkdtemp.c:33,1
    - Dst: snprintf
      Src: /src/core/libntech/libcompat/mkdtemp.c:41,1
    - Dst: mkdir
      Src: /src/core/libntech/libcompat/mkdtemp.c:43,1
    - Dst: close
      Src: /src/core/libntech/libcompat/mkdtemp.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: mkdtemp
    functionSourceFile: /src/core/libntech/libcompat/mkdtemp.c
    functionUses: 17
    functionsReached:
    - snprintf
    - strcmp
    - strrstr
    - mkdir
    - close
    linkageType: ''
    returnType: char
    signature: char *mkdtemp(char *template)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton4
      Src: /src/core/libntech/libcompat/inet_pton.c:57,1
    - Dst: inet_pton6
      Src: /src/core/libntech/libcompat/inet_pton.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - af
    - src
    - dst
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: inet_pton
    functionSourceFile: /src/core/libntech/libcompat/inet_pton.c
    functionUses: 0
    functionsReached:
    - inet_pton6
    - inet_pton4
    linkageType: ''
    returnType: int
    signature: "int inet_pton(int af,\n\t  const char *src,\n\t  void *dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libcompat/strrstr.c:47,1
    - Dst: assert
      Src: /src/core/libntech/libcompat/strrstr.c:48,1
    - Dst: strlen
      Src: /src/core/libntech/libcompat/strrstr.c:50,1
    - Dst: strlen
      Src: /src/core/libntech/libcompat/strrstr.c:51,1
    - Dst: strncmp
      Src: /src/core/libntech/libcompat/strrstr.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - str
    - pat
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/core/libntech/libcompat/strrstr.c
    - condition: (pat != NULL)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/core/libntech/libcompat/strrstr.c
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: strrstr
    functionSourceFile: /src/core/libntech/libcompat/strrstr.c
    functionUses: 1
    functionsReached:
    - assert
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strrstr(const char *str, const char *pat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lchown
      Src: /src/core/libntech/libcompat/fchownat.c:48,1
    - Dst: chown
      Src: /src/core/libntech/libcompat/fchownat.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: fchownat_inner
    functionSourceFile: /src/core/libntech/libcompat/fchownat.c
    functionUses: 0
    functionsReached:
    - chown
    - lchown
    linkageType: ''
    returnType: int
    signature: int fchownat_inner(void *generic_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: cleanup
    functionSourceFile: /src/core/libntech/libcompat/fchownat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup(ARG_UNUSED void *generic_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generic_at_function
      Src: /src/core/libntech/libcompat/fchownat.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - dirfd
    - pathname
    - owner
    - group
    - flags
    argTypes:
    - int
    - char*
    - uid_t
    - gid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: fchownat
    functionSourceFile: /src/core/libntech/libcompat/fchownat.c
    functionUses: 1
    functionsReached:
    - generic_at_function
    linkageType: ''
    returnType: int
    signature: int fchownat(int dirfd, const char *pathname, uid_t owner, gid_t group,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_strtimestamp_local
      Src: /src/core/libntech/libcompat/rpl_ctime.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timep
    argTypes:
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: rpl_ctime
    functionSourceFile: /src/core/libntech/libcompat/rpl_ctime.c
    functionUses: 0
    functionsReached:
    - cf_strtimestamp_local
    linkageType: ''
    returnType: char
    signature: char *rpl_ctime(const time_t *timep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: SMB_MALLOC
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SMB_MALLOC(s)
  - 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: SMB_STRDUP
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SMB_STRDUP(s)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - hp
    argTypes:
    - struct hostent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: check_hostent_err
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_hostent_err(struct hostent *hp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_hostent_err
      Src: /src/core/libntech/libcompat/getaddrinfo.c:88,1
    - Dst: SMB_STRDUP
      Src: /src/core/libntech/libcompat/getaddrinfo.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - hp
    - perr
    argTypes:
    - struct hostent*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: canon_name_from_hostent
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - SMB_STRDUP
    - check_hostent_err
    linkageType: ''
    returnType: char
    signature: "char *canon_name_from_hostent(struct hostent *hp,\n\t\t\t\tint *perr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gethostname
      Src: /src/core/libntech/libcompat/getaddrinfo.c:103,1
    - Dst: canon_name_from_hostent
      Src: /src/core/libntech/libcompat/getaddrinfo.c:109,1
    - Dst: gethostbyname
      Src: /src/core/libntech/libcompat/getaddrinfo.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - perr
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: get_my_canon_name
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - canon_name_from_hostent
    - gethostbyname
    - gethostname
    linkageType: ''
    returnType: char
    signature: char *get_my_canon_name(int *perr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: canon_name_from_hostent
      Src: /src/core/libntech/libcompat/getaddrinfo.c:115,1
    - Dst: gethostbyaddr
      Src: /src/core/libntech/libcompat/getaddrinfo.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ip
    - perr
    argTypes:
    - struct in_addr
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: get_canon_name_from_addr
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - canon_name_from_hostent
    - gethostbyaddr
    linkageType: ''
    returnType: char
    signature: "char *get_canon_name_from_addr(struct in_addr ip,\n\t\t\t\tint *perr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SMB_MALLOC
      Src: /src/core/libntech/libcompat/getaddrinfo.c:125,1
    - Dst: memset
      Src: /src/core/libntech/libcompat/getaddrinfo.c:130,1
    - Dst: SMB_MALLOC
      Src: /src/core/libntech/libcompat/getaddrinfo.c:132,1
    - Dst: free
      Src: /src/core/libntech/libcompat/getaddrinfo.c:134,1
    - Dst: memset
      Src: /src/core/libntech/libcompat/getaddrinfo.c:138,1
    - Dst: htons
      Src: /src/core/libntech/libcompat/getaddrinfo.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - hints
    - ip
    - port
    argTypes:
    - struct addrinfo*
    - struct in_addr
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 154
    functionName: alloc_entry
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - SMB_MALLOC
    - free
    - htons
    - memset
    linkageType: ''
    returnType: struct addrinfo
    signature: "struct addrinfo *alloc_entry(const struct addrinfo *hints,\n\t\t\t\tstruct
      in_addr ip,\n\t\t\t\tunsigned short port)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/core/libntech/libcompat/getaddrinfo.c:173,1
    - Dst: htonl
      Src: /src/core/libntech/libcompat/getaddrinfo.c:175,1
    - Dst: alloc_entry
      Src: /src/core/libntech/libcompat/getaddrinfo.c:177,1
    - Dst: get_my_canon_name
      Src: /src/core/libntech/libcompat/getaddrinfo.c:188,1
    - Dst: get_canon_name_from_addr
      Src: /src/core/libntech/libcompat/getaddrinfo.c:191,1
    - Dst: freeaddrinfo
      Src: /src/core/libntech/libcompat/getaddrinfo.c:194,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - service
    - addr
    - hints
    - res
    argTypes:
    - char*
    - uint32_t
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 201
    functionName: getaddr_info_single_addr
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    - alloc_entry
    - get_canon_name_from_addr
    - atoi
    - htonl
    - get_my_canon_name
    linkageType: ''
    returnType: int
    signature: "int getaddr_info_single_addr(const char *service,\n\t\t\t\tuint32_t
      addr,\n\t\t\t\tconst struct addrinfo *hints,\n\t\t\t\tstruct addrinfo **res)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/core/libntech/libcompat/getaddrinfo.c:221,1
    - Dst: gethostbyname
      Src: /src/core/libntech/libcompat/getaddrinfo.c:224,1
    - Dst: check_hostent_err
      Src: /src/core/libntech/libcompat/getaddrinfo.c:225,1
    - Dst: alloc_entry
      Src: /src/core/libntech/libcompat/getaddrinfo.c:232,1
    - Dst: freeaddrinfo
      Src: /src/core/libntech/libcompat/getaddrinfo.c:235,1
    - Dst: SMB_STRDUP
      Src: /src/core/libntech/libcompat/getaddrinfo.c:242,1
    - Dst: freeaddrinfo
      Src: /src/core/libntech/libcompat/getaddrinfo.c:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - node
    - service
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 254
    functionName: getaddr_info_name
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    - check_hostent_err
    - alloc_entry
    - gethostbyname
    - atoi
    - SMB_STRDUP
    linkageType: ''
    returnType: int
    signature: "int getaddr_info_name(const char *node,\n\t\t\t\tconst char *service,\n\t\t\t\tconst
      struct addrinfo *hints,\n\t\t\t\tstruct addrinfo **res)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/libcompat/getaddrinfo.c:271,1
    - Dst: memcpy
      Src: /src/core/libntech/libcompat/getaddrinfo.c:275,1
    - Dst: getaddr_info_single_addr
      Src: /src/core/libntech/libcompat/getaddrinfo.c:292,1
    - Dst: inet_pton
      Src: /src/core/libntech/libcompat/getaddrinfo.c:298,1
    - Dst: getaddr_info_single_addr
      Src: /src/core/libntech/libcompat/getaddrinfo.c:300,1
    - Dst: ntohl
      Src: /src/core/libntech/libcompat/getaddrinfo.c:301,1
    - Dst: getaddr_info_name
      Src: /src/core/libntech/libcompat/getaddrinfo.c:305,1
    - Dst: getaddr_info_single_addr
      Src: /src/core/libntech/libcompat/getaddrinfo.c:311,1
    - Dst: getaddr_info_single_addr
      Src: /src/core/libntech/libcompat/getaddrinfo.c:316,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - node
    - service
    - hintp
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 320
    functionName: getaddrinfo
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ntohl
    - memset
    - getaddr_info_name
    - getaddr_info_single_addr
    - inet_pton
    linkageType: ''
    returnType: int
    signature: "int getaddrinfo(const char *node,\n\t\tconst char *service,\n\t\tconst
      struct addrinfo * hintp,\n\t\tstruct addrinfo ** res)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libntech/libcompat/getaddrinfo.c:330,1
    - Dst: free
      Src: /src/core/libntech/libcompat/getaddrinfo.c:333,1
    - Dst: free
      Src: /src/core/libntech/libcompat/getaddrinfo.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 337
    functionName: freeaddrinfo
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freeaddrinfo(struct addrinfo *res)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: hstrerror
      Src: /src/core/libntech/libcompat/getaddrinfo.c:359,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 396
    functionName: gai_strerror
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - hstrerror
    linkageType: ''
    returnType: char
    signature: char *gai_strerror(int errcode)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gethostbyaddr
      Src: /src/core/libntech/libcompat/getaddrinfo.c:407,1
    - Dst: check_hostent_err
      Src: /src/core/libntech/libcompat/getaddrinfo.c:411,1
    - Dst: snprintf
      Src: /src/core/libntech/libcompat/getaddrinfo.c:414,1
    - Dst: strchr
      Src: /src/core/libntech/libcompat/getaddrinfo.c:419,1
    - Dst: inet_ntoa
      Src: /src/core/libntech/libcompat/getaddrinfo.c:434,1
    - Dst: snprintf
      Src: /src/core/libntech/libcompat/getaddrinfo.c:435,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - sa
    - node
    - nodelen
    - flags
    argTypes:
    - struct sockaddr*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 440
    functionName: gethostnameinfo
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - check_hostent_err
    - snprintf
    - inet_ntoa
    - strchr
    - gethostbyaddr
    linkageType: ''
    returnType: int
    signature: "int gethostnameinfo(const struct sockaddr *sa,\n\t\t\tchar *node,\n\t\t\tsize_t
      nodelen,\n\t\t\tint flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/core/libntech/libcompat/getaddrinfo.c:448,1
    - Dst: getservbyport
      Src: /src/core/libntech/libcompat/getaddrinfo.c:451,1
    - Dst: snprintf
      Src: /src/core/libntech/libcompat/getaddrinfo.c:456,1
    - Dst: snprintf
      Src: /src/core/libntech/libcompat/getaddrinfo.c:464,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - sa
    - service
    - servicelen
    - flags
    argTypes:
    - struct sockaddr*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 469
    functionName: getservicenameinfo
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - ntohs
    - snprintf
    - getservbyport
    linkageType: ''
    returnType: int
    signature: "int getservicenameinfo(const struct sockaddr *sa,\n\t\t\tchar *service,\n\t\t\tsize_t
      servicelen,\n\t\t\tint flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gethostnameinfo
      Src: /src/core/libntech/libcompat/getaddrinfo.c:495,1
    - Dst: getservicenameinfo
      Src: /src/core/libntech/libcompat/getaddrinfo.c:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 7
    argNames:
    - sa
    - salen
    - node
    - nodelen
    - service
    - servicelen
    - flags
    argTypes:
    - struct sockaddr*
    - socklen_t
    - char*
    - socklen_t
    - char*
    - socklen_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 504
    functionName: getnameinfo
    functionSourceFile: /src/core/libntech/libcompat/getaddrinfo.c
    functionUses: 1
    functionsReached:
    - getservicenameinfo
    - gethostnameinfo
    linkageType: ''
    returnType: int
    signature: "int getnameinfo(const struct sockaddr *sa, socklen_t salen,\n\t\t\tchar
      *node, socklen_t nodelen,\n\t\t\tchar *service, socklen_t servicelen, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/core/libntech/libcompat/drand48.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: drand48
    functionSourceFile: /src/core/libntech/libcompat/drand48.c
    functionUses: 1
    functionsReached:
    - rand
    linkageType: ''
    returnType: double
    signature: double drand48(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setreuid
      Src: /src/core/libntech/libcompat/seteuid.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: seteuid
    functionSourceFile: /src/core/libntech/libcompat/seteuid.c
    functionUses: 1
    functionsReached:
    - setreuid
    linkageType: ''
    returnType: int
    signature: int seteuid(uid_t uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: memrchr
    functionSourceFile: /src/core/libntech/libcompat/memrchr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *memrchr(const void *s, int c, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - how
    - set
    - oldset
    argTypes:
    - int
    - sigset_t*
    - sigset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: pthread_sigmask
    functionSourceFile: /src/core/libntech/libcompat/pthread_sigmask.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_sigmask(int how, const sigset_t *set, sigset_t *oldset)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/core/libntech/libcompat/generic_at.c:72,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libcompat/generic_at.c:75,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libcompat/generic_at.c:76,1
    - Dst: open
      Src: /src/core/libntech/libcompat/generic_at.c:81,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libntech/libcompat/generic_at.c:84,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libcompat/generic_at.c:87,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libcompat/generic_at.c:88,1
    - Dst: fchdir
      Src: /src/core/libntech/libcompat/generic_at.c:93,1
    - Dst: close
      Src: /src/core/libntech/libcompat/generic_at.c:95,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libntech/libcompat/generic_at.c:97,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libcompat/generic_at.c:100,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libcompat/generic_at.c:101,1
    - Dst: func
      Src: /src/core/libntech/libcompat/generic_at.c:108,1
    - Dst: fchdir
      Src: /src/core/libntech/libcompat/generic_at.c:114,1
    - Dst: close
      Src: /src/core/libntech/libcompat/generic_at.c:115,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libntech/libcompat/generic_at.c:118,1
    - Dst: UnexpectedError
      Src: /src/core/libntech/libcompat/generic_at.c:121,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libntech/libcompat/generic_at.c:122,1
    - Dst: cleanup
      Src: /src/core/libntech/libcompat/generic_at.c:129,1
    - Dst: Log
      Src: /src/core/libntech/libcompat/generic_at.c:130,1
    - Dst: GetErrorStr
      Src: /src/core/libntech/libcompat/generic_at.c:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - dirfd
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 66
    functionDepth: 8
    functionLinenumber: 66
    functionLinenumberEnd: 139
    functionName: generic_at_function
    functionSourceFile: /src/core/libntech/libcompat/generic_at.c
    functionUses: 3
    functionsReached:
    - GetErrorStr
    - cleanup
    - UnexpectedError
    - fchdir
    - func
    - open
    - Log
    - GetErrorStrFromCode
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - close
    linkageType: ''
    returnType: int
    signature: int generic_at_function(int dirfd, int (*func)(void *data), void (*cleanup)(void
      *data), void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libcompat/strlcat.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: strlcat
    functionSourceFile: /src/core/libntech/libcompat/strlcat.c
    functionUses: 3
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t strlcat(char *dst, const char *src, size_t siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libntech/libcompat/strerror.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: strerror
    functionSourceFile: /src/core/libntech/libcompat/strerror.c
    functionUses: 8
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *strerror(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - str
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: strnlen
    functionSourceFile: /src/core/libntech/libcompat/strnlen.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strnlen(const char *str, size_t maxlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libntech/libcompat/stpncpy.c:40,1
    - Dst: assert
      Src: /src/core/libntech/libcompat/stpncpy.c:41,1
    - Dst: assert
      Src: /src/core/libntech/libcompat/stpncpy.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts:
    - condition: (dst != NULL)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/core/libntech/libcompat/stpncpy.c
    - condition: (dst != src)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/core/libntech/libcompat/stpncpy.c
    - condition: (src != NULL)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/core/libntech/libcompat/stpncpy.c
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: stpncpy
    functionSourceFile: /src/core/libntech/libcompat/stpncpy.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *stpncpy(char *dst, const char *src, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime
      Src: /src/core/libntech/libcompat/gmtime_r.c:42,1
    - Dst: memcpy
      Src: /src/core/libntech/libcompat/gmtime_r.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - timep
    - result
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: gmtime_r
    functionSourceFile: /src/core/libntech/libcompat/gmtime_r.c
    functionUses: 2
    functionsReached:
    - memcpy
    - gmtime
    linkageType: ''
    returnType: struct tm
    signature: struct tm *gmtime_r(const time_t *timep, struct tm *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ap
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: VA_START
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_START(ap, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ap
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: VA_START
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_START(ap, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ap
    - ','
    - value
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: VA_SHIFT
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_SHIFT(ap, value, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: VA_COPY
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_COPY(dest, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: VA_END_COPY
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_END_COPY(ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: VA_COPY
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_COPY(dest, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: VA_END_COPY
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_END_COPY(ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: VA_COPY
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_COPY(dest, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    functionName: MAX
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: CHARTOINT
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHARTOINT(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: ISDIGIT
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISDIGIT(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: ISNAN
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISNAN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: ISINF
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISINF(x)
  - BBCount: 92
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:580,1
    - Dst: ISDIGIT
      Src: /src/core/libntech/libcompat/snprintf.c:615,1
    - Dst: CHARTOINT
      Src: /src/core/libntech/libcompat/snprintf.c:616,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:629,1
    - Dst: ISDIGIT
      Src: /src/core/libntech/libcompat/snprintf.c:648,1
    - Dst: CHARTOINT
      Src: /src/core/libntech/libcompat/snprintf.c:649,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:662,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:713,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:716,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:719,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:722,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:725,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:728,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:731,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:734,1
    - Dst: fmtint
      Src: /src/core/libntech/libcompat/snprintf.c:737,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:756,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:760,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:764,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:767,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:770,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:773,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:776,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:779,1
    - Dst: fmtint
      Src: /src/core/libntech/libcompat/snprintf.c:782,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:795,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:797,1
    - Dst: fmtflt
      Src: /src/core/libntech/libcompat/snprintf.c:798,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:809,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:811,1
    - Dst: fmtflt
      Src: /src/core/libntech/libcompat/snprintf.c:812,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:823,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:825,1
    - Dst: fmtflt
      Src: /src/core/libntech/libcompat/snprintf.c:832,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:838,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:839,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:842,1
    - Dst: fmtstr
      Src: /src/core/libntech/libcompat/snprintf.c:843,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:853,1
    - Dst: fmtstr
      Src: /src/core/libntech/libcompat/snprintf.c:858,1
    - Dst: fmtint
      Src: /src/core/libntech/libcompat/snprintf.c:868,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:876,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:880,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:884,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:888,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:899,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:903,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:907,1
    - Dst: va_arg
      Src: /src/core/libntech/libcompat/snprintf.c:911,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:917,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 313
    argCount: 4
    argNames:
    - str
    - size
    - format
    - args
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 939
    functionName: rpl_vsnprintf
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached:
    - fmtstr
    - fmtint
    - CHARTOINT
    - OUTCHAR
    - fmtflt
    - va_arg
    - ISDIGIT
    linkageType: ''
    returnType: int
    signature: int rpl_vsnprintf(char *str, size_t size, const char *format, va_list
      args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:962,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:966,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:970,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 7
    argNames:
    - str
    - len
    - size
    - value
    - width
    - precision
    - flags
    argTypes:
    - char*
    - size_t*
    - size_t
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 973
    functionName: fmtstr
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 1
    functionsReached:
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: "void fmtstr(char *str, size_t *len, size_t size, const char *value,
      int width,\n       int precision, int flags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: convert
      Src: /src/core/libntech/libcompat/snprintf.c:1001,1
    - Dst: getnumsep
      Src: /src/core/libntech/libcompat/snprintf.c:1025,1
    - Dst: MAX
      Src: /src/core/libntech/libcompat/snprintf.c:1030,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1051,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1055,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1057,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1058,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1061,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1066,1
    - Dst: printsep
      Src: /src/core/libntech/libcompat/snprintf.c:1068,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1071,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 8
    argNames:
    - str
    - len
    - size
    - value
    - base
    - width
    - precision
    - flags
    argTypes:
    - char*
    - size_t*
    - size_t
    - INTMAX_T
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1074
    functionName: fmtint
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 1
    functionsReached:
    - MAX
    - convert
    - OUTCHAR
    - printsep
    - getnumsep
    linkageType: ''
    returnType: void
    signature: "void fmtint(char *str, size_t *len, size_t size, INTMAX_T value, int
      base, int width,\n       int precision, int flags)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/core/libntech/libcompat/snprintf.c:1102,1
    - Dst: ISNAN
      Src: /src/core/libntech/libcompat/snprintf.c:1120,1
    - Dst: ISINF
      Src: /src/core/libntech/libcompat/snprintf.c:1122,1
    - Dst: fmtstr
      Src: /src/core/libntech/libcompat/snprintf.c:1130,1
    - Dst: getexponent
      Src: /src/core/libntech/libcompat/snprintf.c:1159,1
    - Dst: mypow10
      Src: /src/core/libntech/libcompat/snprintf.c:1186,1
    - Dst: cast
      Src: /src/core/libntech/libcompat/snprintf.c:1188,1
    - Dst: mypow10
      Src: /src/core/libntech/libcompat/snprintf.c:1197,1
    - Dst: myround
      Src: /src/core/libntech/libcompat/snprintf.c:1202,1
    - Dst: convert
      Src: /src/core/libntech/libcompat/snprintf.c:1261,1
    - Dst: convert
      Src: /src/core/libntech/libcompat/snprintf.c:1274,1
    - Dst: convert
      Src: /src/core/libntech/libcompat/snprintf.c:1276,1
    - Dst: getnumsep
      Src: /src/core/libntech/libcompat/snprintf.c:1298,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1319,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1323,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1328,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1332,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1335,1
    - Dst: printsep
      Src: /src/core/libntech/libcompat/snprintf.c:1337,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1342,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1345,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1348,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1353,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1357,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1360,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 145
    argCount: 8
    argNames:
    - str
    - len
    - size
    - fvalue
    - width
    - precision
    - flags
    - overflow
    argTypes:
    - char*
    - size_t*
    - size_t
    - LDOUBLE
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1363
    functionName: fmtflt
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 1
    functionsReached:
    - localeconv
    - ISINF
    - fmtstr
    - convert
    - myround
    - OUTCHAR
    - mypow10
    - printsep
    - getexponent
    - getnumsep
    - ISNAN
    - cast
    linkageType: ''
    returnType: void
    signature: "void fmtflt(char *str, size_t *len, size_t size, LDOUBLE fvalue, int
      width,\n       int precision, int flags, int *overflow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/core/libntech/libcompat/snprintf.c:1369,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1374,1
    - Dst: OUTCHAR
      Src: /src/core/libntech/libcompat/snprintf.c:1377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - str
    - len
    - size
    argTypes:
    - char*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1378
    functionName: printsep
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 2
    functionsReached:
    - localeconv
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void printsep(char *str, size_t *len, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/core/libntech/libcompat/snprintf.c:1386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - digits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1396
    functionName: getnumsep
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 2
    functionsReached:
    - localeconv
    linkageType: ''
    returnType: int
    signature: int getnumsep(int digits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - LDOUBLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1417
    functionName: getexponent
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getexponent(LDOUBLE value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - value
    - buf
    - size
    - base
    - caps
    argTypes:
    - UINTMAX_T
    - char*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1432
    functionName: convert
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int convert(UINTMAX_T value, char *buf, size_t size, int base, int
      caps)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - LDOUBLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1456
    functionName: cast
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: UINTMAX_T
    signature: UINTMAX_T cast(LDOUBLE value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/core/libntech/libcompat/snprintf.c:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - LDOUBLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1464
    functionName: myround
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 1
    functionsReached:
    - cast
    linkageType: ''
    returnType: UINTMAX_T
    signature: UINTMAX_T myround(LDOUBLE value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - exponent
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1466
    functionDepth: 0
    functionLinenumber: 1466
    functionLinenumberEnd: 1480
    functionName: mypow10
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: LDOUBLE
    signature: LDOUBLE mypow10(int exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1495
    functionName: mymemcpy
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      mymemcpy(void *dst, void *src, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VA_COPY
      Src: /src/core/libntech/libcompat/snprintf.c:1505,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libcompat/snprintf.c:1506,1
    - Dst: VA_END_COPY
      Src: /src/core/libntech/libcompat/snprintf.c:1507,1
    - Dst: malloc
      Src: /src/core/libntech/libcompat/snprintf.c:1508,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libcompat/snprintf.c:1510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ret
    - format
    - ap
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1511
    functionName: rpl_vasprintf
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached:
    - VA_COPY
    - VA_END_COPY
    - vsnprintf
    - malloc
    linkageType: ''
    returnType: int
    signature: int rpl_vasprintf(char **ret, const char *format, va_list ap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/core/libntech/libcompat/snprintf.c:1578,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libcompat/snprintf.c:1579,1
    - Dst: va_end
      Src: /src/core/libntech/libcompat/snprintf.c:1580,1
    - Dst: malloc
      Src: /src/core/libntech/libcompat/snprintf.c:1586,1
    - Dst: va_copy
      Src: /src/core/libntech/libcompat/snprintf.c:1593,1
    - Dst: vsnprintf
      Src: /src/core/libntech/libcompat/snprintf.c:1594,1
    - Dst: va_end
      Src: /src/core/libntech/libcompat/snprintf.c:1595,1
    - Dst: fwrite
      Src: /src/core/libntech/libcompat/snprintf.c:1607,1
    - Dst: free
      Src: /src/core/libntech/libcompat/snprintf.c:1612,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - stream
    - format
    - ap
    argTypes:
    - FILE*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1616
    functionName: rpl_vfprintf
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached:
    - va_end
    - fwrite
    - malloc
    - vsnprintf
    - free
    - va_copy
    linkageType: ''
    returnType: int
    signature: int rpl_vfprintf(FILE *stream, const char *format, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/core/libntech/libcompat/snprintf.c:1621,1
    - Dst: vfprintf
      Src: /src/core/libntech/libcompat/snprintf.c:1622,1
    - Dst: va_end
      Src: /src/core/libntech/libcompat/snprintf.c:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - format
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1626
    functionName: rpl_vprintf
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_copy
    - vfprintf
    linkageType: ''
    returnType: int
    signature: int rpl_vprintf(const char *format, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libcompat/snprintf.c:1636,1
    - Dst: vfprintf
      Src: /src/core/libntech/libcompat/snprintf.c:1637,1
    - Dst: va_end
      Src: /src/core/libntech/libcompat/snprintf.c:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - stream
    - format
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1641
    functionName: rpl_fprintf
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached:
    - va_end
    - vfprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int rpl_fprintf(FILE *stream, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libntech/libcompat/snprintf.c:1646,1
    - Dst: vprintf
      Src: /src/core/libntech/libcompat/snprintf.c:1647,1
    - Dst: va_end
      Src: /src/core/libntech/libcompat/snprintf.c:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1651
    functionName: rpl_printf
    functionSourceFile: /src/core/libntech/libcompat/snprintf.c
    functionUses: 0
    functionsReached:
    - va_end
    - vprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int rpl_printf(const char *format, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/core/libntech/libcompat/strncasecmp.c:48,1
    - Dst: tolower
      Src: /src/core/libntech/libcompat/strncasecmp.c:48,1
    - Dst: tolower
      Src: /src/core/libntech/libcompat/strncasecmp.c:52,1
    - Dst: tolower
      Src: /src/core/libntech/libcompat/strncasecmp.c:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 60
    functionName: strncasecmp
    functionSourceFile: /src/core/libntech/libcompat/strncasecmp.c
    functionUses: 2
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int strncasecmp(const char *s1, const char *s2, size_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/core/libntech/libcompat/round.c:38,1
    - Dst: ceil
      Src: /src/core/libntech/libcompat/round.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 62
    functionName: round
    functionSourceFile: /src/core/libntech/libcompat/round.c
    functionUses: 1
    functionsReached:
    - ceil
    - floor
    linkageType: ''
    returnType: double
    signature: double round(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libcompat/strchrnul.c:11,1
    - Dst: strlen
      Src: /src/core/libntech/libcompat/strchrnul.c:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: strchrnul
    functionSourceFile: /src/core/libntech/libcompat/strchrnul.c
    functionUses: 1
    functionsReached:
    - strchr
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strchrnul(const char *s, int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/libntech/libcompat/memdup.c:37,1
    - Dst: memcpy
      Src: /src/core/libntech/libcompat/memdup.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: memdup
    functionSourceFile: /src/core/libntech/libcompat/memdup.c
    functionUses: 9
    functionsReached:
    - memcpy
    - malloc
    linkageType: ''
    returnType: void
    signature: void *memdup(const void *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/core/libntech/libcompat/localtime_r.c:42,1
    - Dst: memcpy
      Src: /src/core/libntech/libcompat/localtime_r.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - timep
    - result
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: localtime_r
    functionSourceFile: /src/core/libntech/libcompat/localtime_r.c
    functionUses: 2
    functionsReached:
    - memcpy
    - localtime
    linkageType: ''
    returnType: struct tm
    signature: struct tm *localtime_r(const time_t *timep, struct tm *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/core/libntech/libcompat/log2.c:28,1
    - Dst: log
      Src: /src/core/libntech/libcompat/log2.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: log2
    functionSourceFile: /src/core/libntech/libcompat/log2.c
    functionUses: 0
    functionsReached:
    - log
    linkageType: ''
    returnType: double
    signature: double log2(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/core/libntech/libcompat/strndup.c:43,1
    - Dst: malloc
      Src: /src/core/libntech/libcompat/strndup.c:44,1
    - Dst: memcpy
      Src: /src/core/libntech/libcompat/strndup.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - str
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: strndup
    functionSourceFile: /src/core/libntech/libcompat/strndup.c
    functionUses: 10
    functionsReached:
    - memcpy
    - malloc
    - strnlen
    linkageType: ''
    returnType: char
    signature: 'char *

      strndup(const char *str, size_t maxlen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readlink
      Src: /src/core/libntech/libcompat/readlinkat.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: readlinkat_inner
    functionSourceFile: /src/core/libntech/libcompat/readlinkat.c
    functionUses: 0
    functionsReached:
    - readlink
    linkageType: ''
    returnType: int
    signature: int readlinkat_inner(void *generic_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: cleanup
    functionSourceFile: /src/core/libntech/libcompat/readlinkat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup(ARG_UNUSED void *generic_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generic_at_function
      Src: /src/core/libntech/libcompat/readlinkat.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dirfd
    - pathname
    - buf
    - bufsize
    argTypes:
    - int
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 9
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: readlinkat
    functionSourceFile: /src/core/libntech/libcompat/readlinkat.c
    functionUses: 1
    functionsReached:
    - generic_at_function
    linkageType: ''
    returnType: int
    signature: int readlinkat(int dirfd, const char *pathname, char *buf, size_t bufsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libcompat/unsetenv.c:47,1
    - Dst: malloc
      Src: /src/core/libntech/libcompat/unsetenv.c:53,1
    - Dst: strlen
      Src: /src/core/libntech/libcompat/unsetenv.c:53,1
    - Dst: sprintf
      Src: /src/core/libntech/libcompat/unsetenv.c:61,1
    - Dst: putenv
      Src: /src/core/libntech/libcompat/unsetenv.c:62,1
    - Dst: free
      Src: /src/core/libntech/libcompat/unsetenv.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: unsetenv
    functionSourceFile: /src/core/libntech/libcompat/unsetenv.c
    functionUses: 6
    functionsReached:
    - strlen
    - putenv
    - strchr
    - malloc
    - free
    - sprintf
    linkageType: ''
    returnType: int
    signature: int unsetenv(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libntech/libcompat/unsetenv.c:88,1
    - Dst: strlen
      Src: /src/core/libntech/libcompat/unsetenv.c:94,1
    - Dst: strncmp
      Src: /src/core/libntech/libcompat/unsetenv.c:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 112
    functionName: unsetenv
    functionSourceFile: /src/core/libntech/libcompat/unsetenv.c
    functionUses: 6
    functionsReached:
    - strchr
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int unsetenv(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/core/libntech/libcompat/fstatat.c:47,1
    - Dst: stat
      Src: /src/core/libntech/libcompat/fstatat.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: fstatat_inner
    functionSourceFile: /src/core/libntech/libcompat/fstatat.c
    functionUses: 0
    functionsReached:
    - stat
    - lstat
    linkageType: ''
    returnType: int
    signature: int fstatat_inner(void *generic_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - generic_data
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: cleanup
    functionSourceFile: /src/core/libntech/libcompat/fstatat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup(ARG_UNUSED void *generic_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generic_at_function
      Src: /src/core/libntech/libcompat/fstatat.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dirfd
    - pathname
    - buf
    - flags
    argTypes:
    - int
    - char*
    - struct stat*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 9
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: fstatat
    functionSourceFile: /src/core/libntech/libcompat/fstatat.c
    functionUses: 3
    functionsReached:
    - generic_at_function
    linkageType: ''
    returnType: int
    signature: int fstatat(int dirfd, const char *pathname, struct stat *buf, int
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libcompat/strstr.c:36,1
    - Dst: strncmp
      Src: /src/core/libntech/libcompat/strstr.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: strstr
    functionSourceFile: /src/core/libntech/libcompat/strstr.c
    functionUses: 19
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strstr(const char *haystack, const char *needle)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/core/libntech/libcompat/strcasecmp.c:48,1
    - Dst: tolower
      Src: /src/core/libntech/libcompat/strcasecmp.c:48,1
    - Dst: tolower
      Src: /src/core/libntech/libcompat/strcasecmp.c:52,1
    - Dst: tolower
      Src: /src/core/libntech/libcompat/strcasecmp.c:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 60
    functionName: strcasecmp
    functionSourceFile: /src/core/libntech/libcompat/strcasecmp.c
    functionUses: 2
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int strcasecmp(const char *s1, const char *s2)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/core/libntech/libcompat/getline.c:74,1
    - Dst: getc
      Src: /src/core/libntech/libcompat/getline.c:88,1
    - Dst: realloc
      Src: /src/core/libntech/libcompat/getline.c:98,1
    - Dst: ferror
      Src: /src/core/libntech/libcompat/getline.c:116,1
    - Dst: feof
      Src: /src/core/libntech/libcompat/getline.c:116,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - lineptr
    - n
    - delimiter
    - stream
    argTypes:
    - char**
    - size_t*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 124
    functionName: getdelim
    functionSourceFile: /src/core/libntech/libcompat/getline.c
    functionUses: 0
    functionsReached:
    - getc
    - feof
    - ferror
    - realloc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t getdelim(char **restrict lineptr, size_t *restrict n, int
      delimiter,\n                 FILE *restrict stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getdelim
      Src: /src/core/libntech/libcompat/getline.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lineptr
    - n
    - stream
    argTypes:
    - char**
    - size_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: getline
    functionSourceFile: /src/core/libntech/libcompat/getline.c
    functionUses: 1
    functionsReached:
    - getdelim
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t getline(char **restrict lineptr, size_t *restrict n,\n                FILE
      *restrict stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/core/libntech/libcompat/poll.c:46,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/libntech/libcompat/poll.c:47,1
    - Dst: memset
      Src: /src/core/libntech/libcompat/poll.c:53,1
    - Dst: FD_ZERO
      Src: /src/core/libntech/libcompat/poll.c:54,1
    - Dst: FD_SET
      Src: /src/core/libntech/libcompat/poll.c:55,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/libntech/libcompat/poll.c:55,1
    - Dst: select
      Src: /src/core/libntech/libcompat/poll.c:58,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/libntech/libcompat/poll.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fds
    - nfds
    - timeout
    argTypes:
    - struct pollfd*
    - nfds_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 59
    functionName: poll
    functionSourceFile: /src/core/libntech/libcompat/poll.c
    functionUses: 0
    functionsReached:
    - MAX
    - FD_SET
    - FD_ZERO
    - select
    - ConnectionInfoSocket
    - memset
    linkageType: ''
    returnType: int
    signature: int poll(struct pollfd *fds, nfds_t nfds, int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/core/libntech/libcompat/nanosleep.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - rqtp
    - rmtp
    argTypes:
    - struct timespec*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: nanosleep
    functionSourceFile: /src/core/libntech/libcompat/nanosleep.c
    functionUses: 0
    functionsReached:
    - Sleep
    linkageType: ''
    returnType: int
    signature: int nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - haystack
    - haystacklen
    - needle
    - needlelen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 55
    functionName: memmem
    functionSourceFile: /src/core/libntech/libcompat/memmem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void *memmem(const void *haystack, size_t haystacklen,\n             const
      void *needle, size_t needlelen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop4
      Src: /src/core/libntech/libcompat/inet_ntop.c:54,1
    - Dst: inet_ntop6
      Src: /src/core/libntech/libcompat/inet_ntop.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - af
    - src
    - dst
    - size
    argTypes:
    - int
    - void*
    - char*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: inet_ntop
    functionSourceFile: /src/core/libntech/libcompat/inet_ntop.c
    functionUses: 0
    functionsReached:
    - inet_ntop6
    - inet_ntop4
    linkageType: ''
    returnType: char
    signature: 'char *

      inet_ntop(int af, const void *src, char *dst, socklen_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libntech/libcompat/inet_ntop.c:84,1
    - Dst: memcpy
      Src: /src/core/libntech/libcompat/inet_ntop.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - src
    - dst
    - size
    argTypes:
    - unsigned char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: inet_ntop4
    functionSourceFile: /src/core/libntech/libcompat/inet_ntop.c
    functionUses: 1
    functionsReached:
    - memcpy
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      inet_ntop4(const unsigned char *src, char *dst, size_t size)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libntech/libcompat/inet_ntop.c:121,1
    - Dst: inet_ntop4
      Src: /src/core/libntech/libcompat/inet_ntop.c:165,1
    - Dst: strlen
      Src: /src/core/libntech/libcompat/inet_ntop.c:167,1
    - Dst: snprintf
      Src: /src/core/libntech/libcompat/inet_ntop.c:170,1
    - Dst: assert
      Src: /src/core/libntech/libcompat/inet_ntop.c:171,1
    - Dst: memcpy
      Src: /src/core/libntech/libcompat/inet_ntop.c:187,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 53
    argCount: 3
    argNames:
    - src
    - dst
    - size
    argTypes:
    - unsigned char*
    - char*
    - size_t
    assertStmts:
    - condition: (inc < 5)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/core/libntech/libcompat/inet_ntop.c
    constantsTouched: []
    func_position:
      end: 189
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 189
    functionName: inet_ntop6
    functionSourceFile: /src/core/libntech/libcompat/inet_ntop.c
    functionUses: 1
    functionsReached:
    - memcpy
    - snprintf
    - strlen
    - assert
    - inet_ntop4
    - memset
    linkageType: ''
    returnType: char
    signature: 'char *

      inet_ntop6(const unsigned char *src, char *dst, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: dirfd
    functionSourceFile: /src/core/libntech/libcompat/dirfd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dirfd(DIR *dirp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: dirfd
    functionSourceFile: /src/core/libntech/libcompat/dirfd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dirfd(DIR *dirp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libntech/libcompat/strdup.c:37,1
    - Dst: malloc
      Src: /src/core/libntech/libcompat/strdup.c:38,1
    - Dst: memcpy
      Src: /src/core/libntech/libcompat/strdup.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: strdup
    functionSourceFile: /src/core/libntech/libcompat/strdup.c
    functionUses: 117
    functionsReached:
    - memcpy
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strdup(const char *str)
  - 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: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: pthread_attr_setstacksize
    functionSourceFile: /src/core/libntech/libcompat/pthread_attr_setstacksize.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: LDAV_CVT
    functionSourceFile: /src/core/libcfecompat/getloadavg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LDAV_CVT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: LDAV_CVT
    functionSourceFile: /src/core/libcfecompat/getloadavg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LDAV_CVT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: LDAV_CVT
    functionSourceFile: /src/core/libcfecompat/getloadavg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LDAV_CVT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: FIXUP_KERNEL_SYMBOL_ADDR
    functionSourceFile: /src/core/libcfecompat/getloadavg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXUP_KERNEL_SYMBOL_ADDR(nl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 396
    functionName: LDAV_CVT
    functionSourceFile: /src/core/libcfecompat/getloadavg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LDAV_CVT(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 237
    functionName: exchange
    functionSourceFile: /src/core/libcfecompat/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void exchange (\n    char **argv\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/libcfecompat/getopt.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - optstring
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 274
    functionName: _getopt_initialize
    functionSourceFile: /src/core/libcfecompat/getopt.c
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: "char *\n_getopt_initialize (\n    const char *optstring\n)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_initialize
      Src: /src/core/libcfecompat/getopt.c:345,1
    - Dst: exchange
      Src: /src/core/libcfecompat/getopt.c:357,1
    - Dst: strcmp
      Src: /src/core/libcfecompat/getopt.c:375,1
    - Dst: exchange
      Src: /src/core/libcfecompat/getopt.c:380,1
    - Dst: my_index
      Src: /src/core/libcfecompat/getopt.c:435,1
    - Dst: strncmp
      Src: /src/core/libcfecompat/getopt.c:451,1
    - Dst: strlen
      Src: /src/core/libcfecompat/getopt.c:453,1
    - Dst: fprintf
      Src: /src/core/libcfecompat/getopt.c:475,1
    - Dst: strlen
      Src: /src/core/libcfecompat/getopt.c:477,1
    - Dst: fprintf
      Src: /src/core/libcfecompat/getopt.c:498,1
    - Dst: fprintf
      Src: /src/core/libcfecompat/getopt.c:503,1
    - Dst: strlen
      Src: /src/core/libcfecompat/getopt.c:507,1
    - Dst: fprintf
      Src: /src/core/libcfecompat/getopt.c:518,1
    - Dst: strlen
      Src: /src/core/libcfecompat/getopt.c:520,1
    - Dst: strlen
      Src: /src/core/libcfecompat/getopt.c:524,1
    - Dst: my_index
      Src: /src/core/libcfecompat/getopt.c:540,1
    - Dst: fprintf
      Src: /src/core/libcfecompat/getopt.c:546,1
    - Dst: fprintf
      Src: /src/core/libcfecompat/getopt.c:550,1
    - Dst: my_index
      Src: /src/core/libcfecompat/getopt.c:563,1
    - Dst: fprintf
      Src: /src/core/libcfecompat/getopt.c:575,1
    - Dst: fprintf
      Src: /src/core/libcfecompat/getopt.c:577,1
    - Dst: fprintf
      Src: /src/core/libcfecompat/getopt.c:611,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 143
    argCount: 6
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - longind
    - long_only
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 629
    functionName: _getopt_internal
    functionSourceFile: /src/core/libcfecompat/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_initialize
    - strncmp
    - strlen
    - exchange
    - my_index
    - strcmp
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int _getopt_internal (\n     int argc,\n     char *const *argv,\n
      \    const char *optstring,\n     const struct option *longopts,\n     int *longind,\n
      \    int long_only\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal
      Src: /src/core/libcfecompat/getopt.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - argc
    - argv
    - optstring
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 642
    functionName: getopt
    functionSourceFile: /src/core/libcfecompat/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal
    linkageType: ''
    returnType: int
    signature: "int getopt (\n     int argc,\n     char *const *argv,\n     const
      char *optstring\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal
      Src: /src/core/libcfecompat/getopt1.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: getopt_long
    functionSourceFile: /src/core/libcfecompat/getopt1.c
    functionUses: 5
    functionsReached:
    - _getopt_internal
    linkageType: ''
    returnType: int
    signature: "int getopt_long (\n     int argc,\n     char *const *argv,\n     const
      char *options,\n     const struct option *long_options,\n     int *opt_index\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal
      Src: /src/core/libcfecompat/getopt1.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: getopt_long_only
    functionSourceFile: /src/core/libcfecompat/getopt1.c
    functionUses: 0
    functionsReached:
    - _getopt_internal
    linkageType: ''
    returnType: int
    signature: "int getopt_long_only (\n     int argc,\n     char *const *argv,\n
      \    const char *options,\n     const struct option *long_options,\n     int
      *opt_index\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/repair.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 7
    functionDepth: 8
    functionLinenumber: 7
    functionLinenumberEnd: 12
    functionName: repair_main
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: int repair_main(ARG_UNUSED int argc, ARG_UNUSED const char *const *const
      argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/repair.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - force
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 8
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: repair_lmdb_default
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: int repair_lmdb_default(ARG_UNUSED bool force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/repair.c:39,1
    - Dst: printf
      Src: /src/core/cf-check/repair.c:40,1
    - Dst: printf
      Src: /src/core/cf-check/repair.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: print_usage
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_usage(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/repair.c:48,1
    - Dst: SeqLength
      Src: /src/core/cf-check/repair.c:50,1
    - Dst: SeqAt
      Src: /src/core/cf-check/repair.c:55,1
    - Dst: assert
      Src: /src/core/cf-check/repair.c:56,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:57,1
    - Dst: unlink
      Src: /src/core/cf-check/repair.c:59,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:61,1
    - Dst: strerror
      Src: /src/core/cf-check/repair.c:65,1
    - Dst: StringConcatenate
      Src: /src/core/cf-check/repair.c:70,1
    - Dst: unlink
      Src: /src/core/cf-check/repair.c:71,1
    - Dst: free
      Src: /src/core/cf-check/repair.c:72,1
    - Dst: StringConcatenate
      Src: /src/core/cf-check/repair.c:74,1
    - Dst: unlink
      Src: /src/core/cf-check/repair.c:75,1
    - Dst: free
      Src: /src/core/cf-check/repair.c:76,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - files
    argTypes:
    - Seq*
    assertStmts:
    - condition: (files != NULL)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/core/cf-check/repair.c
    - condition: (filename != NULL)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/core/cf-check/repair.c
    constantsTouched: []
    func_position:
      end: 83
      start: 46
    functionDepth: 8
    functionLinenumber: 46
    functionLinenumberEnd: 83
    functionName: remove_files
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 0
    functionsReached:
    - unlink
    - strerror
    - assert
    - StringConcatenate
    - Log
    - SeqLength
    - free
    - SeqAt
    linkageType: ''
    returnType: int
    signature: int remove_files(Seq *files)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-check/repair.c:87,1
    - Dst: lseek
      Src: /src/core/cf-check/repair.c:88,1
    - Dst: write
      Src: /src/core/cf-check/repair.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd_tstamp
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: record_timestamp
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 0
    functionsReached:
    - lseek
    - time
    - write
    linkageType: ''
    returnType: bool
    signature: bool record_timestamp(int fd_tstamp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: StringFormat
      Src: /src/core/cf-check/repair.c:110,1
    - Dst: StringFormat
      Src: /src/core/cf-check/repair.c:115,1
    - Dst: ExclusiveFileLockPath
      Src: /src/core/cf-check/repair.c:116,1
    - Dst: free
      Src: /src/core/cf-check/repair.c:117,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:121,1
    - Dst: fork
      Src: /src/core/cf-check/repair.c:129,1
    - Dst: signal
      Src: /src/core/cf-check/repair.c:138,1
    - Dst: exit
      Src: /src/core/cf-check/repair.c:139,1
    - Dst: replicate_lmdb
      Src: /src/core/cf-check/repair.c:139,1
    - Dst: waitpid
      Src: /src/core/cf-check/repair.c:145,1
    - Dst: WIFEXITED
      Src: /src/core/cf-check/repair.c:152,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-check/repair.c:152,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-check/repair.c:153,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:155,1
    - Dst: unlink
      Src: /src/core/cf-check/repair.c:156,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:158,1
    - Dst: record_timestamp
      Src: /src/core/cf-check/repair.c:163,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:165,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-check/repair.c:168,1
    - Dst: WIFSIGNALED
      Src: /src/core/cf-check/repair.c:172,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:174,1
    - Dst: WTERMSIG
      Src: /src/core/cf-check/repair.c:175,1
    - Dst: unlink
      Src: /src/core/cf-check/repair.c:176,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:178,1
    - Dst: record_timestamp
      Src: /src/core/cf-check/repair.c:183,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:185,1
    - Dst: signal_to_cf_check_code
      Src: /src/core/cf-check/repair.c:188,1
    - Dst: WTERMSIG
      Src: /src/core/cf-check/repair.c:188,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:195,1
    - Dst: rename
      Src: /src/core/cf-check/repair.c:196,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:198,1
    - Dst: strerror
      Src: /src/core/cf-check/repair.c:200,1
    - Dst: unlink
      Src: /src/core/cf-check/repair.c:201,1
    - Dst: record_timestamp
      Src: /src/core/cf-check/repair.c:205,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:207,1
    - Dst: free
      Src: /src/core/cf-check/repair.c:214,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/cf-check/repair.c:217,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 2
    argNames:
    - file
    - fd_tstamp
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 107
    functionDepth: 11
    functionLinenumber: 107
    functionLinenumberEnd: 220
    functionName: repair_lmdb_file
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 0
    functionsReached:
    - WIFSIGNALED
    - record_timestamp
    - ExclusiveFileLockPath
    - ExclusiveFileUnlock
    - Log
    - free
    - unlink
    - strerror
    - StringFormat
    - waitpid
    - WIFEXITED
    - signal
    - rename
    - fork
    - exit
    - WEXITSTATUS
    - signal_to_cf_check_code
    - WTERMSIG
    - replicate_lmdb
    linkageType: ''
    returnType: int
    signature: int repair_lmdb_file(const char *file, int fd_tstamp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: StringFormat
      Src: /src/core/cf-check/repair.c:236,1
    - Dst: ExclusiveFileLockPath
      Src: /src/core/cf-check/repair.c:237,1
    - Dst: free
      Src: /src/core/cf-check/repair.c:238,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:242,1
    - Dst: time
      Src: /src/core/cf-check/repair.c:251,1
    - Dst: StringFormat
      Src: /src/core/cf-check/repair.c:253,1
    - Dst: rename
      Src: /src/core/cf-check/repair.c:254,1
    - Dst: free
      Src: /src/core/cf-check/repair.c:255,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:259,1
    - Dst: GetErrorStr
      Src: /src/core/cf-check/repair.c:261,1
    - Dst: unlink
      Src: /src/core/cf-check/repair.c:262,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:265,1
    - Dst: GetErrorStr
      Src: /src/core/cf-check/repair.c:266,1
    - Dst: record_timestamp
      Src: /src/core/cf-check/repair.c:271,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:273,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/cf-check/repair.c:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - file
    - fd_tstamp
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 230
    functionDepth: 11
    functionLinenumber: 230
    functionLinenumberEnd: 284
    functionName: rotate_lmdb_file
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - unlink
    - record_timestamp
    - ExclusiveFileLockPath
    - ExclusiveFileUnlock
    - rename
    - StringFormat
    - Log
    - free
    - time
    linkageType: ''
    returnType: int
    signature: int rotate_lmdb_file(const char *file, int fd_tstamp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/repair.c:288,1
    - Dst: assert
      Src: /src/core/cf-check/repair.c:289,1
    - Dst: SeqLength
      Src: /src/core/cf-check/repair.c:289,1
    - Dst: diagnose_files
      Src: /src/core/cf-check/repair.c:298,1
    - Dst: assert
      Src: /src/core/cf-check/repair.c:301,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:302,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:309,1
    - Dst: SeqLength
      Src: /src/core/cf-check/repair.c:315,1
    - Dst: assert
      Src: /src/core/cf-check/repair.c:316,1
    - Dst: backup_files_copy
      Src: /src/core/cf-check/repair.c:317,1
    - Dst: SeqAt
      Src: /src/core/cf-check/repair.c:320,1
    - Dst: repair_lmdb_file
      Src: /src/core/cf-check/repair.c:321,1
    - Dst: lmdb_file_needs_rotation
      Src: /src/core/cf-check/repair.c:326,1
    - Dst: rotate_lmdb_file
      Src: /src/core/cf-check/repair.c:328,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:330,1
    - Dst: SeqDestroy
      Src: /src/core/cf-check/repair.c:338,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:343,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:347,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - files
    - force
    - test_write
    argTypes:
    - Seq*
    - bool
    - bool
    assertStmts:
    - condition: (files != NULL)
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/core/cf-check/repair.c
    - condition: (corrupt != NULL)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/core/cf-check/repair.c
    - condition: (SeqLength(files) > 0)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/core/cf-check/repair.c
    - condition: (length > 0)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/core/cf-check/repair.c
    constantsTouched: []
    func_position:
      end: 351
      start: 286
    functionDepth: 12
    functionLinenumber: 286
    functionLinenumberEnd: 351
    functionName: repair_lmdb_files
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 0
    functionsReached:
    - lmdb_file_needs_rotation
    - SeqDestroy
    - assert
    - diagnose_files
    - repair_lmdb_file
    - backup_files_copy
    - Log
    - SeqLength
    - rotate_lmdb_file
    - SeqAt
    linkageType: ''
    returnType: int
    signature: int repair_lmdb_files(Seq *files, bool force, bool test_write)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/repair.c:360,1
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/repair.c:364,1
    - Dst: print_usage
      Src: /src/core/cf-check/repair.c:370,1
    - Dst: printf
      Src: /src/core/cf-check/repair.c:371,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:377,1
    - Dst: argv_to_lmdb_files
      Src: /src/core/cf-check/repair.c:380,1
    - Dst: SeqLength
      Src: /src/core/cf-check/repair.c:381,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:383,1
    - Dst: repair_lmdb_files
      Src: /src/core/cf-check/repair.c:386,1
    - Dst: SeqDestroy
      Src: /src/core/cf-check/repair.c:387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 353
    functionDepth: 13
    functionLinenumber: 353
    functionLinenumberEnd: 389
    functionName: repair_main
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 0
    functionsReached:
    - print_usage
    - SeqDestroy
    - repair_lmdb_files
    - printf
    - StringMatchesOption
    - Log
    - SeqLength
    - argv_to_lmdb_files
    linkageType: ''
    returnType: int
    signature: int repair_main(int argc, const char *const *const argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/repair.c:397,1
    - Dst: default_lmdb_files
      Src: /src/core/cf-check/repair.c:399,1
    - Dst: SeqLength
      Src: /src/core/cf-check/repair.c:405,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:408,1
    - Dst: repair_lmdb_files
      Src: /src/core/cf-check/repair.c:411,1
    - Dst: SeqDestroy
      Src: /src/core/cf-check/repair.c:412,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:416,1
    - Dst: Log
      Src: /src/core/cf-check/repair.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - force
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 391
    functionDepth: 13
    functionLinenumber: 391
    functionLinenumberEnd: 420
    functionName: repair_lmdb_default
    functionSourceFile: /src/core/cf-check/repair.c
    functionUses: 0
    functionsReached:
    - default_lmdb_files
    - SeqDestroy
    - repair_lmdb_files
    - Log
    - SeqLength
    linkageType: ''
    returnType: int
    signature: int repair_lmdb_default(bool force)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - apply_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 107
    functionName: OBSERVABLES_APPLY
    functionSourceFile: /src/core/cf-check/db_structs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OBSERVABLES_APPLY(apply_macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OB_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: GENERATE_OB_ENUM
    functionSourceFile: /src/core/cf-check/db_structs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_OB_ENUM(OB_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OB_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: GENERATE_OB_STRING
    functionSourceFile: /src/core/cf-check/db_structs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_OB_STRING(OB_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 73
    functionName: CF_CHECK_RUN_CODES
    functionSourceFile: /src/core/cf-check/diagnose.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_CHECK_RUN_CODES(macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: CF_CHECK_CREATE_ENUM
    functionSourceFile: /src/core/cf-check/diagnose.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_CHECK_CREATE_ENUM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/replicate_lmdb.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s_file
    - d_file
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 8
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: replicate_lmdb
    functionSourceFile: /src/core/cf-check/replicate_lmdb.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: int replicate_lmdb(ARG_UNUSED const char *s_file, ARG_UNUSED const
      char *d_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mdb_env_get_userctx
      Src: /src/core/cf-check/replicate_lmdb.c:27,1
    - Dst: Log
      Src: /src/core/cf-check/replicate_lmdb.c:28,1
    - Dst: mdb_env_set_assert
      Src: /src/core/cf-check/replicate_lmdb.c:30,1
    - Dst: mdb_txn_commit
      Src: /src/core/cf-check/replicate_lmdb.c:37,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/replicate_lmdb.c:42,1
    - Dst: StringFormat
      Src: /src/core/cf-check/replicate_lmdb.c:46,1
    - Dst: unlink
      Src: /src/core/cf-check/replicate_lmdb.c:47,1
    - Dst: free
      Src: /src/core/cf-check/replicate_lmdb.c:48,1
    - Dst: exit
      Src: /src/core/cf-check/replicate_lmdb.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - env
    - msg
    argTypes:
    - MDB_env*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 51
    functionName: HandleSrcLMDBCorruption
    functionSourceFile: /src/core/cf-check/replicate_lmdb.c
    functionUses: 0
    functionsReached:
    - exit
    - mdb_env_set_assert
    - unlink
    - mdb_txn_abort
    - Log
    - StringFormat
    - mdb_txn_commit
    - free
    - mdb_env_get_userctx
    linkageType: ''
    returnType: void
    signature: void HandleSrcLMDBCorruption(MDB_env *env, const char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mdb_env_get_userctx
      Src: /src/core/cf-check/replicate_lmdb.c:55,1
    - Dst: Log
      Src: /src/core/cf-check/replicate_lmdb.c:56,1
    - Dst: mdb_env_set_assert
      Src: /src/core/cf-check/replicate_lmdb.c:58,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/replicate_lmdb.c:61,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/replicate_lmdb.c:65,1
    - Dst: StringFormat
      Src: /src/core/cf-check/replicate_lmdb.c:69,1
    - Dst: unlink
      Src: /src/core/cf-check/replicate_lmdb.c:70,1
    - Dst: free
      Src: /src/core/cf-check/replicate_lmdb.c:71,1
    - Dst: exit
      Src: /src/core/cf-check/replicate_lmdb.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - env
    - msg
    argTypes:
    - MDB_env*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 53
    functionDepth: 8
    functionLinenumber: 53
    functionLinenumberEnd: 77
    functionName: HandleDstLMDBCorruption
    functionSourceFile: /src/core/cf-check/replicate_lmdb.c
    functionUses: 0
    functionsReached:
    - exit
    - mdb_env_set_assert
    - unlink
    - StringFormat
    - Log
    - mdb_txn_abort
    - free
    - mdb_env_get_userctx
    linkageType: ''
    returnType: void
    signature: void HandleDstLMDBCorruption(MDB_env *env, const char *msg)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/replicate_lmdb.c:103,1
    - Dst: mdb_env_create
      Src: /src/core/cf-check/replicate_lmdb.c:105,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:109,1
    - Dst: mdb_env_set_userctx
      Src: /src/core/cf-check/replicate_lmdb.c:112,1
    - Dst: mdb_env_set_assert
      Src: /src/core/cf-check/replicate_lmdb.c:113,1
    - Dst: mdb_env_open
      Src: /src/core/cf-check/replicate_lmdb.c:118,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:122,1
    - Dst: mdb_txn_begin
      Src: /src/core/cf-check/replicate_lmdb.c:126,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:130,1
    - Dst: mdb_dbi_open
      Src: /src/core/cf-check/replicate_lmdb.c:135,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:139,1
    - Dst: mdb_cursor_open
      Src: /src/core/cf-check/replicate_lmdb.c:147,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:151,1
    - Dst: mdb_env_create
      Src: /src/core/cf-check/replicate_lmdb.c:155,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:159,1
    - Dst: mdb_env_set_userctx
      Src: /src/core/cf-check/replicate_lmdb.c:162,1
    - Dst: mdb_env_set_assert
      Src: /src/core/cf-check/replicate_lmdb.c:163,1
    - Dst: mdb_env_open
      Src: /src/core/cf-check/replicate_lmdb.c:165,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:169,1
    - Dst: mdb_txn_begin
      Src: /src/core/cf-check/replicate_lmdb.c:173,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:177,1
    - Dst: mdb_dbi_open
      Src: /src/core/cf-check/replicate_lmdb.c:182,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:186,1
    - Dst: mdb_cursor_open
      Src: /src/core/cf-check/replicate_lmdb.c:194,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:198,1
    - Dst: mdb_cursor_get
      Src: /src/core/cf-check/replicate_lmdb.c:207,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:211,1
    - Dst: mdb_put
      Src: /src/core/cf-check/replicate_lmdb.c:216,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/replicate_lmdb.c:219,1
    - Dst: mdb_txn_commit
      Src: /src/core/cf-check/replicate_lmdb.c:224,1
    - Dst: mdb_cursor_close
      Src: /src/core/cf-check/replicate_lmdb.c:231,1
    - Dst: mdb_close
      Src: /src/core/cf-check/replicate_lmdb.c:235,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/replicate_lmdb.c:239,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/replicate_lmdb.c:243,1
    - Dst: mdb_cursor_close
      Src: /src/core/cf-check/replicate_lmdb.c:248,1
    - Dst: mdb_close
      Src: /src/core/cf-check/replicate_lmdb.c:252,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/replicate_lmdb.c:256,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/replicate_lmdb.c:260,1
    - Dst: StringFormat
      Src: /src/core/cf-check/replicate_lmdb.c:264,1
    - Dst: unlink
      Src: /src/core/cf-check/replicate_lmdb.c:265,1
    - Dst: free
      Src: /src/core/cf-check/replicate_lmdb.c:266,1
    - Dst: lmdb_errno_to_cf_check_code
      Src: /src/core/cf-check/replicate_lmdb.c:268,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 130
    argCount: 2
    argNames:
    - s_file
    - d_file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 86
    functionDepth: 8
    functionLinenumber: 86
    functionLinenumberEnd: 270
    functionName: replicate_lmdb
    functionSourceFile: /src/core/cf-check/replicate_lmdb.c
    functionUses: 1
    functionsReached:
    - Log
    - lmdb_errno_to_cf_check_code
    - free
    - mdb_env_set_assert
    - mdb_close
    - unlink
    - report_mdb_error
    - StringFormat
    - mdb_cursor_open
    - mdb_env_create
    - mdb_cursor_close
    - mdb_put
    - mdb_env_set_userctx
    - mdb_cursor_get
    - mdb_txn_abort
    - mdb_dbi_open
    - mdb_env_open
    - mdb_txn_begin
    - mdb_env_close
    - mdb_txn_commit
    linkageType: ''
    returnType: int
    signature: int replicate_lmdb(const char *s_file, const char *d_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/validate.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 7
    functionDepth: 8
    functionLinenumber: 7
    functionLinenumberEnd: 13
    functionName: CFCheck_Validate
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: int CFCheck_Validate(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:58,1
    - Dst: xcalloc
      Src: /src/core/cf-check/validate.c:60,1
    - Dst: xmemdup
      Src: /src/core/cf-check/validate.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: NewLMDBSlice
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - assert
    - xcalloc
    - xmemdup
    linkageType: ''
    returnType: Slice
    signature: Slice *NewLMDBSlice(void *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-check/validate.c:80,1
    - Dst: free
      Src: /src/core/cf-check/validate.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - Slice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: DestroyLMDBSlice
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void DestroyLMDBSlice(Slice *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:87,1
    - Dst: StringSetNew
      Src: /src/core/cf-check/validate.c:92,1
    - Dst: SeqNew
      Src: /src/core/cf-check/validate.c:93,1
    - Dst: StringEndsWith
      Src: /src/core/cf-check/validate.c:95,1
    - Dst: StringMapNew
      Src: /src/core/cf-check/validate.c:98,1
    - Dst: StringMapNew
      Src: /src/core/cf-check/validate.c:99,1
    - Dst: StringSetNew
      Src: /src/core/cf-check/validate.c:100,1
    - Dst: StringSetNew
      Src: /src/core/cf-check/validate.c:101,1
    - Dst: StringEndsWith
      Src: /src/core/cf-check/validate.c:103,1
    - Dst: StringEndsWith
      Src: /src/core/cf-check/validate.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - path
    - state
    argTypes:
    - char*
    - ValidatorState*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 115
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 115
    functionName: NewValidator
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - assert
    - StringEndsWith
    - SeqNew
    - StringSetNew
    - StringMapNew
    linkageType: ''
    returnType: void
    signature: void NewValidator(const char *path, ValidatorState *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:121,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-check/validate.c:125,1
    - Dst: SeqDestroy
      Src: /src/core/cf-check/validate.c:126,1
    - Dst: StringMapDestroy
      Src: /src/core/cf-check/validate.c:131,1
    - Dst: StringMapDestroy
      Src: /src/core/cf-check/validate.c:132,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-check/validate.c:133,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-check/validate.c:134,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-check/validate.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - state
    argTypes:
    - ValidatorState*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: DestroyValidator
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - assert
    - StringMapDestroy
    - StringSetDestroy
    - debug_abort_if_reached
    linkageType: ''
    returnType: void
    signature: void DestroyValidator(ValidatorState *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:149,1
    - Dst: assert
      Src: /src/core/cf-check/validate.c:150,1
    - Dst: printf
      Src: /src/core/cf-check/validate.c:152,1
    - Dst: vprintf
      Src: /src/core/cf-check/validate.c:153,1
    - Dst: printf
      Src: /src/core/cf-check/validate.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - state
    - fmt
    - ap
    argTypes:
    - ValidatorState*
    - char*
    - va_list
    assertStmts:
    - condition: (state != NULL && state->path != NULL)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/core/cf-check/validate.c
    - condition: (fmt != NULL)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 156
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 156
    functionName: va_ValidationError
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - assert
    - printf
    - vprintf
    linkageType: ''
    returnType: void
    signature: "void va_ValidationError(\n    ValidatorState *state, const char *fmt,
      va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/cf-check/validate.c:164,1
    - Dst: va_ValidationError
      Src: /src/core/cf-check/validate.c:165,1
    - Dst: va_end
      Src: /src/core/cf-check/validate.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - state
    - fmt
    argTypes:
    - ValidatorState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: ValidationError
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 1
    functionsReached:
    - va_ValidationError
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void ValidationError(ValidatorState *state, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:171,1
    - Dst: strnlen
      Src: /src/core/cf-check/validate.c:175,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:177,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - state
    - string
    argTypes:
    - ValidatorState*
    - MDB_val
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 188
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 188
    functionName: ValidateString
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - assert
    - ValidationError
    - strnlen
    linkageType: ''
    returnType: bool
    signature: bool ValidateString(ValidatorState *state, MDB_val string)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EmptyString
      Src: /src/core/cf-check/validate.c:193,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:196,1
    - Dst: StringStartsWith
      Src: /src/core/cf-check/validate.c:204,1
    - Dst: strlen
      Src: /src/core/cf-check/validate.c:206,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:208,1
    - Dst: StringStartsWith
      Src: /src/core/cf-check/validate.c:212,1
    - Dst: strlen
      Src: /src/core/cf-check/validate.c:214,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:216,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - state
    - hostkey
    argTypes:
    - ValidatorState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 227
    functionName: ValidateHostkey
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - ValidationError
    - EmptyString
    - StringStartsWith
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool ValidateHostkey(ValidatorState *state, const char *hostkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EmptyString
      Src: /src/core/cf-check/validate.c:231,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - address
    argTypes:
    - ValidatorState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: ValidateAddress
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - ValidationError
    - EmptyString
    linkageType: ''
    returnType: bool
    signature: bool ValidateAddress(ValidatorState *state, const char *address)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:244,1
    - Dst: assert
      Src: /src/core/cf-check/validate.c:245,1
    - Dst: assert
      Src: /src/core/cf-check/validate.c:246,1
    - Dst: StringStartsWith
      Src: /src/core/cf-check/validate.c:256,1
    - Dst: ValidateString
      Src: /src/core/cf-check/validate.c:258,1
    - Dst: xstrdup
      Src: /src/core/cf-check/validate.c:263,1
    - Dst: xstrdup
      Src: /src/core/cf-check/validate.c:264,1
    - Dst: assert
      Src: /src/core/cf-check/validate.c:270,1
    - Dst: StringMapGet
      Src: /src/core/cf-check/validate.c:270,1
    - Dst: StringMapInsert
      Src: /src/core/cf-check/validate.c:272,1
    - Dst: StringStartsWith
      Src: /src/core/cf-check/validate.c:274,1
    - Dst: ValidateString
      Src: /src/core/cf-check/validate.c:276,1
    - Dst: xstrdup
      Src: /src/core/cf-check/validate.c:281,1
    - Dst: xstrdup
      Src: /src/core/cf-check/validate.c:282,1
    - Dst: assert
      Src: /src/core/cf-check/validate.c:283,1
    - Dst: StringMapGet
      Src: /src/core/cf-check/validate.c:283,1
    - Dst: StringMapInsert
      Src: /src/core/cf-check/validate.c:284,1
    - Dst: StringStartsWith
      Src: /src/core/cf-check/validate.c:286,1
    - Dst: assert
      Src: /src/core/cf-check/validate.c:289,1
    - Dst: StringSetContains
      Src: /src/core/cf-check/validate.c:289,1
    - Dst: StringSetAdd
      Src: /src/core/cf-check/validate.c:290,1
    - Dst: xstrdup
      Src: /src/core/cf-check/validate.c:290,1
    - Dst: StringStartsWith
      Src: /src/core/cf-check/validate.c:292,1
    - Dst: assert
      Src: /src/core/cf-check/validate.c:295,1
    - Dst: StringSetContains
      Src: /src/core/cf-check/validate.c:295,1
    - Dst: StringSetAdd
      Src: /src/core/cf-check/validate.c:296,1
    - Dst: xstrdup
      Src: /src/core/cf-check/validate.c:296,1
    - Dst: memcpy
      Src: /src/core/cf-check/validate.c:305,1
    - Dst: time
      Src: /src/core/cf-check/validate.c:308,1
    - Dst: Log
      Src: /src/core/cf-check/validate.c:310,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:317,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:324,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:332,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:342,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - state
    - key
    - value
    argTypes:
    - ValidatorState*
    - MDB_val
    - MDB_val
    assertStmts:
    - condition: (key.mv_size > 0 && key.mv_data != NULL)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/core/cf-check/validate.c
    - condition: (value.mv_size > 0 && value.mv_data != NULL)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/core/cf-check/validate.c
    - condition: (StringMapGet(address_to_hostkey, address) == NULL)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/core/cf-check/validate.c
    - condition: (!StringSetContains(quality_outgoing_hostkeys, hostkey))
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/core/cf-check/validate.c
    - condition: (!StringSetContains(quality_incoming_hostkeys, hostkey))
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/core/cf-check/validate.c
    - condition: (state != NULL)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/core/cf-check/validate.c
    - condition: (StringMapGet(hostkey_to_address, hostkey) == NULL)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 346
      start: 241
    functionDepth: 8
    functionLinenumber: 241
    functionLinenumberEnd: 346
    functionName: UpdateValidatorLastseen
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - memcpy
    - time
    - assert
    - StringMapInsert
    - StringMapGet
    - StringSetContains
    - ValidationError
    - Log
    - xstrdup
    - ValidateString
    - StringStartsWith
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: "void UpdateValidatorLastseen(\n    ValidatorState *state, MDB_val
      key, MDB_val value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:351,1
    - Dst: assert
      Src: /src/core/cf-check/validate.c:352,1
    - Dst: assert
      Src: /src/core/cf-check/validate.c:353,1
    - Dst: memcpy
      Src: /src/core/cf-check/validate.c:358,1
    - Dst: time
      Src: /src/core/cf-check/validate.c:360,1
    - Dst: Log
      Src: /src/core/cf-check/validate.c:362,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:369,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:376,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - state
    - key
    - value
    argTypes:
    - ValidatorState*
    - MDB_val
    - MDB_val
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/core/cf-check/validate.c
    - condition: (key.mv_size > 0 && key.mv_data != NULL)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/core/cf-check/validate.c
    - condition: (value.mv_size > 0 && value.mv_data != NULL)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 8
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: UpdateValidatorLock
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - ValidationError
    - Log
    - time
    linkageType: ''
    returnType: void
    signature: "void UpdateValidatorLock(\n    ValidatorState *state, MDB_val key,
      MDB_val value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - state
    - value
    - name
    argTypes:
    - ValidatorState*
    - MDB_val
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 402
    functionName: ValidateMDBValue
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - ValidationError
    linkageType: ''
    returnType: bool
    signature: "bool ValidateMDBValue(\n    ValidatorState *state, MDB_val value,
      const char *name)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:406,1
    - Dst: xmemdup
      Src: /src/core/cf-check/validate.c:412,1
    - Dst: xmemdup
      Src: /src/core/cf-check/validate.c:413,1
    - Dst: free
      Src: /src/core/cf-check/validate.c:414,1
    - Dst: free
      Src: /src/core/cf-check/validate.c:415,1
    - Dst: ValidateMDBValue
      Src: /src/core/cf-check/validate.c:419,1
    - Dst: ValidateString
      Src: /src/core/cf-check/validate.c:419,1
    - Dst: ValidateMDBValue
      Src: /src/core/cf-check/validate.c:420,1
    - Dst: StringSetContains
      Src: /src/core/cf-check/validate.c:427,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:429,1
    - Dst: Log
      Src: /src/core/cf-check/validate.c:433,1
    - Dst: StringSetAdd
      Src: /src/core/cf-check/validate.c:437,1
    - Dst: xstrdup
      Src: /src/core/cf-check/validate.c:437,1
    - Dst: SeqAppend
      Src: /src/core/cf-check/validate.c:439,1
    - Dst: NewLMDBSlice
      Src: /src/core/cf-check/validate.c:439,1
    - Dst: UpdateValidatorLastseen
      Src: /src/core/cf-check/validate.c:444,1
    - Dst: UpdateValidatorLock
      Src: /src/core/cf-check/validate.c:447,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-check/validate.c:452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - state
    - key
    - value
    argTypes:
    - ValidatorState*
    - MDB_val
    - MDB_val
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 457
      start: 404
    functionDepth: 9
    functionLinenumber: 404
    functionLinenumberEnd: 457
    functionName: UpdateValidator
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - ValidateMDBValue
    - xmemdup
    - assert
    - StringSetContains
    - ValidationError
    - SeqAppend
    - NewLMDBSlice
    - debug_abort_if_reached
    - Log
    - UpdateValidatorLastseen
    - xstrdup
    - UpdateValidatorLock
    - free
    - ValidateString
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void UpdateValidator(ValidatorState *state, MDB_val key, MDB_val value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:467,1
    - Dst: MapIteratorInit
      Src: /src/core/cf-check/validate.c:470,1
    - Dst: MapIteratorNext
      Src: /src/core/cf-check/validate.c:472,1
    - Dst: ValidateHostkey
      Src: /src/core/cf-check/validate.c:475,1
    - Dst: ValidateAddress
      Src: /src/core/cf-check/validate.c:480,1
    - Dst: StringMapGet
      Src: /src/core/cf-check/validate.c:484,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:487,1
    - Dst: StringEqual
      Src: /src/core/cf-check/validate.c:490,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:492,1
    - Dst: MapIteratorInit
      Src: /src/core/cf-check/validate.c:501,1
    - Dst: MapIteratorNext
      Src: /src/core/cf-check/validate.c:503,1
    - Dst: ValidateAddress
      Src: /src/core/cf-check/validate.c:506,1
    - Dst: ValidateHostkey
      Src: /src/core/cf-check/validate.c:511,1
    - Dst: StringMapGet
      Src: /src/core/cf-check/validate.c:515,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:518,1
    - Dst: StringEqual
      Src: /src/core/cf-check/validate.c:521,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:523,1
    - Dst: StringSetIteratorInit
      Src: /src/core/cf-check/validate.c:533,1
    - Dst: StringSetIteratorNext
      Src: /src/core/cf-check/validate.c:535,1
    - Dst: StringMapGet
      Src: /src/core/cf-check/validate.c:537,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:539,1
    - Dst: StringSetIteratorInit
      Src: /src/core/cf-check/validate.c:548,1
    - Dst: StringSetIteratorNext
      Src: /src/core/cf-check/validate.c:550,1
    - Dst: StringMapGet
      Src: /src/core/cf-check/validate.c:552,1
    - Dst: ValidationError
      Src: /src/core/cf-check/validate.c:554,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 1
    argNames:
    - state
    argTypes:
    - ValidatorState*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 561
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 561
    functionName: ValidateStateLastseen
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - assert
    - ValidationError
    - StringMapGet
    - StringSetIteratorNext
    - ValidateAddress
    - MapIteratorNext
    - ValidateHostkey
    - MapIteratorInit
    - StringSetIteratorInit
    - StringEqual
    linkageType: ''
    returnType: void
    signature: void ValidateStateLastseen(ValidatorState *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:565,1
    - Dst: ValidateStateLastseen
      Src: /src/core/cf-check/validate.c:570,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-check/validate.c:576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - ValidatorState*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 564
        line_start: 564
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 579
      start: 563
    functionDepth: 5
    functionLinenumber: 563
    functionLinenumberEnd: 579
    functionName: ValidateState
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - assert
    - ValidateStateLastseen
    - debug_abort_if_reached
    linkageType: ''
    returnType: void
    signature: void ValidateState(ValidatorState *state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/validate.c:583,1
    - Dst: mdb_env_create
      Src: /src/core/cf-check/validate.c:586,1
    - Dst: mdb_env_open
      Src: /src/core/cf-check/validate.c:592,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/validate.c:595,1
    - Dst: mdb_txn_begin
      Src: /src/core/cf-check/validate.c:600,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/validate.c:603,1
    - Dst: mdb_open
      Src: /src/core/cf-check/validate.c:608,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/validate.c:611,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/validate.c:612,1
    - Dst: mdb_cursor_open
      Src: /src/core/cf-check/validate.c:617,1
    - Dst: mdb_close
      Src: /src/core/cf-check/validate.c:620,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/validate.c:621,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/validate.c:622,1
    - Dst: NewValidator
      Src: /src/core/cf-check/validate.c:627,1
    - Dst: mdb_cursor_get
      Src: /src/core/cf-check/validate.c:629,1
    - Dst: UpdateValidator
      Src: /src/core/cf-check/validate.c:631,1
    - Dst: DestroyValidator
      Src: /src/core/cf-check/validate.c:636,1
    - Dst: mdb_cursor_close
      Src: /src/core/cf-check/validate.c:637,1
    - Dst: mdb_close
      Src: /src/core/cf-check/validate.c:638,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/validate.c:639,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/validate.c:640,1
    - Dst: mdb_cursor_close
      Src: /src/core/cf-check/validate.c:643,1
    - Dst: mdb_close
      Src: /src/core/cf-check/validate.c:644,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/validate.c:646,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/validate.c:647,1
    - Dst: ValidateState
      Src: /src/core/cf-check/validate.c:649,1
    - Dst: DestroyValidator
      Src: /src/core/cf-check/validate.c:651,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts:
    - condition: (path != NULL)
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/core/cf-check/validate.c
    constantsTouched: []
    func_position:
      end: 654
      start: 581
    functionDepth: 10
    functionLinenumber: 581
    functionLinenumberEnd: 654
    functionName: CFCheck_Validate
    functionSourceFile: /src/core/cf-check/validate.c
    functionUses: 0
    functionsReached:
    - mdb_env_open
    - DestroyValidator
    - mdb_close
    - UpdateValidator
    - assert
    - mdb_cursor_close
    - ValidateState
    - mdb_txn_begin
    - mdb_open
    - mdb_cursor_get
    - mdb_env_close
    - mdb_cursor_open
    - mdb_env_create
    - mdb_txn_abort
    - NewValidator
    linkageType: ''
    returnType: int
    signature: int CFCheck_Validate(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 7
    functionDepth: 8
    functionLinenumber: 7
    functionLinenumberEnd: 13
    functionName: diagnose_main
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: "int diagnose_main(\n    ARG_UNUSED int argc, ARG_UNUSED const char
      *const *const argv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - filenames
    - corrupt
    - foreground
    - validate
    - test_write
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED**
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 15
    functionDepth: 8
    functionLinenumber: 15
    functionLinenumberEnd: 25
    functionName: diagnose_files
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: size_t
    signature: "size_t diagnose_files(\n    ARG_UNUSED const Seq *filenames,\n    ARG_UNUSED
      Seq **corrupt,\n    ARG_UNUSED bool foreground,\n    ARG_UNUSED bool validate,\n
      \   ARG_UNUSED bool test_write)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: CF_CHECK_CREATE_STRING
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_CHECK_CREATE_STRING(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: code_is_errno
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool code_is_errno(int r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/core/cf-check/diagnose.c:62,1
    - Dst: strncmp
      Src: /src/core/cf-check/diagnose.c:69,1
    - Dst: strlen
      Src: /src/core/cf-check/diagnose.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: strerror_or_null
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - strerror
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strerror_or_null(int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/diagnose.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts:
    - condition: (r != 0)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/core/cf-check/diagnose.c
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: errno_to_code
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int errno_to_code(int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/diagnose.c:85,1
    - Dst: code_is_errno
      Src: /src/core/cf-check/diagnose.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts:
    - condition: (code_is_errno(r))
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/core/cf-check/diagnose.c
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: code_to_errno
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - assert
    - code_is_errno
    linkageType: ''
    returnType: int
    signature: int code_to_errno(int r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: code_is_errno
      Src: /src/core/cf-check/diagnose.c:96,1
    - Dst: code_to_errno
      Src: /src/core/cf-check/diagnose.c:98,1
    - Dst: strerror_or_null
      Src: /src/core/cf-check/diagnose.c:99,1
    - Dst: snprintf
      Src: /src/core/cf-check/diagnose.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: CF_CHECK_STRING
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - code_to_errno
    - snprintf
    - strerror_or_null
    - code_is_errno
    linkageType: ''
    returnType: char
    signature: char *CF_CHECK_STRING(int code)
  - BBCount: 29
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 60
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 177
    functionName: signal_to_cf_check_code
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int signal_to_cf_check_code(int sig)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: errno_to_code
      Src: /src/core/cf-check/diagnose.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 239
    functionName: lmdb_errno_to_cf_check_code
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 1
    functionsReached:
    - errno_to_code
    linkageType: ''
    returnType: int
    signature: int lmdb_errno_to_cf_check_code(int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:243,1
    - Dst: mdb_strerror
      Src: /src/core/cf-check/diagnose.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db_file
    - op
    - rc
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 8
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: report_mdb_error
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 1
    functionsReached:
    - mdb_strerror
    - Log
    linkageType: ''
    returnType: void
    signature: void report_mdb_error(const char *db_file, const char *op, int rc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CFCheck_Validate
      Src: /src/core/cf-check/diagnose.c:257,1
    - Dst: dup
      Src: /src/core/cf-check/diagnose.c:263,1
    - Dst: freopen
      Src: /src/core/cf-check/diagnose.c:264,1
    - Dst: assert
      Src: /src/core/cf-check/diagnose.c:269,1
    - Dst: lmdump
      Src: /src/core/cf-check/diagnose.c:270,1
    - Dst: fflush
      Src: /src/core/cf-check/diagnose.c:272,1
    - Dst: dup2
      Src: /src/core/cf-check/diagnose.c:273,1
    - Dst: freopen
      Src: /src/core/cf-check/diagnose.c:278,1
    - Dst: assert
      Src: /src/core/cf-check/diagnose.c:283,1
    - Dst: fclose
      Src: /src/core/cf-check/diagnose.c:284,1
    - Dst: lmdump
      Src: /src/core/cf-check/diagnose.c:285,1
    - Dst: lmdb_errno_to_cf_check_code
      Src: /src/core/cf-check/diagnose.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - path
    - temporary_redirect
    - validate
    argTypes:
    - char*
    - bool
    - bool
    assertStmts:
    - condition: (f_result == stdout)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/core/cf-check/diagnose.c
    - condition: (f_result == stdout)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/core/cf-check/diagnose.c
    constantsTouched: []
    func_position:
      end: 288
      start: 247
    functionDepth: 9
    functionLinenumber: 247
    functionLinenumberEnd: 288
    functionName: diagnose
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - fflush
    - assert
    - dup
    - CFCheck_Validate
    - lmdump
    - freopen
    - fclose
    - lmdb_errno_to_cf_check_code
    - dup2
    linkageType: ''
    returnType: int
    signature: int diagnose(const char *path, bool temporary_redirect, bool validate)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:307,1
    - Dst: mdb_env_create
      Src: /src/core/cf-check/diagnose.c:309,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:313,1
    - Dst: mdb_env_open
      Src: /src/core/cf-check/diagnose.c:317,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:321,1
    - Dst: mdb_txn_begin
      Src: /src/core/cf-check/diagnose.c:325,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:329,1
    - Dst: mdb_dbi_open
      Src: /src/core/cf-check/diagnose.c:333,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:337,1
    - Dst: mdb_cursor_open
      Src: /src/core/cf-check/diagnose.c:345,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:349,1
    - Dst: mdb_cursor_get
      Src: /src/core/cf-check/diagnose.c:354,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:358,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:366,1
    - Dst: xmalloc
      Src: /src/core/cf-check/diagnose.c:373,1
    - Dst: xmalloc
      Src: /src/core/cf-check/diagnose.c:374,1
    - Dst: RAND_bytes
      Src: /src/core/cf-check/diagnose.c:376,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:379,1
    - Dst: RAND_bytes
      Src: /src/core/cf-check/diagnose.c:383,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:386,1
    - Dst: mdb_put
      Src: /src/core/cf-check/diagnose.c:390,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:393,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:394,1
    - Dst: mdb_txn_commit
      Src: /src/core/cf-check/diagnose.c:399,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:402,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:403,1
    - Dst: mdb_close
      Src: /src/core/cf-check/diagnose.c:409,1
    - Dst: mdb_txn_begin
      Src: /src/core/cf-check/diagnose.c:412,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:416,1
    - Dst: mdb_dbi_open
      Src: /src/core/cf-check/diagnose.c:420,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:424,1
    - Dst: mdb_del
      Src: /src/core/cf-check/diagnose.c:432,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:435,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:436,1
    - Dst: mdb_txn_commit
      Src: /src/core/cf-check/diagnose.c:441,1
    - Dst: report_mdb_error
      Src: /src/core/cf-check/diagnose.c:444,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:445,1
    - Dst: mdb_close
      Src: /src/core/cf-check/diagnose.c:451,1
    - Dst: free
      Src: /src/core/cf-check/diagnose.c:455,1
    - Dst: free
      Src: /src/core/cf-check/diagnose.c:456,1
    - Dst: mdb_cursor_close
      Src: /src/core/cf-check/diagnose.c:460,1
    - Dst: mdb_close
      Src: /src/core/cf-check/diagnose.c:464,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/diagnose.c:468,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/diagnose.c:472,1
    - Dst: lmdb_errno_to_cf_check_code
      Src: /src/core/cf-check/diagnose.c:475,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 144
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 290
    functionDepth: 9
    functionLinenumber: 290
    functionLinenumberEnd: 477
    functionName: diagnose_write
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - Log
    - lmdb_errno_to_cf_check_code
    - free
    - mdb_close
    - report_mdb_error
    - mdb_cursor_open
    - mdb_env_create
    - mdb_cursor_close
    - mdb_del
    - mdb_put
    - mdb_cursor_get
    - xmalloc
    - mdb_txn_abort
    - mdb_dbi_open
    - mdb_env_open
    - mdb_txn_begin
    - mdb_env_close
    - mdb_txn_commit
    linkageType: ''
    returnType: int
    signature: int diagnose_write(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/core/cf-check/diagnose.c:481,1
    - Dst: diagnose
      Src: /src/core/cf-check/diagnose.c:488,1
    - Dst: diagnose_write
      Src: /src/core/cf-check/diagnose.c:491,1
    - Dst: exit
      Src: /src/core/cf-check/diagnose.c:493,1
    - Dst: waitpid
      Src: /src/core/cf-check/diagnose.c:499,1
    - Dst: WIFEXITED
      Src: /src/core/cf-check/diagnose.c:504,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-check/diagnose.c:504,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-check/diagnose.c:506,1
    - Dst: WIFSIGNALED
      Src: /src/core/cf-check/diagnose.c:508,1
    - Dst: signal_to_cf_check_code
      Src: /src/core/cf-check/diagnose.c:510,1
    - Dst: WTERMSIG
      Src: /src/core/cf-check/diagnose.c:510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - path
    - validate
    - test_write
    argTypes:
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 479
    functionDepth: 10
    functionLinenumber: 479
    functionLinenumberEnd: 514
    functionName: fork_and_diagnose
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - fork
    - exit
    - WEXITSTATUS
    - WIFSIGNALED
    - signal_to_cf_check_code
    - WTERMSIG
    - WIFEXITED
    - diagnose_write
    - diagnose
    - waitpid
    linkageType: ''
    returnType: int
    signature: int fork_and_diagnose(const char *path, bool validate, bool test_write)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readlink
      Src: /src/core/cf-check/diagnose.c:519,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:526,1
    - Dst: xstrdup
      Src: /src/core/cf-check/diagnose.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 516
    functionDepth: 8
    functionLinenumber: 516
    functionLinenumberEnd: 531
    functionName: follow_symlink
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - Log
    - readlink
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *follow_symlink(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/cf-check/diagnose.c:536,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:547,1
    - Dst: GetErrorStr
      Src: /src/core/cf-check/diagnose.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - file
    - usage
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 533
    functionDepth: 8
    functionLinenumber: 533
    functionLinenumberEnd: 550
    functionName: lmdb_file_needs_rotation
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - Log
    linkageType: ''
    returnType: bool
    signature: bool lmdb_file_needs_rotation(const char *file, int *usage)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/cf-check/diagnose.c:569,1
    - Dst: SeqNew
      Src: /src/core/cf-check/diagnose.c:573,1
    - Dst: SeqAt
      Src: /src/core/cf-check/diagnose.c:578,1
    - Dst: follow_symlink
      Src: /src/core/cf-check/diagnose.c:581,1
    - Dst: access
      Src: /src/core/cf-check/diagnose.c:588,1
    - Dst: diagnose
      Src: /src/core/cf-check/diagnose.c:605,1
    - Dst: diagnose_write
      Src: /src/core/cf-check/diagnose.c:608,1
    - Dst: fork_and_diagnose
      Src: /src/core/cf-check/diagnose.c:613,1
    - Dst: lmdb_file_needs_rotation
      Src: /src/core/cf-check/diagnose.c:619,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:620,1
    - Dst: CF_CHECK_STRING
      Src: /src/core/cf-check/diagnose.c:624,1
    - Dst: lmdb_file_needs_rotation
      Src: /src/core/cf-check/diagnose.c:631,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:632,1
    - Dst: CF_CHECK_STRING
      Src: /src/core/cf-check/diagnose.c:635,1
    - Dst: SeqAppend
      Src: /src/core/cf-check/diagnose.c:646,1
    - Dst: xstrdup
      Src: /src/core/cf-check/diagnose.c:646,1
    - Dst: free
      Src: /src/core/cf-check/diagnose.c:649,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:653,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:657,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 5
    argNames:
    - filenames
    - corrupt
    - foreground
    - validate
    - test_write
    argTypes:
    - Seq*
    - Seq**
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 561
    functionDepth: 11
    functionLinenumber: 561
    functionLinenumberEnd: 663
    functionName: diagnose_files
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 1
    functionsReached:
    - access
    - lmdb_file_needs_rotation
    - fork_and_diagnose
    - SeqAppend
    - SeqNew
    - follow_symlink
    - CF_CHECK_STRING
    - diagnose_write
    - diagnose
    - Log
    - xstrdup
    - SeqLength
    - free
    - SeqAt
    linkageType: ''
    returnType: size_t
    signature: "size_t diagnose_files(\n    const Seq *filenames,\n    Seq **corrupt,\n
      \   bool foreground,\n    bool validate,\n    bool test_write)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/diagnose.c:673,1
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/diagnose.c:678,1
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/diagnose.c:683,1
    - Dst: assert
      Src: /src/core/cf-check/diagnose.c:690,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:691,1
    - Dst: argv_to_lmdb_files
      Src: /src/core/cf-check/diagnose.c:695,1
    - Dst: SeqLength
      Src: /src/core/cf-check/diagnose.c:696,1
    - Dst: Log
      Src: /src/core/cf-check/diagnose.c:698,1
    - Dst: diagnose_files
      Src: /src/core/cf-check/diagnose.c:701,1
    - Dst: SeqDestroy
      Src: /src/core/cf-check/diagnose.c:702,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (argv[i][0] == '-')
      pos:
        line_end: 689
        line_start: 689
        source_file: /src/core/cf-check/diagnose.c
    constantsTouched: []
    func_position:
      end: 704
      start: 665
    functionDepth: 9
    functionLinenumber: 665
    functionLinenumberEnd: 704
    functionName: diagnose_main
    functionSourceFile: /src/core/cf-check/diagnose.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - assert
    - diagnose_files
    - StringMatchesOption
    - Log
    - SeqLength
    - argv_to_lmdb_files
    linkageType: ''
    returnType: int
    signature: int diagnose_main(int argc, const char *const *const argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetStateDir
      Src: /src/core/cf-check/utilities.c:13,1
    - Dst: ListDir
      Src: /src/core/cf-check/utilities.c:14,1
    - Dst: Log
      Src: /src/core/cf-check/utilities.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 11
    functionDepth: 8
    functionLinenumber: 11
    functionLinenumberEnd: 20
    functionName: default_lmdb_files
    functionSourceFile: /src/core/cf-check/utilities.c
    functionUses: 1
    functionsReached:
    - ListDir
    - Log
    - GetStateDir
    linkageType: ''
    returnType: Seq
    signature: Seq *default_lmdb_files()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/utilities.c:25,1
    - Dst: Log
      Src: /src/core/cf-check/utilities.c:28,1
    - Dst: GetStateDir
      Src: /src/core/cf-check/utilities.c:30,1
    - Dst: default_lmdb_files
      Src: /src/core/cf-check/utilities.c:31,1
    - Dst: SeqFromArgv
      Src: /src/core/cf-check/utilities.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - argc
    - argv
    - offset
    argTypes:
    - int
    - char**
    - size_t
    assertStmts:
    - condition: (argc >= 0)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/core/cf-check/utilities.c
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 9
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: argv_to_lmdb_files
    functionSourceFile: /src/core/cf-check/utilities.c
    functionUses: 2
    functionsReached:
    - default_lmdb_files
    - assert
    - SeqFromArgv
    - GetStateDir
    - Log
    linkageType: ''
    returnType: Seq
    signature: "Seq *argv_to_lmdb_files(\n    const int argc, const char *const *const
      argv, const size_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/dump.c:25,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:26,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:27,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:28,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:29,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:30,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:31,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:32,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:33,1
    - Dst: GetStateDir
      Src: /src/core/cf-check/dump.c:34,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:36,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: print_usage
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 2
    functionsReached:
    - GetStateDir
    - printf
    linkageType: ''
    returnType: void
    signature: void print_usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/dump.c:42,1
    - Dst: mdb_strerror
      Src: /src/core/cf-check/dump.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: dump_report_error
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - mdb_strerror
    - printf
    linkageType: ''
    returnType: int
    signature: int dump_report_error(const int rc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/dump.c:49,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:51,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:57,1
    - Dst: strnlen
      Src: /src/core/cf-check/dump.c:63,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:70,1
    - Dst: exit
      Src: /src/core/cf-check/dump.c:71,1
    - Dst: Json5EscapeData
      Src: /src/core/cf-check/dump.c:87,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:88,1
    - Dst: free
      Src: /src/core/cf-check/dump.c:89,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:91,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - data
    - size
    - strip_strings
    argTypes:
    - char*
    - size_t
    - bool
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/core/cf-check/dump.c
    constantsTouched: []
    func_position:
      end: 92
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 92
    functionName: print_json_string
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - exit
    - Json5EscapeData
    - strnlen
    - assert
    - printf
    - free
    linkageType: ''
    returnType: void
    signature: "void print_json_string(\n    const char *const data, size_t size,
      const bool strip_strings)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/dump.c:97,1
    - Dst: print_json_string
      Src: /src/core/cf-check/dump.c:101,1
    - Dst: memcpy
      Src: /src/core/cf-check/dump.c:107,1
    - Dst: JsonObjectCreate
      Src: /src/core/cf-check/dump.c:112,1
    - Dst: JsonObjectAppendReal
      Src: /src/core/cf-check/dump.c:113,1
    - Dst: JsonObjectAppendReal
      Src: /src/core/cf-check/dump.c:114,1
    - Dst: JsonObjectAppendReal
      Src: /src/core/cf-check/dump.c:115,1
    - Dst: JsonObjectAppendReal
      Src: /src/core/cf-check/dump.c:116,1
    - Dst: JsonObjectCreate
      Src: /src/core/cf-check/dump.c:118,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/cf-check/dump.c:119,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/cf-check/dump.c:120,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/cf-check/dump.c:121,1
    - Dst: FileWriter
      Src: /src/core/cf-check/dump.c:123,1
    - Dst: JsonWriteCompact
      Src: /src/core/cf-check/dump.c:124,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-check/dump.c:125,1
    - Dst: JsonDestroy
      Src: /src/core/cf-check/dump.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - value
    - strip_strings
    argTypes:
    - MDB_val
    - bool
    assertStmts:
    - condition: (sizeof(KeyHostSeen) == value.mv_size)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/core/cf-check/dump.c
    constantsTouched: []
    func_position:
      end: 128
      start: 94
    functionDepth: 7
    functionLinenumber: 94
    functionLinenumberEnd: 128
    functionName: print_struct_lastseen_quality
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - memcpy
    - JsonDestroy
    - JsonObjectAppendObject
    - assert
    - JsonObjectAppendReal
    - JsonObjectAppendInteger
    - JsonWriteCompact
    - print_json_string
    - JsonObjectAppendBool
    - JsonObjectCreate
    - FileWriterDetach
    linkageType: ''
    returnType: void
    signature: "void print_struct_lastseen_quality(\n    const MDB_val value, const
      bool strip_strings)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/dump.c:133,1
    - Dst: print_json_string
      Src: /src/core/cf-check/dump.c:137,1
    - Dst: memcpy
      Src: /src/core/cf-check/dump.c:143,1
    - Dst: JsonObjectCreate
      Src: /src/core/cf-check/dump.c:148,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/cf-check/dump.c:149,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/cf-check/dump.c:150,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/cf-check/dump.c:151,1
    - Dst: FileWriter
      Src: /src/core/cf-check/dump.c:154,1
    - Dst: JsonWriteCompact
      Src: /src/core/cf-check/dump.c:155,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-check/dump.c:156,1
    - Dst: JsonDestroy
      Src: /src/core/cf-check/dump.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - value
    - strip_strings
    argTypes:
    - MDB_val
    - bool
    assertStmts:
    - condition: (sizeof(LockData) == value.mv_size)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/core/cf-check/dump.c
    constantsTouched: []
    func_position:
      end: 159
      start: 130
    functionDepth: 7
    functionLinenumber: 130
    functionLinenumberEnd: 159
    functionName: print_struct_lock_data
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - memcpy
    - JsonDestroy
    - assert
    - JsonObjectAppendInteger
    - JsonWriteCompact
    - print_json_string
    - JsonObjectCreate
    - FileWriterDetach
    linkageType: ''
    returnType: void
    signature: "void print_struct_lock_data(\n    const MDB_val value, const bool
      strip_strings)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/dump.c:165,1
    - Dst: print_json_string
      Src: /src/core/cf-check/dump.c:169,1
    - Dst: memcpy
      Src: /src/core/cf-check/dump.c:176,1
    - Dst: GetObservableNames
      Src: /src/core/cf-check/dump.c:179,1
    - Dst: JsonObjectCreate
      Src: /src/core/cf-check/dump.c:180,1
    - Dst: JsonObjectCreate
      Src: /src/core/cf-check/dump.c:185,1
    - Dst: JsonObjectAppendReal
      Src: /src/core/cf-check/dump.c:188,1
    - Dst: JsonObjectAppendReal
      Src: /src/core/cf-check/dump.c:189,1
    - Dst: JsonObjectAppendReal
      Src: /src/core/cf-check/dump.c:190,1
    - Dst: JsonObjectAppendReal
      Src: /src/core/cf-check/dump.c:191,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/cf-check/dump.c:192,1
    - Dst: free
      Src: /src/core/cf-check/dump.c:194,1
    - Dst: free
      Src: /src/core/cf-check/dump.c:197,1
    - Dst: JsonObjectCreate
      Src: /src/core/cf-check/dump.c:199,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/cf-check/dump.c:200,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/cf-check/dump.c:201,1
    - Dst: FileWriter
      Src: /src/core/cf-check/dump.c:203,1
    - Dst: JsonWriteCompact
      Src: /src/core/cf-check/dump.c:204,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-check/dump.c:205,1
    - Dst: JsonDestroy
      Src: /src/core/cf-check/dump.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - value
    - strip_strings
    - tskey_filename
    argTypes:
    - MDB_val
    - bool
    - char*
    assertStmts:
    - condition: (sizeof(Averages) == value.mv_size)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/core/cf-check/dump.c
    constantsTouched: []
    func_position:
      end: 208
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 208
    functionName: print_struct_averages
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - memcpy
    - JsonDestroy
    - JsonObjectAppendObject
    - assert
    - JsonObjectAppendReal
    - JsonObjectAppendInteger
    - JsonWriteCompact
    - print_json_string
    - free
    - JsonObjectCreate
    - GetObservableNames
    - FileWriterDetach
    linkageType: ''
    returnType: void
    signature: "void print_struct_averages(\n    const MDB_val value, const bool strip_strings,
      const char *tskey_filename)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/dump.c:216,1
    - Dst: print_json_string
      Src: /src/core/cf-check/dump.c:220,1
    - Dst: xmalloc
      Src: /src/core/cf-check/dump.c:227,1
    - Dst: memcpy
      Src: /src/core/cf-check/dump.c:228,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-check/dump.c:241,1
    - Dst: assert
      Src: /src/core/cf-check/dump.c:247,1
    - Dst: assert
      Src: /src/core/cf-check/dump.c:252,1
    - Dst: assert
      Src: /src/core/cf-check/dump.c:254,1
    - Dst: assert
      Src: /src/core/cf-check/dump.c:256,1
    - Dst: memchr
      Src: /src/core/cf-check/dump.c:257,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-check/dump.c:260,1
    - Dst: print_json_string
      Src: /src/core/cf-check/dump.c:261,1
    - Dst: free
      Src: /src/core/cf-check/dump.c:262,1
    - Dst: JsonObjectCreate
      Src: /src/core/cf-check/dump.c:268,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/cf-check/dump.c:269,1
    - Dst: JsonObjectAppendString
      Src: /src/core/cf-check/dump.c:270,1
    - Dst: JsonObjectAppendString
      Src: /src/core/cf-check/dump.c:271,1
    - Dst: FileWriter
      Src: /src/core/cf-check/dump.c:273,1
    - Dst: JsonWriteCompact
      Src: /src/core/cf-check/dump.c:274,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-check/dump.c:275,1
    - Dst: JsonDestroy
      Src: /src/core/cf-check/dump.c:276,1
    - Dst: free
      Src: /src/core/cf-check/dump.c:277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - value
    - strip_strings
    argTypes:
    - MDB_val
    - bool
    assertStmts:
    - condition: (value.mv_size > sizeof(PersistentClassInfo))
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/core/cf-check/dump.c
    - condition: (value.mv_size > offset)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/core/cf-check/dump.c
    - condition: (offset >= (sizeof(unsigned int) + sizeof(PersistentClassPolicy)))
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/core/cf-check/dump.c
    - condition: (str_size > 0)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/core/cf-check/dump.c
    - condition: (tags > (char *) class_info)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/core/cf-check/dump.c
    constantsTouched: []
    func_position:
      end: 279
      start: 210
    functionDepth: 7
    functionLinenumber: 210
    functionLinenumberEnd: 279
    functionName: print_struct_persistent_class
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - memcpy
    - JsonDestroy
    - assert
    - JsonObjectAppendInteger
    - JsonWriteCompact
    - print_json_string
    - xmalloc
    - free
    - debug_abort_if_reached
    - JsonObjectCreate
    - JsonObjectAppendString
    - FileWriterDetach
    - memchr
    linkageType: ''
    returnType: void
    signature: "void print_struct_persistent_class(\n    const MDB_val value, const
      bool strip_strings)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: StringContains
      Src: /src/core/cf-check/dump.c:291,1
    - Dst: StringStartsWith
      Src: /src/core/cf-check/dump.c:292,1
    - Dst: print_struct_lastseen_quality
      Src: /src/core/cf-check/dump.c:294,1
    - Dst: StringContains
      Src: /src/core/cf-check/dump.c:296,1
    - Dst: print_struct_lock_data
      Src: /src/core/cf-check/dump.c:298,1
    - Dst: StringContains
      Src: /src/core/cf-check/dump.c:300,1
    - Dst: StringEqual
      Src: /src/core/cf-check/dump.c:302,1
    - Dst: assert
      Src: /src/core/cf-check/dump.c:304,1
    - Dst: memcpy
      Src: /src/core/cf-check/dump.c:306,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:307,1
    - Dst: print_struct_averages
      Src: /src/core/cf-check/dump.c:311,1
    - Dst: StringEqual
      Src: /src/core/cf-check/dump.c:314,1
    - Dst: StringEndsWith
      Src: /src/core/cf-check/dump.c:315,1
    - Dst: StringEqual
      Src: /src/core/cf-check/dump.c:316,1
    - Dst: StringEndsWith
      Src: /src/core/cf-check/dump.c:317,1
    - Dst: print_struct_averages
      Src: /src/core/cf-check/dump.c:319,1
    - Dst: StringContains
      Src: /src/core/cf-check/dump.c:321,1
    - Dst: print_struct_persistent_class
      Src: /src/core/cf-check/dump.c:323,1
    - Dst: StringContains
      Src: /src/core/cf-check/dump.c:325,1
    - Dst: StringEqual
      Src: /src/core/cf-check/dump.c:327,1
    - Dst: assert
      Src: /src/core/cf-check/dump.c:329,1
    - Dst: memcpy
      Src: /src/core/cf-check/dump.c:331,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:332,1
    - Dst: StringEqual
      Src: /src/core/cf-check/dump.c:334,1
    - Dst: assert
      Src: /src/core/cf-check/dump.c:336,1
    - Dst: memcpy
      Src: /src/core/cf-check/dump.c:338,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:339,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-check/dump.c:343,1
    - Dst: print_json_string
      Src: /src/core/cf-check/dump.c:348,1
    - Dst: print_json_string
      Src: /src/core/cf-check/dump.c:353,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 6
    argNames:
    - key
    - value
    - file
    - strip_strings
    - structs
    - tskey_filename
    argTypes:
    - MDB_val
    - MDB_val
    - char*
    - bool
    - bool
    - char*
    assertStmts:
    - condition: (sizeof(double) == value.mv_size)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/core/cf-check/dump.c
    - condition: (sizeof(double) == value.mv_size)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/core/cf-check/dump.c
    - condition: (sizeof(time_t) == value.mv_size)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/core/cf-check/dump.c
    constantsTouched: []
    func_position:
      end: 355
      start: 281
    functionDepth: 8
    functionLinenumber: 281
    functionLinenumberEnd: 355
    functionName: print_struct_or_string
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - memcpy
    - print_struct_lastseen_quality
    - print_struct_lock_data
    - StringEqual
    - assert
    - StringContains
    - StringEndsWith
    - printf
    - print_json_string
    - print_struct_persistent_class
    - debug_abort_if_reached
    - print_struct_averages
    - StringStartsWith
    linkageType: ''
    returnType: void
    signature: "void print_struct_or_string(\n    const MDB_val key,\n    const MDB_val
      value,\n    const char *const file,\n    const bool strip_strings,\n    const
      bool structs,\n    const char *tskey_filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/dump.c:365,1
    - Dst: print_json_string
      Src: /src/core/cf-check/dump.c:366,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:367,1
    - Dst: print_struct_or_string
      Src: /src/core/cf-check/dump.c:368,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - key
    - value
    - file
    - strip_strings
    - structs
    - tskey_filename
    argTypes:
    - MDB_val
    - MDB_val
    - char*
    - bool
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 9
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: print_line_key_value
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - print_struct_or_string
    - print_json_string
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_line_key_value(\n    const MDB_val key,\n    const MDB_val
      value,\n    const char *const file,\n    const bool strip_strings,\n    const
      bool structs,\n    const char *tskey_filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/dump.c:375,1
    - Dst: print_json_string
      Src: /src/core/cf-check/dump.c:376,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - strip_strings
    argTypes:
    - MDB_val
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: print_line_array_element
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - print_json_string
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_line_array_element(\n    const MDB_val value, const bool
      strip_strings)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/dump.c:384,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mode
    argTypes:
    - dump_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 390
    functionName: print_opening_bracket
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_opening_bracket(const dump_mode mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/dump.c:396,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mode
    argTypes:
    - dump_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: print_closing_bracket
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_closing_bracket(const dump_mode mode)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/dump.c:406,1
    - Dst: mdb_env_create
      Src: /src/core/cf-check/dump.c:417,1
    - Dst: mdb_env_open
      Src: /src/core/cf-check/dump.c:418,1
    - Dst: mdb_txn_begin
      Src: /src/core/cf-check/dump.c:419,1
    - Dst: mdb_open
      Src: /src/core/cf-check/dump.c:420,1
    - Dst: mdb_cursor_open
      Src: /src/core/cf-check/dump.c:421,1
    - Dst: mdb_cursor_close
      Src: /src/core/cf-check/dump.c:429,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/dump.c:431,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/dump.c:433,1
    - Dst: dump_report_error
      Src: /src/core/cf-check/dump.c:435,1
    - Dst: print_opening_bracket
      Src: /src/core/cf-check/dump.c:439,1
    - Dst: mdb_cursor_get
      Src: /src/core/cf-check/dump.c:440,1
    - Dst: print_line_key_value
      Src: /src/core/cf-check/dump.c:447,1
    - Dst: print_line_array_element
      Src: /src/core/cf-check/dump.c:450,1
    - Dst: print_line_array_element
      Src: /src/core/cf-check/dump.c:453,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-check/dump.c:456,1
    - Dst: print_closing_bracket
      Src: /src/core/cf-check/dump.c:460,1
    - Dst: dump_report_error
      Src: /src/core/cf-check/dump.c:465,1
    - Dst: mdb_cursor_close
      Src: /src/core/cf-check/dump.c:467,1
    - Dst: mdb_close
      Src: /src/core/cf-check/dump.c:468,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/dump.c:470,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/dump.c:471,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - file
    - mode
    - tskey_filename
    argTypes:
    - char*
    - dump_mode
    - char*
    assertStmts:
    - condition: (file != NULL)
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/core/cf-check/dump.c
    constantsTouched: []
    func_position:
      end: 474
      start: 404
    functionDepth: 10
    functionLinenumber: 404
    functionLinenumberEnd: 474
    functionName: dump_db
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - mdb_env_open
    - dump_report_error
    - mdb_close
    - mdb_txn_abort
    - print_line_key_value
    - assert
    - mdb_env_create
    - mdb_txn_begin
    - print_closing_bracket
    - mdb_cursor_get
    - mdb_env_close
    - mdb_cursor_open
    - print_opening_bracket
    - mdb_open
    - mdb_cursor_close
    - debug_abort_if_reached
    - print_line_array_element
    linkageType: ''
    returnType: int
    signature: int dump_db(const char *file, const dump_mode mode, const char *tskey_filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/dump.c:478,1
    - Dst: SeqLength
      Src: /src/core/cf-check/dump.c:479,1
    - Dst: assert
      Src: /src/core/cf-check/dump.c:480,1
    - Dst: dump_db
      Src: /src/core/cf-check/dump.c:484,1
    - Dst: SeqAt
      Src: /src/core/cf-check/dump.c:484,1
    - Dst: SeqAt
      Src: /src/core/cf-check/dump.c:491,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:492,1
    - Dst: dump_db
      Src: /src/core/cf-check/dump.c:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - files
    - mode
    - tskey_filename
    argTypes:
    - Seq*
    - dump_mode
    - char*
    assertStmts:
    - condition: (files != NULL)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/core/cf-check/dump.c
    - condition: (length > 0)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/core/cf-check/dump.c
    constantsTouched: []
    func_position:
      end: 500
      start: 476
    functionDepth: 11
    functionLinenumber: 476
    functionLinenumberEnd: 500
    functionName: dump_dbs
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - assert
    - printf
    - dump_db
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: int
    signature: int dump_dbs(Seq *const files, const dump_mode mode, const char *tskey_filename)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/dump.c:504,1
    - Dst: assert
      Src: /src/core/cf-check/dump.c:505,1
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/dump.c:516,1
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/dump.c:520,1
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/dump.c:524,1
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/dump.c:528,1
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/dump.c:532,1
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/dump.c:536,1
    - Dst: print_usage
      Src: /src/core/cf-check/dump.c:543,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:544,1
    - Dst: print_usage
      Src: /src/core/cf-check/dump.c:551,1
    - Dst: printf
      Src: /src/core/cf-check/dump.c:552,1
    - Dst: argv_to_lmdb_files
      Src: /src/core/cf-check/dump.c:556,1
    - Dst: dump_dbs
      Src: /src/core/cf-check/dump.c:557,1
    - Dst: SeqDestroy
      Src: /src/core/cf-check/dump.c:558,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (argv != NULL)
      pos:
        line_end: 503
        line_start: 503
        source_file: /src/core/cf-check/dump.c
    - condition: (argc >= 1)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/core/cf-check/dump.c
    constantsTouched: []
    func_position:
      end: 560
      start: 502
    functionDepth: 12
    functionLinenumber: 502
    functionLinenumberEnd: 560
    functionName: dump_main
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - dump_dbs
    - print_usage
    - SeqDestroy
    - assert
    - printf
    - StringMatchesOption
    - argv_to_lmdb_files
    linkageType: ''
    returnType: int
    signature: int dump_main(int argc, const char *const *const argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/dump.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: dump_main
    functionSourceFile: /src/core/cf-check/dump.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int dump_main(ARG_UNUSED int argc, ARG_UNUSED const char *const *const
      argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/cf-check.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: print_version
    functionSourceFile: /src/core/cf-check/cf-check.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_version()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/cf-check.c:76,1
    - Dst: strcmp
      Src: /src/core/cf-check/cf-check.c:80,1
    - Dst: printf
      Src: /src/core/cf-check/cf-check.c:82,1
    - Dst: printf
      Src: /src/core/cf-check/cf-check.c:83,1
    - Dst: printf
      Src: /src/core/cf-check/cf-check.c:84,1
    - Dst: strcmp
      Src: /src/core/cf-check/cf-check.c:91,1
    - Dst: printf
      Src: /src/core/cf-check/cf-check.c:93,1
    - Dst: printf
      Src: /src/core/cf-check/cf-check.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - topic
    argTypes:
    - char*
    assertStmts:
    - condition: (topic != NULL)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/core/cf-check/cf-check.c
    constantsTouched: []
    func_position:
      end: 104
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 104
    functionName: CFCheckHelpTopic
    functionSourceFile: /src/core/cf-check/cf-check.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    - printf
    linkageType: ''
    returnType: int
    signature: int CFCheckHelpTopic(const char *topic)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: StringEndsWith
      Src: /src/core/cf-check/cf-check.c:108,1
    - Dst: lmdump_main
      Src: /src/core/cf-check/cf-check.c:111,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:112,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-check/cf-check.c:117,1
    - Dst: FileWriter
      Src: /src/core/cf-check/cf-check.c:123,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-check/cf-check.c:124,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-check/cf-check.c:125,1
    - Dst: Log
      Src: /src/core/cf-check/cf-check.c:126,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:127,1
    - Dst: getopt_long
      Src: /src/core/cf-check/cf-check.c:134,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-check/cf-check.c:141,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-check/cf-check.c:146,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-check/cf-check.c:151,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-check/cf-check.c:156,1
    - Dst: print_version
      Src: /src/core/cf-check/cf-check.c:161,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:162,1
    - Dst: FileWriter
      Src: /src/core/cf-check/cf-check.c:168,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-check/cf-check.c:169,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-check/cf-check.c:170,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:171,1
    - Dst: FileWriter
      Src: /src/core/cf-check/cf-check.c:177,1
    - Dst: ManPageWrite
      Src: /src/core/cf-check/cf-check.c:178,1
    - Dst: time
      Src: /src/core/cf-check/cf-check.c:178,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-check/cf-check.c:184,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:185,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:191,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-check/cf-check.c:201,1
    - Dst: lmdump_main
      Src: /src/core/cf-check/cf-check.c:203,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:204,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-check/cf-check.c:207,1
    - Dst: dump_main
      Src: /src/core/cf-check/cf-check.c:209,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:210,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-check/cf-check.c:213,1
    - Dst: diagnose_main
      Src: /src/core/cf-check/cf-check.c:215,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:216,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-check/cf-check.c:219,1
    - Dst: backup_main
      Src: /src/core/cf-check/cf-check.c:221,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:222,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-check/cf-check.c:225,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-check/cf-check.c:226,1
    - Dst: repair_main
      Src: /src/core/cf-check/cf-check.c:228,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:229,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-check/cf-check.c:232,1
    - Dst: Log
      Src: /src/core/cf-check/cf-check.c:236,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:237,1
    - Dst: FileWriter
      Src: /src/core/cf-check/cf-check.c:242,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-check/cf-check.c:243,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-check/cf-check.c:244,1
    - Dst: assert
      Src: /src/core/cf-check/cf-check.c:248,1
    - Dst: CFCheckHelpTopic
      Src: /src/core/cf-check/cf-check.c:249,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:251,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-check/cf-check.c:254,1
    - Dst: print_version
      Src: /src/core/cf-check/cf-check.c:256,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:257,1
    - Dst: FileWriter
      Src: /src/core/cf-check/cf-check.c:261,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-check/cf-check.c:262,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-check/cf-check.c:263,1
    - Dst: Log
      Src: /src/core/cf-check/cf-check.c:264,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-check/cf-check.c:265,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 104
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (cmd_argc == 2)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/core/cf-check/cf-check.c
    constantsTouched: []
    func_position:
      end: 267
      start: 106
    functionDepth: 13
    functionLinenumber: 106
    functionLinenumberEnd: 267
    functionName: main
    functionSourceFile: /src/core/cf-check/cf-check.c
    functionUses: 2
    functionsReached:
    - CallCleanupFunctions
    - Log
    - dump_main
    - FileWriterDetach
    - time
    - FileWriter
    - CFCheckHelpTopic
    - WriterWriteHelp
    - ManPageWrite
    - StringEndsWith
    - diagnose_main
    - backup_main
    - repair_main
    - assert
    - LogSetGlobalLevel
    - getopt_long
    - StringEqual_IgnoreCase
    - lmdump_main
    - LogSetGlobalLevelArgOrExit
    - print_version
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *const *argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: lmdump_print_hex
    functionSourceFile: /src/core/cf-check/lmdump.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void lmdump_print_hex(const char *s, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:21,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:22,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:23,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:24,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:25,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:26,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: lmdump_print_usage
    functionSourceFile: /src/core/cf-check/lmdump.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void lmdump_print_usage(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - mode
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: lmdump_char_to_mode
    functionSourceFile: /src/core/cf-check/lmdump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lmdump_mode
    signature: lmdump_mode lmdump_char_to_mode(char mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:49,1
    - Dst: mdb_strerror
      Src: /src/core/cf-check/lmdump.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: lmdump_report_error
    functionSourceFile: /src/core/cf-check/lmdump.c
    functionUses: 0
    functionsReached:
    - mdb_strerror
    - printf
    linkageType: ''
    returnType: int
    signature: int lmdump_report_error(int rc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/lmdump.c:55,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:59,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:63,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:68,1
    - Dst: lmdump_print_hex
      Src: /src/core/cf-check/lmdump.c:69,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:70,1
    - Dst: lmdump_print_hex
      Src: /src/core/cf-check/lmdump.c:71,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:72,1
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - mode
    - key
    - data
    argTypes:
    - lmdump_mode
    - MDB_val
    - MDB_val
    assertStmts:
    - condition: (mode >= 0 && mode < LMDUMP_UNKNOWN)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/core/cf-check/lmdump.c
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: lmdump_print_line
    functionSourceFile: /src/core/cf-check/lmdump.c
    functionUses: 0
    functionsReached:
    - assert
    - lmdump_print_hex
    - printf
    linkageType: ''
    returnType: void
    signature: void lmdump_print_line(lmdump_mode mode, MDB_val key, MDB_val data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/lmdump.c:86,1
    - Dst: assert
      Src: /src/core/cf-check/lmdump.c:87,1
    - Dst: mdb_env_create
      Src: /src/core/cf-check/lmdump.c:95,1
    - Dst: mdb_env_open
      Src: /src/core/cf-check/lmdump.c:101,1
    - Dst: mdb_txn_begin
      Src: /src/core/cf-check/lmdump.c:107,1
    - Dst: mdb_open
      Src: /src/core/cf-check/lmdump.c:113,1
    - Dst: mdb_cursor_open
      Src: /src/core/cf-check/lmdump.c:119,1
    - Dst: mdb_cursor_get
      Src: /src/core/cf-check/lmdump.c:126,1
    - Dst: lmdump_print_line
      Src: /src/core/cf-check/lmdump.c:128,1
    - Dst: mdb_cursor_close
      Src: /src/core/cf-check/lmdump.c:139,1
    - Dst: mdb_close
      Src: /src/core/cf-check/lmdump.c:143,1
    - Dst: mdb_txn_abort
      Src: /src/core/cf-check/lmdump.c:147,1
    - Dst: mdb_env_close
      Src: /src/core/cf-check/lmdump.c:151,1
    - Dst: lmdump_report_error
      Src: /src/core/cf-check/lmdump.c:156,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - mode
    - file
    argTypes:
    - lmdump_mode
    - char*
    assertStmts:
    - condition: (mode >= 0 && mode < LMDUMP_UNKNOWN)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/core/cf-check/lmdump.c
    - condition: (file != NULL)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/core/cf-check/lmdump.c
    constantsTouched: []
    func_position:
      end: 159
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 159
    functionName: lmdump
    functionSourceFile: /src/core/cf-check/lmdump.c
    functionUses: 1
    functionsReached:
    - mdb_env_open
    - mdb_close
    - mdb_txn_abort
    - assert
    - mdb_env_create
    - mdb_txn_begin
    - lmdump_report_error
    - mdb_cursor_get
    - lmdump_print_line
    - mdb_cursor_open
    - mdb_env_close
    - mdb_open
    - mdb_cursor_close
    linkageType: ''
    returnType: int
    signature: int lmdump(lmdump_mode mode, const char *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/lmdump.c:163,1
    - Dst: lmdump_print_usage
      Src: /src/core/cf-check/lmdump.c:167,1
    - Dst: lmdump_char_to_mode
      Src: /src/core/cf-check/lmdump.c:172,1
    - Dst: lmdump_print_usage
      Src: /src/core/cf-check/lmdump.c:176,1
    - Dst: lmdump
      Src: /src/core/cf-check/lmdump.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (argv != NULL)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/core/cf-check/lmdump.c
    constantsTouched: []
    func_position:
      end: 181
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 181
    functionName: lmdump_main
    functionSourceFile: /src/core/cf-check/lmdump.c
    functionUses: 1
    functionsReached:
    - lmdump
    - assert
    - lmdump_char_to_mode
    - lmdump_print_usage
    linkageType: ''
    returnType: int
    signature: int lmdump_main(int argc, const char *const *const argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/lmdump.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: lmdump_main
    functionSourceFile: /src/core/cf-check/lmdump.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int lmdump_main(ARG_UNUSED int argc, ARG_UNUSED const char *const *const
      argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/backup.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 8
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: backup_main
    functionSourceFile: /src/core/cf-check/backup.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: int backup_main(ARG_UNUSED int argc, ARG_UNUSED const char *const *const
      argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-check/backup.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filenames
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 8
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: backup_files_copy
    functionSourceFile: /src/core/cf-check/backup.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: int backup_files_copy(ARG_UNUSED Seq *filenames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-check/backup.c:36,1
    - Dst: printf
      Src: /src/core/cf-check/backup.c:37,1
    - Dst: printf
      Src: /src/core/cf-check/backup.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: print_usage
    functionSourceFile: /src/core/cf-check/backup.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_usage(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-check/backup.c:45,1
    - Dst: GetWorkDir
      Src: /src/core/cf-check/backup.c:49,1
    - Dst: mkdir
      Src: /src/core/cf-check/backup.c:54,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:58,1
    - Dst: strerror
      Src: /src/core/cf-check/backup.c:61,1
    - Dst: time
      Src: /src/core/cf-check/backup.c:66,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:69,1
    - Dst: snprintf
      Src: /src/core/cf-check/backup.c:74,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:78,1
    - Dst: mkdtemp
      Src: /src/core/cf-check/backup.c:85,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:87,1
    - Dst: strerror
      Src: /src/core/cf-check/backup.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 41
    functionDepth: 8
    functionLinenumber: 41
    functionLinenumberEnd: 99
    functionName: create_backup_dir
    functionSourceFile: /src/core/cf-check/backup.c
    functionUses: 0
    functionsReached:
    - mkdtemp
    - snprintf
    - strerror
    - GetWorkDir
    - Log
    - mkdir
    - time
    linkageType: ''
    returnType: char
    signature: char *create_backup_dir()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/backup.c:103,1
    - Dst: SeqLength
      Src: /src/core/cf-check/backup.c:104,1
    - Dst: assert_or_return
      Src: /src/core/cf-check/backup.c:107,1
    - Dst: create_backup_dir
      Src: /src/core/cf-check/backup.c:109,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:116,1
    - Dst: SeqAt
      Src: /src/core/cf-check/backup.c:121,1
    - Dst: File_CopyToDir
      Src: /src/core/cf-check/backup.c:122,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - filenames
    argTypes:
    - Seq*
    assertStmts:
    - condition: (filenames != NULL)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/core/cf-check/backup.c
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 10
    functionLinenumber: 101
    functionLinenumberEnd: 129
    functionName: backup_files_copy
    functionSourceFile: /src/core/cf-check/backup.c
    functionUses: 1
    functionsReached:
    - assert_or_return
    - File_CopyToDir
    - assert
    - create_backup_dir
    - Log
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: int
    signature: int backup_files_copy(Seq *filenames)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-check/backup.c:139,1
    - Dst: SeqLength
      Src: /src/core/cf-check/backup.c:140,1
    - Dst: assert_or_return
      Src: /src/core/cf-check/backup.c:143,1
    - Dst: create_backup_dir
      Src: /src/core/cf-check/backup.c:145,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:147,1
    - Dst: SeqAt
      Src: /src/core/cf-check/backup.c:152,1
    - Dst: assert
      Src: /src/core/cf-check/backup.c:153,1
    - Dst: StringEndsWith
      Src: /src/core/cf-check/backup.c:153,1
    - Dst: xstrdup
      Src: /src/core/cf-check/backup.c:154,1
    - Dst: StringFormat
      Src: /src/core/cf-check/backup.c:155,1
    - Dst: basename
      Src: /src/core/cf-check/backup.c:155,1
    - Dst: free
      Src: /src/core/cf-check/backup.c:156,1
    - Dst: fork
      Src: /src/core/cf-check/backup.c:157,1
    - Dst: exit
      Src: /src/core/cf-check/backup.c:161,1
    - Dst: replicate_lmdb
      Src: /src/core/cf-check/backup.c:161,1
    - Dst: waitpid
      Src: /src/core/cf-check/backup.c:167,1
    - Dst: WIFEXITED
      Src: /src/core/cf-check/backup.c:173,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-check/backup.c:173,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-check/backup.c:174,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:176,1
    - Dst: WIFSIGNALED
      Src: /src/core/cf-check/backup.c:179,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:181,1
    - Dst: WTERMSIG
      Src: /src/core/cf-check/backup.c:182,1
    - Dst: free
      Src: /src/core/cf-check/backup.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - files
    argTypes:
    - Seq*
    assertStmts:
    - condition: (files != NULL)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/core/cf-check/backup.c
    - condition: (StringEndsWith(backup_dir, "/"))
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/core/cf-check/backup.c
    constantsTouched: []
    func_position:
      end: 189
      start: 137
    functionDepth: 9
    functionLinenumber: 137
    functionLinenumberEnd: 189
    functionName: backup_files_replicate
    functionSourceFile: /src/core/cf-check/backup.c
    functionUses: 0
    functionsReached:
    - assert_or_return
    - WIFSIGNALED
    - Log
    - SeqLength
    - free
    - StringEndsWith
    - StringFormat
    - xstrdup
    - basename
    - waitpid
    - SeqAt
    - assert
    - create_backup_dir
    - WIFEXITED
    - fork
    - exit
    - WEXITSTATUS
    - WTERMSIG
    - replicate_lmdb
    linkageType: ''
    returnType: int
    signature: int backup_files_replicate(const Seq *files)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchesOption
      Src: /src/core/cf-check/backup.c:201,1
    - Dst: print_usage
      Src: /src/core/cf-check/backup.c:208,1
    - Dst: printf
      Src: /src/core/cf-check/backup.c:209,1
    - Dst: argv_to_lmdb_files
      Src: /src/core/cf-check/backup.c:214,1
    - Dst: SeqLength
      Src: /src/core/cf-check/backup.c:215,1
    - Dst: Log
      Src: /src/core/cf-check/backup.c:217,1
    - Dst: backup_files_replicate
      Src: /src/core/cf-check/backup.c:223,1
    - Dst: backup_files_copy
      Src: /src/core/cf-check/backup.c:227,1
    - Dst: SeqDestroy
      Src: /src/core/cf-check/backup.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 195
    functionDepth: 10
    functionLinenumber: 195
    functionLinenumberEnd: 231
    functionName: backup_main
    functionSourceFile: /src/core/cf-check/backup.c
    functionUses: 1
    functionsReached:
    - print_usage
    - SeqDestroy
    - backup_files_replicate
    - printf
    - backup_files_copy
    - StringMatchesOption
    - Log
    - SeqLength
    - argv_to_lmdb_files
    linkageType: ''
    returnType: int
    signature: int backup_main(int argc, const char *const *const argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/cf-check/observables.c:27,1
    - Dst: snprintf
      Src: /src/core/cf-check/observables.c:31,1
    - Dst: GetStateDir
      Src: /src/core/cf-check/observables.c:32,1
    - Dst: safe_fopen
      Src: /src/core/cf-check/observables.c:40,1
    - Dst: xstrdup
      Src: /src/core/cf-check/observables.c:47,1
    - Dst: snprintf
      Src: /src/core/cf-check/observables.c:51,1
    - Dst: xstrdup
      Src: /src/core/cf-check/observables.c:52,1
    - Dst: fgets
      Src: /src/core/cf-check/observables.c:68,1
    - Dst: Log
      Src: /src/core/cf-check/observables.c:70,1
    - Dst: GetErrorStr
      Src: /src/core/cf-check/observables.c:73,1
    - Dst: sscanf
      Src: /src/core/cf-check/observables.c:77,1
    - Dst: Log
      Src: /src/core/cf-check/observables.c:89,1
    - Dst: StringEqual
      Src: /src/core/cf-check/observables.c:92,1
    - Dst: xstrdup
      Src: /src/core/cf-check/observables.c:94,1
    - Dst: snprintf
      Src: /src/core/cf-check/observables.c:98,1
    - Dst: xstrdup
      Src: /src/core/cf-check/observables.c:99,1
    - Dst: fclose
      Src: /src/core/cf-check/observables.c:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 23
    functionDepth: 8
    functionLinenumber: 23
    functionLinenumberEnd: 105
    functionName: GetObservableNames
    functionSourceFile: /src/core/cf-check/observables.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - fgets
    - snprintf
    - GetStateDir
    - safe_fopen
    - sscanf
    - xmalloc
    - Log
    - xstrdup
    - fclose
    - StringEqual
    linkageType: ''
    returnType: char
    signature: char **GetObservableNames(const char *ts_key_path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fdopen
      Src: /src/core/cf-execd/cf-execd-runagent.c:47,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runagent.c:50,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runagent.c:51,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runagent.c:55,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runagent.c:57,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd-runagent.c:58,1
    - Dst: write
      Src: /src/core/cf-execd/cf-execd-runagent.c:59,1
    - Dst: MIN
      Src: /src/core/cf-execd/cf-execd-runagent.c:59,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd-runagent.c:60,1
    - Dst: MIN
      Src: /src/core/cf-execd/cf-execd-runagent.c:60,1
    - Dst: close
      Src: /src/core/cf-execd/cf-execd-runagent.c:61,1
    - Dst: getline
      Src: /src/core/cf-execd/cf-execd-runagent.c:67,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runagent.c:70,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runagent.c:71,1
    - Dst: fprintf
      Src: /src/core/cf-execd/cf-execd-runagent.c:72,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runagent.c:73,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd-runagent.c:74,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runagent.c:75,1
    - Dst: StringEqual
      Src: /src/core/cf-execd/cf-execd-runagent.c:89,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/cf-execd/cf-execd-runagent.c:89,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/cf-execd-runagent.c:92,1
    - Dst: xasprintf
      Src: /src/core/cf-execd/cf-execd-runagent.c:97,1
    - Dst: GetBinDir
      Src: /src/core/cf-execd/cf-execd-runagent.c:97,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd-runagent.c:99,1
    - Dst: cf_popen
      Src: /src/core/cf-execd/cf-execd-runagent.c:101,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd-runagent.c:102,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runagent.c:106,1
    - Dst: fprintf
      Src: /src/core/cf-execd/cf-execd-runagent.c:107,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runagent.c:108,1
    - Dst: BufferNewWithCapacity
      Src: /src/core/cf-execd/cf-execd-runagent.c:112,1
    - Dst: fread
      Src: /src/core/cf-execd/cf-execd-runagent.c:114,1
    - Dst: BufferAppend
      Src: /src/core/cf-execd/cf-execd-runagent.c:117,1
    - Dst: fread
      Src: /src/core/cf-execd/cf-execd-runagent.c:118,1
    - Dst: feof
      Src: /src/core/cf-execd/cf-execd-runagent.c:120,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runagent.c:122,1
    - Dst: fprintf
      Src: /src/core/cf-execd/cf-execd-runagent.c:123,1
    - Dst: cf_pclose
      Src: /src/core/cf-execd/cf-execd-runagent.c:124,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runagent.c:125,1
    - Dst: BufferAppendChar
      Src: /src/core/cf-execd/cf-execd-runagent.c:128,1
    - Dst: cf_pclose
      Src: /src/core/cf-execd/cf-execd-runagent.c:130,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runagent.c:133,1
    - Dst: fprintf
      Src: /src/core/cf-execd/cf-execd-runagent.c:134,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runagent.c:135,1
    - Dst: FileWriter
      Src: /src/core/cf-execd/cf-execd-runagent.c:139,1
    - Dst: WriterWrite
      Src: /src/core/cf-execd/cf-execd-runagent.c:140,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd-runagent.c:141,1
    - Dst: JsonEncodeStringWriter
      Src: /src/core/cf-execd/cf-execd-runagent.c:142,1
    - Dst: BufferData
      Src: /src/core/cf-execd/cf-execd-runagent.c:142,1
    - Dst: WriterWrite
      Src: /src/core/cf-execd/cf-execd-runagent.c:143,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd-runagent.c:144,1
    - Dst: WriterWriteF
      Src: /src/core/cf-execd/cf-execd-runagent.c:145,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd-runagent.c:146,1
    - Dst: WriterWrite
      Src: /src/core/cf-execd/cf-execd-runagent.c:147,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd-runagent.c:148,1
    - Dst: BufferDestroy
      Src: /src/core/cf-execd/cf-execd-runagent.c:150,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runagent.c:151,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 62
    argCount: 2
    argNames:
    - conn_fd
    - local_run_command
    argTypes:
    - int
    - char*
    assertStmts:
    - condition: (length < sizeof(error_buf))
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/cf-execd/cf-execd-runagent.c
    - condition: (written == MIN(sizeof(error_buf), (size_t) length))
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/core/cf-execd/cf-execd-runagent.c
    - condition: (written > 0)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/core/cf-execd/cf-execd-runagent.c
    - condition: (written > 0)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/core/cf-execd/cf-execd-runagent.c
    - condition: (written > 0)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/core/cf-execd/cf-execd-runagent.c
    - condition: (written > 0)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/core/cf-execd/cf-execd-runagent.c
    constantsTouched: []
    func_position:
      end: 153
      start: 45
    functionDepth: 8
    functionLinenumber: 45
    functionLinenumberEnd: 153
    functionName: HandleRunagentRequest
    functionSourceFile: /src/core/cf-execd/cf-execd-runagent.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - MIN
    - feof
    - Log
    - fclose
    - free
    - StringEqual
    - close
    - FileWriter
    - BufferData
    - fdopen
    - snprintf
    - cf_popen
    - JsonEncodeStringWriter
    - WriterWrite
    - BufferAppendChar
    - cf_pclose
    - xstrdup
    - BufferNewWithCapacity
    - assert
    - fread
    - xasprintf
    - getline
    - WriterWriteF
    - GetBinDir
    - GetErrorStr
    - BufferAppend
    - write
    - StringIsLocalHostIP
    - fprintf
    linkageType: ''
    returnType: void
    signature: void HandleRunagentRequest(int conn_fd, const char *local_run_command)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-execd/execd-config.c:38,1
    - Dst: getuid
      Src: /src/core/cf-execd/execd-config.c:38,1
    - Dst: MIN
      Src: /src/core/cf-execd/execd-config.c:39,1
    - Dst: StringHash
      Src: /src/core/cf-execd/execd-config.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: GetSplay
    functionSourceFile: /src/core/cf-execd/execd-config.c
    functionUses: 0
    functionsReached:
    - StringHash
    - MIN
    - getuid
    - snprintf
    linkageType: ''
    returnType: double
    signature: double GetSplay(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-execd/execd-config.c:44,1
    - Dst: StringSetNew
      Src: /src/core/cf-execd/execd-config.c:46,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:47,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:47,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:48,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:48,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:49,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:49,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:50,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:50,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:51,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:51,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:52,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:52,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:53,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:53,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:54,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:54,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:55,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:55,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:56,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:56,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:57,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:57,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:58,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:58,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:60,1
    - Dst: StringSetNew
      Src: /src/core/cf-execd/execd-config.c:61,1
    - Dst: ControlBodyConstraints
      Src: /src/core/cf-execd/execd-config.c:63,1
    - Dst: SeqLength
      Src: /src/core/cf-execd/execd-config.c:66,1
    - Dst: SeqAt
      Src: /src/core/cf-execd/execd-config.c:68,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-execd/execd-config.c:70,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-execd/execd-config.c:75,1
    - Dst: EvalContextVariableGet
      Src: /src/core/cf-execd/execd-config.c:77,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-execd/execd-config.c:78,1
    - Dst: ProgrammingError
      Src: /src/core/cf-execd/execd-config.c:82,1
    - Dst: StringEqual
      Src: /src/core/cf-execd/execd-config.c:87,1
    - Dst: free
      Src: /src/core/cf-execd/execd-config.c:89,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:90,1
    - Dst: Log
      Src: /src/core/cf-execd/execd-config.c:91,1
    - Dst: StringEqual
      Src: /src/core/cf-execd/execd-config.c:93,1
    - Dst: IntFromString
      Src: /src/core/cf-execd/execd-config.c:95,1
    - Dst: GetSplay
      Src: /src/core/cf-execd/execd-config.c:96,1
    - Dst: StringEqual
      Src: /src/core/cf-execd/execd-config.c:98,1
    - Dst: Log
      Src: /src/core/cf-execd/execd-config.c:100,1
    - Dst: StringSetClear
      Src: /src/core/cf-execd/execd-config.c:101,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:105,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:105,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-execd/execd-config.c:105,1
    - Dst: Log
      Src: /src/core/cf-execd/execd-config.c:106,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-execd/execd-config.c:106,1
    - Dst: StringEqual
      Src: /src/core/cf-execd/execd-config.c:109,1
    - Dst: assert
      Src: /src/core/cf-execd/execd-config.c:111,1
    - Dst: Log
      Src: /src/core/cf-execd/execd-config.c:114,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-execd/execd-config.c:114,1
    - Dst: StringSetAdd
      Src: /src/core/cf-execd/execd-config.c:115,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/execd-config.c:115,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-execd/execd-config.c:115,1
    - Dst: ControlBodyConstraints
      Src: /src/core/cf-execd/execd-config.c:123,1
    - Dst: SeqLength
      Src: /src/core/cf-execd/execd-config.c:126,1
    - Dst: SeqAt
      Src: /src/core/cf-execd/execd-config.c:129,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-execd/execd-config.c:131,1
    - Dst: StringEqual
      Src: /src/core/cf-execd/execd-config.c:135,1
    - Dst: assert
      Src: /src/core/cf-execd/execd-config.c:137,1
    - Dst: ExpandScalar
      Src: /src/core/cf-execd/execd-config.c:138,1
    - Dst: RvalScalarValue
      Src: /src/core/cf-execd/execd-config.c:139,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts:
    - condition: (cp->rval.type == RVAL_TYPE_SCALAR)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/core/cf-execd/execd-config.c
    - condition: (t == CF_DATA_TYPE_STRING_LIST)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/core/cf-execd/execd-config.c
    constantsTouched: []
    func_position:
      end: 147
      start: 42
    functionDepth: 8
    functionLinenumber: 42
    functionLinenumberEnd: 147
    functionName: ExecdConfigNew
    functionSourceFile: /src/core/cf-execd/execd-config.c
    functionUses: 2
    functionsReached:
    - VarRefDestroy
    - Log
    - RlistScalarValue
    - SeqLength
    - free
    - StringSetNew
    - StringEqual
    - IsDefinedClass
    - StringSetClear
    - xstrdup
    - IntFromString
    - SeqAt
    - RvalScalarValue
    - ExpandScalar
    - assert
    - VarRefParseFromScope
    - StringSetAdd
    - xcalloc
    - ControlBodyConstraints
    - GetSplay
    - EvalContextVariableGet
    - ProgrammingError
    linkageType: ''
    returnType: ExecdConfig
    signature: ExecdConfig *ExecdConfigNew(const EvalContext *ctx, const Policy *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-execd/execd-config.c:153,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-execd/execd-config.c:154,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-execd/execd-config.c:155,1
    - Dst: free
      Src: /src/core/cf-execd/execd-config.c:156,1
    - Dst: free
      Src: /src/core/cf-execd/execd-config.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - execd_config
    argTypes:
    - ExecdConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: ExecdConfigDestroy
    functionSourceFile: /src/core/cf-execd/execd-config.c
    functionUses: 2
    functionsReached:
    - free
    - StringSetDestroy
    linkageType: ''
    returnType: void
    signature: void ExecdConfigDestroy(ExecdConfig *execd_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/core/cf-execd/cf-execd-runner.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: ThreadUniqueName
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached:
    - pthread_self
    linkageType: ''
    returnType: void
    signature: void *ThreadUniqueName(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/core/cf-execd/cf-execd-runner.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: ThreadUniqueName
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached:
    - pthread_self
    linkageType: ''
    returnType: void
    signature: void *ThreadUniqueName(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: TwinFilename
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *TwinFilename(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: AgentFilename
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *AgentFilename(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:101,1
    - Dst: GetWorkDir
      Src: /src/core/cf-execd/cf-execd-runner.c:101,1
    - Dst: TwinFilename
      Src: /src/core/cf-execd/cf-execd-runner.c:101,1
    - Dst: MapName
      Src: /src/core/cf-execd/cf-execd-runner.c:103,1
    - Dst: stat
      Src: /src/core/cf-execd/cf-execd-runner.c:105,1
    - Dst: IsExecutable
      Src: /src/core/cf-execd/cf-execd-runner.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: TwinExists
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached:
    - stat
    - IsExecutable
    - snprintf
    - MapName
    - TwinFilename
    - GetWorkDir
    linkageType: ''
    returnType: bool
    signature: bool TwinExists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TwinExists
      Src: /src/core/cf-execd/cf-execd-runner.c:111,1
    - Dst: GetWorkDir
      Src: /src/core/cf-execd/cf-execd-runner.c:113,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:115,1
    - Dst: TwinFilename
      Src: /src/core/cf-execd/cf-execd-runner.c:118,1
    - Dst: AgentFilename
      Src: /src/core/cf-execd/cf-execd-runner.c:118,1
    - Dst: AgentFilename
      Src: /src/core/cf-execd/cf-execd-runner.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - scheduled_run
    - buffer
    argTypes:
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: ConstructFailsafeCommand
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached:
    - snprintf
    - TwinExists
    - AgentFilename
    - TwinFilename
    - GetWorkDir
    linkageType: ''
    returnType: void
    signature: void ConstructFailsafeCommand(bool scheduled_run, char *buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/core/cf-execd/cf-execd-runner.c:132,1
    - Dst: FD_SET
      Src: /src/core/cf-execd/cf-execd-runner.c:133,1
    - Dst: select
      Src: /src/core/cf-execd/cf-execd-runner.c:140,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:144,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:144,1
    - Dst: FD_ISSET
      Src: /src/core/cf-execd/cf-execd-runner.c:148,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:159,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - fd
    - timeout_sec
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 129
    functionDepth: 8
    functionLinenumber: 129
    functionLinenumberEnd: 162
    functionName: IsReadReady
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - FD_ISSET
    - FD_SET
    - FD_ZERO
    - Log
    - select
    linkageType: ''
    returnType: bool
    signature: bool IsReadReady(int fd, int timeout_sec)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-execd/cf-execd-runner.c:171,1
    - Dst: ThreadUniqueName
      Src: /src/core/cf-execd/cf-execd-runner.c:173,1
    - Dst: cf_strtimestamp_local
      Src: /src/core/cf-execd/cf-execd-runner.c:177,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:179,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:180,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:181,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:187,1
    - Dst: strlcpy
      Src: /src/core/cf-execd/cf-execd-runner.c:189,1
    - Dst: ConstructFailsafeCommand
      Src: /src/core/cf-execd/cf-execd-runner.c:193,1
    - Dst: strlcpy
      Src: /src/core/cf-execd/cf-execd-runner.c:197,1
    - Dst: MapName
      Src: /src/core/cf-execd/cf-execd-runner.c:197,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:204,1
    - Dst: CanonifyName
      Src: /src/core/cf-execd/cf-execd-runner.c:204,1
    - Dst: ctime
      Src: /src/core/cf-execd/cf-execd-runner.c:204,1
    - Dst: strlcpy
      Src: /src/core/cf-execd/cf-execd-runner.c:208,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/cf-execd/cf-execd-runner.c:209,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:211,1
    - Dst: GetWorkDir
      Src: /src/core/cf-execd/cf-execd-runner.c:212,1
    - Dst: MapName
      Src: /src/core/cf-execd/cf-execd-runner.c:214,1
    - Dst: safe_fopen
      Src: /src/core/cf-execd/cf-execd-runner.c:221,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:224,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:224,1
    - Dst: fileno
      Src: /src/core/cf-execd/cf-execd-runner.c:232,1
    - Dst: SetCloseOnExec
      Src: /src/core/cf-execd/cf-execd-runner.c:234,1
    - Dst: fileno
      Src: /src/core/cf-execd/cf-execd-runner.c:234,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:237,1
    - Dst: cf_popen_sh
      Src: /src/core/cf-execd/cf-execd-runner.c:239,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:242,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:242,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:243,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:247,1
    - Dst: xmalloc
      Src: /src/core/cf-execd/cf-execd-runner.c:252,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-execd/cf-execd-runner.c:254,1
    - Dst: IsReadReady
      Src: /src/core/cf-execd/cf-execd-runner.c:256,1
    - Dst: fileno
      Src: /src/core/cf-execd/cf-execd-runner.c:256,1
    - Dst: fprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:263,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:265,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:266,1
    - Dst: PipeToPid
      Src: /src/core/cf-execd/cf-execd-runner.c:271,1
    - Dst: ClearProcessTable
      Src: /src/core/cf-execd/cf-execd-runner.c:288,1
    - Dst: LoadProcessTable
      Src: /src/core/cf-execd/cf-execd-runner.c:289,1
    - Dst: SelectProcesses
      Src: /src/core/cf-execd/cf-execd-runner.c:294,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd-runner.c:302,1
    - Dst: getpgid
      Src: /src/core/cf-execd/cf-execd-runner.c:309,1
    - Dst: kill
      Src: /src/core/cf-execd/cf-execd-runner.c:310,1
    - Dst: ProcessSignalTerminate
      Src: /src/core/cf-execd/cf-execd-runner.c:315,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:319,1
    - Dst: CfReadLine
      Src: /src/core/cf-execd/cf-execd-runner.c:325,1
    - Dst: feof
      Src: /src/core/cf-execd/cf-execd-runner.c:328,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:334,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:336,1
    - Dst: isspace
      Src: /src/core/cf-execd/cf-execd-runner.c:342,1
    - Dst: memcpy
      Src: /src/core/cf-execd/cf-execd-runner.c:351,1
    - Dst: StringReplace
      Src: /src/core/cf-execd/cf-execd-runner.c:354,1
    - Dst: ProgrammingError
      Src: /src/core/cf-execd/cf-execd-runner.c:357,1
    - Dst: fprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:363,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:368,1
    - Dst: strncat
      Src: /src/core/cf-execd/cf-execd-runner.c:370,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:370,1
    - Dst: strchr
      Src: /src/core/cf-execd/cf-execd-runner.c:371,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:376,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd-runner.c:383,1
    - Dst: cf_pclose
      Src: /src/core/cf-execd/cf-execd-runner.c:384,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:385,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:390,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:391,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:392,1
    - Dst: MailResult
      Src: /src/core/cf-execd/cf-execd-runner.c:393,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:397,1
    - Dst: unlink
      Src: /src/core/cf-execd/cf-execd-runner.c:398,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:399,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 101
    argCount: 1
    argNames:
    - config
    argTypes:
    - ExecConfig*
    assertStmts:
    - condition: (procs->next == NULL)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/core/cf-execd/cf-execd-runner.c
    constantsTouched: []
    func_position:
      end: 401
      start: 169
    functionDepth: 9
    functionLinenumber: 169
    functionLinenumberEnd: 401
    functionName: LocalExec
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached:
    - SetCloseOnExec
    - IsReadReady
    - ThreadUniqueName
    - ClearProcessTable
    - feof
    - PipeToPid
    - Log
    - SelectProcesses
    - fclose
    - free
    - strlcpy
    - time
    - snprintf
    - unlink
    - strlen
    - strncat
    - fileno
    - ProcessSignalTerminate
    - strchr
    - cf_pclose
    - LoadProcessTable
    - CanonifyName
    - CfReadLine
    - kill
    - MailResult
    - CanonifyNameInPlace
    - assert
    - getpgid
    - isspace
    - cf_popen_sh
    - xmalloc
    - ProgrammingError
    - StringReplace
    - GetWorkDir
    - ctime
    - GetErrorStr
    - memcpy
    - MapName
    - ConstructFailsafeCommand
    - safe_fopen
    - cf_strtimestamp_local
    - IsPendingTermination
    - fprintf
    linkageType: ''
    returnType: void
    signature: void LocalExec(const ExecConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/cf-execd/cf-execd-runner.c:408,1
    - Dst: SeqLength
      Src: /src/core/cf-execd/cf-execd-runner.c:409,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/cf-execd/cf-execd-runner.c:417,1
    - Dst: SeqAt
      Src: /src/core/cf-execd/cf-execd-runner.c:417,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/cf-execd/cf-execd-runner.c:428,1
    - Dst: SeqAt
      Src: /src/core/cf-execd/cf-execd-runner.c:428,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - config
    - line
    argTypes:
    - ExecConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 436
    functionName: LineIsFiltered
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - StringMatchFullWithPrecompiledRegex
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: "bool LineIsFiltered(const ExecConfig *config,\n                           const
      char *line)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:442,1
    - Dst: safe_fopen
      Src: /src/core/cf-execd/cf-execd-runner.c:446,1
    - Dst: safe_fopen
      Src: /src/core/cf-execd/cf-execd-runner.c:447,1
    - Dst: CompileRegex
      Src: /src/core/cf-execd/cf-execd-runner.c:451,1
    - Dst: UnexpectedError
      Src: /src/core/cf-execd/cf-execd-runner.c:454,1
    - Dst: xmalloc
      Src: /src/core/cf-execd/cf-execd-runner.c:459,1
    - Dst: xmalloc
      Src: /src/core/cf-execd/cf-execd-runner.c:461,1
    - Dst: CfReadLine
      Src: /src/core/cf-execd/cf-execd-runner.c:468,1
    - Dst: LineIsFiltered
      Src: /src/core/cf-execd/cf-execd-runner.c:470,1
    - Dst: CfReadLine
      Src: /src/core/cf-execd/cf-execd-runner.c:479,1
    - Dst: LineIsFiltered
      Src: /src/core/cf-execd/cf-execd-runner.c:481,1
    - Dst: StringMatchWithPrecompiledRegex
      Src: /src/core/cf-execd/cf-execd-runner.c:504,1
    - Dst: strstr
      Src: /src/core/cf-execd/cf-execd-runner.c:506,1
    - Dst: StringMatchWithPrecompiledRegex
      Src: /src/core/cf-execd/cf-execd-runner.c:512,1
    - Dst: strstr
      Src: /src/core/cf-execd/cf-execd-runner.c:514,1
    - Dst: strcmp
      Src: /src/core/cf-execd/cf-execd-runner.c:521,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd-runner.c:528,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd-runner.c:529,1
    - Dst: RegexDestroy
      Src: /src/core/cf-execd/cf-execd-runner.c:531,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:541,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:545,1
    - Dst: ThreadLock
      Src: /src/core/cf-execd/cf-execd-runner.c:548,1
    - Dst: unlink
      Src: /src/core/cf-execd/cf-execd-runner.c:552,1
    - Dst: LinkOrCopy
      Src: /src/core/cf-execd/cf-execd-runner.c:554,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:556,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-execd/cf-execd-runner.c:560,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - config
    - filename
    - prev_file
    argTypes:
    - ExecConfig*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 438
    functionDepth: 8
    functionLinenumber: 438
    functionLinenumberEnd: 562
    functionName: CompareResultEqualOrFiltered
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached:
    - LinkOrCopy
    - ThreadLock
    - unlink
    - strstr
    - ThreadUnlock
    - UnexpectedError
    - CompileRegex
    - safe_fopen
    - RegexDestroy
    - xmalloc
    - Log
    - LineIsFiltered
    - strcmp
    - fclose
    - StringMatchWithPrecompiledRegex
    - free
    - CfReadLine
    linkageType: ''
    returnType: bool
    signature: "bool CompareResultEqualOrFiltered(const ExecConfig *config,\n                                         const
      char *filename,\n                                         const char *prev_file)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd-runner.c:567,1
    - Dst: gethostbyname
      Src: /src/core/cf-execd/cf-execd-runner.c:568,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:571,1
    - Dst: memset
      Src: /src/core/cf-execd/cf-execd-runner.c:577,1
    - Dst: htons
      Src: /src/core/cf-execd/cf-execd-runner.c:580,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:584,1
    - Dst: socket
      Src: /src/core/cf-execd/cf-execd-runner.c:586,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:589,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:589,1
    - Dst: connect
      Src: /src/core/cf-execd/cf-execd-runner.c:593,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:595,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:596,1
    - Dst: cf_closesocket
      Src: /src/core/cf-execd/cf-execd-runner.c:597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - config
    argTypes:
    - ExecConfig*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 566
        line_start: 566
        source_file: /src/core/cf-execd/cf-execd-runner.c
    constantsTouched: []
    func_position:
      end: 602
      start: 565
    functionDepth: 8
    functionLinenumber: 565
    functionLinenumberEnd: 602
    functionName: ConnectToSmtpSocket
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - cf_closesocket
    - assert
    - gethostbyname
    - Log
    - htons
    - socket
    - connect
    - memset
    linkageType: ''
    returnType: int
    signature: int ConnectToSmtpSocket(const ExecConfig *config)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-execd/cf-execd-runner.c:612,1
    - Dst: safe_fopen
      Src: /src/core/cf-execd/cf-execd-runner.c:615,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:618,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:618,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:622,1
    - Dst: fileno
      Src: /src/core/cf-execd/cf-execd-runner.c:625,1
    - Dst: fstat
      Src: /src/core/cf-execd/cf-execd-runner.c:627,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:629,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:630,1
    - Dst: unlink
      Src: /src/core/cf-execd/cf-execd-runner.c:636,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:637,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:638,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:645,1
    - Dst: GetWorkDir
      Src: /src/core/cf-execd/cf-execd-runner.c:645,1
    - Dst: MapName
      Src: /src/core/cf-execd/cf-execd-runner.c:646,1
    - Dst: CompareResultEqualOrFiltered
      Src: /src/core/cf-execd/cf-execd-runner.c:648,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:650,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:651,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:656,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:656,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:659,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:660,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:666,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:667,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:671,1
    - Dst: ConnectToSmtpSocket
      Src: /src/core/cf-execd/cf-execd-runner.c:673,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:676,1
    - Dst: Dialogue
      Src: /src/core/cf-execd/cf-execd-runner.c:682,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:688,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:689,1
    - Dst: Dialogue
      Src: /src/core/cf-execd/cf-execd-runner.c:691,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:696,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:698,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:700,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:704,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:706,1
    - Dst: Dialogue
      Src: /src/core/cf-execd/cf-execd-runner.c:709,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:714,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:716,1
    - Dst: Dialogue
      Src: /src/core/cf-execd/cf-execd-runner.c:718,1
    - Dst: Dialogue
      Src: /src/core/cf-execd/cf-execd-runner.c:723,1
    - Dst: SafeStringLength
      Src: /src/core/cf-execd/cf-execd-runner.c:728,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:730,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:731,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:735,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:736,1
    - Dst: send
      Src: /src/core/cf-execd/cf-execd-runner.c:739,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:739,1
    - Dst: PolicyServerReadFile
      Src: /src/core/cf-execd/cf-execd-runner.c:745,1
    - Dst: GetWorkDir
      Src: /src/core/cf-execd/cf-execd-runner.c:745,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/cf-execd-runner.c:748,1
    - Dst: HashPubKey
      Src: /src/core/cf-execd/cf-execd-runner.c:751,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:753,1
    - Dst: HashPrintSafe
      Src: /src/core/cf-execd/cf-execd-runner.c:756,1
    - Dst: send
      Src: /src/core/cf-execd/cf-execd-runner.c:758,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:758,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd-runner.c:759,1
    - Dst: localtime_r
      Src: /src/core/cf-execd/cf-execd-runner.c:764,1
    - Dst: strftime
      Src: /src/core/cf-execd/cf-execd-runner.c:765,1
    - Dst: send
      Src: /src/core/cf-execd/cf-execd-runner.c:767,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:767,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:770,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:772,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:774,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:778,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:780,1
    - Dst: send
      Src: /src/core/cf-execd/cf-execd-runner.c:783,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:783,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:785,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:786,1
    - Dst: send
      Src: /src/core/cf-execd/cf-execd-runner.c:787,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:787,1
    - Dst: xmalloc
      Src: /src/core/cf-execd/cf-execd-runner.c:790,1
    - Dst: CfReadLine
      Src: /src/core/cf-execd/cf-execd-runner.c:794,1
    - Dst: LineIsFiltered
      Src: /src/core/cf-execd/cf-execd-runner.c:796,1
    - Dst: send
      Src: /src/core/cf-execd/cf-execd-runner.c:800,1
    - Dst: send
      Src: /src/core/cf-execd/cf-execd-runner.c:801,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:803,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:804,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd-runner.c:812,1
    - Dst: send
      Src: /src/core/cf-execd/cf-execd-runner.c:815,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:815,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:817,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd-runner.c:818,1
    - Dst: Dialogue
      Src: /src/core/cf-execd/cf-execd-runner.c:825,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:827,1
    - Dst: Dialogue
      Src: /src/core/cf-execd/cf-execd-runner.c:831,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:832,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd-runner.c:833,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:834,1
    - Dst: cf_closesocket
      Src: /src/core/cf-execd/cf-execd-runner.c:835,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd-runner.c:840,1
    - Dst: fclose
      Src: /src/core/cf-execd/cf-execd-runner.c:841,1
    - Dst: cf_closesocket
      Src: /src/core/cf-execd/cf-execd-runner.c:842,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:843,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 139
    argCount: 2
    argNames:
    - config
    - file
    argTypes:
    - ExecConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 605
    functionDepth: 9
    functionLinenumber: 605
    functionLinenumberEnd: 844
    functionName: MailResult
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 1
    functionsReached:
    - cf_closesocket
    - HashPrintSafe
    - Dialogue
    - Log
    - strftime
    - fclose
    - free
    - ConnectToSmtpSocket
    - SafeStringLength
    - time
    - unlink
    - snprintf
    - strlen
    - PolicyServerReadFile
    - fileno
    - CompareResultEqualOrFiltered
    - xstrdup
    - CfReadLine
    - localtime_r
    - HashPubKey
    - xmalloc
    - GetWorkDir
    - GetErrorStr
    - send
    - MapName
    - fstat
    - safe_fopen
    - LineIsFiltered
    linkageType: ''
    returnType: void
    signature: void MailResult(const ExecConfig *config, const char *file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/core/cf-execd/cf-execd-runner.c:850,1
    - Dst: strlen
      Src: /src/core/cf-execd/cf-execd-runner.c:850,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:851,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd-runner.c:855,1
    - Dst: recv
      Src: /src/core/cf-execd/cf-execd-runner.c:862,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - sd
    - s
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 846
    functionDepth: 8
    functionLinenumber: 846
    functionLinenumberEnd: 888
    functionName: Dialogue
    functionSourceFile: /src/core/cf-execd/cf-execd-runner.c
    functionUses: 1
    functionsReached:
    - send
    - recv
    - Log
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool Dialogue(int sd, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/cf-execd/exec-config.c:41,1
    - Dst: EvalContextGetIpAddresses
      Src: /src/core/cf-execd/exec-config.c:43,1
    - Dst: WriterWrite
      Src: /src/core/cf-execd/exec-config.c:45,1
    - Dst: WriterWriteChar
      Src: /src/core/cf-execd/exec-config.c:48,1
    - Dst: StringWriterClose
      Src: /src/core/cf-execd/exec-config.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: GetIpAddresses
    functionSourceFile: /src/core/cf-execd/exec-config.c
    functionUses: 1
    functionsReached:
    - WriterWriteChar
    - WriterWrite
    - StringWriter
    - StringWriterClose
    - EvalContextGetIpAddresses
    linkageType: ''
    returnType: char
    signature: char *GetIpAddresses(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_code_free
      Src: /src/core/cf-execd/exec-config.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: RegexFree
    functionSourceFile: /src/core/cf-execd/exec-config.c
    functionUses: 0
    functionsReached:
    - pcre2_code_free
    linkageType: ''
    returnType: void
    signature: void RegexFree(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_compile
      Src: /src/core/cf-execd/exec-config.c:66,1
    - Dst: SeqAppend
      Src: /src/core/cf-execd/exec-config.c:72,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:72,1
    - Dst: SeqAppend
      Src: /src/core/cf-execd/exec-config.c:73,1
    - Dst: pcre2_get_error_message
      Src: /src/core/cf-execd/exec-config.c:78,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:81,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - pattern
    - output
    - output_regex
    - filter_type
    argTypes:
    - char*
    - Seq**
    - Seq**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 60
    functionDepth: 8
    functionLinenumber: 60
    functionLinenumberEnd: 96
    functionName: MailFilterFill
    functionSourceFile: /src/core/cf-execd/exec-config.c
    functionUses: 0
    functionsReached:
    - Log
    - xstrdup
    - pcre2_compile
    - pcre2_get_error_message
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: "void MailFilterFill(const char *pattern,\n                           Seq
      **output, Seq **output_regex,\n                           const char *filter_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistLen
      Src: /src/core/cf-execd/exec-config.c:102,1
    - Dst: SeqNew
      Src: /src/core/cf-execd/exec-config.c:104,1
    - Dst: SeqNew
      Src: /src/core/cf-execd/exec-config.c:105,1
    - Dst: MailFilterFill
      Src: /src/core/cf-execd/exec-config.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - input
    - output
    - output_regex
    - filter_type
    argTypes:
    - Rlist*
    - Seq**
    - Seq**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 98
    functionDepth: 9
    functionLinenumber: 98
    functionLinenumberEnd: 115
    functionName: RlistMailFilterFill
    functionSourceFile: /src/core/cf-execd/exec-config.c
    functionUses: 0
    functionsReached:
    - MailFilterFill
    - SeqNew
    - RlistLen
    linkageType: ''
    returnType: void
    signature: "void RlistMailFilterFill(const Rlist *input,\n                                Seq
      **output, Seq **output_regex,\n                                const char *filter_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/cf-execd/exec-config.c:121,1
    - Dst: SeqNew
      Src: /src/core/cf-execd/exec-config.c:123,1
    - Dst: SeqNew
      Src: /src/core/cf-execd/exec-config.c:124,1
    - Dst: MailFilterFill
      Src: /src/core/cf-execd/exec-config.c:128,1
    - Dst: SeqAt
      Src: /src/core/cf-execd/exec-config.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - input
    - output
    - output_regex
    - filter_type
    argTypes:
    - Seq*
    - Seq**
    - Seq**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 9
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: SeqMailFilterFill
    functionSourceFile: /src/core/cf-execd/exec-config.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - MailFilterFill
    - SeqAt
    - SeqNew
    linkageType: ''
    returnType: void
    signature: "void SeqMailFilterFill(const Seq *input,\n                           Seq
      **output, Seq **output_regex,\n                           const char *filter_type)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-execd/exec-config.c:134,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:137,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:140,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:141,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:142,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:143,1
    - Dst: SeqNew
      Src: /src/core/cf-execd/exec-config.c:145,1
    - Dst: SeqNew
      Src: /src/core/cf-execd/exec-config.c:146,1
    - Dst: SeqNew
      Src: /src/core/cf-execd/exec-config.c:147,1
    - Dst: SeqNew
      Src: /src/core/cf-execd/exec-config.c:148,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:150,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:151,1
    - Dst: GetIpAddresses
      Src: /src/core/cf-execd/exec-config.c:152,1
    - Dst: getservbyname
      Src: /src/core/cf-execd/exec-config.c:154,1
    - Dst: ntohs
      Src: /src/core/cf-execd/exec-config.c:161,1
    - Dst: ControlBodyConstraints
      Src: /src/core/cf-execd/exec-config.c:164,1
    - Dst: SeqLength
      Src: /src/core/cf-execd/exec-config.c:167,1
    - Dst: SeqAt
      Src: /src/core/cf-execd/exec-config.c:169,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-execd/exec-config.c:171,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-execd/exec-config.c:176,1
    - Dst: EvalContextVariableGet
      Src: /src/core/cf-execd/exec-config.c:178,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-execd/exec-config.c:179,1
    - Dst: ProgrammingError
      Src: /src/core/cf-execd/exec-config.c:183,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:188,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:190,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:191,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:192,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:194,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:196,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:197,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:198,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:200,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:202,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:203,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:204,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:206,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:208,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:209,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:210,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:212,1
    - Dst: IntFromString
      Src: /src/core/cf-execd/exec-config.c:214,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:215,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:217,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:219,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:220,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:221,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:223,1
    - Dst: IntFromString
      Src: /src/core/cf-execd/exec-config.c:225,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:226,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:228,1
    - Dst: IntFromString
      Src: /src/core/cf-execd/exec-config.c:230,1
    - Dst: Log
      Src: /src/core/cf-execd/exec-config.c:231,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:233,1
    - Dst: SeqDestroy
      Src: /src/core/cf-execd/exec-config.c:235,1
    - Dst: SeqDestroy
      Src: /src/core/cf-execd/exec-config.c:236,1
    - Dst: RlistMailFilterFill
      Src: /src/core/cf-execd/exec-config.c:237,1
    - Dst: strcmp
      Src: /src/core/cf-execd/exec-config.c:240,1
    - Dst: SeqDestroy
      Src: /src/core/cf-execd/exec-config.c:242,1
    - Dst: SeqDestroy
      Src: /src/core/cf-execd/exec-config.c:243,1
    - Dst: RlistMailFilterFill
      Src: /src/core/cf-execd/exec-config.c:244,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 80
    argCount: 3
    argNames:
    - scheduled_run
    - ctx
    - policy
    argTypes:
    - bool
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 132
    functionDepth: 10
    functionLinenumber: 132
    functionLinenumberEnd: 251
    functionName: ExecConfigNew
    functionSourceFile: /src/core/cf-execd/exec-config.c
    functionUses: 3
    functionsReached:
    - RlistMailFilterFill
    - VarRefDestroy
    - GetIpAddresses
    - Log
    - SeqLength
    - free
    - SeqDestroy
    - IsDefinedClass
    - strcmp
    - xstrdup
    - IntFromString
    - SeqAt
    - VarRefParseFromScope
    - SeqNew
    - getservbyname
    - xcalloc
    - ntohs
    - ControlBodyConstraints
    - EvalContextVariableGet
    - ProgrammingError
    linkageType: ''
    returnType: ExecConfig
    signature: ExecConfig *ExecConfigNew(bool scheduled_run, const EvalContext *ctx,
      const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-execd/exec-config.c:255,1
    - Dst: xcalloc
      Src: /src/core/cf-execd/exec-config.c:256,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:259,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:261,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:263,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:264,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:265,1
    - Dst: SeqMailFilterFill
      Src: /src/core/cf-execd/exec-config.c:267,1
    - Dst: SeqMailFilterFill
      Src: /src/core/cf-execd/exec-config.c:269,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:271,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:272,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/exec-config.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - ExecConfig*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/core/cf-execd/exec-config.c
    constantsTouched: []
    func_position:
      end: 276
      start: 253
    functionDepth: 10
    functionLinenumber: 253
    functionLinenumberEnd: 276
    functionName: ExecConfigCopy
    functionSourceFile: /src/core/cf-execd/exec-config.c
    functionUses: 1
    functionsReached:
    - xstrdup
    - assert
    - SeqMailFilterFill
    - xcalloc
    linkageType: ''
    returnType: ExecConfig
    signature: ExecConfig *ExecConfigCopy(const ExecConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:282,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:283,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:284,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:285,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:286,1
    - Dst: SeqDestroy
      Src: /src/core/cf-execd/exec-config.c:287,1
    - Dst: SeqDestroy
      Src: /src/core/cf-execd/exec-config.c:288,1
    - Dst: SeqDestroy
      Src: /src/core/cf-execd/exec-config.c:289,1
    - Dst: SeqDestroy
      Src: /src/core/cf-execd/exec-config.c:290,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:291,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:292,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:293,1
    - Dst: free
      Src: /src/core/cf-execd/exec-config.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - exec_config
    argTypes:
    - ExecConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 297
    functionName: ExecConfigDestroy
    functionSourceFile: /src/core/cf-execd/exec-config.c
    functionUses: 3
    functionsReached:
    - free
    - SeqDestroy
    linkageType: ''
    returnType: void
    signature: void ExecConfigDestroy(ExecConfig *exec_config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CheckOpts
      Src: /src/core/cf-execd/cf-execd.c:181,1
    - Dst: CheckDBRepairFlagFile
      Src: /src/core/cf-execd/cf-execd.c:182,1
    - Dst: repair_lmdb_default
      Src: /src/core/cf-execd/cf-execd.c:185,1
    - Dst: EvalContextNew
      Src: /src/core/cf-execd/cf-execd.c:188,1
    - Dst: GenericAgentConfigApply
      Src: /src/core/cf-execd/cf-execd.c:189,1
    - Dst: strrchr
      Src: /src/core/cf-execd/cf-execd.c:192,1
    - Dst: GenericAgentDiscoverContext
      Src: /src/core/cf-execd/cf-execd.c:194,1
    - Dst: SelectAndLoadPolicy
      Src: /src/core/cf-execd/cf-execd.c:196,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:200,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-execd/cf-execd.c:201,1
    - Dst: GenericAgentPostLoadInit
      Src: /src/core/cf-execd/cf-execd.c:204,1
    - Dst: ThisAgentInit
      Src: /src/core/cf-execd/cf-execd.c:205,1
    - Dst: ExecConfigNew
      Src: /src/core/cf-execd/cf-execd.c:207,1
    - Dst: ExecdConfigNew
      Src: /src/core/cf-execd/cf-execd.c:208,1
    - Dst: SetFacility
      Src: /src/core/cf-execd/cf-execd.c:209,1
    - Dst: NovaWin_StartExecService
      Src: /src/core/cf-execd/cf-execd.c:214,1
    - Dst: StartServer
      Src: /src/core/cf-execd/cf-execd.c:219,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-execd/cf-execd.c:222,1
    - Dst: ExecConfigDestroy
      Src: /src/core/cf-execd/cf-execd.c:223,1
    - Dst: ExecdConfigDestroy
      Src: /src/core/cf-execd/cf-execd.c:224,1
    - Dst: free
      Src: /src/core/cf-execd/cf-execd.c:225,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-execd/cf-execd.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 179
    functionDepth: 11
    functionLinenumber: 179
    functionLinenumberEnd: 228
    functionName: main
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 2
    functionsReached:
    - CallCleanupFunctions
    - SetFacility
    - Log
    - free
    - ExecConfigDestroy
    - CheckOpts
    - SelectAndLoadPolicy
    - GenericAgentPostLoadInit
    - ExecdConfigNew
    - EvalContextNew
    - strrchr
    - StartServer
    - CheckDBRepairFlagFile
    - ExecdConfigDestroy
    - repair_lmdb_default
    - DoCleanupAndExit
    - NovaWin_StartExecService
    - ExecConfigNew
    - GenericAgentConfigApply
    - GenericAgentFinalize
    - GenericAgentDiscoverContext
    - ThisAgentInit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/cf-execd/cf-execd.c:239,1
    - Dst: GetTTYInteractive
      Src: /src/core/cf-execd/cf-execd.c:239,1
    - Dst: getopt_long
      Src: /src/core/cf-execd/cf-execd.c:243,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-execd/cf-execd.c:250,1
    - Dst: GetInputDir
      Src: /src/core/cf-execd/cf-execd.c:250,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-execd/cf-execd.c:255,1
    - Dst: StringSetFromString
      Src: /src/core/cf-execd/cf-execd.c:264,1
    - Dst: StringSetJoin
      Src: /src/core/cf-execd/cf-execd.c:271,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-execd/cf-execd.c:272,1
    - Dst: StringSetFromString
      Src: /src/core/cf-execd/cf-execd.c:279,1
    - Dst: StringSetJoin
      Src: /src/core/cf-execd/cf-execd.c:286,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-execd/cf-execd.c:287,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-execd/cf-execd.c:293,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-execd/cf-execd.c:297,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-execd/cf-execd.c:302,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:312,1
    - Dst: setenv_wrapper
      Src: /src/core/cf-execd/cf-execd.c:313,1
    - Dst: FileWriter
      Src: /src/core/cf-execd/cf-execd.c:331,1
    - Dst: GenericAgentWriteVersion
      Src: /src/core/cf-execd/cf-execd.c:332,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-execd/cf-execd.c:333,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-execd/cf-execd.c:335,1
    - Dst: FileWriter
      Src: /src/core/cf-execd/cf-execd.c:339,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-execd/cf-execd.c:340,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-execd/cf-execd.c:341,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-execd/cf-execd.c:343,1
    - Dst: FileWriter
      Src: /src/core/cf-execd/cf-execd.c:347,1
    - Dst: ManPageWrite
      Src: /src/core/cf-execd/cf-execd.c:348,1
    - Dst: time
      Src: /src/core/cf-execd/cf-execd.c:348,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-execd/cf-execd.c:354,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-execd/cf-execd.c:355,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:359,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-execd/cf-execd.c:360,1
    - Dst: GenericAgentConfigParseColor
      Src: /src/core/cf-execd/cf-execd.c:363,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-execd/cf-execd.c:365,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/cf-execd/cf-execd.c:370,1
    - Dst: StringEqual
      Src: /src/core/cf-execd/cf-execd.c:376,1
    - Dst: StringEqual
      Src: /src/core/cf-execd/cf-execd.c:380,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-execd/cf-execd.c:386,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-execd/cf-execd.c:390,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:396,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-execd/cf-execd.c:399,1
    - Dst: StringEqual
      Src: /src/core/cf-execd/cf-execd.c:402,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd.c:404,1
    - Dst: xstrdup
      Src: /src/core/cf-execd/cf-execd.c:405,1
    - Dst: FileWriter
      Src: /src/core/cf-execd/cf-execd.c:412,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-execd/cf-execd.c:413,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-execd/cf-execd.c:414,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-execd/cf-execd.c:416,1
    - Dst: GenericAgentConfigParseArguments
      Src: /src/core/cf-execd/cf-execd.c:421,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:423,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-execd/cf-execd.c:424,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 122
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (optarg != NULL)
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/core/cf-execd/cf-execd.c
    constantsTouched: []
    func_position:
      end: 428
      start: 234
    functionDepth: 8
    functionLinenumber: 234
    functionLinenumberEnd: 428
    functionName: CheckOpts
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 5
    functionsReached:
    - GenericAgentConfigParseColor
    - Log
    - GetInputDir
    - FileWriterDetach
    - time
    - StringEqual
    - FileWriter
    - GenericAgentConfigSetInputFile
    - WriterWriteHelp
    - ManPageWrite
    - setenv_wrapper
    - GenericAgentConfigNewDefault
    - xstrdup
    - GenericAgentWriteVersion
    - assert
    - LogSetGlobalLevel
    - GetTTYInteractive
    - GenericAgentConfigParseArguments
    - getopt_long
    - StringSetFromString
    - DoCleanupAndExit
    - StringSetJoin
    - StringEqual_IgnoreCase
    - LoggingEnableTimestamps
    - StringSetDestroy
    - LogSetGlobalLevelArgOrExit
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *CheckOpts(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/core/cf-execd/cf-execd.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: ThisAgentInit
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 2
    functionsReached:
    - umask
    linkageType: ''
    returnType: void
    signature: void ThisAgentInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-execd/cf-execd.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 452
    functionName: GetPulseTime
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - time
    linkageType: ''
    returnType: time_t
    signature: time_t GetPulseTime()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-execd/cf-execd.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: UsingRunagentSocket
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - StringEqual_IgnoreCase
    linkageType: ''
    returnType: bool
    signature: bool UsingRunagentSocket()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IsPendingTermination
      Src: /src/core/cf-execd/cf-execd.c:474,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:479,1
    - Dst: time
      Src: /src/core/cf-execd/cf-execd.c:483,1
    - Dst: FD_ZERO
      Src: /src/core/cf-execd/cf-execd.c:488,1
    - Dst: FD_SET
      Src: /src/core/cf-execd/cf-execd.c:489,1
    - Dst: select
      Src: /src/core/cf-execd/cf-execd.c:491,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:495,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd.c:496,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-execd/cf-execd.c:509,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd.c:516,1
    - Dst: FD_ISSET
      Src: /src/core/cf-execd/cf-execd.c:516,1
    - Dst: accept
      Src: /src/core/cf-execd/cf-execd.c:517,1
    - Dst: fork
      Src: /src/core/cf-execd/cf-execd.c:518,1
    - Dst: signal
      Src: /src/core/cf-execd/cf-execd.c:522,1
    - Dst: HandleRunagentRequest
      Src: /src/core/cf-execd/cf-execd.c:523,1
    - Dst: _exit
      Src: /src/core/cf-execd/cf-execd.c:524,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:529,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd.c:530,1
    - Dst: MAX
      Src: /src/core/cf-execd/cf-execd.c:535,1
    - Dst: time
      Src: /src/core/cf-execd/cf-execd.c:535,1
    - Dst: sleep
      Src: /src/core/cf-execd/cf-execd.c:541,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-execd/cf-execd.c:546,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - seconds
    - reason
    - runagent_socket
    - local_run_command
    argTypes:
    - time_t
    - char*
    - int
    - char*
    assertStmts:
    - condition: (FD_ISSET(runagent_socket, &rfds))
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/core/cf-execd/cf-execd.c
    constantsTouched: []
    func_position:
      end: 552
      start: 471
    functionDepth: 9
    functionLinenumber: 471
    functionLinenumberEnd: 552
    functionName: HandleRequestsOrSleep
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fork
    - MAX
    - accept
    - assert
    - sleep
    - HandleRunagentRequest
    - FD_ISSET
    - FD_SET
    - IsPendingTermination
    - _exit
    - FD_ZERO
    - Log
    - select
    - signal
    - time
    linkageType: ''
    returnType: bool
    signature: "bool HandleRequestsOrSleep(time_t seconds, const char *reason,\n                                  int
      runagent_socket, const char *local_run_command)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IsPendingTermination
      Src: /src/core/cf-execd/cf-execd.c:560,1
    - Dst: waitpid
      Src: /src/core/cf-execd/cf-execd.c:563,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:565,1
    - Dst: ScheduleRun
      Src: /src/core/cf-execd/cf-execd.c:568,1
    - Dst: HandleRequestsOrSleep
      Src: /src/core/cf-execd/cf-execd.c:570,1
    - Dst: LocalExecInFork
      Src: /src/core/cf-execd/cf-execd.c:576,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:579,1
    - Dst: LocalExec
      Src: /src/core/cf-execd/cf-execd.c:581,1
    - Dst: HandleRequestsOrSleep
      Src: /src/core/cf-execd/cf-execd.c:585,1
    - Dst: GetPulseTime
      Src: /src/core/cf-execd/cf-execd.c:585,1
    - Dst: UsingRunagentSocket
      Src: /src/core/cf-execd/cf-execd.c:594,1
    - Dst: GetRunagentSocketInfo
      Src: /src/core/cf-execd/cf-execd.c:597,1
    - Dst: unlink
      Src: /src/core/cf-execd/cf-execd.c:599,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - ctx
    - policy
    - config
    - execd_config
    - exec_config
    - runagent_socket
    argTypes:
    - EvalContext*
    - Policy**
    - GenericAgentConfig*
    - ExecdConfig**
    - ExecConfig**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 555
    functionDepth: 10
    functionLinenumber: 555
    functionLinenumberEnd: 602
    functionName: CFExecdMainLoop
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - unlink
    - UsingRunagentSocket
    - LocalExecInFork
    - GetRunagentSocketInfo
    - IsPendingTermination
    - Log
    - LocalExec
    - HandleRequestsOrSleep
    - GetPulseTime
    - ScheduleRun
    - waitpid
    linkageType: ''
    returnType: void
    signature: "void CFExecdMainLoop(EvalContext *ctx, Policy **policy, GenericAgentConfig
      *config,\n                            ExecdConfig **execd_config, ExecConfig
      **exec_config,\n                            int runagent_socket)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd.c:606,1
    - Dst: memset
      Src: /src/core/cf-execd/cf-execd.c:608,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd.c:617,1
    - Dst: GetStateDir
      Src: /src/core/cf-execd/cf-execd.c:618,1
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sock_info
    argTypes:
    - struct sockaddr_un*
    assertStmts:
    - condition: (sock_info != NULL)
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/core/cf-execd/cf-execd.c
    constantsTouched: []
    func_position:
      end: 626
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 626
    functionName: GetRunagentSocketInfo
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 1
    functionsReached:
    - assert
    - snprintf
    - GetStateDir
    - memset
    linkageType: ''
    returnType: bool
    signature: bool GetRunagentSocketInfo(struct sockaddr_un *sock_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AllowAccessForUsers
      Src: /src/core/cf-execd/cf-execd.c:631,1
    - Dst: ChopLastNode
      Src: /src/core/cf-execd/cf-execd.c:636,1
    - Dst: AllowAccessForUsers
      Src: /src/core/cf-execd/cf-execd.c:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sock_path
    - allow_users
    argTypes:
    - char*
    - StringSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 640
    functionName: SetRunagentSocketACLs
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - ChopLastNode
    - AllowAccessForUsers
    linkageType: ''
    returnType: bool
    signature: bool SetRunagentSocketACLs(char *sock_path, StringSet *allow_users)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd.c:644,1
    - Dst: GetRunagentSocketInfo
      Src: /src/core/cf-execd/cf-execd.c:649,1
    - Dst: MakeParentDirectoryPerms
      Src: /src/core/cf-execd/cf-execd.c:652,1
    - Dst: unlink
      Src: /src/core/cf-execd/cf-execd.c:655,1
    - Dst: socket
      Src: /src/core/cf-execd/cf-execd.c:657,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd.c:658,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:662,1
    - Dst: bind
      Src: /src/core/cf-execd/cf-execd.c:666,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd.c:667,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:670,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd.c:670,1
    - Dst: close
      Src: /src/core/cf-execd/cf-execd.c:671,1
    - Dst: safe_chmod
      Src: /src/core/cf-execd/cf-execd.c:676,1
    - Dst: listen
      Src: /src/core/cf-execd/cf-execd.c:677,1
    - Dst: assert
      Src: /src/core/cf-execd/cf-execd.c:678,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:681,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd.c:681,1
    - Dst: close
      Src: /src/core/cf-execd/cf-execd.c:682,1
    - Dst: StringSetSize
      Src: /src/core/cf-execd/cf-execd.c:686,1
    - Dst: SetRunagentSocketACLs
      Src: /src/core/cf-execd/cf-execd.c:688,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:692,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - execd_config
    argTypes:
    - ExecdConfig*
    assertStmts:
    - condition: (runagent_socket >= 0)
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/core/cf-execd/cf-execd.c
    - condition: (ret == 0)
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/core/cf-execd/cf-execd.c
    - condition: (ret == 0)
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/core/cf-execd/cf-execd.c
    - condition: (execd_config != NULL)
      pos:
        line_end: 643
        line_start: 643
        source_file: /src/core/cf-execd/cf-execd.c
    constantsTouched: []
    func_position:
      end: 699
      start: 642
    functionDepth: 8
    functionLinenumber: 642
    functionLinenumberEnd: 699
    functionName: SetupRunagentSocket
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - bind
    - unlink
    - assert
    - MakeParentDirectoryPerms
    - safe_chmod
    - StringSetSize
    - GetRunagentSocketInfo
    - Log
    - listen
    - socket
    - SetRunagentSocketACLs
    - close
    linkageType: ''
    returnType: int
    signature: int SetupRunagentSocket(const ExecdConfig *execd_config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsPendingTermination
      Src: /src/core/cf-execd/cf-execd.c:710,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:715,1
    - Dst: sleep
      Src: /src/core/cf-execd/cf-execd.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - level
    - msg_format
    - seconds
    argTypes:
    - LogLevel
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 708
    functionDepth: 8
    functionLinenumber: 708
    functionLinenumberEnd: 718
    functionName: MaybeSleepLog
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - IsPendingTermination
    - sleep
    - Log
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int MaybeSleepLog(LogLevel level, const char *msg_format,
      unsigned int seconds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsPendingTermination
      Src: /src/core/cf-execd/cf-execd.c:725,1
    - Dst: ScheduleRun
      Src: /src/core/cf-execd/cf-execd.c:727,1
    - Dst: MaybeSleepLog
      Src: /src/core/cf-execd/cf-execd.c:729,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-execd/cf-execd.c:735,1
    - Dst: LocalExecInThread
      Src: /src/core/cf-execd/cf-execd.c:739,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:741,1
    - Dst: LocalExec
      Src: /src/core/cf-execd/cf-execd.c:743,1
    - Dst: MaybeSleepLog
      Src: /src/core/cf-execd/cf-execd.c:747,1
    - Dst: GetPulseTime
      Src: /src/core/cf-execd/cf-execd.c:747,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - ctx
    - policy
    - config
    - execd_config
    - exec_config
    - runagent_socket
    argTypes:
    - EvalContext*
    - Policy**
    - GenericAgentConfig*
    - ExecdConfig**
    - ExecConfig**
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 721
    functionDepth: 10
    functionLinenumber: 721
    functionLinenumberEnd: 749
    functionName: CFExecdMainLoop
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - MaybeSleepLog
    - LocalExecInThread
    - IsPendingTermination
    - Log
    - LocalExec
    - GetPulseTime
    - ScheduleRun
    linkageType: ''
    returnType: void
    signature: "void CFExecdMainLoop(EvalContext *ctx, Policy **policy, GenericAgentConfig
      *config,\n                            ExecdConfig **execd_config, ExecConfig
      **exec_config,\n                            ARG_UNUSED int runagent_socket)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pthread_attr_init
      Src: /src/core/cf-execd/cf-execd.c:755,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/core/cf-execd/cf-execd.c:756,1
    - Dst: pthread_attr_setstacksize
      Src: /src/core/cf-execd/cf-execd.c:757,1
    - Dst: Banner
      Src: /src/core/cf-execd/cf-execd.c:759,1
    - Dst: Apoptosis
      Src: /src/core/cf-execd/cf-execd.c:765,1
    - Dst: time
      Src: /src/core/cf-execd/cf-execd.c:768,1
    - Dst: fork
      Src: /src/core/cf-execd/cf-execd.c:769,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:771,1
    - Dst: ctime
      Src: /src/core/cf-execd/cf-execd.c:771,1
    - Dst: _exit
      Src: /src/core/cf-execd/cf-execd.c:772,1
    - Dst: ActAsDaemon
      Src: /src/core/cf-execd/cf-execd.c:777,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:784,1
    - Dst: WritePID
      Src: /src/core/cf-execd/cf-execd.c:789,1
    - Dst: signal
      Src: /src/core/cf-execd/cf-execd.c:790,1
    - Dst: signal
      Src: /src/core/cf-execd/cf-execd.c:791,1
    - Dst: signal
      Src: /src/core/cf-execd/cf-execd.c:792,1
    - Dst: signal
      Src: /src/core/cf-execd/cf-execd.c:793,1
    - Dst: signal
      Src: /src/core/cf-execd/cf-execd.c:794,1
    - Dst: signal
      Src: /src/core/cf-execd/cf-execd.c:795,1
    - Dst: signal
      Src: /src/core/cf-execd/cf-execd.c:796,1
    - Dst: umask
      Src: /src/core/cf-execd/cf-execd.c:798,1
    - Dst: UsingRunagentSocket
      Src: /src/core/cf-execd/cf-execd.c:803,1
    - Dst: SetupRunagentSocket
      Src: /src/core/cf-execd/cf-execd.c:805,1
    - Dst: LocalExec
      Src: /src/core/cf-execd/cf-execd.c:811,1
    - Dst: CloseLog
      Src: /src/core/cf-execd/cf-execd.c:812,1
    - Dst: CFExecdMainLoop
      Src: /src/core/cf-execd/cf-execd.c:816,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-execd/cf-execd.c:818,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 5
    argNames:
    - ctx
    - policy
    - config
    - execd_config
    - exec_config
    argTypes:
    - EvalContext*
    - Policy*
    - GenericAgentConfig*
    - ExecdConfig**
    - ExecConfig**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 753
    functionDepth: 11
    functionLinenumber: 753
    functionLinenumberEnd: 819
    functionName: StartServer
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 1
    functionsReached:
    - PolicyDestroy
    - Log
    - CloseLog
    - time
    - ActAsDaemon
    - pthread_attr_init
    - Apoptosis
    - CFExecdMainLoop
    - Banner
    - UsingRunagentSocket
    - pthread_attr_setdetachstate
    - signal
    - _exit
    - umask
    - ctime
    - pthread_attr_setstacksize
    - fork
    - WritePID
    - SetupRunagentSocket
    - LocalExec
    linkageType: ''
    returnType: void
    signature: void StartServer(EvalContext *ctx, Policy *policy, GenericAgentConfig
      *config, ExecdConfig **execd_config, ExecConfig **exec_config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:826,1
    - Dst: fork
      Src: /src/core/cf-execd/cf-execd.c:828,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:831,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd.c:832,1
    - Dst: LocalExec
      Src: /src/core/cf-execd/cf-execd.c:838,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:839,1
    - Dst: _exit
      Src: /src/core/cf-execd/cf-execd.c:840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - ExecConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 824
    functionDepth: 10
    functionLinenumber: 824
    functionLinenumberEnd: 847
    functionName: LocalExecInFork
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - fork
    - LocalExec
    - Log
    - _exit
    linkageType: ''
    returnType: pid_t
    signature: pid_t LocalExecInFork(const ExecConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocalExec
      Src: /src/core/cf-execd/cf-execd.c:853,1
    - Dst: ExecConfigDestroy
      Src: /src/core/cf-execd/cf-execd.c:854,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - param
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 850
    functionDepth: 10
    functionLinenumber: 850
    functionLinenumberEnd: 858
    functionName: LocalExecThread
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - Log
    - ExecConfigDestroy
    - LocalExec
    linkageType: ''
    returnType: void
    signature: void *LocalExecThread(void *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExecConfigCopy
      Src: /src/core/cf-execd/cf-execd.c:862,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:865,1
    - Dst: pthread_create
      Src: /src/core/cf-execd/cf-execd.c:866,1
    - Dst: ExecConfigDestroy
      Src: /src/core/cf-execd/cf-execd.c:869,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:870,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - config
    argTypes:
    - ExecConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 860
    functionDepth: 11
    functionLinenumber: 860
    functionLinenumberEnd: 876
    functionName: LocalExecInThread
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ExecConfigDestroy
    - pthread_create
    - Log
    - ExecConfigCopy
    linkageType: ''
    returnType: bool
    signature: bool LocalExecInThread(const ExecConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-execd/cf-execd.c:884,1
    - Dst: GetBinDir
      Src: /src/core/cf-execd/cf-execd.c:885,1
    - Dst: LoadProcessTable
      Src: /src/core/cf-execd/cf-execd.c:887,1
    - Dst: PRINTSIZE
      Src: /src/core/cf-execd/cf-execd.c:889,1
    - Dst: xsnprintf
      Src: /src/core/cf-execd/cf-execd.c:890,1
    - Dst: getuid
      Src: /src/core/cf-execd/cf-execd.c:890,1
    - Dst: RlistPrepend
      Src: /src/core/cf-execd/cf-execd.c:893,1
    - Dst: SelectProcesses
      Src: /src/core/cf-execd/cf-execd.c:899,1
    - Dst: RlistDestroy
      Src: /src/core/cf-execd/cf-execd.c:900,1
    - Dst: getpid
      Src: /src/core/cf-execd/cf-execd.c:906,1
    - Dst: kill
      Src: /src/core/cf-execd/cf-execd.c:906,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:914,1
    - Dst: GetErrorStr
      Src: /src/core/cf-execd/cf-execd.c:915,1
    - Dst: ClearProcessTable
      Src: /src/core/cf-execd/cf-execd.c:921,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:923,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 881
    functionDepth: 8
    functionLinenumber: 881
    functionLinenumberEnd: 924
    functionName: Apoptosis
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 1
    functionsReached:
    - kill
    - GetErrorStr
    - PRINTSIZE
    - snprintf
    - getpid
    - getuid
    - ClearProcessTable
    - Log
    - xsnprintf
    - LoadProcessTable
    - SelectProcesses
    - RlistDestroy
    - GetBinDir
    - RlistPrepend
    linkageType: ''
    returnType: void
    signature: void Apoptosis(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:936,1
    - Dst: ReadTimestampFromPolicyValidatedFile
      Src: /src/core/cf-execd/cf-execd.c:938,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:944,1
    - Dst: ReloadConfigRequested
      Src: /src/core/cf-execd/cf-execd.c:947,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:949,1
    - Dst: ClearRequestReloadConfig
      Src: /src/core/cf-execd/cf-execd.c:955,1
    - Dst: GenericAgentArePromisesValid
      Src: /src/core/cf-execd/cf-execd.c:960,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:966,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:971,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - config
    argTypes:
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 934
    functionDepth: 8
    functionLinenumber: 934
    functionLinenumberEnd: 975
    functionName: CheckNewPromises
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 0
    functionsReached:
    - ReadTimestampFromPolicyValidatedFile
    - GenericAgentArePromisesValid
    - Log
    - ClearRequestReloadConfig
    - ReloadConfigRequested
    linkageType: ''
    returnType: Reload
    signature: Reload CheckNewPromises(GenericAgentConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CheckNewPromises
      Src: /src/core/cf-execd/cf-execd.c:984,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:988,1
    - Dst: EvalContextClear
      Src: /src/core/cf-execd/cf-execd.c:990,1
    - Dst: strcpy
      Src: /src/core/cf-execd/cf-execd.c:992,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-execd/cf-execd.c:994,1
    - Dst: EvalContextSetPolicyServerFromFile
      Src: /src/core/cf-execd/cf-execd.c:997,1
    - Dst: GetWorkDir
      Src: /src/core/cf-execd/cf-execd.c:997,1
    - Dst: UpdateLastPolicyUpdateTime
      Src: /src/core/cf-execd/cf-execd.c:998,1
    - Dst: DetectEnvironment
      Src: /src/core/cf-execd/cf-execd.c:1000,1
    - Dst: GenericAgentDiscoverContext
      Src: /src/core/cf-execd/cf-execd.c:1001,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/cf-execd/cf-execd.c:1003,1
    - Dst: SetReferenceTime
      Src: /src/core/cf-execd/cf-execd.c:1005,1
    - Dst: UpdateTimeClasses
      Src: /src/core/cf-execd/cf-execd.c:1006,1
    - Dst: GenericAgentConfigSetBundleSequence
      Src: /src/core/cf-execd/cf-execd.c:1008,1
    - Dst: UsingRunagentSocket
      Src: /src/core/cf-execd/cf-execd.c:1013,1
    - Dst: LoadPolicy
      Src: /src/core/cf-execd/cf-execd.c:1020,1
    - Dst: ExecConfigDestroy
      Src: /src/core/cf-execd/cf-execd.c:1021,1
    - Dst: ExecdConfigDestroy
      Src: /src/core/cf-execd/cf-execd.c:1022,1
    - Dst: ExecConfigNew
      Src: /src/core/cf-execd/cf-execd.c:1024,1
    - Dst: ExecdConfigNew
      Src: /src/core/cf-execd/cf-execd.c:1025,1
    - Dst: UsingRunagentSocket
      Src: /src/core/cf-execd/cf-execd.c:1028,1
    - Dst: StringSetIsEqual
      Src: /src/core/cf-execd/cf-execd.c:1031,1
    - Dst: GetRunagentSocketInfo
      Src: /src/core/cf-execd/cf-execd.c:1035,1
    - Dst: SetRunagentSocketACLs
      Src: /src/core/cf-execd/cf-execd.c:1037,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:1041,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:1049,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-execd/cf-execd.c:1052,1
    - Dst: SetFacility
      Src: /src/core/cf-execd/cf-execd.c:1056,1
    - Dst: EvalContextClear
      Src: /src/core/cf-execd/cf-execd.c:1062,1
    - Dst: DetectEnvironment
      Src: /src/core/cf-execd/cf-execd.c:1064,1
    - Dst: SetReferenceTime
      Src: /src/core/cf-execd/cf-execd.c:1066,1
    - Dst: UpdateTimeClasses
      Src: /src/core/cf-execd/cf-execd.c:1067,1
    - Dst: StringSetIteratorInit
      Src: /src/core/cf-execd/cf-execd.c:1071,1
    - Dst: StringSetIteratorNext
      Src: /src/core/cf-execd/cf-execd.c:1073,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-execd/cf-execd.c:1075,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:1077,1
    - Dst: ctime
      Src: /src/core/cf-execd/cf-execd.c:1077,1
    - Dst: Log
      Src: /src/core/cf-execd/cf-execd.c:1083,1
    - Dst: ctime
      Src: /src/core/cf-execd/cf-execd.c:1083,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 5
    argNames:
    - ctx
    - policy
    - config
    - execd_config
    - exec_config
    argTypes:
    - EvalContext*
    - Policy**
    - GenericAgentConfig*
    - ExecdConfig**
    - ExecConfig**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 977
    functionDepth: 11
    functionLinenumber: 977
    functionLinenumberEnd: 1085
    functionName: ScheduleRun
    functionSourceFile: /src/core/cf-execd/cf-execd.c
    functionUses: 2
    functionsReached:
    - PolicyDestroy
    - LoadPolicy
    - SetReferenceTime
    - SetFacility
    - Log
    - SetRunagentSocketACLs
    - ExecConfigDestroy
    - CheckNewPromises
    - EvalContextClear
    - GenericAgentConfigSetBundleSequence
    - ExecdConfigNew
    - UpdateTimeClasses
    - DetectEnvironment
    - IsDefinedClass
    - strcpy
    - StringSetIsEqual
    - UsingRunagentSocket
    - ExecdConfigDestroy
    - GetRunagentSocketInfo
    - StringSetIteratorInit
    - EvalContextSetPolicyServerFromFile
    - GetWorkDir
    - ctime
    - UpdateLastPolicyUpdateTime
    - EvalContextClassPutHard
    - ExecConfigNew
    - StringSetIteratorNext
    - StringSetDestroy
    - GenericAgentDiscoverContext
    linkageType: ''
    returnType: bool
    signature: "bool ScheduleRun(EvalContext *ctx, Policy **policy, GenericAgentConfig
      *config,\n                        ExecdConfig **execd_config, ExecConfig **exec_config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - generator_macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: CF_NET_COMMANDS
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_NET_COMMANDS(generator_macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CMD_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: GENERATE_ENUM
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_ENUM(CMD_NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CMD_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: GENERATE_STRING
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_STRING(CMD_NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CFNetSetDefault
      Src: /src/core/cf-net/cf-net.c:220,1
    - Dst: CFNetParse
      Src: /src/core/cf-net/cf-net.c:223,1
    - Dst: GenericAgentSetDefaultDigest
      Src: /src/core/cf-net/cf-net.c:225,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-net/cf-net.c:228,1
    - Dst: CFNetRun
      Src: /src/core/cf-net/cf-net.c:230,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:231,1
    - Dst: CFNetOptionsClear
      Src: /src/core/cf-net/cf-net.c:232,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-net/cf-net.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 236
    functionName: main
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 2
    functionsReached:
    - DoCleanupAndExit
    - CFNetParse
    - GenericAgentSetDefaultDigest
    - CFNetSetDefault
    - CFNetRun
    - CFNetOptionsClear
    - free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - opts
    argTypes:
    - CFNetOptions*
    assertStmts:
    - condition: (opts != NULL)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: CFNetSetDefault
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void CFNetSetDefault(CFNetOptions *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:256,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:257,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:258,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - opts
    argTypes:
    - CFNetOptions*
    assertStmts:
    - condition: (opts != NULL)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: CFNetOptionsClear
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void CFNetOptionsClear(CFNetOptions *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeWindows
      Src: /src/core/cf-net/cf-net.c:265,1
    - Dst: OpenNetwork
      Src: /src/core/cf-net/cf-net.c:266,1
    - Dst: CryptoInitialize
      Src: /src/core/cf-net/cf-net.c:268,1
    - Dst: LoadSecretKeys
      Src: /src/core/cf-net/cf-net.c:269,1
    - Dst: cfnet_init
      Src: /src/core/cf-net/cf-net.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - min_tls_version
    - allow_ciphers
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: CFNetInit
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - cfnet_init
    - OpenNetwork
    - InitializeWindows
    - CryptoInitialize
    - LoadSecretKeys
    linkageType: ''
    returnType: void
    signature: void CFNetInit(const char *min_tls_version, const char *allow_ciphers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PolicyServerReadFile
      Src: /src/core/cf-net/cf-net.c:281,1
    - Dst: GetWorkDir
      Src: /src/core/cf-net/cf-net.c:281,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:284,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-net/cf-net.c:285,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - hostnames
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 290
    functionName: RequireHostname
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - PolicyServerReadFile
    - printf
    - xstrdup
    - GetWorkDir
    linkageType: ''
    returnType: char
    signature: char *RequireHostname(char *hostnames)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:296,1
    - Dst: CFNetHelp
      Src: /src/core/cf-net/cf-net.c:299,1
    - Dst: getopt_long
      Src: /src/core/cf-net/cf-net.c:308,1
    - Dst: CFNetHelp
      Src: /src/core/cf-net/cf-net.c:315,1
    - Dst: FileWriter
      Src: /src/core/cf-net/cf-net.c:321,1
    - Dst: ManPageWrite
      Src: /src/core/cf-net/cf-net.c:322,1
    - Dst: time
      Src: /src/core/cf-net/cf-net.c:322,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-net/cf-net.c:328,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-net/cf-net.c:329,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:336,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:339,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:341,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-net/cf-net.c:361,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:366,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:371,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:376,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-net/cf-net.c:388,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 5
    argNames:
    - argc
    - argv
    - opts
    - args
    - hostnames
    argTypes:
    - int
    - char**
    - CFNetOptions*
    - char***
    - char**
    assertStmts:
    - condition: (opts != NULL)
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 395
      start: 293
    functionDepth: 8
    functionLinenumber: 293
    functionLinenumberEnd: 395
    functionName: CFNetParse
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - FileWriter
    - DoCleanupAndExit
    - ManPageWrite
    - assert
    - Log
    - CFNetHelp
    - xstrdup
    - free
    - getopt_long
    - LogSetGlobalLevelArgOrExit
    - FileWriterDetach
    - time
    linkageType: ''
    returnType: int
    signature: "int CFNetParse(int argc, char **argv,\n                      CFNetOptions
      *opts, char ***args, char **hostnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-net/cf-net.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: CFNetCommandNumber
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int CFNetCommandNumber(char *command)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:414,1
    - Dst: CFNetConnect
      Src: /src/core/cf-net/cf-net.c:418,1
    - Dst: CFNetStat
      Src: /src/core/cf-net/cf-net.c:420,1
    - Dst: CFNetGet
      Src: /src/core/cf-net/cf-net.c:422,1
    - Dst: CFNetOpenDir
      Src: /src/core/cf-net/cf-net.c:424,1
    - Dst: CFNetGetDir
      Src: /src/core/cf-net/cf-net.c:426,1
    - Dst: CFNetMulti
      Src: /src/core/cf-net/cf-net.c:428,1
    - Dst: CFNetMultiTLS
      Src: /src/core/cf-net/cf-net.c:430,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:434,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-net/cf-net.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - opts
    - hostname
    - args
    - cmd
    argTypes:
    - CFNetOptions*
    - char*
    - char**
    - enum command_enum
    assertStmts:
    - condition: (opts != NULL)
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 437
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 437
    functionName: CFNetCommandSwitch
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - CFNetGetDir
    - assert
    - CFNetConnect
    - printf
    - CFNetOpenDir
    - CFNetGet
    - CFNetStat
    - CFNetMultiTLS
    - CFNetMulti
    linkageType: ''
    returnType: int
    signature: "int CFNetCommandSwitch(CFNetOptions *opts, const char *hostname,\n
      \                             char **args, enum command_enum cmd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:441,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-net/cf-net.c:444,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:445,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-net/cf-net.c:449,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:450,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-net/cf-net.c:454,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - opts
    argTypes:
    - CFNetOptions*
    assertStmts:
    - condition: (opts)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 457
      start: 439
    functionDepth: 8
    functionLinenumber: 439
    functionLinenumberEnd: 457
    functionName: CFNetSetVerbosity
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - assert
    - LogSetGlobalLevel
    - Log
    linkageType: ''
    returnType: void
    signature: void CFNetSetVerbosity(CFNetOptions *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:461,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:462,1
    - Dst: CFNetSetVerbosity
      Src: /src/core/cf-net/cf-net.c:463,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-net/cf-net.c:466,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:468,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-net/cf-net.c:469,1
    - Dst: ToUpperStrInplace
      Src: /src/core/cf-net/cf-net.c:471,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:473,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:477,1
    - Dst: CFNetCommandNumber
      Src: /src/core/cf-net/cf-net.c:480,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:484,1
    - Dst: CFNetHelp
      Src: /src/core/cf-net/cf-net.c:489,1
    - Dst: CFNetInit
      Src: /src/core/cf-net/cf-net.c:492,1
    - Dst: RequireHostname
      Src: /src/core/cf-net/cf-net.c:493,1
    - Dst: strtok
      Src: /src/core/cf-net/cf-net.c:495,1
    - Dst: CFNetCommandSwitch
      Src: /src/core/cf-net/cf-net.c:497,1
    - Dst: strtok
      Src: /src/core/cf-net/cf-net.c:500,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - opts
    - args
    - hostnames
    argTypes:
    - CFNetOptions*
    - char**
    - char*
    assertStmts:
    - condition: (opts != NULL)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/core/cf-net/cf-net.c
    - condition: (args != NULL)
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 504
      start: 459
    functionDepth: 9
    functionLinenumber: 459
    functionLinenumberEnd: 504
    functionName: CFNetRun
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - DoCleanupAndExit
    - CFNetCommandNumber
    - RequireHostname
    - assert
    - CFNetInit
    - printf
    - strtok
    - CFNetSetVerbosity
    - Log
    - CFNetHelp
    - CFNetCommandSwitch
    - free
    - NULL_OR_EMPTY
    - ToUpperStrInplace
    linkageType: ''
    returnType: int
    signature: int CFNetRun(CFNetOptions *opts, char **args, char *hostnames)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ParseProtocolVersionPolicy
      Src: /src/core/cf-net/cf-net.c:514,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:517,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:530,1
    - Dst: ParseHostPort
      Src: /src/core/cf-net/cf-net.c:532,1
    - Dst: ServerConnection
      Src: /src/core/cf-net/cf-net.c:537,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:538,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:541,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-net/cf-net.c:545,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:548,1
    - Dst: ProtocolVersionString
      Src: /src/core/cf-net/cf-net.c:551,1
    - Dst: DisconnectServer
      Src: /src/core/cf-net/cf-net.c:553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - server
    - use_protocol_version
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 510
    functionDepth: 8
    functionLinenumber: 510
    functionLinenumberEnd: 558
    functionName: CFNetOpenConnection
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - ParseProtocolVersionPolicy
    - ParseHostPort
    - printf
    - ConnectionInfoProtocolVersion
    - DisconnectServer
    - Log
    - xstrdup
    - ProtocolVersionString
    - free
    - ServerConnection
    linkageType: ''
    returnType: AgentConnection
    signature: AgentConnection *CFNetOpenConnection(const char *server, const char
      *use_protocol_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SocketConnect
      Src: /src/core/cf-net/cf-net.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - server
    - port
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 565
    functionName: JustConnect
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - SocketConnect
    linkageType: ''
    returnType: int
    signature: int JustConnect(const char *server, char *port)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:573,1
    - Dst: strcmp
      Src: /src/core/cf-net/cf-net.c:577,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:579,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:580,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:581,1
    - Dst: strcmp
      Src: /src/core/cf-net/cf-net.c:588,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:590,1
    - Dst: strcmp
      Src: /src/core/cf-net/cf-net.c:592,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:594,1
    - Dst: strcmp
      Src: /src/core/cf-net/cf-net.c:599,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:601,1
    - Dst: strcmp
      Src: /src/core/cf-net/cf-net.c:607,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:609,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:621,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - topic
    argTypes:
    - char*
    assertStmts:
    - condition: (topic != NULL)
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 626
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 626
    functionName: CFNetHelpTopic
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    - printf
    linkageType: ''
    returnType: int
    signature: int CFNetHelpTopic(const char *topic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CFNetHelpTopic
      Src: /src/core/cf-net/cf-net.c:632,1
    - Dst: FileWriter
      Src: /src/core/cf-net/cf-net.c:636,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-net/cf-net.c:637,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-net/cf-net.c:638,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-net/cf-net.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - topic
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 642
    functionName: CFNetHelp
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 2
    functionsReached:
    - FileWriter
    - DoCleanupAndExit
    - WriterWriteHelp
    - CFNetHelpTopic
    - FileWriterDetach
    linkageType: ''
    returnType: int
    signature: int CFNetHelp(const char *topic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CFNetOpenConnection
      Src: /src/core/cf-net/cf-net.c:646,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:653,1
    - Dst: CFNetDisconnect
      Src: /src/core/cf-net/cf-net.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - server
    - use_protocol_version
    - print
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 644
    functionDepth: 9
    functionLinenumber: 644
    functionLinenumberEnd: 657
    functionName: CFNetConnectSingle
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - CFNetOpenConnection
    - CFNetDisconnect
    - printf
    linkageType: ''
    returnType: int
    signature: int CFNetConnectSingle(const char *server, const char *use_protocol_version,
      bool print)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:661,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:664,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-net/cf-net.c:668,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:670,1
    - Dst: CFNetConnectSingle
      Src: /src/core/cf-net/cf-net.c:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - hostname
    - use_protocol_version
    - args
    argTypes:
    - char*
    - char*
    - char**
    assertStmts:
    - condition: (args != NULL)
      pos:
        line_end: 660
        line_start: 660
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 674
      start: 659
    functionDepth: 10
    functionLinenumber: 659
    functionLinenumberEnd: 674
    functionName: CFNetConnect
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - CFNetConnectSingle
    - assert
    - NULL_OR_EMPTY
    - Log
    linkageType: ''
    returnType: int
    signature: int CFNetConnect(const char *hostname, const char *use_protocol_version,
      char **args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DisconnectServer
      Src: /src/core/cf-net/cf-net.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 679
    functionName: CFNetDisconnect
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - DisconnectServer
    linkageType: ''
    returnType: void
    signature: void CFNetDisconnect(AgentConnection *conn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:683,1
    - Dst: S_ISDIR
      Src: /src/core/cf-net/cf-net.c:684,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:686,1
    - Dst: S_ISREG
      Src: /src/core/cf-net/cf-net.c:688,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:690,1
    - Dst: S_ISSOCK
      Src: /src/core/cf-net/cf-net.c:692,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:694,1
    - Dst: S_ISCHR
      Src: /src/core/cf-net/cf-net.c:696,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:698,1
    - Dst: S_ISBLK
      Src: /src/core/cf-net/cf-net.c:700,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:702,1
    - Dst: S_ISFIFO
      Src: /src/core/cf-net/cf-net.c:704,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:706,1
    - Dst: S_ISLNK
      Src: /src/core/cf-net/cf-net.c:708,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:710,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:714,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - file
    - st_mode
    - server
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 716
    functionName: CFNetStatPrint
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - S_ISDIR
    - printf
    - S_ISCHR
    - S_ISFIFO
    - S_ISREG
    - S_ISBLK
    - S_ISSOCK
    linkageType: ''
    returnType: void
    signature: void CFNetStatPrint(const char *file, int st_mode, const char *server)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:720,1
    - Dst: CFNetOpenConnection
      Src: /src/core/cf-net/cf-net.c:723,1
    - Dst: ProtocolStat
      Src: /src/core/cf-net/cf-net.c:729,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:732,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:736,1
    - Dst: CFNetStatPrint
      Src: /src/core/cf-net/cf-net.c:743,1
    - Dst: CFNetDisconnect
      Src: /src/core/cf-net/cf-net.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - CFNetOptions *opts
    - hostname
    - args
    argTypes:
    - ARG_UNUSED
    - char*
    - char**
    assertStmts:
    - condition: (opts != NULL)
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 748
      start: 718
    functionDepth: 9
    functionLinenumber: 718
    functionLinenumberEnd: 748
    functionName: CFNetStat
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - ProtocolStat
    - CFNetOpenConnection
    - assert
    - printf
    - Log
    - CFNetDisconnect
    - CFNetStatPrint
    linkageType: ''
    returnType: int
    signature: int CFNetStat(ARG_UNUSED CFNetOptions *opts, const char *hostname,
      char **args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 750
    functionDepth: 8
    functionLinenumber: 750
    functionLinenumberEnd: 754
    functionName: invalid_command
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: int invalid_command(const char *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CFNetOpenConnection
      Src: /src/core/cf-net/cf-net.c:769,1
    - Dst: ProtocolStatGet
      Src: /src/core/cf-net/cf-net.c:776,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:780,1
    - Dst: CFNetDisconnect
      Src: /src/core/cf-net/cf-net.c:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 766
    functionDepth: 9
    functionLinenumber: 766
    functionLinenumberEnd: 784
    functionName: CFNetGetFile
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - CFNetOpenConnection
    - ProtocolStatGet
    - CFNetDisconnect
    - printf
    linkageType: ''
    returnType: void
    signature: void *CFNetGetFile(void *arg)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:793,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:794,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:795,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:810,1
    - Dst: invalid_command
      Src: /src/core/cf-net/cf-net.c:813,1
    - Dst: getopt_long
      Src: /src/core/cf-net/cf-net.c:823,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:832,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:835,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:837,1
    - Dst: StringToLong
      Src: /src/core/cf-net/cf-net.c:843,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:846,1
    - Dst: invalid_command
      Src: /src/core/cf-net/cf-net.c:853,1
    - Dst: invalid_command
      Src: /src/core/cf-net/cf-net.c:858,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:863,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:875,1
    - Dst: basename
      Src: /src/core/cf-net/cf-net.c:875,1
    - Dst: strcmp
      Src: /src/core/cf-net/cf-net.c:878,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:882,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:883,1
    - Dst: xcalloc
      Src: /src/core/cf-net/cf-net.c:887,1
    - Dst: xcalloc
      Src: /src/core/cf-net/cf-net.c:890,1
    - Dst: xcalloc
      Src: /src/core/cf-net/cf-net.c:891,1
    - Dst: strstr
      Src: /src/core/cf-net/cf-net.c:897,1
    - Dst: snprintf
      Src: /src/core/cf-net/cf-net.c:899,1
    - Dst: snprintf
      Src: /src/core/cf-net/cf-net.c:903,1
    - Dst: strstr
      Src: /src/core/cf-net/cf-net.c:906,1
    - Dst: snprintf
      Src: /src/core/cf-net/cf-net.c:908,1
    - Dst: snprintf
      Src: /src/core/cf-net/cf-net.c:912,1
    - Dst: snprintf
      Src: /src/core/cf-net/cf-net.c:917,1
    - Dst: snprintf
      Src: /src/core/cf-net/cf-net.c:918,1
    - Dst: pthread_create
      Src: /src/core/cf-net/cf-net.c:925,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:928,1
    - Dst: strerror
      Src: /src/core/cf-net/cf-net.c:928,1
    - Dst: pthread_join
      Src: /src/core/cf-net/cf-net.c:935,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:938,1
    - Dst: strerror
      Src: /src/core/cf-net/cf-net.c:938,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:948,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:949,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:951,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:952,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 96
    argCount: 3
    argNames:
    - CFNetOptions *opts
    - hostname
    - args
    argTypes:
    - ARG_UNUSED
    - char*
    - char**
    assertStmts:
    - condition: (opts != NULL)
      pos:
        line_end: 809
        line_start: 809
        source_file: /src/core/cf-net/cf-net.c
    - condition: (opts)
      pos:
        line_end: 792
        line_start: 792
        source_file: /src/core/cf-net/cf-net.c
    - condition: (hostname)
      pos:
        line_end: 793
        line_start: 793
        source_file: /src/core/cf-net/cf-net.c
    - condition: (args)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 954
      start: 791
    functionDepth: 9
    functionLinenumber: 791
    functionLinenumberEnd: 954
    functionName: CFNetGet
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - pthread_create
    - snprintf
    - strstr
    - assert
    - strerror
    - invalid_command
    - printf
    - pthread_join
    - Log
    - strcmp
    - xstrdup
    - StringToLong
    - free
    - getopt_long
    - basename
    linkageType: ''
    returnType: int
    signature: int CFNetGet(ARG_UNUSED CFNetOptions *opts, const char *hostname, char
      **args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/cf-net/cf-net.c:958,1
    - Dst: SeqAt
      Src: /src/core/cf-net/cf-net.c:960,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 963
    functionName: PrintDirs
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - printf
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void PrintDirs(const Seq *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:967,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:968,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:969,1
    - Dst: CFNetOpenConnection
      Src: /src/core/cf-net/cf-net.c:971,1
    - Dst: invalid_command
      Src: /src/core/cf-net/cf-net.c:985,1
    - Dst: ProtocolOpenDir
      Src: /src/core/cf-net/cf-net.c:990,1
    - Dst: PrintDirs
      Src: /src/core/cf-net/cf-net.c:996,1
    - Dst: SeqDestroy
      Src: /src/core/cf-net/cf-net.c:997,1
    - Dst: CFNetDisconnect
      Src: /src/core/cf-net/cf-net.c:998,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - CFNetOptions *opts
    - hostname
    - args
    argTypes:
    - ARG_UNUSED
    - char*
    - char**
    assertStmts:
    - condition: (opts != NULL)
      pos:
        line_end: 966
        line_start: 966
        source_file: /src/core/cf-net/cf-net.c
    - condition: (args != NULL)
      pos:
        line_end: 968
        line_start: 968
        source_file: /src/core/cf-net/cf-net.c
    - condition: (hostname != NULL)
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 1000
      start: 965
    functionDepth: 9
    functionLinenumber: 965
    functionLinenumberEnd: 1000
    functionName: CFNetOpenDir
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - SeqDestroy
    - CFNetOpenConnection
    - assert
    - invalid_command
    - ProtocolOpenDir
    - PrintDirs
    - CFNetDisconnect
    linkageType: ''
    returnType: int
    signature: int CFNetOpenDir(ARG_UNUSED CFNetOptions *opts, const char *hostname,
      char **args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:1012,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:1013,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:1014,1
    - Dst: ProtocolStat
      Src: /src/core/cf-net/cf-net.c:1017,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1019,1
    - Dst: ProtocolGet
      Src: /src/core/cf-net/cf-net.c:1024,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - conn
    - remote_path
    - local_path
    - print_stats
    argTypes:
    - AgentConnection*
    - char*
    - char*
    - bool
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/core/cf-net/cf-net.c
    - condition: (local_path != NULL)
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/core/cf-net/cf-net.c
    - condition: (remote_path != NULL)
      pos:
        line_end: 1012
        line_start: 1012
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 1032
      start: 1009
    functionDepth: 8
    functionLinenumber: 1009
    functionLinenumberEnd: 1032
    functionName: CFNetGetWithPerms
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - assert
    - ProtocolStat
    - ProtocolGet
    - Log
    linkageType: ''
    returnType: bool
    signature: "bool CFNetGetWithPerms(AgentConnection *conn, const char *remote_path,\n
      \                         const char *local_path, bool print_stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-net/cf-net.c:1051,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1055,1
    - Dst: MakeParentDirectoryPerms
      Src: /src/core/cf-net/cf-net.c:1060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - local_base
    - subdir
    - perms
    argTypes:
    - char*
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1047
    functionDepth: 8
    functionLinenumber: 1047
    functionLinenumberEnd: 1061
    functionName: create_local_dir
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 0
    functionsReached:
    - MakeParentDirectoryPerms
    - Log
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool create_local_dir(const char *local_base, const char *subdir, mode_t
      perms)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1072,1
    - Dst: ProtocolOpenDir
      Src: /src/core/cf-net/cf-net.c:1076,1
    - Dst: SeqLength
      Src: /src/core/cf-net/cf-net.c:1082,1
    - Dst: SeqAt
      Src: /src/core/cf-net/cf-net.c:1084,1
    - Dst: strcmp
      Src: /src/core/cf-net/cf-net.c:1086,1
    - Dst: strcmp
      Src: /src/core/cf-net/cf-net.c:1086,1
    - Dst: IsFileSep
      Src: /src/core/cf-net/cf-net.c:1097,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1105,1
    - Dst: snprintf
      Src: /src/core/cf-net/cf-net.c:1112,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1115,1
    - Dst: SeqDestroy
      Src: /src/core/cf-net/cf-net.c:1118,1
    - Dst: snprintf
      Src: /src/core/cf-net/cf-net.c:1123,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1126,1
    - Dst: SeqDestroy
      Src: /src/core/cf-net/cf-net.c:1129,1
    - Dst: ProtocolStat
      Src: /src/core/cf-net/cf-net.c:1134,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1136,1
    - Dst: SeqDestroy
      Src: /src/core/cf-net/cf-net.c:1137,1
    - Dst: S_ISDIR
      Src: /src/core/cf-net/cf-net.c:1141,1
    - Dst: create_local_dir
      Src: /src/core/cf-net/cf-net.c:1143,1
    - Dst: SeqDestroy
      Src: /src/core/cf-net/cf-net.c:1146,1
    - Dst: process_dir_recursive
      Src: /src/core/cf-net/cf-net.c:1149,1
    - Dst: SeqDestroy
      Src: /src/core/cf-net/cf-net.c:1154,1
    - Dst: CFNetGetWithPerms
      Src: /src/core/cf-net/cf-net.c:1160,1
    - Dst: SeqDestroy
      Src: /src/core/cf-net/cf-net.c:1162,1
    - Dst: SeqDestroy
      Src: /src/core/cf-net/cf-net.c:1168,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 5
    argNames:
    - conn
    - remote_path
    - local_path
    - print_stats
    - limit
    argTypes:
    - AgentConnection*
    - char*
    - char*
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1063
    functionDepth: 9
    functionLinenumber: 1063
    functionLinenumberEnd: 1170
    functionName: process_dir_recursive
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - SeqDestroy
    - IsFileSep
    - snprintf
    - ProtocolStat
    - ProtocolOpenDir
    - S_ISDIR
    - CFNetGetWithPerms
    - process_dir_recursive
    - Log
    - strcmp
    - SeqLength
    - create_local_dir
    - SeqAt
    linkageType: ''
    returnType: int
    signature: "int process_dir_recursive(AgentConnection *conn,\n                                 const
      char *remote_path,\n                                 const char *local_path,\n
      \                                bool print_stats,\n                                 int
      limit)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:1174,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:1175,1
    - Dst: assert
      Src: /src/core/cf-net/cf-net.c:1176,1
    - Dst: invalid_command
      Src: /src/core/cf-net/cf-net.c:1193,1
    - Dst: getopt_long
      Src: /src/core/cf-net/cf-net.c:1200,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1209,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1212,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:1214,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1221,1
    - Dst: invalid_command
      Src: /src/core/cf-net/cf-net.c:1222,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:1226,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1235,1
    - Dst: invalid_command
      Src: /src/core/cf-net/cf-net.c:1236,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:1242,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:1243,1
    - Dst: basename
      Src: /src/core/cf-net/cf-net.c:1243,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1244,1
    - Dst: getcwd
      Src: /src/core/cf-net/cf-net.c:1247,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1249,1
    - Dst: GetErrorStr
      Src: /src/core/cf-net/cf-net.c:1249,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1250,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1251,1
    - Dst: StringFormat
      Src: /src/core/cf-net/cf-net.c:1256,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1257,1
    - Dst: strlen
      Src: /src/core/cf-net/cf-net.c:1259,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1261,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1262,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1263,1
    - Dst: CFNetOpenConnection
      Src: /src/core/cf-net/cf-net.c:1267,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1270,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1271,1
    - Dst: ProtocolStat
      Src: /src/core/cf-net/cf-net.c:1275,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:1277,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1278,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1279,1
    - Dst: CFNetDisconnect
      Src: /src/core/cf-net/cf-net.c:1280,1
    - Dst: S_ISDIR
      Src: /src/core/cf-net/cf-net.c:1283,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:1285,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1287,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1288,1
    - Dst: CFNetDisconnect
      Src: /src/core/cf-net/cf-net.c:1289,1
    - Dst: process_dir_recursive
      Src: /src/core/cf-net/cf-net.c:1293,1
    - Dst: Log
      Src: /src/core/cf-net/cf-net.c:1304,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1307,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1308,1
    - Dst: CFNetDisconnect
      Src: /src/core/cf-net/cf-net.c:1309,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 83
    argCount: 3
    argNames:
    - opts
    - hostname
    - args
    argTypes:
    - CFNetOptions*
    - char*
    - char**
    assertStmts:
    - condition: (hostname != NULL)
      pos:
        line_end: 1174
        line_start: 1174
        source_file: /src/core/cf-net/cf-net.c
    - condition: (args != NULL)
      pos:
        line_end: 1175
        line_start: 1175
        source_file: /src/core/cf-net/cf-net.c
    - condition: (opts != NULL)
      pos:
        line_end: 1173
        line_start: 1173
        source_file: /src/core/cf-net/cf-net.c
    constantsTouched: []
    func_position:
      end: 1311
      start: 1172
    functionDepth: 10
    functionLinenumber: 1172
    functionLinenumberEnd: 1311
    functionName: CFNetGetDir
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ProtocolStat
    - strlen
    - CFNetOpenConnection
    - assert
    - invalid_command
    - S_ISDIR
    - printf
    - process_dir_recursive
    - Log
    - getcwd
    - xstrdup
    - StringFormat
    - CFNetDisconnect
    - free
    - getopt_long
    - basename
    linkageType: ''
    returnType: int
    signature: int CFNetGetDir(CFNetOptions *opts, const char *hostname, char **args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-net/cf-net.c:1316,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:1321,1
    - Dst: xstrdup
      Src: /src/core/cf-net/cf-net.c:1324,1
    - Dst: ParseHostPort
      Src: /src/core/cf-net/cf-net.c:1326,1
    - Dst: JustConnect
      Src: /src/core/cf-net/cf-net.c:1335,1
    - Dst: free
      Src: /src/core/cf-net/cf-net.c:1339,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:1340,1
    - Dst: time
      Src: /src/core/cf-net/cf-net.c:1343,1
    - Dst: difftime
      Src: /src/core/cf-net/cf-net.c:1344,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:1345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - server
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1348
    functionName: CFNetMulti
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - JustConnect
    - ParseHostPort
    - printf
    - xstrdup
    - free
    - difftime
    - time
    linkageType: ''
    returnType: int
    signature: int CFNetMulti(const char *server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-net/cf-net.c:1353,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:1355,1
    - Dst: CFNetConnectSingle
      Src: /src/core/cf-net/cf-net.c:1360,1
    - Dst: time
      Src: /src/core/cf-net/cf-net.c:1364,1
    - Dst: difftime
      Src: /src/core/cf-net/cf-net.c:1366,1
    - Dst: printf
      Src: /src/core/cf-net/cf-net.c:1367,1
    - Dst: CFNetMulti
      Src: /src/core/cf-net/cf-net.c:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - server
    - use_protocol_version
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1350
    functionDepth: 10
    functionLinenumber: 1350
    functionLinenumberEnd: 1371
    functionName: CFNetMultiTLS
    functionSourceFile: /src/core/cf-net/cf-net.c
    functionUses: 1
    functionsReached:
    - CFNetConnectSingle
    - printf
    - CFNetMulti
    - difftime
    - time
    linkageType: ''
    returnType: int
    signature: int CFNetMultiTLS(const char *server, const char *use_protocol_version)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CheckOpts
      Src: /src/core/cf-watchd/cf-watchd.c:83,1
    - Dst: EvalContextNew
      Src: /src/core/cf-watchd/cf-watchd.c:84,1
    - Dst: GenericAgentConfigApply
      Src: /src/core/cf-watchd/cf-watchd.c:85,1
    - Dst: ReadPID
      Src: /src/core/cf-watchd/cf-watchd.c:88,1
    - Dst: kill
      Src: /src/core/cf-watchd/cf-watchd.c:89,1
    - Dst: Log
      Src: /src/core/cf-watchd/cf-watchd.c:91,1
    - Dst: Log
      Src: /src/core/cf-watchd/cf-watchd.c:100,1
    - Dst: fork
      Src: /src/core/cf-watchd/cf-watchd.c:105,1
    - Dst: Log
      Src: /src/core/cf-watchd/cf-watchd.c:107,1
    - Dst: _exit
      Src: /src/core/cf-watchd/cf-watchd.c:108,1
    - Dst: ActAsDaemon
      Src: /src/core/cf-watchd/cf-watchd.c:113,1
    - Dst: umask
      Src: /src/core/cf-watchd/cf-watchd.c:119,1
    - Dst: WritePID
      Src: /src/core/cf-watchd/cf-watchd.c:120,1
    - Dst: signal
      Src: /src/core/cf-watchd/cf-watchd.c:122,1
    - Dst: signal
      Src: /src/core/cf-watchd/cf-watchd.c:123,1
    - Dst: signal
      Src: /src/core/cf-watchd/cf-watchd.c:124,1
    - Dst: signal
      Src: /src/core/cf-watchd/cf-watchd.c:125,1
    - Dst: signal
      Src: /src/core/cf-watchd/cf-watchd.c:126,1
    - Dst: signal
      Src: /src/core/cf-watchd/cf-watchd.c:127,1
    - Dst: signal
      Src: /src/core/cf-watchd/cf-watchd.c:128,1
    - Dst: WatchStart
      Src: /src/core/cf-watchd/cf-watchd.c:130,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-watchd/cf-watchd.c:132,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-watchd/cf-watchd.c:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 136
    functionName: main
    functionSourceFile: /src/core/cf-watchd/cf-watchd.c
    functionUses: 2
    functionsReached:
    - kill
    - fork
    - WatchStart
    - ActAsDaemon
    - GenericAgentConfigApply
    - CheckOpts
    - WritePID
    - CallCleanupFunctions
    - GenericAgentFinalize
    - umask
    - EvalContextNew
    - ReadPID
    - Log
    - signal
    - _exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/cf-watchd/cf-watchd.c:142,1
    - Dst: GetTTYInteractive
      Src: /src/core/cf-watchd/cf-watchd.c:142,1
    - Dst: getopt_long
      Src: /src/core/cf-watchd/cf-watchd.c:145,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-watchd/cf-watchd.c:151,1
    - Dst: GetInputDir
      Src: /src/core/cf-watchd/cf-watchd.c:151,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-watchd/cf-watchd.c:156,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-watchd/cf-watchd.c:165,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-watchd/cf-watchd.c:169,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-watchd/cf-watchd.c:174,1
    - Dst: FileWriter
      Src: /src/core/cf-watchd/cf-watchd.c:183,1
    - Dst: GenericAgentWriteVersion
      Src: /src/core/cf-watchd/cf-watchd.c:184,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-watchd/cf-watchd.c:185,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-watchd/cf-watchd.c:187,1
    - Dst: FileWriter
      Src: /src/core/cf-watchd/cf-watchd.c:191,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-watchd/cf-watchd.c:192,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-watchd/cf-watchd.c:193,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-watchd/cf-watchd.c:195,1
    - Dst: FileWriter
      Src: /src/core/cf-watchd/cf-watchd.c:199,1
    - Dst: ManPageWrite
      Src: /src/core/cf-watchd/cf-watchd.c:200,1
    - Dst: time
      Src: /src/core/cf-watchd/cf-watchd.c:200,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-watchd/cf-watchd.c:206,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-watchd/cf-watchd.c:207,1
    - Dst: GenericAgentConfigParseColor
      Src: /src/core/cf-watchd/cf-watchd.c:211,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-watchd/cf-watchd.c:213,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/cf-watchd/cf-watchd.c:218,1
    - Dst: StringEqual
      Src: /src/core/cf-watchd/cf-watchd.c:225,1
    - Dst: FileWriter
      Src: /src/core/cf-watchd/cf-watchd.c:234,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-watchd/cf-watchd.c:235,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-watchd/cf-watchd.c:236,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-watchd/cf-watchd.c:238,1
    - Dst: GenericAgentConfigParseArguments
      Src: /src/core/cf-watchd/cf-watchd.c:242,1
    - Dst: Log
      Src: /src/core/cf-watchd/cf-watchd.c:244,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-watchd/cf-watchd.c:245,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 138
    functionDepth: 8
    functionLinenumber: 138
    functionLinenumberEnd: 249
    functionName: CheckOpts
    functionSourceFile: /src/core/cf-watchd/cf-watchd.c
    functionUses: 6
    functionsReached:
    - GenericAgentConfigParseColor
    - Log
    - GetInputDir
    - FileWriterDetach
    - StringEqual
    - time
    - FileWriter
    - GenericAgentConfigSetInputFile
    - WriterWriteHelp
    - ManPageWrite
    - GenericAgentConfigNewDefault
    - GenericAgentWriteVersion
    - LogSetGlobalLevel
    - GetTTYInteractive
    - GenericAgentConfigParseArguments
    - getopt_long
    - DoCleanupAndExit
    - LoggingEnableTimestamps
    - LogSetGlobalLevelArgOrExit
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *CheckOpts(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsPendingTermination
      Src: /src/core/cf-watchd/cf-watchd.c:253,1
    - Dst: Log
      Src: /src/core/cf-watchd/cf-watchd.c:256,1
    - Dst: sleep
      Src: /src/core/cf-watchd/cf-watchd.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 8
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: WatchStart
    functionSourceFile: /src/core/cf-watchd/cf-watchd.c
    functionUses: 1
    functionsReached:
    - IsPendingTermination
    - sleep
    - Log
    linkageType: ''
    returnType: void
    signature: void WatchStart()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/core/libpromises/dbm_quick.c:67,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:71,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_quick.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: Lock
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 41
    functionsReached:
    - pthread_mutex_lock
    - Log
    - GetErrorStr
    linkageType: ''
    returnType: bool
    signature: bool Lock(DBPriv *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/core/libpromises/dbm_quick.c:79,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:83,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_quick.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 8
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: Unlock
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 42
    functionsReached:
    - GetErrorStr
    - pthread_mutex_unlock
    - Log
    linkageType: ''
    returnType: void
    signature: void Unlock(DBPriv *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/core/libpromises/dbm_quick.c:89,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:93,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_quick.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 8
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: LockCursor
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - Log
    - GetErrorStr
    linkageType: ''
    returnType: bool
    signature: bool LockCursor(DBPriv *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/core/libpromises/dbm_quick.c:101,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:105,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_quick.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 8
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: UnlockCursor
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - pthread_mutex_unlock
    - Log
    linkageType: ''
    returnType: void
    signature: void UnlockCursor(DBPriv *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: DBPrivGetFileExtension
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *DBPrivGetFileExtension(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_txn
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: DBPrivSetMaximumConcurrentTransactions
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBPrivSetMaximumConcurrentTransactions(ARG_UNUSED int max_txn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_quick.c:120,1
    - Dst: pthread_mutex_init
      Src: /src/core/libpromises/dbm_quick.c:122,1
    - Dst: pthread_mutex_init
      Src: /src/core/libpromises/dbm_quick.c:123,1
    - Dst: dpopen
      Src: /src/core/libpromises/dbm_quick.c:125,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:129,1
    - Dst: dprepair
      Src: /src/core/libpromises/dbm_quick.c:131,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:133,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:137,1
    - Dst: dpopen
      Src: /src/core/libpromises/dbm_quick.c:141,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:146,1
    - Dst: dperrmsg
      Src: /src/core/libpromises/dbm_quick.c:147,1
    - Dst: pthread_mutex_destroy
      Src: /src/core/libpromises/dbm_quick.c:148,1
    - Dst: pthread_mutex_destroy
      Src: /src/core/libpromises/dbm_quick.c:149,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - filename
    - dbid
    argTypes:
    - char*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 118
    functionDepth: 8
    functionLinenumber: 118
    functionLinenumberEnd: 155
    functionName: DBPrivOpenDB
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - dpopen
    - dperrmsg
    - pthread_mutex_init
    - pthread_mutex_destroy
    - Log
    - free
    - dprepair
    linkageType: ''
    returnType: DBPriv
    signature: DBPriv *DBPrivOpenDB(const char *filename, ARG_UNUSED dbid id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/core/libpromises/dbm_quick.c:161,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:164,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_quick.c:164,1
    - Dst: pthread_mutex_destroy
      Src: /src/core/libpromises/dbm_quick.c:167,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:170,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_quick.c:170,1
    - Dst: dpclose
      Src: /src/core/libpromises/dbm_quick.c:173,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:175,1
    - Dst: dperrmsg
      Src: /src/core/libpromises/dbm_quick.c:175,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 8
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: DBPrivCloseDB
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - dperrmsg
    - pthread_mutex_destroy
    - Log
    - dpclose
    - free
    linkageType: ''
    returnType: void
    signature: void DBPrivCloseDB(DBPriv *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - db
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: DBPrivCommit
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBPrivCommit(ARG_UNUSED DBPriv *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:187,1
    - Dst: dpiterinit
      Src: /src/core/libpromises/dbm_quick.c:192,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:194,1
    - Dst: dperrmsg
      Src: /src/core/libpromises/dbm_quick.c:194,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:195,1
    - Dst: dpiternext
      Src: /src/core/libpromises/dbm_quick.c:200,1
    - Dst: dpout
      Src: /src/core/libpromises/dbm_quick.c:202,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 185
    functionDepth: 9
    functionLinenumber: 185
    functionLinenumberEnd: 207
    functionName: DBPrivClean
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - dpiternext
    - Lock
    - Unlock
    - dperrmsg
    - dpout
    - Log
    - dpiterinit
    linkageType: ''
    returnType: bool
    signature: bool DBPrivClean(DBPriv *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db_path
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 8
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: DBPrivGetDBUsagePercentage
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: int DBPrivGetDBUsagePercentage(ARG_UNUSED const char *db_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:217,1
    - Dst: dpgetwb
      Src: /src/core/libpromises/dbm_quick.c:222,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:226,1
    - Dst: dperrmsg
      Src: /src/core/libpromises/dbm_quick.c:227,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:229,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - db
    - key
    - key_size
    - dest
    - dest_size
    argTypes:
    - DBPriv*
    - void*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 215
    functionDepth: 9
    functionLinenumber: 215
    functionLinenumberEnd: 235
    functionName: DBPrivRead
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - Lock
    - Unlock
    - dperrmsg
    - Log
    - dpgetwb
    linkageType: ''
    returnType: bool
    signature: bool DBPrivRead(DBPriv *db, const void *key, int key_size, void *dest,
      size_t dest_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:239,1
    - Dst: dpput
      Src: /src/core/libpromises/dbm_quick.c:244,1
    - Dst: dpname
      Src: /src/core/libpromises/dbm_quick.c:246,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:247,1
    - Dst: dperrmsg
      Src: /src/core/libpromises/dbm_quick.c:248,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:249,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:250,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - db
    - key
    - key_size
    - value
    - value_size
    argTypes:
    - DBPriv*
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 237
    functionDepth: 9
    functionLinenumber: 237
    functionLinenumberEnd: 256
    functionName: DBPrivWrite
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - dpname
    - Lock
    - Unlock
    - dperrmsg
    - Log
    - free
    - dpput
    linkageType: ''
    returnType: bool
    signature: bool DBPrivWrite(DBPriv *db, const void *key, int key_size, const void
      *value, int value_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:261,1
    - Dst: dpvsiz
      Src: /src/core/libpromises/dbm_quick.c:266,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_quick.c:272,1
    - Dst: xmalloc
      Src: /src/core/libpromises/dbm_quick.c:273,1
    - Dst: dpgetwb
      Src: /src/core/libpromises/dbm_quick.c:275,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:277,1
    - Dst: dperrmsg
      Src: /src/core/libpromises/dbm_quick.c:278,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:280,1
    - Dst: Condition
      Src: /src/core/libpromises/dbm_quick.c:284,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:286,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:287,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:290,1
    - Dst: dpput
      Src: /src/core/libpromises/dbm_quick.c:292,1
    - Dst: dpname
      Src: /src/core/libpromises/dbm_quick.c:294,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:295,1
    - Dst: dperrmsg
      Src: /src/core/libpromises/dbm_quick.c:296,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:297,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:298,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 7
    argNames:
    - db
    - key
    - key_size
    - value
    - value_size
    - Condition
    - data
    argTypes:
    - DBPriv*
    - char*
    - int
    - void*
    - size_t
    - OverwriteCondition
    - void*
    assertStmts:
    - condition: (cur_val_size > 0)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/core/libpromises/dbm_quick.c
    constantsTouched: []
    func_position:
      end: 303
      start: 258
    functionDepth: 9
    functionLinenumber: 258
    functionLinenumberEnd: 303
    functionName: DBPrivOverwrite
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - dpname
    - Lock
    - Unlock
    - dpvsiz
    - assert
    - dperrmsg
    - xmalloc
    - Log
    - free
    - dpgetwb
    - dpput
    - Condition
    linkageType: ''
    returnType: bool
    signature: "bool DBPrivOverwrite(DBPriv *db, const char *key, int key_size, const
      void *value, size_t value_size,\n                     OverwriteCondition Condition,
      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:307,1
    - Dst: dpvsiz
      Src: /src/core/libpromises/dbm_quick.c:312,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - db
    - key
    - key_size
    argTypes:
    - DBPriv*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 9
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: DBPrivHasKey
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - dpvsiz
    - Lock
    - Unlock
    linkageType: ''
    returnType: bool
    signature: bool DBPrivHasKey(DBPriv *db, const void *key, int key_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:320,1
    - Dst: dpvsiz
      Src: /src/core/libpromises/dbm_quick.c:325,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - db
    - key
    - key_size
    argTypes:
    - DBPriv*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 318
    functionDepth: 9
    functionLinenumber: 318
    functionLinenumberEnd: 329
    functionName: DBPrivGetValueSize
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - dpvsiz
    - Lock
    - Unlock
    linkageType: ''
    returnType: int
    signature: int DBPrivGetValueSize(DBPriv *db, const void *key, int key_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:333,1
    - Dst: dpout
      Src: /src/core/libpromises/dbm_quick.c:339,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:341,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - db
    - key
    - key_size
    argTypes:
    - DBPriv*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 331
    functionDepth: 9
    functionLinenumber: 331
    functionLinenumberEnd: 347
    functionName: DBPrivDelete
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - dpout
    - Lock
    - Unlock
    linkageType: ''
    returnType: bool
    signature: bool DBPrivDelete(DBPriv *db, const void *key, int key_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LockCursor
      Src: /src/core/libpromises/dbm_quick.c:351,1
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:356,1
    - Dst: UnlockCursor
      Src: /src/core/libpromises/dbm_quick.c:358,1
    - Dst: dpiterinit
      Src: /src/core/libpromises/dbm_quick.c:362,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_quick.c:364,1
    - Dst: dperrmsg
      Src: /src/core/libpromises/dbm_quick.c:364,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:365,1
    - Dst: UnlockCursor
      Src: /src/core/libpromises/dbm_quick.c:366,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_quick.c:370,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 349
    functionDepth: 9
    functionLinenumber: 349
    functionLinenumberEnd: 377
    functionName: DBPrivOpenCursor
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - LockCursor
    - Lock
    - Unlock
    - dperrmsg
    - UnlockCursor
    - Log
    - dpiterinit
    linkageType: ''
    returnType: DBCursorPriv
    signature: DBCursorPriv *DBPrivOpenCursor(DBPriv *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:381,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:386,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:387,1
    - Dst: dpiternext
      Src: /src/core/libpromises/dbm_quick.c:392,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:397,1
    - Dst: dpget
      Src: /src/core/libpromises/dbm_quick.c:401,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - cursor
    - key
    - ksize
    - value
    - vsize
    argTypes:
    - DBCursorPriv*
    - void**
    - int*
    - void**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 379
    functionDepth: 9
    functionLinenumber: 379
    functionLinenumberEnd: 410
    functionName: DBPrivAdvanceCursor
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - dpiternext
    - Lock
    - Unlock
    - dpget
    - free
    linkageType: ''
    returnType: bool
    signature: bool DBPrivAdvanceCursor(DBCursorPriv *cursor, void **key, int *ksize,
      void **value, int *vsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivDelete
      Src: /src/core/libpromises/dbm_quick.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - DBCursorPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: DBPrivDeleteCursorEntry
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - DBPrivDelete
    linkageType: ''
    returnType: bool
    signature: bool DBPrivDeleteCursorEntry(DBCursorPriv *cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivWrite
      Src: /src/core/libpromises/dbm_quick.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cursor
    - value
    - value_size
    argTypes:
    - DBCursorPriv*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: DBPrivWriteCursorEntry
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - DBPrivWrite
    linkageType: ''
    returnType: bool
    signature: bool DBPrivWriteCursorEntry(DBCursorPriv *cursor, const void *value,
      int value_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/core/libpromises/dbm_quick.c:427,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:429,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:430,1
    - Dst: free
      Src: /src/core/libpromises/dbm_quick.c:431,1
    - Dst: Unlock
      Src: /src/core/libpromises/dbm_quick.c:433,1
    - Dst: UnlockCursor
      Src: /src/core/libpromises/dbm_quick.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - DBCursorPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 422
    functionDepth: 9
    functionLinenumber: 422
    functionLinenumberEnd: 436
    functionName: DBPrivCloseCursor
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - free
    - UnlockCursor
    - Lock
    - Unlock
    linkageType: ''
    returnType: void
    signature: void DBPrivCloseCursor(DBCursorPriv *cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_quick.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: DBPrivDiagnose
    functionSourceFile: /src/core/libpromises/dbm_quick.c
    functionUses: 0
    functionsReached:
    - StringFormat
    linkageType: ''
    returnType: char
    signature: char *DBPrivDiagnose(const char *dbpath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ParseExpression
      Src: /src/core/libpromises/logic_expressions.c:40,1
    - Dst: FreeExpression
      Src: /src/core/libpromises/logic_expressions.c:52,1
    - Dst: ParseStringExpression
      Src: /src/core/libpromises/logic_expressions.c:63,1
    - Dst: xcalloc
      Src: /src/core/libpromises/logic_expressions.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - expr
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 79
    functionName: ParsePrimary
    functionSourceFile: /src/core/libpromises/logic_expressions.c
    functionUses: 0
    functionsReached:
    - ParseStringExpression
    - xcalloc
    - FreeExpression
    - ParseExpression
    linkageType: ''
    returnType: ParseResult
    signature: ParseResult ParsePrimary(const char *expr, int start, int end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ParsePrimary
      Src: /src/core/libpromises/logic_expressions.c:87,1
    - Dst: xcalloc
      Src: /src/core/libpromises/logic_expressions.c:91,1
    - Dst: ParsePrimary
      Src: /src/core/libpromises/logic_expressions.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - expr
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 107
    functionName: ParseNotExpression
    functionSourceFile: /src/core/libpromises/logic_expressions.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - ParsePrimary
    linkageType: ''
    returnType: ParseResult
    signature: ParseResult ParseNotExpression(const char *expr, int start, int end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ParseNotExpression
      Src: /src/core/libpromises/logic_expressions.c:116,1
    - Dst: ParseAndExpression
      Src: /src/core/libpromises/logic_expressions.c:128,1
    - Dst: FreeExpression
      Src: /src/core/libpromises/logic_expressions.c:132,1
    - Dst: xcalloc
      Src: /src/core/libpromises/logic_expressions.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - expr
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 142
    functionName: ParseAndExpression
    functionSourceFile: /src/core/libpromises/logic_expressions.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - ParseNotExpression
    - FreeExpression
    - ParseAndExpression
    linkageType: ''
    returnType: ParseResult
    signature: ParseResult ParseAndExpression(const char *expr, int start, int end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ParseAndExpression
      Src: /src/core/libpromises/logic_expressions.c:152,1
    - Dst: ParseExpression
      Src: /src/core/libpromises/logic_expressions.c:174,1
    - Dst: FreeExpression
      Src: /src/core/libpromises/logic_expressions.c:178,1
    - Dst: xcalloc
      Src: /src/core/libpromises/logic_expressions.c:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - expr
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 188
    functionName: ParseExpression
    functionSourceFile: /src/core/libpromises/logic_expressions.c
    functionUses: 2
    functionsReached:
    - FreeExpression
    - xcalloc
    - ParseExpression
    - ParseAndExpression
    linkageType: ''
    returnType: ParseResult
    signature: ParseResult ParseExpression(const char *expr, int start, int end)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EvalExpression
      Src: /src/core/libpromises/logic_expressions.c:202,1
    - Dst: EvalExpression
      Src: /src/core/libpromises/logic_expressions.c:208,1
    - Dst: EvalExpression
      Src: /src/core/libpromises/logic_expressions.c:227,1
    - Dst: EvalStringExpression
      Src: /src/core/libpromises/logic_expressions.c:245,1
    - Dst: strcmp
      Src: /src/core/libpromises/logic_expressions.c:253,1
    - Dst: strcmp
      Src: /src/core/libpromises/logic_expressions.c:257,1
    - Dst: free
      Src: /src/core/libpromises/logic_expressions.c:266,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/logic_expressions.c:271,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 4
    argNames:
    - expr
    - nameevalfn
    - varrefevalfn
    - param
    argTypes:
    - Expression*
    - NameEvaluator
    - VarRefEvaluator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 273
    functionName: EvalExpression
    functionSourceFile: /src/core/libpromises/logic_expressions.c
    functionUses: 1
    functionsReached:
    - EvalStringExpression
    - EvalExpression
    - strcmp
    - ProgrammingError
    - free
    linkageType: ''
    returnType: ExpressionValue
    signature: "ExpressionValue EvalExpression(const Expression *expr,\n                               NameEvaluator
      nameevalfn, VarRefEvaluator varrefevalfn, void *param)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FreeExpression
      Src: /src/core/libpromises/logic_expressions.c:288,1
    - Dst: FreeExpression
      Src: /src/core/libpromises/logic_expressions.c:289,1
    - Dst: FreeExpression
      Src: /src/core/libpromises/logic_expressions.c:292,1
    - Dst: FreeStringExpression
      Src: /src/core/libpromises/logic_expressions.c:295,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/logic_expressions.c:298,1
    - Dst: free
      Src: /src/core/libpromises/logic_expressions.c:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - e
    argTypes:
    - Expression*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 301
    functionName: FreeExpression
    functionSourceFile: /src/core/libpromises/logic_expressions.c
    functionUses: 4
    functionsReached:
    - FreeStringExpression
    - free
    - FreeExpression
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void FreeExpression(Expression *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/keyring.c:36,1
    - Dst: strchr
      Src: /src/core/libpromises/keyring.c:43,1
    - Dst: strchr
      Src: /src/core/libpromises/keyring.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: HostKeyAddressUnknown
    functionSourceFile: /src/core/libpromises/keyring.c
    functionUses: 0
    functionsReached:
    - strchr
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool HostKeyAddressUnknown(const char *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/keyring.c:61,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/keyring.c:61,1
    - Dst: MapName
      Src: /src/core/libpromises/keyring.c:63,1
    - Dst: DirOpen
      Src: /src/core/libpromises/keyring.c:65,1
    - Dst: Log
      Src: /src/core/libpromises/keyring.c:73,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/keyring.c:73,1
    - Dst: snprintf
      Src: /src/core/libpromises/keyring.c:78,1
    - Dst: DirRead
      Src: /src/core/libpromises/keyring.c:80,1
    - Dst: strstr
      Src: /src/core/libpromises/keyring.c:82,1
    - Dst: strlen
      Src: /src/core/libpromises/keyring.c:84,1
    - Dst: snprintf
      Src: /src/core/libpromises/keyring.c:89,1
    - Dst: MapName
      Src: /src/core/libpromises/keyring.c:90,1
    - Dst: unlink
      Src: /src/core/libpromises/keyring.c:92,1
    - Dst: Log
      Src: /src/core/libpromises/keyring.c:96,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/keyring.c:96,1
    - Dst: DirClose
      Src: /src/core/libpromises/keyring.c:97,1
    - Dst: Log
      Src: /src/core/libpromises/keyring.c:110,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/keyring.c:110,1
    - Dst: DirClose
      Src: /src/core/libpromises/keyring.c:111,1
    - Dst: DirClose
      Src: /src/core/libpromises/keyring.c:115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 53
    functionDepth: 8
    functionLinenumber: 53
    functionLinenumberEnd: 117
    functionName: RemovePublicKey
    functionSourceFile: /src/core/libpromises/keyring.c
    functionUses: 3
    functionsReached:
    - GetErrorStr
    - snprintf
    - unlink
    - strlen
    - MapName
    - strstr
    - DirRead
    - DirOpen
    - Log
    - DirClose
    - GetWorkDir
    linkageType: ''
    returnType: int
    signature: int RemovePublicKey(const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/core/libpromises/instrumentation.c:47,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:49,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/instrumentation.c:49,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 8
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: BeginMeasure
    functionSourceFile: /src/core/libpromises/instrumentation.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - Log
    - clock_gettime
    linkageType: ''
    returnType: struct timespec
    signature: struct timespec BeginMeasure()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:67,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:68,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:69,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/instrumentation.c:72,1
    - Dst: snprintf
      Src: /src/core/libpromises/instrumentation.c:76,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/instrumentation.c:76,1
    - Dst: Chop
      Src: /src/core/libpromises/instrumentation.c:77,1
    - Dst: EndMeasure
      Src: /src/core/libpromises/instrumentation.c:78,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:84,1
    - Dst: EndMeasure
      Src: /src/core/libpromises/instrumentation.c:86,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - start
    - pp
    argTypes:
    - struct timespec
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 61
    functionDepth: 8
    functionLinenumber: 61
    functionLinenumberEnd: 93
    functionName: EndMeasurePromise
    functionSourceFile: /src/core/libpromises/instrumentation.c
    functionUses: 0
    functionsReached:
    - snprintf
    - PromiseGetPromiseType
    - Log
    - PromiseGetConstraintAsRval
    - Chop
    - EndMeasure
    linkageType: ''
    returnType: void
    signature: void EndMeasurePromise(struct timespec start, const Promise *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/core/libpromises/instrumentation.c:101,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:103,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/instrumentation.c:103,1
    - Dst: NotePerformance
      Src: /src/core/libpromises/instrumentation.c:111,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - eventname
    - start
    argTypes:
    - char*
    - struct timespec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 97
    functionDepth: 8
    functionLinenumber: 97
    functionLinenumberEnd: 118
    functionName: EndMeasure
    functionSourceFile: /src/core/libpromises/instrumentation.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - Log
    - clock_gettime
    - NotePerformance
    linkageType: ''
    returnType: void
    signature: void EndMeasure(char *eventname, struct timespec start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/core/libpromises/instrumentation.c:126,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:128,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/instrumentation.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - start
    argTypes:
    - struct timespec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 8
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: EndMeasureValueMs
    functionSourceFile: /src/core/libpromises/instrumentation.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - Log
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: int EndMeasureValueMs(struct timespec start)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/libpromises/instrumentation.c:148,1
    - Dst: OpenDB
      Src: /src/core/libpromises/instrumentation.c:150,1
    - Dst: ReadDB
      Src: /src/core/libpromises/instrumentation.c:155,1
    - Dst: QAverage
      Src: /src/core/libpromises/instrumentation.c:160,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:181,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/instrumentation.c:182,1
    - Dst: WriteDB
      Src: /src/core/libpromises/instrumentation.c:186,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:190,1
    - Dst: ctime
      Src: /src/core/libpromises/instrumentation.c:190,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:191,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:192,1
    - Dst: Log
      Src: /src/core/libpromises/instrumentation.c:193,1
    - Dst: sqrt
      Src: /src/core/libpromises/instrumentation.c:193,1
    - Dst: CloseDB
      Src: /src/core/libpromises/instrumentation.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - eventname
    - t
    - value
    argTypes:
    - char*
    - time_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 142
    functionDepth: 8
    functionLinenumber: 142
    functionLinenumberEnd: 198
    functionName: NotePerformance
    functionSourceFile: /src/core/libpromises/instrumentation.c
    functionUses: 1
    functionsReached:
    - ctime
    - DeleteDB
    - sqrt
    - QAverage
    - OpenDB
    - ReadDB
    - Log
    - CloseDB
    - WriteDB
    - time
    linkageType: ''
    returnType: void
    signature: void NotePerformance(char *eventname, time_t t, double value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/variable.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - ref
    - rval
    - type
    - tags
    - comment
    - promise
    argTypes:
    - VarRef*
    - Rval
    - DataType
    - StringSet*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: VariableNew
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: Variable
    signature: "Variable *VariableNew(VarRef *ref, Rval rval, DataType type,\n                             StringSet
      *tags, char *comment,\n                             const Promise *promise)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RvalDestroy
      Src: /src/core/libpromises/variable.c:66,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/variable.c:67,1
    - Dst: free
      Src: /src/core/libpromises/variable.c:68,1
    - Dst: free
      Src: /src/core/libpromises/variable.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - var
    argTypes:
    - Variable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: VariableDestroy
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - free
    - StringSetDestroy
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void VariableDestroy(Variable *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VariableDestroy
      Src: /src/core/libpromises/variable.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - var
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: VariableDestroy_untyped
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - VariableDestroy
    linkageType: ''
    returnType: void
    signature: void VariableDestroy_untyped(void *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - var
    argTypes:
    - Variable*
    assertStmts:
    - condition: (var != NULL)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: VariableGetRef
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: VarRef
    signature: VarRef *VariableGetRef(const Variable *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - var
    argTypes:
    - Variable*
    assertStmts:
    - condition: (var != NULL)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: VariableGetType
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: DataType
    signature: DataType VariableGetType(const Variable *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - var
    argTypes:
    - Variable*
    assertStmts:
    - condition: (var != NULL)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: VariableGetRvalType
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: RvalType
    signature: RvalType VariableGetRvalType(const Variable *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - var
    argTypes:
    - Variable*
    assertStmts:
    - condition: (var != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: VariableGetTags
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: StringSet
    signature: StringSet *VariableGetTags(const Variable *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - var
    argTypes:
    - Variable*
    assertStmts:
    - condition: (var != NULL)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: VariableGetComment
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *VariableGetComment(const Variable *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - var
    argTypes:
    - Variable*
    assertStmts:
    - condition: (var != NULL)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: VariableGetPromise
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Promise
    signature: Promise *VariableGetPromise(const Variable *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:118,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/variable.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - var
    argTypes:
    - Variable*
    assertStmts:
    - condition: (var != NULL)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: VariableIsSecret
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - StringSetContains
    - assert
    linkageType: ''
    returnType: bool
    signature: bool VariableIsSecret(const Variable *var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:124,1
    - Dst: VariableIsSecret
      Src: /src/core/libpromises/variable.c:125,1
    - Dst: RvalNewSecret
      Src: /src/core/libpromises/variable.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - var
    - get_secret
    argTypes:
    - Variable*
    - bool
    assertStmts:
    - condition: (var != NULL)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: VariableGetRval
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - assert
    - RvalNewSecret
    - VariableIsSecret
    linkageType: ''
    returnType: Rval
    signature: Rval VariableGetRval(const Variable *var, bool get_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:134,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/variable.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - var
    - new_rval
    argTypes:
    - Variable*
    - Rval
    assertStmts:
    - condition: (var != NULL)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: VariableSetRval
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 0
    functionsReached:
    - assert
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void VariableSetRval(Variable *var, Rval new_rval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/variable.c:165,1
    - Dst: VarMapNew
      Src: /src/core/libpromises/variable.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: VariableTableNew
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - VarMapNew
    linkageType: ''
    returnType: VariableTable
    signature: VariableTable *VariableTableNew(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VarMapDestroy
      Src: /src/core/libpromises/variable.c:176,1
    - Dst: free
      Src: /src/core/libpromises/variable.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - table
    argTypes:
    - VariableTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: VariableTableDestroy
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 10
    functionsReached:
    - VarMapDestroy
    - free
    linkageType: ''
    returnType: void
    signature: void VariableTableDestroy(VariableTable *table)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VarMapGet
      Src: /src/core/libpromises/variable.c:184,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/variable.c:186,1
    - Dst: CF_ASSERT
      Src: /src/core/libpromises/variable.c:190,1
    - Dst: DataTypeIsIterable
      Src: /src/core/libpromises/variable.c:190,1
    - Dst: LogModuleEnabled
      Src: /src/core/libpromises/variable.c:196,1
    - Dst: BufferNew
      Src: /src/core/libpromises/variable.c:198,1
    - Dst: BufferPrintf
      Src: /src/core/libpromises/variable.c:199,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/variable.c:200,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/variable.c:204,1
    - Dst: DataTypeIsIterable
      Src: /src/core/libpromises/variable.c:205,1
    - Dst: xstrdup
      Src: /src/core/libpromises/variable.c:208,1
    - Dst: RvalToString
      Src: /src/core/libpromises/variable.c:212,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/variable.c:215,1
    - Dst: free
      Src: /src/core/libpromises/variable.c:216,1
    - Dst: LogDebug
      Src: /src/core/libpromises/variable.c:219,1
    - Dst: BufferGet
      Src: /src/core/libpromises/variable.c:219,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/variable.c:221,1
    - Dst: free
      Src: /src/core/libpromises/variable.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - table
    - ref
    argTypes:
    - VariableTable*
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 182
    functionDepth: 8
    functionLinenumber: 182
    functionLinenumberEnd: 226
    functionName: VariableTableGet
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 3
    functionsReached:
    - VarRefToString
    - BufferDestroy
    - DataTypeToString
    - LogDebug
    - BufferPrintf
    - DataTypeIsIterable
    - RvalToString
    - CF_ASSERT
    - xstrdup
    - BufferNew
    - LogModuleEnabled
    - free
    - BufferGet
    - BufferAppendString
    - VarMapGet
    linkageType: ''
    returnType: Variable
    signature: Variable *VariableTableGet(const VariableTable *table, const VarRef
      *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarMapRemove
      Src: /src/core/libpromises/variable.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - ref
    argTypes:
    - VariableTable*
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: VariableTableRemove
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 1
    functionsReached:
    - VarMapRemove
    linkageType: ''
    returnType: bool
    signature: bool VariableTableRemove(VariableTable *table, const VarRef *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/variable.c:238,1
    - Dst: VarRefIsQualified
      Src: /src/core/libpromises/variable.c:238,1
    - Dst: LogModuleEnabled
      Src: /src/core/libpromises/variable.c:242,1
    - Dst: RvalToString
      Src: /src/core/libpromises/variable.c:244,1
    - Dst: LogDebug
      Src: /src/core/libpromises/variable.c:245,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/variable.c:246,1
    - Dst: free
      Src: /src/core/libpromises/variable.c:248,1
    - Dst: CF_ASSERT
      Src: /src/core/libpromises/variable.c:251,1
    - Dst: DataTypeIsIterable
      Src: /src/core/libpromises/variable.c:251,1
    - Dst: VariableNew
      Src: /src/core/libpromises/variable.c:255,1
    - Dst: VarRefCopy
      Src: /src/core/libpromises/variable.c:255,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/variable.c:255,1
    - Dst: VarMapInsert
      Src: /src/core/libpromises/variable.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - table
    - ref
    - rval
    - type
    - tags
    - comment
    - promise
    argTypes:
    - VariableTable*
    - VarRef*
    - Rval*
    - DataType
    - StringSet*
    - char*
    - Promise*
    assertStmts:
    - condition: (VarRefIsQualified(ref))
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 258
      start: 233
    functionDepth: 8
    functionLinenumber: 233
    functionLinenumberEnd: 258
    functionName: VariableTablePut
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 3
    functionsReached:
    - VarRefIsQualified
    - DataTypeToString
    - VariableNew
    - assert
    - LogDebug
    - VarMapInsert
    - RvalCopy
    - DataTypeIsIterable
    - RvalToString
    - free
    - CF_ASSERT
    - VarRefCopy
    - LogModuleEnabled
    linkageType: ''
    returnType: bool
    signature: "bool VariableTablePut(VariableTable *table, const VarRef *ref,\n                      const
      Rval *rval, DataType type,\n                      StringSet *tags, char *comment,\n
      \                     const Promise *promise)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VarMapSize
      Src: /src/core/libpromises/variable.c:262,1
    - Dst: VarMapClear
      Src: /src/core/libpromises/variable.c:266,1
    - Dst: xmalloc
      Src: /src/core/libpromises/variable.c:274,1
    - Dst: VariableTableIteratorNew
      Src: /src/core/libpromises/variable.c:278,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/variable.c:280,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/variable.c:282,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/libpromises/variable.c:287,1
    - Dst: free
      Src: /src/core/libpromises/variable.c:292,1
    - Dst: VariableTableRemove
      Src: /src/core/libpromises/variable.c:299,1
    - Dst: free
      Src: /src/core/libpromises/variable.c:305,1
    - Dst: assert
      Src: /src/core/libpromises/variable.c:306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - table
    - ns
    - scope
    - lval
    argTypes:
    - VariableTable*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (removed == remove_count)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/core/libpromises/variable.c
    constantsTouched: []
    func_position:
      end: 308
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 308
    functionName: VariableTableClear
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 1
    functionsReached:
    - assert
    - VariableTableIteratorNew
    - VarMapClear
    - VariableTableRemove
    - VarMapSize
    - xmalloc
    - VariableTableIteratorDestroy
    - VariableTableIteratorNext
    - free
    linkageType: ''
    returnType: bool
    signature: bool VariableTableClear(VariableTable *table, const char *ns, const
      char *scope, const char *lval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VarMapSize
      Src: /src/core/libpromises/variable.c:314,1
    - Dst: VariableTableIteratorNew
      Src: /src/core/libpromises/variable.c:317,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/variable.c:319,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/libpromises/variable.c:323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - table
    - ns
    - scope
    - lval
    argTypes:
    - VariableTable*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: VariableTableCount
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 3
    functionsReached:
    - VariableTableIteratorDestroy
    - VarMapSize
    - VariableTableIteratorNew
    - VariableTableIteratorNext
    linkageType: ''
    returnType: size_t
    signature: size_t VariableTableCount(const VariableTable *table, const char *ns,
      const char *scope, const char *lval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/variable.c:329,1
    - Dst: VarRefCopy
      Src: /src/core/libpromises/variable.c:331,1
    - Dst: MapIteratorInit
      Src: /src/core/libpromises/variable.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - table
    - ref
    argTypes:
    - VariableTable*
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: VariableTableIteratorNewFromVarRef
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 2
    functionsReached:
    - MapIteratorInit
    - xmalloc
    - VarRefCopy
    linkageType: ''
    returnType: VariableTableIterator
    signature: VariableTableIterator *VariableTableIteratorNewFromVarRef(const VariableTable
      *table, const VarRef *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VariableTableIteratorNewFromVarRef
      Src: /src/core/libpromises/variable.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - table
    - ns
    - scope
    - lval
    argTypes:
    - VariableTable*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 345
    functionName: VariableTableIteratorNew
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 2
    functionsReached:
    - VariableTableIteratorNewFromVarRef
    linkageType: ''
    returnType: VariableTableIterator
    signature: VariableTableIterator *VariableTableIteratorNew(const VariableTable
      *table, const char *ns, const char *scope, const char *lval)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MapIteratorNext
      Src: /src/core/libpromises/variable.c:351,1
    - Dst: strcmp
      Src: /src/core/libpromises/variable.c:356,1
    - Dst: strcmp
      Src: /src/core/libpromises/variable.c:361,1
    - Dst: strcmp
      Src: /src/core/libpromises/variable.c:366,1
    - Dst: strcmp
      Src: /src/core/libpromises/variable.c:381,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 28
    argCount: 1
    argNames:
    - iter
    argTypes:
    - VariableTableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 398
    functionName: VariableTableIteratorNext
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 4
    functionsReached:
    - strcmp
    - MapIteratorNext
    linkageType: ''
    returnType: Variable
    signature: Variable *VariableTableIteratorNext(VariableTableIterator *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/variable.c:404,1
    - Dst: free
      Src: /src/core/libpromises/variable.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - iter
    argTypes:
    - VariableTableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: VariableTableIteratorDestroy
    functionSourceFile: /src/core/libpromises/variable.c
    functionUses: 4
    functionsReached:
    - VarRefDestroy
    - free
    linkageType: ''
    returnType: void
    signature: void VariableTableIteratorDestroy(VariableTableIterator *iter)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/core/libpromises/files_names.c:49,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:51,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_names.c:51,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_names.c:56,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:60,1
    - Dst: DirOpen
      Src: /src/core/libpromises/files_names.c:65,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:67,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_names.c:67,1
    - Dst: DirRead
      Src: /src/core/libpromises/files_names.c:72,1
    - Dst: DirRead
      Src: /src/core/libpromises/files_names.c:72,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_names.c:74,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_names.c:74,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_names.c:80,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:85,1
    - Dst: DirClose
      Src: /src/core/libpromises/files_names.c:89,1
    - Dst: lstat
      Src: /src/core/libpromises/files_names.c:93,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:95,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_names.c:95,1
    - Dst: DirClose
      Src: /src/core/libpromises/files_names.c:96,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_names.c:101,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:105,1
    - Dst: DirClose
      Src: /src/core/libpromises/files_names.c:106,1
    - Dst: IsNewerFileTree
      Src: /src/core/libpromises/files_names.c:111,1
    - Dst: DirClose
      Src: /src/core/libpromises/files_names.c:113,1
    - Dst: DirClose
      Src: /src/core/libpromises/files_names.c:121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - dir
    - reftime
    argTypes:
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 41
    functionDepth: 8
    functionLinenumber: 41
    functionLinenumberEnd: 123
    functionName: IsNewerFileTree
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - IsNewerFileTree
    - snprintf
    - DirRead
    - DirOpen
    - S_ISDIR
    - Log
    - lstat
    - strcmp
    - DirClose
    linkageType: ''
    returnType: bool
    signature: bool IsNewerFileTree(const char *dir, time_t reftime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NovaWin_IsDir
      Src: /src/core/libpromises/files_names.c:134,1
    - Dst: stat
      Src: /src/core/libpromises/files_names.c:138,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_names.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: IsDir
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 1
    functionsReached:
    - stat
    - S_ISDIR
    - NovaWin_IsDir
    linkageType: ''
    returnType: bool
    signature: bool IsDir(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/files_names.c:154,1
    - Dst: Chop
      Src: /src/core/libpromises/files_names.c:156,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:158,1
    - Dst: DeleteSlash
      Src: /src/core/libpromises/files_names.c:160,1
    - Dst: strlen
      Src: /src/core/libpromises/files_names.c:162,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:164,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_names.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - path
    - path_size
    - leaf
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 152
    functionDepth: 8
    functionLinenumber: 152
    functionLinenumberEnd: 171
    functionName: JoinSuffix
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - strlcat
    - DeleteSlash
    - strlen
    - Log
    - Chop
    linkageType: ''
    returnType: char
    signature: char *JoinSuffix(char *path, size_t path_size, const char *leaf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/files_names.c:185,1
    - Dst: strnlen
      Src: /src/core/libpromises/files_names.c:186,1
    - Dst: Chop
      Src: /src/core/libpromises/files_names.c:188,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:190,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:196,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:202,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:202,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_names.c:204,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:206,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:206,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_names.c:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - path
    - path_size
    - leaf_path
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 183
    functionDepth: 8
    functionLinenumber: 183
    functionLinenumberEnd: 212
    functionName: JoinPaths
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 1
    functionsReached:
    - strlcat
    - IsFileSep
    - strnlen
    - strlen
    - Log
    - Chop
    linkageType: ''
    returnType: char
    signature: char *JoinPaths(char *path, size_t path_size, const char *leaf_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: IsAbsPath
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 1
    functionsReached:
    - IsFileSep
    linkageType: ''
    returnType: bool
    signature: bool IsAbsPath(const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/files_names.c:240,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_names.c:242,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:273,1
    - Dst: strlen
      Src: /src/core/libpromises/files_names.c:273,1
    - Dst: strcat
      Src: /src/core/libpromises/files_names.c:275,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 277
    functionName: AddSlash
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - strcat
    - strcpy
    - IsFileSep
    - strlen
    linkageType: ''
    returnType: void
    signature: void AddSlash(char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_names.c:286,1
    - Dst: assert
      Src: /src/core/libpromises/files_names.c:287,1
    - Dst: strlen
      Src: /src/core/libpromises/files_names.c:287,1
    - Dst: xstrdup
      Src: /src/core/libpromises/files_names.c:289,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_names.c:291,1
    - Dst: LastFileSeparator
      Src: /src/core/libpromises/files_names.c:296,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:300,1
    - Dst: free
      Src: /src/core/libpromises/files_names.c:301,1
    - Dst: FirstFileSeparator
      Src: /src/core/libpromises/files_names.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts:
    - condition: (path)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/core/libpromises/files_names.c
    - condition: (strlen(path) > 0)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/core/libpromises/files_names.c
    constantsTouched: []
    func_position:
      end: 315
      start: 281
    functionDepth: 8
    functionLinenumber: 281
    functionLinenumberEnd: 315
    functionName: GetParentDirectoryCopy
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 1
    functionsReached:
    - FirstFileSeparator
    - strlen
    - assert
    - Log
    - strcmp
    - xstrdup
    - free
    - LastFileSeparator
    linkageType: ''
    returnType: char
    signature: char *GetParentDirectoryCopy(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/files_names.c:322,1
    - Dst: RootDirLength
      Src: /src/core/libpromises/files_names.c:328,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 334
    functionName: DeleteSlash
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 1
    functionsReached:
    - IsFileSep
    - RootDirLength
    - strlen
    linkageType: ''
    returnType: void
    signature: void DeleteSlash(char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RootDirLength
      Src: /src/core/libpromises/files_names.c:342,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:347,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:354,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:360,1
    - Dst: memmove
      Src: /src/core/libpromises/files_names.c:366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 371
    functionName: DeleteRedundantSlashes
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 1
    functionsReached:
    - memmove
    - IsFileSep
    - RootDirLength
    linkageType: ''
    returnType: void
    signature: void DeleteRedundantSlashes(char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_names.c:377,1
    - Dst: assert
      Src: /src/core/libpromises/files_names.c:378,1
    - Dst: strlen
      Src: /src/core/libpromises/files_names.c:378,1
    - Dst: strncmp
      Src: /src/core/libpromises/files_names.c:380,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/core/libpromises/files_names.c
    - condition: (strlen(str) > 0)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/core/libpromises/files_names.c
    constantsTouched: []
    func_position:
      end: 394
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 394
    functionName: FirstFileSeparator
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 2
    functionsReached:
    - assert
    - strncmp
    - IsFileSep
    - strlen
    linkageType: ''
    returnType: char
    signature: char *FirstFileSeparator(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/files_names.c:406,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 418
    functionName: LastFileSeparator
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 1
    functionsReached:
    - IsFileSep
    - strlen
    linkageType: ''
    returnType: char
    signature: char *LastFileSeparator(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeleteRedundantSlashes
      Src: /src/core/libpromises/files_names.c:433,1
    - Dst: LastFileSeparator
      Src: /src/core/libpromises/files_names.c:436,1
    - Dst: RootDirLength
      Src: /src/core/libpromises/files_names.c:438,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_names.c:453,1
    - Dst: FirstFileSeparator
      Src: /src/core/libpromises/files_names.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 465
    functionName: ChopLastNode
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 2
    functionsReached:
    - FirstFileSeparator
    - RootDirLength
    - IsAbsoluteFileName
    - DeleteRedundantSlashes
    - LastFileSeparator
    linkageType: ''
    returnType: bool
    signature: bool ChopLastNode(char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - s
    - from
    - to
    argTypes:
    - char*
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 478
    functionName: TransformNameInPlace
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TransformNameInPlace(char *s, char from, char to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libpromises/files_names.c:487,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/files_names.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 490
    functionName: CanonifyName
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 6
    functionsReached:
    - CanonifyNameInPlace
    - strlcpy
    linkageType: ''
    returnType: char
    signature: char *CanonifyName(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libpromises/files_names.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - str
    - ch
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 510
    functionName: CanonifyChar
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - strlcpy
    linkageType: ''
    returnType: char
    signature: char *CanonifyChar(const char *str, char ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 535
    functionName: CompareCSVName
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CompareCSVName(const char *s1, const char *s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LastFileSeparator
      Src: /src/core/libpromises/files_names.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 552
    functionName: ReadLastNode
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - LastFileSeparator
    linkageType: ''
    returnType: char
    signature: char *ReadLastNode(const char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/files_names.c:562,1
    - Dst: RootDirLength
      Src: /src/core/libpromises/files_names.c:564,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:568,1
    - Dst: memcpy
      Src: /src/core/libpromises/files_names.c:575,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:579,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:584,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:588,1
    - Dst: strncpy
      Src: /src/core/libpromises/files_names.c:593,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_names.c:598,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_names.c:603,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/files_names.c:605,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:607,1
    - Dst: AddSlash
      Src: /src/core/libpromises/files_names.c:614,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_names.c:616,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:620,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - dest
    - dest_size
    - src
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 556
    functionDepth: 8
    functionLinenumber: 556
    functionLinenumberEnd: 629
    functionName: CompressPath
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlcat
    - IsFileSep
    - RootDirLength
    - strncpy
    - ChopLastNode
    - Log
    - strcmp
    - AddSlash
    - memset
    linkageType: ''
    returnType: bool
    signature: bool CompressPath(char *dest, size_t dest_size, const char *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/files_names.c:644,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_names.c:649,1
    - Dst: CompressPath
      Src: /src/core/libpromises/files_names.c:651,1
    - Dst: xstrdup
      Src: /src/core/libpromises/files_names.c:652,1
    - Dst: getcwd
      Src: /src/core/libpromises/files_names.c:658,1
    - Dst: Log
      Src: /src/core/libpromises/files_names.c:660,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_names.c:662,1
    - Dst: JoinPaths
      Src: /src/core/libpromises/files_names.c:664,1
    - Dst: CompressPath
      Src: /src/core/libpromises/files_names.c:665,1
    - Dst: xstrdup
      Src: /src/core/libpromises/files_names.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 642
    functionDepth: 9
    functionLinenumber: 642
    functionLinenumberEnd: 668
    functionName: GetAbsolutePath
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - CompressPath
    - IsAbsoluteFileName
    - Log
    - getcwd
    - xstrdup
    - JoinPaths
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: char
    signature: char *GetAbsolutePath(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/files_names.c:672,1
    - Dst: GetAbsolutePath
      Src: /src/core/libpromises/files_names.c:676,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/files_names.c:677,1
    - Dst: free
      Src: /src/core/libpromises/files_names.c:679,1
    - Dst: realpath
      Src: /src/core/libpromises/files_names.c:684,1
    - Dst: NOT_NULL_AND_EMPTY
      Src: /src/core/libpromises/files_names.c:685,1
    - Dst: free
      Src: /src/core/libpromises/files_names.c:687,1
    - Dst: xcalloc
      Src: /src/core/libpromises/files_names.c:691,1
    - Dst: realpath
      Src: /src/core/libpromises/files_names.c:692,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/files_names.c:693,1
    - Dst: free
      Src: /src/core/libpromises/files_names.c:695,1
    - Dst: free
      Src: /src/core/libpromises/files_names.c:700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 670
    functionDepth: 10
    functionLinenumber: 670
    functionLinenumberEnd: 702
    functionName: GetRealPath
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - NOT_NULL_AND_EMPTY
    - realpath
    - free
    - GetAbsolutePath
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: char
    signature: char *GetRealPath(const char *const path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_names.c:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - file_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 706
    functionDepth: 3
    functionLinenumber: 706
    functionLinenumberEnd: 720
    functionName: FilePathGetType
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - IsAbsoluteFileName
    linkageType: ''
    returnType: FilePathType
    signature: FilePathType FilePathGetType(const char *file_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringStartsWith
      Src: /src/core/libpromises/files_names.c:724,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/files_names.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 725
    functionName: IsFileOutsideDefaultRepository
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - StringStartsWith
    - GetInputDir
    linkageType: ''
    returnType: bool
    signature: bool IsFileOutsideDefaultRepository(const char *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 737
    functionName: UnixRootDirLength
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - IsFileSep
    linkageType: ''
    returnType: int
    signature: int UnixRootDirLength(const char *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/core/libpromises/files_names.c:773,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_names.c:775,1
    - Dst: UnixRootDirLength
      Src: /src/core/libpromises/files_names.c:783,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 784
    functionName: NTRootDirLength
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - isalpha
    - IsFileSep
    - UnixRootDirLength
    linkageType: ''
    returnType: int
    signature: int NTRootDirLength(const char *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NTRootDirLength
      Src: /src/core/libpromises/files_names.c:791,1
    - Dst: UnixRootDirLength
      Src: /src/core/libpromises/files_names.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 795
    functionName: RootDirLength
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 6
    functionsReached:
    - NTRootDirLength
    - UnixRootDirLength
    linkageType: ''
    returnType: int
    signature: int RootDirLength(const char *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/files_names.c:800,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/files_names.c:800,1
    - Dst: MapName
      Src: /src/core/libpromises/files_names.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 803
    functionName: GetSoftwareCacheFilename
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - MapName
    - GetStateDir
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *GetSoftwareCacheFilename(char *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/files_names.c:808,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/files_names.c:808,1
    - Dst: MapName
      Src: /src/core/libpromises/files_names.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 811
    functionName: GetSoftwarePatchesFilename
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - MapName
    - GetStateDir
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *GetSoftwarePatchesFilename(char *buffer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_names.c:815,1
    - Dst: strchr
      Src: /src/core/libpromises/files_names.c:817,1
    - Dst: strncmp
      Src: /src/core/libpromises/files_names.c:818,1
    - Dst: strncmp
      Src: /src/core/libpromises/files_names.c:819,1
    - Dst: CommandArg0
      Src: /src/core/libpromises/files_names.c:821,1
    - Dst: strspn
      Src: /src/core/libpromises/files_names.c:835,1
    - Dst: strpbrk
      Src: /src/core/libpromises/files_names.c:837,1
    - Dst: CommandArg0
      Src: /src/core/libpromises/files_names.c:852,1
    - Dst: CommandArg0
      Src: /src/core/libpromises/files_names.c:857,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - manager
    argTypes:
    - char*
    assertStmts:
    - condition: (manager)
      pos:
        line_end: 814
        line_start: 814
        source_file: /src/core/libpromises/files_names.c
    constantsTouched: []
    func_position:
      end: 858
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 858
    functionName: RealPackageManager
    functionSourceFile: /src/core/libpromises/files_names.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - strncmp
    - CommandArg0
    - assert
    - strspn
    - strchr
    linkageType: ''
    returnType: char
    signature: char *RealPackageManager(const char *manager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:57,1
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:58,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:66,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - bundle_type
    - promise_type
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (bundle_type != NULL)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/core/libpromises/syntax.c
    - condition: (promise_type != NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: PromiseTypeSyntaxGetStrict
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    linkageType: ''
    returnType: PromiseTypeSyntax
    signature: PromiseTypeSyntax *PromiseTypeSyntaxGetStrict(const char *bundle_type,
      const char *promise_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:79,1
    - Dst: StringEqual
      Src: /src/core/libpromises/syntax.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - promise_type
    argTypes:
    - char*
    assertStmts:
    - condition: (promise_type != NULL)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 94
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 94
    functionName: IsBuiltInPromiseType
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - assert
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool IsBuiltInPromiseType(const char *const promise_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseTypeSyntaxGetStrict
      Src: /src/core/libpromises/syntax.c:98,1
    - Dst: PromiseTypeSyntaxGetStrict
      Src: /src/core/libpromises/syntax.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bundle_type
    - promise_type
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: PromiseTypeSyntaxGet
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 7
    functionsReached:
    - PromiseTypeSyntaxGetStrict
    linkageType: ''
    returnType: PromiseTypeSyntax
    signature: PromiseTypeSyntax *PromiseTypeSyntaxGet(const char *bundle_type, const
      char *promise_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/syntax.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - lval
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: GetCommonConstraint
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - StringEqual
    linkageType: ''
    returnType: ConstraintSyntax
    signature: ConstraintSyntax *GetCommonConstraint(const char *lval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - body_syntax
    - lval
    argTypes:
    - ConstraintSyntax*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 137
    functionName: BodySyntaxGetConstraintSyntax
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 4
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: ConstraintSyntax
    signature: ConstraintSyntax *BodySyntaxGetConstraintSyntax(const ConstraintSyntax
      *body_syntax, const char *lval)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:141,1
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:142,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:146,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:153,1
    - Dst: BodySyntaxGetConstraintSyntax
      Src: /src/core/libpromises/syntax.c:155,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:161,1
    - Dst: BodySyntaxGetConstraintSyntax
      Src: /src/core/libpromises/syntax.c:163,1
    - Dst: GetCommonConstraint
      Src: /src/core/libpromises/syntax.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - promise_type_syntax
    - lval
    argTypes:
    - PromiseTypeSyntax*
    - char*
    assertStmts:
    - condition: (promise_type_syntax != NULL)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/core/libpromises/syntax.c
    - condition: (lval != NULL)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 171
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 171
    functionName: PromiseTypeSyntaxGetConstraintSyntax
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - GetCommonConstraint
    - assert
    - BodySyntaxGetConstraintSyntax
    - strcmp
    linkageType: ''
    returnType: ConstraintSyntax
    signature: ConstraintSyntax *PromiseTypeSyntaxGetConstraintSyntax(const PromiseTypeSyntax
      *promise_type_syntax, const char *lval)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/syntax.c:178,1
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:185,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:196,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:208,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - ParserBlock
    - body_type
    argTypes:
    - ARG_UNUSED
    - char*
    assertStmts:
    - condition: (block == PARSER_BLOCK_BODY)
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 216
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 216
    functionName: BodySyntaxGet
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 4
    functionsReached:
    - assert
    - strcmp
    - StringEqual
    linkageType: ''
    returnType: BodySyntax
    signature: BodySyntax *BodySyntaxGet(ARG_UNUSED ParserBlock block, const char
      *body_type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - status
    argTypes:
    - SyntaxStatus
    assertStmts:
    - condition: "( status == SYNTAX_STATUS_DEPRECATED ||\n            status == SYNTAX_STATUS_NORMAL
        ||\n            status == SYNTAX_STATUS_REMOVED )"
      pos:
        line_end: 221
        line_start: 219
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 237
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 237
    functionName: SyntaxStatusToString
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *SyntaxStatusToString(SyntaxStatus status)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:263,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:282,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 1
    argNames:
    - lvalname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 294
    functionName: ExpectedDataType
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: DataType
    signature: DataType ExpectedDataType(const char *lvalname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - SyntaxTypeMatch
    assertStmts:
    - condition: (result < SYNTAX_TYPE_MATCH_MAX)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 336
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 336
    functionName: SyntaxTypeMatchToString
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *SyntaxTypeMatchToString(SyntaxTypeMatch result)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/syntax.c:382,1
    - Dst: SplitString
      Src: /src/core/libpromises/syntax.c:400,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/syntax.c:402,1
    - Dst: CheckFnCallType
      Src: /src/core/libpromises/syntax.c:404,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/syntax.c:404,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:405,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:409,1
    - Dst: CheckParseString
      Src: /src/core/libpromises/syntax.c:425,1
    - Dst: CheckParseInt
      Src: /src/core/libpromises/syntax.c:429,1
    - Dst: CheckParseReal
      Src: /src/core/libpromises/syntax.c:433,1
    - Dst: CheckParseOpts
      Src: /src/core/libpromises/syntax.c:442,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/syntax.c:442,1
    - Dst: CheckParseContext
      Src: /src/core/libpromises/syntax.c:446,1
    - Dst: CheckParseIntRange
      Src: /src/core/libpromises/syntax.c:449,1
    - Dst: CheckParseRealRange
      Src: /src/core/libpromises/syntax.c:452,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/syntax.c:455,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 80
    argCount: 5
    argNames:
    - lval
    - rval
    - dt
    - range
    - level
    argTypes:
    - char*
    - Rval
    - DataType
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 460
    functionName: CheckConstraintTypeMatch
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 2
    functionsReached:
    - SplitString
    - RvalFnCallValue
    - IsItemIn
    - CheckFnCallType
    - CheckParseInt
    - CheckParseOpts
    - RvalScalarValue
    - CheckConstraintTypeMatch
    - CheckParseIntRange
    - CheckParseRealRange
    - CheckParseString
    - CheckParseContext
    - CheckParseReal
    - ProgrammingError
    - DeleteItemList
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch CheckConstraintTypeMatch(const char *lval, Rval rval,
      DataType dt, const char *range, int level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/syntax.c:480,1
    - Dst: BufferNew
      Src: /src/core/libpromises/syntax.c:484,1
    - Dst: ExtractScalarReference
      Src: /src/core/libpromises/syntax.c:485,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/syntax.c:488,1
    - Dst: BufferData
      Src: /src/core/libpromises/syntax.c:488,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/syntax.c:490,1
    - Dst: BufferData
      Src: /src/core/libpromises/syntax.c:490,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/syntax.c:491,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/syntax.c:492,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/syntax.c:494,1
    - Dst: BufferSize
      Src: /src/core/libpromises/syntax.c:507,1
    - Dst: strlen
      Src: /src/core/libpromises/syntax.c:507,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/syntax.c:509,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/syntax.c:514,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/syntax.c:519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - string
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 523
    functionName: StringDataType
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - strlen
    - IsExpandable
    - ExtractScalarReference
    - VarRefDestroy
    - EvalContextVariableGet
    - VarRefParse
    - BufferSize
    - BufferNew
    - DataTypeToRvalType
    linkageType: ''
    returnType: DataType
    signature: DataType StringDataType(EvalContext *ctx, const char *string)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/syntax.c:536,1
    - Dst: IsNakedVar
      Src: /src/core/libpromises/syntax.c:541,1
    - Dst: IsNakedVar
      Src: /src/core/libpromises/syntax.c:541,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:548,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:548,1
    - Dst: ParseModeString
      Src: /src/core/libpromises/syntax.c:552,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:559,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/syntax.c:559,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/syntax.c:564,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:572,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - lval
    - s
    - range
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 582
    functionName: CheckParseString
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - IsCf3VarString
    - strlen
    - IsNakedVar
    - ParseModeString
    - StringMatchFull
    - strcmp
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch CheckParseString(const char *lval, const char *s, const
      char *range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/syntax.c:588,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:594,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/syntax.c:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - context
    - range
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 600
    functionName: CheckParseContext
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - StringMatchFull
    - strcmp
    - strlen
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch CheckParseContext(const char *context, const char *range)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SplitString
      Src: /src/core/libpromises/syntax.c:611,1
    - Dst: ListLen
      Src: /src/core/libpromises/syntax.c:613,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/syntax.c:615,1
    - Dst: sscanf
      Src: /src/core/libpromises/syntax.c:618,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:620,1
    - Dst: sscanf
      Src: /src/core/libpromises/syntax.c:626,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:629,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/syntax.c:633,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/syntax.c:636,1
    - Dst: IntFromString
      Src: /src/core/libpromises/syntax.c:641,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - lval
    - s
    - range
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 654
    functionName: CheckParseInt
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - IsCf3VarString
    - SplitString
    - ListLen
    - sscanf
    - strcmp
    - ProgrammingError
    - DeleteItemList
    - IntFromString
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch CheckParseInt(const char *lval, const char *s, const
      char *range)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SplitString
      Src: /src/core/libpromises/syntax.c:670,1
    - Dst: ListLen
      Src: /src/core/libpromises/syntax.c:672,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/syntax.c:674,1
    - Dst: sscanf
      Src: /src/core/libpromises/syntax.c:677,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:679,1
    - Dst: sscanf
      Src: /src/core/libpromises/syntax.c:685,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:688,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/syntax.c:692,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/syntax.c:695,1
    - Dst: SplitString
      Src: /src/core/libpromises/syntax.c:700,1
    - Dst: ListLen
      Src: /src/core/libpromises/syntax.c:702,1
    - Dst: IntFromString
      Src: /src/core/libpromises/syntax.c:709,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:717,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - lval
    - s
    - range
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 720
    functionName: CheckParseIntRange
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - IsCf3VarString
    - SplitString
    - ListLen
    - sscanf
    - strcmp
    - ProgrammingError
    - DeleteItemList
    - IntFromString
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch CheckParseIntRange(const char *lval, const char *s,
      const char *range)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:730,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/syntax.c:735,1
    - Dst: SplitString
      Src: /src/core/libpromises/syntax.c:742,1
    - Dst: ListLen
      Src: /src/core/libpromises/syntax.c:744,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/syntax.c:746,1
    - Dst: sscanf
      Src: /src/core/libpromises/syntax.c:749,1
    - Dst: sscanf
      Src: /src/core/libpromises/syntax.c:750,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:751,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/syntax.c:755,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/syntax.c:758,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - lval
    - s
    - range
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 769
    functionName: CheckParseReal
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - IsCf3VarString
    - SplitString
    - ListLen
    - sscanf
    - strcmp
    - DoubleFromString
    - ProgrammingError
    - DeleteItemList
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch CheckParseReal(const char *lval, const char *s, const
      char *range)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:784,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/syntax.c:789,1
    - Dst: SplitString
      Src: /src/core/libpromises/syntax.c:796,1
    - Dst: ListLen
      Src: /src/core/libpromises/syntax.c:798,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/syntax.c:800,1
    - Dst: sscanf
      Src: /src/core/libpromises/syntax.c:803,1
    - Dst: sscanf
      Src: /src/core/libpromises/syntax.c:804,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:805,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/syntax.c:809,1
    - Dst: SplitString
      Src: /src/core/libpromises/syntax.c:812,1
    - Dst: ListLen
      Src: /src/core/libpromises/syntax.c:814,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/syntax.c:821,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:832,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - lval
    - s
    - range
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 835
    functionName: CheckParseRealRange
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - IsCf3VarString
    - SplitString
    - ListLen
    - sscanf
    - strcmp
    - DoubleFromString
    - ProgrammingError
    - DeleteItemList
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch CheckParseRealRange(const char *lval, const char *s,
      const char *range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsNakedVar
      Src: /src/core/libpromises/syntax.c:845,1
    - Dst: IsNakedVar
      Src: /src/core/libpromises/syntax.c:845,1
    - Dst: SplitString
      Src: /src/core/libpromises/syntax.c:850,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/syntax.c:852,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:854,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/syntax.c:858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - range
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 861
    functionName: CheckParseOpts
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - DeleteItemList
    - IsNakedVar
    - IsItemIn
    - SplitString
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch CheckParseOpts(const char *s, const char *range)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:867,1
    - Dst: IsStrIn
      Src: /src/core/libpromises/syntax.c:879,1
    - Dst: strchr
      Src: /src/core/libpromises/syntax.c:886,1
    - Dst: yyerror
      Src: /src/core/libpromises/syntax.c:918,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 934
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 934
    functionName: CheckParseVariableName
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - assert
    - IsStrIn
    - strchr
    - yyerror
    linkageType: ''
    returnType: bool
    signature: bool CheckParseVariableName(const char *const name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FnCallTypeGet
      Src: /src/core/libpromises/syntax.c:940,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 31
    argCount: 2
    argNames:
    - s
    - desired_type
    argTypes:
    - char*
    - DataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 1001
    functionName: CheckFnCallType
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 1
    functionsReached:
    - FnCallTypeGet
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch CheckFnCallType(const char *s, DataType desired_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1008,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1010,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1011,1
    - Dst: SyntaxStatusToString
      Src: /src/core/libpromises/syntax.c:1011,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1012,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/syntax.c:1012,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - constraint_syntax
    argTypes:
    - ConstraintSyntax*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1020
    functionName: ConstraintSyntaxToJson
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - JsonObjectCreate
    - DataTypeToString
    - JsonObjectAppendString
    - SyntaxStatusToString
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *ConstraintSyntaxToJson(const ConstraintSyntax *constraint_syntax)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1024,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1026,1
    - Dst: SyntaxStatusToString
      Src: /src/core/libpromises/syntax.c:1026,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1028,1
    - Dst: ConstraintSyntaxToJson
      Src: /src/core/libpromises/syntax.c:1035,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1036,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1037,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - body_syntax
    argTypes:
    - BodySyntax*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1045
    functionName: BodySyntaxToJson
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - SyntaxStatusToString
    - JsonObjectAppendObject
    - JsonObjectCreate
    - JsonObjectAppendString
    - ConstraintSyntaxToJson
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *BodySyntaxToJson(const BodySyntax *body_syntax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1049,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1051,1
    - Dst: SyntaxStatusToString
      Src: /src/core/libpromises/syntax.c:1051,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/syntax.c:1052,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/syntax.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1055
    functionName: JsonBundleTypeNew
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - SyntaxStatusToString
    - JsonObjectAppendArray
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonBundleTypeNew(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1059,1
    - Dst: SeqNew
      Src: /src/core/libpromises/syntax.c:1061,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:1070,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:1076,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/syntax.c:1078,1
    - Dst: xstrdup
      Src: /src/core/libpromises/syntax.c:1078,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/syntax.c:1087,1
    - Dst: JsonBundleTypeNew
      Src: /src/core/libpromises/syntax.c:1090,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1091,1
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:1093,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/syntax.c:1095,1
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:1096,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/syntax.c:1098,1
    - Dst: JsonBundleTypeNew
      Src: /src/core/libpromises/syntax.c:1104,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1105,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/syntax.c:1108,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/syntax.c:1110,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/syntax.c:1112,1
    - Dst: JsonObjectGetAsObject
      Src: /src/core/libpromises/syntax.c:1112,1
    - Dst: SeqLength
      Src: /src/core/libpromises/syntax.c:1113,1
    - Dst: SeqAt
      Src: /src/core/libpromises/syntax.c:1115,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/syntax.c:1116,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/syntax.c:1120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (promise_types)
      pos:
        line_end: 1095
        line_start: 1095
        source_file: /src/core/libpromises/syntax.c
    - condition: (bundle_type)
      pos:
        line_end: 1092
        line_start: 1092
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 1122
      start: 1057
    functionDepth: 3
    functionLinenumber: 1057
    functionLinenumberEnd: 1122
    functionName: BundleTypesToJson
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonIteratorNextKey
    - JsonObjectGetAsObject
    - SeqDestroy
    - JsonObjectGetAsArray
    - JsonObjectAppendObject
    - assert
    - JsonBundleTypeNew
    - SeqNew
    - strcmp
    - xstrdup
    - SeqLength
    - JsonObjectGet
    - JsonObjectCreate
    - JsonArrayAppendString
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *BundleTypesToJson(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1126,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1128,1
    - Dst: SyntaxStatusToString
      Src: /src/core/libpromises/syntax.c:1128,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1129,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - SyntaxStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1132
    functionName: JsonPromiseTypeNew
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendObject
    - JsonObjectCreate
    - JsonObjectAppendString
    - SyntaxStatusToString
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *JsonPromiseTypeNew(SyntaxStatus status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1136,1
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/libpromises/syntax.c:1138,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:1147,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/syntax.c:1157,1
    - Dst: JsonPromiseTypeNew
      Src: /src/core/libpromises/syntax.c:1160,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1161,1
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:1163,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/syntax.c:1165,1
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:1166,1
    - Dst: ConstraintSyntaxToJson
      Src: /src/core/libpromises/syntax.c:1171,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1172,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1173,1
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/libpromises/syntax.c:1177,1
    - Dst: strcmp
      Src: /src/core/libpromises/syntax.c:1178,1
    - Dst: ConstraintSyntaxToJson
      Src: /src/core/libpromises/syntax.c:1183,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1184,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1185,1
    - Dst: ConstraintSyntaxToJson
      Src: /src/core/libpromises/syntax.c:1193,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1194,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1195,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (promise_type)
      pos:
        line_end: 1162
        line_start: 1162
        source_file: /src/core/libpromises/syntax.c
    - condition: (attributes)
      pos:
        line_end: 1165
        line_start: 1165
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 1201
      start: 1134
    functionDepth: 3
    functionLinenumber: 1134
    functionLinenumberEnd: 1201
    functionName: PromiseTypesToJson
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - ConstraintSyntaxToJson
    - JsonObjectAppendObject
    - assert
    - PromiseTypeSyntaxGet
    - strcmp
    - JsonObjectGet
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonPromiseTypeNew
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *PromiseTypesToJson(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1205,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/syntax.c:1227,1
    - Dst: BodySyntaxToJson
      Src: /src/core/libpromises/syntax.c:1230,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1231,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/syntax.c:1246,1
    - Dst: BodySyntaxToJson
      Src: /src/core/libpromises/syntax.c:1249,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1250,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1203
    functionDepth: 3
    functionLinenumber: 1203
    functionLinenumberEnd: 1255
    functionName: BodyTypesToJson
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendObject
    - JsonObjectGet
    - JsonObjectCreate
    - BodySyntaxToJson
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *BodyTypesToJson(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - category
    argTypes:
    - FnCallCategory
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1271
    functionName: FnCallCategoryToString
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *FnCallCategoryToString(FnCallCategory category)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/syntax.c:1275,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1276,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1278,1
    - Dst: SyntaxStatusToString
      Src: /src/core/libpromises/syntax.c:1278,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1279,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/syntax.c:1279,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/syntax.c:1282,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1287,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1288,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/syntax.c:1288,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1289,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1290,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/syntax.c:1291,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/syntax.c:1293,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/syntax.c:1298,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/syntax.c:1302,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libpromises/syntax.c:1305,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libpromises/syntax.c:1306,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libpromises/syntax.c:1307,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/syntax.c:1308,1
    - Dst: FnCallCategoryToString
      Src: /src/core/libpromises/syntax.c:1308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - fn_syntax
    argTypes:
    - FnCallType*
    assertStmts:
    - condition: (fn_syntax != NULL)
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/core/libpromises/syntax.c
    constantsTouched: []
    func_position:
      end: 1311
      start: 1273
    functionDepth: 2
    functionLinenumber: 1273
    functionLinenumberEnd: 1311
    functionName: FnCallTypeToJson
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - DataTypeToString
    - SyntaxStatusToString
    - assert
    - FnCallCategoryToString
    - JsonObjectAppendInteger
    - JsonArrayAppendObject
    - JsonObjectAppendArray
    - JsonObjectAppendBool
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *FnCallTypeToJson(const FnCallType *fn_syntax)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1315,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1326,1
    - Dst: FnCallTypeToJson
      Src: /src/core/libpromises/syntax.c:1326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1313
    functionDepth: 3
    functionLinenumber: 1313
    functionLinenumberEnd: 1330
    functionName: FunctionsToJson
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendObject
    - JsonObjectCreate
    - FnCallTypeToJson
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *FunctionsToJson(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/syntax.c:1334,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1336,1
    - Dst: BundleTypesToJson
      Src: /src/core/libpromises/syntax.c:1336,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1337,1
    - Dst: PromiseTypesToJson
      Src: /src/core/libpromises/syntax.c:1337,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1338,1
    - Dst: BodyTypesToJson
      Src: /src/core/libpromises/syntax.c:1338,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/syntax.c:1339,1
    - Dst: FunctionsToJson
      Src: /src/core/libpromises/syntax.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1332
    functionDepth: 4
    functionLinenumber: 1332
    functionLinenumberEnd: 1342
    functionName: SyntaxToJson
    functionSourceFile: /src/core/libpromises/syntax.c
    functionUses: 4
    functionsReached:
    - JsonObjectAppendObject
    - PromiseTypesToJson
    - BundleTypesToJson
    - BodyTypesToJson
    - FunctionsToJson
    - JsonObjectCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *SyntaxToJson(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/loading.c:63,1
    - Dst: PolicyNew
      Src: /src/core/libpromises/loading.c:67,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:70,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/loading.c:70,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/loading.c:71,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/loading.c:73,1
    - Dst: PolicyNew
      Src: /src/core/libpromises/loading.c:77,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:80,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/loading.c:81,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:87,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/loading.c:88,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:92,1
    - Dst: FileCanOpen
      Src: /src/core/libpromises/loading.c:94,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:96,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/loading.c:97,1
    - Dst: StringEndsWith
      Src: /src/core/libpromises/loading.c:101,1
    - Dst: FileRead
      Src: /src/core/libpromises/loading.c:103,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:106,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/loading.c:110,1
    - Dst: JsonParse
      Src: /src/core/libpromises/loading.c:111,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:113,1
    - Dst: WriterClose
      Src: /src/core/libpromises/loading.c:114,1
    - Dst: PolicyFromJson
      Src: /src/core/libpromises/loading.c:118,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:121,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/loading.c:124,1
    - Dst: WriterClose
      Src: /src/core/libpromises/loading.c:125,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/loading.c:129,1
    - Dst: WriterClose
      Src: /src/core/libpromises/loading.c:130,1
    - Dst: ParserParseFile
      Src: /src/core/libpromises/loading.c:136,1
    - Dst: ParserParseFile
      Src: /src/core/libpromises/loading.c:140,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:144,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - config
    - input_path
    argTypes:
    - GenericAgentConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 59
    functionDepth: 8
    functionLinenumber: 59
    functionLinenumberEnd: 146
    functionName: Cf3ParseFile
    functionSourceFile: /src/core/libpromises/loading.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - DoCleanupAndExit
    - PolicyFromJson
    - WriterClose
    - JsonDestroy
    - PolicyNew
    - StringEndsWith
    - S_ISDIR
    - StringWriterData
    - Log
    - FileRead
    - ParserParseFile
    - FileCanOpen
    - JsonParse
    linkageType: ''
    returnType: Policy
    signature: Policy *Cf3ParseFile(const GenericAgentConfig *config, const char *input_path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PolicyNew
      Src: /src/core/libpromises/loading.c:152,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:158,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/loading.c:162,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/loading.c:163,1
    - Dst: PolicyResolve
      Src: /src/core/libpromises/loading.c:165,1
    - Dst: EvaluateFinalRval
      Src: /src/core/libpromises/loading.c:168,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/loading.c:174,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/loading.c:174,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:176,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/loading.c:176,1
    - Dst: LoadPolicyFile
      Src: /src/core/libpromises/loading.c:180,1
    - Dst: GenericAgentResolveInputPath
      Src: /src/core/libpromises/loading.c:181,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/loading.c:181,1
    - Dst: LoadPolicyInputFiles
      Src: /src/core/libpromises/loading.c:186,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/loading.c:187,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/loading.c:192,1
    - Dst: PolicyMerge
      Src: /src/core/libpromises/loading.c:198,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/loading.c:201,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 6
    argNames:
    - ctx
    - config
    - inputs
    - policy_files_hashes
    - parsed_files_checksums
    - failed_files
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    - Rlist*
    - StringMap*
    - StringSet*
    - StringSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 148
    functionDepth: 8
    functionLinenumber: 148
    functionLinenumberEnd: 205
    functionName: LoadPolicyInputFiles
    functionSourceFile: /src/core/libpromises/loading.c
    functionUses: 1
    functionsReached:
    - IsCf3VarString
    - LoadPolicyFile
    - PolicyNew
    - RvalScalarValue
    - IsExpandable
    - GenericAgentResolveInputPath
    - LoadPolicyInputFiles
    - PolicyMerge
    - ProgrammingError
    - Log
    - RlistScalarValue
    - EvaluateFinalRval
    - PolicyResolve
    - RvalRlistValue
    - RvalDestroy
    linkageType: ''
    returnType: Policy
    signature: "Policy *LoadPolicyInputFiles(EvalContext *ctx, GenericAgentConfig
      *config, const Rlist *inputs,\n                                    StringMap
      *policy_files_hashes, StringSet *parsed_files_checksums,\n                                    StringSet
      *failed_files)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libpromises/loading.c:210,1
    - Dst: SeqNew
      Src: /src/core/libpromises/loading.c:211,1
    - Dst: EvalContextClassTableIteratorNewGlobal
      Src: /src/core/libpromises/loading.c:214,1
    - Dst: ClassTableIteratorNext
      Src: /src/core/libpromises/loading.c:216,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/loading.c:220,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/loading.c:224,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libpromises/loading.c:228,1
    - Dst: SeqSort
      Src: /src/core/libpromises/loading.c:231,1
    - Dst: SeqSort
      Src: /src/core/libpromises/loading.c:232,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:234,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:237,1
    - Dst: SeqLength
      Src: /src/core/libpromises/loading.c:239,1
    - Dst: SeqAt
      Src: /src/core/libpromises/loading.c:241,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:242,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:245,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:248,1
    - Dst: SeqLength
      Src: /src/core/libpromises/loading.c:250,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:252,1
    - Dst: SeqLength
      Src: /src/core/libpromises/loading.c:254,1
    - Dst: SeqAt
      Src: /src/core/libpromises/loading.c:256,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:257,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:260,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/loading.c:263,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/loading.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 208
    functionDepth: 8
    functionLinenumber: 208
    functionLinenumberEnd: 265
    functionName: ShowContext
    functionSourceFile: /src/core/libpromises/loading.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - SeqNew
    - Log
    - ClassTableIteratorNext
    - SeqLength
    - ClassTableIteratorDestroy
    - SeqSort
    - EvalContextClassTableIteratorNewGlobal
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void ShowContext(EvalContext *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/loading.c:269,1
    - Dst: assert
      Src: /src/core/libpromises/loading.c:270,1
    - Dst: assert
      Src: /src/core/libpromises/loading.c:271,1
    - Dst: GetRealPath
      Src: /src/core/libpromises/loading.c:272,1
    - Dst: EvalContextGetEntryPoint
      Src: /src/core/libpromises/loading.c:272,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/loading.c:273,1
    - Dst: free
      Src: /src/core/libpromises/loading.c:275,1
    - Dst: SeqLength
      Src: /src/core/libpromises/loading.c:279,1
    - Dst: SeqAt
      Src: /src/core/libpromises/loading.c:283,1
    - Dst: StringEqual
      Src: /src/core/libpromises/loading.c:284,1
    - Dst: GetRealPath
      Src: /src/core/libpromises/loading.c:286,1
    - Dst: StringEqual
      Src: /src/core/libpromises/loading.c:287,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:289,1
    - Dst: strncpy
      Src: /src/core/libpromises/loading.c:292,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:297,1
    - Dst: SeqSet
      Src: /src/core/libpromises/loading.c:302,1
    - Dst: free
      Src: /src/core/libpromises/loading.c:304,1
    - Dst: SeqRemoveNulls
      Src: /src/core/libpromises/loading.c:309,1
    - Dst: free
      Src: /src/core/libpromises/loading.c:311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts:
    - condition: (policy->bundles != NULL)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/core/libpromises/loading.c
    - condition: (policy != NULL)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/core/libpromises/loading.c
    - condition: (ctx != NULL)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/core/libpromises/loading.c
    constantsTouched: []
    func_position:
      end: 312
      start: 267
    functionDepth: 11
    functionLinenumber: 267
    functionLinenumberEnd: 312
    functionName: RenameMainBundle
    functionSourceFile: /src/core/libpromises/loading.c
    functionUses: 0
    functionsReached:
    - GetRealPath
    - SeqSet
    - strncpy
    - assert
    - SeqRemoveNulls
    - EvalContextGetEntryPoint
    - Log
    - SeqLength
    - free
    - NULL_OR_EMPTY
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void RenameMainBundle(EvalContext *ctx, Policy *policy)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HashFile
      Src: /src/core/libpromises/loading.c:321,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/loading.c:322,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:325,1
    - Dst: StringMapHasKey
      Src: /src/core/libpromises/loading.c:327,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:329,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/loading.c:332,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:334,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:340,1
    - Dst: Cf3ParseFile
      Src: /src/core/libpromises/loading.c:343,1
    - Dst: StringMapInsert
      Src: /src/core/libpromises/loading.c:345,1
    - Dst: xstrdup
      Src: /src/core/libpromises/loading.c:345,1
    - Dst: xstrdup
      Src: /src/core/libpromises/loading.c:345,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/loading.c:346,1
    - Dst: xstrdup
      Src: /src/core/libpromises/loading.c:346,1
    - Dst: RenameMainBundle
      Src: /src/core/libpromises/loading.c:350,1
    - Dst: SeqNew
      Src: /src/core/libpromises/loading.c:351,1
    - Dst: PolicyCheckPartial
      Src: /src/core/libpromises/loading.c:352,1
    - Dst: FileWriter
      Src: /src/core/libpromises/loading.c:354,1
    - Dst: PolicyErrorWrite
      Src: /src/core/libpromises/loading.c:357,1
    - Dst: WriterClose
      Src: /src/core/libpromises/loading.c:359,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/loading.c:360,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/loading.c:362,1
    - Dst: xstrdup
      Src: /src/core/libpromises/loading.c:362,1
    - Dst: PolicyDestroy
      Src: /src/core/libpromises/loading.c:363,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/loading.c:367,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/loading.c:371,1
    - Dst: xstrdup
      Src: /src/core/libpromises/loading.c:371,1
    - Dst: PolicyResolve
      Src: /src/core/libpromises/loading.c:375,1
    - Dst: PolicyGetBody
      Src: /src/core/libpromises/loading.c:377,1
    - Dst: PolicyGetBody
      Src: /src/core/libpromises/loading.c:378,1
    - Dst: BodyGetConstraint
      Src: /src/core/libpromises/loading.c:382,1
    - Dst: EffectiveConstraint
      Src: /src/core/libpromises/loading.c:383,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/loading.c:384,1
    - Dst: LoadPolicyInputFiles
      Src: /src/core/libpromises/loading.c:388,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/loading.c:388,1
    - Dst: PolicyMerge
      Src: /src/core/libpromises/loading.c:393,1
    - Dst: BodyGetConstraint
      Src: /src/core/libpromises/loading.c:400,1
    - Dst: EffectiveConstraint
      Src: /src/core/libpromises/loading.c:401,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/loading.c:402,1
    - Dst: LoadPolicyInputFiles
      Src: /src/core/libpromises/loading.c:406,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/loading.c:406,1
    - Dst: PolicyMerge
      Src: /src/core/libpromises/loading.c:411,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 6
    argNames:
    - ctx
    - config
    - policy_file
    - policy_files_hashes
    - parsed_files_checksums
    - failed_files
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    - char*
    - StringMap*
    - StringSet*
    - StringSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 314
    functionDepth: 12
    functionLinenumber: 314
    functionLinenumberEnd: 417
    functionName: LoadPolicyFile
    functionSourceFile: /src/core/libpromises/loading.c
    functionUses: 1
    functionsReached:
    - PolicyDestroy
    - PolicyErrorWrite
    - RenameMainBundle
    - EffectiveConstraint
    - HashPrintSafe
    - Log
    - BodyGetConstraint
    - Cf3ParseFile
    - PolicyResolve
    - RvalRlistValue
    - FileWriter
    - SeqDestroy
    - PolicyMerge
    - xstrdup
    - WriterClose
    - StringSetContains
    - StringMapInsert
    - LoadPolicyInputFiles
    - SeqNew
    - StringMapHasKey
    - HashFile
    - StringSetAdd
    - PolicyCheckPartial
    - PolicyGetBody
    linkageType: ''
    returnType: Policy
    signature: "Policy *LoadPolicyFile(EvalContext *ctx, GenericAgentConfig *config,
      const char *policy_file,\n                              StringMap *policy_files_hashes,
      StringSet *parsed_files_checksums,\n                              StringSet
      *failed_files)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/libpromises/loading.c:422,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/loading.c:425,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/loading.c:436,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/loading.c:440,1
    - Dst: StringWriter
      Src: /src/core/libpromises/loading.c:447,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/loading.c:448,1
    - Dst: RvalWrite
      Src: /src/core/libpromises/loading.c:449,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/loading.c:450,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:451,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/loading.c:451,1
    - Dst: WriterClose
      Src: /src/core/libpromises/loading.c:452,1
    - Dst: PolicyGetBundle
      Src: /src/core/libpromises/loading.c:457,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:459,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/loading.c:464,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - policy
    - config
    argTypes:
    - EvalContext*
    - Policy*
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 419
    functionDepth: 8
    functionLinenumber: 419
    functionLinenumberEnd: 466
    functionName: VerifyBundleSequence
    functionSourceFile: /src/core/libpromises/loading.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - RlistAppendScalar
    - WriterWrite
    - StringWriter
    - RlistFnCallValue
    - PolicyGetBundle
    - StringWriterData
    - RvalWrite
    - EvalContextVariableControlCommonGet
    - Log
    - RlistScalarValue
    - RlistDestroy
    linkageType: ''
    returnType: bool
    signature: bool VerifyBundleSequence(EvalContext *ctx, const Policy *policy, const
      GenericAgentConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetReleaseIdFile
      Src: /src/core/libpromises/loading.c:475,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/loading.c:475,1
    - Dst: stat
      Src: /src/core/libpromises/loading.c:478,1
    - Dst: JsonParseFile
      Src: /src/core/libpromises/loading.c:484,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:487,1
    - Dst: JsonParseErrorToString
      Src: /src/core/libpromises/loading.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 471
    functionDepth: 8
    functionLinenumber: 471
    functionLinenumberEnd: 493
    functionName: ReadReleaseIdFileFromInputs
    functionSourceFile: /src/core/libpromises/loading.c
    functionUses: 0
    functionsReached:
    - stat
    - JsonParseFile
    - GetReleaseIdFile
    - Log
    - GetInputDir
    - JsonParseErrorToString
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *ReadReleaseIdFileFromInputs()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: StringMapNew
      Src: /src/core/libpromises/loading.c:497,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/loading.c:498,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/loading.c:499,1
    - Dst: Banner
      Src: /src/core/libpromises/loading.c:501,1
    - Dst: LoadPolicyFile
      Src: /src/core/libpromises/loading.c:503,1
    - Dst: StringSetSize
      Src: /src/core/libpromises/loading.c:507,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:509,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/loading.c:510,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/loading.c:513,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/loading.c:514,1
    - Dst: StringMapDestroy
      Src: /src/core/libpromises/loading.c:521,1
    - Dst: SeqNew
      Src: /src/core/libpromises/loading.c:525,1
    - Dst: PolicyCheckPartial
      Src: /src/core/libpromises/loading.c:527,1
    - Dst: PolicyIsRunnable
      Src: /src/core/libpromises/loading.c:530,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:532,1
    - Dst: PolicyCheckRunnable
      Src: /src/core/libpromises/loading.c:534,1
    - Dst: SeqLength
      Src: /src/core/libpromises/loading.c:538,1
    - Dst: FileWriter
      Src: /src/core/libpromises/loading.c:540,1
    - Dst: PolicyErrorWrite
      Src: /src/core/libpromises/loading.c:543,1
    - Dst: WriterClose
      Src: /src/core/libpromises/loading.c:545,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/loading.c:546,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/loading.c:547,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/loading.c:550,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/loading.c:553,1
    - Dst: Legend
      Src: /src/core/libpromises/loading.c:555,1
    - Dst: ShowContext
      Src: /src/core/libpromises/loading.c:556,1
    - Dst: Banner
      Src: /src/core/libpromises/loading.c:561,1
    - Dst: SeqLength
      Src: /src/core/libpromises/loading.c:567,1
    - Dst: SeqAt
      Src: /src/core/libpromises/loading.c:569,1
    - Dst: EvalContextPushBundleName
      Src: /src/core/libpromises/loading.c:570,1
    - Dst: SeqLength
      Src: /src/core/libpromises/loading.c:573,1
    - Dst: SeqAt
      Src: /src/core/libpromises/loading.c:575,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/libpromises/loading.c:576,1
    - Dst: SeqLength
      Src: /src/core/libpromises/loading.c:578,1
    - Dst: SeqAt
      Src: /src/core/libpromises/loading.c:580,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/libpromises/loading.c:581,1
    - Dst: SeqLength
      Src: /src/core/libpromises/loading.c:583,1
    - Dst: SeqAt
      Src: /src/core/libpromises/loading.c:585,1
    - Dst: ExpandPromise
      Src: /src/core/libpromises/loading.c:592,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/libpromises/loading.c:596,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/libpromises/loading.c:599,1
    - Dst: PolicyResolve
      Src: /src/core/libpromises/loading.c:602,1
    - Dst: VerifyBundleSequence
      Src: /src/core/libpromises/loading.c:611,1
    - Dst: FatalError
      Src: /src/core/libpromises/loading.c:613,1
    - Dst: xstrdup
      Src: /src/core/libpromises/loading.c:626,1
    - Dst: GetReleaseIdFile
      Src: /src/core/libpromises/loading.c:629,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/loading.c:629,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libpromises/loading.c:630,1
    - Dst: Log
      Src: /src/core/libpromises/loading.c:634,1
    - Dst: FileWriter
      Src: /src/core/libpromises/loading.c:638,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/loading.c:639,1
    - Dst: WriterClose
      Src: /src/core/libpromises/loading.c:640,1
    - Dst: ReadReleaseIdFileFromInputs
      Src: /src/core/libpromises/loading.c:645,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/loading.c:648,1
    - Dst: xstrdup
      Src: /src/core/libpromises/loading.c:651,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/loading.c:653,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 2
    argNames:
    - ctx
    - config
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 495
    functionDepth: 13
    functionLinenumber: 495
    functionLinenumberEnd: 658
    functionName: LoadPolicy
    functionSourceFile: /src/core/libpromises/loading.c
    functionUses: 6
    functionsReached:
    - PolicyErrorWrite
    - LoadPolicyFile
    - ExpandPromise
    - EvalContextPushBundleName
    - EvalContextStackPopFrame
    - ReadReleaseIdFileFromInputs
    - Log
    - EvalContextStackPushBundleSectionFrame
    - GetInputDir
    - SeqLength
    - StringSetNew
    - PolicyResolve
    - FileWriter
    - EvalContextStackPushBundleFrame
    - SeqDestroy
    - WriterWrite
    - LogGetGlobalLevel
    - xstrdup
    - StringMapNew
    - SeqAt
    - VerifyBundleSequence
    - WriterClose
    - Banner
    - JsonObjectGetAsString
    - StringSetSize
    - SeqNew
    - GetReleaseIdFile
    - safe_fopen_create_perms
    - DoCleanupAndExit
    - PolicyCheckPartial
    - JsonDestroy
    - StringMapDestroy
    - ShowContext
    - StringSetDestroy
    - FatalError
    - PolicyIsRunnable
    - PolicyCheckRunnable
    - Legend
    linkageType: ''
    returnType: Policy
    signature: Policy *LoadPolicy(EvalContext *ctx, GenericAgentConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/pipes_unix.c:47,1
    - Dst: xcalloc
      Src: /src/core/libpromises/pipes_unix.c:50,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: ChildrenFDInit
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - ThreadLock
    - ThreadUnlock
    linkageType: ''
    returnType: void
    signature: void ChildrenFDInit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/pipes_unix.c:63,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (CHILDREN != NULL)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/core/libpromises/pipes_unix.c
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: ChildrenFDUnsafeClose
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - assert
    - close
    linkageType: ''
    returnType: void
    signature: void ChildrenFDUnsafeClose()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/pipes_unix.c:80,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:86,1
    - Dst: free
      Src: /src/core/libpromises/pipes_unix.c:89,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: ChildrenFDClose
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - ThreadUnlock
    - free
    - ThreadLock
    - close
    linkageType: ''
    returnType: void
    signature: void ChildrenFDClose()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:97,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:105,1
    - Dst: open
      Src: /src/core/libpromises/pipes_unix.c:111,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:112,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:113,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:120,1
    - Dst: open
      Src: /src/core/libpromises/pipes_unix.c:126,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:127,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:128,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pd
    - output_select
    argTypes:
    - int[]
    - OutputSelect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 133
    functionName: ChildOutputSelectDupClose
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - open
    - dup2
    - close
    linkageType: ''
    returnType: void
    signature: void ChildOutputSelectDupClose(int pd[2], OutputSelect output_select)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:143,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/pipes_unix.c:149,1
    - Dst: xrealloc
      Src: /src/core/libpromises/pipes_unix.c:153,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - fd
    - pid
    argTypes:
    - int
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 137
    functionDepth: 8
    functionLinenumber: 137
    functionLinenumberEnd: 159
    functionName: ChildrenFDSet
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - ThreadUnlock
    - ThreadLock
    - Log
    - xrealloc
    linkageType: ''
    returnType: void
    signature: void ChildrenFDSet(int fd, pid_t pid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PipeTypeIsOk
      Src: /src/core/libpromises/pipes_unix.c:173,1
    - Dst: ChildrenFDInit
      Src: /src/core/libpromises/pipes_unix.c:180,1
    - Dst: pipe
      Src: /src/core/libpromises/pipes_unix.c:183,1
    - Dst: pipe
      Src: /src/core/libpromises/pipes_unix.c:190,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:192,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:193,1
    - Dst: fork
      Src: /src/core/libpromises/pipes_unix.c:199,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:202,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:203,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:208,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:209,1
    - Dst: sigemptyset
      Src: /src/core/libpromises/pipes_unix.c:220,1
    - Dst: sigaction
      Src: /src/core/libpromises/pipes_unix.c:221,1
    - Dst: signal
      Src: /src/core/libpromises/pipes_unix.c:232,1
    - Dst: sigemptyset
      Src: /src/core/libpromises/pipes_unix.c:237,1
    - Dst: sigprocmask
      Src: /src/core/libpromises/pipes_unix.c:238,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - pipes
    argTypes:
    - IOPipe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 244
    functionName: GenericCreatePipeAndFork
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - fork
    - sigprocmask
    - sigemptyset
    - PipeTypeIsOk
    - ChildrenFDInit
    - pipe
    - sigaction
    - signal
    - close
    linkageType: ''
    returnType: pid_t
    signature: pid_t GenericCreatePipeAndFork(IOPipe *pipes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericCreatePipeAndFork
      Src: /src/core/libpromises/pipes_unix.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - type
    - pd
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 260
    functionName: CreatePipeAndFork
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 1
    functionsReached:
    - GenericCreatePipeAndFork
    linkageType: ''
    returnType: pid_t
    signature: pid_t CreatePipeAndFork(const char *type, int *pd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericCreatePipeAndFork
      Src: /src/core/libpromises/pipes_unix.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - type
    - pd
    - pdb
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: CreatePipesAndFork
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - GenericCreatePipeAndFork
    linkageType: ''
    returnType: pid_t
    signature: pid_t CreatePipesAndFork(const char *type, int *pd, int *pdb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/libpromises/pipes_unix.c:290,1
    - Dst: fflush
      Src: /src/core/libpromises/pipes_unix.c:292,1
    - Dst: CreatePipesAndFork
      Src: /src/core/libpromises/pipes_unix.c:293,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:297,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:297,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:298,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:304,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:305,1
    - Dst: ChildrenFDSet
      Src: /src/core/libpromises/pipes_unix.c:313,1
    - Dst: ChildrenFDSet
      Src: /src/core/libpromises/pipes_unix.c:314,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:315,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:320,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:321,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:324,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:324,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:326,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:326,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:327,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:333,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:335,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:336,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:337,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:345,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:346,1
    - Dst: ChildrenFDUnsafeClose
      Src: /src/core/libpromises/pipes_unix.c:348,1
    - Dst: execv
      Src: /src/core/libpromises/pipes_unix.c:353,1
    - Dst: execvp
      Src: /src/core/libpromises/pipes_unix.c:357,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:363,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:366,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:370,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 3
    argNames:
    - command
    - capture_stderr
    - require_full_path
    argTypes:
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 282
    functionDepth: 9
    functionLinenumber: 282
    functionLinenumberEnd: 372
    functionName: cf_popen_full_duplex
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fflush
    - ChildrenFDUnsafeClose
    - CreatePipesAndFork
    - dup2
    - execv
    - _exit
    - Log
    - execvp
    - ArgSplitCommand
    - ArgFree
    - close
    - ChildrenFDSet
    linkageType: ''
    returnType: IOData
    signature: IOData cf_popen_full_duplex(const char *command, bool capture_stderr,
      bool require_full_path)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/libpromises/pipes_unix.c:380,1
    - Dst: CreatePipeAndFork
      Src: /src/core/libpromises/pipes_unix.c:382,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:385,1
    - Dst: ChildOutputSelectDupClose
      Src: /src/core/libpromises/pipes_unix.c:396,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:401,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:405,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:406,1
    - Dst: ChildrenFDUnsafeClose
      Src: /src/core/libpromises/pipes_unix.c:410,1
    - Dst: execv
      Src: /src/core/libpromises/pipes_unix.c:412,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:414,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:414,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:417,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:425,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes_unix.c:427,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:429,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:430,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:437,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes_unix.c:439,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:441,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:442,1
    - Dst: ChildrenFDSet
      Src: /src/core/libpromises/pipes_unix.c:447,1
    - Dst: fileno
      Src: /src/core/libpromises/pipes_unix.c:447,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:448,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/pipes_unix.c:452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - command
    - type
    - output_select
    argTypes:
    - char*
    - char*
    - OutputSelect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 374
    functionDepth: 9
    functionLinenumber: 374
    functionLinenumberEnd: 454
    functionName: cf_popen_select
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ChildrenFDUnsafeClose
    - fdopen
    - dup2
    - fileno
    - CreatePipeAndFork
    - execv
    - _exit
    - ProgrammingError
    - ChildOutputSelectDupClose
    - Log
    - cf_pwait
    - ArgSplitCommand
    - ArgFree
    - close
    - ChildrenFDSet
    linkageType: ''
    returnType: FILE
    signature: FILE *cf_popen_select(const char *command, const char *type, OutputSelect
      output_select)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_popen_select
      Src: /src/core/libpromises/pipes_unix.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - command
    - type
    - capture_stderr
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 10
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: cf_popen
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 4
    functionsReached:
    - cf_popen_select
    linkageType: ''
    returnType: FILE
    signature: FILE *cf_popen(const char *command, const char *type, bool capture_stderr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ArgSplitCommand
      Src: /src/core/libpromises/pipes_unix.c:478,1
    - Dst: CreatePipeAndFork
      Src: /src/core/libpromises/pipes_unix.c:480,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:483,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:495,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:499,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:500,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:501,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:508,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:512,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:513,1
    - Dst: ChildrenFDUnsafeClose
      Src: /src/core/libpromises/pipes_unix.c:517,1
    - Dst: strlen
      Src: /src/core/libpromises/pipes_unix.c:519,1
    - Dst: chroot
      Src: /src/core/libpromises/pipes_unix.c:521,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:523,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:523,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:524,1
    - Dst: strlen
      Src: /src/core/libpromises/pipes_unix.c:528,1
    - Dst: safe_chdir
      Src: /src/core/libpromises/pipes_unix.c:530,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:532,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:532,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:533,1
    - Dst: CfSetuid
      Src: /src/core/libpromises/pipes_unix.c:537,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:539,1
    - Dst: execv
      Src: /src/core/libpromises/pipes_unix.c:542,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:544,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:544,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:547,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:555,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes_unix.c:557,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:559,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:560,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:567,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes_unix.c:569,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:571,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:572,1
    - Dst: ChildrenFDSet
      Src: /src/core/libpromises/pipes_unix.c:577,1
    - Dst: fileno
      Src: /src/core/libpromises/pipes_unix.c:577,1
    - Dst: ArgFree
      Src: /src/core/libpromises/pipes_unix.c:578,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/pipes_unix.c:582,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 8
    argNames:
    - command
    - arglist
    - type
    - uid
    - gid
    - chdirv
    - chrootv
    - background
    argTypes:
    - char*
    - Seq*
    - char*
    - uid_t
    - gid_t
    - char*
    - char*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 470
    functionDepth: 9
    functionLinenumber: 470
    functionLinenumberEnd: 584
    functionName: cf_popensetuid
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - ChildrenFDUnsafeClose
    - Log
    - ArgSplitCommand
    - dup2
    - close
    - fdopen
    - strlen
    - fileno
    - CreatePipeAndFork
    - cf_pwait
    - safe_chdir
    - chroot
    - execv
    - _exit
    - ChildrenFDSet
    - GetErrorStr
    - CfSetuid
    - ProgrammingError
    - ArgFree
    linkageType: ''
    returnType: FILE
    signature: "FILE *cf_popensetuid(const char *command, const Seq *arglist,\n                     const
      char *type, uid_t uid, gid_t gid, char *chdirv,\n                     char *chrootv,
      ARG_UNUSED int background)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CreatePipeAndFork
      Src: /src/core/libpromises/pipes_unix.c:596,1
    - Dst: ChildOutputSelectDupClose
      Src: /src/core/libpromises/pipes_unix.c:609,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:615,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:619,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:620,1
    - Dst: ChildrenFDUnsafeClose
      Src: /src/core/libpromises/pipes_unix.c:624,1
    - Dst: execl
      Src: /src/core/libpromises/pipes_unix.c:626,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:628,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:628,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:629,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:637,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes_unix.c:639,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:641,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:648,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes_unix.c:650,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:652,1
    - Dst: ChildrenFDSet
      Src: /src/core/libpromises/pipes_unix.c:657,1
    - Dst: fileno
      Src: /src/core/libpromises/pipes_unix.c:657,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/pipes_unix.c:661,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - command
    - type
    - output_select
    argTypes:
    - char*
    - char*
    - OutputSelect
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 590
    functionDepth: 9
    functionLinenumber: 590
    functionLinenumberEnd: 663
    functionName: cf_popen_sh_select
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ChildrenFDUnsafeClose
    - fdopen
    - fileno
    - CreatePipeAndFork
    - _exit
    - ProgrammingError
    - ChildOutputSelectDupClose
    - Log
    - cf_pwait
    - execl
    - dup2
    - close
    - ChildrenFDSet
    linkageType: ''
    returnType: FILE
    signature: FILE *cf_popen_sh_select(const char *command, const char *type, OutputSelect
      output_select)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_popen_sh_select
      Src: /src/core/libpromises/pipes_unix.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - command
    - type
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 10
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: cf_popen_sh
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 1
    functionsReached:
    - cf_popen_sh_select
    linkageType: ''
    returnType: FILE
    signature: FILE *cf_popen_sh(const char *command, const char *type)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CreatePipeAndFork
      Src: /src/core/libpromises/pipes_unix.c:684,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:698,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:702,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:703,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:704,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:711,1
    - Dst: dup2
      Src: /src/core/libpromises/pipes_unix.c:715,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:716,1
    - Dst: ChildrenFDUnsafeClose
      Src: /src/core/libpromises/pipes_unix.c:720,1
    - Dst: strlen
      Src: /src/core/libpromises/pipes_unix.c:722,1
    - Dst: chroot
      Src: /src/core/libpromises/pipes_unix.c:724,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:726,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:726,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:727,1
    - Dst: strlen
      Src: /src/core/libpromises/pipes_unix.c:731,1
    - Dst: safe_chdir
      Src: /src/core/libpromises/pipes_unix.c:733,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:735,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:735,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:736,1
    - Dst: CfSetuid
      Src: /src/core/libpromises/pipes_unix.c:740,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:742,1
    - Dst: execl
      Src: /src/core/libpromises/pipes_unix.c:745,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:747,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:747,1
    - Dst: _exit
      Src: /src/core/libpromises/pipes_unix.c:748,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:756,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes_unix.c:758,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:760,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:767,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes_unix.c:769,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:771,1
    - Dst: ChildrenFDSet
      Src: /src/core/libpromises/pipes_unix.c:776,1
    - Dst: fileno
      Src: /src/core/libpromises/pipes_unix.c:776,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/pipes_unix.c:780,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 7
    argNames:
    - command
    - type
    - uid
    - gid
    - chdirv
    - chrootv
    - background
    argTypes:
    - char*
    - char*
    - uid_t
    - gid_t
    - char*
    - char*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 676
    functionDepth: 9
    functionLinenumber: 676
    functionLinenumberEnd: 782
    functionName: cf_popen_shsetuid
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ChildrenFDUnsafeClose
    - fdopen
    - CfSetuid
    - strlen
    - fileno
    - CreatePipeAndFork
    - chroot
    - _exit
    - ProgrammingError
    - Log
    - cf_pwait
    - safe_chdir
    - execl
    - dup2
    - close
    - ChildrenFDSet
    linkageType: ''
    returnType: FILE
    signature: "FILE *cf_popen_shsetuid(const char *command, const char *type,\n                        uid_t
      uid, gid_t gid, char *chdirv, char *chrootv,\n                        ARG_UNUSED
      int background)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:786,1
    - Dst: waitpid
      Src: /src/core/libpromises/pipes_unix.c:790,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:794,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:796,1
    - Dst: WIFEXITED
      Src: /src/core/libpromises/pipes_unix.c:801,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:803,1
    - Dst: WIFSIGNALED
      Src: /src/core/libpromises/pipes_unix.c:805,1
    - Dst: WIFSTOPPED
      Src: /src/core/libpromises/pipes_unix.c:806,1
    - Dst: WIFCONTINUED
      Src: /src/core/libpromises/pipes_unix.c:807,1
    - Dst: WEXITSTATUS
      Src: /src/core/libpromises/pipes_unix.c:811,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 784
    functionDepth: 8
    functionLinenumber: 784
    functionLinenumberEnd: 816
    functionName: cf_pwait
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 4
    functionsReached:
    - GetErrorStr
    - WEXITSTATUS
    - WIFSIGNALED
    - WIFEXITED
    - Log
    - WIFCONTINUED
    - waitpid
    - WIFSTOPPED
    linkageType: ''
    returnType: int
    signature: int cf_pwait(pid_t pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/core/libpromises/pipes_unix.c:827,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:829,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 825
    functionDepth: 8
    functionLinenumber: 825
    functionLinenumberEnd: 833
    functionName: cf_pclose_nowait
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - Log
    - fclose
    linkageType: ''
    returnType: void
    signature: void cf_pclose_nowait(FILE *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/core/libpromises/pipes_unix.c:841,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/pipes_unix.c:844,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:848,1
    - Dst: fclose
      Src: /src/core/libpromises/pipes_unix.c:849,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:857,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:858,1
    - Dst: fclose
      Src: /src/core/libpromises/pipes_unix.c:861,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:867,1
    - Dst: fclose
      Src: /src/core/libpromises/pipes_unix.c:869,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:871,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:873,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - pp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 839
    functionDepth: 9
    functionLinenumber: 839
    functionLinenumberEnd: 877
    functionName: cf_pclose
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 5
    functionsReached:
    - GetErrorStr
    - ThreadLock
    - ThreadUnlock
    - fileno
    - Log
    - fclose
    - cf_pwait
    linkageType: ''
    returnType: int
    signature: int cf_pclose(FILE *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/pipes_unix.c:881,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:885,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:886,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:892,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:893,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:900,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 879
    functionDepth: 8
    functionLinenumber: 879
    functionLinenumberEnd: 903
    functionName: cf_pclose_full_duplex_side
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - ThreadUnlock
    - ThreadLock
    - Log
    - close
    linkageType: ''
    returnType: int
    signature: int cf_pclose_full_duplex_side(int fd)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/pipes_unix.c:909,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/pipes_unix.c:910,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:914,1
    - Dst: assert
      Src: /src/core/libpromises/pipes_unix.c:919,1
    - Dst: fclose
      Src: /src/core/libpromises/pipes_unix.c:920,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:924,1
    - Dst: assert
      Src: /src/core/libpromises/pipes_unix.c:931,1
    - Dst: fclose
      Src: /src/core/libpromises/pipes_unix.c:932,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:936,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:947,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:948,1
    - Dst: assert
      Src: /src/core/libpromises/pipes_unix.c:957,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:961,1
    - Dst: fclose
      Src: /src/core/libpromises/pipes_unix.c:967,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:975,1
    - Dst: fclose
      Src: /src/core/libpromises/pipes_unix.c:987,1
    - Dst: close
      Src: /src/core/libpromises/pipes_unix.c:995,1
    - Dst: cf_pwait
      Src: /src/core/libpromises/pipes_unix.c:1007,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 1
    argNames:
    - data
    argTypes:
    - IOData*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 908
        line_start: 908
        source_file: /src/core/libpromises/pipes_unix.c
    - condition: (data->read_fd >= 0)
      pos:
        line_end: 918
        line_start: 918
        source_file: /src/core/libpromises/pipes_unix.c
    - condition: (data->write_fd >= 0)
      pos:
        line_end: 930
        line_start: 930
        source_file: /src/core/libpromises/pipes_unix.c
    - condition: (pid == CHILDREN[data->write_fd])
      pos:
        line_end: 956
        line_start: 956
        source_file: /src/core/libpromises/pipes_unix.c
    constantsTouched: []
    func_position:
      end: 1008
      start: 907
    functionDepth: 9
    functionLinenumber: 907
    functionLinenumberEnd: 1008
    functionName: cf_pclose_full_duplex
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - assert
    - ThreadUnlock
    - Log
    - fclose
    - cf_pwait
    - close
    linkageType: ''
    returnType: int
    signature: int cf_pclose_full_duplex(IOData *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/core/libpromises/pipes_unix.c:1012,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/pipes_unix.c:1013,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:1017,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/pipes_unix.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pid
    - pp
    argTypes:
    - pid_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1025
    functionName: PipeToPid
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 1
    functionsReached:
    - ThreadUnlock
    - ThreadLock
    - fileno
    linkageType: ''
    returnType: bool
    signature: bool PipeToPid(pid_t *pid, FILE *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:1035,1
    - Dst: setgid
      Src: /src/core/libpromises/pipes_unix.c:1037,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:1039,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:1039,1
    - Dst: getpwuid
      Src: /src/core/libpromises/pipes_unix.c:1045,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:1047,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:1047,1
    - Dst: initgroups
      Src: /src/core/libpromises/pipes_unix.c:1051,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:1053,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:1054,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:1061,1
    - Dst: setuid
      Src: /src/core/libpromises/pipes_unix.c:1063,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:1065,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:1065,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - uid
    - gid
    argTypes:
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1029
    functionDepth: 8
    functionLinenumber: 1029
    functionLinenumberEnd: 1071
    functionName: CfSetuid
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - initgroups
    - setgid
    - Log
    - setuid
    - getpwuid
    linkageType: ''
    returnType: bool
    signature: bool CfSetuid(uid_t uid, gid_t gid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/core/libpromises/pipes_unix.c:1078,1
    - Dst: FD_SET
      Src: /src/core/libpromises/pipes_unix.c:1079,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:1086,1
    - Dst: select
      Src: /src/core/libpromises/pipes_unix.c:1090,1
    - Dst: Log
      Src: /src/core/libpromises/pipes_unix.c:1094,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes_unix.c:1095,1
    - Dst: FD_ISSET
      Src: /src/core/libpromises/pipes_unix.c:1098,1
    - Dst: UnexpectedError
      Src: /src/core/libpromises/pipes_unix.c:1109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - io
    - timeout_sec
    argTypes:
    - IOData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1075
    functionDepth: 8
    functionLinenumber: 1075
    functionLinenumberEnd: 1112
    functionName: PipeIsReadWriteReady
    functionSourceFile: /src/core/libpromises/pipes_unix.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - FD_ISSET
    - FD_SET
    - UnexpectedError
    - FD_ZERO
    - Log
    - select
    linkageType: ''
    returnType: int
    signature: int PipeIsReadWriteReady(const IOData *io, int timeout_sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: IsPendingTermination
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsPendingTermination(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: ReloadConfigRequested
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ReloadConfigRequested(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: ClearRequestReloadConfig
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClearRequestReloadConfig()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: RequestReloadConfig
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RequestReloadConfig()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/core/libpromises/signals.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: CloseSignalPipe
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void CloseSignalPipe(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/core/libpromises/signals.c:84,1
    - Dst: Log
      Src: /src/core/libpromises/signals.c:86,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/signals.c:87,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/signals.c:88,1
    - Dst: RegisterCleanupFunction
      Src: /src/core/libpromises/signals.c:91,1
    - Dst: ioctlsocket
      Src: /src/core/libpromises/signals.c:97,1
    - Dst: fcntl
      Src: /src/core/libpromises/signals.c:100,1
    - Dst: Log
      Src: /src/core/libpromises/signals.c:106,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/signals.c:109,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/signals.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 114
    functionName: MakeSignalPipe
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - DoCleanupAndExit
    - ioctlsocket
    - fcntl
    - Log
    - RegisterCleanupFunction
    - socketpair
    linkageType: ''
    returnType: void
    signature: void MakeSignalPipe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: GetSignalPipe
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetSignalPipe(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/core/libpromises/signals.c:132,1
    - Dst: Log
      Src: /src/core/libpromises/signals.c:143,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/signals.c:144,1
    - Dst: _exit
      Src: /src/core/libpromises/signals.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: SignalNotify
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - send
    - Log
    - _exit
    linkageType: ''
    returnType: void
    signature: void SignalNotify(int signum)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TerminateCustomPromises
      Src: /src/core/libpromises/signals.c:159,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/signals.c:160,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/signals.c:166,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/signals.c:167,1
    - Dst: open
      Src: /src/core/libpromises/signals.c:168,1
    - Dst: close
      Src: /src/core/libpromises/signals.c:171,1
    - Dst: fprintf
      Src: /src/core/libpromises/signals.c:175,1
    - Dst: _exit
      Src: /src/core/libpromises/signals.c:179,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/libpromises/signals.c:183,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/libpromises/signals.c:186,1
    - Dst: SignalNotify
      Src: /src/core/libpromises/signals.c:193,1
    - Dst: signal
      Src: /src/core/libpromises/signals.c:196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 151
    functionDepth: 9
    functionLinenumber: 151
    functionLinenumberEnd: 197
    functionName: HandleSignalsForAgent
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - SignalNotify
    - TerminateCustomPromises
    - LogSetGlobalLevel
    - GetStateDir
    - _exit
    - open
    - xsnprintf
    - fprintf
    - signal
    - close
    linkageType: ''
    returnType: void
    signature: void HandleSignalsForAgent(int signum)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/libpromises/signals.c:216,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/signals.c:217,1
    - Dst: open
      Src: /src/core/libpromises/signals.c:218,1
    - Dst: close
      Src: /src/core/libpromises/signals.c:221,1
    - Dst: fprintf
      Src: /src/core/libpromises/signals.c:225,1
    - Dst: _exit
      Src: /src/core/libpromises/signals.c:229,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/libpromises/signals.c:233,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/libpromises/signals.c:236,1
    - Dst: SignalNotify
      Src: /src/core/libpromises/signals.c:248,1
    - Dst: signal
      Src: /src/core/libpromises/signals.c:251,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 201
    functionDepth: 9
    functionLinenumber: 201
    functionLinenumberEnd: 252
    functionName: HandleSignalsForDaemon
    functionSourceFile: /src/core/libpromises/signals.c
    functionUses: 0
    functionsReached:
    - SignalNotify
    - LogSetGlobalLevel
    - GetStateDir
    - _exit
    - open
    - xsnprintf
    - fprintf
    - signal
    - close
    linkageType: ''
    returnType: void
    signature: void HandleSignalsForDaemon(int signum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - path
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: GetLastFileSeparator
    functionSourceFile: /src/core/libpromises/changes_chroot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetLastFileSeparator(const char *path, const char *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/changes_chroot.c:52,1
    - Dst: strncpy
      Src: /src/core/libpromises/changes_chroot.c:55,1
    - Dst: strncpy
      Src: /src/core/libpromises/changes_chroot.c:60,1
    - Dst: GetLastFileSeparator
      Src: /src/core/libpromises/changes_chroot.c:63,1
    - Dst: access
      Src: /src/core/libpromises/changes_chroot.c:67,1
    - Dst: GetLastFileSeparator
      Src: /src/core/libpromises/changes_chroot.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - path
    - buf
    argTypes:
    - char*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 77
    functionName: GetFirstNonExistingParentDir
    functionSourceFile: /src/core/libpromises/changes_chroot.c
    functionUses: 0
    functionsReached:
    - access
    - GetLastFileSeparator
    - strncpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *GetFirstNonExistingParentDir(const char *path, char buf[PATH_MAX])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:81,1
    - Dst: CopyFilePermissionsDisk
      Src: /src/core/libpromises/changes_chroot.c:83,1
    - Dst: strlen
      Src: /src/core/libpromises/changes_chroot.c:88,1
    - Dst: strcpy
      Src: /src/core/libpromises/changes_chroot.c:90,1
    - Dst: strlen
      Src: /src/core/libpromises/changes_chroot.c:93,1
    - Dst: GetLastFileSeparator
      Src: /src/core/libpromises/changes_chroot.c:95,1
    - Dst: CopyFilePermissionsDisk
      Src: /src/core/libpromises/changes_chroot.c:101,1
    - Dst: GetLastFileSeparator
      Src: /src/core/libpromises/changes_chroot.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 110
    functionName: MirrorDirTreePermsToChroot
    functionSourceFile: /src/core/libpromises/changes_chroot.c
    functionUses: 0
    functionsReached:
    - strlen
    - CopyFilePermissionsDisk
    - GetLastFileSeparator
    - ToChangesChroot
    - strcpy
    linkageType: ''
    returnType: bool
    signature: bool MirrorDirTreePermsToChroot(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/changes_chroot.c:119,1
    - Dst: readlink
      Src: /src/core/libpromises/changes_chroot.c:123,1
    - Dst: IsAbsPath
      Src: /src/core/libpromises/changes_chroot.c:131,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:133,1
    - Dst: symlink
      Src: /src/core/libpromises/changes_chroot.c:134,1
    - Dst: PrepareChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:141,1
    - Dst: symlink
      Src: /src/core/libpromises/changes_chroot.c:146,1
    - Dst: ExpandLinks
      Src: /src/core/libpromises/changes_chroot.c:154,1
    - Dst: PrepareChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - path
    - chrooted_path
    - sb
    argTypes:
    - char*
    - char*
    - struct stat*
    assertStmts:
    - condition: (sb != NULL)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/core/libpromises/changes_chroot.c
    constantsTouched: []
    func_position:
      end: 162
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 162
    functionName: ChrootSymlinkDeep
    functionSourceFile: /src/core/libpromises/changes_chroot.c
    functionUses: 0
    functionsReached:
    - ExpandLinks
    - readlink
    - assert
    - IsAbsPath
    - PrepareChangesChroot
    - ToChangesChroot
    - symlink
    linkageType: ''
    returnType: void
    signature: void ChrootSymlinkDeep(const char *path, const char *chrooted_path,
      struct stat *sb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libpromises/changes_chroot.c:172,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:172,1
    - Dst: lstat
      Src: /src/core/libpromises/changes_chroot.c:173,1
    - Dst: free
      Src: /src/core/libpromises/changes_chroot.c:176,1
    - Dst: GetFirstNonExistingParentDir
      Src: /src/core/libpromises/changes_chroot.c:182,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/changes_chroot.c:183,1
    - Dst: MirrorDirTreePermsToChroot
      Src: /src/core/libpromises/changes_chroot.c:184,1
    - Dst: lstat
      Src: /src/core/libpromises/changes_chroot.c:187,1
    - Dst: S_ISLNK
      Src: /src/core/libpromises/changes_chroot.c:194,1
    - Dst: ChrootSymlinkDeep
      Src: /src/core/libpromises/changes_chroot.c:196,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/changes_chroot.c:200,1
    - Dst: mkdir
      Src: /src/core/libpromises/changes_chroot.c:202,1
    - Dst: DirOpen
      Src: /src/core/libpromises/changes_chroot.c:203,1
    - Dst: free
      Src: /src/core/libpromises/changes_chroot.c:207,1
    - Dst: DirRead
      Src: /src/core/libpromises/changes_chroot.c:211,1
    - Dst: DirRead
      Src: /src/core/libpromises/changes_chroot.c:211,1
    - Dst: StringEqual
      Src: /src/core/libpromises/changes_chroot.c:213,1
    - Dst: StringEqual
      Src: /src/core/libpromises/changes_chroot.c:213,1
    - Dst: strlcpy
      Src: /src/core/libpromises/changes_chroot.c:218,1
    - Dst: JoinPaths
      Src: /src/core/libpromises/changes_chroot.c:219,1
    - Dst: PrepareChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:220,1
    - Dst: DirClose
      Src: /src/core/libpromises/changes_chroot.c:222,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/libpromises/changes_chroot.c:227,1
    - Dst: CopyFilePermissionsDisk
      Src: /src/core/libpromises/changes_chroot.c:229,1
    - Dst: free
      Src: /src/core/libpromises/changes_chroot.c:231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 165
    functionDepth: 9
    functionLinenumber: 165
    functionLinenumberEnd: 232
    functionName: PrepareChangesChroot
    functionSourceFile: /src/core/libpromises/changes_chroot.c
    functionUses: 2
    functionsReached:
    - MirrorDirTreePermsToChroot
    - CopyRegularFileDisk
    - ChrootSymlinkDeep
    - CopyFilePermissionsDisk
    - MakeParentDirectory
    - free
    - strlcpy
    - mkdir
    - StringEqual
    - DirOpen
    - lstat
    - xstrdup
    - PrepareChangesChroot
    - S_ISLNK
    - GetFirstNonExistingParentDir
    - DirRead
    - S_ISDIR
    - JoinPaths
    - DirClose
    - ToChangesChroot
    linkageType: ''
    returnType: void
    signature: void PrepareChangesChroot(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libpromises/changes_chroot.c:236,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:236,1
    - Dst: FileWriter
      Src: /src/core/libpromises/changes_chroot.c:237,1
    - Dst: WriteLenPrefixedString
      Src: /src/core/libpromises/changes_chroot.c:239,1
    - Dst: WriterClose
      Src: /src/core/libpromises/changes_chroot.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 243
    functionName: RecordFileChangedInChroot
    functionSourceFile: /src/core/libpromises/changes_chroot.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - WriterClose
    - WriteLenPrefixedString
    - safe_fopen
    - ToChangesChroot
    linkageType: ''
    returnType: bool
    signature: bool RecordFileChangedInChroot(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libpromises/changes_chroot.c:247,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:247,1
    - Dst: FileWriter
      Src: /src/core/libpromises/changes_chroot.c:248,1
    - Dst: WriteLenPrefixedString
      Src: /src/core/libpromises/changes_chroot.c:250,1
    - Dst: WriteLenPrefixedString
      Src: /src/core/libpromises/changes_chroot.c:251,1
    - Dst: WriterClose
      Src: /src/core/libpromises/changes_chroot.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - old_name
    - new_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: RecordFileRenamedInChroot
    functionSourceFile: /src/core/libpromises/changes_chroot.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - WriterClose
    - WriteLenPrefixedString
    - safe_fopen
    - ToChangesChroot
    linkageType: ''
    returnType: bool
    signature: bool RecordFileRenamedInChroot(const char *old_name, const char *new_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libpromises/changes_chroot.c:259,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:259,1
    - Dst: FileWriter
      Src: /src/core/libpromises/changes_chroot.c:260,1
    - Dst: WriteLenPrefixedString
      Src: /src/core/libpromises/changes_chroot.c:262,1
    - Dst: WriterClose
      Src: /src/core/libpromises/changes_chroot.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: RecordFileEvaluatedInChroot
    functionSourceFile: /src/core/libpromises/changes_chroot.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - WriterClose
    - WriteLenPrefixedString
    - safe_fopen
    - ToChangesChroot
    linkageType: ''
    returnType: bool
    signature: bool RecordFileEvaluatedInChroot(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/changes_chroot.c:270,1
    - Dst: assert
      Src: /src/core/libpromises/changes_chroot.c:271,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/changes_chroot.c:274,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/changes_chroot.c:274,1
    - Dst: Log
      Src: /src/core/libpromises/changes_chroot.c:277,1
    - Dst: FileWriter
      Src: /src/core/libpromises/changes_chroot.c:282,1
    - Dst: Log
      Src: /src/core/libpromises/changes_chroot.c:285,1
    - Dst: fclose
      Src: /src/core/libpromises/changes_chroot.c:287,1
    - Dst: CsvWriterOpen
      Src: /src/core/libpromises/changes_chroot.c:291,1
    - Dst: Log
      Src: /src/core/libpromises/changes_chroot.c:294,1
    - Dst: WriterClose
      Src: /src/core/libpromises/changes_chroot.c:296,1
    - Dst: CsvWriterField
      Src: /src/core/libpromises/changes_chroot.c:300,1
    - Dst: CsvWriterField
      Src: /src/core/libpromises/changes_chroot.c:301,1
    - Dst: CsvWriterField
      Src: /src/core/libpromises/changes_chroot.c:302,1
    - Dst: NULL_TO_EMPTY_STRING
      Src: /src/core/libpromises/changes_chroot.c:302,1
    - Dst: CsvWriterField
      Src: /src/core/libpromises/changes_chroot.c:303,1
    - Dst: NULL_TO_EMPTY_STRING
      Src: /src/core/libpromises/changes_chroot.c:303,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/libpromises/changes_chroot.c:305,1
    - Dst: CsvWriterClose
      Src: /src/core/libpromises/changes_chroot.c:306,1
    - Dst: WriterClose
      Src: /src/core/libpromises/changes_chroot.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 4
    argNames:
    - op
    - name
    - arch
    - version
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/core/libpromises/changes_chroot.c
    - condition: (op != NULL)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/core/libpromises/changes_chroot.c
    constantsTouched: []
    func_position:
      end: 310
      start: 268
    functionDepth: 8
    functionLinenumber: 268
    functionLinenumberEnd: 310
    functionName: RecordPkgOperationInChroot
    functionSourceFile: /src/core/libpromises/changes_chroot.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - WriterClose
    - assert
    - CsvWriterClose
    - NULL_TO_EMPTY_STRING
    - safe_fopen
    - CsvWriterOpen
    - Log
    - CsvWriterField
    - fclose
    - ToChangesChroot
    - CsvWriterNewRecord
    linkageType: ''
    returnType: bool
    signature: bool RecordPkgOperationInChroot(const char *op, const char *name, const
      char *arch, const char *version)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IsCf3Scalar
      Src: /src/core/libpromises/vars.c:57,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/vars.c:57,1
    - Dst: strstr
      Src: /src/core/libpromises/vars.c:59,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/vars.c:59,1
    - Dst: strstr
      Src: /src/core/libpromises/vars.c:59,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/vars.c:59,1
    - Dst: strstr
      Src: /src/core/libpromises/vars.c:60,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/vars.c:60,1
    - Dst: strstr
      Src: /src/core/libpromises/vars.c:60,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/vars.c:60,1
    - Dst: strstr
      Src: /src/core/libpromises/vars.c:61,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/vars.c:61,1
    - Dst: strstr
      Src: /src/core/libpromises/vars.c:61,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/vars.c:61,1
    - Dst: strstr
      Src: /src/core/libpromises/vars.c:62,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/vars.c:62,1
    - Dst: strstr
      Src: /src/core/libpromises/vars.c:62,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/vars.c:62,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 75
    functionName: RlistIsUnresolved
    functionSourceFile: /src/core/libpromises/vars.c
    functionUses: 0
    functionsReached:
    - strstr
    - IsCf3Scalar
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool RlistIsUnresolved(const Rlist *list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/vars.c:81,1
    - Dst: strpbrk
      Src: /src/core/libpromises/vars.c:93,1
    - Dst: strncmp
      Src: /src/core/libpromises/vars.c:109,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 2
    argNames:
    - s
    - v
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 119
    functionName: StringContainsVar
    functionSourceFile: /src/core/libpromises/vars.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - strncmp
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool StringContainsVar(const char *s, const char *v)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/vars.c:188,1
    - Dst: yyerror
      Src: /src/core/libpromises/vars.c:189,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 194
    functionName: IsCf3VarString
    functionSourceFile: /src/core/libpromises/vars.c
    functionUses: 6
    functionsReached:
    - snprintf
    - yyerror
    linkageType: ''
    returnType: bool
    signature: bool IsCf3VarString(const char *str)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/vars.c:263,1
    - Dst: yyerror
      Src: /src/core/libpromises/vars.c:264,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 44
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 269
    functionName: IsCf3Scalar
    functionSourceFile: /src/core/libpromises/vars.c
    functionUses: 1
    functionsReached:
    - snprintf
    - yyerror
    linkageType: ''
    returnType: bool
    signature: bool IsCf3Scalar(char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/vars.c:274,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/vars.c:295,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/vars.c:303,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - out
    - str
    - len
    argTypes:
    - Buffer*
    - char*
    - size_t
    assertStmts:
    - condition: (str)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/core/libpromises/vars.c
    constantsTouched: []
    func_position:
      end: 308
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 308
    functionName: ExtractScalarPrefix
    functionSourceFile: /src/core/libpromises/vars.c
    functionUses: 1
    functionsReached:
    - assert
    - BufferAppend
    linkageType: ''
    returnType: size_t
    signature: size_t ExtractScalarPrefix(Buffer *out, const char *str, size_t len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/vars.c:312,1
    - Dst: assert
      Src: /src/core/libpromises/vars.c:313,1
    - Dst: assert
      Src: /src/core/libpromises/vars.c:314,1
    - Dst: Log
      Src: /src/core/libpromises/vars.c:333,1
    - Dst: Log
      Src: /src/core/libpromises/vars.c:341,1
    - Dst: Log
      Src: /src/core/libpromises/vars.c:350,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (len > 1)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/core/libpromises/vars.c
    - condition: (str[1] == '{' || str[1] == '(')
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/core/libpromises/vars.c
    - condition: (str[0] == '$')
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/core/libpromises/vars.c
    constantsTouched: []
    func_position:
      end: 365
      start: 310
    functionDepth: 8
    functionLinenumber: 310
    functionLinenumberEnd: 365
    functionName: ReferenceEnd
    functionSourceFile: /src/core/libpromises/vars.c
    functionUses: 0
    functionsReached:
    - assert
    - Log
    linkageType: ''
    returnType: char
    signature: char *ReferenceEnd(const char *str, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/core/libpromises/vars.c:378,1
    - Dst: ReferenceEnd
      Src: /src/core/libpromises/vars.c:390,1
    - Dst: ExtractScalarReference
      Src: /src/core/libpromises/vars.c:394,1
    - Dst: Log
      Src: /src/core/libpromises/vars.c:401,1
    - Dst: Log
      Src: /src/core/libpromises/vars.c:409,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/vars.c:416,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/vars.c:420,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - out
    - str
    - len
    - extract_inner
    argTypes:
    - Buffer*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 371
    functionDepth: 9
    functionLinenumber: 371
    functionLinenumberEnd: 424
    functionName: ExtractScalarReference
    functionSourceFile: /src/core/libpromises/vars.c
    functionUses: 3
    functionsReached:
    - BufferAppend
    - ExtractScalarReference
    - Log
    - ReferenceEnd
    - memchr
    linkageType: ''
    returnType: bool
    signature: bool ExtractScalarReference(Buffer *out, const char *str, size_t len,
      bool extract_inner)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - var
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 453
    functionName: IsQualifiedVariable
    functionSourceFile: /src/core/libpromises/vars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsQualifiedVariable(const char *var)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessState
      Src: /src/core/libpromises/process_unix.c:50,1
    - Dst: MIN
      Src: /src/core/libpromises/process_unix.c:66,1
    - Dst: nanosleep
      Src: /src/core/libpromises/process_unix.c:69,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/process_unix.c:73,1
    - Dst: MAX
      Src: /src/core/libpromises/process_unix.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pid
    - timeout_ns
    argTypes:
    - pid_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: ProcessWaitUntilStopped
    functionSourceFile: /src/core/libpromises/process_unix.c
    functionUses: 0
    functionsReached:
    - MAX
    - GetProcessState
    - nanosleep
    - MIN
    - ProgrammingError
    linkageType: ''
    returnType: bool
    signature: bool ProcessWaitUntilStopped(pid_t pid, long timeout_ns)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/process_unix.c:88,1
    - Dst: GetProcessState
      Src: /src/core/libpromises/process_unix.c:92,1
    - Dst: MIN
      Src: /src/core/libpromises/process_unix.c:111,1
    - Dst: Log
      Src: /src/core/libpromises/process_unix.c:114,1
    - Dst: nanosleep
      Src: /src/core/libpromises/process_unix.c:118,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/process_unix.c:122,1
    - Dst: MAX
      Src: /src/core/libpromises/process_unix.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pid
    - timeout_ns
    argTypes:
    - pid_t
    - long
    assertStmts:
    - condition: (timeout_ns < 1000000000)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/core/libpromises/process_unix.c
    constantsTouched: []
    func_position:
      end: 130
      start: 86
    functionDepth: 8
    functionLinenumber: 86
    functionLinenumberEnd: 130
    functionName: ProcessWaitUntilExited
    functionSourceFile: /src/core/libpromises/process_unix.c
    functionUses: 0
    functionsReached:
    - MAX
    - GetProcessState
    - nanosleep
    - assert
    - MIN
    - Log
    - ProgrammingError
    linkageType: ''
    returnType: bool
    signature: bool ProcessWaitUntilExited(pid_t pid, long timeout_ns)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStartTime
      Src: /src/core/libpromises/process_unix.c:173,1
    - Dst: kill
      Src: /src/core/libpromises/process_unix.c:184,1
    - Dst: ProcessWaitUntilStopped
      Src: /src/core/libpromises/process_unix.c:189,1
    - Dst: kill
      Src: /src/core/libpromises/process_unix.c:194,1
    - Dst: GetProcessStartTime
      Src: /src/core/libpromises/process_unix.c:201,1
    - Dst: kill
      Src: /src/core/libpromises/process_unix.c:206,1
    - Dst: kill
      Src: /src/core/libpromises/process_unix.c:213,1
    - Dst: kill
      Src: /src/core/libpromises/process_unix.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - pid
    - expected_start_time
    - signal
    argTypes:
    - pid_t
    - time_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 225
    functionName: SafeKill
    functionSourceFile: /src/core/libpromises/process_unix.c
    functionUses: 0
    functionsReached:
    - kill
    - GetProcessStartTime
    - ProcessWaitUntilStopped
    linkageType: ''
    returnType: int
    signature: int SafeKill(pid_t pid, time_t expected_start_time, int signal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/core/libpromises/process_unix.c:232,1
    - Dst: SafeKill
      Src: /src/core/libpromises/process_unix.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pid
    - process_start_time
    - signal
    argTypes:
    - pid_t
    - time_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: Kill
    functionSourceFile: /src/core/libpromises/process_unix.c
    functionUses: 1
    functionsReached:
    - kill
    - SafeKill
    linkageType: ''
    returnType: int
    signature: int Kill(pid_t pid, time_t process_start_time, int signal)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/core/libpromises/process_unix.c:245,1
    - Dst: Log
      Src: /src/core/libpromises/process_unix.c:247,1
    - Dst: Kill
      Src: /src/core/libpromises/process_unix.c:253,1
    - Dst: ProcessWaitUntilExited
      Src: /src/core/libpromises/process_unix.c:261,1
    - Dst: Kill
      Src: /src/core/libpromises/process_unix.c:266,1
    - Dst: ProcessWaitUntilExited
      Src: /src/core/libpromises/process_unix.c:271,1
    - Dst: Kill
      Src: /src/core/libpromises/process_unix.c:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - pid
    - process_start_time
    argTypes:
    - pid_t
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 241
    functionDepth: 9
    functionLinenumber: 241
    functionLinenumberEnd: 282
    functionName: GracefulTerminate
    functionSourceFile: /src/core/libpromises/process_unix.c
    functionUses: 8
    functionsReached:
    - ProcessWaitUntilExited
    - Log
    - getpid
    - Kill
    linkageType: ''
    returnType: bool
    signature: bool GracefulTerminate(pid_t pid, time_t process_start_time)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - call_type
    argTypes:
    - FnCallType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: FnNumArgs
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int FnNumArgs(const FnCallType *call_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: FnReturn
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnReturn(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: FnReturnNoCopy
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnReturnNoCopy(char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferClose
      Src: /src/core/libpromises/evalfunction.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: FnReturnBuffer
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BufferClose
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnReturnBuffer(Buffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - container
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: FnReturnContainerNoCopy
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnReturnContainerNoCopy(JsonElement *container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:181,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/evalfunction.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - container
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: FnReturnContainer
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonCopy
    - FnReturnContainerNoCopy
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnReturnContainer(JsonElement *container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libpromises/evalfunction.c:190,1
    - Dst: xvasprintf
      Src: /src/core/libpromises/evalfunction.c:192,1
    - Dst: va_end
      Src: /src/core/libpromises/evalfunction.c:193,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: FnReturnF
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnNoCopy
    - xvasprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnReturnF(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: FnReturnContext
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturn
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnReturnContext(bool result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: FnFailure
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnFailure(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsVarList
      Src: /src/core/libpromises/evalfunction.c:211,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:212,1
    - Dst: GetNaked
      Src: /src/core/libpromises/evalfunction.c:215,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:216,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:220,1
    - Dst: VarRefIsQualified
      Src: /src/core/libpromises/evalfunction.c:223,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:227,1
    - Dst: VarRefQualify
      Src: /src/core/libpromises/evalfunction.c:228,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:232,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - fp
    - varname
    argTypes:
    - FnCall*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 207
    functionDepth: 8
    functionLinenumber: 207
    functionLinenumberEnd: 243
    functionName: ResolveAndQualifyVarName
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - VarRefIsQualified
    - strlen
    - VarRefQualify
    - VarRefDestroy
    - Log
    - VarRefParse
    - IsVarList
    - GetNaked
    linkageType: ''
    returnType: VarRef
    signature: VarRef * ResolveAndQualifyVarName(const FnCall *fp, const char *varname)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:249,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/evalfunction.c:252,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/evalfunction.c:270,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:273,1
    - Dst: RlistLen
      Src: /src/core/libpromises/evalfunction.c:273,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/evalfunction.c:278,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:278,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:282,1
    - Dst: RvalTypeToString
      Src: /src/core/libpromises/evalfunction.c:283,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/evalfunction.c:292,1
    - Dst: JsonStringCreate
      Src: /src/core/libpromises/evalfunction.c:301,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:309,1
    - Dst: EvalContextVariableTableFromRefIteratorNew
      Src: /src/core/libpromises/evalfunction.c:319,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:320,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/evalfunction.c:325,1
    - Dst: VariableGetRef
      Src: /src/core/libpromises/evalfunction.c:329,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:336,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/evalfunction.c:340,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:343,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/evalfunction.c:344,1
    - Dst: VariableGetRval
      Src: /src/core/libpromises/evalfunction.c:355,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:359,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:361,1
    - Dst: JsonGetPropertyAsString
      Src: /src/core/libpromises/evalfunction.c:364,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:366,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:368,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:374,1
    - Dst: JsonGetPropertyAsString
      Src: /src/core/libpromises/evalfunction.c:374,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libpromises/evalfunction.c:375,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:378,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:380,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/evalfunction.c:384,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:385,1
    - Dst: VariableGetRval
      Src: /src/core/libpromises/evalfunction.c:387,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:388,1
    - Dst: JsonGetPropertyAsString
      Src: /src/core/libpromises/evalfunction.c:390,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:395,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:402,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/evalfunction.c:403,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/evalfunction.c:407,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:407,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/evalfunction.c:410,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/libpromises/evalfunction.c:420,1
    - Dst: JsonLength
      Src: /src/core/libpromises/evalfunction.c:422,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/evalfunction.c:424,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:425,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:427,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:428,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/evalfunction.c:438,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:439,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:441,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 100
    argCount: 7
    argNames:
    - ctx
    - fp
    - ref
    - disallowed_datatypes
    - disallowed_count
    - allow_scalars
    - allocated
    argTypes:
    - EvalContext*
    - FnCall*
    - VarRef*
    - DataType[]
    - size_t
    - bool
    - bool*
    assertStmts:
    - condition: (holder_parent != NULL)
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (ref)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 445
      start: 245
    functionDepth: 8
    functionLinenumber: 245
    functionLinenumberEnd: 445
    functionName: VarRefValueToJson
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendObject
    - Log
    - RlistScalarValue
    - JsonObjectGet
    - DataTypeToRvalType
    - free
    - RvalRlistValue
    - VariableGetRef
    - RlistLen
    - JsonCopy
    - JsonGetElementType
    - VariableTableIteratorNext
    - xstrdup
    - JsonObjectCreate
    - JsonStringCreate
    - VarRefToString
    - assert
    - EvalContextVariableTableFromRefIteratorNew
    - JsonGetPropertyAsString
    - JsonObjectAppendString
    - JsonLength
    - JsonDestroy
    - JsonObjectAppendElement
    - VariableGetRval
    - EvalContextVariableGet
    - RvalTypeToString
    - VariableTableIteratorDestroy
    - JsonObjectAppendArray
    - ProgrammingError
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement * VarRefValueToJson(const EvalContext *ctx, const FnCall
      *fp, const VarRef *ref,\n                                      const DataType
      disallowed_datatypes[], size_t disallowed_count,\n                                      bool
      allow_scalars, bool *allocated)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchCaptures
      Src: /src/core/libpromises/evalfunction.c:450,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:452,1
    - Dst: BufferCopy
      Src: /src/core/libpromises/evalfunction.c:454,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:454,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:459,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:465,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:465,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:467,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:467,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:468,1
    - Dst: VarRefValueToJson
      Src: /src/core/libpromises/evalfunction.c:477,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:478,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/evalfunction.c:483,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - void*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 447
    functionDepth: 9
    functionLinenumber: 447
    functionLinenumberEnd: 487
    functionName: LookupVarRefToJson
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BufferData
    - SeqDestroy
    - BufferDestroy
    - strlen
    - JsonCopy
    - StringMatchCaptures
    - VarRefDestroy
    - VarRefParse
    - VarRefValueToJson
    - SeqLength
    - BufferCopy
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *LookupVarRefToJson(void *ctx, const char **data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:493,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:500,1
    - Dst: JsonParseWithLookup
      Src: /src/core/libpromises/evalfunction.c:502,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:506,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:508,1
    - Dst: ResolveAndQualifyVarName
      Src: /src/core/libpromises/evalfunction.c:518,1
    - Dst: VarRefValueToJson
      Src: /src/core/libpromises/evalfunction.c:524,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - fp
    - rp
    - allow_scalars
    - allocated
    argTypes:
    - EvalContext*
    - FnCall*
    - Rlist*
    - bool
    - bool*
    assertStmts:
    - condition: (rp)
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 528
      start: 489
    functionDepth: 9
    functionLinenumber: 489
    functionLinenumberEnd: 528
    functionName: VarNameOrInlineToJson
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ResolveAndQualifyVarName
    - JsonDestroy
    - assert
    - JsonGetElementType
    - JsonParseWithLookup
    - VarRefDestroy
    - VarRefValueToJson
    - RlistScalarValue
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * VarNameOrInlineToJson(EvalContext *ctx, const FnCall
      *fp, const Rlist* rp, bool allow_scalars, bool *allocated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/evalfunction.c:538,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/evalfunction.c:539,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/evalfunction.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - address
    - hostkey
    - lastseen
    argTypes:
    - char*
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: HostDataNew
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - SafeStringDuplicate
    - xmalloc
    linkageType: ''
    returnType: HostData
    signature: HostData *HostDataNew(const char *address, const char *hostkey, time_t
      lastseen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:549,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:550,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hd
    argTypes:
    - HostData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 553
    functionName: HostDataFree
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void HostDataFree(HostData *hd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:564,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:568,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - field
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 562
    functionDepth: 4
    functionLinenumber: 562
    functionLinenumberEnd: 580
    functionName: ParseHostsSeenFieldOption
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - StringEqual
    linkageType: ''
    returnType: HostsSeenFieldOption
    signature: HostsSeenFieldOption ParseHostsSeenFieldOption(const char *field)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/libpromises/evalfunction.c:585,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:589,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:592,1
    - Dst: HostKeyAddressUnknown
      Src: /src/core/libpromises/evalfunction.c:596,1
    - Dst: IPString2Hostname
      Src: /src/core/libpromises/evalfunction.c:606,1
    - Dst: StringCopy
      Src: /src/core/libpromises/evalfunction.c:608,1
    - Dst: StringCopy
      Src: /src/core/libpromises/evalfunction.c:613,1
    - Dst: StringCopy
      Src: /src/core/libpromises/evalfunction.c:618,1
    - Dst: StringCopy
      Src: /src/core/libpromises/evalfunction.c:621,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:624,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:629,1
    - Dst: RlistKeyIn
      Src: /src/core/libpromises/evalfunction.c:631,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:633,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:637,1
    - Dst: RlistPrependScalarIdemp
      Src: /src/core/libpromises/evalfunction.c:638,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:643,1
    - Dst: RlistKeyIn
      Src: /src/core/libpromises/evalfunction.c:645,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:648,1
    - Dst: RlistDestroyEntry
      Src: /src/core/libpromises/evalfunction.c:649,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:652,1
    - Dst: RlistPrependScalarIdemp
      Src: /src/core/libpromises/evalfunction.c:653,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:659,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:664,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 4
    argNames:
    - host_data
    - horizon
    - return_what
    - return_recent
    argTypes:
    - Seq*
    - time_t
    - HostsSeenFieldOption
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 582
    functionDepth: 8
    functionLinenumber: 582
    functionLinenumberEnd: 667
    functionName: GetHostsFromLastseenDB
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - IPString2Hostname
    - RlistPrependScalarIdemp
    - HostKeyAddressUnknown
    - StringCopy
    - RlistDestroyEntry
    - Log
    - RlistDestroy
    - ProgrammingError
    - SeqLength
    - RlistKeyIn
    - time
    - SeqAt
    linkageType: ''
    returnType: Rlist
    signature: Rlist *GetHostsFromLastseenDB(Seq *host_data, time_t horizon, HostsSeenFieldOption
      return_what, bool return_recent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:677,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:678,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:679,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:681,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:682,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:683,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:683,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:683,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:687,1
    - Dst: GetACLs
      Src: /src/core/libpromises/evalfunction.c:689,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - final_args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (final_args->next != NULL)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (final_args != NULL)
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (StringEqual(type, "default") || StringEqual(type, "access"))
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 692
      start: 671
    functionDepth: 8
    functionLinenumber: 671
    functionLinenumberEnd: 692
    functionName: FnCallGetACLs
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - assert
    - GetACLs
    - Log
    - RlistScalarValue
    - StringEqual
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallGetACLs(\n    ARG_UNUSED EvalContext *ctx,\n    ARG_UNUSED
      const Policy *policy,\n    const FnCall *fp,\n    const Rlist *final_args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/evalfunction.c:704,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:707,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/evalfunction.c:707,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:713,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:713,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:715,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:719,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 720
    functionName: FnCallAnd
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - CheckConstraintTypeMatch
    - FatalError
    - IsDefinedClass
    - RlistScalarValue
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallAnd(EvalContext *ctx,\n                              ARG_UNUSED
      const Policy *policy,\n                              ARG_UNUSED const FnCall
      *fp,\n                              const Rlist *finalargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqAppend
      Src: /src/core/libpromises/evalfunction.c:728,1
    - Dst: HostDataNew
      Src: /src/core/libpromises/evalfunction.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hostkey
    - address
    - incoming
    - quality
    - ctx
    argTypes:
    - char*
    - char*
    - ARG_UNUSED
    - KeyHostSeen*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: CallHostsSeenCallback
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - HostDataNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: "bool CallHostsSeenCallback(const char *hostkey, const char *address,\n
      \                                 ARG_UNUSED bool incoming, const KeyHostSeen
      *quality,\n                                  void *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libpromises/evalfunction.c:736,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:738,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:738,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:739,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:740,1
    - Dst: ParseHostsSeenFieldOption
      Src: /src/core/libpromises/evalfunction.c:741,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:743,1
    - Dst: ScanLastSeenQuality
      Src: /src/core/libpromises/evalfunction.c:746,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:748,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:749,1
    - Dst: GetHostsFromLastseenDB
      Src: /src/core/libpromises/evalfunction.c:752,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:754,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:756,1
    - Dst: StringWriter
      Src: /src/core/libpromises/evalfunction.c:759,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/evalfunction.c:760,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/evalfunction.c:763,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:763,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:765,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/evalfunction.c:765,1
    - Dst: WriterClose
      Src: /src/core/libpromises/evalfunction.c:766,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 734
    functionDepth: 9
    functionLinenumber: 734
    functionLinenumberEnd: 775
    functionName: FnCallHostsSeen
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - WriterClose
    - StringEqual
    - WriterWrite
    - GetHostsFromLastseenDB
    - StringWriter
    - SeqNew
    - ParseHostsSeenFieldOption
    - FnFailure
    - Log
    - ScanLastSeenQuality
    - StringWriterData
    - RlistScalarValue
    - WriterWriteF
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallHostsSeen(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:781,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:784,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:785,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:786,1
    - Dst: ListHostsWithField
      Src: /src/core/libpromises/evalfunction.c:788,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:790,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:793,1
    - Dst: ListHostsWithField
      Src: /src/core/libpromises/evalfunction.c:795,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:797,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:802,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 807
      start: 779
    functionDepth: 4
    functionLinenumber: 779
    functionLinenumberEnd: 807
    functionName: FnCallHostsWithField
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - assert
    - ListHostsWithField
    - FnFailure
    - ProgrammingError
    - RlistScalarValue
    - StringEqual
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallHostsWithField(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:835,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - int*
    - int*
    assertStmts:
    - condition: (*to > *from)
      pos:
        line_end: 834
        line_start: 834
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 837
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 837
    functionName: int_range_convert
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int int_range_convert(int *from, int *to)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:843,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:846,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:846,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:847,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:847,1
    - Dst: int_range_convert
      Src: /src/core/libpromises/evalfunction.c:849,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:852,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:856,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:859,1
    - Dst: drand48
      Src: /src/core/libpromises/evalfunction.c:861,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts:
    - condition: (range > 0)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 864
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 864
    functionName: FnCallRandomInt
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - int_range_convert
    - assert
    - drand48
    - FnReturnF
    - FnFailure
    - RlistScalarValue
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRandomInt(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 878
    functionName: BytesToUInt64
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BytesToUInt64(uint8_t *bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:884,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:886,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:886,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:887,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:887,1
    - Dst: int_range_convert
      Src: /src/core/libpromises/evalfunction.c:889,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:892,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:896,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:898,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:900,1
    - Dst: memset
      Src: /src/core/libpromises/evalfunction.c:904,1
    - Dst: HashString
      Src: /src/core/libpromises/evalfunction.c:905,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:905,1
    - Dst: BytesToUInt64
      Src: /src/core/libpromises/evalfunction.c:906,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts:
    - condition: (range > 0)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 911
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 911
    functionName: FnCallHashToInt
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - int_range_convert
    - strlen
    - assert
    - FnReturnF
    - FnFailure
    - RlistScalarValue
    - BytesToUInt64
    - HashString
    - IntFromString
    - memset
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallHashToInt(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:919,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:920,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:920,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:922,1
    - Dst: getenv
      Src: /src/core/libpromises/evalfunction.c:924,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:926,1
    - Dst: getenv
      Src: /src/core/libpromises/evalfunction.c:926,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 930
    functionName: FnCallGetEnv
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - snprintf
    - getenv
    - FnReturn
    - RlistScalarValue
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetEnv(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:938,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:939,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:942,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:943,1
    - Dst: setpwent
      Src: /src/core/libpromises/evalfunction.c:945,1
    - Dst: getpwent
      Src: /src/core/libpromises/evalfunction.c:949,1
    - Dst: StringFromLong
      Src: /src/core/libpromises/evalfunction.c:951,1
    - Dst: RlistKeyIn
      Src: /src/core/libpromises/evalfunction.c:953,1
    - Dst: RlistKeyIn
      Src: /src/core/libpromises/evalfunction.c:953,1
    - Dst: RlistAppendScalarIdemp
      Src: /src/core/libpromises/evalfunction.c:955,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:958,1
    - Dst: endpwent
      Src: /src/core/libpromises/evalfunction.c:961,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:963,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 967
    functionName: FnCallGetUsers
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - endpwent
    - RlistAppendScalarIdemp
    - StringFromLong
    - RlistFromSplitString
    - setpwent
    - RlistDestroy
    - free
    - RlistScalarValue
    - getpwent
    - RlistKeyIn
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetUsers(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:973,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 8
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: FnCallGetUsers
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnFailure
    - Log
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetUsers(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, ARG_UNUSED const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:986,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:987,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:989,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:990,1
    - Dst: setgrent
      Src: /src/core/libpromises/evalfunction.c:992,1
    - Dst: getgrent
      Src: /src/core/libpromises/evalfunction.c:996,1
    - Dst: StringFromLong
      Src: /src/core/libpromises/evalfunction.c:998,1
    - Dst: RlistKeyIn
      Src: /src/core/libpromises/evalfunction.c:1000,1
    - Dst: RlistKeyIn
      Src: /src/core/libpromises/evalfunction.c:1000,1
    - Dst: RlistAppendScalarIdemp
      Src: /src/core/libpromises/evalfunction.c:1002,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:1005,1
    - Dst: endgrent
      Src: /src/core/libpromises/evalfunction.c:1008,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:1010,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:1011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 1014
    functionName: FnCallGetGroups
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - endgrent
    - getgrent
    - RlistAppendScalarIdemp
    - setgrent
    - StringFromLong
    - RlistFromSplitString
    - RlistDestroy
    - RlistScalarValue
    - free
    - RlistKeyIn
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetGroups(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1020,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1018
    functionDepth: 8
    functionLinenumber: 1018
    functionLinenumberEnd: 1022
    functionName: FnCallGetGroups
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnFailure
    - Log
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetGroups(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, ARG_UNUSED const Rlist *finalargs)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1033,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:1035,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1040,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:1041,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1042,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:1044,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1046,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:1047,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:1048,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1049,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:1052,1
    - Dst: setpwent
      Src: /src/core/libpromises/evalfunction.c:1053,1
    - Dst: getpwent
      Src: /src/core/libpromises/evalfunction.c:1055,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:1057,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/evalfunction.c:1059,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:1062,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1064,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:1065,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:1066,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:1067,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1068,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:1070,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:1071,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1072,1
    - Dst: TrimWhitespace
      Src: /src/core/libpromises/evalfunction.c:1073,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1073,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1077,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:1079,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:1080,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1081,1
    - Dst: TrimWhitespace
      Src: /src/core/libpromises/evalfunction.c:1083,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1083,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1085,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1087,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1092,1
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/evalfunction.c:1094,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:1095,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1099,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:1101,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:1102,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1103,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1105,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1107,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1112,1
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/evalfunction.c:1114,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:1115,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1119,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:1121,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:1122,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1123,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1125,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1127,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1132,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1134,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1139,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1141,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1146,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1148,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1155,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:1157,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:1158,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1159,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/evalfunction.c:1161,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:1165,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/evalfunction.c:1166,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/evalfunction.c:1167,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:1168,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:1169,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:1170,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/evalfunction.c:1171,1
    - Dst: endpwent
      Src: /src/core/libpromises/evalfunction.c:1174,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:1175,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:1177,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 90
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 1032
        line_start: 1032
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (tuple != NULL)
      pos:
        line_end: 1071
        line_start: 1071
        source_file: /src/core/libpromises/evalfunction.c
    - condition: ((size_t) ret < sizeof(gid_string))
      pos:
        line_end: 1124
        line_start: 1124
        source_file: /src/core/libpromises/evalfunction.c
    - condition: ((size_t) ret < sizeof(uid_string))
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 1178
      start: 1031
    functionDepth: 10
    functionLinenumber: 1031
    functionLinenumberEnd: 1178
    functionName: FnCallFindLocalUsers
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendObject
    - JsonDestroyMaybe
    - Log
    - RlistScalarValue
    - getpwent
    - StringEqual
    - endpwent
    - snprintf
    - JsonGetElementType
    - FnFailure
    - StringMatchFull
    - JsonPrimitiveGetAsString
    - JsonObjectCreate
    - TrimWhitespace
    - JsonIteratorInit
    - assert
    - VarNameOrInlineToJson
    - JsonObjectAppendString
    - JsonDestroy
    - PRINTSIZE
    - RlistScalarValueSafe
    - RlistFromSplitString
    - JsonObjectAppendInteger
    - setpwent
    - FnReturnContainerNoCopy
    - JsonIteratorNextValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFindLocalUsers(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1184,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1182
    functionDepth: 8
    functionLinenumber: 1182
    functionLinenumberEnd: 1186
    functionName: FnCallFindLocalUsers
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnFailure
    - Log
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFindLocalUsers(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, ARG_UNUSED const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1197,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1200,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - member
    - gr
    argTypes:
    - char*
    - struct group*
    assertStmts:
    - condition: (gr != NULL)
      pos:
        line_end: 1196
        line_start: 1196
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 1211
      start: 1194
    functionDepth: 3
    functionLinenumber: 1194
    functionLinenumberEnd: 1211
    functionName: GroupContainsMember
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - assert
    - StringMatchFull
    linkageType: ''
    returnType: bool
    signature: bool GroupContainsMember(const char *member, const struct group *gr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1215,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:1218,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/evalfunction.c:1219,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:1223,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1225,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:1228,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:1229,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1230,1
    - Dst: TrimWhitespace
      Src: /src/core/libpromises/evalfunction.c:1231,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1231,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1235,1
    - Dst: TrimWhitespace
      Src: /src/core/libpromises/evalfunction.c:1239,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1239,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1241,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1243,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1248,1
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/evalfunction.c:1250,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:1251,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1255,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1259,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:1261,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1266,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:1268,1
    - Dst: GroupContainsMember
      Src: /src/core/libpromises/evalfunction.c:1273,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1279,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/evalfunction.c:1283,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - gr
    - filter
    argTypes:
    - struct group*
    - JsonElement*
    assertStmts:
    - condition: (gr != NULL)
      pos:
        line_end: 1214
        line_start: 1214
        source_file: /src/core/libpromises/evalfunction.c
    - condition: ((size_t) ret < sizeof(gid_string))
      pos:
        line_end: 1258
        line_start: 1258
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (tuple != NULL)
      pos:
        line_end: 1229
        line_start: 1229
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 1286
      start: 1213
    functionDepth: 8
    functionLinenumber: 1213
    functionLinenumberEnd: 1286
    functionName: GroupMatchesFilter
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - RlistScalarValue
    - PRINTSIZE
    - snprintf
    - StringEqual
    - assert
    - JsonGetElementType
    - RlistFromSplitString
    - StringMatchFull
    - Log
    - JsonPrimitiveGetAsString
    - TrimWhitespace
    - GroupContainsMember
    - JsonIteratorNextValue
    linkageType: ''
    returnType: bool
    signature: bool GroupMatchesFilter(const struct group *gr, JsonElement *filter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1290,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:1292,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1297,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:1298,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1299,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:1301,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1303,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:1304,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:1305,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1306,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:1309,1
    - Dst: setgrent
      Src: /src/core/libpromises/evalfunction.c:1310,1
    - Dst: getgrent
      Src: /src/core/libpromises/evalfunction.c:1312,1
    - Dst: GroupMatchesFilter
      Src: /src/core/libpromises/evalfunction.c:1314,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:1316,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/evalfunction.c:1317,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:1319,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/evalfunction.c:1322,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/evalfunction.c:1324,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/evalfunction.c:1325,1
    - Dst: endgrent
      Src: /src/core/libpromises/evalfunction.c:1328,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:1329,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:1331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 1289
        line_start: 1289
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 1332
      start: 1288
    functionDepth: 10
    functionLinenumber: 1288
    functionLinenumberEnd: 1332
    functionName: FnCallFindLocalGroups
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContainerNoCopy
    - getgrent
    - RlistScalarValueSafe
    - JsonObjectAppendObject
    - assert
    - JsonGetElementType
    - setgrent
    - JsonDestroyMaybe
    - JsonObjectAppendInteger
    - FnFailure
    - Log
    - GroupMatchesFilter
    - JsonObjectAppendArray
    - VarNameOrInlineToJson
    - endgrent
    - JsonObjectCreate
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFindLocalGroups(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1338,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1336
    functionDepth: 8
    functionLinenumber: 1336
    functionLinenumberEnd: 1340
    functionName: FnCallFindLocalGroups
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnFailure
    - Log
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFindLocalGroups(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, ARG_UNUSED const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1353,1
    - Dst: EscapeSpecialChars
      Src: /src/core/libpromises/evalfunction.c:1355,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1358
    functionName: FnCallEscape
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturn
    - EscapeSpecialChars
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallEscape(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1364,1
    - Dst: Hostname2IPString
      Src: /src/core/libpromises/evalfunction.c:1367,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:1369,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:1375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1362
    functionDepth: 1
    functionLinenumber: 1362
    functionLinenumberEnd: 1378
    functionName: FnCallHost2IP
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - Hostname2IPString
    - FnReturn
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallHost2IP(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1388,1
    - Dst: IPString2Hostname
      Src: /src/core/libpromises/evalfunction.c:1390,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:1392,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:1398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1400
    functionName: FnCallIP2Host
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturn
    - IPString2Hostname
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallIP2Host(ARG_UNUSED EvalContext *ctx,\n                                  ARG_UNUSED
      ARG_UNUSED const Policy *policy,\n                                  ARG_UNUSED
      const FnCall *fp,\n                                  const Rlist *finalargs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:1410,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:1413,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/evalfunction.c:1415,1
    - Dst: GetRelocatedProcdirRoot
      Src: /src/core/libpromises/evalfunction.c:1415,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/evalfunction.c:1416,1
    - Dst: BufferNewFrom
      Src: /src/core/libpromises/evalfunction.c:1420,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1420,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:1421,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1421,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/evalfunction.c:1426,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libpromises/evalfunction.c:1427,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/evalfunction.c:1428,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:1428,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:1429,1
    - Dst: IsDir
      Src: /src/core/libpromises/evalfunction.c:1431,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:1431,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1433,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:1434,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:1434,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:1435,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1436,1
    - Dst: safe_open
      Src: /src/core/libpromises/evalfunction.c:1441,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:1441,1
    - Dst: FileReadFromFd
      Src: /src/core/libpromises/evalfunction.c:1444,1
    - Dst: close
      Src: /src/core/libpromises/evalfunction.c:1445,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1450,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:1451,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:1451,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:1452,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1453,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:1456,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/evalfunction.c:1458,1
    - Dst: StripTrailingNewline
      Src: /src/core/libpromises/evalfunction.c:1459,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:1460,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:1463,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/evalfunction.c:1466,1
    - Dst: BufferCopy
      Src: /src/core/libpromises/evalfunction.c:1468,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/evalfunction.c:1469,1
    - Dst: GlobFileList
      Src: /src/core/libpromises/evalfunction.c:1471,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:1471,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:1472,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/evalfunction.c:1474,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/evalfunction.c:1476,1
    - Dst: IsDir
      Src: /src/core/libpromises/evalfunction.c:1481,1
    - Dst: safe_open
      Src: /src/core/libpromises/evalfunction.c:1487,1
    - Dst: FileReadFromFd
      Src: /src/core/libpromises/evalfunction.c:1490,1
    - Dst: close
      Src: /src/core/libpromises/evalfunction.c:1491,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1496,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:1497,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/evalfunction.c:1501,1
    - Dst: StripTrailingNewline
      Src: /src/core/libpromises/evalfunction.c:1502,1
    - Dst: BufferNewFrom
      Src: /src/core/libpromises/evalfunction.c:1504,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:1504,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libpromises/evalfunction.c:1505,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:1505,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libpromises/evalfunction.c:1506,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:1507,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:1507,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:1508,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:1509,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/evalfunction.c:1512,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:1513,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:1514,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1516,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_LINUX_ONLY*
    - ARG_LINUX_ONLY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1404
    functionDepth: 8
    functionLinenumber: 1404
    functionLinenumberEnd: 1518
    functionName: FnCallSysctlValue
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - Log
    - RlistScalarValue
    - BufferNew
    - GlobFileList
    - free
    - close
    - FnReturnNoCopy
    - BufferData
    - strlen
    - BufferSearchAndReplace
    - BufferAppendChar
    - FnFailure
    - strcmp
    - JsonObjectCreate
    - BufferNewFrom
    - IsDir
    - StringSetIteratorInit
    - JsonObjectAppendString
    - BufferCopy
    - GetErrorStr
    - StripTrailingNewline
    - safe_open
    - StringSetIteratorNext
    - FileReadFromFd
    - StringSetDestroy
    - GetRelocatedProcdirRoot
    - StringWriterClose
    - FnReturnContainerNoCopy
    - BufferAppendString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallSysctlValue(ARG_UNUSED EvalContext *ctx,\n                                      ARG_UNUSED
      ARG_UNUSED const Policy *policy,\n                                      ARG_LINUX_ONLY
      const FnCall *fp,\n                                      ARG_LINUX_ONLY const
      Rlist *finalargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1529,1
    - Dst: getpwuid
      Src: /src/core/libpromises/evalfunction.c:1538,1
    - Dst: getuid
      Src: /src/core/libpromises/evalfunction.c:1538,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1542,1
    - Dst: StringIsNumeric
      Src: /src/core/libpromises/evalfunction.c:1543,1
    - Dst: Str2Uid
      Src: /src/core/libpromises/evalfunction.c:1545,1
    - Dst: getuid
      Src: /src/core/libpromises/evalfunction.c:1548,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1552,1
    - Dst: getpwuid
      Src: /src/core/libpromises/evalfunction.c:1555,1
    - Dst: getpwnam
      Src: /src/core/libpromises/evalfunction.c:1559,1
    - Dst: GetUserInfo
      Src: /src/core/libpromises/evalfunction.c:1563,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1567,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:1570,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1524
    functionDepth: 2
    functionLinenumber: 1524
    functionLinenumberEnd: 1572
    functionName: FnCallGetUserInfo
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - getpwnam
    - getuid
    - GetUserInfo
    - FnFailure
    - RlistScalarValue
    - StringIsNumeric
    - FnReturnContainerNoCopy
    - Str2Uid
    - getpwuid
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetUserInfo(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1580,1
    - Dst: getgrgid
      Src: /src/core/libpromises/evalfunction.c:1588,1
    - Dst: getgid
      Src: /src/core/libpromises/evalfunction.c:1588,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1592,1
    - Dst: StringIsNumeric
      Src: /src/core/libpromises/evalfunction.c:1593,1
    - Dst: Str2Gid
      Src: /src/core/libpromises/evalfunction.c:1595,1
    - Dst: getgid
      Src: /src/core/libpromises/evalfunction.c:1598,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1602,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1603,1
    - Dst: getgrgid
      Src: /src/core/libpromises/evalfunction.c:1606,1
    - Dst: getgrnam
      Src: /src/core/libpromises/evalfunction.c:1610,1
    - Dst: GetGroupInfo
      Src: /src/core/libpromises/evalfunction.c:1614,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1618,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:1621,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1577
    functionDepth: 8
    functionLinenumber: 1577
    functionLinenumberEnd: 1623
    functionName: FnCallGetGroupInfo
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - GetGroupInfo
    - getgid
    - getgrgid
    - FnFailure
    - Log
    - Str2Gid
    - RlistScalarValue
    - StringIsNumeric
    - FnReturnContainerNoCopy
    - getgrnam
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetGroupInfo(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1630,1
    - Dst: GetUserID
      Src: /src/core/libpromises/evalfunction.c:1635,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1635,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1637,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:1640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1627
    functionDepth: 2
    functionLinenumber: 1627
    functionLinenumberEnd: 1642
    functionName: FnCallGetUid
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnF
    - FnFailure
    - GetUserID
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetUid(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1649,1
    - Dst: GetGroupID
      Src: /src/core/libpromises/evalfunction.c:1654,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1654,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1656,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:1659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1646
    functionDepth: 2
    functionLinenumber: 1646
    functionLinenumberEnd: 1661
    functionName: FnCallGetGid
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnF
    - FnFailure
    - GetGroupID
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetGid(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1667,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1673,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:1674,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:1676,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1677,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1678,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - ret
    - fp
    - group_name
    - is_user_db
    argTypes:
    - int
    - FnCall*
    - char*
    - bool
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 1666
        line_start: 1666
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 1679
      start: 1665
    functionDepth: 8
    functionLinenumber: 1665
    functionLinenumberEnd: 1679
    functionName: no_entry
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - assert
    - FnFailure
    - Log
    - GetErrorStrFromCode
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult no_entry(int ret, const FnCall *fp, const char *group_name,
      bool is_user_db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1683,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1684,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1686,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1687,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1690,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1691,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1692,1
    - Dst: getgrnam_r
      Src: /src/core/libpromises/evalfunction.c:1700,1
    - Dst: no_entry
      Src: /src/core/libpromises/evalfunction.c:1706,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1710,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:1712,1
    - Dst: getpwnam_r
      Src: /src/core/libpromises/evalfunction.c:1721,1
    - Dst: no_entry
      Src: /src/core/libpromises/evalfunction.c:1725,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:1727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 1682
        line_start: 1682
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (finalargs != NULL)
      pos:
        line_end: 1683
        line_start: 1683
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (group_name != NULL)
      pos:
        line_end: 1691
        line_start: 1691
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 1730
      start: 1681
    functionDepth: 9
    functionLinenumber: 1681
    functionLinenumberEnd: 1730
    functionName: FnCallUserInGroup
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - getpwnam_r
    - assert
    - getgrnam_r
    - FnFailure
    - Log
    - RlistScalarValue
    - StringEqual
    - no_entry
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallUserInGroup(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1740,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1741,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:1742,1
    - Dst: HashIdFromName
      Src: /src/core/libpromises/evalfunction.c:1744,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1748,1
    - Dst: HashFile
      Src: /src/core/libpromises/evalfunction.c:1753,1
    - Dst: HashString
      Src: /src/core/libpromises/evalfunction.c:1757,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:1757,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/evalfunction.c:1761,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:1764,1
    - Dst: SkipHashType
      Src: /src/core/libpromises/evalfunction.c:1764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1734
    functionDepth: 8
    functionLinenumber: 1734
    functionLinenumberEnd: 1765
    functionName: FnCallHandlerHash
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - strlen
    - HashPrintSafe
    - HashIdFromName
    - FnReturn
    - Log
    - strcmp
    - RlistScalarValue
    - HashFile
    - HashString
    - SkipHashType
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallHandlerHash(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1775,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1776,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1777,1
    - Dst: HashIdFromName
      Src: /src/core/libpromises/evalfunction.c:1779,1
    - Dst: HashFile
      Src: /src/core/libpromises/evalfunction.c:1780,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/evalfunction.c:1783,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1786,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:1790,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:1790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1769
    functionDepth: 8
    functionLinenumber: 1769
    functionLinenumberEnd: 1791
    functionName: FnCallHashMatch
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - HashPrintSafe
    - HashIdFromName
    - Log
    - strcmp
    - RlistScalarValue
    - HashFile
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallHashMatch(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:1800,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/evalfunction.c:1805,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:1808,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/evalfunction.c:1808,1
    - Dst: strlcat
      Src: /src/core/libpromises/evalfunction.c:1814,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1814,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:1817,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:1818,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:1822,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1795
    functionDepth: 8
    functionLinenumber: 1795
    functionLinenumberEnd: 1823
    functionName: FnCallConcat
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - strlcat
    - snprintf
    - CheckConstraintTypeMatch
    - FatalError
    - FnReturn
    - FnFailure
    - Log
    - RlistScalarValue
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallConcat(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:1835,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/evalfunction.c:1840,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:1843,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/evalfunction.c:1843,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:1851,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:1861,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1861,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:1865,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1865,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:1870,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1870,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1827
    functionDepth: 2
    functionLinenumber: 1827
    functionLinenumberEnd: 1871
    functionName: FnCallIfElse
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - snprintf
    - CheckConstraintTypeMatch
    - FatalError
    - FnReturn
    - IsDefinedClass
    - RlistScalarValue
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallIfElse(EvalContext *ctx,\n                                 ARG_UNUSED
      const Policy *policy,\n                                 ARG_UNUSED const FnCall
      *fp,\n                                 const Rlist *finalargs)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:1877,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1882,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1886,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:1890,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:1896,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:1901,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/evalfunction.c:1906,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:1909,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/evalfunction.c:1909,1
    - Dst: ClassesMatchingGlobal
      Src: /src/core/libpromises/evalfunction.c:1916,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1916,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/evalfunction.c:1918,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/evalfunction.c:1920,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:1928,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/evalfunction.c:1932,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:1937,1
    - Dst: ClassesMatchingLocal
      Src: /src/core/libpromises/evalfunction.c:1941,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1941,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/evalfunction.c:1943,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/evalfunction.c:1945,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:1953,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/evalfunction.c:1957,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:1962,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:1966,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (finalargs != NULL)
      pos:
        line_end: 1876
        line_start: 1876
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 1971
      start: 1875
    functionDepth: 4
    functionLinenumber: 1875
    functionLinenumberEnd: 1971
    functionName: FnCallClassesMatching
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - ClassesMatchingLocal
    - assert
    - CheckConstraintTypeMatch
    - StringSetIteratorNext
    - StringSetDestroy
    - FatalError
    - FnReturnF
    - StringSetIteratorInit
    - RlistScalarValue
    - ClassesMatchingGlobal
    - RlistPrepend
    - StringEqual
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallClassesMatching(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:1976,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1978,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/evalfunction.c:1979,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/evalfunction.c:1982,1
    - Dst: VariableGetRef
      Src: /src/core/libpromises/evalfunction.c:1984,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/evalfunction.c:1985,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/evalfunction.c:1987,1
    - Dst: EvalContextVariableTags
      Src: /src/core/libpromises/evalfunction.c:1989,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:1996,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/evalfunction.c:1998,1
    - Dst: SetIteratorNext
      Src: /src/core/libpromises/evalfunction.c:1999,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:2001,1
    - Dst: VarRefValueToJson
      Src: /src/core/libpromises/evalfunction.c:2020,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:2036,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/evalfunction.c:2042,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libpromises/evalfunction.c:2044,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:2048,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:2053,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - fp
    - iter
    - args
    - collect_full_data
    argTypes:
    - EvalContext*
    - FnCall*
    - VariableTableIterator*
    - Rlist*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 1974
    functionDepth: 9
    functionLinenumber: 1974
    functionLinenumberEnd: 2057
    functionName: VariablesMatching
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - VarRefToString
    - JsonCopy
    - CompileRegex
    - JsonObjectAppendElement
    - RegexDestroy
    - StringMatchFullWithPrecompiledRegex
    - SetIteratorNext
    - VariableTableIteratorNext
    - EvalContextVariableTags
    - RlistScalarValue
    - StringSetIteratorInit
    - StringMatchFull
    - JsonObjectCreate
    - VarRefValueToJson
    - JsonObjectAppendString
    - free
    - VariableGetRef
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *VariablesMatching(const EvalContext *ctx, const FnCall
      *fp, VariableTableIterator *iter, const Rlist *args, bool collect_full_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:2061,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:2065,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/evalfunction.c:2070,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:2073,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/evalfunction.c:2073,1
    - Dst: EvalContextVariableTableIteratorNew
      Src: /src/core/libpromises/evalfunction.c:2080,1
    - Dst: VariablesMatching
      Src: /src/core/libpromises/evalfunction.c:2081,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/libpromises/evalfunction.c:2082,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2084,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/evalfunction.c:2084,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:2088,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:2092,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/evalfunction.c:2094,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2096,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:2097,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:2100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (JsonGetContainerType(global_matches) == JSON_CONTAINER_TYPE_OBJECT)
      pos:
        line_end: 2083
        line_start: 2083
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (key != NULL)
      pos:
        line_end: 2095
        line_start: 2095
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 2104
      start: 2059
    functionDepth: 10
    functionLinenumber: 2059
    functionLinenumberEnd: 2104
    functionName: FnCallVariablesMatching
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - FnReturnContainerNoCopy
    - JsonIteratorInit
    - JsonIteratorNextKey
    - JsonDestroy
    - EvalContextVariableTableIteratorNew
    - CheckConstraintTypeMatch
    - assert
    - FatalError
    - VariableTableIteratorDestroy
    - strcmp
    - VariablesMatching
    - RlistPrepend
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallVariablesMatching(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2109,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:2110,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2114,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2115,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - policy
    - namespace
    - bundlename
    argTypes:
    - Policy*
    - char*
    - char*
    assertStmts:
    - condition: (policy != NULL)
      pos:
        line_end: 2108
        line_start: 2108
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 2121
      start: 2107
    functionDepth: 4
    functionLinenumber: 2107
    functionLinenumberEnd: 2121
    functionName: GetBundleFromPolicy
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: Bundle
    signature: Bundle *GetBundleFromPolicy(const Policy *policy, const char *namespace,
      const char *bundlename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2125,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:2126,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2129,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2130,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:2132,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2135,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - bundle
    - promise_type
    - promiser
    argTypes:
    - Bundle*
    - char*
    - char*
    assertStmts:
    - condition: (bundle != NULL)
      pos:
        line_end: 2124
        line_start: 2124
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 2144
      start: 2123
    functionDepth: 4
    functionLinenumber: 2123
    functionLinenumberEnd: 2144
    functionName: GetPromiseFromBundle
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: Promise
    signature: Promise *GetPromiseFromBundle(const Bundle *bundle, const char *promise_type,
      const char *promiser)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2148,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:2151,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2157,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:2159,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2159,1
    - Dst: EvalContextVariableTags
      Src: /src/core/libpromises/evalfunction.c:2160,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:2161,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2163,1
    - Dst: ClassRefParse
      Src: /src/core/libpromises/evalfunction.c:2165,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2165,1
    - Dst: EvalContextClassTags
      Src: /src/core/libpromises/evalfunction.c:2166,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/evalfunction.c:2167,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2169,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2171,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2172,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:2173,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2174,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2175,1
    - Dst: GetBundleFromPolicy
      Src: /src/core/libpromises/evalfunction.c:2177,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2180,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2185,1
    - Dst: GetPromiseFromBundle
      Src: /src/core/libpromises/evalfunction.c:2187,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2190,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2195,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/evalfunction.c:2197,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2200,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2203,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/evalfunction.c:2206,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/evalfunction.c:2210,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:2216,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2221,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2221,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:2228,1
    - Dst: BufferPrintf
      Src: /src/core/libpromises/evalfunction.c:2229,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2229,1
    - Dst: BufferClose
      Src: /src/core/libpromises/evalfunction.c:2230,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/evalfunction.c:2234,1
    - Dst: SetIteratorNext
      Src: /src/core/libpromises/evalfunction.c:2235,1
    - Dst: StringStartsWith
      Src: /src/core/libpromises/evalfunction.c:2239,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:2241,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:2241,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:2246,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:2250,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - Policy*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (bundleref != NULL)
      pos:
        line_end: 2171
        line_start: 2171
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp != NULL)
      pos:
        line_end: 2147
        line_start: 2147
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 2252
      start: 2146
    functionDepth: 8
    functionLinenumber: 2146
    functionLinenumberEnd: 2252
    functionName: FnCallGetMetaTags
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistAppendScalar
    - BufferPrintf
    - VarRefDestroy
    - BufferClose
    - Log
    - RlistScalarValue
    - BufferNew
    - PromiseGetConstraintAsList
    - StringSetNew
    - free
    - StringEqual
    - GetBundleFromPolicy
    - strlen
    - FnFailure
    - GetPromiseFromBundle
    - StringStartsWith
    - ClassRefDestroy
    - EvalContextClassTags
    - assert
    - ClassRefParse
    - VarRefParse
    - StringSetIteratorInit
    - StringSetAdd
    - RlistFromSplitString
    - FatalError
    - SetIteratorNext
    - EvalContextVariableTags
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetMetaTags(EvalContext *ctx, const Policy *policy,
      const FnCall *fp, const Rlist *finalargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2261,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2262,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2265,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2267,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:2271,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2271,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:2274,1
    - Dst: basename
      Src: /src/core/libpromises/evalfunction.c:2277,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2281,1
    - Dst: StringEndsWith
      Src: /src/core/libpromises/evalfunction.c:2282,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:2284,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:2285,1
    - Dst: xstrndup
      Src: /src/core/libpromises/evalfunction.c:2292,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:2293,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:2298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 2260
        line_start: 2260
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 2261
        line_start: 2261
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 2299
      start: 2256
    functionDepth: 8
    functionLinenumber: 2256
    functionLinenumberEnd: 2299
    functionName: FnCallBasename
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnNoCopy
    - strlen
    - assert
    - basename
    - StringEndsWith
    - FnReturn
    - FnFailure
    - Log
    - RlistScalarValue
    - xstrndup
    - strlcpy
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallBasename(ARG_UNUSED EvalContext *ctx,\n                                   ARG_UNUSED
      const Policy *policy,\n                                   const FnCall *fp,\n
      \                                  const Rlist *args)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2307,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2310,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/evalfunction.c:2311,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2314,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:2320,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2322,1
    - Dst: BundleQualifiedName
      Src: /src/core/libpromises/evalfunction.c:2324,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/evalfunction.c:2325,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/evalfunction.c:2327,1
    - Dst: VarRefSetMeta
      Src: /src/core/libpromises/evalfunction.c:2328,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/evalfunction.c:2330,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:2331,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/evalfunction.c:2343,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:2347,1
    - Dst: RlistMatchesRegexRlist
      Src: /src/core/libpromises/evalfunction.c:2348,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:2349,1
    - Dst: RlistMatchesRegexRlist
      Src: /src/core/libpromises/evalfunction.c:2354,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2358,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/evalfunction.c:2359,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:2367,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:2371,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:2374,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - Policy*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2303
    functionDepth: 8
    functionLinenumber: 2303
    functionLinenumberEnd: 2377
    functionName: FnCallBundlesMatching
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - VarRefParseFromBundle
    - VarRefSetMeta
    - VarRefDestroy
    - RlistMatchesRegexRlist
    - Log
    - RlistScalarValue
    - SeqLength
    - free
    - DataTypeToRvalType
    - RlistPrepend
    - CompileRegex
    - FnFailure
    - StringMatchFullWithPrecompiledRegex
    - RlistDestroy
    - BundleQualifiedName
    - SeqAt
    - RegexDestroy
    - DataTypeToString
    - RlistFromSplitString
    - EvalContextVariableGet
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallBundlesMatching(EvalContext *ctx, const Policy *policy,
      const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:2383,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2386,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/evalfunction.c:2393,1
    - Dst: SeqParseCsvString
      Src: /src/core/libpromises/evalfunction.c:2395,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:2396,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2398,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:2401,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:2405,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:2406,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2406,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:2407,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2407,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:2408,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2408,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:2409,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2409,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:2411,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/evalfunction.c:2412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - matcher
    - json
    - line
    argTypes:
    - Regex*
    - JsonElement*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2381
    functionDepth: 8
    functionLinenumber: 2381
    functionLinenumberEnd: 2416
    functionName: AddPackagesMatchingJsonLine
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - SeqParseCsvString
    - SeqDestroy
    - strlen
    - StringMatchFullWithPrecompiledRegex
    - Log
    - JsonArrayAppendObject
    - SeqLength
    - JsonObjectCreate
    - JsonObjectAppendString
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool AddPackagesMatchingJsonLine(Regex *matcher, JsonElement *json,
      char *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetSoftwareCacheFilename
      Src: /src/core/libpromises/evalfunction.c:2423,1
    - Dst: GetSoftwarePatchesFilename
      Src: /src/core/libpromises/evalfunction.c:2427,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2430,1
    - Dst: fopen
      Src: /src/core/libpromises/evalfunction.c:2432,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2435,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:2444,1
    - Dst: GetCsvLineNext
      Src: /src/core/libpromises/evalfunction.c:2450,1
    - Dst: AddPackagesMatchingJsonLine
      Src: /src/core/libpromises/evalfunction.c:2452,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:2454,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:2457,1
    - Dst: feof
      Src: /src/core/libpromises/evalfunction.c:2460,1
    - Dst: fclose
      Src: /src/core/libpromises/evalfunction.c:2461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - matcher
    - json
    - installed_mode
    argTypes:
    - Regex*
    - JsonElement*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2418
    functionDepth: 9
    functionLinenumber: 2418
    functionLinenumberEnd: 2464
    functionName: GetLegacyPackagesMatching
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fopen
    - GetSoftwarePatchesFilename
    - AddPackagesMatchingJsonLine
    - feof
    - GetCsvLineNext
    - Log
    - fclose
    - free
    - GetSoftwareCacheFilename
    linkageType: ''
    returnType: bool
    signature: bool GetLegacyPackagesMatching(Regex *matcher, JsonElement *json, const
      bool installed_mode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2474,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:2475,1
    - Dst: StringContainsUnresolved
      Src: /src/core/libpromises/evalfunction.c:2477,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2479,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2483,1
    - Dst: OpenSubDB
      Src: /src/core/libpromises/evalfunction.c:2487,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2489,1
    - Dst: ValueSizeDB
      Src: /src/core/libpromises/evalfunction.c:2498,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:2498,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2500,1
    - Dst: xmalloc
      Src: /src/core/libpromises/evalfunction.c:2505,1
    - Dst: ReadDB
      Src: /src/core/libpromises/evalfunction.c:2507,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2509,1
    - Dst: SeqStringFromString
      Src: /src/core/libpromises/evalfunction.c:2514,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:2515,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:2520,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2533,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:2534,1
    - Dst: strcpy
      Src: /src/core/libpromises/evalfunction.c:2536,1
    - Dst: strcat
      Src: /src/core/libpromises/evalfunction.c:2537,1
    - Dst: strcat
      Src: /src/core/libpromises/evalfunction.c:2538,1
    - Dst: AddPackagesMatchingJsonLine
      Src: /src/core/libpromises/evalfunction.c:2540,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:2545,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2549,1
    - Dst: CloseDB
      Src: /src/core/libpromises/evalfunction.c:2554,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - matcher
    - json
    - installed_mode
    - default_inventory
    argTypes:
    - Regex*
    - JsonElement*
    - bool
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2466
    functionDepth: 9
    functionLinenumber: 2466
    functionLinenumberEnd: 2557
    functionName: GetPackagesMatching
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - strlen
    - AddPackagesMatchingJsonLine
    - SeqLength
    - OpenSubDB
    - xmalloc
    - Log
    - ReadDB
    - StringContainsUnresolved
    - RlistScalarValue
    - free
    - SeqStringFromString
    - strcat
    - CloseDB
    - ValueSizeDB
    - strcpy
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool GetPackagesMatching(Regex *matcher, JsonElement *json, const bool
      installed_mode, Rlist *default_inventory)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:2561,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2564,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2565,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2566,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2567,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:2571,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/evalfunction.c:2573,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2576,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:2580,1
    - Dst: GetDefaultInventoryFromContext
      Src: /src/core/libpromises/evalfunction.c:2583,1
    - Dst: SearchExistingSubDBNames
      Src: /src/core/libpromises/evalfunction.c:2592,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:2593,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:2596,1
    - Dst: RlistAppendString
      Src: /src/core/libpromises/evalfunction.c:2597,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:2600,1
    - Dst: GetLegacyPackagesMatching
      Src: /src/core/libpromises/evalfunction.c:2606,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2614,1
    - Dst: StringContainsUnresolved
      Src: /src/core/libpromises/evalfunction.c:2615,1
    - Dst: GetPackagesMatching
      Src: /src/core/libpromises/evalfunction.c:2623,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2627,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:2628,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:2629,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:2632,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2634,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:2640,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:2642,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2646,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:2648,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2649,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:2652,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2559
    functionDepth: 10
    functionLinenumber: 2559
    functionLinenumberEnd: 2653
    functionName: FnCallPackagesMatching
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - SearchExistingSubDBNames
    - Log
    - RlistScalarValue
    - SeqLength
    - GetPackagesMatching
    - SeqDestroy
    - snprintf
    - CompileRegex
    - FnFailure
    - strcmp
    - StringContainsUnresolved
    - GetLegacyPackagesMatching
    - RlistDestroy
    - SeqAt
    - GetDefaultInventoryFromContext
    - RegexDestroy
    - JsonDestroy
    - RlistAppendString
    - FnReturnContainerNoCopy
    - JsonArrayCreate
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallPackagesMatching(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2660,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:2664,1
    - Dst: HashIdFromName
      Src: /src/core/libpromises/evalfunction.c:2670,1
    - Dst: HashString
      Src: /src/core/libpromises/evalfunction.c:2671,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:2671,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:2672,1
    - Dst: SkipHashType
      Src: /src/core/libpromises/evalfunction.c:2673,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/evalfunction.c:2673,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:2678,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:2681,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/evalfunction.c:2681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2657
    functionDepth: 3
    functionLinenumber: 2657
    functionLinenumberEnd: 2682
    functionName: FnCallCanonify
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - HashPrintSafe
    - HashIdFromName
    - FnReturn
    - strcmp
    - RlistScalarValue
    - CanonifyName
    - HashString
    - SkipHashType
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallCanonify(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2688,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:2689,1
    - Dst: MAX
      Src: /src/core/libpromises/evalfunction.c:2691,1
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/evalfunction.c:2691,1
    - Dst: xcalloc
      Src: /src/core/libpromises/evalfunction.c:2692,1
    - Dst: memcpy
      Src: /src/core/libpromises/evalfunction.c:2693,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2695,1
    - Dst: tolower
      Src: /src/core/libpromises/evalfunction.c:2699,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2702,1
    - Dst: toupper
      Src: /src/core/libpromises/evalfunction.c:2706,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2709,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2721,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/evalfunction.c:2723,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2725,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:2727,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2727,1
    - Dst: labs
      Src: /src/core/libpromises/evalfunction.c:2731,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:2745,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:2747,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2747,1
    - Dst: MIN
      Src: /src/core/libpromises/evalfunction.c:2752,1
    - Dst: labs
      Src: /src/core/libpromises/evalfunction.c:2752,1
    - Dst: memcpy
      Src: /src/core/libpromises/evalfunction.c:2753,1
    - Dst: memcpy
      Src: /src/core/libpromises/evalfunction.c:2757,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2762,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:2763,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2764,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:2767,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2686
    functionDepth: 8
    functionLinenumber: 2686
    functionLinenumberEnd: 2768
    functionName: FnCallTextXform
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - IntFromString
    - MAX
    - xcalloc
    - memcpy
    - PRINTSIZE
    - tolower
    - labs
    - strlen
    - FnReturnNoCopy
    - toupper
    - MIN
    - FnFailure
    - Log
    - xsnprintf
    - RlistScalarValue
    - free
    - StringEqual
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallTextXform(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2774,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2775,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/libpromises/evalfunction.c:2777,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2786,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:2790,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2790,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:2793,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:2796,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2799,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts:
    - condition: (rp && !rp->next)
      pos:
        line_end: 2785
        line_start: 2785
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 2800
      start: 2772
    functionDepth: 1
    functionLinenumber: 2772
    functionLinenumberEnd: 2800
    functionName: FnCallLastNode
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistFromSplitRegex
    - FnReturnNoCopy
    - assert
    - FnFailure
    - RlistDestroy
    - xstrdup
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallLastNode(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:2810,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2810,1
    - Dst: DeleteSlash
      Src: /src/core/libpromises/evalfunction.c:2812,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/evalfunction.c:2813,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:2815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2804
    functionDepth: 4
    functionLinenumber: 2804
    functionLinenumberEnd: 2816
    functionName: FnCallDirname
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - DeleteSlash
    - FnReturn
    - RlistScalarValue
    - strlcpy
    - ChopLastNode
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallDirname(ARG_UNUSED EvalContext *ctx,\n                                  ARG_UNUSED
      const Policy *policy,\n                                  ARG_UNUSED const FnCall
      *fp,\n                                  const Rlist *finalargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:2825,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/evalfunction.c:2825,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2825,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:2827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2820
    functionDepth: 2
    functionLinenumber: 2820
    functionLinenumberEnd: 2828
    functionName: FnCallClassify
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - CanonifyName
    - IsDefinedClass
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallClassify(EvalContext *ctx,\n                                   ARG_UNUSED
      const Policy *policy,\n                                   ARG_UNUSED const FnCall
      *fp,\n                                   const Rlist *finalargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2836,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2837,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2840,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2846,1
    - Dst: CompareVersion
      Src: /src/core/libpromises/evalfunction.c:2847,1
    - Dst: Version
      Src: /src/core/libpromises/evalfunction.c:2847,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - fp
    - args
    argTypes:
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 2835
        line_start: 2835
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 2836
        line_start: 2836
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 2857
      start: 2832
    functionDepth: 8
    functionLinenumber: 2832
    functionLinenumberEnd: 2857
    functionName: GenericVersionCheck
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - CompareVersion
    - Version
    - assert
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: VersionComparison
    signature: "VersionComparison GenericVersionCheck(\n        const FnCall *fp,\n
      \       const Rlist *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2865,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2866,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2869,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2874,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2876,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2877,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2878,1
    - Dst: CompareVersionExpression
      Src: /src/core/libpromises/evalfunction.c:2880,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2882,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2888,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:2890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 2864
        line_start: 2864
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 2865
        line_start: 2865
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 2891
      start: 2859
    functionDepth: 8
    functionLinenumber: 2859
    functionLinenumberEnd: 2891
    functionName: FnCallVersionCompare
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - assert
    - CompareVersionExpression
    - FnFailure
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallVersionCompare(\n        ARG_UNUSED EvalContext
      *ctx,\n        ARG_UNUSED const Policy *policy,\n        const FnCall *fp,\n
      \       const Rlist *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GenericVersionCheck
      Src: /src/core/libpromises/evalfunction.c:2899,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2902,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:2905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2893
    functionDepth: 9
    functionLinenumber: 2893
    functionLinenumberEnd: 2907
    functionName: FnCallVersionMinimum
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - FnFailure
    - GenericVersionCheck
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallVersionMinimum(\n        ARG_UNUSED EvalContext
      *ctx,\n        ARG_UNUSED const Policy *policy,\n        const FnCall *fp,\n
      \       const Rlist *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GenericVersionCheck
      Src: /src/core/libpromises/evalfunction.c:2915,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2918,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:2921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2909
    functionDepth: 9
    functionLinenumber: 2909
    functionLinenumberEnd: 2922
    functionName: FnCallVersionAfter
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - FnFailure
    - GenericVersionCheck
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallVersionAfter(\n        ARG_UNUSED EvalContext *ctx,\n
      \       ARG_UNUSED const Policy *policy,\n        const FnCall *fp,\n        const
      Rlist *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GenericVersionCheck
      Src: /src/core/libpromises/evalfunction.c:2930,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2933,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:2936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2938
      start: 2924
    functionDepth: 9
    functionLinenumber: 2924
    functionLinenumberEnd: 2938
    functionName: FnCallVersionMaximum
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - FnFailure
    - GenericVersionCheck
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallVersionMaximum(\n        ARG_UNUSED EvalContext
      *ctx,\n        ARG_UNUSED const Policy *policy,\n        const FnCall *fp,\n
      \       const Rlist *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GenericVersionCheck
      Src: /src/core/libpromises/evalfunction.c:2946,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2949,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2940
    functionDepth: 9
    functionLinenumber: 2940
    functionLinenumberEnd: 2953
    functionName: FnCallVersionBefore
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - FnFailure
    - GenericVersionCheck
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallVersionBefore(\n        ARG_UNUSED EvalContext
      *ctx,\n        ARG_UNUSED const Policy *policy,\n        const FnCall *fp,\n
      \       const Rlist *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GenericVersionCheck
      Src: /src/core/libpromises/evalfunction.c:2961,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2964,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:2967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2955
    functionDepth: 9
    functionLinenumber: 2955
    functionLinenumberEnd: 2968
    functionName: FnCallVersionAt
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - FnFailure
    - GenericVersionCheck
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallVersionAt(\n        ARG_UNUSED EvalContext *ctx,\n
      \       ARG_UNUSED const Policy *policy,\n        const FnCall *fp,\n        const
      Rlist *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2976,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:2977,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2980,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2984,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2987,1
    - Dst: CompareVersion
      Src: /src/core/libpromises/evalfunction.c:2989,1
    - Dst: Version
      Src: /src/core/libpromises/evalfunction.c:2989,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:2992,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:2995,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:2998,1
    - Dst: CompareVersion
      Src: /src/core/libpromises/evalfunction.c:3000,1
    - Dst: Version
      Src: /src/core/libpromises/evalfunction.c:3000,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3003,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3006,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:3009,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 2975
        line_start: 2975
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 2976
        line_start: 2976
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 3013
      start: 2970
    functionDepth: 8
    functionLinenumber: 2970
    functionLinenumberEnd: 3013
    functionName: FnCallVersionBetween
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - CompareVersion
    - Version
    - assert
    - FnFailure
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallVersionBetween(\n        ARG_UNUSED EvalContext
      *ctx,\n        ARG_UNUSED const Policy *policy,\n        const FnCall *fp,\n
      \       const Rlist *args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3022,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3026,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3030,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/evalfunction.c:3035,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3035,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3041,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3041,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:3042,1
    - Dst: IsExecutable
      Src: /src/core/libpromises/evalfunction.c:3045,1
    - Dst: CommandArg0
      Src: /src/core/libpromises/evalfunction.c:3045,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3045,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3047,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3047,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:3048,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:3051,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3051,1
    - Dst: ShellCommandReturnsZero
      Src: /src/core/libpromises/evalfunction.c:3053,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3055,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3055,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:3056,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3060,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3060,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:3061,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 3019
    functionDepth: 8
    functionLinenumber: 3019
    functionLinenumberEnd: 3063
    functionName: FnCallReturnsZero
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - IsExecutable
    - CommandArg0
    - snprintf
    - ShellCommandReturnsZero
    - IsAbsoluteFileName
    - Log
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReturnsZero(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:3069,1
    - Dst: RlistLen
      Src: /src/core/libpromises/evalfunction.c:3072,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:3075,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:3079,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:3083,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3085,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3089,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3093,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3098,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/evalfunction.c:3099,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3105,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3106,1
    - Dst: IsExecutable
      Src: /src/core/libpromises/evalfunction.c:3109,1
    - Dst: CommandArg0
      Src: /src/core/libpromises/evalfunction.c:3109,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3111,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3112,1
    - Dst: xcalloc
      Src: /src/core/libpromises/evalfunction.c:3116,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3122,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:3123,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:3127,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:3133,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:3133,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:3134,1
    - Dst: GetExecOutput
      Src: /src/core/libpromises/evalfunction.c:3140,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3142,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:3143,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:3145,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:3146,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:3151,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:3151,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:3152,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/evalfunction.c:3153,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:3154,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:3155,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:3156,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3161,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:3162,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3163,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (output_select == OUTPUT_SELECT_BOTH)
      pos:
        line_end: 3133
        line_start: 3133
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp != NULL)
      pos:
        line_end: 3068
        line_start: 3068
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (StringEqual(function, "execresult_as_data"))
      pos:
        line_end: 3150
        line_start: 3150
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (StringEqual(output, "both"))
      pos:
        line_end: 3132
        line_start: 3132
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 3165
      start: 3067
    functionDepth: 8
    functionLinenumber: 3067
    functionLinenumberEnd: 3165
    functionName: FnCallExecResult
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - CommandArg0
    - IsAbsoluteFileName
    - Log
    - RlistScalarValue
    - free
    - StringEqual
    - RlistLen
    - FnFailure
    - strcmp
    - JsonObjectCreate
    - assert
    - FnReturn
    - JsonObjectAppendString
    - xcalloc
    - IsExecutable
    - GetExecOutput
    - JsonObjectAppendInteger
    - FatalError
    - FnReturnContainerNoCopy
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallExecResult(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3178,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3179,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/evalfunction.c:3180,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:3182,1
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:3185,1
    - Dst: CommandArg0
      Src: /src/core/libpromises/evalfunction.c:3185,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3187,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3188,1
    - Dst: getuid
      Src: /src/core/libpromises/evalfunction.c:3191,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3193,1
    - Dst: getuid
      Src: /src/core/libpromises/evalfunction.c:3193,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3194,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:3197,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3200,1
    - Dst: ExecModule
      Src: /src/core/libpromises/evalfunction.c:3202,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3204,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:3207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3208
      start: 3169
    functionDepth: 8
    functionLinenumber: 3169
    functionLinenumberEnd: 3208
    functionName: FnCallUseModule
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - stat
    - CommandArg0
    - snprintf
    - getuid
    - ExecModule
    - FnFailure
    - Log
    - RlistScalarValue
    - GetWorkDir
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallUseModule(EvalContext *ctx,\n                                    ARG_UNUSED
      const Policy *policy,\n                                    ARG_UNUSED const
      FnCall *fp,\n                                    const Rlist *finalargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IntervalFromString
      Src: /src/core/libpromises/evalfunction.c:3221,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3221,1
    - Dst: StringHash
      Src: /src/core/libpromises/evalfunction.c:3226,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3226,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:3229,1
    - Dst: StringHash
      Src: /src/core/libpromises/evalfunction.c:3234,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3234,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:3240,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3243,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3243,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:3244,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:3244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3214
    functionDepth: 8
    functionLinenumber: 3214
    functionLinenumberEnd: 3245
    functionName: FnCallSplayClass
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - StringHash
    - snprintf
    - Log
    - IsDefinedClass
    - RlistScalarValue
    - IntervalFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallSplayClass(EvalContext *ctx,\n                                     ARG_UNUSED
      const Policy *policy,\n                                     ARG_UNUSED const
      FnCall *fp,\n                                     const Rlist *finalargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferSize
      Src: /src/core/libpromises/evalfunction.c:3261,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3268,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/evalfunction.c:3273,1
    - Dst: BufferTrimToMaxLength
      Src: /src/core/libpromises/evalfunction.c:3280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3282
      start: 3258
    functionDepth: 8
    functionLinenumber: 3258
    functionLinenumberEnd: 3282
    functionName: cfengine_curl_write_callback
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BufferAppend
    - Log
    - BufferTrimToMaxLength
    - BufferSize
    linkageType: ''
    returnType: size_t
    signature: size_t cfengine_curl_write_callback(char *ptr, size_t size, size_t
      nmemb, void *userdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:3290,1
    - Dst: curl_global_cleanup
      Src: /src/core/libpromises/evalfunction.c:3295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3284
    functionDepth: 2
    functionLinenumber: 3284
    functionLinenumberEnd: 3299
    functionName: CurlCleanup
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - curl_global_cleanup
    linkageType: ''
    returnType: void
    signature: void CurlCleanup()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3310,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:3312,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3316,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:3319,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/evalfunction.c:3320,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3322,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3323,1
    - Dst: StringWriter
      Src: /src/core/libpromises/evalfunction.c:3326,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/evalfunction.c:3327,1
    - Dst: JsonWriteCompact
      Src: /src/core/libpromises/evalfunction.c:3328,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:3332,1
    - Dst: atexit
      Src: /src/core/libpromises/evalfunction.c:3333,1
    - Dst: JsonObjectGetAsObject
      Src: /src/core/libpromises/evalfunction.c:3336,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/evalfunction.c:3336,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3340,1
    - Dst: WriterClose
      Src: /src/core/libpromises/evalfunction.c:3341,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3342,1
    - Dst: FnReturnContainer
      Src: /src/core/libpromises/evalfunction.c:3343,1
    - Dst: curl_global_init
      Src: /src/core/libpromises/evalfunction.c:3346,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3348,1
    - Dst: WriterClose
      Src: /src/core/libpromises/evalfunction.c:3350,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3351,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3352,1
    - Dst: curl_easy_init
      Src: /src/core/libpromises/evalfunction.c:3357,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3360,1
    - Dst: WriterClose
      Src: /src/core/libpromises/evalfunction.c:3362,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3363,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3364,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:3367,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:3368,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3369,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3370,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3371,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3372,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3373,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3378,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3379,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:3383,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:3385,1
    - Dst: JsonIteratorCurrentKey
      Src: /src/core/libpromises/evalfunction.c:3387,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:3388,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3390,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3392,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3392,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3393,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3393,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3395,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3397,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3397,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3398,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3398,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3400,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3402,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3402,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3403,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3403,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3405,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3407,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3408,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3410,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3412,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3413,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3415,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3417,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3417,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3418,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:3420,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3422,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3422,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3423,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3427,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3432,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3435,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/evalfunction.c:3437,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:3442,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:3443,1
    - Dst: curl_slist_append
      Src: /src/core/libpromises/evalfunction.c:3445,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:3445,1
    - Dst: curl_easy_setopt
      Src: /src/core/libpromises/evalfunction.c:3451,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:3454,1
    - Dst: curl_easy_perform
      Src: /src/core/libpromises/evalfunction.c:3455,1
    - Dst: curl_slist_free_all
      Src: /src/core/libpromises/evalfunction.c:3458,1
    - Dst: curl_easy_getinfo
      Src: /src/core/libpromises/evalfunction.c:3463,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/evalfunction.c:3464,1
    - Dst: curl_easy_cleanup
      Src: /src/core/libpromises/evalfunction.c:3466,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/evalfunction.c:3468,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libpromises/evalfunction.c:3471,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:3475,1
    - Dst: curl_easy_strerror
      Src: /src/core/libpromises/evalfunction.c:3475,1
    - Dst: BufferTrimToMaxLength
      Src: /src/core/libpromises/evalfunction.c:3480,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:3481,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:3481,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:3482,1
    - Dst: BufferTrimToMaxLength
      Src: /src/core/libpromises/evalfunction.c:3484,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:3485,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:3485,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:3486,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/evalfunction.c:3488,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/evalfunction.c:3488,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/evalfunction.c:3488,1
    - Dst: WriterClose
      Src: /src/core/libpromises/evalfunction.c:3489,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3491,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:3492,1
    - Dst: UNUSED
      Src: /src/core/libpromises/evalfunction.c:3496,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3497,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3499,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 108
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3302
    functionDepth: 10
    functionLinenumber: 3302
    functionLinenumberEnd: 3502
    functionName: FnCallUrlGet
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - BufferDestroy
    - JsonObjectAppendObject
    - JsonDestroyMaybe
    - curl_easy_strerror
    - BufferTrimToMaxLength
    - Log
    - RlistScalarValue
    - BufferNew
    - BufferData
    - JsonObjectGetAsArray
    - JsonCopy
    - JsonGetElementType
    - curl_easy_getinfo
    - JsonWriteCompact
    - FnFailure
    - strcmp
    - JsonPrimitiveGetAsString
    - JsonObjectCreate
    - curl_slist_append
    - IntFromString
    - JsonIteratorInit
    - WriterClose
    - atexit
    - JsonIteratorNextValueByType
    - JsonIteratorCurrentKey
    - curl_easy_init
    - FnReturnContainer
    - VarNameOrInlineToJson
    - WriterWriteF
    - JsonObjectAppendBool
    - curl_slist_free_all
    - curl_global_init
    - JsonObjectAppendString
    - JsonObjectGetAsObject
    - UNUSED
    - curl_easy_setopt
    - curl_easy_perform
    - StringWriter
    - JsonObjectAppendInteger
    - StringWriterData
    - curl_easy_cleanup
    - FnReturnContainerNoCopy
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallUrlGet(ARG_UNUSED EvalContext *ctx,\n                                 ARG_UNUSED
      const Policy *policy,\n                                 const FnCall *fp,\n
      \                                const Rlist *finalargs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3512,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3513,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3514,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3515,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3515,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3519,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3524,1
    - Dst: SocketConnect
      Src: /src/core/libpromises/evalfunction.c:3531,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3535,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:3536,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3537,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:3540,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:3544,1
    - Dst: send
      Src: /src/core/libpromises/evalfunction.c:3547,1
    - Dst: cf_closesocket
      Src: /src/core/libpromises/evalfunction.c:3550,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3551,1
    - Dst: recv
      Src: /src/core/libpromises/evalfunction.c:3561,1
    - Dst: cf_closesocket
      Src: /src/core/libpromises/evalfunction.c:3562,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3566,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:3567,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3568,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:3571,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3574,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:3578,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts:
    - condition: ((size_t) n_read < sizeof(recvbuf))
      pos:
        line_end: 3570
        line_start: 3570
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 3579
      start: 3507
    functionDepth: 8
    functionLinenumber: 3507
    functionLinenumberEnd: 3579
    functionName: FnCallReadTcp
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - SocketConnect
    - send
    - cf_closesocket
    - recv
    - strlen
    - assert
    - FnReturn
    - FnFailure
    - Log
    - RlistScalarValue
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallReadTcp(ARG_UNUSED EvalContext *ctx,\n                                  ARG_UNUSED
      const Policy *policy,\n                                  ARG_UNUSED const FnCall
      *fp,\n                                  const Rlist *finalargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:3588,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3591,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3593,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3595,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3598,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3600,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3602,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:3603,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3603,1
    - Dst: SocketConnect
      Src: /src/core/libpromises/evalfunction.c:3606,1
    - Dst: cf_closesocket
      Src: /src/core/libpromises/evalfunction.c:3608,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:3611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 3587
        line_start: 3587
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 3612
      start: 3583
    functionDepth: 8
    functionLinenumber: 3583
    functionLinenumberEnd: 3612
    functionName: FnCallIsConnectable
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - SocketConnect
    - cf_closesocket
    - assert
    - FnFailure
    - Log
    - RlistScalarValue
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallIsConnectable(ARG_UNUSED EvalContext *ctx,\n                                        ARG_UNUSED
      const Policy *policy,\n                                        const FnCall
      *fp,\n                                        const Rlist *finalargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:3632,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3632,1
    - Dst: VarRefIsQualified
      Src: /src/core/libpromises/evalfunction.c:3633,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:3637,1
    - Dst: VarRefQualify
      Src: /src/core/libpromises/evalfunction.c:3638,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3642,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3646,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:3647,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3648,1
    - Dst: EvalContextVariableTableFromRefIteratorNew
      Src: /src/core/libpromises/evalfunction.c:3654,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/evalfunction.c:3656,1
    - Dst: VariableGetRef
      Src: /src/core/libpromises/evalfunction.c:3658,1
    - Dst: RlistAppendScalarIdemp
      Src: /src/core/libpromises/evalfunction.c:3670,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/libpromises/evalfunction.c:3674,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:3675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3678
      start: 3630
    functionDepth: 8
    functionLinenumber: 3630
    functionLinenumberEnd: 3678
    functionName: FnCallGetIndicesClassic
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - VarRefIsQualified
    - RlistAppendScalarIdemp
    - VarRefQualify
    - VarRefDestroy
    - EvalContextVariableTableFromRefIteratorNew
    - FnFailure
    - Log
    - VarRefParse
    - VariableTableIteratorNext
    - RlistScalarValue
    - VariableTableIteratorDestroy
    - VariableGetRef
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetIndicesClassic(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:3684,1
    - Dst: RlistValueIsType
      Src: /src/core/libpromises/evalfunction.c:3691,1
    - Dst: ResolveAndQualifyVarName
      Src: /src/core/libpromises/evalfunction.c:3693,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/evalfunction.c:3695,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/evalfunction.c:3698,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/evalfunction.c:3698,1
    - Dst: VarRefValueToJson
      Src: /src/core/libpromises/evalfunction.c:3700,1
    - Dst: JsonParseWithLookup
      Src: /src/core/libpromises/evalfunction.c:3708,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:3711,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:3719,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:3720,1
    - Dst: FnCallGetIndicesClassic
      Src: /src/core/libpromises/evalfunction.c:3721,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:3732,1
    - Dst: FnCallGetIndicesClassic
      Src: /src/core/libpromises/evalfunction.c:3733,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:3737,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:3741,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3747,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:3752,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3754,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/evalfunction.c:3758,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:3760,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/evalfunction.c:3762,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:3764,1
    - Dst: JsonLength
      Src: /src/core/libpromises/evalfunction.c:3769,1
    - Dst: StringFromLong
      Src: /src/core/libpromises/evalfunction.c:3771,1
    - Dst: RlistAppendRval
      Src: /src/core/libpromises/evalfunction.c:3772,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3776,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3682
    functionDepth: 10
    functionLinenumber: 3682
    functionLinenumberEnd: 3778
    functionName: FnCallGetIndices
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonIteratorNextKey
    - RlistAppendScalar
    - RlistValueIsType
    - JsonDestroyMaybe
    - VarRefDestroy
    - VarRefValueToJson
    - DataTypeToRvalType
    - JsonGetElementType
    - FnFailure
    - JsonIteratorInit
    - FnCallGetIndicesClassic
    - RlistAppendRval
    - StringFromLong
    - JsonParseWithLookup
    - VarNameOrInlineToJson
    - ResolveAndQualifyVarName
    - JsonLength
    - JsonDestroy
    - RlistScalarValueSafe
    - EvalContextVariableGet
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetIndices(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:3784,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:3786,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/evalfunction.c:3788,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:3790,1
    - Dst: CollectContainerValues
      Src: /src/core/libpromises/evalfunction.c:3792,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/evalfunction.c:3796,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:3799,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:3800,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:3805,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/evalfunction.c:3807,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:3810,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:3811,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - values
    - container
    argTypes:
    - EvalContext*
    - Rlist**
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3814
      start: 3782
    functionDepth: 5
    functionLinenumber: 3782
    functionLinenumberEnd: 3814
    functionName: CollectContainerValues
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 1
    functionsReached:
    - JsonIteratorInit
    - RlistAppendScalar
    - JsonGetElementType
    - CollectContainerValues
    - JsonPrimitiveToString
    - free
    - JsonIteratorNextValue
    linkageType: ''
    returnType: void
    signature: void CollectContainerValues(EvalContext *ctx, Rlist **values, const
      JsonElement *container)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:3822,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3828,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:3830,1
    - Dst: CollectContainerValues
      Src: /src/core/libpromises/evalfunction.c:3835,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3818
    functionDepth: 10
    functionLinenumber: 3818
    functionLinenumberEnd: 3839
    functionName: FnCallGetValues
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistScalarValueSafe
    - JsonDestroyMaybe
    - CollectContainerValues
    - Log
    - VarNameOrInlineToJson
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGetValues(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterInternal
      Src: /src/core/libpromises/evalfunction.c:3845,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3852
      start: 3843
    functionDepth: 1
    functionLinenumber: 3843
    functionLinenumberEnd: 3852
    functionName: FnCallGrep
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistScalarValue
    - FilterInternal
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGrep(EvalContext *ctx, ARG_UNUSED const Policy *policy,
      const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterInternal
      Src: /src/core/libpromises/evalfunction.c:3858,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3865
      start: 3856
    functionDepth: 1
    functionLinenumber: 3856
    functionLinenumberEnd: 3865
    functionName: FnCallRegList
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistScalarValue
    - FilterInternal
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRegList(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:3871,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:3872,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:3875,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:3878,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/evalfunction.c:3879,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:3879,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:3881,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/evalfunction.c:3883,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/evalfunction.c:3884,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:3884,1
    - Dst: FnReturnBuffer
      Src: /src/core/libpromises/evalfunction.c:3887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - container
    - delimiter
    argTypes:
    - JsonElement*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3888
      start: 3869
    functionDepth: 4
    functionLinenumber: 3869
    functionLinenumberEnd: 3888
    functionName: JoinContainer
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonIteratorNextValueByType
    - FnReturnBuffer
    - FnReturn
    - JsonPrimitiveGetAsString
    - BufferNew
    - BufferAppendString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult JoinContainer(const JsonElement *container, const char
      *delimiter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3892,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:3893,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:3897,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3902,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:3904,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3906,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3908,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3909,1
    - Dst: JoinContainer
      Src: /src/core/libpromises/evalfunction.c:3912,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:3913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3916
      start: 3890
    functionDepth: 10
    functionLinenumber: 3890
    functionLinenumberEnd: 3916
    functionName: FnCallJoin
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistScalarValueSafe
    - JsonGetElementType
    - JsonDestroyMaybe
    - JoinContainer
    - FnFailure
    - Log
    - RlistScalarValue
    - VarNameOrInlineToJson
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallJoin(EvalContext *ctx, ARG_UNUSED const Policy *policy,
      ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/evalfunction.c:3925,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3925,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3928,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3931,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3932,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3933,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/evalfunction.c:3935,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3938,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:3938,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:3939,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3940,1
    - Dst: xmalloc
      Src: /src/core/libpromises/evalfunction.c:3944,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/evalfunction.c:3948,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/evalfunction.c:3950,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/libpromises/evalfunction.c:3957,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:3963,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:3964,1
    - Dst: VarRefIsQualified
      Src: /src/core/libpromises/evalfunction.c:3965,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:3969,1
    - Dst: VarRefQualify
      Src: /src/core/libpromises/evalfunction.c:3970,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3974,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3977,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:3978,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:3979,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:3980,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:3981,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:3982,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/evalfunction.c:3986,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3986,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:3987,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:3988,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:3988,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:3992,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:3998,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:3999,1
    - Dst: feof
      Src: /src/core/libpromises/evalfunction.c:4001,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4003,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:4003,1
    - Dst: fclose
      Src: /src/core/libpromises/evalfunction.c:4004,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4005,1
    - Dst: fclose
      Src: /src/core/libpromises/evalfunction.c:4008,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:4010,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4011
      start: 3920
    functionDepth: 8
    functionLinenumber: 3920
    functionLinenumberEnd: 4011
    functionName: FnCallGetFields
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistFromSplitRegex
    - feof
    - VarRefDestroy
    - Log
    - fclose
    - RlistScalarValue
    - free
    - snprintf
    - CompileRegex
    - FnReturnF
    - FnFailure
    - StringMatchFullWithPrecompiledRegex
    - RlistDestroy
    - CfReadLine
    - PromiseGetBundle
    - VarRefIsQualified
    - VarRefQualify
    - RegexDestroy
    - xmalloc
    - EvalContextVariablePut
    - VarRefParse
    - GetErrorStr
    - safe_fopen
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallGetFields(EvalContext *ctx,\n                                    ARG_UNUSED
      const Policy *policy,\n                                    const FnCall *fp,\n
      \                                   const Rlist *finalargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/evalfunction.c:4017,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4017,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4020,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4023,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/evalfunction.c:4025,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4028,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:4028,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:4029,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:4030,1
    - Dst: xmalloc
      Src: /src/core/libpromises/evalfunction.c:4036,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/evalfunction.c:4038,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/evalfunction.c:4040,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4043,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4048,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:4051,1
    - Dst: feof
      Src: /src/core/libpromises/evalfunction.c:4053,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4055,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:4055,1
    - Dst: fclose
      Src: /src/core/libpromises/evalfunction.c:4056,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4057,1
    - Dst: fclose
      Src: /src/core/libpromises/evalfunction.c:4060,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:4062,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4063
      start: 4015
    functionDepth: 8
    functionLinenumber: 4015
    functionLinenumberEnd: 4063
    functionName: FnCallCountLinesMatching
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - CompileRegex
    - safe_fopen
    - RegexDestroy
    - FnReturn
    - FnFailure
    - Log
    - xmalloc
    - StringMatchFullWithPrecompiledRegex
    - RlistScalarValue
    - feof
    - free
    - fclose
    - CfReadLine
    - FnReturnF
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallCountLinesMatching(ARG_UNUSED EvalContext *ctx,
      ARG_UNUSED const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4071,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4072,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/evalfunction.c:4073,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4073,1
    - Dst: DirOpen
      Src: /src/core/libpromises/evalfunction.c:4075,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4078,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:4078,1
    - Dst: DirRead
      Src: /src/core/libpromises/evalfunction.c:4083,1
    - Dst: DirRead
      Src: /src/core/libpromises/evalfunction.c:4083,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:4085,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:4085,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:4090,1
    - Dst: MapName
      Src: /src/core/libpromises/evalfunction.c:4091,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:4092,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:4096,1
    - Dst: DirClose
      Src: /src/core/libpromises/evalfunction.c:4100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4103
      start: 4067
    functionDepth: 8
    functionLinenumber: 4067
    functionLinenumberEnd: 4103
    functionName: FnCallLsDir
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - snprintf
    - strlen
    - MapName
    - DirRead
    - DirOpen
    - StringMatchFull
    - Log
    - DirClose
    - RlistScalarValue
    - BooleanFromString
    - RlistPrepend
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallLsDir(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EscapeCharCopy
      Src: /src/core/libpromises/evalfunction.c:4111,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/evalfunction.c:4112,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4113,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/evalfunction.c:4117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - ctx
    - scope
    - lval
    - value
    - type
    - tags
    - escape
    argTypes:
    - EvalContext*
    - SpecialScope
    - char*
    - void*
    - DataType
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4118
      start: 4107
    functionDepth: 3
    functionLinenumber: 4107
    functionLinenumberEnd: 4118
    functionName: EvalContextVariablePutSpecialEscaped
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    - free
    - EscapeCharCopy
    linkageType: ''
    returnType: bool
    signature: bool EvalContextVariablePutSpecialEscaped(EvalContext *ctx, SpecialScope
      scope, const char *lval, const void *value, DataType type, const char *tags,
      bool escape)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_popen_full_duplex
      Src: /src/core/libpromises/evalfunction.c:4124,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4128,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4133,1
    - Dst: StringWriter
      Src: /src/core/libpromises/evalfunction.c:4137,1
    - Dst: JsonWrite
      Src: /src/core/libpromises/evalfunction.c:4138,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/evalfunction.c:4139,1
    - Dst: PipeWrite
      Src: /src/core/libpromises/evalfunction.c:4141,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4144,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:4145,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4146,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:4150,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4152,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4153,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4161,1
    - Dst: PipeReadData
      Src: /src/core/libpromises/evalfunction.c:4163,1
    - Dst: cf_pclose_full_duplex
      Src: /src/core/libpromises/evalfunction.c:4167,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4170,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:4181,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:4183,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4186,1
    - Dst: BufferSize
      Src: /src/core/libpromises/evalfunction.c:4188,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/evalfunction.c:4191,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/evalfunction.c:4194,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4195,1
    - Dst: JsonParse
      Src: /src/core/libpromises/evalfunction.c:4197,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libpromises/evalfunction.c:4199,1
    - Dst: BufferClear
      Src: /src/core/libpromises/evalfunction.c:4200,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4204,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:4208,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4210,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - cmd
    - container
    argTypes:
    - char*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4213
      start: 4122
    functionDepth: 10
    functionLinenumber: 4122
    functionLinenumberEnd: 4213
    functionName: ExecJSON_Pipe
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - Log
    - RlistScalarValue
    - BufferNew
    - free
    - BufferData
    - PipeReadData
    - strlen
    - BufferClear
    - RlistDestroy
    - JsonArrayAppendElement
    - BufferSize
    - PipeWrite
    - cf_pclose_full_duplex
    - JsonParse
    - GetErrorStr
    - cf_popen_full_duplex
    - JsonWrite
    - StringWriter
    - StringWriterClose
    - BufferAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * ExecJSON_Pipe(const char *cmd, JsonElement *container)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4221,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4222,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:4225,1
    - Dst: NewExpArgs
      Src: /src/core/libpromises/evalfunction.c:4230,1
    - Dst: RlistIsUnresolved
      Src: /src/core/libpromises/evalfunction.c:4237,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4239,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4240,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4243,1
    - Dst: RlistIsUnresolved
      Src: /src/core/libpromises/evalfunction.c:4248,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4250,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4251,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:4258,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:4260,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:4261,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:4262,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:4265,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4269,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4270,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:4273,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4275,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4276,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4278,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4279,1
    - Dst: ExecJSON_Pipe
      Src: /src/core/libpromises/evalfunction.c:4284,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4284,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4286,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4290,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4291,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4294,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:4296,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:4299,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/evalfunction.c:4300,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:4302,1
    - Dst: JsonMerge
      Src: /src/core/libpromises/evalfunction.c:4303,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:4304,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4305,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:4311,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/evalfunction.c:4314,1
    - Dst: EvalContextVariablePutSpecialEscaped
      Src: /src/core/libpromises/evalfunction.c:4316,1
    - Dst: JsonGetPropertyAsString
      Src: /src/core/libpromises/evalfunction.c:4316,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:4320,1
    - Dst: BufferClear
      Src: /src/core/libpromises/evalfunction.c:4323,1
    - Dst: EvalContextVariablePutSpecialEscaped
      Src: /src/core/libpromises/evalfunction.c:4324,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:4324,1
    - Dst: NewExpArgs
      Src: /src/core/libpromises/evalfunction.c:4330,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:4331,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/evalfunction.c:4332,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:4332,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:4332,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4333,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4335,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4335,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4335,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4335,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4336,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4336,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4336,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4336,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4338,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4339,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4340,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:4341,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4342,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4343,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4344,1
    - Dst: BufferCanonify
      Src: /src/core/libpromises/evalfunction.c:4349,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:4352,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4352,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4353,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:4360,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:4361,1
    - Dst: JsonGetPropertyAsString
      Src: /src/core/libpromises/evalfunction.c:4363,1
    - Dst: EvalContextVariablePutSpecialEscaped
      Src: /src/core/libpromises/evalfunction.c:4367,1
    - Dst: BufferClear
      Src: /src/core/libpromises/evalfunction.c:4372,1
    - Dst: EvalContextVariablePutSpecialEscaped
      Src: /src/core/libpromises/evalfunction.c:4374,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:4374,1
    - Dst: NewExpArgs
      Src: /src/core/libpromises/evalfunction.c:4380,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:4381,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/evalfunction.c:4382,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:4382,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:4382,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4383,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4385,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4385,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4385,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4385,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4386,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4386,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4386,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4386,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4387,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4387,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4387,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4387,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4389,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4390,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4393,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4395,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:4396,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4397,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4398,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4399,1
    - Dst: BufferCanonify
      Src: /src/core/libpromises/evalfunction.c:4404,1
    - Dst: RlistAppendScalarIdemp
      Src: /src/core/libpromises/evalfunction.c:4407,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4407,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4410,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4412,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4420,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:4423,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4424,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4425,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:4432,1
    - Dst: RlistLen
      Src: /src/core/libpromises/evalfunction.c:4432,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4435,1
    - Dst: JsonParseWithLookup
      Src: /src/core/libpromises/evalfunction.c:4439,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libpromises/evalfunction.c:4441,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4445,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/evalfunction.c:4450,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4454,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:4455,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 125
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4460
      start: 4217
    functionDepth: 11
    functionLinenumber: 4217
    functionLinenumberEnd: 4460
    functionName: FnCallMapData
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - BufferDestroy
    - RlistAppendScalar
    - JsonDestroyMaybe
    - ExecJSON_Pipe
    - Log
    - RlistScalarValue
    - BufferNew
    - RlistLen
    - BufferData
    - EvalContextVariableRemoveSpecial
    - RlistAppendScalarIdemp
    - JsonGetElementType
    - FnFailure
    - BufferClear
    - strcmp
    - RlistDestroy
    - JsonPrimitiveGetAsString
    - JsonArrayAppendElement
    - JsonObjectCreate
    - RlistIsUnresolved
    - JsonIteratorInit
    - JsonMerge
    - PromiseGetBundle
    - ExpandScalar
    - NewExpArgs
    - JsonIteratorNextValueByType
    - BufferCanonify
    - JsonParseWithLookup
    - JsonGetPropertyAsString
    - VarNameOrInlineToJson
    - JsonDestroy
    - RlistScalarValueSafe
    - EvalContextVariablePutSpecialEscaped
    - strstr
    - FnReturnContainerNoCopy
    - JsonArrayAppendString
    - JsonIteratorNextValue
    - JsonArrayCreate
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallMapData(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, ARG_UNUSED const Rlist *finalargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NewExpArgs
      Src: /src/core/libpromises/evalfunction.c:4471,1
    - Dst: RlistIsUnresolved
      Src: /src/core/libpromises/evalfunction.c:4473,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4475,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4476,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:4479,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:4483,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4488,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4489,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:4491,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4493,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4495,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4496,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4497,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:4501,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:4502,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:4504,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:4506,1
    - Dst: BufferClear
      Src: /src/core/libpromises/evalfunction.c:4508,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/evalfunction.c:4509,1
    - Dst: NewExpArgs
      Src: /src/core/libpromises/evalfunction.c:4513,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:4514,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/evalfunction.c:4515,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4516,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4518,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4518,1
    - Dst: strstr
      Src: /src/core/libpromises/evalfunction.c:4518,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4518,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4520,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4521,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:4522,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4523,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4524,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4525,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:4528,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:4528,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/evalfunction.c:4529,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:4531,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4532,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:4533,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - Policy*
    - FnCall*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4536
      start: 4464
    functionDepth: 10
    functionLinenumber: 4464
    functionLinenumberEnd: 4536
    functionName: FnCallMapList
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - RlistAppendScalar
    - JsonDestroyMaybe
    - Log
    - BufferNew
    - BufferData
    - EvalContextVariableRemoveSpecial
    - JsonGetElementType
    - FnFailure
    - BufferClear
    - RlistDestroy
    - JsonPrimitiveGetAsString
    - RlistIsUnresolved
    - JsonIteratorInit
    - ExpandScalar
    - NewExpArgs
    - JsonIteratorNextValueByType
    - VarNameOrInlineToJson
    - RlistScalarValueSafe
    - strstr
    - EvalContextVariablePutSpecial
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallMapList(EvalContext *ctx,\n                                  const
      Policy *policy,\n                                  const FnCall *fp,\n                                  ARG_UNUSED
      const Rlist *finalargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:4542,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4546,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:4547,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:4548,1
    - Dst: xcalloc
      Src: /src/core/libpromises/evalfunction.c:4549,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:4550,1
    - Dst: atoi
      Src: /src/core/libpromises/evalfunction.c:4551,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:4556,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:4560,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4565,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4566,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:4571,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/evalfunction.c:4578,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:4579,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/evalfunction.c:4586,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:4587,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4591,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4592,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4593,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 4541
        line_start: 4541
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 4596
      start: 4540
    functionDepth: 8
    functionLinenumber: 4540
    functionLinenumberEnd: 4596
    functionName: FnCallExpandRange
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - strlen
    - RlistAppendScalar
    - assert
    - sscanf
    - FatalError
    - FnFailure
    - Log
    - xsnprintf
    - xstrdup
    - RlistScalarValue
    - free
    - atoi
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallExpandRange(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RlistLen
      Src: /src/core/libpromises/evalfunction.c:4602,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4604,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4605,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4613,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4614,1
    - Dst: SeqNew
      Src: /src/core/libpromises/evalfunction.c:4618,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:4624,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:4629,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4631,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:4635,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:4639,1
    - Dst: RvalToString
      Src: /src/core/libpromises/evalfunction.c:4641,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4642,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4643,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:4644,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4645,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/evalfunction.c:4651,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/evalfunction.c:4655,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/evalfunction.c:4655,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:4660,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/evalfunction.c:4662,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:4662,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:4663,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:4664,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:4668,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:4669,1
    - Dst: JsonMerge
      Src: /src/core/libpromises/evalfunction.c:4670,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:4672,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:4674,1
    - Dst: JsonMerge
      Src: /src/core/libpromises/evalfunction.c:4675,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:4676,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:4680,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:4681,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:4684,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 4683
        line_start: 4683
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 4685
      start: 4600
    functionDepth: 10
    functionLinenumber: 4600
    functionLinenumberEnd: 4685
    functionName: FnCallMergeData
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonMerge
    - JsonDestroy
    - SeqDestroy
    - JsonCopy
    - assert
    - JsonGetElementType
    - SeqAppend
    - SeqNew
    - SeqLength
    - FnFailure
    - Log
    - RvalToString
    - VarNameOrInlineToJson
    - free
    - FnReturnContainerNoCopy
    - SeqAt
    - RlistLen
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallMergeData(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:4689,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:4697,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:4698,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/evalfunction.c:4699,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/evalfunction.c:4700,1
    - Dst: EvalContextClassTableIteratorNewGlobal
      Src: /src/core/libpromises/evalfunction.c:4702,1
    - Dst: ClassTableIteratorNext
      Src: /src/core/libpromises/evalfunction.c:4704,1
    - Dst: ClassRefToString
      Src: /src/core/libpromises/evalfunction.c:4706,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libpromises/evalfunction.c:4707,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4708,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libpromises/evalfunction.c:4710,1
    - Dst: EvalContextClassTableIteratorNewLocal
      Src: /src/core/libpromises/evalfunction.c:4712,1
    - Dst: ClassTableIteratorNext
      Src: /src/core/libpromises/evalfunction.c:4713,1
    - Dst: ClassRefToString
      Src: /src/core/libpromises/evalfunction.c:4715,1
    - Dst: JsonObjectAppendBool
      Src: /src/core/libpromises/evalfunction.c:4716,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4717,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libpromises/evalfunction.c:4719,1
    - Dst: EvalContextVariableTableIteratorNew
      Src: /src/core/libpromises/evalfunction.c:4723,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/evalfunction.c:4725,1
    - Dst: VariableGetRef
      Src: /src/core/libpromises/evalfunction.c:4727,1
    - Dst: ClassRefToString
      Src: /src/core/libpromises/evalfunction.c:4729,1
    - Dst: JsonObjectGetAsObject
      Src: /src/core/libpromises/evalfunction.c:4734,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:4737,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/evalfunction.c:4738,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:4741,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4746,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/evalfunction.c:4750,1
    - Dst: VariableGetRval
      Src: /src/core/libpromises/evalfunction.c:4751,1
    - Dst: strchr
      Src: /src/core/libpromises/evalfunction.c:4753,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libpromises/evalfunction.c:4755,1
    - Dst: RvalToJson
      Src: /src/core/libpromises/evalfunction.c:4755,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4757,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/libpromises/evalfunction.c:4760,1
    - Dst: StringWriter
      Src: /src/core/libpromises/evalfunction.c:4763,1
    - Dst: JsonWrite
      Src: /src/core/libpromises/evalfunction.c:4764,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4765,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/evalfunction.c:4765,1
    - Dst: WriterClose
      Src: /src/core/libpromises/evalfunction.c:4766,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - ctx
    - wantbundle
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4769
      start: 4687
    functionDepth: 8
    functionLinenumber: 4687
    functionLinenumberEnd: 4769
    functionName: DefaultTemplateData
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendObject
    - Log
    - ClassTableIteratorDestroy
    - free
    - StringEqual
    - VariableGetRef
    - EvalContextVariableTableIteratorNew
    - strchr
    - VariableTableIteratorNext
    - JsonObjectCreate
    - VarRefToString
    - WriterClose
    - ClassRefToString
    - ClassTableIteratorNext
    - JsonObjectAppendBool
    - JsonObjectGetAsObject
    - JsonWrite
    - StringWriter
    - JsonObjectAppendElement
    - VariableGetRval
    - StringWriterData
    - VariableTableIteratorDestroy
    - RvalToJson
    - EvalContextClassTableIteratorNewLocal
    - EvalContextClassTableIteratorNewGlobal
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *DefaultTemplateData(const EvalContext *ctx, const char
      *wantbundle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DefaultTemplateData
      Src: /src/core/libpromises/evalfunction.c:4776,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:4777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4778
      start: 4771
    functionDepth: 9
    functionLinenumber: 4771
    functionLinenumberEnd: 4778
    functionName: FnCallDatastate
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContainerNoCopy
    - DefaultTemplateData
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallDatastate(EvalContext *ctx,\n                                    ARG_UNUSED
      const Policy *policy,\n                                    ARG_UNUSED const
      FnCall *fp,\n                                    ARG_UNUSED const Rlist *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DefaultTemplateData
      Src: /src/core/libpromises/evalfunction.c:4785,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4785,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:4788,1
    - Dst: JsonLength
      Src: /src/core/libpromises/evalfunction.c:4789,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:4793,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4796,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:4800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4780
    functionDepth: 9
    functionLinenumber: 4780
    functionLinenumberEnd: 4802
    functionName: FnCallBundlestate
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - JsonDestroy
    - JsonGetElementType
    - FnFailure
    - DefaultTemplateData
    - RlistScalarValue
    - FnReturnContainerNoCopy
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallBundlestate(EvalContext *ctx,\n                                      ARG_UNUSED
      const Policy *policy,\n                                      ARG_UNUSED const
      FnCall *fp,\n                                      ARG_UNUSED const Rlist *args)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4810,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4811,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4812,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4813,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:4814,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4814,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:4815,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4815,1
    - Dst: IsQualifiedVariable
      Src: /src/core/libpromises/evalfunction.c:4817,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/evalfunction.c:4821,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:4821,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4822,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/evalfunction.c:4823,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:4824,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4828,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4831,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4832,1
    - Dst: IsVarList
      Src: /src/core/libpromises/evalfunction.c:4838,1
    - Dst: GetNaked
      Src: /src/core/libpromises/evalfunction.c:4840,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4844,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4847,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:4850,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/evalfunction.c:4852,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4855,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:4858,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4859,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4860,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:4862,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/evalfunction.c:4864,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4866,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4869,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4870,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4875,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4883,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:4884,1
    - Dst: PolicyNew
      Src: /src/core/libpromises/evalfunction.c:4887,1
    - Dst: PolicyAppendBundle
      Src: /src/core/libpromises/evalfunction.c:4889,1
    - Dst: NamespaceDefault
      Src: /src/core/libpromises/evalfunction.c:4889,1
    - Dst: BundleAppendSection
      Src: /src/core/libpromises/evalfunction.c:4891,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/libpromises/evalfunction.c:4893,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4899,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4900,1
    - Dst: SocketConnect
      Src: /src/core/libpromises/evalfunction.c:4904,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:4911,1
    - Dst: SendSocketStream
      Src: /src/core/libpromises/evalfunction.c:4913,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:4913,1
    - Dst: recv
      Src: /src/core/libpromises/evalfunction.c:4916,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:4921,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:4924,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:4924,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4926,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:4931,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:4932,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/evalfunction.c:4933,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:4935,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4944,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:4949,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:4950,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/evalfunction.c:4951,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:4953,1
    - Dst: cf_closesocket
      Src: /src/core/libpromises/evalfunction.c:4958,1
    - Dst: PolicyDestroy
      Src: /src/core/libpromises/evalfunction.c:4961,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:4962,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4964,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:4965,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: ((size_t) n_read < sizeof(recvbuf))
      pos:
        line_end: 4920
        line_start: 4920
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 4966
      start: 4805
    functionDepth: 8
    functionLinenumber: 4805
    functionLinenumberEnd: 4966
    functionName: FnCallSelectServers
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - SocketConnect
    - cf_closesocket
    - VarRefParseFromBundle
    - IsQualifiedVariable
    - VarRefDestroy
    - Log
    - RlistScalarValue
    - free
    - DataTypeToRvalType
    - IsVarList
    - NamespaceDefault
    - recv
    - BundleAppendSection
    - snprintf
    - PolicyNew
    - strlen
    - SendSocketStream
    - FnReturnF
    - FnFailure
    - StringMatchFull
    - xstrdup
    - PolicyAppendBundle
    - IntFromString
    - PromiseGetBundle
    - VarRefToString
    - BundleSectionAppendPromise
    - assert
    - EvalContextVariablePut
    - VarRefParse
    - EvalContextVariableGet
    - GetNaked
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallSelectServers(EvalContext *ctx,\n                                        ARG_UNUSED
      const Policy *policy,\n                                        const FnCall
      *fp,\n                                        const Rlist *finalargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:4971,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:4973,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:4977,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4982,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:4984,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:4986,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:4988,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:4989,1
    - Dst: SeqNew
      Src: /src/core/libpromises/evalfunction.c:4992,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:4993,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:4995,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/evalfunction.c:4997,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:4997,1
    - Dst: SeqShuffle
      Src: /src/core/libpromises/evalfunction.c:5000,1
    - Dst: StringHash
      Src: /src/core/libpromises/evalfunction.c:5000,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:5003,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:5005,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:5005,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:5008,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5009,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5011
      start: 4969
    functionDepth: 10
    functionLinenumber: 4969
    functionLinenumberEnd: 5011
    functionName: FnCallShuffle
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - StringHash
    - SeqShuffle
    - SeqDestroy
    - RlistScalarValueSafe
    - JsonIteratorNextValueByType
    - JsonGetElementType
    - JsonPrimitiveGetAsString
    - JsonDestroyMaybe
    - SeqNew
    - SeqAt
    - FnFailure
    - Log
    - RlistScalarValue
    - VarNameOrInlineToJson
    - SeqLength
    - RlistPrepend
    - SeqAppend
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallShuffle(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:5015,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:5017,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/evalfunction.c:5020,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5024,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:5027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts:
    - condition: (finalargs != NULL)
      pos:
        line_end: 5014
        line_start: 5014
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 5028
      start: 5013
    functionDepth: 2
    functionLinenumber: 5013
    functionLinenumberEnd: 5028
    functionName: FnCallInt
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistScalarValueSafe
    - assert
    - FnReturnF
    - FnFailure
    - DoubleFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallInt(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:5034,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5034,1
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:5035,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5035,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5037,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5041
      start: 5030
    functionDepth: 2
    functionLinenumber: 5030
    functionLinenumberEnd: 5041
    functionName: FnCallIsNewerThan
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - stat
    - FnFailure
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallIsNewerThan(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:5045,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5047,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:5049,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5049,1
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:5052,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5055,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts:
    - condition: (finalargs != NULL)
      pos:
        line_end: 5044
        line_start: 5044
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 5063
      start: 5043
    functionDepth: 2
    functionLinenumber: 5043
    functionLinenumberEnd: 5063
    functionName: FnCallIsNewerThanTime
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - stat
    - assert
    - FnFailure
    - RlistScalarValue
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallIsNewerThanTime(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:5071,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5071,1
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:5072,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5072,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5074,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5078
      start: 5067
    functionDepth: 2
    functionLinenumber: 5067
    functionLinenumberEnd: 5078
    functionName: FnCallIsAccessedBefore
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - stat
    - FnFailure
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallIsAccessedBefore(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:5086,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5086,1
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:5087,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5087,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5089,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5093
      start: 5082
    functionDepth: 2
    functionLinenumber: 5082
    functionLinenumberEnd: 5093
    functionName: FnCallIsChangedBefore
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - stat
    - FnFailure
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallIsChangedBefore(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5099,1
    - Dst: lstat
      Src: /src/core/libpromises/evalfunction.c:5102,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:5104,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5106,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5108,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5111,1
    - Dst: S_ISLNK
      Src: /src/core/libpromises/evalfunction.c:5113,1
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:5113,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5116,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5118,1
    - Dst: IsExecutable
      Src: /src/core/libpromises/evalfunction.c:5118,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5120,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5122,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/evalfunction.c:5122,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5124,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5126,1
    - Dst: S_ISLNK
      Src: /src/core/libpromises/evalfunction.c:5126,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5128,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5130,1
    - Dst: S_ISREG
      Src: /src/core/libpromises/evalfunction.c:5130,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5132,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5134,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5136,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:5138,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:5141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5142
      start: 5097
    functionDepth: 4
    functionLinenumber: 5097
    functionLinenumberEnd: 5142
    functionName: FnCallFileStat
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - stat
    - IsExecutable
    - S_ISLNK
    - S_ISDIR
    - FnReturnF
    - FnFailure
    - S_ISREG
    - lstat
    - strcmp
    - RlistScalarValue
    - ProgrammingError
    - StringEqual
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFileStat(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5152,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5153,1
    - Dst: lstat
      Src: /src/core/libpromises/evalfunction.c:5158,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5160,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5162,1
    - Dst: llistxattr
      Src: /src/core/libpromises/evalfunction.c:5167,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5173,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:5174,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:5179,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:5183,1
    - Dst: StringIsPrintable
      Src: /src/core/libpromises/evalfunction.c:5185,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5187,1
    - Dst: lgetxattr
      Src: /src/core/libpromises/evalfunction.c:5193,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5202,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:5203,1
    - Dst: StringIsPrintable
      Src: /src/core/libpromises/evalfunction.c:5208,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5210,1
    - Dst: BufferPrintf
      Src: /src/core/libpromises/evalfunction.c:5215,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/evalfunction.c:5220,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5225,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:5225,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:5226,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5232,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5234,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5236,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5238,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5240,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5242,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5244,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5246,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5248,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5250,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5252,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5254,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5256,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5258,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5260,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5262,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5264,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5266,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/evalfunction.c:5268,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5279,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5281,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5283,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5285,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5287,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5289,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5291,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5295,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5296,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5297,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5298,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5299,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5300,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5301,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5302,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5305,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5308,1
    - Dst: minor
      Src: /src/core/libpromises/evalfunction.c:5308,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5310,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5313,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5316,1
    - Dst: major
      Src: /src/core/libpromises/evalfunction.c:5316,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5318,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5321,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5324,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5326,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5329,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5331,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/evalfunction.c:5332,1
    - Dst: MapName
      Src: /src/core/libpromises/evalfunction.c:5333,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5335,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5337,1
    - Dst: ReadLastNode
      Src: /src/core/libpromises/evalfunction.c:5337,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5339,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5339,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5343,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:5347,1
    - Dst: S_ISLNK
      Src: /src/core/libpromises/evalfunction.c:5350,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5354,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5360,1
    - Dst: readlink
      Src: /src/core/libpromises/evalfunction.c:5363,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5367,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/evalfunction.c:5375,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5376,1
    - Dst: DeleteSlash
      Src: /src/core/libpromises/evalfunction.c:5378,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/evalfunction.c:5379,1
    - Dst: AddSlash
      Src: /src/core/libpromises/evalfunction.c:5380,1
    - Dst: strlcat
      Src: /src/core/libpromises/evalfunction.c:5381,1
    - Dst: CompressPath
      Src: /src/core/libpromises/evalfunction.c:5383,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:5387,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5389,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5393,1
    - Dst: lstat
      Src: /src/core/libpromises/evalfunction.c:5398,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5400,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:5411,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:5414,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:5418,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 159
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5419
      start: 5146
    functionDepth: 9
    functionLinenumber: 5146
    functionLinenumberEnd: 5419
    functionName: FnCallFileStatDetails
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - llistxattr
    - BufferDestroy
    - StringIsPrintable
    - lgetxattr
    - BufferPrintf
    - IsAbsoluteFileName
    - Log
    - RlistScalarValue
    - BufferNew
    - strlcpy
    - BufferData
    - snprintf
    - strlen
    - BufferAppendChar
    - FnFailure
    - strcmp
    - lstat
    - ReadLastNode
    - strlcat
    - readlink
    - minor
    - S_ISLNK
    - S_ISDIR
    - FnReturn
    - major
    - GetErrorStr
    - ChopLastNode
    - DeleteSlash
    - MapName
    - CompressPath
    - AddSlash
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallFileStatDetails(ARG_UNUSED EvalContext *ctx,\n
      \                                         ARG_UNUSED const Policy *policy,\n
      \                                         const FnCall *fp,\n                                          const
      Rlist *finalargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:5428,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/evalfunction.c:5433,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:5436,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/evalfunction.c:5436,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5444,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/evalfunction.c:5446,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5448,1
    - Dst: GlobFileList
      Src: /src/core/libpromises/evalfunction.c:5454,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/evalfunction.c:5458,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/evalfunction.c:5460,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:5464,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5465,1
    - Dst: RlistAppendScalarIdemp
      Src: /src/core/libpromises/evalfunction.c:5466,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/evalfunction.c:5468,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5472
      start: 5423
    functionDepth: 8
    functionLinenumber: 5423
    functionLinenumberEnd: 5472
    functionName: FnCallFindfiles
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - snprintf
    - GlobFileList
    - CheckConstraintTypeMatch
    - StringSetIteratorNext
    - RlistAppendScalarIdemp
    - StringSetDestroy
    - IsAbsoluteFileName
    - FatalError
    - Log
    - StringSetIteratorInit
    - RlistScalarValue
    - strlcpy
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFindfiles(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterInternal
      Src: /src/core/libpromises/evalfunction.c:5478,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5480,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/evalfunction.c:5482,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5482,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/evalfunction.c:5483,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5483,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:5484,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5485
      start: 5476
    functionDepth: 1
    functionLinenumber: 5476
    functionLinenumberEnd: 5485
    functionName: FnCallFilter
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistScalarValue
    - BooleanFromString
    - IntFromString
    - FilterInternal
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFilter(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:5491,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/evalfunction.c:5493,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:5494,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5499,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:5502,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/evalfunction.c:5505,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5507,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/evalfunction.c:5509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - fp
    - lval_str
    - datatype_out
    argTypes:
    - EvalContext*
    - FnCall*
    - char*
    - DataType*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 5501
        line_start: 5501
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 5520
      start: 5489
    functionDepth: 8
    functionLinenumber: 5489
    functionLinenumberEnd: 5520
    functionName: GetListReferenceArgument
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - DataTypeToString
    - assert
    - VarRefDestroy
    - EvalContextVariableGet
    - Log
    - VarRefParse
    - DataTypeToRvalType
    linkageType: ''
    returnType: Rlist
    signature: Rlist *GetListReferenceArgument(const EvalContext *ctx, const FnCall
      *fp, const char *lval_str, DataType *datatype_out)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/evalfunction.c:5535,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5538,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:5543,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:5548,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5549,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:5551,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5553,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:5554,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5555,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:5556,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5557,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:5565,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:5567,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/evalfunction.c:5570,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/evalfunction.c:5576,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5580,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:5585,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5588,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5589,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:5591,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5595,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:5598,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:5603,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5607,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:5611,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5616,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5621,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5626,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5627,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5628,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5633,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5634,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:5636,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:5641,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:5642,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 7
    argNames:
    - ctx
    - fp
    - regex
    - rp
    - do_regex
    - invert
    - max
    argTypes:
    - EvalContext*
    - FnCall*
    - char*
    - Rlist*
    - bool
    - bool
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5647
      start: 5524
    functionDepth: 10
    functionLinenumber: 5524
    functionLinenumberEnd: 5647
    functionName: FilterInternal
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 3
    functionsReached:
    - JsonIteratorInit
    - FnReturnContext
    - RlistScalarValueSafe
    - RlistAppendScalar
    - JsonIteratorNextValueByType
    - JsonGetElementType
    - JsonDestroyMaybe
    - CompileRegex
    - RegexDestroy
    - FnFailure
    - Log
    - StringMatchFullWithPrecompiledRegex
    - strcmp
    - JsonPrimitiveToString
    - VarNameOrInlineToJson
    - free
    - ProgrammingError
    - RlistDestroy
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FilterInternal(EvalContext *ctx,\n                                   const
      FnCall *fp,\n                                   const char *regex,\n                                   const
      Rlist* rp,\n                                   bool do_regex,\n                                   bool
      invert,\n                                   long max)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:5653,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:5657,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5662,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:5664,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5666,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5668,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5669,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5672,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5672,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:5673,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5673,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:5678,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:5680,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:5682,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:5682,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5685,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:5692,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5692,1
    - Dst: RlistLen
      Src: /src/core/libpromises/evalfunction.c:5699,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:5710,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5710,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:5714,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5716
      start: 5651
    functionDepth: 10
    functionLinenumber: 5651
    functionLinenumberEnd: 5716
    functionName: FnCallSublist
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - RlistScalarValueSafe
    - RlistAppendScalar
    - JsonIteratorNextValueByType
    - JsonGetElementType
    - JsonPrimitiveGetAsString
    - JsonDestroyMaybe
    - FnFailure
    - Log
    - strcmp
    - RlistDestroy
    - RlistScalarValue
    - VarNameOrInlineToJson
    - IntFromString
    - RlistLen
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallSublist(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5725,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5726,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:5728,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:5730,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5735,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:5737,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5739,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5741,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5742,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:5749,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:5750,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5755,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5756,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:5758,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5760,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5762,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5763,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5764,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/evalfunction.c:5768,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:5771,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:5773,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/evalfunction.c:5775,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:5775,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:5775,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:5781,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:5783,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:5785,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/evalfunction.c:5788,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/evalfunction.c:5793,1
    - Dst: RlistAppendScalarIdemp
      Src: /src/core/libpromises/evalfunction.c:5798,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5801,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5804,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/evalfunction.c:5808,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5811
      start: 5721
    functionDepth: 10
    functionLinenumber: 5721
    functionLinenumberEnd: 5811
    functionName: FnCallSetop
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - RlistScalarValueSafe
    - JsonIteratorNextValueByType
    - JsonGetElementType
    - StringSetContains
    - RlistAppendScalarIdemp
    - JsonDestroyMaybe
    - StringSetDestroy
    - FnFailure
    - Log
    - strcmp
    - xstrdup
    - JsonPrimitiveGetAsString
    - VarNameOrInlineToJson
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallSetop(EvalContext *ctx,\n                                ARG_UNUSED
      const Policy *policy,\n                                const FnCall *fp, const
      Rlist *finalargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:5817,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:5821,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5826,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:5828,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:5830,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5832,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5833,1
    - Dst: JsonLength
      Src: /src/core/libpromises/evalfunction.c:5836,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5837,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:5838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5839
      start: 5813
    functionDepth: 10
    functionLinenumber: 5813
    functionLinenumberEnd: 5839
    functionName: FnCallLength
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - RlistScalarValueSafe
    - JsonGetElementType
    - JsonDestroyMaybe
    - FnReturnF
    - FnFailure
    - Log
    - VarNameOrInlineToJson
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallLength(EvalContext *ctx,\n                                 ARG_UNUSED
      const Policy *policy,\n                                 const FnCall *fp, const
      Rlist *finalargs)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:5845,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5854,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5855,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5856,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5857,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5858,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:5859,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:5862,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5866,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:5869,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:5871,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/evalfunction.c:5873,1
    - Dst: GenericStringItemLess
      Src: /src/core/libpromises/evalfunction.c:5879,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:5881,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:5882,1
    - Dst: GenericStringItemLess
      Src: /src/core/libpromises/evalfunction.c:5885,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:5887,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:5888,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:5897,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:5910,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:5914,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5918,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:5918,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:5922,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:5926,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5934,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:5944,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5948,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:5948,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5952,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:5952,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:5956,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:5957,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5958
      start: 5841
    functionDepth: 10
    functionLinenumber: 5841
    functionLinenumberEnd: 5958
    functionName: FnCallFold
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonPrimitiveToString
    - FnReturnNoCopy
    - JsonIteratorNextValueByType
    - JsonDestroyMaybe
    - sscanf
    - FnReturnF
    - FnFailure
    - ProgrammingError
    - strcmp
    - GenericStringItemLess
    - RlistScalarValue
    - VarNameOrInlineToJson
    - free
    - xstrdup
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallFold(EvalContext *ctx,\n                               ARG_UNUSED
      const Policy *policy,\n                               const FnCall *fp, const
      Rlist *finalargs)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:5964,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:5966,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/evalfunction.c:5968,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:5969,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/evalfunction.c:5972,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/evalfunction.c:5976,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/evalfunction.c:5984,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/evalfunction.c:6011,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/evalfunction.c:6013,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - var_name
    - detail
    argTypes:
    - EvalContext*
    - char*
    - bool
    assertStmts:
    - condition: (var_name != NULL)
      pos:
        line_end: 5963
        line_start: 5963
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 6014
      start: 5962
    functionDepth: 2
    functionLinenumber: 5962
    functionLinenumberEnd: 6014
    functionName: DataTypeStringFromVarName
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - DataTypeToString
    - assert
    - SafeStringDuplicate
    - VarRefDestroy
    - StringConcatenate
    - EvalContextVariableGet
    - VarRefParse
    - JsonGetType
    linkageType: ''
    returnType: char
    signature: char *DataTypeStringFromVarName(EvalContext *ctx, const char *var_name,
      bool detail)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:6018,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:6019,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6023,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6026,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6028,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/evalfunction.c:6034,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6034,1
    - Dst: DataTypeStringFromVarName
      Src: /src/core/libpromises/evalfunction.c:6036,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6040,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6042,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:6045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 6017
        line_start: 6017
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 6018
        line_start: 6018
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 6046
      start: 6016
    functionDepth: 8
    functionLinenumber: 6016
    functionLinenumberEnd: 6046
    functionName: FnCallDatatype
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnNoCopy
    - assert
    - DataTypeStringFromVarName
    - FnFailure
    - Log
    - RlistScalarValue
    - BooleanFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallDatatype(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:6052,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:6053,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6059,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6061,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:6064,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6068,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6070,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6073,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6074,1
    - Dst: StringContainsChar
      Src: /src/core/libpromises/evalfunction.c:6075,1
    - Dst: DataTypeStringFromVarName
      Src: /src/core/libpromises/evalfunction.c:6077,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6081,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6083,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:6085,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:6086,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 6051
        line_start: 6051
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 6052
        line_start: 6052
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (finalargs != NULL)
      pos:
        line_end: 6063
        line_start: 6063
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 6089
      start: 6050
    functionDepth: 8
    functionLinenumber: 6050
    functionLinenumberEnd: 6089
    functionName: FnCallIsDatatype
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - StringContainsChar
    - FnReturnContext
    - assert
    - DataTypeStringFromVarName
    - FnFailure
    - Log
    - RlistScalarValue
    - free
    - StringEqual
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallIsDatatype(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6095,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:6097,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:6101,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6106,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:6108,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6110,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:6112,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6113,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:6118,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/evalfunction.c:6120,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/evalfunction.c:6125,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:6129,1
    - Dst: JsonLength
      Src: /src/core/libpromises/evalfunction.c:6132,1
    - Dst: JsonLength
      Src: /src/core/libpromises/evalfunction.c:6135,1
    - Dst: JsonAt
      Src: /src/core/libpromises/evalfunction.c:6137,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:6142,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:6146,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:6148,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6151,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:6156,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6164
      start: 6093
    functionDepth: 10
    functionLinenumber: 6093
    functionLinenumberEnd: 6164
    functionName: FnCallNth
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonLength
    - RlistScalarValueSafe
    - JsonPrimitiveGetAsString
    - JsonGetElementType
    - JsonDestroyMaybe
    - JsonAt
    - FnReturn
    - FnFailure
    - Log
    - ProgrammingError
    - RlistScalarValue
    - VarNameOrInlineToJson
    - JsonObjectGet
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallNth(EvalContext *ctx, ARG_UNUSED const Policy *policy,
      const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FilterInternal
      Src: /src/core/libpromises/evalfunction.c:6170,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6177
      start: 6168
    functionDepth: 11
    functionLinenumber: 6168
    functionLinenumberEnd: 6177
    functionName: FnCallEverySomeNone
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistScalarValue
    - FilterInternal
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallEverySomeNone(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:6183,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6190,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:6197,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:6201,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6206,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:6208,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6210,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:6212,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6213,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:6217,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:6219,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/evalfunction.c:6221,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:6221,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:6223,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6225,1
    - Dst: IntSortRListNames
      Src: /src/core/libpromises/evalfunction.c:6227,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6229,1
    - Dst: RealSortRListNames
      Src: /src/core/libpromises/evalfunction.c:6231,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6233,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6233,1
    - Dst: IPSortRListNames
      Src: /src/core/libpromises/evalfunction.c:6235,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6237,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6237,1
    - Dst: MACSortRListNames
      Src: /src/core/libpromises/evalfunction.c:6239,1
    - Dst: AlphaSortRListNames
      Src: /src/core/libpromises/evalfunction.c:6243,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6247
      start: 6179
    functionDepth: 10
    functionLinenumber: 6179
    functionLinenumberEnd: 6247
    functionName: FnCallSort
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - RealSortRListNames
    - AlphaSortRListNames
    - RlistScalarValueSafe
    - RlistAppendScalar
    - JsonIteratorNextValueByType
    - JsonGetElementType
    - JsonPrimitiveGetAsString
    - JsonDestroyMaybe
    - IntSortRListNames
    - FatalError
    - FnFailure
    - Log
    - strcmp
    - IPSortRListNames
    - RlistScalarValue
    - VarNameOrInlineToJson
    - MACSortRListNames
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallSort(EvalContext *ctx, ARG_UNUSED const Policy *policy,
      const FnCall *fp, const Rlist *finalargs)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/evalfunction.c:6258,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:6261,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/evalfunction.c:6261,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6267,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6270,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6274,1
    - Dst: strchr
      Src: /src/core/libpromises/evalfunction.c:6279,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:6281,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/evalfunction.c:6285,1
    - Dst: StringMatchCaptures
      Src: /src/core/libpromises/evalfunction.c:6289,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:6292,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:6294,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:6294,1
    - Dst: StringEqualN
      Src: /src/core/libpromises/evalfunction.c:6295,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6304,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6309,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:6310,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:6311,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6312,1
    - Dst: memset
      Src: /src/core/libpromises/evalfunction.c:6316,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:6319,1
    - Dst: strchr
      Src: /src/core/libpromises/evalfunction.c:6322,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6324,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:6327,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:6328,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6329,1
    - Dst: strrchr
      Src: /src/core/libpromises/evalfunction.c:6333,1
    - Dst: strrchr
      Src: /src/core/libpromises/evalfunction.c:6333,1
    - Dst: strrchr
      Src: /src/core/libpromises/evalfunction.c:6333,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:6336,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:6337,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/evalfunction.c:6338,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:6338,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/evalfunction.c:6343,1
    - Dst: strrchr
      Src: /src/core/libpromises/evalfunction.c:6345,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:6348,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:6349,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/evalfunction.c:6350,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:6350,1
    - Dst: strrchr
      Src: /src/core/libpromises/evalfunction.c:6352,1
    - Dst: BufferAppendF
      Src: /src/core/libpromises/evalfunction.c:6354,1
    - Dst: strrchr
      Src: /src/core/libpromises/evalfunction.c:6356,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:6361,1
    - Dst: strrchr
      Src: /src/core/libpromises/evalfunction.c:6362,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:6370,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:6374,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/evalfunction.c:6376,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:6377,1
    - Dst: StringWriter
      Src: /src/core/libpromises/evalfunction.c:6381,1
    - Dst: JsonWriteCompact
      Src: /src/core/libpromises/evalfunction.c:6382,1
    - Dst: BufferAppendF
      Src: /src/core/libpromises/evalfunction.c:6383,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/evalfunction.c:6383,1
    - Dst: WriterClose
      Src: /src/core/libpromises/evalfunction.c:6384,1
    - Dst: GetListReferenceArgument
      Src: /src/core/libpromises/evalfunction.c:6389,1
    - Dst: StringWriter
      Src: /src/core/libpromises/evalfunction.c:6392,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/evalfunction.c:6393,1
    - Dst: EscapeCharCopy
      Src: /src/core/libpromises/evalfunction.c:6396,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6396,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/evalfunction.c:6397,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:6398,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/evalfunction.c:6402,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/evalfunction.c:6405,1
    - Dst: BufferAppendF
      Src: /src/core/libpromises/evalfunction.c:6407,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/evalfunction.c:6407,1
    - Dst: WriterClose
      Src: /src/core/libpromises/evalfunction.c:6408,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6412,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:6414,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:6415,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6416,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/evalfunction.c:6423,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:6423,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:6433,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/evalfunction.c:6435,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:6435,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:6435,1
    - Dst: BufferSize
      Src: /src/core/libpromises/evalfunction.c:6435,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:6435,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:6444,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:6446,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:6446,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:6446,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:6455,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/evalfunction.c:6460,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:6460,1
    - Dst: FnReturnBuffer
      Src: /src/core/libpromises/evalfunction.c:6463,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 111
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6464
      start: 6251
    functionDepth: 9
    functionLinenumber: 6251
    functionLinenumberEnd: 6464
    functionName: FnCallFormat
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - StringMatchCaptures
    - VarRefDestroy
    - GetListReferenceArgument
    - Log
    - EscapeCharCopy
    - RlistScalarValue
    - BufferNew
    - SeqLength
    - free
    - strlcpy
    - BufferData
    - SeqDestroy
    - snprintf
    - strlen
    - WriterWrite
    - sscanf
    - strchr
    - JsonWriteCompact
    - FnFailure
    - strrchr
    - BufferSize
    - memset
    - SeqAt
    - WriterClose
    - BufferAppendF
    - VarRefParse
    - WriterWriteF
    - BufferAppend
    - CheckConstraintTypeMatch
    - FnReturnBuffer
    - StringWriter
    - FatalError
    - StringEqualN
    - EvalContextVariableGet
    - StringWriterData
    - ProgrammingError
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFormat(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:6471,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6475,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6476,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6479,1
    - Dst: FuzzyMatchParse
      Src: /src/core/libpromises/evalfunction.c:6482,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6484,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6487,1
    - Dst: EvalContextGetIpAddresses
      Src: /src/core/libpromises/evalfunction.c:6490,1
    - Dst: FuzzySetMatch
      Src: /src/core/libpromises/evalfunction.c:6494,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6502,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6504,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:6514,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6514,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/evalfunction.c:6515,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6520,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6522,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:6526,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6527,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:6529,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6535,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6536,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 6470
        line_start: 6470
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 6537
      start: 6468
    functionDepth: 8
    functionLinenumber: 6468
    functionLinenumberEnd: 6537
    functionName: FnCallIPRange
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - CanonifyNameInPlace
    - assert
    - FuzzySetMatch
    - FnFailure
    - FuzzyMatchParse
    - Log
    - xstrdup
    - RlistScalarValue
    - EvalContextGetIpAddresses
    - strcmp
    - free
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallIPRange(EvalContext *ctx, ARG_UNUSED const Policy
      *policy,\n                                  const FnCall *fp, const Rlist *finalargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:6543,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6547,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6548,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6551,1
    - Dst: FuzzyMatchParse
      Src: /src/core/libpromises/evalfunction.c:6554,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6556,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6559,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6564,1
    - Dst: FuzzySetMatch
      Src: /src/core/libpromises/evalfunction.c:6566,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6568,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6570,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6574,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 6542
        line_start: 6542
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 6576
      start: 6539
    functionDepth: 8
    functionLinenumber: 6539
    functionLinenumberEnd: 6576
    functionName: FnCallIsIpInSubnet
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - assert
    - FuzzySetMatch
    - FnFailure
    - FuzzyMatchParse
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallIsIpInSubnet(ARG_UNUSED EvalContext *ctx,\n                                       ARG_UNUSED
      const Policy *policy,\n                                       const FnCall *fp,
      const Rlist *finalargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6581,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6582,1
    - Dst: FuzzyHostParse
      Src: /src/core/libpromises/evalfunction.c:6584,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6586,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6589,1
    - Dst: FuzzyHostMatch
      Src: /src/core/libpromises/evalfunction.c:6589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6590
      start: 6579
    functionDepth: 2
    functionLinenumber: 6579
    functionLinenumberEnd: 6590
    functionName: FnCallHostRange
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - FuzzyHostMatch
    - FuzzyHostParse
    - FnFailure
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallHostRange(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setnetgrent
      Src: /src/core/libpromises/evalfunction.c:6596,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6596,1
    - Dst: getnetgrent
      Src: /src/core/libpromises/evalfunction.c:6600,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6604,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6605,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6610,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6611,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6613,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6614,1
    - Dst: endnetgrent
      Src: /src/core/libpromises/evalfunction.c:6620,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6623
      start: 6594
    functionDepth: 8
    functionLinenumber: 6594
    functionLinenumberEnd: 6623
    functionName: FnCallHostInNetgroup
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 2
    functionsReached:
    - FnReturnContext
    - getnetgrent
    - setnetgrent
    - Log
    - strcmp
    - endnetgrent
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallHostInNetgroup(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6629,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:6634,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/evalfunction.c:6636,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:6641,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6645
      start: 6627
    functionDepth: 2
    functionLinenumber: 6627
    functionLinenumberEnd: 6645
    functionName: FnCallIsVariable
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - VarRefDestroy
    - EvalContextVariableGet
    - VarRefParse
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallIsVariable(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6651,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6651,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6651,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6652
      start: 6649
    functionDepth: 2
    functionLinenumber: 6649
    functionLinenumberEnd: 6652
    functionName: FnCallStrCmp
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallStrCmp(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:6660,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6660,1
    - Dst: MapName
      Src: /src/core/libpromises/evalfunction.c:6661,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6664
      start: 6656
    functionDepth: 1
    functionLinenumber: 6656
    functionLinenumberEnd: 6664
    functionName: FnCallTranslatePath
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - MapName
    - FnReturn
    - strlcpy
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallTranslatePath(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6674,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6675,1
    - Dst: GetRegistryValue
      Src: /src/core/libpromises/evalfunction.c:6676,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6678,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6681,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6684
      start: 6670
    functionDepth: 8
    functionLinenumber: 6670
    functionLinenumberEnd: 6684
    functionName: FnCallRegistryValue
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - GetRegistryValue
    - FnReturn
    - FnFailure
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRegistryValue(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6691
      start: 6688
    functionDepth: 1
    functionLinenumber: 6688
    functionLinenumberEnd: 6691
    functionName: FnCallRegistryValue
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnFailure
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRegistryValue(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, ARG_UNUSED const Rlist *finalargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6702,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6703,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/evalfunction.c:6704,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6704,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6706,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6714,1
    - Dst: GetRemoteScalar
      Src: /src/core/libpromises/evalfunction.c:6721,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6725,1
    - Dst: strncmp
      Src: /src/core/libpromises/evalfunction.c:6728,1
    - Dst: RetrieveUnreliableValue
      Src: /src/core/libpromises/evalfunction.c:6730,1
    - Dst: CacheUnreliableValue
      Src: /src/core/libpromises/evalfunction.c:6738,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6743
      start: 6697
    functionDepth: 1
    functionLinenumber: 6697
    functionLinenumberEnd: 6743
    functionName: FnCallRemoteScalar
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - strncmp
    - GetRemoteScalar
    - FnReturn
    - FnFailure
    - strcmp
    - CacheUnreliableValue
    - RlistScalarValue
    - RetrieveUnreliableValue
    - BooleanFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallRemoteScalar(EvalContext *ctx,\n                                       ARG_UNUSED
      const Policy *policy,\n                                       ARG_UNUSED const
      FnCall *fp,\n                                       const Rlist *finalargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6752,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6756,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6763,1
    - Dst: GetRemoteScalar
      Src: /src/core/libpromises/evalfunction.c:6764,1
    - Dst: PolicyServerGetIP
      Src: /src/core/libpromises/evalfunction.c:6764,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6768,1
    - Dst: strncmp
      Src: /src/core/libpromises/evalfunction.c:6774,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6776,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6781
      start: 6747
    functionDepth: 8
    functionLinenumber: 6747
    functionLinenumberEnd: 6781
    functionName: FnCallHubKnowledge
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - strncmp
    - PolicyServerGetIP
    - FnReturn
    - GetRemoteScalar
    - Log
    - FnFailure
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallHubKnowledge(EvalContext *ctx,\n                                       ARG_UNUSED
      const Policy *policy,\n                                       ARG_UNUSED const
      FnCall *fp,\n                                       const Rlist *finalargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6790,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6791,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/evalfunction.c:6792,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6792,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6793,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6795,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6803,1
    - Dst: GetRemoteScalar
      Src: /src/core/libpromises/evalfunction.c:6810,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6814,1
    - Dst: strncmp
      Src: /src/core/libpromises/evalfunction.c:6817,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6819,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:6822,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:6828,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6829,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/evalfunction.c:6830,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:6833,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:6836,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6838
      start: 6785
    functionDepth: 2
    functionLinenumber: 6785
    functionLinenumberEnd: 6838
    functionName: FnCallRemoteClassesMatching
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - strncmp
    - snprintf
    - EvalContextClassPutSoft
    - RlistFromSplitString
    - GetRemoteScalar
    - FnReturn
    - FnFailure
    - strcmp
    - RlistDestroy
    - RlistScalarValue
    - BooleanFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallRemoteClassesMatching(EvalContext *ctx,\n                                                ARG_UNUSED
      const Policy *policy,\n                                                ARG_UNUSED
      const FnCall *fp,\n                                                const Rlist
      *finalargs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6846,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6847,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:6848,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6848,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6852,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6853,1
    - Dst: CfReadFile
      Src: /src/core/libpromises/evalfunction.c:6856,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6860,1
    - Dst: StripPatterns
      Src: /src/core/libpromises/evalfunction.c:6863,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/libpromises/evalfunction.c:6866,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6876,1
    - Dst: EmptyString
      Src: /src/core/libpromises/evalfunction.c:6877,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6882,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6882,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:6888,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:6899,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:6905,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:6906,1
    - Dst: RlistReverse
      Src: /src/core/libpromises/evalfunction.c:6910,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:6914,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6918
      start: 6842
    functionDepth: 8
    functionLinenumber: 6842
    functionLinenumberEnd: 6918
    functionName: FnCallPeers
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistReverse
    - RlistFromSplitRegex
    - StripPatterns
    - EmptyString
    - FnFailure
    - Log
    - strcmp
    - RlistDestroy
    - RlistScalarValue
    - free
    - CfReadFile
    - RlistPrepend
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallPeers(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6926,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6927,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:6928,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6928,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6932,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6933,1
    - Dst: CfReadFile
      Src: /src/core/libpromises/evalfunction.c:6936,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6939,1
    - Dst: StripPatterns
      Src: /src/core/libpromises/evalfunction.c:6942,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/libpromises/evalfunction.c:6945,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6956,1
    - Dst: EmptyString
      Src: /src/core/libpromises/evalfunction.c:6957,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6962,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:6962,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:6965,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:6971,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:6972,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:6976,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6979,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6980
      start: 6922
    functionDepth: 8
    functionLinenumber: 6922
    functionLinenumberEnd: 6980
    functionName: FnCallPeerLeader
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistFromSplitRegex
    - StripPatterns
    - EmptyString
    - FnReturn
    - FnFailure
    - Log
    - strcmp
    - RlistDestroy
    - RlistScalarValue
    - free
    - CfReadFile
    - strlcpy
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallPeerLeader(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6988,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6989,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:6990,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:6990,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:6994,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:6995,1
    - Dst: CfReadFile
      Src: /src/core/libpromises/evalfunction.c:6998,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7001,1
    - Dst: StripPatterns
      Src: /src/core/libpromises/evalfunction.c:7004,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/libpromises/evalfunction.c:7007,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7016,1
    - Dst: EmptyString
      Src: /src/core/libpromises/evalfunction.c:7017,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:7024,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:7024,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:7026,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:7030,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:7037,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7038,1
    - Dst: RlistReverse
      Src: /src/core/libpromises/evalfunction.c:7040,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7043
      start: 6984
    functionDepth: 8
    functionLinenumber: 6984
    functionLinenumberEnd: 7043
    functionName: FnCallPeerLeaders
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistReverse
    - RlistFromSplitRegex
    - StripPatterns
    - EmptyString
    - FnFailure
    - Log
    - strcmp
    - RlistDestroy
    - RlistScalarValue
    - free
    - CfReadFile
    - RlistPrepend
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallPeerLeaders(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7049,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7050,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7052,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/evalfunction.c:7052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7053
      start: 7047
    functionDepth: 3
    functionLinenumber: 7047
    functionLinenumberEnd: 7053
    functionName: FnCallRegCmp
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - StringMatchFull
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRegCmp(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7059,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7060,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7061,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7062,1
    - Dst: BufferNewFrom
      Src: /src/core/libpromises/evalfunction.c:7064,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:7064,1
    - Dst: BufferSearchAndReplace
      Src: /src/core/libpromises/evalfunction.c:7065,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:7069,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7070,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7072,1
    - Dst: FnReturnBuffer
      Src: /src/core/libpromises/evalfunction.c:7075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7076
      start: 7057
    functionDepth: 8
    functionLinenumber: 7057
    functionLinenumberEnd: 7076
    functionName: FnCallRegReplace
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - BufferNewFrom
    - strlen
    - FnReturnBuffer
    - BufferSearchAndReplace
    - FnFailure
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRegReplace(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:7082,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7084,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7085,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:7090,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7090,1
    - Dst: IsQualifiedVariable
      Src: /src/core/libpromises/evalfunction.c:7092,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/evalfunction.c:7096,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:7096,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7097,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/evalfunction.c:7098,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:7099,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7103,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7106,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7107,1
    - Dst: StringMatchCaptures
      Src: /src/core/libpromises/evalfunction.c:7112,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:7114,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:7116,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7117,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7118,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7118,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:7125,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:7125,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:7128,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:7130,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:7131,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:7136,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:7136,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:7136,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:7141,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:7141,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/evalfunction.c:7142,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/evalfunction.c:7143,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:7143,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:7146,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7150,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:7151,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:7155,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7161
      start: 7080
    functionDepth: 8
    functionLinenumber: 7080
    functionLinenumberEnd: 7161
    functionName: FnCallRegExtract
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - VarRefParseFromBundle
    - StringMatchCaptures
    - IsQualifiedVariable
    - VarRefDestroy
    - Log
    - RlistScalarValue
    - SeqLength
    - free
    - BufferData
    - SeqDestroy
    - snprintf
    - FnFailure
    - strcmp
    - xstrdup
    - JsonObjectCreate
    - SeqAt
    - FnReturnContext
    - PromiseGetBundle
    - VarRefToString
    - EvalContextVariablePut
    - VarRefParse
    - JsonObjectAppendString
    - FnReturnContainerNoCopy
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRegExtract(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/evalfunction.c:7167,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7167,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7170,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7173,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/evalfunction.c:7175,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:7178,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7179,1
    - Dst: xmalloc
      Src: /src/core/libpromises/evalfunction.c:7183,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/evalfunction.c:7185,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/evalfunction.c:7187,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7189,1
    - Dst: fclose
      Src: /src/core/libpromises/evalfunction.c:7190,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:7191,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7192,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:7196,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7197,1
    - Dst: feof
      Src: /src/core/libpromises/evalfunction.c:7199,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7201,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:7202,1
    - Dst: fclose
      Src: /src/core/libpromises/evalfunction.c:7205,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7207
      start: 7165
    functionDepth: 8
    functionLinenumber: 7165
    functionLinenumberEnd: 7207
    functionName: FnCallRegLine
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - GetErrorStr
    - CompileRegex
    - RegexDestroy
    - safe_fopen
    - feof
    - FnFailure
    - xmalloc
    - StringMatchFullWithPrecompiledRegex
    - fclose
    - RlistScalarValue
    - Log
    - free
    - CfReadLine
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRegLine(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7213,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7214,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:7215,1
    - Dst: IsRealNumber
      Src: /src/core/libpromises/evalfunction.c:7217,1
    - Dst: IsRealNumber
      Src: /src/core/libpromises/evalfunction.c:7217,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/evalfunction.c:7220,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/evalfunction.c:7221,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7223,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7228,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7232,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7238,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:7238,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7242,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:7242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7244
      start: 7211
    functionDepth: 2
    functionLinenumber: 7211
    functionLinenumberEnd: 7244
    functionName: FnCallIsLessGreaterThan
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - IsRealNumber
    - FnFailure
    - DoubleFromString
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallIsLessGreaterThan(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7250,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7250,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7251,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7251,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7255,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:7265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7266
      start: 7248
    functionDepth: 2
    functionLinenumber: 7248
    functionLinenumberEnd: 7266
    functionName: FnCallIRange
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnF
    - FnFailure
    - IntFromString
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallIRange(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DoubleFromString
      Src: /src/core/libpromises/evalfunction.c:7273,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7273,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7275,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7277,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7278,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/evalfunction.c:7282,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7282,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7284,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7286,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7287,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:7297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7298
      start: 7270
    functionDepth: 8
    functionLinenumber: 7270
    functionLinenumberEnd: 7298
    functionName: FnCallRRange
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnF
    - FnFailure
    - Log
    - DoubleFromString
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRRange(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:7302,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:7306,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7311,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:7313,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7315,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:7317,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7318,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:7323,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:7325,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/evalfunction.c:7327,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:7327,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:7329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7332
      start: 7300
    functionDepth: 10
    functionLinenumber: 7300
    functionLinenumberEnd: 7332
    functionName: FnCallReverse
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - RlistScalarValueSafe
    - JsonIteratorNextValueByType
    - JsonGetElementType
    - JsonDestroyMaybe
    - FnFailure
    - Log
    - JsonPrimitiveGetAsString
    - VarNameOrInlineToJson
    - RlistPrepend
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReverse(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7340,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7340,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7343,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7343,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7346,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7346,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7348,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7348,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7350,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7350,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7352,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - rp
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7354
      start: 7336
    functionDepth: 1
    functionLinenumber: 7336
    functionLinenumberEnd: 7354
    functionName: FnArgsToTm
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - IntFromString
    - RlistScalarValue
    linkageType: ''
    returnType: struct tm
    signature: struct tm FnArgsToTm(const Rlist *rp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FnArgsToTm
      Src: /src/core/libpromises/evalfunction.c:7358,1
    - Dst: mktime
      Src: /src/core/libpromises/evalfunction.c:7359,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7363,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:7366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7367
      start: 7356
    functionDepth: 8
    functionLinenumber: 7356
    functionLinenumberEnd: 7367
    functionName: FnCallOn
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnArgsToTm
    - FnReturnF
    - mktime
    - Log
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallOn(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:7378,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/evalfunction.c:7383,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:7386,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/evalfunction.c:7386,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:7392,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7392,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7394,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7399
      start: 7371
    functionDepth: 2
    functionLinenumber: 7371
    functionLinenumberEnd: 7399
    functionName: FnCallOr
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - snprintf
    - CheckConstraintTypeMatch
    - FatalError
    - IsDefinedClass
    - RlistScalarValue
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallOr(EvalContext *ctx,\n                             ARG_UNUSED
      const Policy *policy,\n                             ARG_UNUSED const FnCall
      *fp,\n                             const Rlist *finalargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/libpromises/evalfunction.c:7405,1
    - Dst: FnArgsToTm
      Src: /src/core/libpromises/evalfunction.c:7406,1
    - Dst: mktime
      Src: /src/core/libpromises/evalfunction.c:7411,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7415,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7419
      start: 7403
    functionDepth: 8
    functionLinenumber: 7403
    functionLinenumberEnd: 7419
    functionName: FnCallLaterThan
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - FnArgsToTm
    - Log
    - mktime
    - time
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallLaterThan(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FnArgsToTm
      Src: /src/core/libpromises/evalfunction.c:7423,1
    - Dst: time
      Src: /src/core/libpromises/evalfunction.c:7424,1
    - Dst: localtime_r
      Src: /src/core/libpromises/evalfunction.c:7426,1
    - Dst: mktime
      Src: /src/core/libpromises/evalfunction.c:7435,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:7438,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:7441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7442
      start: 7421
    functionDepth: 2
    functionLinenumber: 7421
    functionLinenumberEnd: 7442
    functionName: FnCallAgoDate
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - localtime_r
    - FnArgsToTm
    - FnReturnF
    - FnReturn
    - mktime
    - time
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallAgoDate(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FnArgsToTm
      Src: /src/core/libpromises/evalfunction.c:7448,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:7459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7460
      start: 7446
    functionDepth: 2
    functionLinenumber: 7446
    functionLinenumberEnd: 7460
    functionName: FnCallAccumulatedDate
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnArgsToTm
    - FnReturnF
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallAccumulatedDate(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7469,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:7469,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7470
      start: 7464
    functionDepth: 2
    functionLinenumber: 7464
    functionLinenumberEnd: 7470
    functionName: FnCallNot
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - IsDefinedClass
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallNot(EvalContext *ctx,\n                              ARG_UNUSED
      const Policy *policy,\n                              ARG_UNUSED const FnCall
      *fp,\n                              const Rlist *finalargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:7476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7477
      start: 7474
    functionDepth: 2
    functionLinenumber: 7474
    functionLinenumberEnd: 7477
    functionName: FnCallNow
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnF
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallNow(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      Policy *policy, ARG_UNUSED const FnCall *fp, ARG_UNUSED const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/evalfunction.c:7533,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/evalfunction.c:7534,1
    - Dst: SearchAndReplace
      Src: /src/core/libpromises/evalfunction.c:7559,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7560,1
    - Dst: strftime
      Src: /src/core/libpromises/evalfunction.c:7564,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - buffer
    - bufsiz
    - format
    - when
    - tm
    argTypes:
    - char*
    - size_t
    - char*
    - STRFTIME_s_HACK
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7567
      start: 7497
    functionDepth: 2
    functionLinenumber: 7497
    functionLinenumberEnd: 7567
    functionName: PortablyFormatTime
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - PRINTSIZE
    - strftime
    - xsnprintf
    - free
    - SearchAndReplace
    linkageType: ''
    returnType: bool
    signature: "bool PortablyFormatTime(char *buffer, size_t bufsiz,\n                        const
      char *format,\n#ifndef STRFTIME_s_HACK\n                        ARG_UNUSED\n#endif\n
      \                       time_t when,\n                        const struct tm
      *tm)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:7579,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7583,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7584,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7586,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7586,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:7591,1
    - Dst: gmtime_r
      Src: /src/core/libpromises/evalfunction.c:7593,1
    - Dst: localtime_r
      Src: /src/core/libpromises/evalfunction.c:7597,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7603,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:7605,1
    - Dst: PortablyFormatTime
      Src: /src/core/libpromises/evalfunction.c:7607,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:7610,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 7578
        line_start: 7578
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 7614
      start: 7574
    functionDepth: 8
    functionLinenumber: 7574
    functionLinenumberEnd: 7614
    functionName: FnCallStrftime
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - localtime_r
    - assert
    - PortablyFormatTime
    - FnReturn
    - FnFailure
    - Log
    - strcmp
    - RlistScalarValue
    - gmtime_r
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallStrftime(ARG_UNUSED EvalContext *ctx,\n                                   ARG_UNUSED
      const Policy *policy,\n                                   const FnCall *fp,\n
      \                                  const Rlist *finalargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:7622,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7625,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7631,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:7641,1
    - Dst: memset
      Src: /src/core/libpromises/evalfunction.c:7644,1
    - Dst: EvaluateMathInfix
      Src: /src/core/libpromises/evalfunction.c:7646,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7650,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:7650,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:7655,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7657,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:7658,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:7661,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7662
      start: 7618
    functionDepth: 8
    functionLinenumber: 7618
    functionLinenumberEnd: 7662
    functionName: FnCallEval
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - strlen
    - EvaluateMathInfix
    - FatalError
    - FnReturn
    - FnReturnF
    - Log
    - strcmp
    - RlistScalarValue
    - memset
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallEval(EvalContext *ctx, ARG_UNUSED const Policy *policy,
      const FnCall *fp, const Rlist *finalargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7672,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7673,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7676,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7678,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7678,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7678,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7687,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7688,1
    - Dst: CfReadFile
      Src: /src/core/libpromises/evalfunction.c:7692,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:7695,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7698,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7701
      start: 7668
    functionDepth: 8
    functionLinenumber: 7668
    functionLinenumberEnd: 7701
    functionName: FnCallReadFile
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnNoCopy
    - FnFailure
    - Log
    - RlistScalarValue
    - CfReadFile
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReadFile(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7707,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7708,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7709,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7710,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7710,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7711,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7711,1
    - Dst: CfReadFile
      Src: /src/core/libpromises/evalfunction.c:7713,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7716,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7718,1
    - Dst: StripPatterns
      Src: /src/core/libpromises/evalfunction.c:7723,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/libpromises/evalfunction.c:7730,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7743,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7743,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7745,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7746,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/evalfunction.c:7756,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7756,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7758,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7759,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:7766,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:7769,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:7776,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7777,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - EvalContext *ctx
    - fp
    - finalargs
    - type
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - Rlist*
    - DataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7778
      start: 7705
    functionDepth: 8
    functionLinenumber: 7705
    functionLinenumberEnd: 7778
    functionName: ReadList
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistFromSplitRegex
    - StripPatterns
    - FnFailure
    - Log
    - DoubleFromString
    - ProgrammingError
    - RlistScalarValue
    - free
    - CfReadFile
    - RlistDestroy
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult ReadList(ARG_UNUSED EvalContext *ctx, ARG_UNUSED const
      FnCall *fp, const Rlist *finalargs, DataType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadList
      Src: /src/core/libpromises/evalfunction.c:7782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7783
      start: 7780
    functionDepth: 9
    functionLinenumber: 7780
    functionLinenumberEnd: 7783
    functionName: FnCallReadStringList
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadList
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReadStringList(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadList
      Src: /src/core/libpromises/evalfunction.c:7787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7788
      start: 7785
    functionDepth: 9
    functionLinenumber: 7785
    functionLinenumberEnd: 7788
    functionName: FnCallReadIntList
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadList
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReadIntList(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadList
      Src: /src/core/libpromises/evalfunction.c:7792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7793
      start: 7790
    functionDepth: 9
    functionLinenumber: 7790
    functionLinenumberEnd: 7793
    functionName: FnCallReadRealList
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadList
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReadRealList(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:7800,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:7801,1
    - Dst: JsonReadDataFile
      Src: /src/core/libpromises/evalfunction.c:7803,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7806,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:7809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - fname
    - input_path
    - size_max
    - requested_mode
    argTypes:
    - char*
    - char*
    - size_t
    - DataFileType
    assertStmts:
    - condition: (fname != NULL)
      pos:
        line_end: 7799
        line_start: 7799
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (input_path != NULL)
      pos:
        line_end: 7800
        line_start: 7800
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 7810
      start: 7795
    functionDepth: 5
    functionLinenumber: 7795
    functionLinenumberEnd: 7810
    functionName: ReadDataGeneric
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContainerNoCopy
    - assert
    - JsonReadDataFile
    - FnFailure
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult ReadDataGeneric(const char *const fname,\n                                     const
      char *const input_path,\n                                     const size_t size_max,\n
      \                                    const DataFileType requested_mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:7817,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7820,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7821,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7824,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7825,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:7827,1
    - Dst: GetDataFileTypeFromSuffix
      Src: /src/core/libpromises/evalfunction.c:7829,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7830,1
    - Dst: DataFileTypeToString
      Src: /src/core/libpromises/evalfunction.c:7832,1
    - Dst: GetDataFileTypeFromString
      Src: /src/core/libpromises/evalfunction.c:7836,1
    - Dst: ReadDataGeneric
      Src: /src/core/libpromises/evalfunction.c:7839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 7816
        line_start: 7816
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 7840
      start: 7812
    functionDepth: 8
    functionLinenumber: 7812
    functionLinenumberEnd: 7840
    functionName: FnCallReadData
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - DataFileTypeToString
    - ReadDataGeneric
    - assert
    - FnFailure
    - Log
    - GetDataFileTypeFromSuffix
    - RlistScalarValue
    - GetDataFileTypeFromString
    - StringEqual
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallReadData(ARG_UNUSED EvalContext *ctx,\n                                   ARG_UNUSED
      const Policy *policy,\n                                   const FnCall *fp,\n
      \                                  const Rlist *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:7846,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7849,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7852,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7855,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:7857,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7857,1
    - Dst: ReadDataGeneric
      Src: /src/core/libpromises/evalfunction.c:7859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fp
    - args
    - requested_mode
    argTypes:
    - FnCall*
    - Rlist*
    - DataFileType
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 7845
        line_start: 7845
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 7860
      start: 7842
    functionDepth: 8
    functionLinenumber: 7842
    functionLinenumberEnd: 7860
    functionName: ReadGenericDataType
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadDataGeneric
    - assert
    - FnFailure
    - Log
    - RlistScalarValue
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult ReadGenericDataType(const FnCall *fp,\n                                         const
      Rlist *args,\n                                         const DataFileType requested_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadGenericDataType
      Src: /src/core/libpromises/evalfunction.c:7867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7868
      start: 7862
    functionDepth: 9
    functionLinenumber: 7862
    functionLinenumberEnd: 7868
    functionName: FnCallReadCsv
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadGenericDataType
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallReadCsv(ARG_UNUSED EvalContext *ctx,\n                                  ARG_UNUSED
      const Policy *policy,\n                                  const FnCall *fp,\n
      \                                 const Rlist *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadGenericDataType
      Src: /src/core/libpromises/evalfunction.c:7875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7876
      start: 7870
    functionDepth: 9
    functionLinenumber: 7870
    functionLinenumberEnd: 7876
    functionName: FnCallReadEnvFile
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadGenericDataType
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallReadEnvFile(ARG_UNUSED EvalContext *ctx,\n                                      ARG_UNUSED
      const Policy *policy,\n                                      const FnCall *fp,\n
      \                                     const Rlist *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadGenericDataType
      Src: /src/core/libpromises/evalfunction.c:7883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7884
      start: 7878
    functionDepth: 9
    functionLinenumber: 7878
    functionLinenumberEnd: 7884
    functionName: FnCallReadYaml
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadGenericDataType
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallReadYaml(ARG_UNUSED EvalContext *ctx,\n                                   ARG_UNUSED
      const Policy *policy,\n                                   const FnCall *fp,\n
      \                                  const Rlist *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadGenericDataType
      Src: /src/core/libpromises/evalfunction.c:7891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7892
      start: 7886
    functionDepth: 9
    functionLinenumber: 7886
    functionLinenumberEnd: 7892
    functionName: FnCallReadJson
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadGenericDataType
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallReadJson(ARG_UNUSED EvalContext *ctx,\n                                   ARG_UNUSED
      const Policy *policy,\n                                   const FnCall *fp,\n
      \                                  const Rlist *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:7899,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7902,1
    - Dst: DataFileTypeToString
      Src: /src/core/libpromises/evalfunction.c:7904,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7905,1
    - Dst: JsonParseAll
      Src: /src/core/libpromises/evalfunction.c:7909,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7912,1
    - Dst: JsonParseErrorToString
      Src: /src/core/libpromises/evalfunction.c:7912,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:7918,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7921,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:7922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - fname
    - data
    - requested_mode
    - strict
    argTypes:
    - char*
    - char*
    - DataFileType
    - bool
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 7898
        line_start: 7898
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 7924
      start: 7894
    functionDepth: 8
    functionLinenumber: 7894
    functionLinenumberEnd: 7924
    functionName: ValidateDataGeneric
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - DataFileTypeToString
    - JsonDestroy
    - assert
    - JsonGetElementType
    - JsonParseAll
    - FnFailure
    - Log
    - JsonParseErrorToString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult ValidateDataGeneric(const char *const fname,\n                                        const
      char *data,\n                                        const DataFileType requested_mode,\n
      \                                       bool strict)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:7931,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7934,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7935,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/evalfunction.c:7940,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7940,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7943,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7944,1
    - Dst: GetDataFileTypeFromString
      Src: /src/core/libpromises/evalfunction.c:7945,1
    - Dst: ValidateDataGeneric
      Src: /src/core/libpromises/evalfunction.c:7947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 7930
        line_start: 7930
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 7948
      start: 7926
    functionDepth: 9
    functionLinenumber: 7926
    functionLinenumberEnd: 7948
    functionName: FnCallValidData
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - assert
    - ValidateDataGeneric
    - FnFailure
    - Log
    - RlistScalarValue
    - BooleanFromString
    - GetDataFileTypeFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallValidData(ARG_UNUSED EvalContext *ctx,\n                                    ARG_UNUSED
      const Policy *policy,\n                                    const FnCall *fp,\n
      \                                   const Rlist *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:7955,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7958,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7959,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/evalfunction.c:7964,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7964,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7967,1
    - Dst: ValidateDataGeneric
      Src: /src/core/libpromises/evalfunction.c:7968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 7954
        line_start: 7954
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 7969
      start: 7950
    functionDepth: 9
    functionLinenumber: 7950
    functionLinenumberEnd: 7969
    functionName: FnCallValidJson
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - assert
    - ValidateDataGeneric
    - FnFailure
    - Log
    - RlistScalarValue
    - BooleanFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallValidJson(ARG_UNUSED EvalContext *ctx,\n                                    ARG_UNUSED
      const Policy *policy,\n                                    const FnCall *fp,\n
      \                                   const Rlist *args)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:7977,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:7981,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:7982,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:7985,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/evalfunction.c:7989,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:7992,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/evalfunction.c:7995,1
    - Dst: xmalloc
      Src: /src/core/libpromises/evalfunction.c:7999,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/evalfunction.c:8004,1
    - Dst: feof
      Src: /src/core/libpromises/evalfunction.c:8007,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8009,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:8009,1
    - Dst: ModuleProtocol
      Src: /src/core/libpromises/evalfunction.c:8015,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/evalfunction.c:8018,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:8019,1
    - Dst: fclose
      Src: /src/core/libpromises/evalfunction.c:8020,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:8022,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 7976
        line_start: 7976
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 8023
      start: 7971
    functionDepth: 8
    functionLinenumber: 7971
    functionLinenumberEnd: 8023
    functionName: FnCallReadModuleProtocol
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - GetErrorStr
    - assert
    - StringSetDestroy
    - feof
    - safe_fopen
    - FnFailure
    - Log
    - xmalloc
    - fclose
    - RlistScalarValue
    - free
    - StringSetNew
    - CfReadLine
    - ModuleProtocol
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallReadModuleProtocol(\n    ARG_UNUSED EvalContext
      *ctx,\n    ARG_UNUSED const Policy *policy,\n    const FnCall *fp,\n    const
      Rlist *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:8031,1
    - Dst: JsonAt
      Src: /src/core/libpromises/evalfunction.c:8031,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:8032,1
    - Dst: JsonAt
      Src: /src/core/libpromises/evalfunction.c:8032,1
    - Dst: StringSafeCompare
      Src: /src/core/libpromises/evalfunction.c:8033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - left_obj
    - right_obj
    - user_data
    argTypes:
    - JsonElement*
    - JsonElement*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8034
      start: 8025
    functionDepth: 3
    functionLinenumber: 8025
    functionLinenumberEnd: 8034
    functionName: JsonPrimitiveComparator
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonAt
    - StringSafeCompare
    - JsonPrimitiveGetAsString
    linkageType: ''
    returnType: int
    signature: "int JsonPrimitiveComparator(JsonElement const *left_obj,\n                                   JsonElement
      const *right_obj,\n                                   void *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/evalfunction.c:8041,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8044,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/evalfunction.c:8050,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8052,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libpromises/evalfunction.c:8055,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:8059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fn_name
    - json_object
    - key_to_class_expr
    argTypes:
    - char*
    - JsonElement*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8061
      start: 8036
    functionDepth: 8
    functionLinenumber: 8036
    functionLinenumberEnd: 8061
    functionName: ClassFilterDataGetClassExprFromKey
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - Log
    - JsonPrimitiveGetAsString
    - JsonObjectGet
    - JsonGetType
    - JsonGetTypeAsString
    linkageType: ''
    returnType: char
    signature: "char *ClassFilterDataGetClassExprFromKey(\n    const char *fn_name,\n
      \   JsonElement *json_object,\n    const char *key_to_class_expr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8069,1
    - Dst: StringToUlong
      Src: /src/core/libpromises/evalfunction.c:8070,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8071,1
    - Dst: JsonLength
      Src: /src/core/libpromises/evalfunction.c:8077,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8080,1
    - Dst: JsonArrayGet
      Src: /src/core/libpromises/evalfunction.c:8087,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/evalfunction.c:8088,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8090,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libpromises/evalfunction.c:8093,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:8097,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - fn_name
    - json_array
    - class_expr_index
    argTypes:
    - char*
    - JsonElement*
    - char*
    assertStmts:
    - condition: (SIZE_MAX >= ULONG_MAX)
      pos:
        line_end: 8068
        line_start: 8068
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 8099
      start: 8063
    functionDepth: 8
    functionLinenumber: 8063
    functionLinenumberEnd: 8099
    functionName: ClassFilterDataGetClassExprFromIndex
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonGetTypeAsString
    - JsonLength
    - assert
    - JsonArrayGet
    - Log
    - JsonPrimitiveGetAsString
    - JsonGetType
    - StringToUlong
    linkageType: ''
    returnType: char
    signature: "char *ClassFilterDataGetClassExprFromIndex(\n    const char *fn_name,\n
      \   JsonElement *json_array,\n    const char *class_expr_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClassFilterDataGetClassExprFromIndex
      Src: /src/core/libpromises/evalfunction.c:8108,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:8115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - fn_name
    - json_array
    - class_expr_index
    - remove
    argTypes:
    - EvalContext*
    - char*
    - JsonElement*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8117
      start: 8101
    functionDepth: 9
    functionLinenumber: 8101
    functionLinenumberEnd: 8117
    functionName: ClassFilterDataArrayOfArrays
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ClassFilterDataGetClassExprFromIndex
    - IsDefinedClass
    linkageType: ''
    returnType: bool
    signature: "bool ClassFilterDataArrayOfArrays(\n    EvalContext *ctx,\n    const
      char *fn_name,\n    JsonElement *json_array,\n    const char *class_expr_index,\n
      \   bool *remove)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClassFilterDataGetClassExprFromKey
      Src: /src/core/libpromises/evalfunction.c:8126,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:8133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - fn_name
    - json_object
    - key_to_class_expr
    - remove
    argTypes:
    - EvalContext*
    - char*
    - JsonElement*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8135
      start: 8119
    functionDepth: 9
    functionLinenumber: 8119
    functionLinenumberEnd: 8135
    functionName: ClassFilterDataArrayOfObjects
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ClassFilterDataGetClassExprFromKey
    - IsDefinedClass
    linkageType: ''
    returnType: bool
    signature: "bool ClassFilterDataArrayOfObjects(\n    EvalContext *ctx,\n    const
      char *fn_name,\n    JsonElement *json_object,\n    const char *key_to_class_expr,\n
      \   bool *remove)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8146,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/evalfunction.c:8152,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:8155,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:8156,1
    - Dst: ClassFilterDataArrayOfArrays
      Src: /src/core/libpromises/evalfunction.c:8158,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8161,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libpromises/evalfunction.c:8163,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:8167,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:8168,1
    - Dst: ClassFilterDataArrayOfObjects
      Src: /src/core/libpromises/evalfunction.c:8170,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8173,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libpromises/evalfunction.c:8175,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8179,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libpromises/evalfunction.c:8181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 6
    argNames:
    - ctx
    - fn_name
    - data_structure
    - key_or_index
    - child
    - remove
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - JsonElement*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8186
      start: 8137
    functionDepth: 10
    functionLinenumber: 8137
    functionLinenumberEnd: 8186
    functionName: ClassFilterDataArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - StringEqual
    - ClassFilterDataArrayOfObjects
    - Log
    - ClassFilterDataArrayOfArrays
    - JsonGetType
    - JsonGetTypeAsString
    linkageType: ''
    returnType: bool
    signature: "bool ClassFilterDataArray(\n    EvalContext *ctx,\n    const char
      *fn_name,\n    const char *data_structure,\n    const char *key_or_index,\n
      \   JsonElement *child,\n    bool *remove)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ClassFilterDataGetClassExprFromIndex
      Src: /src/core/libpromises/evalfunction.c:8201,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8209,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:8210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - ctx
    - fn_name
    - json_array
    - index_to_class_expr
    - key_to_obj
    - remove
    argTypes:
    - EvalContext*
    - char*
    - JsonElement*
    - char*
    - char*
    - bool*
    assertStmts:
    - condition: (class_expr != NULL)
      pos:
        line_end: 8208
        line_start: 8208
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 8213
      start: 8188
    functionDepth: 9
    functionLinenumber: 8188
    functionLinenumberEnd: 8213
    functionName: ClassFilterDataObjectOfArrays
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - assert
    - ClassFilterDataGetClassExprFromIndex
    - IsDefinedClass
    linkageType: ''
    returnType: bool
    signature: "bool ClassFilterDataObjectOfArrays(\n    EvalContext *ctx,\n    const
      char *fn_name,\n    JsonElement *json_array,\n    const char *index_to_class_expr,\n
      \   const char *key_to_obj,\n    bool *remove)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ClassFilterDataGetClassExprFromKey
      Src: /src/core/libpromises/evalfunction.c:8228,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8236,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:8237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - ctx
    - fn_name
    - json_object
    - key_to_class_expr
    - key_to_obj
    - remove
    argTypes:
    - EvalContext*
    - char*
    - JsonElement*
    - char*
    - char*
    - bool*
    assertStmts:
    - condition: (class_expr != NULL)
      pos:
        line_end: 8235
        line_start: 8235
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 8240
      start: 8215
    functionDepth: 9
    functionLinenumber: 8215
    functionLinenumberEnd: 8240
    functionName: ClassFilterDataObjectOfObjects
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ClassFilterDataGetClassExprFromKey
    - IsDefinedClass
    - assert
    linkageType: ''
    returnType: bool
    signature: "bool ClassFilterDataObjectOfObjects(\n    EvalContext *ctx,\n    const
      char *fn_name,\n    JsonElement *json_object,\n    const char *key_to_class_expr,\n
      \   const char *key_to_obj,\n    bool *remove)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JsonGetType
      Src: /src/core/libpromises/evalfunction.c:8251,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:8254,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:8255,1
    - Dst: ClassFilterDataObjectOfArrays
      Src: /src/core/libpromises/evalfunction.c:8257,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8260,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libpromises/evalfunction.c:8262,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:8266,1
    - Dst: StringEqual
      Src: /src/core/libpromises/evalfunction.c:8267,1
    - Dst: ClassFilterDataObjectOfObjects
      Src: /src/core/libpromises/evalfunction.c:8269,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8272,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libpromises/evalfunction.c:8274,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8278,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libpromises/evalfunction.c:8280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 7
    argNames:
    - ctx
    - fn_name
    - data_structure
    - key_or_index
    - child
    - key_to_obj
    - remove
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - JsonElement*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8285
      start: 8242
    functionDepth: 10
    functionLinenumber: 8242
    functionLinenumberEnd: 8285
    functionName: ClassFilterDataObject
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - StringEqual
    - Log
    - ClassFilterDataObjectOfArrays
    - JsonGetType
    - ClassFilterDataObjectOfObjects
    - JsonGetTypeAsString
    linkageType: ''
    returnType: bool
    signature: "bool ClassFilterDataObject(\n    EvalContext *ctx,\n    const char
      *fn_name,\n    const char *data_structure,\n    const char *key_or_index,\n
      \   JsonElement *child,\n    const char *key_to_obj,\n    bool *remove)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8293,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8294,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8304,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8307,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8311,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8312,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:8315,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8318,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8321,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/evalfunction.c:8327,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8328,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8338,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8346,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/evalfunction.c:8351,1
    - Dst: JsonLength
      Src: /src/core/libpromises/evalfunction.c:8355,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8357,1
    - Dst: JsonArrayGet
      Src: /src/core/libpromises/evalfunction.c:8359,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8360,1
    - Dst: ClassFilterDataArray
      Src: /src/core/libpromises/evalfunction.c:8363,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:8366,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8367,1
    - Dst: JsonArrayRemoveRange
      Src: /src/core/libpromises/evalfunction.c:8372,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:8377,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/evalfunction.c:8378,1
    - Dst: JsonIteratorCurrentKey
      Src: /src/core/libpromises/evalfunction.c:8382,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8383,1
    - Dst: ClassFilterDataObject
      Src: /src/core/libpromises/evalfunction.c:8386,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:8389,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8390,1
    - Dst: JsonObjectRemoveKey
      Src: /src/core/libpromises/evalfunction.c:8395,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8396,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libpromises/evalfunction.c:8397,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/evalfunction.c:8401,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8406,1
    - Dst: JsonGetTypeAsString
      Src: /src/core/libpromises/evalfunction.c:8408,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:8409,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8410,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:8413,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (args->next != NULL)
      pos:
        line_end: 8311
        line_start: 8311
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (success)
      pos:
        line_end: 8395
        line_start: 8395
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (index_plus_one > 0)
      pos:
        line_end: 8356
        line_start: 8356
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (key_to_obj != NULL)
      pos:
        line_end: 8382
        line_start: 8382
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (args != NULL)
      pos:
        line_end: 8310
        line_start: 8310
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp != NULL)
      pos:
        line_end: 8293
        line_start: 8293
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (parent != NULL)
      pos:
        line_end: 8327
        line_start: 8327
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (ctx != NULL)
      pos:
        line_end: 8292
        line_start: 8292
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (child != NULL)
      pos:
        line_end: 8359
        line_start: 8359
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 8414
      start: 8287
    functionDepth: 11
    functionLinenumber: 8287
    functionLinenumberEnd: 8414
    functionName: FnCallClassFilterData
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - Log
    - ClassFilterDataArray
    - RlistScalarValue
    - JsonCopy
    - FnFailure
    - JsonGetTypeAsString
    - ClassFilterDataObject
    - JsonIteratorInit
    - assert
    - JsonIteratorCurrentKey
    - JsonArrayGet
    - VarNameOrInlineToJson
    - JsonArrayRemoveRange
    - JsonLength
    - JsonDestroy
    - JsonIteratorCurrentValue
    - JsonObjectRemoveKey
    - FnReturnContainerNoCopy
    - JsonGetType
    - JsonIteratorNextValue
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallClassFilterData(\n    EvalContext *ctx,\n    ARG_UNUSED
      Policy const *policy,\n    const FnCall *fp,\n    const Rlist *args)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:8423,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8427,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/evalfunction.c:8428,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8428,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8429,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8429,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/evalfunction.c:8432,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8435,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:8437,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8438,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:8442,1
    - Dst: GetCsvLineNext
      Src: /src/core/libpromises/evalfunction.c:8449,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8454,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:8456,1
    - Dst: SeqParseCsvString
      Src: /src/core/libpromises/evalfunction.c:8460,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:8461,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8464,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:8470,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:8471,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:8471,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8473,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:8476,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:8482,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:8483,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8487,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:8491,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:8492,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8493,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:8496,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8498,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:8501,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:8502,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8509,1
    - Dst: SeqRemove
      Src: /src/core/libpromises/evalfunction.c:8512,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/evalfunction.c:8516,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:8516,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:8518,1
    - Dst: SeqRemove
      Src: /src/core/libpromises/evalfunction.c:8522,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:8523,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:8525,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:8530,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:8531,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:8532,1
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/evalfunction.c:8536,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:8539,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:8541,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/evalfunction.c:8545,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:8546,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8552,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8552,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8555,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8562,1
    - Dst: JsonSort
      Src: /src/core/libpromises/evalfunction.c:8577,1
    - Dst: fclose
      Src: /src/core/libpromises/evalfunction.c:8581,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:8584,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:8587,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (num_columns != 0)
      pos:
        line_end: 8482
        line_start: 8482
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 8588
      start: 8416
    functionDepth: 8
    functionLinenumber: 8416
    functionLinenumberEnd: 8588
    functionName: FnCallClassFilterCsv
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - SeqRemove
    - Log
    - JsonSort
    - GetErrorStrFromCode
    - RlistScalarValue
    - SeqLength
    - free
    - BooleanFromString
    - fclose
    - SeqDestroy
    - strlen
    - FnFailure
    - GetCsvLineNext
    - IsDefinedClass
    - JsonArrayAppendObject
    - JsonObjectCreate
    - IntFromString
    - SeqAt
    - SeqParseCsvString
    - assert
    - JsonObjectAppendString
    - JsonDestroy
    - PRINTSIZE
    - safe_fopen
    - FatalError
    - FnReturnContainerNoCopy
    - JsonArrayCreate
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallClassFilterCsv(EvalContext *ctx,\n                                         ARG_UNUSED
      Policy const *policy,\n                                         FnCall const
      *fp,\n                                         Rlist const *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8595,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:8597,1
    - Dst: JsonParseYamlString
      Src: /src/core/libpromises/evalfunction.c:8603,1
    - Dst: JsonParseWithLookup
      Src: /src/core/libpromises/evalfunction.c:8607,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8612,1
    - Dst: JsonParseErrorToString
      Src: /src/core/libpromises/evalfunction.c:8613,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:8615,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8617,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:8618,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:8622,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - args
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8626
      start: 8590
    functionDepth: 8
    functionLinenumber: 8590
    functionLinenumberEnd: 8626
    functionName: FnCallParseJson
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - JsonGetElementType
    - JsonParseWithLookup
    - FnFailure
    - Log
    - JsonParseYamlString
    - strcmp
    - RlistScalarValue
    - FnReturnContainerNoCopy
    - JsonParseErrorToString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallParseJson(ARG_UNUSED EvalContext *ctx,\n                                    ARG_UNUSED
      const Policy *policy,\n                                    ARG_UNUSED const
      FnCall *fp,\n                                    const Rlist *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:8632,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:8636,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8641,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:8643,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8645,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:8647,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8648,1
    - Dst: StringWriter
      Src: /src/core/libpromises/evalfunction.c:8651,1
    - Dst: JsonWrite
      Src: /src/core/libpromises/evalfunction.c:8653,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:8654,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8655,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/evalfunction.c:8655,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:8657,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/evalfunction.c:8657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8658
      start: 8630
    functionDepth: 10
    functionLinenumber: 8630
    functionLinenumberEnd: 8658
    functionName: FnCallStoreJson
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnNoCopy
    - RlistScalarValueSafe
    - JsonGetElementType
    - JsonWrite
    - JsonDestroyMaybe
    - StringWriter
    - FnFailure
    - Log
    - StringWriterData
    - StringWriterClose
    - VarNameOrInlineToJson
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallStoreJson(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8668,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8669,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8670,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8671,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8671,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8672,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8672,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:8674,1
    - Dst: CfReadFile
      Src: /src/core/libpromises/evalfunction.c:8678,1
    - Dst: StripPatterns
      Src: /src/core/libpromises/evalfunction.c:8681,1
    - Dst: BuildData
      Src: /src/core/libpromises/evalfunction.c:8685,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:8689,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8693,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8694,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:8697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8698
      start: 8664
    functionDepth: 8
    functionLinenumber: 8664
    functionLinenumberEnd: 8698
    functionName: DataRead
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BuildData
    - StripPatterns
    - FnFailure
    - Log
    - strcmp
    - free
    - RlistScalarValue
    - CfReadFile
    - FnReturnContainerNoCopy
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult DataRead(EvalContext *ctx, const FnCall *fp, const Rlist
      *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:8708,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8712,1
    - Dst: JsonExpandElement
      Src: /src/core/libpromises/evalfunction.c:8715,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:8716,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:8718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8719
      start: 8702
    functionDepth: 10
    functionLinenumber: 8702
    functionLinenumberEnd: 8719
    functionName: FnCallDataExpand
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonExpandElement
    - JsonDestroyMaybe
    - FnFailure
    - VarNameOrInlineToJson
    - FnReturnContainerNoCopy
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallDataExpand(EvalContext *ctx,\n                                     ARG_UNUSED
      const Policy *policy,\n                                     ARG_UNUSED const
      FnCall *fp,\n                                     const Rlist *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataRead
      Src: /src/core/libpromises/evalfunction.c:8725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8726
      start: 8723
    functionDepth: 9
    functionLinenumber: 8723
    functionLinenumberEnd: 8726
    functionName: FnCallDataRead
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - DataRead
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallDataRead(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8735,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8736,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8741,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8742,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8743,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8744,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8745,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8745,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8746,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8746,1
    - Dst: CfReadFile
      Src: /src/core/libpromises/evalfunction.c:8749,1
    - Dst: StripPatterns
      Src: /src/core/libpromises/evalfunction.c:8753,1
    - Dst: BuildLineArray
      Src: /src/core/libpromises/evalfunction.c:8757,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:8757,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:8769,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:8772,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:8774,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - fp
    - finalargs
    - type
    - int_index
    argTypes:
    - EvalContext*
    - FnCall*
    - Rlist*
    - DataType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8775
      start: 8730
    functionDepth: 8
    functionLinenumber: 8730
    functionLinenumberEnd: 8775
    functionName: ReadArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - StripPatterns
    - FnReturnF
    - BuildLineArray
    - FnFailure
    - Log
    - ProgrammingError
    - free
    - RlistScalarValue
    - CfReadFile
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult ReadArray(EvalContext *ctx, const FnCall *fp, const Rlist
      *finalargs, DataType type, bool int_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadArray
      Src: /src/core/libpromises/evalfunction.c:8781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8782
      start: 8779
    functionDepth: 9
    functionLinenumber: 8779
    functionLinenumberEnd: 8782
    functionName: FnCallReadStringArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadArray
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReadStringArray(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadArray
      Src: /src/core/libpromises/evalfunction.c:8788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8789
      start: 8786
    functionDepth: 9
    functionLinenumber: 8786
    functionLinenumberEnd: 8789
    functionName: FnCallReadStringArrayIndex
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadArray
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReadStringArrayIndex(EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadArray
      Src: /src/core/libpromises/evalfunction.c:8795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8796
      start: 8793
    functionDepth: 9
    functionLinenumber: 8793
    functionLinenumberEnd: 8796
    functionName: FnCallReadIntArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadArray
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReadIntArray(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadArray
      Src: /src/core/libpromises/evalfunction.c:8802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8803
      start: 8800
    functionDepth: 9
    functionLinenumber: 8800
    functionLinenumberEnd: 8803
    functionName: FnCallReadRealArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ReadArray
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallReadRealArray(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8812,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8813,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8818,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8819,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8819,1
    - Dst: xstrndup
      Src: /src/core/libpromises/evalfunction.c:8820,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8820,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8821,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8822,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8823,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8823,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8827,1
    - Dst: StripPatterns
      Src: /src/core/libpromises/evalfunction.c:8832,1
    - Dst: BuildLineArray
      Src: /src/core/libpromises/evalfunction.c:8836,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:8836,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:8848,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:8851,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:8853,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - fp
    - finalargs
    - type
    - intIndex
    argTypes:
    - EvalContext*
    - FnCall*
    - Rlist*
    - DataType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8854
      start: 8807
    functionDepth: 8
    functionLinenumber: 8807
    functionLinenumberEnd: 8854
    functionName: ParseArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - StripPatterns
    - FnReturnF
    - BuildLineArray
    - FnFailure
    - Log
    - ProgrammingError
    - RlistScalarValue
    - free
    - xstrndup
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult ParseArray(EvalContext *ctx, const FnCall *fp, const Rlist
      *finalargs, DataType type, int intIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseArray
      Src: /src/core/libpromises/evalfunction.c:8860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8861
      start: 8858
    functionDepth: 9
    functionLinenumber: 8858
    functionLinenumberEnd: 8861
    functionName: FnCallParseStringArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ParseArray
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallParseStringArray(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseArray
      Src: /src/core/libpromises/evalfunction.c:8867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8868
      start: 8865
    functionDepth: 9
    functionLinenumber: 8865
    functionLinenumberEnd: 8868
    functionName: FnCallParseStringArrayIndex
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ParseArray
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallParseStringArrayIndex(EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseArray
      Src: /src/core/libpromises/evalfunction.c:8874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8875
      start: 8872
    functionDepth: 9
    functionLinenumber: 8872
    functionLinenumberEnd: 8875
    functionName: FnCallParseIntArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ParseArray
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallParseIntArray(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseArray
      Src: /src/core/libpromises/evalfunction.c:8881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - args
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8882
      start: 8879
    functionDepth: 9
    functionLinenumber: 8879
    functionLinenumberEnd: 8882
    functionName: FnCallParseRealArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - ParseArray
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallParseRealArray(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8890,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8893,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:8900,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8905,1
    - Dst: DefaultTemplateData
      Src: /src/core/libpromises/evalfunction.c:8911,1
    - Dst: BufferNew
      Src: /src/core/libpromises/evalfunction.c:8914,1
    - Dst: MustacheRender
      Src: /src/core/libpromises/evalfunction.c:8915,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:8917,1
    - Dst: FnReturnBuffer
      Src: /src/core/libpromises/evalfunction.c:8921,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:8925,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8928
      start: 8886
    functionDepth: 12
    functionLinenumber: 8886
    functionLinenumberEnd: 8928
    functionName: FnCallStringMustache
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - FnReturnBuffer
    - JsonDestroyMaybe
    - MustacheRender
    - FnFailure
    - DefaultTemplateData
    - RlistScalarValue
    - VarNameOrInlineToJson
    - BufferNew
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallStringMustache(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8936,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8937,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8938,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8938,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/libpromises/evalfunction.c:8941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8944
      start: 8932
    functionDepth: 1
    functionLinenumber: 8932
    functionLinenumberEnd: 8944
    functionName: FnCallSplitString
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistFromSplitRegex
    - IntFromString
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallSplitString(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8954,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8955,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:8956,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8956,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8960,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8961,1
    - Dst: RlistFromRegexSplitNoOverflow
      Src: /src/core/libpromises/evalfunction.c:8964,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8973
      start: 8948
    functionDepth: 8
    functionLinenumber: 8948
    functionLinenumberEnd: 8973
    functionName: FnCallStringSplit
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - RlistFromRegexSplitNoOverflow
    - FnFailure
    - Log
    - RlistScalarValue
    - IntFromString
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallStringSplit(ARG_UNUSED EvalContext *ctx,\n                                      ARG_UNUSED
      const Policy *policy,\n                                      ARG_UNUSED const
      FnCall *fp,\n                                      const Rlist *finalargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8984,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:8987,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8990,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8991,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:8992,1
    - Dst: SearchAndReplace
      Src: /src/core/libpromises/evalfunction.c:8994,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:8998,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9002,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:9005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9006
      start: 8977
    functionDepth: 8
    functionLinenumber: 8977
    functionLinenumberEnd: 9006
    functionName: FnCallStringReplace
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnNoCopy
    - FnFailure
    - Log
    - RlistScalarValue
    - SearchAndReplace
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallStringReplace(ARG_UNUSED EvalContext *ctx,\n                                        ARG_UNUSED
      Policy const *policy,\n                                        ARG_UNUSED FnCall
      const *fp,\n                                        Rlist const *finalargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9012,1
    - Dst: FnReturn
      Src: /src/core/libpromises/evalfunction.c:9014,1
    - Dst: TrimWhitespace
      Src: /src/core/libpromises/evalfunction.c:9014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9015
      start: 9010
    functionDepth: 2
    functionLinenumber: 9010
    functionLinenumberEnd: 9015
    functionName: FnCallStringTrim
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturn
    - TrimWhitespace
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallStringTrim(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:9022,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9027,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:9029,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9030,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:9032,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9034,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:9035,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:9036,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9037,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:9040,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:9041,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/evalfunction.c:9048,1
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:9050,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:9054,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:9055,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:9058,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9059,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9060
      start: 9019
    functionDepth: 10
    functionLinenumber: 9019
    functionLinenumberEnd: 9060
    functionName: FnCallFileSexist
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - stat
    - FnReturnContext
    - RlistScalarValueSafe
    - JsonIteratorNextValueByType
    - JsonGetElementType
    - JsonDestroyMaybe
    - FnFailure
    - Log
    - JsonPrimitiveToString
    - VarNameOrInlineToJson
    - free
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFileSexist(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9070,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9071,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9072,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9073,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9074,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9075,1
    - Dst: snprintf
      Src: /src/core/libpromises/evalfunction.c:9077,1
    - Dst: CfLDAPValue
      Src: /src/core/libpromises/evalfunction.c:9079,1
    - Dst: CacheUnreliableValue
      Src: /src/core/libpromises/evalfunction.c:9082,1
    - Dst: RetrieveUnreliableValue
      Src: /src/core/libpromises/evalfunction.c:9084,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:9086,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:9091,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9094,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9095
      start: 9066
    functionDepth: 1
    functionLinenumber: 9066
    functionLinenumberEnd: 9095
    functionName: FnCallLDAPValue
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnNoCopy
    - snprintf
    - CacheUnreliableValue
    - FnFailure
    - xstrdup
    - RlistScalarValue
    - RetrieveUnreliableValue
    - CfLDAPValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallLDAPValue(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9103,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9104,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9107,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9108,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9109,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9110,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9111,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9112,1
    - Dst: CfLDAPArray
      Src: /src/core/libpromises/evalfunction.c:9114,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/evalfunction.c:9114,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:9117,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9121
      start: 9099
    functionDepth: 8
    functionLinenumber: 9099
    functionLinenumberEnd: 9121
    functionName: FnCallLDAPArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnNoCopy
    - PromiseGetBundle
    - CfLDAPArray
    - FnFailure
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallLDAPArray(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9127,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9128,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9129,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9130,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9131,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9132,1
    - Dst: CfLDAPList
      Src: /src/core/libpromises/evalfunction.c:9134,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9141
      start: 9125
    functionDepth: 1
    functionLinenumber: 9125
    functionLinenumberEnd: 9141
    functionName: FnCallLDAPList
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - CfLDAPList
    - FnFailure
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallLDAPList(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9147,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9148,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9149,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9150,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9151,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9152,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9153,1
    - Dst: CfRegLDAP
      Src: /src/core/libpromises/evalfunction.c:9155,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:9158,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9162
      start: 9145
    functionDepth: 1
    functionLinenumber: 9145
    functionLinenumberEnd: 9162
    functionName: FnCallRegLDAP
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - CfRegLDAP
    - FnFailure
    - FnReturnNoCopy
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallRegLDAP(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetDiskUsage
      Src: /src/core/libpromises/evalfunction.c:9170,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9170,1
    - Dst: FnReturnF
      Src: /src/core/libpromises/evalfunction.c:9177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9178
      start: 9168
    functionDepth: 2
    functionLinenumber: 9168
    functionLinenumberEnd: 9178
    functionName: FnCallDiskFree
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnF
    - GetDiskUsage
    - RlistScalarValue
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallDiskFree(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9183,1
    - Dst: RlistScalarValueSafe
      Src: /src/core/libpromises/evalfunction.c:9185,1
    - Dst: lstat
      Src: /src/core/libpromises/evalfunction.c:9190,1
    - Dst: S_ISREG
      Src: /src/core/libpromises/evalfunction.c:9196,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9198,1
    - Dst: RlistValueIsType
      Src: /src/core/libpromises/evalfunction.c:9206,1
    - Dst: lstat
      Src: /src/core/libpromises/evalfunction.c:9207,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:9218,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9223,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:9225,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9227,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:9229,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9230,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/evalfunction.c:9233,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/evalfunction.c:9235,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/evalfunction.c:9237,1
    - Dst: lstat
      Src: /src/core/libpromises/evalfunction.c:9238,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9240,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:9241,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9242,1
    - Dst: JsonDestroyMaybe
      Src: /src/core/libpromises/evalfunction.c:9253,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9256,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9256,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9257
      start: 9181
    functionDepth: 10
    functionLinenumber: 9181
    functionLinenumberEnd: 9257
    functionName: FnCallMakerule
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - FnReturnContext
    - RlistScalarValueSafe
    - JsonIteratorNextValueByType
    - JsonGetElementType
    - JsonPrimitiveGetAsString
    - RlistValueIsType
    - JsonDestroyMaybe
    - FnFailure
    - Log
    - S_ISREG
    - lstat
    - RlistScalarValue
    - VarNameOrInlineToJson
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallMakerule(EvalContext *ctx, ARG_UNUSED const Policy
      *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9264,1
    - Dst: StringIsNumeric
      Src: /src/core/libpromises/evalfunction.c:9266,1
    - Dst: Str2Uid
      Src: /src/core/libpromises/evalfunction.c:9268,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9271,1
    - Dst: GetUserName
      Src: /src/core/libpromises/evalfunction.c:9274,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9276,1
    - Dst: GetUserID
      Src: /src/core/libpromises/evalfunction.c:9279,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9281,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9285
      start: 9262
    functionDepth: 2
    functionLinenumber: 9262
    functionLinenumberEnd: 9285
    functionName: FnCallUserExists
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - GetUserID
    - FnFailure
    - RlistScalarValue
    - StringIsNumeric
    - Str2Uid
    - GetUserName
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallUserExists(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9291,1
    - Dst: StringIsNumeric
      Src: /src/core/libpromises/evalfunction.c:9293,1
    - Dst: Str2Gid
      Src: /src/core/libpromises/evalfunction.c:9295,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9298,1
    - Dst: GetGroupName
      Src: /src/core/libpromises/evalfunction.c:9301,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9303,1
    - Dst: GetGroupID
      Src: /src/core/libpromises/evalfunction.c:9306,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9308,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - ARG_UNUSED*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9312
      start: 9289
    functionDepth: 2
    functionLinenumber: 9289
    functionLinenumberEnd: 9312
    functionName: FnCallGroupExists
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - GetGroupName
    - FnFailure
    - Str2Gid
    - RlistScalarValue
    - StringIsNumeric
    - GetGroupID
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallGroupExists(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/core/libpromises/evalfunction.c:9318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9327
      start: 9316
    functionDepth: 0
    functionLinenumber: 9316
    functionLinenumberEnd: 9327
    functionName: SingleLine
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - strcspn
    linkageType: ''
    returnType: bool
    signature: bool SingleLine(const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/evalfunction.c:9334,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9338,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/evalfunction.c:9342,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9344,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9349,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:9350,1
    - Dst: safe_open
      Src: /src/core/libpromises/evalfunction.c:9360,1
    - Dst: FileReadFromFd
      Src: /src/core/libpromises/evalfunction.c:9363,1
    - Dst: close
      Src: /src/core/libpromises/evalfunction.c:9364,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9369,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:9370,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9376,1
    - Dst: StringWriterLength
      Src: /src/core/libpromises/evalfunction.c:9380,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/evalfunction.c:9381,1
    - Dst: SingleLine
      Src: /src/core/libpromises/evalfunction.c:9384,1
    - Dst: StripTrailingNewline
      Src: /src/core/libpromises/evalfunction.c:9386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - filename
    - maxsize
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9389
      start: 9329
    functionDepth: 8
    functionLinenumber: 9329
    functionLinenumberEnd: 9389
    functionName: CfReadFile
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 7
    functionsReached:
    - IsCf3VarString
    - stat
    - GetErrorStr
    - StripTrailingNewline
    - safe_open
    - FileReadFromFd
    - SingleLine
    - Log
    - StringWriterClose
    - close
    - StringWriterLength
    linkageType: ''
    returnType: char
    signature: char *CfReadFile(const char *filename, size_t maxsize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/evalfunction.c:9395,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/evalfunction.c:9400,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:9407,1
    - Dst: StringMatchWithPrecompiledRegex
      Src: /src/core/libpromises/evalfunction.c:9408,1
    - Dst: StringCloseHole
      Src: /src/core/libpromises/evalfunction.c:9410,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9414,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:9420,1
    - Dst: debug_abort_if_reached
      Src: /src/core/libpromises/evalfunction.c:9423,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9424,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:9431,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - file_buffer
    - pattern
    - filename
    argTypes:
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (start < end)
      pos:
        line_end: 9419
        line_start: 9419
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 9433
      start: 9393
    functionDepth: 8
    functionLinenumber: 9393
    functionLinenumberEnd: 9433
    functionName: StripPatterns
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 7
    functionsReached:
    - strlen
    - assert
    - StringCloseHole
    - CompileRegex
    - RegexDestroy
    - Log
    - StringMatchWithPrecompiledRegex
    - debug_abort_if_reached
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: char
    signature: char *StripPatterns(char *file_buffer, const char *pattern, const char
      *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:9439,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:9439,1
    - Dst: SeqStringFromString
      Src: /src/core/libpromises/evalfunction.c:9440,1
    - Dst: SeqLength
      Src: /src/core/libpromises/evalfunction.c:9445,1
    - Dst: SeqAt
      Src: /src/core/libpromises/evalfunction.c:9447,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:9448,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/libpromises/evalfunction.c:9460,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:9461,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9465,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/evalfunction.c:9466,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:9469,1
    - Dst: JsonLength
      Src: /src/core/libpromises/evalfunction.c:9471,1
    - Dst: JsonArrayAppendArray
      Src: /src/core/libpromises/evalfunction.c:9475,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:9479,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libpromises/evalfunction.c:9479,1
    - Dst: JsonArrayRemoveRange
      Src: /src/core/libpromises/evalfunction.c:9480,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/evalfunction.c:9481,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:9482,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/evalfunction.c:9490,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - EvalContext *ctx
    - file_buffer
    - split
    - maxent
    - make_array
    argTypes:
    - ARG_UNUSED
    - char*
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9493
      start: 9437
    functionDepth: 5
    functionLinenumber: 9437
    functionLinenumberEnd: 9493
    functionName: BuildData
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 1
    functionsReached:
    - JsonArrayAppendArray
    - RlistFromSplitRegex
    - JsonLength
    - SeqDestroy
    - strlen
    - JsonArrayGetAsString
    - JsonArrayAppendString
    - RlistDestroy
    - xstrdup
    - RlistScalarValue
    - SeqLength
    - JsonArrayRemoveRange
    - JsonObjectCreate
    - JsonArrayCreate
    - SeqStringFromString
    - JsonObjectAppendArray
    - free
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * BuildData(ARG_UNUSED EvalContext *ctx, const char *file_buffer,  const
      char *split, int maxent, bool make_array)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/evalfunction.c:9502,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9507,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:9508,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/libpromises/evalfunction.c:9523,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9527,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:9533,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:9538,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:9541,1
    - Dst: StringFormat
      Src: /src/core/libpromises/evalfunction.c:9543,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/evalfunction.c:9550,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:9552,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:9554,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:9559,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:9564,1
    - Dst: xasprintf
      Src: /src/core/libpromises/evalfunction.c:9570,1
    - Dst: xasprintf
      Src: /src/core/libpromises/evalfunction.c:9574,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/evalfunction.c:9577,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/evalfunction.c:9578,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:9579,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:9581,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:9582,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:9587,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:9588,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:9594,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 8
    argNames:
    - ctx
    - bundle
    - array_lval
    - file_buffer
    - split
    - maxent
    - type
    - int_index
    argTypes:
    - EvalContext*
    - Bundle*
    - char*
    - char*
    - char*
    - int
    - DataType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9597
      start: 9497
    functionDepth: 3
    functionLinenumber: 9497
    functionLinenumberEnd: 9597
    functionName: BuildLineArray
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 2
    functionsReached:
    - RlistFromSplitRegex
    - VarRefParseFromBundle
    - strlen
    - xasprintf
    - RlistFromSplitString
    - FatalError
    - VarRefDestroy
    - ProgrammingError
    - StringFormat
    - DoubleFromString
    - xstrdup
    - RlistScalarValue
    - EvalContextVariablePut
    - free
    - RlistDestroy
    - IntFromString
    linkageType: ''
    returnType: int
    signature: "int BuildLineArray(EvalContext *ctx, const Bundle *bundle,\n                          const
      char *array_lval, const char *file_buffer,\n                          const
      char *split, int maxent, DataType type,\n                          bool int_index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9603,1
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:9605,1
    - Dst: LoadProcessTable
      Src: /src/core/libpromises/evalfunction.c:9607,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9609,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9610,1
    - Dst: SelectProcesses
      Src: /src/core/libpromises/evalfunction.c:9618,1
    - Dst: ClearProcessTable
      Src: /src/core/libpromises/evalfunction.c:9619,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/evalfunction.c:9624,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9625,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:9628,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/evalfunction.c:9637,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/evalfunction.c:9638,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/evalfunction.c:9639,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/evalfunction.c:9641,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/evalfunction.c:9643,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:9645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9646
      start: 9601
    functionDepth: 8
    functionLinenumber: 9601
    functionLinenumberEnd: 9646
    functionName: FnCallProcessExists
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContext
    - FnReturnContainerNoCopy
    - ClearProcessTable
    - JsonObjectAppendInteger
    - DeleteItemList
    - FnFailure
    - Log
    - LoadProcessTable
    - strcmp
    - RlistScalarValue
    - SelectProcesses
    - JsonArrayAppendObject
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallProcessExists(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetNetworkingConnections
      Src: /src/core/libpromises/evalfunction.c:9652,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9657,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:9660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9661
      start: 9650
    functionDepth: 3
    functionLinenumber: 9650
    functionLinenumberEnd: 9661
    functionName: FnCallNetworkConnections
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnContainerNoCopy
    - GetNetworkingConnections
    - FnFailure
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallNetworkConnections(EvalContext *ctx, ARG_UNUSED
      const Policy *policy, ARG_UNUSED const FnCall *fp, ARG_UNUSED const Rlist *finalargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:9676,1
    - Dst: pthread_mutex_lock
      Src: /src/core/libpromises/evalfunction.c:9681,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:9684,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:9685,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libpromises/evalfunction.c:9691,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:9694,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:9695,1
    - Dst: open
      Src: /src/core/libpromises/evalfunction.c:9699,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9701,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:9702,1
    - Dst: read
      Src: /src/core/libpromises/evalfunction.c:9704,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9706,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:9707,1
    - Dst: close
      Src: /src/core/libpromises/evalfunction.c:9708,1
    - Dst: close
      Src: /src/core/libpromises/evalfunction.c:9712,1
    - Dst: pthread_cond_signal
      Src: /src/core/libpromises/evalfunction.c:9716,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9719,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:9720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 9675
        line_start: 9675
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 9724
      start: 9674
    functionDepth: 8
    functionLinenumber: 9674
    functionLinenumberEnd: 9724
    functionName: IsReadableThreadRoutine
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - pthread_cond_signal
    - read
    - assert
    - ProgrammingError
    - Log
    - open
    - GetErrorStrFromCode
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - close
    linkageType: ''
    returnType: void
    signature: void *IsReadableThreadRoutine(void *data)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:9731,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:9732,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9736,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9738,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9740,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:9743,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9743,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:9744,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9748,1
    - Dst: open
      Src: /src/core/libpromises/evalfunction.c:9753,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9756,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:9757,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9758,1
    - Dst: read
      Src: /src/core/libpromises/evalfunction.c:9760,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9762,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:9763,1
    - Dst: close
      Src: /src/core/libpromises/evalfunction.c:9764,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9765,1
    - Dst: close
      Src: /src/core/libpromises/evalfunction.c:9768,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9769,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9773,1
    - Dst: pthread_mutex_init
      Src: /src/core/libpromises/evalfunction.c:9780,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9783,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:9784,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9785,1
    - Dst: pthread_cond_init
      Src: /src/core/libpromises/evalfunction.c:9788,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9791,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:9792,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9793,1
    - Dst: pthread_mutex_lock
      Src: /src/core/libpromises/evalfunction.c:9798,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9801,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:9802,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9803,1
    - Dst: pthread_create
      Src: /src/core/libpromises/evalfunction.c:9806,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9810,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:9811,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9812,1
    - Dst: ThreadWait
      Src: /src/core/libpromises/evalfunction.c:9817,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9825,1
    - Dst: pthread_cancel
      Src: /src/core/libpromises/evalfunction.c:9829,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9832,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9833,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9838,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/evalfunction.c:9839,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9840,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libpromises/evalfunction.c:9844,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9847,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9848,1
    - Dst: pthread_join
      Src: /src/core/libpromises/evalfunction.c:9852,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9855,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9856,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9861,1
    - Dst: FnReturnContext
      Src: /src/core/libpromises/evalfunction.c:9864,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 4
    argNames:
    - EvalContext *const ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 9730
        line_start: 9730
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 9731
        line_start: 9731
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (timeout >= 0)
      pos:
        line_end: 9743
        line_start: 9743
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 9865
      start: 9726
    functionDepth: 8
    functionLinenumber: 9726
    functionLinenumberEnd: 9865
    functionName: FnCallIsReadable
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - pthread_mutex_init
    - pthread_join
    - Log
    - open
    - GetErrorStrFromCode
    - RlistScalarValue
    - pthread_cancel
    - close
    - FnFailure
    - pthread_mutex_lock
    - pthread_cond_init
    - IntFromString
    - FnReturnContext
    - read
    - assert
    - pthread_mutex_unlock
    - GetErrorStr
    - ThreadWait
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallIsReadable(ARG_UNUSED EvalContext *const ctx,\n
      \                                    ARG_UNUSED const Policy *const policy,\n
      \                                    const FnCall *const fp,\n                                     const
      Rlist *finalargs)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:9871,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:9872,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9877,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9879,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9885,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9887,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:9893,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9893,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9896,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9898,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/evalfunction.c:9901,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9903,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9905,1
    - Dst: IsDir
      Src: /src/core/libpromises/evalfunction.c:9908,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9910,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9912,1
    - Dst: MapName
      Src: /src/core/libpromises/evalfunction.c:9915,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/libpromises/evalfunction.c:9916,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:9918,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:9925,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9925,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9928,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9930,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/evalfunction.c:9933,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9935,1
    - Dst: FnFailure
      Src: /src/core/libpromises/evalfunction.c:9938,1
    - Dst: DeleteRedundantSlashes
      Src: /src/core/libpromises/evalfunction.c:9941,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:9944,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:9947,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:9947,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/evalfunction.c:9950,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:9955,1
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:9956,1
    - Dst: JoinPaths
      Src: /src/core/libpromises/evalfunction.c:9957,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9959,1
    - Dst: GlobFileList
      Src: /src/core/libpromises/evalfunction.c:9964,1
    - Dst: StringSetToJson
      Src: /src/core/libpromises/evalfunction.c:9965,1
    - Dst: JsonArrayExtend
      Src: /src/core/libpromises/evalfunction.c:9966,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/evalfunction.c:9967,1
    - Dst: strrchr
      Src: /src/core/libpromises/evalfunction.c:9969,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:9978,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 4
    argNames:
    - EvalContext *ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (copied < sizeof(path))
      pos:
        line_end: 9955
        line_start: 9955
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 9871
        line_start: 9871
        source_file: /src/core/libpromises/evalfunction.c
    - condition: (fp != NULL)
      pos:
        line_end: 9870
        line_start: 9870
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 9979
      start: 9869
    functionDepth: 9
    functionLinenumber: 9869
    functionLinenumberEnd: 9979
    functionName: FnCallFindfilesUp
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - IsAbsoluteFileName
    - Log
    - GlobFileList
    - RlistScalarValue
    - strlcpy
    - strlen
    - FnFailure
    - strrchr
    - DeleteRedundantSlashes
    - IntFromString
    - assert
    - StringSetToJson
    - IsDir
    - JsonArrayExtend
    - MapName
    - StringSetDestroy
    - JoinPaths
    - FnReturnContainerNoCopy
    - JsonArrayCreate
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallFindfilesUp(ARG_UNUSED EvalContext *ctx, ARG_UNUSED
      const Policy *policy, const FnCall *fp, const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_popen
      Src: /src/core/libpromises/evalfunction.c:9985,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:9988,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:9988,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/evalfunction.c:9993,1
    - Dst: xmalloc
      Src: /src/core/libpromises/evalfunction.c:9997,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/evalfunction.c:9999,1
    - Dst: isspace
      Src: /src/core/libpromises/evalfunction.c:10004,1
    - Dst: ModuleProtocol
      Src: /src/core/libpromises/evalfunction.c:10011,1
    - Dst: feof
      Src: /src/core/libpromises/evalfunction.c:10013,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/evalfunction.c:10014,1
    - Dst: free
      Src: /src/core/libpromises/evalfunction.c:10015,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/evalfunction.c:10016,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10020,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/evalfunction.c:10020,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - command
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10025
      start: 9983
    functionDepth: 11
    functionLinenumber: 9983
    functionLinenumberEnd: 10025
    functionName: ExecModule
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - cf_popen
    - isspace
    - StringSetDestroy
    - feof
    - cf_pclose
    - xmalloc
    - Log
    - free
    - StringSetNew
    - CfReadLine
    - ModuleProtocol
    linkageType: ''
    returnType: bool
    signature: bool ExecModule(EvalContext *ctx, char *command)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:10029,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/evalfunction.c:10031,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:10031,1
    - Dst: StringSetAddF
      Src: /src/core/libpromises/evalfunction.c:10032,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/evalfunction.c:10037,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:10045,1
    - Dst: CommandArg0
      Src: /src/core/libpromises/evalfunction.c:10045,1
    - Dst: basename
      Src: /src/core/libpromises/evalfunction.c:10046,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/evalfunction.c:10049,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:10050,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10051,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:10057,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:10062,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/evalfunction.c:10066,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10069,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/evalfunction.c:10072,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10074,1
    - Dst: strlcpy
      Src: /src/core/libpromises/evalfunction.c:10075,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10079,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/evalfunction.c:10085,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:10088,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10091,1
    - Dst: StringSetClear
      Src: /src/core/libpromises/evalfunction.c:10092,1
    - Dst: StringSetAddSplit
      Src: /src/core/libpromises/evalfunction.c:10094,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/evalfunction.c:10095,1
    - Dst: xstrdup
      Src: /src/core/libpromises/evalfunction.c:10095,1
    - Dst: StringSetAddF
      Src: /src/core/libpromises/evalfunction.c:10096,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:10098,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10100,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10104,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10111,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:10118,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10119,1
    - Dst: CheckID
      Src: /src/core/libpromises/evalfunction.c:10120,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/evalfunction.c:10122,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/evalfunction.c:10123,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:10123,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10126,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/libpromises/evalfunction.c:10127,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:10127,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:10130,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10134,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/evalfunction.c:10135,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10136,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/evalfunction.c:10137,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/evalfunction.c:10138,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:10138,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:10139,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10145,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:10152,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10153,1
    - Dst: CheckID
      Src: /src/core/libpromises/evalfunction.c:10154,1
    - Dst: StringSetFromString
      Src: /src/core/libpromises/evalfunction.c:10158,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/evalfunction.c:10159,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/evalfunction.c:10161,1
    - Dst: EvalContextClassGet
      Src: /src/core/libpromises/evalfunction.c:10163,1
    - Dst: FatalError
      Src: /src/core/libpromises/evalfunction.c:10166,1
    - Dst: ClassRefParse
      Src: /src/core/libpromises/evalfunction.c:10169,1
    - Dst: EvalContextClassRemove
      Src: /src/core/libpromises/evalfunction.c:10170,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/evalfunction.c:10171,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/evalfunction.c:10173,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10180,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:10188,1
    - Dst: CheckID
      Src: /src/core/libpromises/evalfunction.c:10190,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10192,1
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/evalfunction.c:10193,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/evalfunction.c:10195,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/evalfunction.c:10196,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:10196,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:10197,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:10199,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:10207,1
    - Dst: CheckID
      Src: /src/core/libpromises/evalfunction.c:10209,1
    - Dst: FileCanOpen
      Src: /src/core/libpromises/evalfunction.c:10211,1
    - Dst: IntFromString
      Src: /src/core/libpromises/evalfunction.c:10213,1
    - Dst: GetDataFileTypeFromSuffix
      Src: /src/core/libpromises/evalfunction.c:10214,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10216,1
    - Dst: DataFileTypeToString
      Src: /src/core/libpromises/evalfunction.c:10217,1
    - Dst: JsonReadDataFile
      Src: /src/core/libpromises/evalfunction.c:10219,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/evalfunction.c:10222,1
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/evalfunction.c:10223,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/evalfunction.c:10225,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:10225,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:10226,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:10227,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:10228,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10238,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:10246,1
    - Dst: CheckID
      Src: /src/core/libpromises/evalfunction.c:10251,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:10251,1
    - Dst: BufferNewFrom
      Src: /src/core/libpromises/evalfunction.c:10254,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:10254,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:10255,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:10256,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10257,1
    - Dst: JsonParse
      Src: /src/core/libpromises/evalfunction.c:10259,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10262,1
    - Dst: JsonParseErrorToString
      Src: /src/core/libpromises/evalfunction.c:10264,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/evalfunction.c:10268,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10270,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10276,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:10278,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/evalfunction.c:10280,1
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/evalfunction.c:10281,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/evalfunction.c:10283,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:10283,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:10284,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:10285,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:10288,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:10291,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10299,1
    - Dst: sscanf
      Src: /src/core/libpromises/evalfunction.c:10305,1
    - Dst: CheckID
      Src: /src/core/libpromises/evalfunction.c:10307,1
    - Dst: RlistParseString
      Src: /src/core/libpromises/evalfunction.c:10309,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10312,1
    - Dst: strlen
      Src: /src/core/libpromises/evalfunction.c:10319,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/evalfunction.c:10319,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10329,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:10330,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10334,1
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/evalfunction.c:10336,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/evalfunction.c:10338,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/evalfunction.c:10339,1
    - Dst: BufferData
      Src: /src/core/libpromises/evalfunction.c:10339,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/evalfunction.c:10340,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/evalfunction.c:10342,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/evalfunction.c:10343,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10354,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 172
    argCount: 8
    argNames:
    - ctx
    - command
    - line
    - print
    - context
    - context_size
    - tags
    - persistence
    argTypes:
    - EvalContext*
    - char*
    - char*
    - int
    - char*
    - size_t
    - StringSet*
    - long*
    assertStmts:
    - condition: (tags)
      pos:
        line_end: 10028
        line_start: 10028
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 10358
      start: 10027
    functionDepth: 8
    functionLinenumber: 10027
    functionLinenumberEnd: 10358
    functionName: ModuleProtocol
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 3
    functionsReached:
    - CommandArg0
    - BufferDestroy
    - VarRefDestroy
    - Log
    - RlistScalarValue
    - EvalContextClassRemove
    - strlcpy
    - FileCanOpen
    - StringSetAddSplit
    - BufferData
    - StringSetToBuffer
    - strlen
    - EvalContextClassPutSoft
    - JsonGetElementType
    - CompileRegex
    - sscanf
    - StringSetAddF
    - StringMatchFullWithPrecompiledRegex
    - StringSetClear
    - xstrdup
    - RlistDestroy
    - JsonParseErrorToString
    - basename
    - IntFromString
    - CheckID
    - DataFileTypeToString
    - ClassRefDestroy
    - BufferNewFrom
    - CanonifyNameInPlace
    - assert
    - ClassRefParse
    - VarRefParseFromScope
    - RegexDestroy
    - EvalContextVariablePut
    - GetDataFileTypeFromSuffix
    - StringSetIteratorInit
    - EvalContextHeapPersistentSave
    - JsonReadDataFile
    - StringSetFromString
    - JsonParse
    - StringSetAdd
    - JsonDestroy
    - StringSetIteratorNext
    - StringSetDestroy
    - FatalError
    - EvalContextClassGet
    - ProgrammingError
    - RlistParseString
    linkageType: ''
    returnType: void
    signature: void ModuleProtocol(EvalContext *ctx, const char *command, const char
      *line, int print, char* context, size_t context_size, StringSet *tags, long
      *persistence)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/evalfunction.c:10364,1
    - Dst: EvalContextGetPromiseCallerMethods
      Src: /src/core/libpromises/evalfunction.c:10368,1
    - Dst: EvalContextGetPromiseCallers
      Src: /src/core/libpromises/evalfunction.c:10372,1
    - Dst: FnReturnContainerNoCopy
      Src: /src/core/libpromises/evalfunction.c:10373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10374
      start: 10362
    functionDepth: 1
    functionLinenumber: 10362
    functionLinenumberEnd: 10374
    functionName: FnCallCFEngineCallers
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - EvalContextGetPromiseCallerMethods
    - FnReturnContainerNoCopy
    - EvalContextGetPromiseCallers
    - strcmp
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallCFEngineCallers(EvalContext *ctx, ARG_UNUSED const
      Policy *policy, const FnCall *fp, ARG_UNUSED const Rlist *finalargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/evalfunction.c:10381,1
    - Dst: RvalToString
      Src: /src/core/libpromises/evalfunction.c:10383,1
    - Dst: StringStartsWith
      Src: /src/core/libpromises/evalfunction.c:10384,1
    - Dst: StringStartsWith
      Src: /src/core/libpromises/evalfunction.c:10384,1
    - Dst: VarNameOrInlineToJson
      Src: /src/core/libpromises/evalfunction.c:10387,1
    - Dst: StringWriter
      Src: /src/core/libpromises/evalfunction.c:10391,1
    - Dst: JsonWriteCompact
      Src: /src/core/libpromises/evalfunction.c:10392,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/evalfunction.c:10393,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/evalfunction.c:10396,1
    - Dst: FnReturnNoCopy
      Src: /src/core/libpromises/evalfunction.c:10401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - finalargs
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - FnCall*
    - Rlist*
    assertStmts:
    - condition: (finalargs != NULL)
      pos:
        line_end: 10380
        line_start: 10380
        source_file: /src/core/libpromises/evalfunction.c
    constantsTouched: []
    func_position:
      end: 10402
      start: 10376
    functionDepth: 10
    functionLinenumber: 10376
    functionLinenumberEnd: 10402
    functionName: FnCallString
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - FnReturnNoCopy
    - JsonDestroy
    - assert
    - StringWriter
    - JsonWriteCompact
    - StringWriterClose
    - RvalToString
    - VarNameOrInlineToJson
    - StringStartsWith
    linkageType: ''
    returnType: FnCallResult
    signature: "FnCallResult FnCallString(EvalContext *ctx,\n                                 ARG_UNUSED
      const Policy *policy,\n                                 const FnCall *fp,\n
      \                                const Rlist *finalargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/core/libpromises/evalfunction.c:10410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10413
      start: 10408
    functionDepth: 0
    functionLinenumber: 10408
    functionLinenumberEnd: 10413
    functionName: CheckIDChar
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: bool
    signature: bool CheckIDChar(const char ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CheckIDChar
      Src: /src/core/libpromises/evalfunction.c:10419,1
    - Dst: Log
      Src: /src/core/libpromises/evalfunction.c:10421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10428
      start: 10415
    functionDepth: 8
    functionLinenumber: 10415
    functionLinenumberEnd: 10428
    functionName: CheckID
    functionSourceFile: /src/core/libpromises/evalfunction.c
    functionUses: 1
    functionsReached:
    - CheckIDChar
    - Log
    linkageType: ''
    returnType: bool
    signature: bool CheckID(const char *id)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 56
    functionName: PipeTypeIsOk
    functionSourceFile: /src/core/libpromises/pipes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool PipeTypeIsOk(const char *type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libpromises/pipes.c:66,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:69,1
    - Dst: IsPendingTermination
      Src: /src/core/libpromises/pipes.c:76,1
    - Dst: PipeIsReadWriteReady
      Src: /src/core/libpromises/pipes.c:78,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:82,1
    - Dst: read
      Src: /src/core/libpromises/pipes.c:88,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:97,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes.c:99,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/pipes.c:100,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:108,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/pipes.c:111,1
    - Dst: memset
      Src: /src/core/libpromises/pipes.c:112,1
    - Dst: BufferClose
      Src: /src/core/libpromises/pipes.c:121,1
    - Dst: RlistFromStringSplitLines
      Src: /src/core/libpromises/pipes.c:129,1
    - Dst: free
      Src: /src/core/libpromises/pipes.c:130,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - io
    - pipe_timeout_secs
    - pipe_termination_check_secs
    argTypes:
    - IOData*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 62
    functionDepth: 9
    functionLinenumber: 62
    functionLinenumberEnd: 133
    functionName: PipeReadData
    functionSourceFile: /src/core/libpromises/pipes.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - RlistFromStringSplitLines
    - BufferDestroy
    - read
    - IsPendingTermination
    - BufferClose
    - Log
    - free
    - BufferNew
    - PipeIsReadWriteReady
    - BufferAppendString
    - memset
    linkageType: ''
    returnType: Rlist
    signature: Rlist *PipeReadData(const IOData *io, int pipe_timeout_secs, int pipe_termination_check_secs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/pipes.c:138,1
    - Dst: cf_pclose_full_duplex_side
      Src: /src/core/libpromises/pipes.c:142,1
    - Dst: write
      Src: /src/core/libpromises/pipes.c:148,1
    - Dst: strlen
      Src: /src/core/libpromises/pipes.c:148,1
    - Dst: cf_pclose_full_duplex_side
      Src: /src/core/libpromises/pipes.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - io
    - data
    argTypes:
    - IOData*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 135
    functionDepth: 9
    functionLinenumber: 135
    functionLinenumberEnd: 157
    functionName: PipeWrite
    functionSourceFile: /src/core/libpromises/pipes.c
    functionUses: 1
    functionsReached:
    - write
    - cf_pclose_full_duplex_side
    - strlen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t PipeWrite(IOData *io, const char *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/pipes.c:161,1
    - Dst: assert
      Src: /src/core/libpromises/pipes.c:162,1
    - Dst: StringFormat
      Src: /src/core/libpromises/pipes.c:164,1
    - Dst: cf_popen_full_duplex
      Src: /src/core/libpromises/pipes.c:165,1
    - Dst: free
      Src: /src/core/libpromises/pipes.c:166,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:170,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:175,1
    - Dst: PipeWrite
      Src: /src/core/libpromises/pipes.c:179,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:182,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes.c:183,1
    - Dst: strlen
      Src: /src/core/libpromises/pipes.c:186,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:188,1
    - Dst: cf_pclose_full_duplex
      Src: /src/core/libpromises/pipes.c:195,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - base_cmd
    - args
    - data
    argTypes:
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (base_cmd)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/core/libpromises/pipes.c
    - condition: (args)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/core/libpromises/pipes.c
    constantsTouched: []
    func_position:
      end: 204
      start: 159
    functionDepth: 10
    functionLinenumber: 159
    functionLinenumberEnd: 204
    functionName: PipeWriteData
    functionSourceFile: /src/core/libpromises/pipes.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - cf_pclose_full_duplex
    - strlen
    - assert
    - cf_popen_full_duplex
    - StringFormat
    - Log
    - free
    - PipeWrite
    linkageType: ''
    returnType: int
    signature: int PipeWriteData(const char *base_cmd, const char *args, const char
      *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/pipes.c:211,1
    - Dst: assert
      Src: /src/core/libpromises/pipes.c:212,1
    - Dst: StringFormat
      Src: /src/core/libpromises/pipes.c:214,1
    - Dst: cf_popen_full_duplex
      Src: /src/core/libpromises/pipes.c:215,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:219,1
    - Dst: free
      Src: /src/core/libpromises/pipes.c:220,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:224,1
    - Dst: PipeWrite
      Src: /src/core/libpromises/pipes.c:227,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:229,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/pipes.c:230,1
    - Dst: strlen
      Src: /src/core/libpromises/pipes.c:233,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:235,1
    - Dst: free
      Src: /src/core/libpromises/pipes.c:237,1
    - Dst: PipeReadData
      Src: /src/core/libpromises/pipes.c:242,1
    - Dst: cf_pclose_full_duplex
      Src: /src/core/libpromises/pipes.c:245,1
    - Dst: Log
      Src: /src/core/libpromises/pipes.c:248,1
    - Dst: free
      Src: /src/core/libpromises/pipes.c:251,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/pipes.c:252,1
    - Dst: free
      Src: /src/core/libpromises/pipes.c:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - base_cmd
    - args
    - request
    - response
    - pipe_timeout_secs
    - pipe_termination_check_secs
    argTypes:
    - char*
    - char*
    - char*
    - Rlist**
    - int
    - int
    assertStmts:
    - condition: (base_cmd)
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/core/libpromises/pipes.c
    - condition: (args)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/core/libpromises/pipes.c
    constantsTouched: []
    func_position:
      end: 259
      start: 208
    functionDepth: 10
    functionLinenumber: 208
    functionLinenumberEnd: 259
    functionName: PipeReadWriteData
    functionSourceFile: /src/core/libpromises/pipes.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - PipeReadData
    - strlen
    - cf_pclose_full_duplex
    - assert
    - cf_popen_full_duplex
    - StringFormat
    - Log
    - RlistDestroy
    - free
    - PipeWrite
    linkageType: ''
    returnType: int
    signature: "int PipeReadWriteData(const char *base_cmd, const char *args, const
      char *request,\n                             Rlist **response, int pipe_timeout_secs,
      int pipe_termination_check_secs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_popen_full_duplex
      Src: /src/core/libpromises/pipes.c:264,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes.c:270,1
    - Dst: fdopen
      Src: /src/core/libpromises/pipes.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - command
    - capture_stderr
    - require_full_path
    argTypes:
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 261
    functionDepth: 10
    functionLinenumber: 261
    functionLinenumberEnd: 278
    functionName: cf_popen_full_duplex_streams
    functionSourceFile: /src/core/libpromises/pipes.c
    functionUses: 0
    functionsReached:
    - cf_popen_full_duplex
    - fdopen
    linkageType: ''
    returnType: IOData
    signature: "IOData cf_popen_full_duplex_streams(\n    const char *command, bool
      capture_stderr, bool require_full_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/promises.c:45,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:47,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/promises.c:49,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/promises.c:51,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - pp
    - bp
    argTypes:
    - EvalContext*
    - Promise*
    - Body*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: CopyBodyConstraintsToPromise
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - ExpandPrivateRval
    - PromiseAppendConstraint
    - IsDefinedClass
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void CopyBodyConstraintsToPromise(EvalContext *ctx, Promise *pp,\n
      \                                 const Body *bp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/promises.c:69,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/promises.c:87,1
    - Dst: RlistLen
      Src: /src/core/libpromises/promises.c:90,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/promises.c:95,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/promises.c:96,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/promises.c:97,1
    - Dst: RlistLen
      Src: /src/core/libpromises/promises.c:103,1
    - Dst: FatalError
      Src: /src/core/libpromises/promises.c:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - current_body
    - called_rval
    - in_inheritance_chain
    argTypes:
    - EvalContext*
    - Body*
    - Rval*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 116
    functionName: GetBodyRewriter
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - RvalFnCallValue
    - FatalError
    - RlistScalarValue
    - JsonObjectCreate
    - JsonObjectAppendString
    - RlistLen
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *GetBodyRewriter(const EvalContext *ctx,\n                                    const
      Body *current_body,\n                                    const Rval *called_rval,\n
      \                                   bool in_inheritance_chain)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/promises.c:127,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:134,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:135,1
    - Dst: GetBodyRewriter
      Src: /src/core/libpromises/promises.c:139,1
    - Dst: SeqLength
      Src: /src/core/libpromises/promises.c:142,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:145,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:148,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/promises.c:153,1
    - Dst: RvalCopyRewriter
      Src: /src/core/libpromises/promises.c:157,1
    - Dst: RlistFlatten
      Src: /src/core/libpromises/promises.c:162,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/promises.c:168,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/promises.c:170,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:178,1
    - Dst: RvalToString
      Src: /src/core/libpromises/promises.c:182,1
    - Dst: RvalToString
      Src: /src/core/libpromises/promises.c:183,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:184,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:187,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:188,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/promises.c:192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - pcopy
    - bodies_and_args
    - flatten_slists
    - expand_body_vars
    argTypes:
    - EvalContext*
    - Promise*
    - Seq*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 123
    functionDepth: 8
    functionLinenumber: 123
    functionLinenumberEnd: 194
    functionName: AppendExpandedBodies
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - RvalDestroy
    - JsonDestroy
    - ExpandPrivateRval
    - GetBodyRewriter
    - PromiseAppendConstraint
    - RvalCopyRewriter
    - IsDefinedClass
    - strcmp
    - RvalToString
    - Log
    - SeqLength
    - free
    - RlistFlatten
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void AppendExpandedBodies(EvalContext *ctx, Promise *pcopy,\n                                 const
      Seq *bodies_and_args,\n                                 bool flatten_slists,
      bool expand_body_vars)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/promises.c:201,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/promises.c:202,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:209,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:210,1
    - Dst: GetBodyRewriter
      Src: /src/core/libpromises/promises.c:214,1
    - Dst: SeqLength
      Src: /src/core/libpromises/promises.c:217,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:220,1
    - Dst: StringEqual
      Src: /src/core/libpromises/promises.c:223,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/promises.c:228,1
    - Dst: RvalCopyRewriter
      Src: /src/core/libpromises/promises.c:232,1
    - Dst: RlistFlatten
      Src: /src/core/libpromises/promises.c:237,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/promises.c:243,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/promises.c:245,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libpromises/promises.c:252,1
    - Dst: RvalToJson
      Src: /src/core/libpromises/promises.c:252,1
    - Dst: WouldLog
      Src: /src/core/libpromises/promises.c:254,1
    - Dst: RvalToString
      Src: /src/core/libpromises/promises.c:256,1
    - Dst: RvalToString
      Src: /src/core/libpromises/promises.c:257,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:258,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:261,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:262,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/promises.c:267,1
    - Dst: RvalNew
      Src: /src/core/libpromises/promises.c:270,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - bodies_and_args
    - flatten_slists
    - expand_body_vars
    argTypes:
    - EvalContext*
    - Seq*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 196
    functionDepth: 8
    functionLinenumber: 196
    functionLinenumberEnd: 271
    functionName: GetExpandedBodyAsContainer
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - RlistFlatten
    - RvalDestroy
    - JsonDestroy
    - ExpandPrivateRval
    - GetBodyRewriter
    - WouldLog
    - RvalNew
    - JsonObjectAppendElement
    - RvalCopyRewriter
    - IsDefinedClass
    - RvalToJson
    - RvalToString
    - Log
    - SeqLength
    - free
    - JsonObjectCreate
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: Rval
    signature: "Rval GetExpandedBodyAsContainer(EvalContext *ctx,\n                                       const
      Seq *bodies_and_args,\n                                       bool flatten_slists,\n
      \                                      bool expand_body_vars)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/promises.c:284,1
    - Dst: SAFENULL
      Src: /src/core/libpromises/promises.c:286,1
    - Dst: xcalloc
      Src: /src/core/libpromises/promises.c:288,1
    - Dst: xstrdup
      Src: /src/core/libpromises/promises.c:292,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/promises.c:296,1
    - Dst: RlistFlatten
      Src: /src/core/libpromises/promises.c:299,1
    - Dst: RvalToString
      Src: /src/core/libpromises/promises.c:304,1
    - Dst: CF_ASSERT
      Src: /src/core/libpromises/promises.c:306,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:309,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:312,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:315,1
    - Dst: xstrdup
      Src: /src/core/libpromises/promises.c:316,1
    - Dst: xstrdup
      Src: /src/core/libpromises/promises.c:319,1
    - Dst: SeqNew
      Src: /src/core/libpromises/promises.c:320,1
    - Dst: SeqLength
      Src: /src/core/libpromises/promises.c:326,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:328,1
    - Dst: PolicyFromPromise
      Src: /src/core/libpromises/promises.c:329,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/promises.c:344,1
    - Dst: EvalContextResolveBodyExpression
      Src: /src/core/libpromises/promises.c:345,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/promises.c:350,1
    - Dst: EvalContextResolveBodyExpression
      Src: /src/core/libpromises/promises.c:351,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/promises.c:352,1
    - Dst: SeqLength
      Src: /src/core/libpromises/promises.c:361,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:363,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:364,1
    - Dst: SeqReverse
      Src: /src/core/libpromises/promises.c:366,1
    - Dst: EvalContextStackPushBodyFrame
      Src: /src/core/libpromises/promises.c:368,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:370,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:372,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:376,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:379,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/promises.c:383,1
    - Dst: strlen
      Src: /src/core/libpromises/promises.c:387,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/promises.c:388,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:389,1
    - Dst: xstrdup
      Src: /src/core/libpromises/promises.c:390,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:394,1
    - Dst: xstrdup
      Src: /src/core/libpromises/promises.c:395,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:402,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:406,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:411,1
    - Dst: GetExpandedBodyAsContainer
      Src: /src/core/libpromises/promises.c:412,1
    - Dst: AppendExpandedBodies
      Src: /src/core/libpromises/promises.c:417,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:425,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/promises.c:429,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:430,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:436,1
    - Dst: GetExpandedBodyAsContainer
      Src: /src/core/libpromises/promises.c:437,1
    - Dst: AppendExpandedBodies
      Src: /src/core/libpromises/promises.c:442,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/libpromises/promises.c:448,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/promises.c:449,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/libpromises/promises.c:457,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/libpromises/promises.c:463,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/libpromises/promises.c:468,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:476,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:477,1
    - Dst: RvalToString
      Src: /src/core/libpromises/promises.c:479,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:480,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:485,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:486,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:489,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:495,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/promises.c:503,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/promises.c:505,1
    - Dst: RlistFlatten
      Src: /src/core/libpromises/promises.c:508,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:511,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/promises.c:519,1
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/libpromises/promises.c:520,1
    - Dst: AddDefaultBodiesToPromise
      Src: /src/core/libpromises/promises.c:521,1
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/libpromises/promises.c:524,1
    - Dst: AddDefaultBodiesToPromise
      Src: /src/core/libpromises/promises.c:525,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 101
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (pp->classes)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/core/libpromises/promises.c
    - condition: (bp != NULL)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/core/libpromises/promises.c
    constantsTouched: []
    func_position:
      end: 528
      start: 282
    functionDepth: 9
    functionLinenumber: 282
    functionLinenumberEnd: 528
    functionName: DeRefCopyPromise
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - EvalContextStackPopFrame
    - AddDefaultBodiesToPromise
    - RvalCopy
    - Log
    - SeqLength
    - free
    - SAFENULL
    - AppendExpandedBodies
    - EvalContextResolveBodyExpression
    - GetExpandedBodyAsContainer
    - RvalFnCallValue
    - SeqDestroy
    - strlen
    - IsDefinedClass
    - strcmp
    - xstrdup
    - CF_ASSERT
    - RlistFlatten
    - EvalContextStackPushBodyFrame
    - SeqAt
    - PromiseGetBundle
    - RvalScalarValue
    - PromiseGetPromiseType
    - assert
    - SeqNew
    - EvalContextResolveBundleExpression
    - PolicyFromPromise
    - xcalloc
    - PromiseAppendConstraint
    - PromiseTypeSyntaxGet
    - RvalToString
    - xsnprintf
    - SeqReverse
    linkageType: ''
    returnType: Promise
    signature: Promise *DeRefCopyPromise(EvalContext *ctx, const Promise *pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/promises.c:545,1
    - Dst: PolicyFromPromise
      Src: /src/core/libpromises/promises.c:546,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/promises.c:548,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/promises.c:548,1
    - Dst: EvalContextFindFirstMatchingBody
      Src: /src/core/libpromises/promises.c:549,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:551,1
    - Dst: CopyBodyConstraintsToPromise
      Src: /src/core/libpromises/promises.c:552,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:554,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - promise
    - syntax
    argTypes:
    - EvalContext*
    - Promise*
    - PromiseTypeSyntax*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 531
    functionDepth: 8
    functionLinenumber: 531
    functionLinenumberEnd: 558
    functionName: AddDefaultBodiesToPromise
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 1
    functionsReached:
    - PromiseGetPromiseType
    - StringConcatenate
    - Log
    - EvalContextFindFirstMatchingBody
    - CopyBodyConstraintsToPromise
    - PolicyFromPromise
    - free
    - PromiseBundleOrBodyConstraintExists
    linkageType: ''
    returnType: void
    signature: void AddDefaultBodiesToPromise(EvalContext *ctx, Promise *promise,
      const PromiseTypeSyntax *syntax)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/promises.c:564,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/promises.c:567,1
    - Dst: ExpectedDataType
      Src: /src/core/libpromises/promises.c:572,1
    - Dst: ExpandBundleReference
      Src: /src/core/libpromises/promises.c:574,1
    - Dst: EvaluateFinalRval
      Src: /src/core/libpromises/promises.c:578,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/promises.c:578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - cp
    - rval_out
    argTypes:
    - EvalContext*
    - Constraint*
    - Rval*
    assertStmts:
    - condition: (cp->type == POLICY_ELEMENT_TYPE_PROMISE)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/core/libpromises/promises.c
    constantsTouched: []
    func_position:
      end: 583
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 583
    functionName: EvaluateConstraintIteration
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - ExpandBundleReference
    - assert
    - PromiseGetPolicy
    - IsDefinedClass
    - EvaluateFinalRval
    - ExpectedDataType
    linkageType: ''
    returnType: bool
    signature: bool EvaluateConstraintIteration(EvalContext *ctx, const Constraint
      *cp, Rval *rval_out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/promises.c:591,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:592,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:593,1
    - Dst: EvaluateConstraintIteration
      Src: /src/core/libpromises/promises.c:602,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:608,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/promises.c:612,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:616,1
    - Dst: strchr
      Src: /src/core/libpromises/promises.c:628,1
    - Dst: strchr
      Src: /src/core/libpromises/promises.c:628,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:630,1
    - Dst: CheckClassExpression
      Src: /src/core/libpromises/promises.c:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - cp
    - pcopy
    argTypes:
    - EvalContext*
    - Constraint*
    - Promise*
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/core/libpromises/promises.c
    - condition: (pcopy)
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/core/libpromises/promises.c
    - condition: (cp)
      pos:
        line_end: 591
        line_start: 591
        source_file: /src/core/libpromises/promises.c
    constantsTouched: []
    func_position:
      end: 635
      start: 589
    functionDepth: 8
    functionLinenumber: 589
    functionLinenumberEnd: 635
    functionName: CheckVarClassExpression
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - RvalScalarValue
    - EvaluateConstraintIteration
    - PromiseAppendConstraint
    - assert
    - CheckClassExpression
    - strchr
    - Log
    linkageType: ''
    returnType: ExpressionValue
    signature: ExpressionValue CheckVarClassExpression(const EvalContext *ctx, const
      Constraint *cp, Promise *pcopy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/promises.c:640,1
    - Dst: strstr
      Src: /src/core/libpromises/promises.c:643,1
    - Dst: strstr
      Src: /src/core/libpromises/promises.c:644,1
    - Dst: strlen
      Src: /src/core/libpromises/promises.c:647,1
    - Dst: xasprintf
      Src: /src/core/libpromises/promises.c:649,1
    - Dst: xstrdup
      Src: /src/core/libpromises/promises.c:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pp
    - comment
    argTypes:
    - Promise*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 659
    functionName: DereferenceAndPutComment
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - strlen
    - strstr
    - xasprintf
    - xstrdup
    - free
    linkageType: ''
    returnType: void
    signature: void DereferenceAndPutComment(Promise* pp, const char *comment)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/promises.c:663,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:664,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:665,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:666,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:667,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/promises.c:671,1
    - Dst: PromiseGetNamespace
      Src: /src/core/libpromises/promises.c:671,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:675,1
    - Dst: xcalloc
      Src: /src/core/libpromises/promises.c:681,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/promises.c:682,1
    - Dst: StringEqual
      Src: /src/core/libpromises/promises.c:685,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/promises.c:685,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/promises.c:687,1
    - Dst: EvaluateFinalRval
      Src: /src/core/libpromises/promises.c:693,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/promises.c:693,1
    - Dst: xstrdup
      Src: /src/core/libpromises/promises.c:700,1
    - Dst: xstrdup
      Src: /src/core/libpromises/promises.c:703,1
    - Dst: SeqNew
      Src: /src/core/libpromises/promises.c:704,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:711,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/promises.c:711,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/promises.c:713,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/promises.c:713,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/promises.c:714,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/promises.c:716,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/promises.c:717,1
    - Dst: StringEqual
      Src: /src/core/libpromises/promises.c:719,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:721,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/promises.c:724,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:728,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/promises.c:730,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/promises.c:742,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/promises.c:745,1
    - Dst: CheckVarClassExpression
      Src: /src/core/libpromises/promises.c:752,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/promises.c:754,1
    - Dst: RvalToString
      Src: /src/core/libpromises/promises.c:756,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:757,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:760,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/promises.c:767,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/promises.c:779,1
    - Dst: CheckVarClassExpression
      Src: /src/core/libpromises/promises.c:786,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/promises.c:790,1
    - Dst: RvalToString
      Src: /src/core/libpromises/promises.c:793,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:798,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/promises.c:800,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:804,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/promises.c:808,1
    - Dst: RvalToString
      Src: /src/core/libpromises/promises.c:810,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:811,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:814,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/promises.c:824,1
    - Dst: EvaluateConstraintIteration
      Src: /src/core/libpromises/promises.c:828,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:830,1
    - Dst: MissingDependencies
      Src: /src/core/libpromises/promises.c:832,1
    - Dst: StringEqual
      Src: /src/core/libpromises/promises.c:847,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/promises.c:847,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/promises.c:849,1
    - Dst: SeqLength
      Src: /src/core/libpromises/promises.c:853,1
    - Dst: SeqAt
      Src: /src/core/libpromises/promises.c:855,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:858,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:859,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:860,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:861,1
    - Dst: EvaluateConstraintIteration
      Src: /src/core/libpromises/promises.c:867,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/promises.c:872,1
    - Dst: strcmp
      Src: /src/core/libpromises/promises.c:874,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:878,1
    - Dst: RvalTypeToString
      Src: /src/core/libpromises/promises.c:879,1
    - Dst: assert
      Src: /src/core/libpromises/promises.c:883,1
    - Dst: DereferenceAndPutComment
      Src: /src/core/libpromises/promises.c:884,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 105
    argCount: 3
    argNames:
    - ctx
    - pp
    - excluded
    argTypes:
    - EvalContext*
    - Promise*
    - bool*
    assertStmts:
    - condition: (pp->parent_section != NULL)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/core/libpromises/promises.c
    - condition: (excluded != NULL)
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/core/libpromises/promises.c
    - condition: (pp->promiser != NULL)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/core/libpromises/promises.c
    - condition: "(returnval.type == RVAL_TYPE_LIST ||\n               returnval.type
        == RVAL_TYPE_NOPROMISEE)"
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/core/libpromises/promises.c
    - condition: (pp != NULL)
      pos:
        line_end: 662
        line_start: 662
        source_file: /src/core/libpromises/promises.c
    - condition: (pp->classes != NULL)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/core/libpromises/promises.c
    - condition: (final.item != NULL)
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/core/libpromises/promises.c
    constantsTouched: []
    func_position:
      end: 890
      start: 661
    functionDepth: 9
    functionLinenumber: 661
    functionLinenumberEnd: 890
    functionName: ExpandDeRefPromise
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - ExpandPrivateRval
    - EvaluateConstraintIteration
    - CheckVarClassExpression
    - Log
    - MissingDependencies
    - SeqLength
    - free
    - StringEqual
    - EvalContextVariableRemoveSpecial
    - PromiseGetConstraint
    - PromiseGetPolicy
    - LogGetGlobalLevel
    - IsDefinedClass
    - strcmp
    - xstrdup
    - DereferenceAndPutComment
    - CanonifyName
    - SeqAt
    - RvalScalarValue
    - PromiseGetPromiseType
    - assert
    - SeqNew
    - PromiseGetConstraintAsRval
    - EvaluateFinalRval
    - EvalContextGetPass
    - xcalloc
    - PromiseGetConstraintAsInt
    - PromiseAppendConstraint
    - PromiseGetNamespace
    - RvalTypeToString
    - RvalToString
    - EvalContextVariablePutSpecial
    linkageType: ''
    returnType: Promise
    signature: Promise *ExpandDeRefPromise(EvalContext *ctx, const Promise *pp, bool
      *excluded)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:899,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:901,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:901,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:902,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:906,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:906,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:912,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:918,1
    - Dst: StringWriter
      Src: /src/core/libpromises/promises.c:922,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/promises.c:923,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/promises.c:924,1
    - Dst: Log
      Src: /src/core/libpromises/promises.c:925,1
    - Dst: free
      Src: /src/core/libpromises/promises.c:926,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - level
    - pp
    argTypes:
    - LogLevel
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 892
    functionDepth: 8
    functionLinenumber: 892
    functionLinenumberEnd: 932
    functionName: PromiseRef
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - StringWriter
    - Log
    - StringWriterClose
    - free
    - RlistWrite
    linkageType: ''
    returnType: void
    signature: void PromiseRef(LogLevel level, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetHandle
      Src: /src/core/libpromises/promises.c:941,1
    - Dst: snprintf
      Src: /src/core/libpromises/promises.c:945,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/promises.c:945,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:947,1
    - Dst: snprintf
      Src: /src/core/libpromises/promises.c:949,1
    - Dst: ReadLastNode
      Src: /src/core/libpromises/promises.c:949,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/promises.c:949,1
    - Dst: snprintf
      Src: /src/core/libpromises/promises.c:950,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/promises.c:950,1
    - Dst: snprintf
      Src: /src/core/libpromises/promises.c:954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 937
    functionDepth: 3
    functionLinenumber: 937
    functionLinenumberEnd: 958
    functionName: PromiseID
    functionSourceFile: /src/core/libpromises/promises.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - snprintf
    - CanonifyName
    - ReadLastNode
    - PromiseGetHandle
    linkageType: ''
    returnType: char
    signature: char *PromiseID(const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/process_unix_stub.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pid_t
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: GetProcessStartTime
    functionSourceFile: /src/core/libpromises/process_unix_stub.c
    functionUses: 15
    functionsReached:
    - Log
    linkageType: ''
    returnType: time_t
    signature: time_t GetProcessStartTime(ARG_UNUSED pid_t pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/process_unix_stub.c:40,1
    - Dst: kill
      Src: /src/core/libpromises/process_unix_stub.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 8
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: GetProcessState
    functionSourceFile: /src/core/libpromises/process_unix_stub.c
    functionUses: 17
    functionsReached:
    - kill
    - Log
    linkageType: ''
    returnType: ProcessState
    signature: ProcessState GetProcessState(pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/core/libpromises/dbm_test_api.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: gettid
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: pid_t
    signature: pid_t gettid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/dbm_test_api.c:55,1
    - Dst: xstrdup
      Src: /src/core/libpromises/dbm_test_api.c:56,1
    - Dst: xmemdup
      Src: /src/core/libpromises/dbm_test_api.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - val_size
    - val
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: DBItemNew
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - xstrdup
    - xmemdup
    linkageType: ''
    returnType: DBItem
    signature: DBItem *DBItemNew(const char *key, size_t val_size, void *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/dbm_test_api.c:67,1
    - Dst: free
      Src: /src/core/libpromises/dbm_test_api.c:68,1
    - Dst: free
      Src: /src/core/libpromises/dbm_test_api.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - DBItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: DBItemDestroy
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void DBItemDestroy(DBItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srand48_r
      Src: /src/core/libpromises/dbm_test_api.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: InitializeRNG
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - srand48_r
    linkageType: ''
    returnType: void
    signature: void InitializeRNG(long int seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lrand48_r
      Src: /src/core/libpromises/dbm_test_api.c:83,1
    - Dst: lrand48_r
      Src: /src/core/libpromises/dbm_test_api.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - limit
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: GetRandomNumber
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - lrand48_r
    linkageType: ''
    returnType: long
    signature: long GetRandomNumber(long limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewDBCursor
      Src: /src/core/libpromises/dbm_test_api.c:98,1
    - Dst: SeqNew
      Src: /src/core/libpromises/dbm_test_api.c:104,1
    - Dst: NextDB
      Src: /src/core/libpromises/dbm_test_api.c:111,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/dbm_test_api.c:114,1
    - Dst: xstrndup
      Src: /src/core/libpromises/dbm_test_api.c:114,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/dbm_test_api.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 120
    functionName: GetDBKeys
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - NewDBCursor
    - DeleteDBCursor
    - SeqNew
    - NextDB
    - xstrndup
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *GetDBKeys(DBHandle *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewDBCursor
      Src: /src/core/libpromises/dbm_test_api.c:126,1
    - Dst: SeqNew
      Src: /src/core/libpromises/dbm_test_api.c:132,1
    - Dst: NextDB
      Src: /src/core/libpromises/dbm_test_api.c:140,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/dbm_test_api.c:143,1
    - Dst: DBItemNew
      Src: /src/core/libpromises/dbm_test_api.c:143,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/dbm_test_api.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - db
    - limit
    argTypes:
    - DBHandle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 150
    functionName: LoadDB
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - NewDBCursor
    - DeleteDBCursor
    - SeqNew
    - DBItemNew
    - NextDB
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *LoadDB(DBHandle *db, size_t limit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:157,1
    - Dst: InitializeRNG
      Src: /src/core/libpromises/dbm_test_api.c:159,1
    - Dst: gettid
      Src: /src/core/libpromises/dbm_test_api.c:159,1
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:162,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:163,1
    - Dst: GetDBKeys
      Src: /src/core/libpromises/dbm_test_api.c:165,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:166,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:167,1
    - Dst: SeqLength
      Src: /src/core/libpromises/dbm_test_api.c:169,1
    - Dst: GetRandomNumber
      Src: /src/core/libpromises/dbm_test_api.c:173,1
    - Dst: usleep
      Src: /src/core/libpromises/dbm_test_api.c:175,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:185,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_test_api.c:186,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/dbm_test_api.c:187,1
    - Dst: GetRandomNumber
      Src: /src/core/libpromises/dbm_test_api.c:190,1
    - Dst: SeqAt
      Src: /src/core/libpromises/dbm_test_api.c:192,1
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:194,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:195,1
    - Dst: ReadDB
      Src: /src/core/libpromises/dbm_test_api.c:197,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:198,1
    - Dst: HasKeyDB
      Src: /src/core/libpromises/dbm_test_api.c:198,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_test_api.c:198,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/dbm_test_api.c:202,1
    - Dst: GetDBKeys
      Src: /src/core/libpromises/dbm_test_api.c:203,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:204,1
    - Dst: SeqLength
      Src: /src/core/libpromises/dbm_test_api.c:205,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:208,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/dbm_test_api.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - db_id
    - keys_refresh_s
    - min_interval_ms
    - max_interval_ms
    - terminate
    argTypes:
    - dbid
    - int
    - long
    - long
    - bool*
    assertStmts:
    - condition: (terminate != NULL)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (keys != NULL)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success || !HasKeyDB(db, key, strlen(key)))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (keys != NULL)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/core/libpromises/dbm_test_api.c
    constantsTouched: []
    func_position:
      end: 211
      start: 153
    functionDepth: 8
    functionLinenumber: 153
    functionLinenumberEnd: 211
    functionName: DoRandomReads
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - GetRandomNumber
    - SeqDestroy
    - strlen
    - assert
    - OpenDB
    - InitializeRNG
    - HasKeyDB
    - usleep
    - Log
    - gettid
    - CloseDB
    - ReadDB
    - SeqLength
    - GetDBKeys
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void DoRandomReads(dbid db_id,\n                   int keys_refresh_s,
      long min_interval_ms, long max_interval_ms,\n                   bool *terminate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoRandomReads
      Src: /src/core/libpromises/dbm_test_api.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 9
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: DoRandomReadsRoutine
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - DoRandomReads
    linkageType: ''
    returnType: void
    signature: void *DoRandomReadsRoutine(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NewDBCursor
      Src: /src/core/libpromises/dbm_test_api.c:234,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:235,1
    - Dst: NextDB
      Src: /src/core/libpromises/dbm_test_api.c:244,1
    - Dst: StringStartsWith
      Src: /src/core/libpromises/dbm_test_api.c:245,1
    - Dst: DBCursorDeleteEntry
      Src: /src/core/libpromises/dbm_test_api.c:247,1
    - Dst: StringSetRemove
      Src: /src/core/libpromises/dbm_test_api.c:250,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/dbm_test_api.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - db
    - prefix
    - written_keys
    argTypes:
    - DBHandle*
    - char*
    - StringSet*
    assertStmts:
    - condition: (success)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/core/libpromises/dbm_test_api.c
    constantsTouched: []
    func_position:
      end: 257
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 257
    functionName: PruneDB
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - NewDBCursor
    - assert
    - DeleteDBCursor
    - StringSetRemove
    - NextDB
    - DBCursorDeleteEntry
    - StringStartsWith
    linkageType: ''
    returnType: bool
    signature: bool PruneDB(DBHandle *db, const char *prefix, StringSet *written_keys)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:264,1
    - Dst: InitializeRNG
      Src: /src/core/libpromises/dbm_test_api.c:266,1
    - Dst: gettid
      Src: /src/core/libpromises/dbm_test_api.c:266,1
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:269,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:270,1
    - Dst: LoadDB
      Src: /src/core/libpromises/dbm_test_api.c:272,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:273,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:274,1
    - Dst: SeqLength
      Src: /src/core/libpromises/dbm_test_api.c:276,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:278,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/dbm_test_api.c:280,1
    - Dst: GetRandomNumber
      Src: /src/core/libpromises/dbm_test_api.c:284,1
    - Dst: usleep
      Src: /src/core/libpromises/dbm_test_api.c:286,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:296,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_test_api.c:297,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/dbm_test_api.c:298,1
    - Dst: GetRandomNumber
      Src: /src/core/libpromises/dbm_test_api.c:311,1
    - Dst: SeqAt
      Src: /src/core/libpromises/dbm_test_api.c:313,1
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:315,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:316,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_test_api.c:321,1
    - Dst: gettid
      Src: /src/core/libpromises/dbm_test_api.c:321,1
    - Dst: WriteDB
      Src: /src/core/libpromises/dbm_test_api.c:322,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:323,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/dbm_test_api.c:324,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_test_api.c:328,1
    - Dst: gettid
      Src: /src/core/libpromises/dbm_test_api.c:328,1
    - Dst: PruneDB
      Src: /src/core/libpromises/dbm_test_api.c:329,1
    - Dst: free
      Src: /src/core/libpromises/dbm_test_api.c:330,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:331,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:334,1
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:337,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:338,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/dbm_test_api.c:341,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/dbm_test_api.c:343,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/dbm_test_api.c:345,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:346,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:348,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/dbm_test_api.c:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 6
    argNames:
    - db_id
    - sample_size_pct
    - prune_interval_s
    - min_interval_ms
    - max_interval_ms
    - terminate
    argTypes:
    - dbid
    - int
    - int
    - long
    - long
    - bool*
    assertStmts:
    - condition: (success)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (terminate != NULL)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (items != NULL)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (n_samples > 0)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/core/libpromises/dbm_test_api.c
    constantsTouched: []
    func_position:
      end: 351
      start: 259
    functionDepth: 8
    functionLinenumber: 259
    functionLinenumberEnd: 351
    functionName: DoRandomWrites
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - usleep
    - Log
    - SeqLength
    - free
    - StringSetNew
    - SeqDestroy
    - LoadDB
    - StringFormat
    - CloseDB
    - SeqAt
    - assert
    - OpenDB
    - InitializeRNG
    - PruneDB
    - StringSetIteratorInit
    - WriteDB
    - StringSetAdd
    - GetErrorStr
    - GetRandomNumber
    - DeleteDB
    - StringSetIteratorNext
    - gettid
    linkageType: ''
    returnType: void
    signature: "void DoRandomWrites(dbid db_id,\n                    int sample_size_pct,\n
      \                   int prune_interval_s, long min_interval_ms, long max_interval_ms,\n
      \                   bool *terminate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoRandomWrites
      Src: /src/core/libpromises/dbm_test_api.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 360
    functionDepth: 9
    functionLinenumber: 360
    functionLinenumberEnd: 370
    functionName: DoRandomWritesRoutine
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - DoRandomWrites
    linkageType: ''
    returnType: void
    signature: void *DoRandomWritesRoutine(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:377,1
    - Dst: InitializeRNG
      Src: /src/core/libpromises/dbm_test_api.c:379,1
    - Dst: gettid
      Src: /src/core/libpromises/dbm_test_api.c:379,1
    - Dst: GetRandomNumber
      Src: /src/core/libpromises/dbm_test_api.c:383,1
    - Dst: usleep
      Src: /src/core/libpromises/dbm_test_api.c:385,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:394,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_test_api.c:395,1
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:400,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:401,1
    - Dst: NewDBCursor
      Src: /src/core/libpromises/dbm_test_api.c:404,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:405,1
    - Dst: NextDB
      Src: /src/core/libpromises/dbm_test_api.c:413,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/dbm_test_api.c:415,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - db_id
    - min_interval_ms
    - max_interval_ms
    - terminate
    argTypes:
    - dbid
    - long
    - long
    - bool*
    assertStmts:
    - condition: (terminate != NULL)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/core/libpromises/dbm_test_api.c
    constantsTouched: []
    func_position:
      end: 418
      start: 373
    functionDepth: 8
    functionLinenumber: 373
    functionLinenumberEnd: 418
    functionName: DoRandomIterations
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - GetRandomNumber
    - NewDBCursor
    - assert
    - InitializeRNG
    - OpenDB
    - DeleteDBCursor
    - usleep
    - Log
    - gettid
    - CloseDB
    - NextDB
    linkageType: ''
    returnType: void
    signature: "void DoRandomIterations(dbid db_id,\n                        long
      min_interval_ms, long max_interval_ms,\n                        bool *terminate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoRandomIterations
      Src: /src/core/libpromises/dbm_test_api.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 426
    functionDepth: 9
    functionLinenumber: 426
    functionLinenumberEnd: 433
    functionName: DoRandomIterationsRoutine
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - DoRandomIterations
    linkageType: ''
    returnType: void
    signature: void *DoRandomIterationsRoutine(void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:461,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:466,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:469,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_test_api.c:471,1
    - Dst: pthread_create
      Src: /src/core/libpromises/dbm_test_api.c:494,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:500,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_test_api.c:501,1
    - Dst: pthread_create
      Src: /src/core/libpromises/dbm_test_api.c:509,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:515,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_test_api.c:516,1
    - Dst: pthread_create
      Src: /src/core/libpromises/dbm_test_api.c:523,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:529,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_test_api.c:530,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:538,1
    - Dst: free
      Src: /src/core/libpromises/dbm_test_api.c:539,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 10
    argNames:
    - db_id
    - read_keys_refresh_s
    - read_min_interval_ms
    - read_max_interval_ms
    - write_sample_size_pct
    - write_prune_interval_s
    - write_min_interval_ms
    - write_max_interval_ms
    - iter_min_interval_ms
    - iter_max_interval_ms
    argTypes:
    - dbid
    - int
    - long
    - long
    - int
    - int
    - long
    - long
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 453
    functionDepth: 8
    functionLinenumber: 453
    functionLinenumberEnd: 544
    functionName: SimulateDBLoad
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - pthread_create
    - OpenDB
    - Log
    - CloseDB
    - GetErrorStrFromCode
    - free
    linkageType: ''
    returnType: DBLoadSimulation
    signature: "DBLoadSimulation *SimulateDBLoad(dbid db_id,\n                                 int
      read_keys_refresh_s, long read_min_interval_ms, long read_max_interval_ms,\n
      \                                int write_sample_size_pct,\n                                 int
      write_prune_interval_s, long write_min_interval_ms, long write_max_interval_ms,\n
      \                                long iter_min_interval_ms, long iter_max_interval_ms)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/core/libpromises/dbm_test_api.c:555,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:557,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_test_api.c:557,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:558,1
    - Dst: pthread_join
      Src: /src/core/libpromises/dbm_test_api.c:561,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:565,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_test_api.c:566,1
    - Dst: pthread_join
      Src: /src/core/libpromises/dbm_test_api.c:571,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:575,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_test_api.c:576,1
    - Dst: pthread_join
      Src: /src/core/libpromises/dbm_test_api.c:581,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:585,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_test_api.c:586,1
    - Dst: pthread_timedjoin_np
      Src: /src/core/libpromises/dbm_test_api.c:595,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:599,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_test_api.c:599,1
    - Dst: pthread_timedjoin_np
      Src: /src/core/libpromises/dbm_test_api.c:604,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:608,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_test_api.c:608,1
    - Dst: pthread_timedjoin_np
      Src: /src/core/libpromises/dbm_test_api.c:613,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:617,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_test_api.c:618,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:626,1
    - Dst: free
      Src: /src/core/libpromises/dbm_test_api.c:630,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 1
    argNames:
    - simulation
    argTypes:
    - DBLoadSimulation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 546
    functionDepth: 8
    functionLinenumber: 546
    functionLinenumberEnd: 632
    functionName: StopSimulation
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - pthread_timedjoin_np
    - clock_gettime
    - pthread_join
    - Log
    - GetErrorStrFromCode
    - free
    linkageType: ''
    returnType: void
    signature: void StopSimulation(DBLoadSimulation *simulation)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:643,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:646,1
    - Dst: GetDBUsagePercentage
      Src: /src/core/libpromises/dbm_test_api.c:650,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:653,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:654,1
    - Dst: LoadDB
      Src: /src/core/libpromises/dbm_test_api.c:659,1
    - Dst: SeqLength
      Src: /src/core/libpromises/dbm_test_api.c:660,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:662,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:663,1
    - Dst: SeqAt
      Src: /src/core/libpromises/dbm_test_api.c:666,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:667,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/dbm_test_api.c:669,1
    - Dst: gettid
      Src: /src/core/libpromises/dbm_test_api.c:671,1
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:674,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:675,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_test_api.c:686,1
    - Dst: WriteDB
      Src: /src/core/libpromises/dbm_test_api.c:687,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:688,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/dbm_test_api.c:689,1
    - Dst: GetDBUsagePercentage
      Src: /src/core/libpromises/dbm_test_api.c:692,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:693,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:695,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/dbm_test_api.c:698,1
    - Dst: xmalloc
      Src: /src/core/libpromises/dbm_test_api.c:699,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - db_id
    - usage_pct
    argTypes:
    - dbid
    - int
    assertStmts:
    - condition: (success)
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (success)
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/core/libpromises/dbm_test_api.c
    - condition: (usage != -1)
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/core/libpromises/dbm_test_api.c
    constantsTouched: []
    func_position:
      end: 703
      start: 640
    functionDepth: 8
    functionLinenumber: 640
    functionLinenumberEnd: 703
    functionName: FillUpDB
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - StringSetAdd
    - SeqDestroy
    - LoadDB
    - assert
    - OpenDB
    - WriteDB
    - xmalloc
    - Log
    - gettid
    - CloseDB
    - StringFormat
    - SeqLength
    - StringSetNew
    - GetDBUsagePercentage
    - SeqAt
    linkageType: ''
    returnType: DBFilament
    signature: DBFilament *FillUpDB(dbid db_id, int usage_pct)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringSetSize
      Src: /src/core/libpromises/dbm_test_api.c:712,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/dbm_test_api.c:714,1
    - Dst: free
      Src: /src/core/libpromises/dbm_test_api.c:715,1
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_test_api.c:719,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_test_api.c:722,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/dbm_test_api.c:726,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/dbm_test_api.c:728,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/dbm_test_api.c:730,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_test_api.c:731,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/dbm_test_api.c:734,1
    - Dst: free
      Src: /src/core/libpromises/dbm_test_api.c:735,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_test_api.c:736,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - filament
    argTypes:
    - DBFilament*
    assertStmts:
    - condition: (success)
      pos:
        line_end: 730
        line_start: 730
        source_file: /src/core/libpromises/dbm_test_api.c
    constantsTouched: []
    func_position:
      end: 737
      start: 705
    functionDepth: 8
    functionLinenumber: 705
    functionLinenumberEnd: 737
    functionName: RemoveFilament
    functionSourceFile: /src/core/libpromises/dbm_test_api.c
    functionUses: 0
    functionsReached:
    - DeleteDB
    - StringSetIteratorNext
    - OpenDB
    - assert
    - StringSetSize
    - StringSetDestroy
    - Log
    - StringSetIteratorInit
    - CloseDB
    - free
    linkageType: ''
    returnType: void
    signature: void RemoveFilament(DBFilament *filament)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libpromises/files_repository.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: SetRepositoryLocation
    functionSourceFile: /src/core/libpromises/files_repository.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void SetRepositoryLocation(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: SetRepositoryChar
    functionSourceFile: /src/core/libpromises/files_repository.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRepositoryChar(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libpromises/files_repository.c:70,1
    - Dst: strlcpy
      Src: /src/core/libpromises/files_repository.c:74,1
    - Dst: Log
      Src: /src/core/libpromises/files_repository.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - file
    - attr
    - destination
    argTypes:
    - ARG_UNUSED*
    - Attributes*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 8
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: GetRepositoryPath
    functionSourceFile: /src/core/libpromises/files_repository.c
    functionUses: 0
    functionsReached:
    - Log
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool GetRepositoryPath(ARG_UNUSED const char *file, const Attributes
      *attr, char *destination)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GetRepositoryPath
      Src: /src/core/libpromises/files_repository.c:99,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/files_repository.c:109,1
    - Dst: Log
      Src: /src/core/libpromises/files_repository.c:111,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/files_repository.c:117,1
    - Dst: PrependItemList
      Src: /src/core/libpromises/files_repository.c:118,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/files_repository.c:119,1
    - Dst: PathAppend
      Src: /src/core/libpromises/files_repository.c:121,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/files_repository.c:122,1
    - Dst: Log
      Src: /src/core/libpromises/files_repository.c:124,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/files_repository.c:127,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/files_repository.c:131,1
    - Dst: Log
      Src: /src/core/libpromises/files_repository.c:135,1
    - Dst: stat
      Src: /src/core/libpromises/files_repository.c:140,1
    - Dst: Log
      Src: /src/core/libpromises/files_repository.c:142,1
    - Dst: stat
      Src: /src/core/libpromises/files_repository.c:146,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/libpromises/files_repository.c:148,1
    - Dst: Log
      Src: /src/core/libpromises/files_repository.c:150,1
    - Dst: Log
      Src: /src/core/libpromises/files_repository.c:155,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - file
    - attr
    argTypes:
    - char*
    - Attributes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 88
    functionDepth: 9
    functionLinenumber: 88
    functionLinenumberEnd: 158
    functionName: ArchiveToRepository
    functionSourceFile: /src/core/libpromises/files_repository.c
    functionUses: 0
    functionsReached:
    - stat
    - ThreadLock
    - IsItemIn
    - CopyRegularFileDisk
    - GetRepositoryPath
    - ThreadUnlock
    - MakeParentDirectory
    - Log
    - CanonifyName
    - PrependItemList
    - PathAppend
    linkageType: ''
    returnType: bool
    signature: bool ArchiveToRepository(const char *file, const Attributes *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsItemIn
      Src: /src/core/libpromises/files_repository.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: FileInRepository
    functionSourceFile: /src/core/libpromises/files_repository.c
    functionUses: 0
    functionsReached:
    - IsItemIn
    linkageType: ''
    returnType: bool
    signature: bool FileInRepository(const char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ParseStringExpression
      Src: /src/core/libpromises/string_expressions.c:42,1
    - Dst: ParseStringExpression
      Src: /src/core/libpromises/string_expressions.c:54,1
    - Dst: FreeStringExpression
      Src: /src/core/libpromises/string_expressions.c:58,1
    - Dst: xcalloc
      Src: /src/core/libpromises/string_expressions.c:62,1
    - Dst: xstrdup
      Src: /src/core/libpromises/string_expressions.c:64,1
    - Dst: xcalloc
      Src: /src/core/libpromises/string_expressions.c:66,1
    - Dst: xcalloc
      Src: /src/core/libpromises/string_expressions.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - expr
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 77
    functionName: ParseQname
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 0
    functionsReached:
    - ParseStringExpression
    - xcalloc
    - FreeStringExpression
    - xstrdup
    linkageType: ''
    returnType: StringParseResult
    signature: StringParseResult ParseQname(const char *expr, int start, int end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ParseQname
      Src: /src/core/libpromises/string_expressions.c:88,1
    - Dst: xcalloc
      Src: /src/core/libpromises/string_expressions.c:94,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/string_expressions.c:109,1
    - Dst: FreeStringExpression
      Src: /src/core/libpromises/string_expressions.c:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - expr
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 134
    functionName: ParseVarRef
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 0
    functionsReached:
    - FreeStringExpression
    - xcalloc
    - ParseQname
    - ProgrammingError
    linkageType: ''
    returnType: StringParseResult
    signature: StringParseResult ParseVarRef(const char *expr, int start, int end)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/string_expressions.c:140,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - c
    - inside_index
    argTypes:
    - char
    - bool*
    assertStmts:
    - condition: (inside_index != NULL)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/core/libpromises/string_expressions.c
    constantsTouched: []
    func_position:
      end: 183
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 183
    functionName: ValidTokenCharacter
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool ValidTokenCharacter(char c, bool *inside_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ValidTokenCharacter
      Src: /src/core/libpromises/string_expressions.c:190,1
    - Dst: xcalloc
      Src: /src/core/libpromises/string_expressions.c:197,1
    - Dst: xstrndup
      Src: /src/core/libpromises/string_expressions.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - expr
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 208
    functionName: ParseToken
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 0
    functionsReached:
    - ValidTokenCharacter
    - xstrndup
    - xcalloc
    linkageType: ''
    returnType: StringParseResult
    signature: StringParseResult ParseToken(const char *expr, int start, int end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ParseToken
      Src: /src/core/libpromises/string_expressions.c:214,1
    - Dst: ParseVarRef
      Src: /src/core/libpromises/string_expressions.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - expr
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: ParseTerm
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 0
    functionsReached:
    - ParseVarRef
    - ParseToken
    linkageType: ''
    returnType: StringParseResult
    signature: StringParseResult ParseTerm(const char *expr, int start, int end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ParseTerm
      Src: /src/core/libpromises/string_expressions.c:230,1
    - Dst: ParseStringExpression
      Src: /src/core/libpromises/string_expressions.c:234,1
    - Dst: xcalloc
      Src: /src/core/libpromises/string_expressions.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - expr
    - start
    - end
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 255
    functionName: ParseStringExpression
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 5
    functionsReached:
    - ParseStringExpression
    - xcalloc
    - ParseTerm
    linkageType: ''
    returnType: StringParseResult
    signature: StringParseResult ParseStringExpression(const char *expr, int start,
      int end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EvalStringExpression
      Src: /src/core/libpromises/string_expressions.c:263,1
    - Dst: EvalStringExpression
      Src: /src/core/libpromises/string_expressions.c:269,1
    - Dst: free
      Src: /src/core/libpromises/string_expressions.c:272,1
    - Dst: xasprintf
      Src: /src/core/libpromises/string_expressions.c:276,1
    - Dst: free
      Src: /src/core/libpromises/string_expressions.c:277,1
    - Dst: free
      Src: /src/core/libpromises/string_expressions.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - expr
    - evalfn
    - param
    argTypes:
    - StringExpression*
    - VarRefEvaluator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 280
    functionName: EvalConcat
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 0
    functionsReached:
    - EvalStringExpression
    - xasprintf
    - free
    linkageType: ''
    returnType: char
    signature: char *EvalConcat(const StringExpression *expr, VarRefEvaluator evalfn,
      void *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EvalStringExpression
      Src: /src/core/libpromises/string_expressions.c:286,1
    - Dst: free
      Src: /src/core/libpromises/string_expressions.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - expr
    - evalfn
    - param
    argTypes:
    - StringExpression*
    - VarRefEvaluator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 295
    functionName: EvalVarRef
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 0
    functionsReached:
    - EvalStringExpression
    - free
    linkageType: ''
    returnType: char
    signature: char *EvalVarRef(const StringExpression *expr, VarRefEvaluator evalfn,
      void *param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EvalConcat
      Src: /src/core/libpromises/string_expressions.c:302,1
    - Dst: xstrdup
      Src: /src/core/libpromises/string_expressions.c:304,1
    - Dst: EvalVarRef
      Src: /src/core/libpromises/string_expressions.c:306,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/string_expressions.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - expr
    - evalfn
    - param
    argTypes:
    - StringExpression*
    - VarRefEvaluator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 310
    functionName: EvalStringExpression
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 4
    functionsReached:
    - EvalConcat
    - EvalVarRef
    - xstrdup
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *EvalStringExpression(const StringExpression *expr, VarRefEvaluator
      evalfn, void *param)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FreeStringExpression
      Src: /src/core/libpromises/string_expressions.c:324,1
    - Dst: FreeStringExpression
      Src: /src/core/libpromises/string_expressions.c:325,1
    - Dst: free
      Src: /src/core/libpromises/string_expressions.c:328,1
    - Dst: FreeStringExpression
      Src: /src/core/libpromises/string_expressions.c:331,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/string_expressions.c:334,1
    - Dst: free
      Src: /src/core/libpromises/string_expressions.c:337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - expr
    argTypes:
    - StringExpression*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 338
    functionName: FreeStringExpression
    functionSourceFile: /src/core/libpromises/string_expressions.c
    functionUses: 6
    functionsReached:
    - FreeStringExpression
    - free
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void FreeStringExpression(StringExpression *expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CopyList
      Src: /src/core/libpromises/files_lib.c:51,1
    - Dst: stat
      Src: /src/core/libpromises/files_lib.c:55,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:57,1
    - Dst: DeleteItemLiteral
      Src: /src/core/libpromises/files_lib.c:60,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/files_lib.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - list
    - name
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 8
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: PurgeItemList
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 0
    functionsReached:
    - stat
    - CopyList
    - Log
    - DeleteItemLiteral
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void PurgeItemList(Item **list, char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen_create_perms
      Src: /src/core/libpromises/files_lib.c:69,1
    - Dst: strlen
      Src: /src/core/libpromises/files_lib.c:76,1
    - Dst: fwrite
      Src: /src/core/libpromises/files_lib.c:78,1
    - Dst: fclose
      Src: /src/core/libpromises/files_lib.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - filename
    - contents
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 10
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: FileWriteOver
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 1
    functionsReached:
    - safe_fopen_create_perms
    - fwrite
    - fclose
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool FileWriteOver(char *filename, char *contents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeParentDirectoryImpl
      Src: /src/core/libpromises/files_lib.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parentandchild
    - force
    - created
    argTypes:
    - char*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: MakeParentDirectory
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 2
    functionsReached:
    - MakeParentDirectoryImpl
    linkageType: ''
    returnType: bool
    signature: bool MakeParentDirectory(const char *parentandchild, bool force, bool
      *created)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeParentDirectoryImpl
      Src: /src/core/libpromises/files_lib.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - parentandchild
    - force
    - created
    - perms_mode
    argTypes:
    - char*
    - bool
    - bool*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: MakeParentDirectoryPerms
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 2
    functionsReached:
    - MakeParentDirectoryImpl
    linkageType: ''
    returnType: bool
    signature: bool MakeParentDirectoryPerms(const char *parentandchild, bool force,
      bool *created, mode_t perms_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeParentDirectoryImpl
      Src: /src/core/libpromises/files_lib.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parentandchild
    - force
    - created
    argTypes:
    - char*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: MakeParentInternalDirectory
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 0
    functionsReached:
    - MakeParentDirectoryImpl
    linkageType: ''
    returnType: bool
    signature: bool MakeParentInternalDirectory(const char *parentandchild, bool force,
      bool *created)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeParentDirectoryImpl
      Src: /src/core/libpromises/files_lib.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ctx
    - pp
    - attr
    - result
    - parentandchild
    - force
    - created
    - perms_mode
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - PromiseResult*
    - char*
    - bool
    - bool*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: MakeParentDirectoryForPromise
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 0
    functionsReached:
    - MakeParentDirectoryImpl
    linkageType: ''
    returnType: bool
    signature: "bool MakeParentDirectoryForPromise(EvalContext *ctx, const Promise
      *pp,\n                                   const Attributes *attr,\n                                   PromiseResult
      *result,\n                                   const char *parentandchild,\n                                   bool
      force, bool *created,\n                                   const mode_t perms_mode)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_lib.c:146,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_lib.c:148,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:167,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_lib.c:171,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:173,1
    - Dst: strlcpy
      Src: /src/core/libpromises/files_lib.c:179,1
    - Dst: strstr
      Src: /src/core/libpromises/files_lib.c:182,1
    - Dst: LastFileSeparator
      Src: /src/core/libpromises/files_lib.c:190,1
    - Dst: DeleteSlash
      Src: /src/core/libpromises/files_lib.c:198,1
    - Dst: lstat
      Src: /src/core/libpromises/files_lib.c:200,1
    - Dst: S_ISLNK
      Src: /src/core/libpromises/files_lib.c:202,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:204,1
    - Dst: stat
      Src: /src/core/libpromises/files_lib.c:211,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_lib.c:216,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_lib.c:220,1
    - Dst: DeleteSlash
      Src: /src/core/libpromises/files_lib.c:221,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_lib.c:223,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:224,1
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_lib.c:229,1
    - Dst: lstat
      Src: /src/core/libpromises/files_lib.c:237,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_lib.c:239,1
    - Dst: DeleteDirectoryTree
      Src: /src/core/libpromises/files_lib.c:241,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:243,1
    - Dst: unlink
      Src: /src/core/libpromises/files_lib.c:250,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:252,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:254,1
    - Dst: rename
      Src: /src/core/libpromises/files_lib.c:260,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_lib.c:264,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:266,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_lib.c:267,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:271,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:273,1
    - Dst: RecordChange
      Src: /src/core/libpromises/files_lib.c:279,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_lib.c:282,1
    - Dst: S_ISLNK
      Src: /src/core/libpromises/files_lib.c:288,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_lib.c:288,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_lib.c:292,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_lib.c:296,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:300,1
    - Dst: RootDirLength
      Src: /src/core/libpromises/files_lib.c:313,1
    - Dst: strncpy
      Src: /src/core/libpromises/files_lib.c:315,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_lib.c:322,1
    - Dst: stat
      Src: /src/core/libpromises/files_lib.c:338,1
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_lib.c:341,1
    - Dst: umask
      Src: /src/core/libpromises/files_lib.c:344,1
    - Dst: mkdir
      Src: /src/core/libpromises/files_lib.c:346,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_lib.c:352,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:353,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_lib.c:354,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:358,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:360,1
    - Dst: umask
      Src: /src/core/libpromises/files_lib.c:362,1
    - Dst: umask
      Src: /src/core/libpromises/files_lib.c:373,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_lib.c:378,1
    - Dst: xmalloc
      Src: /src/core/libpromises/files_lib.c:384,1
    - Dst: strlcpy
      Src: /src/core/libpromises/files_lib.c:385,1
    - Dst: strncat
      Src: /src/core/libpromises/files_lib.c:386,1
    - Dst: DeleteSlash
      Src: /src/core/libpromises/files_lib.c:389,1
    - Dst: strncmp
      Src: /src/core/libpromises/files_lib.c:391,1
    - Dst: free
      Src: /src/core/libpromises/files_lib.c:393,1
    - Dst: free
      Src: /src/core/libpromises/files_lib.c:396,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_lib.c:401,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_lib.c:404,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:408,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:419,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 132
    argCount: 9
    argNames:
    - ctx
    - pp
    - attr
    - result
    - parentandchild
    - force
    - internal
    - created
    - perms_mode
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - PromiseResult*
    - char*
    - bool
    - bool
    - bool*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 134
    functionDepth: 10
    functionLinenumber: 134
    functionLinenumberEnd: 421
    functionName: MakeParentDirectoryImpl
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 4
    functionsReached:
    - strncmp
    - IsAbsoluteFileName
    - Log
    - free
    - LastFileSeparator
    - strlcpy
    - mkdir
    - unlink
    - RecordChange
    - strncat
    - lstat
    - strcpy
    - strlcat
    - S_ISLNK
    - strncpy
    - S_ISDIR
    - xmalloc
    - rename
    - umask
    - GetErrorStr
    - ChrootChanges
    - stat
    - DeleteSlash
    - RootDirLength
    - IsFileSep
    - strstr
    - RecordFailure
    - DeleteDirectoryTree
    - ToChangesChroot
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool MakeParentDirectoryImpl(EvalContext *ctx, const Promise *pp,
      const Attributes *attr,\n                                    PromiseResult *result,
      const char *parentandchild,\n                                    bool force,
      bool internal, bool *created, mode_t perms_mode)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/files_lib.c:427,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:429,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:429,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:435,1
    - Dst: S_ISREG
      Src: /src/core/libpromises/files_lib.c:440,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:442,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/files_lib.c:453,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:456,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:456,1
    - Dst: BufferNew
      Src: /src/core/libpromises/files_lib.c:460,1
    - Dst: xmalloc
      Src: /src/core/libpromises/files_lib.c:463,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/files_lib.c:468,1
    - Dst: feof
      Src: /src/core/libpromises/files_lib.c:471,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:473,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:475,1
    - Dst: strlen
      Src: /src/core/libpromises/files_lib.c:481,1
    - Dst: strlen
      Src: /src/core/libpromises/files_lib.c:483,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/files_lib.c:485,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/files_lib.c:489,1
    - Dst: feof
      Src: /src/core/libpromises/files_lib.c:490,1
    - Dst: BufferSize
      Src: /src/core/libpromises/files_lib.c:490,1
    - Dst: AppendItem
      Src: /src/core/libpromises/files_lib.c:492,1
    - Dst: BufferData
      Src: /src/core/libpromises/files_lib.c:492,1
    - Dst: BufferClear
      Src: /src/core/libpromises/files_lib.c:496,1
    - Dst: free
      Src: /src/core/libpromises/files_lib.c:499,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/files_lib.c:500,1
    - Dst: fclose
      Src: /src/core/libpromises/files_lib.c:501,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 4
    argNames:
    - liststart
    - file
    - edits
    - only_checks
    argTypes:
    - Item**
    - char*
    - EditDefaults
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 423
    functionDepth: 8
    functionLinenumber: 423
    functionLinenumberEnd: 503
    functionName: LoadFileAsItemList
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - stat
    - AppendItem
    - BufferData
    - BufferAppend
    - BufferDestroy
    - strlen
    - feof
    - safe_fopen
    - xmalloc
    - Log
    - S_ISREG
    - BufferClear
    - BufferSize
    - BufferNew
    - free
    - fclose
    - CfReadLine
    linkageType: ''
    returnType: bool
    signature: bool LoadFileAsItemList(Item **liststart, const char *file, EditDefaults
      edits, bool only_checks)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DirOpen
      Src: /src/core/libpromises/files_lib.c:510,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:518,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:519,1
    - Dst: DirRead
      Src: /src/core/libpromises/files_lib.c:524,1
    - Dst: DirRead
      Src: /src/core/libpromises/files_lib.c:524,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_lib.c:526,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_lib.c:526,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:532,1
    - Dst: lstat
      Src: /src/core/libpromises/files_lib.c:535,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:543,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:544,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_lib.c:549,1
    - Dst: TraverseDirectoryTreeInternal
      Src: /src/core/libpromises/files_lib.c:551,1
    - Dst: callback
      Src: /src/core/libpromises/files_lib.c:558,1
    - Dst: DirClose
      Src: /src/core/libpromises/files_lib.c:566,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - base_path
    - current_path
    - user_data
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 505
    functionDepth: 8
    functionLinenumber: 505
    functionLinenumberEnd: 568
    functionName: TraverseDirectoryTreeInternal
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - snprintf
    - callback
    - DirRead
    - DirOpen
    - S_ISDIR
    - Log
    - strcmp
    - lstat
    - DirClose
    - TraverseDirectoryTreeInternal
    linkageType: ''
    returnType: bool
    signature: "bool TraverseDirectoryTreeInternal(const char *base_path,\n                                   const
      char *current_path,\n                                   int (*callback)(const
      char *, const struct stat *, void *),\n                                   void
      *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TraverseDirectoryTreeInternal
      Src: /src/core/libpromises/files_lib.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - user_data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 9
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: TraverseDirectoryTree
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 0
    functionsReached:
    - TraverseDirectoryTreeInternal
    linkageType: ''
    returnType: bool
    signature: "bool TraverseDirectoryTree(const char *path,\n                           int
      (*callback)(const char *, const struct stat *, void *),\n                           void
      *user_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringEndsWith
      Src: /src/core/libpromises/files_lib.c:591,1
    - Dst: fopen
      Src: /src/core/libpromises/files_lib.c:603,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:606,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:606,1
    - Dst: fread
      Src: /src/core/libpromises/files_lib.c:612,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/files_lib.c:614,1
    - Dst: fclose
      Src: /src/core/libpromises/files_lib.c:617,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - filename
    - sb
    - user_data
    argTypes:
    - char*
    - ARG_UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 585
    functionDepth: 8
    functionLinenumber: 585
    functionLinenumberEnd: 619
    functionName: HashDirectoryTreeCallback
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fopen
    - EVP_DigestUpdate
    - fread
    - StringEndsWith
    - Log
    - fclose
    linkageType: ''
    returnType: int
    signature: int HashDirectoryTreeCallback(const char *filename, ARG_UNUSED const
      struct stat *sb, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/files_lib.c:626,1
    - Dst: TraverseDirectoryTree
      Src: /src/core/libpromises/files_lib.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - path
    - extensions_filter
    - crypto_context
    argTypes:
    - char*
    - char**
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 621
    functionDepth: 10
    functionLinenumber: 621
    functionLinenumberEnd: 631
    functionName: HashDirectoryTree
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 0
    functionsReached:
    - TraverseDirectoryTree
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool HashDirectoryTree(const char *path,\n                       const
      char **extensions_filter,\n                       EVP_MD_CTX *crypto_context)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: IsItemIn
      Src: /src/core/libpromises/files_lib.c:639,1
    - Dst: PrependItem
      Src: /src/core/libpromises/files_lib.c:644,1
    - Dst: stat
      Src: /src/core/libpromises/files_lib.c:646,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:648,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:654,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:655,1
    - Dst: rename
      Src: /src/core/libpromises/files_lib.c:657,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:659,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:662,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:663,1
    - Dst: rename
      Src: /src/core/libpromises/files_lib.c:665,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:667,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:670,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:671,1
    - Dst: rename
      Src: /src/core/libpromises/files_lib.c:673,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:675,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:678,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:679,1
    - Dst: rename
      Src: /src/core/libpromises/files_lib.c:681,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:683,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:686,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:687,1
    - Dst: rename
      Src: /src/core/libpromises/files_lib.c:689,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:691,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_lib.c:695,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/libpromises/files_lib.c:697,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:699,1
    - Dst: safe_chmod
      Src: /src/core/libpromises/files_lib.c:703,1
    - Dst: safe_chown
      Src: /src/core/libpromises/files_lib.c:704,1
    - Dst: UnexpectedError
      Src: /src/core/libpromises/files_lib.c:706,1
    - Dst: safe_chmod
      Src: /src/core/libpromises/files_lib.c:708,1
    - Dst: safe_creat
      Src: /src/core/libpromises/files_lib.c:710,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:712,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:713,1
    - Dst: safe_chown
      Src: /src/core/libpromises/files_lib.c:717,1
    - Dst: UnexpectedError
      Src: /src/core/libpromises/files_lib.c:719,1
    - Dst: fchmod
      Src: /src/core/libpromises/files_lib.c:721,1
    - Dst: close
      Src: /src/core/libpromises/files_lib.c:722,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 2
    argNames:
    - name
    - number
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 633
    functionDepth: 10
    functionLinenumber: 633
    functionLinenumberEnd: 724
    functionName: RotateFiles
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - stat
    - safe_creat
    - IsItemIn
    - snprintf
    - CopyRegularFileDisk
    - fchmod
    - safe_chmod
    - UnexpectedError
    - safe_chown
    - Log
    - PrependItem
    - rename
    - close
    linkageType: ''
    returnType: void
    signature: void RotateFiles(const char *name, int number)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/core/libpromises/files_lib.c:730,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:734,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:734,1
    - Dst: safe_open
      Src: /src/core/libpromises/files_lib.c:738,1
    - Dst: Log
      Src: /src/core/libpromises/files_lib.c:741,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_lib.c:741,1
    - Dst: close
      Src: /src/core/libpromises/files_lib.c:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 728
    functionDepth: 8
    functionLinenumber: 728
    functionLinenumberEnd: 745
    functionName: CreateEmptyFile
    functionSourceFile: /src/core/libpromises/files_lib.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - unlink
    - safe_open
    - Log
    - close
    linkageType: ''
    returnType: void
    signature: void CreateEmptyFile(char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RvalDestroy
      Src: /src/core/libpromises/eval_context.c:79,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: RvalDestroy2
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - free
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void RvalDestroy2(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqDestroy
      Src: /src/core/libpromises/eval_context.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: SeqDestroy_untyped
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    linkageType: ''
    returnType: void
    signature: void SeqDestroy_untyped(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - config
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: EvalContextSetConfig
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void EvalContextSetConfig(EvalContext *ctx, const GenericAgentConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: EvalContextGetConfig
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *EvalContextGetConfig(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: EvalContextGetSelectEndMatchEof
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EvalContextGetSelectEndMatchEof(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - EvalContext*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: EvalContextSetSelectEndMatchEof
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EvalContextSetSelectEndMatchEof(EvalContext *ctx, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: EvalContextGetRestrictKeys
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Rlist
    signature: Rlist *EvalContextGetRestrictKeys(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:237,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/eval_context.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - restrict_keys
    argTypes:
    - EvalContext*
    - Rlist*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: EvalContextSetRestrictKeys
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - RlistCopy
    linkageType: ''
    returnType: void
    signature: void EvalContextSetRestrictKeys(EvalContext *ctx, const Rlist *restrict_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:243,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:244,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:246,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/eval_context.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - EvalContext*
    - char*
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/core/libpromises/eval_context.c
    - condition: (ctx->package_promise_context)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: AddDefaultPackageModuleToContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    - SafeStringDuplicate
    - free
    linkageType: ''
    returnType: void
    signature: void AddDefaultPackageModuleToContext(const EvalContext *ctx, char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:253,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:254,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/eval_context.c:256,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/eval_context.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - inventory
    argTypes:
    - EvalContext*
    - Rlist*
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/core/libpromises/eval_context.c
    - condition: (ctx->package_promise_context)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: AddDefaultInventoryToContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - RlistCopy
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void AddDefaultInventoryToContext(const EvalContext *ctx, Rlist *inventory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSafeCompare
      Src: /src/core/libpromises/eval_context.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - data
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: PackageManagerSeqCompare
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StringSafeCompare
    linkageType: ''
    returnType: int
    signature: int PackageManagerSeqCompare(const void *a, const void *b, ARG_UNUSED
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:269,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:270,1
    - Dst: SeqIndexOf
      Src: /src/core/libpromises/eval_context.c:275,1
    - Dst: SeqRemove
      Src: /src/core/libpromises/eval_context.c:278,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/eval_context.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - pm
    argTypes:
    - EvalContext*
    - PackageModuleBody*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/core/libpromises/eval_context.c
    - condition: (pm != NULL)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: AddPackageModuleToContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - SeqIndexOf
    - assert
    - SeqRemove
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void AddPackageModuleToContext(const EvalContext *ctx, PackageModuleBody
      *pm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:292,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:296,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 303
    functionName: GetPackageModuleFromContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - strcmp
    - SeqAt
    linkageType: ''
    returnType: PackageModuleBody
    signature: "PackageModuleBody *GetPackageModuleFromContext(const EvalContext *ctx,\n
      \       const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPackageModuleFromContext
      Src: /src/core/libpromises/eval_context.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: GetDefaultPackageModuleFromContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - GetPackageModuleFromContext
    linkageType: ''
    returnType: PackageModuleBody
    signature: PackageModuleBody *GetDefaultPackageModuleFromContext(const EvalContext
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: GetDefaultInventoryFromContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Rlist
    signature: Rlist *GetDefaultInventoryFromContext(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: GetPackagePromiseContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PackagePromiseContext
    signature: PackagePromiseContext *GetPackagePromiseContext(const EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:324,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:328,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - offset
    argTypes:
    - EvalContext*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: LastStackFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: StackFrame
    signature: StackFrame *LastStackFrame(const EvalContext *ctx, size_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:333,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - EvalContext*
    - StackFrameType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 343
    functionName: LastStackFrameByType
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - LastStackFrame
    linkageType: ''
    returnType: StackFrame
    signature: StackFrame *LastStackFrameByType(const EvalContext *ctx, StackFrameType
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:347,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:348,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 358
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 358
    functionName: LastStackFrameByEvent
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - LastStackFrame
    linkageType: ''
    returnType: StackFrame
    signature: StackFrame *LastStackFrameByEvent(const EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/core/libpromises/eval_context.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - base
    - adjust
    argTypes:
    - LogLevel
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 370
    functionName: AdjustLogLevel
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - MAX
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel AdjustLogLevel(LogLevel base, LogLevel adjust)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:376,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:380,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 390
    functionName: StringToLogLevel
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel StringToLogLevel(const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringToLogLevel
      Src: /src/core/libpromises/eval_context.c:394,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/eval_context.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pp
    - attr_name
    argTypes:
    - Promise*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: GetLevelForPromise
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StringToLogLevel
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel GetLevelForPromise(const Promise *pp, const char *attr_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/eval_context.c:399,1
    - Dst: LogGetGlobalSystemLogLevel
      Src: /src/core/libpromises/eval_context.c:400,1
    - Dst: AdjustLogLevel
      Src: /src/core/libpromises/eval_context.c:407,1
    - Dst: GetLevelForPromise
      Src: /src/core/libpromises/eval_context.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 417
    functionName: CalculateLogLevel
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - LogGetGlobalSystemLogLevel
    - LogGetGlobalLevel
    - GetLevelForPromise
    - AdjustLogLevel
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel CalculateLogLevel(const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/eval_context.c:421,1
    - Dst: AdjustLogLevel
      Src: /src/core/libpromises/eval_context.c:425,1
    - Dst: GetLevelForPromise
      Src: /src/core/libpromises/eval_context.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 429
    functionName: CalculateReportLevel
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - LogGetGlobalLevel
    - GetLevelForPromise
    - AdjustLogLevel
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel CalculateReportLevel(const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 439
    functionName: EvalContextStackToString
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - LastStackFrame
    linkageType: ''
    returnType: char
    signature: char *EvalContextStackToString(EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/eval_context.c:445,1
    - Dst: EvalContextClassMatch
      Src: /src/core/libpromises/eval_context.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 457
    functionName: GetAgentAbortingContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - EvalContextClassMatch
    - IsDefinedClass
    linkageType: ''
    returnType: char
    signature: char *GetAgentAbortingContext(const EvalContext *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:461,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:461,1
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:465,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:468,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:474,1
    - Dst: snprintf
      Src: /src/core/libpromises/eval_context.c:476,1
    - Dst: strlcpy
      Src: /src/core/libpromises/eval_context.c:480,1
    - Dst: Chop
      Src: /src/core/libpromises/eval_context.c:483,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:485,1
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:488,1
    - Dst: EvalContextHeapContainsSoft
      Src: /src/core/libpromises/eval_context.c:493,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:495,1
    - Dst: IsRegexItemIn
      Src: /src/core/libpromises/eval_context.c:499,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:501,1
    - Dst: SetBundleAborted
      Src: /src/core/libpromises/eval_context.c:502,1
    - Dst: IsRegexItemIn
      Src: /src/core/libpromises/eval_context.c:505,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:507,1
    - Dst: SetEvalAborted
      Src: /src/core/libpromises/eval_context.c:508,1
    - Dst: EvalContextStackFrameContainsSoft
      Src: /src/core/libpromises/eval_context.c:511,1
    - Dst: ClassTablePut
      Src: /src/core/libpromises/eval_context.c:516,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/eval_context.c:518,1
    - Dst: StringSetFromString
      Src: /src/core/libpromises/eval_context.c:518,1
    - Dst: BundleAborted
      Src: /src/core/libpromises/eval_context.c:521,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/eval_context.c:525,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:527,1
    - Dst: SetBundleAborted
      Src: /src/core/libpromises/eval_context.c:528,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - ctx
    - context
    - tags
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts:
    - condition: (SeqLength(ctx->stack) > 0)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 533
      start: 459
    functionDepth: 8
    functionLinenumber: 459
    functionLinenumberEnd: 533
    functionName: EvalContextStackFrameAddSoft
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - SetEvalAborted
    - SetBundleAborted
    - BundleAborted
    - ClassTablePut
    - Log
    - SeqLength
    - EvalContextStackFrameContainsSoft
    - LastStackFrameByType
    - strlcpy
    - snprintf
    - strlen
    - IsDefinedClass
    - strcmp
    - IsRegexItemIn
    - Chop
    - NULL_OR_EMPTY
    - assert
    - StringSetFromString
    - EvalContextHeapContainsSoft
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void EvalContextStackFrameAddSoft(EvalContext *ctx, const char *context,
      const char *tags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ClassRefParse
      Src: /src/core/libpromises/eval_context.c:538,1
    - Dst: ClassRefIsQualified
      Src: /src/core/libpromises/eval_context.c:539,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:541,1
    - Dst: NamespaceDefault
      Src: /src/core/libpromises/eval_context.c:541,1
    - Dst: EvalContextHeapContainsHard
      Src: /src/core/libpromises/eval_context.c:543,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/eval_context.c:545,1
    - Dst: EvalContextHeapContainsHard
      Src: /src/core/libpromises/eval_context.c:552,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/eval_context.c:554,1
    - Dst: EvalContextCurrentNamespace
      Src: /src/core/libpromises/eval_context.c:558,1
    - Dst: ClassRefQualify
      Src: /src/core/libpromises/eval_context.c:561,1
    - Dst: ClassRefQualify
      Src: /src/core/libpromises/eval_context.c:565,1
    - Dst: NamespaceDefault
      Src: /src/core/libpromises/eval_context.c:565,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:569,1
    - Dst: ClassRefIsQualified
      Src: /src/core/libpromises/eval_context.c:569,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:570,1
    - Dst: EvalContextHeapContainsSoft
      Src: /src/core/libpromises/eval_context.c:571,1
    - Dst: EvalContextStackFrameContainsSoft
      Src: /src/core/libpromises/eval_context.c:572,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/eval_context.c:574,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - classname
    - param
    argTypes:
    - char*
    - void*
    assertStmts:
    - condition: (ClassRefIsQualified(ref))
      pos:
        line_end: 568
        line_start: 568
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 576
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 576
    functionName: EvalTokenAsClass
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - NamespaceDefault
    - ClassRefIsQualified
    - ClassRefDestroy
    - ClassRefParse
    - assert
    - EvalContextCurrentNamespace
    - EvalContextHeapContainsSoft
    - EvalContextHeapContainsHard
    - strcmp
    - EvalContextStackFrameContainsSoft
    - ClassRefQualify
    linkageType: ''
    returnType: ExpressionValue
    signature: ExpressionValue EvalTokenAsClass(const char *classname, void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - varname
    - VarRefType
    - param
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 588
    functionName: EvalVarRef
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EvalVarRef(ARG_UNUSED const char *varname, ARG_UNUSED VarRefType
      type, ARG_UNUSED void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: ClassCharIsWhitespace
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ClassCharIsWhitespace(char ch)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:599,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/eval_context.c:610,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:615,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/eval_context.c:619,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:621,1
    - Dst: BufferNewFrom
      Src: /src/core/libpromises/eval_context.c:625,1
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:625,1
    - Dst: BufferRewrite
      Src: /src/core/libpromises/eval_context.c:626,1
    - Dst: ParseExpression
      Src: /src/core/libpromises/eval_context.c:627,1
    - Dst: BufferData
      Src: /src/core/libpromises/eval_context.c:627,1
    - Dst: BufferSize
      Src: /src/core/libpromises/eval_context.c:627,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/eval_context.c:628,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:632,1
    - Dst: EvalExpression
      Src: /src/core/libpromises/eval_context.c:637,1
    - Dst: FreeExpression
      Src: /src/core/libpromises/eval_context.c:641,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ctx
    - context
    argTypes:
    - EvalContext*
    - char*
    assertStmts:
    - condition: (context != NULL)
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 644
      start: 597
    functionDepth: 8
    functionLinenumber: 597
    functionLinenumberEnd: 644
    functionName: CheckClassExpression
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - BufferData
    - BufferDestroy
    - BufferNewFrom
    - strlen
    - assert
    - EvalExpression
    - BufferRewrite
    - FreeExpression
    - CompileRegex
    - StringMatchFullWithPrecompiledRegex
    - Log
    - BufferSize
    - ParseExpression
    linkageType: ''
    returnType: ExpressionValue
    signature: ExpressionValue CheckClassExpression(const EvalContext *ctx, const
      char *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetContains
      Src: /src/core/libpromises/eval_context.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - token
    - param
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: EvalTokenFromList
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StringSetContains
    linkageType: ''
    returnType: ExpressionValue
    signature: ExpressionValue EvalTokenFromList(const char *token, void *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ParseExpression
      Src: /src/core/libpromises/eval_context.c:658,1
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:658,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:662,1
    - Dst: EvalExpression
      Src: /src/core/libpromises/eval_context.c:667,1
    - Dst: FreeExpression
      Src: /src/core/libpromises/eval_context.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - expr
    - token_set
    argTypes:
    - char*
    - StringSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 656
    functionDepth: 8
    functionLinenumber: 656
    functionLinenumberEnd: 677
    functionName: EvalWithTokenFromList
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - strlen
    - EvalExpression
    - FreeExpression
    - Log
    - ParseExpression
    linkageType: ''
    returnType: bool
    signature: bool EvalWithTokenFromList(const char *expr, StringSet *token_set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:685,1
    - Dst: StringEqual
      Src: /src/core/libpromises/eval_context.c:686,1
    - Dst: EvalWithTokenFromList
      Src: /src/core/libpromises/eval_context.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - process_result
    - proc_attr
    argTypes:
    - char*
    - StringSet*
    assertStmts:
    - condition: (process_result != NULL)
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 692
      start: 683
    functionDepth: 9
    functionLinenumber: 683
    functionLinenumberEnd: 692
    functionName: EvalProcessResult
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - EvalWithTokenFromList
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool EvalProcessResult(const char *process_result, StringSet *proc_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalWithTokenFromList
      Src: /src/core/libpromises/eval_context.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file_result
    - leaf_attr
    argTypes:
    - char*
    - StringSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 9
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: EvalFileResult
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - EvalWithTokenFromList
    linkageType: ''
    returnType: bool
    signature: bool EvalFileResult(const char *file_result, StringSet *leaf_attr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:709,1
    - Dst: time
      Src: /src/core/libpromises/eval_context.c:711,1
    - Dst: OpenDB
      Src: /src/core/libpromises/eval_context.c:714,1
    - Dst: DBIdToPath
      Src: /src/core/libpromises/eval_context.c:716,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:717,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/eval_context.c:718,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:719,1
    - Dst: IDRefQualify
      Src: /src/core/libpromises/eval_context.c:723,1
    - Dst: ClassRefToString
      Src: /src/core/libpromises/eval_context.c:724,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/eval_context.c:725,1
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:727,1
    - Dst: xcalloc
      Src: /src/core/libpromises/eval_context.c:730,1
    - Dst: strlcpy
      Src: /src/core/libpromises/eval_context.c:734,1
    - Dst: ValueSizeDB
      Src: /src/core/libpromises/eval_context.c:738,1
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:738,1
    - Dst: xcalloc
      Src: /src/core/libpromises/eval_context.c:741,1
    - Dst: ReadDB
      Src: /src/core/libpromises/eval_context.c:742,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:746,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:748,1
    - Dst: CloseDB
      Src: /src/core/libpromises/eval_context.c:750,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:751,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:752,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:753,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:758,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:764,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:771,1
    - Dst: CloseDB
      Src: /src/core/libpromises/eval_context.c:772,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:773,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:774,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:775,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:778,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:782,1
    - Dst: WriteDB
      Src: /src/core/libpromises/eval_context.c:789,1
    - Dst: CloseDB
      Src: /src/core/libpromises/eval_context.c:791,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:792,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 5
    argNames:
    - ctx
    - name
    - ttl_minutes
    - policy
    - tags
    argTypes:
    - EvalContext*
    - char*
    - unsigned int
    - PersistentClassPolicy
    - char*
    assertStmts:
    - condition: (tags)
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 794
      start: 706
    functionDepth: 8
    functionLinenumber: 706
    functionLinenumberEnd: 794
    functionName: EvalContextHeapPersistentSave
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 3
    functionsReached:
    - GetErrorStr
    - xcalloc
    - ClassRefDestroy
    - strlen
    - assert
    - OpenDB
    - ClassRefToString
    - WriteDB
    - Log
    - ReadDB
    - IDRefQualify
    - strcmp
    - CloseDB
    - free
    - ValueSizeDB
    - strlcpy
    - time
    - DBIdToPath
    linkageType: ''
    returnType: void
    signature: "void EvalContextHeapPersistentSave(EvalContext *ctx, const char *name,
      unsigned int ttl_minutes,\n                                   PersistentClassPolicy
      policy, const char *tags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/eval_context.c:802,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/eval_context.c:807,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:808,1
    - Dst: CloseDB
      Src: /src/core/libpromises/eval_context.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 798
    functionDepth: 8
    functionLinenumber: 798
    functionLinenumberEnd: 810
    functionName: EvalContextHeapPersistentRemove
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - Log
    - OpenDB
    - DeleteDB
    - CloseDB
    linkageType: ''
    returnType: void
    signature: void EvalContextHeapPersistentRemove(const char *context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:816,1
    - Dst: time
      Src: /src/core/libpromises/eval_context.c:818,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:820,1
    - Dst: OpenDB
      Src: /src/core/libpromises/eval_context.c:823,1
    - Dst: NewDBCursor
      Src: /src/core/libpromises/eval_context.c:829,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:831,1
    - Dst: NextDB
      Src: /src/core/libpromises/eval_context.c:840,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:842,1
    - Dst: memcpy
      Src: /src/core/libpromises/eval_context.c:847,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:863,1
    - Dst: DBCursorDeleteEntry
      Src: /src/core/libpromises/eval_context.c:864,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:868,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/eval_context.c:870,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:872,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:877,1
    - Dst: ClassRefParse
      Src: /src/core/libpromises/eval_context.c:879,1
    - Dst: EvalContextClassPut
      Src: /src/core/libpromises/eval_context.c:880,1
    - Dst: EvalContextClassTags
      Src: /src/core/libpromises/eval_context.c:882,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:883,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/eval_context.c:885,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:885,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/eval_context.c:887,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/eval_context.c:892,1
    - Dst: CloseDB
      Src: /src/core/libpromises/eval_context.c:893,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 815
        line_start: 815
        source_file: /src/core/libpromises/eval_context.c
    - condition: (tag_set)
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 894
      start: 814
    functionDepth: 8
    functionLinenumber: 814
    functionLinenumberEnd: 894
    functionName: EvalContextHeapPersistentLoadAll
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - memcpy
    - ClassRefDestroy
    - NewDBCursor
    - EvalContextClassTags
    - assert
    - OpenDB
    - StringSetContains
    - ClassRefParse
    - DeleteDBCursor
    - EvalContextClassPut
    - Log
    - xstrdup
    - CloseDB
    - NextDB
    - DBCursorDeleteEntry
    - time
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void EvalContextHeapPersistentLoadAll(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - negated_classes
    argTypes:
    - EvalContext*
    - StringSet*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 900
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 900
    functionName: EvalContextSetNegatedClasses
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void EvalContextSetNegatedClasses(EvalContext *ctx, StringSet *negated_classes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 913
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 913
    functionName: BundleAbort
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool BundleAbort(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 919
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 919
    functionName: BundleAborted
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool BundleAborted(const EvalContext* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 922
        line_start: 922
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 925
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 925
    functionName: SetBundleAborted
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void SetBundleAborted(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 928
        line_start: 928
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 931
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 931
    functionName: SetEvalAborted
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void SetEvalAborted(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 937
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 937
    functionName: EvalAborted
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool EvalAborted(const EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:941,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/eval_context.c:942,1
    - Dst: AppendItem
      Src: /src/core/libpromises/eval_context.c:944,1
    - Dst: GetAgentAbortingContext
      Src: /src/core/libpromises/eval_context.c:947,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:951,1
    - Dst: SetEvalAborted
      Src: /src/core/libpromises/eval_context.c:952,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - context
    - activated_on_context
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 940
        line_start: 940
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 954
      start: 939
    functionDepth: 8
    functionLinenumber: 939
    functionLinenumberEnd: 954
    functionName: EvalContextHeapAddAbort
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - SetEvalAborted
    - IsItemIn
    - assert
    - GetAgentAbortingContext
    - Log
    linkageType: ''
    returnType: void
    signature: void EvalContextHeapAddAbort(EvalContext *ctx, const char *context,
      const char *activated_on_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:958,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/eval_context.c:959,1
    - Dst: AppendItem
      Src: /src/core/libpromises/eval_context.c:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - context
    - activated_on_context
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 957
        line_start: 957
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 963
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 963
    functionName: EvalContextHeapAddAbortCurrentBundle
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - assert
    - IsItemIn
    linkageType: ''
    returnType: void
    signature: void EvalContextHeapAddAbortCurrentBundle(EvalContext *ctx, const char
      *context, const char *activated_on_context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:969,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/eval_context.c:970,1
    - Dst: RlistIsNullList
      Src: /src/core/libpromises/eval_context.c:971,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/eval_context.c:976,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/eval_context.c:983,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/eval_context.c:983,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:985,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/eval_context.c:986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 968
        line_start: 968
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 992
      start: 967
    functionDepth: 8
    functionLinenumber: 967
    functionLinenumberEnd: 992
    functionName: MissingDependencies
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - StringSetContains
    - assert
    - Log
    - RlistScalarValue
    - PromiseGetConstraintAsList
    - RlistIsNullList
    linkageType: ''
    returnType: bool
    signature: bool MissingDependencies(EvalContext *ctx, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableDestroy
      Src: /src/core/libpromises/eval_context.c:996,1
    - Dst: VariableTableDestroy
      Src: /src/core/libpromises/eval_context.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - StackFrameBundle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 998
    functionName: StackFrameBundleDestroy
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - VariableTableDestroy
    - ClassTableDestroy
    linkageType: ''
    returnType: void
    signature: void StackFrameBundleDestroy(StackFrameBundle frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VariableTableDestroy
      Src: /src/core/libpromises/eval_context.c:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - StackFrameBody
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1003
    functionName: StackFrameBodyDestroy
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - VariableTableDestroy
    linkageType: ''
    returnType: void
    signature: void StackFrameBodyDestroy(ARG_UNUSED StackFrameBody frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VariableTableDestroy
      Src: /src/core/libpromises/eval_context.c:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - StackFramePromise
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1008
    functionName: StackFramePromiseDestroy
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - VariableTableDestroy
    linkageType: ''
    returnType: void
    signature: void StackFramePromiseDestroy(StackFramePromise frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseDestroy
      Src: /src/core/libpromises/eval_context.c:1012,1
    - Dst: RingBufferDestroy
      Src: /src/core/libpromises/eval_context.c:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - StackFramePromiseIteration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1014
    functionName: StackFramePromiseIterationDestroy
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - RingBufferDestroy
    - PromiseDestroy
    linkageType: ''
    returnType: void
    signature: void StackFramePromiseIterationDestroy(StackFramePromiseIteration frame)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: StackFrameBundleDestroy
      Src: /src/core/libpromises/eval_context.c:1023,1
    - Dst: StackFrameBodyDestroy
      Src: /src/core/libpromises/eval_context.c:1027,1
    - Dst: StackFramePromiseDestroy
      Src: /src/core/libpromises/eval_context.c:1034,1
    - Dst: StackFramePromiseIterationDestroy
      Src: /src/core/libpromises/eval_context.c:1038,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:1042,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1045,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1046,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - frame
    argTypes:
    - StackFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1048
    functionName: StackFrameDestroy
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StackFramePromiseDestroy
    - ProgrammingError
    - free
    - StackFramePromiseIterationDestroy
    - StackFrameBodyDestroy
    - StackFrameBundleDestroy
    linkageType: ''
    returnType: void
    signature: void StackFrameDestroy(StackFrame *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1053,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1055,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1056,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1057,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/eval_context.c:1058,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - manager
    argTypes:
    - PackageModuleBody*
    assertStmts:
    - condition: (manager != NULL)
      pos:
        line_end: 1052
        line_start: 1052
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 1060
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1060
    functionName: FreePackageManager
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - RlistDestroy
    - free
    linkageType: ''
    returnType: void
    signature: void FreePackageManager(PackageModuleBody *manager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/eval_context.c:1066,1
    - Dst: SeqNew
      Src: /src/core/libpromises/eval_context.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1073
    functionName: PackagePromiseConfigNew
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - SeqNew
    linkageType: ''
    returnType: PackagePromiseContext
    signature: PackagePromiseContext *PackagePromiseConfigNew()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqDestroy
      Src: /src/core/libpromises/eval_context.c:1078,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/eval_context.c:1079,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1080,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pp_ctx
    argTypes:
    - PackagePromiseContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1075
    functionDepth: 2
    functionLinenumber: 1075
    functionLinenumberEnd: 1082
    functionName: FreePackagePromiseContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - free
    - SeqDestroy
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void FreePackagePromiseContext(PackagePromiseContext *pp_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1091,1
    - Dst: RingBufferAppend
      Src: /src/core/libpromises/eval_context.c:1096,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:1096,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - pctx
    - level
    - message
    argTypes:
    - LoggingPrivContext*
    - LogLevel
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1099
    functionName: MissionPortalLogHook
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - LastStackFrame
    - RingBufferAppend
    linkageType: ''
    returnType: char
    signature: char *MissionPortalLogHook(LoggingPrivContext *pctx, LogLevel level,
      const char *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - EvalContext
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1104
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, EvalContextSetupMissionPortalLogHook,\n
      \                                     ARG_UNUSED EvalContext *, ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/eval_context.c:1108,1
    - Dst: SeqNew
      Src: /src/core/libpromises/eval_context.c:1111,1
    - Dst: ClassTableNew
      Src: /src/core/libpromises/eval_context.c:1112,1
    - Dst: VariableTableNew
      Src: /src/core/libpromises/eval_context.c:1113,1
    - Dst: VariableTableNew
      Src: /src/core/libpromises/eval_context.c:1114,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/eval_context.c:1115,1
    - Dst: getuid
      Src: /src/core/libpromises/eval_context.c:1117,1
    - Dst: getgid
      Src: /src/core/libpromises/eval_context.c:1118,1
    - Dst: getpid
      Src: /src/core/libpromises/eval_context.c:1119,1
    - Dst: getppid
      Src: /src/core/libpromises/eval_context.c:1122,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/eval_context.c:1125,1
    - Dst: FuncCacheMapNew
      Src: /src/core/libpromises/eval_context.c:1126,1
    - Dst: EvalContextSetupMissionPortalLogHook
      Src: /src/core/libpromises/eval_context.c:1128,1
    - Dst: PackagePromiseConfigNew
      Src: /src/core/libpromises/eval_context.c:1130,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/eval_context.c:1134,1
    - Dst: SeqNew
      Src: /src/core/libpromises/eval_context.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1149
    functionName: EvalContextNew
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 32
    functionsReached:
    - VariableTableNew
    - xcalloc
    - getpid
    - getgid
    - getppid
    - EvalContextSetupMissionPortalLogHook
    - getuid
    - SeqNew
    - ClassTableNew
    - FuncCacheMapNew
    - PackagePromiseConfigNew
    - StringSetNew
    linkageType: ''
    returnType: EvalContext
    signature: EvalContext *EvalContextNew(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1155,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1156,1
    - Dst: LoggingPrivGetContext
      Src: /src/core/libpromises/eval_context.c:1160,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1161,1
    - Dst: LoggingPrivSetContext
      Src: /src/core/libpromises/eval_context.c:1162,1
    - Dst: LoggingFreeCurrentThreadContext
      Src: /src/core/libpromises/eval_context.c:1164,1
    - Dst: EvalContextDeleteIpAddresses
      Src: /src/core/libpromises/eval_context.c:1166,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/eval_context.c:1168,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/eval_context.c:1169,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/eval_context.c:1171,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/eval_context.c:1173,1
    - Dst: ClassTableDestroy
      Src: /src/core/libpromises/eval_context.c:1175,1
    - Dst: VariableTableDestroy
      Src: /src/core/libpromises/eval_context.c:1176,1
    - Dst: VariableTableDestroy
      Src: /src/core/libpromises/eval_context.c:1177,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:1179,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:1180,1
    - Dst: FuncCacheMapDestroy
      Src: /src/core/libpromises/eval_context.c:1182,1
    - Dst: FreePackagePromiseContext
      Src: /src/core/libpromises/eval_context.c:1184,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:1186,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:1187,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:1188,1
    - Dst: RemoteVarPromisesMapDestroy
      Src: /src/core/libpromises/eval_context.c:1191,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/eval_context.c:1195,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1151
    functionDepth: 3
    functionLinenumber: 1151
    functionLinenumberEnd: 1198
    functionName: EvalContextDestroy
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 23
    functionsReached:
    - SeqDestroy
    - EvalContextDeleteIpAddresses
    - RemoteVarPromisesMapDestroy
    - StringSetDestroy
    - FuncCacheMapDestroy
    - LoggingPrivGetContext
    - LoggingPrivSetContext
    - RlistDestroy
    - LoggingFreeCurrentThreadContext
    - DeleteItemList
    - free
    - FreePackagePromiseContext
    - VariableTableDestroy
    - ClassTableDestroy
    linkageType: ''
    returnType: void
    signature: void EvalContextDestroy(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableGet
      Src: /src/core/libpromises/eval_context.c:1202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ns
    - name
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1204
    functionName: EvalContextHeapContainsSoft
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - ClassTableGet
    linkageType: ''
    returnType: bool
    signature: bool EvalContextHeapContainsSoft(const EvalContext *ctx, const char
      *ns, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableGet
      Src: /src/core/libpromises/eval_context.c:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1210
    functionName: EvalContextHeapContainsHard
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - ClassTableGet
    linkageType: ''
    returnType: bool
    signature: bool EvalContextHeapContainsHard(const EvalContext *ctx, const char
      *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:1214,1
    - Dst: ClassTableGet
      Src: /src/core/libpromises/eval_context.c:1215,1
    - Dst: StackFrameContainsSoftRecursive
      Src: /src/core/libpromises/eval_context.c:1221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - context
    - stack_index
    argTypes:
    - EvalContext*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1227
    functionName: StackFrameContainsSoftRecursive
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - StackFrameContainsSoftRecursive
    - ClassTableGet
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool StackFrameContainsSoftRecursive(const EvalContext *ctx, const
      char *context, size_t stack_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:1231,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:1236,1
    - Dst: StackFrameContainsSoftRecursive
      Src: /src/core/libpromises/eval_context.c:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - context
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1238
    functionName: EvalContextStackFrameContainsSoft
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - SeqLength
    - StackFrameContainsSoftRecursive
    linkageType: ''
    returnType: bool
    signature: bool EvalContextStackFrameContainsSoft(const EvalContext *ctx, const
      char *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableRemove
      Src: /src/core/libpromises/eval_context.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ns
    - name
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1243
    functionName: EvalContextHeapRemoveSoft
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - ClassTableRemove
    linkageType: ''
    returnType: bool
    signature: bool EvalContextHeapRemoveSoft(EvalContext *ctx, const char *ns, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableRemove
      Src: /src/core/libpromises/eval_context.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1248
    functionName: EvalContextHeapRemoveHard
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - ClassTableRemove
    linkageType: ''
    returnType: bool
    signature: bool EvalContextHeapRemoveHard(EvalContext *ctx, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableClear
      Src: /src/core/libpromises/eval_context.c:1252,1
    - Dst: EvalContextDeleteIpAddresses
      Src: /src/core/libpromises/eval_context.c:1253,1
    - Dst: VariableTableClear
      Src: /src/core/libpromises/eval_context.c:1254,1
    - Dst: VariableTableClear
      Src: /src/core/libpromises/eval_context.c:1255,1
    - Dst: StringSetClear
      Src: /src/core/libpromises/eval_context.c:1256,1
    - Dst: SeqClear
      Src: /src/core/libpromises/eval_context.c:1257,1
    - Dst: FuncCacheMapClear
      Src: /src/core/libpromises/eval_context.c:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1250
    functionDepth: 2
    functionLinenumber: 1250
    functionLinenumberEnd: 1259
    functionName: EvalContextClear
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - EvalContextDeleteIpAddresses
    - ClassTableClear
    - VariableTableClear
    - SeqClear
    - FuncCacheMapClear
    - StringSetClear
    linkageType: ''
    returnType: void
    signature: void EvalContextClear(EvalContext *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:1264,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:1266,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:1279,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/eval_context.c:1280,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:1288,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1292
    functionName: EvalContextGetPromiseCallerMethods
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - RlistAppendScalar
    - strcmp
    - ProgrammingError
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: Rlist
    signature: Rlist *EvalContextGetPromiseCallerMethods(EvalContext *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/eval_context.c:1295,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:1296,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:1300,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/eval_context.c:1301,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/eval_context.c:1302,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/eval_context.c:1303,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1308,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/eval_context.c:1309,1
    - Dst: BodyToJson
      Src: /src/core/libpromises/eval_context.c:1309,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1313,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/eval_context.c:1314,1
    - Dst: BundleToJson
      Src: /src/core/libpromises/eval_context.c:1314,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1318,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/eval_context.c:1319,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1324,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1325,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1326,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1327,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1328,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1333,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:1334,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:1338,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/eval_context.c:1341,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1345
    functionName: EvalContextGetPromiseCallers
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - JsonObjectAppendObject
    - BodyToJson
    - JsonObjectAppendInteger
    - BundleToJson
    - JsonArrayAppendObject
    - ProgrammingError
    - SeqLength
    - JsonObjectCreate
    - JsonArrayCreate
    - JsonObjectAppendString
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *EvalContextGetPromiseCallers(EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistDestroy
      Src: /src/core/libpromises/eval_context.c:1351,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/eval_context.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - args
    argTypes:
    - EvalContext*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1355
    functionName: EvalContextSetBundleArgs
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - RlistCopy
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void EvalContextSetBundleArgs(EvalContext *ctx, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1360
    functionName: EvalContextGetBundleArgs
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Rlist
    signature: Rlist *EvalContextGetBundleArgs(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pass
    argTypes:
    - EvalContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1365
    functionName: EvalContextSetPass
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EvalContextSetPass(EvalContext *ctx, int pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1370
    functionName: EvalContextGetPass
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EvalContextGetPass(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/eval_context.c:1374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - type
    - inherit_previous
    argTypes:
    - StackFrameType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1383
    functionName: StackFrameNew
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: StackFrame
    signature: StackFrame *StackFrameNew(StackFrameType type, bool inherit_previous)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackFrameNew
      Src: /src/core/libpromises/eval_context.c:1387,1
    - Dst: ClassTableNew
      Src: /src/core/libpromises/eval_context.c:1390,1
    - Dst: VariableTableNew
      Src: /src/core/libpromises/eval_context.c:1391,1
    - Dst: BundleToEventFrame
      Src: /src/core/libpromises/eval_context.c:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - owner
    - inherit_previous
    - profiling
    - calling_bundle
    - prev_event
    argTypes:
    - Bundle*
    - bool
    - bool
    - Bundle*
    - EventFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1396
    functionName: StackFrameNewBundle
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - VariableTableNew
    - ClassTableNew
    - BundleToEventFrame
    - StackFrameNew
    linkageType: ''
    returnType: StackFrame
    signature: StackFrame *StackFrameNewBundle(const Bundle *owner, bool inherit_previous,
      bool profiling, const Bundle *calling_bundle, EventFrame *prev_event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackFrameNew
      Src: /src/core/libpromises/eval_context.c:1400,1
    - Dst: VariableTableNew
      Src: /src/core/libpromises/eval_context.c:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - owner
    argTypes:
    - Body*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1406
    functionName: StackFrameNewBody
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - VariableTableNew
    - StackFrameNew
    linkageType: ''
    returnType: StackFrame
    signature: StackFrame *StackFrameNewBody(const Body *owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackFrameNew
      Src: /src/core/libpromises/eval_context.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - owner
    argTypes:
    - BundleSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1415
    functionName: StackFrameNewBundleSection
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StackFrameNew
    linkageType: ''
    returnType: StackFrame
    signature: StackFrame *StackFrameNewBundleSection(const BundleSection *owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackFrameNew
      Src: /src/core/libpromises/eval_context.c:1419,1
    - Dst: PromiseToEventFrame
      Src: /src/core/libpromises/eval_context.c:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - owner
    - profiling
    - prev_event
    argTypes:
    - Promise*
    - bool
    - EventFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1425
    functionName: StackFrameNewPromise
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StackFrameNew
    - PromiseToEventFrame
    linkageType: ''
    returnType: StackFrame
    signature: StackFrame *StackFrameNewPromise(const Promise *owner, bool profiling,
      EventFrame *prev_event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StackFrameNew
      Src: /src/core/libpromises/eval_context.c:1429,1
    - Dst: RingBufferNew
      Src: /src/core/libpromises/eval_context.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - owner
    - iter_ctx
    argTypes:
    - Promise*
    - PromiseIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1436
    functionName: StackFrameNewPromiseIteration
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - RingBufferNew
    - StackFrameNew
    linkageType: ''
    returnType: StackFrame
    signature: StackFrame *StackFrameNewPromiseIteration(Promise *owner, const PromiseIterator
      *iter_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1440,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1441,1
    - Dst: ClassTableRemove
      Src: /src/core/libpromises/eval_context.c:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - context
    argTypes:
    - EvalContext*
    - char*
    assertStmts:
    - condition: (frame)
      pos:
        line_end: 1440
        line_start: 1440
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 1444
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1444
    functionName: EvalContextStackFrameRemoveSoft
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - ClassTableRemove
    - LastStackFrameByType
    linkageType: ''
    returnType: void
    signature: void EvalContextStackFrameRemoveSoft(EvalContext *ctx, const char *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1448,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/eval_context.c:1453,1
    - Dst: LogGetGlobalSystemLogLevel
      Src: /src/core/libpromises/eval_context.c:1454,1
    - Dst: LoggingPrivSetLevels
      Src: /src/core/libpromises/eval_context.c:1455,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/eval_context.c:1460,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1462,1
    - Dst: EvalContextStackPath
      Src: /src/core/libpromises/eval_context.c:1463,1
    - Dst: LogDebug
      Src: /src/core/libpromises/eval_context.c:1465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - frame
    argTypes:
    - EvalContext*
    - StackFrame*
    assertStmts:
    - condition: (!frame->path)
      pos:
        line_end: 1461
        line_start: 1461
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 1467
      start: 1446
    functionDepth: 8
    functionLinenumber: 1446
    functionLinenumberEnd: 1467
    functionName: EvalContextStackPushFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - LoggingPrivSetLevels
    - LogGetGlobalSystemLogLevel
    - LogDebug
    - LogGetGlobalLevel
    - EvalContextStackPath
    - LastStackFrame
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void EvalContextStackPushFrame(EvalContext *ctx, StackFrame *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1471,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1472,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1472,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1472,1
    - Dst: StackFrameNewBundle
      Src: /src/core/libpromises/eval_context.c:1474,1
    - Dst: EvalContextGetLastEventFrame
      Src: /src/core/libpromises/eval_context.c:1474,1
    - Dst: EvalContextStackPushFrame
      Src: /src/core/libpromises/eval_context.c:1475,1
    - Dst: RlistLen
      Src: /src/core/libpromises/eval_context.c:1477,1
    - Dst: EvalContextStackCurrentPromise
      Src: /src/core/libpromises/eval_context.c:1479,1
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1482,1
    - Dst: VariableTableClear
      Src: /src/core/libpromises/eval_context.c:1483,1
    - Dst: ScopeAugment
      Src: /src/core/libpromises/eval_context.c:1486,1
    - Dst: VariableTableIteratorNew
      Src: /src/core/libpromises/eval_context.c:1490,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/eval_context.c:1492,1
    - Dst: VariableGetRval
      Src: /src/core/libpromises/eval_context.c:1494,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/eval_context.c:1495,1
    - Dst: VariableSetRval
      Src: /src/core/libpromises/eval_context.c:1496,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/libpromises/eval_context.c:1498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - owner
    - args
    - inherits_previous
    - calling_bundle
    argTypes:
    - EvalContext*
    - Bundle*
    - Rlist*
    - bool
    - Bundle*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1470
        line_start: 1470
        source_file: /src/core/libpromises/eval_context.c
    - condition: (!LastStackFrame(ctx, 0) || LastStackFrame(ctx, 0)->type == STACK_FRAME_TYPE_PROMISE_ITERATION)
      pos:
        line_end: 1471
        line_start: 1471
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 1500
      start: 1469
    functionDepth: 9
    functionLinenumber: 1469
    functionLinenumberEnd: 1500
    functionName: EvalContextStackPushBundleFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 8
    functionsReached:
    - VariableSetRval
    - ExpandPrivateRval
    - StackFrameNewBundle
    - assert
    - VariableTableIteratorNew
    - EvalContextGetLastEventFrame
    - VariableTableClear
    - VariableGetRval
    - VariableTableIteratorDestroy
    - ScopeAugment
    - VariableTableIteratorNext
    - EvalContextStackPushFrame
    - EvalContextStackCurrentPromise
    - LastStackFrame
    - LastStackFrameByType
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void EvalContextStackPushBundleFrame(EvalContext *ctx, const Bundle
      *owner, const Rlist *args, bool inherits_previous, const Bundle *calling_bundle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1505,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1508,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1512,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:1512,1
    - Dst: EvalContextStackPushFrame
      Src: /src/core/libpromises/eval_context.c:1517,1
    - Dst: StackFrameNewBody
      Src: /src/core/libpromises/eval_context.c:1517,1
    - Dst: RlistLen
      Src: /src/core/libpromises/eval_context.c:1519,1
    - Dst: RlistLen
      Src: /src/core/libpromises/eval_context.c:1519,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:1523,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:1524,1
    - Dst: RlistLen
      Src: /src/core/libpromises/eval_context.c:1524,1
    - Dst: RlistLen
      Src: /src/core/libpromises/eval_context.c:1524,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1528,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:1528,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:1529,1
    - Dst: ScopeMapBodyArgs
      Src: /src/core/libpromises/eval_context.c:1535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - caller
    - body
    - args
    argTypes:
    - EvalContext*
    - Promise*
    - Body*
    - Rlist*
    assertStmts:
    - condition: (strcmp("control", body->name) == 0)
      pos:
        line_end: 1511
        line_start: 1511
        source_file: /src/core/libpromises/eval_context.c
    - condition: (last_frame->type == STACK_FRAME_TYPE_BUNDLE_SECTION)
      pos:
        line_end: 1507
        line_start: 1507
        source_file: /src/core/libpromises/eval_context.c
    - condition: (strcmp("control", body->name) == 0)
      pos:
        line_end: 1527
        line_start: 1527
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 1537
      start: 1502
    functionDepth: 9
    functionLinenumber: 1502
    functionLinenumberEnd: 1537
    functionName: EvalContextStackPushBodyFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - PromiseGetBundle
    - StackFrameNewBody
    - assert
    - Log
    - strcmp
    - ProgrammingError
    - EvalContextStackPushFrame
    - ScopeMapBodyArgs
    - LastStackFrame
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void EvalContextStackPushBodyFrame(EvalContext *ctx, const Promise
      *caller, const Body *body, const Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1541,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1541,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1541,1
    - Dst: StackFrameNewBundleSection
      Src: /src/core/libpromises/eval_context.c:1543,1
    - Dst: EvalContextStackPushFrame
      Src: /src/core/libpromises/eval_context.c:1544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - owner
    argTypes:
    - EvalContext*
    - BundleSection*
    assertStmts:
    - condition: (LastStackFrame(ctx, 0) && LastStackFrame(ctx, 0)->type == STACK_FRAME_TYPE_BUNDLE)
      pos:
        line_end: 1540
        line_start: 1540
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 1545
      start: 1539
    functionDepth: 9
    functionLinenumber: 1539
    functionLinenumberEnd: 1545
    functionName: EvalContextStackPushBundleSectionFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 5
    functionsReached:
    - EvalContextStackPushFrame
    - assert
    - LastStackFrame
    - StackFrameNewBundleSection
    linkageType: ''
    returnType: void
    signature: void EvalContextStackPushBundleSectionFrame(EvalContext *ctx, const
      BundleSection *owner)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1549,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1550,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1550,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1551,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1551,1
    - Dst: EvalContextVariableClearMatch
      Src: /src/core/libpromises/eval_context.c:1553,1
    - Dst: StackFrameNewPromise
      Src: /src/core/libpromises/eval_context.c:1555,1
    - Dst: EvalContextGetLastEventFrame
      Src: /src/core/libpromises/eval_context.c:1555,1
    - Dst: EvalContextStackPushFrame
      Src: /src/core/libpromises/eval_context.c:1556,1
    - Dst: VariableTableNew
      Src: /src/core/libpromises/eval_context.c:1559,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:1561,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/eval_context.c:1564,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:1564,1
    - Dst: snprintf
      Src: /src/core/libpromises/eval_context.c:1566,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:1566,1
    - Dst: strlcpy
      Src: /src/core/libpromises/eval_context.c:1570,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:1570,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1573,1
    - Dst: DeleteSlash
      Src: /src/core/libpromises/eval_context.c:1576,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/eval_context.c:1577,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1579,1
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/eval_context.c:1580,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/eval_context.c:1581,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1582,1
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/eval_context.c:1585,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/eval_context.c:1586,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1587,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/eval_context.c:1588,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1589,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/eval_context.c:1590,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1591,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/eval_context.c:1592,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1593,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1595,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:1595,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1596,1
    - Dst: PromiseGetNamespace
      Src: /src/core/libpromises/eval_context.c:1596,1
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1598,1
    - Dst: StringFormat
      Src: /src/core/libpromises/eval_context.c:1601,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1602,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1603,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:1607,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:1609,1
    - Dst: StringEqual
      Src: /src/core/libpromises/eval_context.c:1610,1
    - Dst: EvaluateFinalRval
      Src: /src/core/libpromises/eval_context.c:1612,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/eval_context.c:1612,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/eval_context.c:1615,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/eval_context.c:1615,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/eval_context.c:1615,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/eval_context.c:1617,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/eval_context.c:1617,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/eval_context.c:1619,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - ctx
    - owner
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1548
        line_start: 1548
        source_file: /src/core/libpromises/eval_context.c
    - condition: (LastStackFrame(ctx, 0)->type == STACK_FRAME_TYPE_BUNDLE_SECTION)
      pos:
        line_end: 1550
        line_start: 1550
        source_file: /src/core/libpromises/eval_context.c
    - condition: (LastStackFrame(ctx, 0))
      pos:
        line_end: 1549
        line_start: 1549
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 1622
      start: 1547
    functionDepth: 9
    functionLinenumber: 1547
    functionLinenumberEnd: 1622
    functionName: EvalContextStackPushPromiseFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - IsCf3VarString
    - IsAbsoluteFileName
    - SeqLength
    - free
    - LastStackFrameByType
    - strlcpy
    - StringEqual
    - RvalDestroy
    - snprintf
    - EvalContextVariableClearMatch
    - PromiseGetPolicy
    - StringFormat
    - StackFrameNewPromise
    - SeqAt
    - VariableTableNew
    - PromiseGetBundle
    - RvalScalarValue
    - assert
    - EvalContextStackPushFrame
    - EvaluateFinalRval
    - EvalContextGetPass
    - LastStackFrame
    - ChopLastNode
    - PRINTSIZE
    - DeleteSlash
    - PromiseGetNamespace
    - EvalContextGetLastEventFrame
    - xsnprintf
    - EvalContextVariablePutSpecial
    linkageType: ''
    returnType: void
    signature: void EvalContextStackPushPromiseFrame(EvalContext *ctx, const Promise
      *owner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1626,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1628,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1629,1
    - Dst: ExpandDeRefPromise
      Src: /src/core/libpromises/eval_context.c:1633,1
    - Dst: PromiseDestroy
      Src: /src/core/libpromises/eval_context.c:1637,1
    - Dst: EvalContextStackPushFrame
      Src: /src/core/libpromises/eval_context.c:1641,1
    - Dst: StackFrameNewPromiseIteration
      Src: /src/core/libpromises/eval_context.c:1641,1
    - Dst: LoggingPrivSetLevels
      Src: /src/core/libpromises/eval_context.c:1642,1
    - Dst: CalculateLogLevel
      Src: /src/core/libpromises/eval_context.c:1642,1
    - Dst: CalculateReportLevel
      Src: /src/core/libpromises/eval_context.c:1642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - iter_ctx
    argTypes:
    - EvalContext*
    - PromiseIterator*
    assertStmts:
    - condition: (last_frame       != NULL)
      pos:
        line_end: 1627
        line_start: 1627
        source_file: /src/core/libpromises/eval_context.c
    - condition: (last_frame->type == STACK_FRAME_TYPE_PROMISE)
      pos:
        line_end: 1628
        line_start: 1628
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 1645
      start: 1624
    functionDepth: 10
    functionLinenumber: 1624
    functionLinenumberEnd: 1645
    functionName: EvalContextStackPushPromiseIterationFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - ExpandDeRefPromise
    - CalculateLogLevel
    - assert
    - StackFrameNewPromiseIteration
    - LoggingPrivSetLevels
    - PromiseDestroy
    - EvalContextStackPushFrame
    - LastStackFrame
    - CalculateReportLevel
    linkageType: ''
    returnType: Promise
    signature: Promise *EvalContextStackPushPromiseIterationFrame(EvalContext *ctx,
      const PromiseIterator *iter_ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1649,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:1650,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:1650,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1652,1
    - Dst: EvalContextAppendEventFrame
      Src: /src/core/libpromises/eval_context.c:1658,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:1666,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:1666,1
    - Dst: VariableTableClear
      Src: /src/core/libpromises/eval_context.c:1668,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/eval_context.c:1675,1
    - Dst: LogGetGlobalSystemLogLevel
      Src: /src/core/libpromises/eval_context.c:1676,1
    - Dst: LoggingPrivSetLevels
      Src: /src/core/libpromises/eval_context.c:1677,1
    - Dst: SeqRemove
      Src: /src/core/libpromises/eval_context.c:1686,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:1686,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:1688,1
    - Dst: EvalContextStackCurrentPromise
      Src: /src/core/libpromises/eval_context.c:1693,1
    - Dst: LoggingPrivSetLevels
      Src: /src/core/libpromises/eval_context.c:1694,1
    - Dst: CalculateLogLevel
      Src: /src/core/libpromises/eval_context.c:1694,1
    - Dst: CalculateReportLevel
      Src: /src/core/libpromises/eval_context.c:1694,1
    - Dst: LogDebug
      Src: /src/core/libpromises/eval_context.c:1698,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 1648
        line_start: 1648
        source_file: /src/core/libpromises/eval_context.c
    - condition: (SeqLength(ctx->stack) > 0)
      pos:
        line_end: 1649
        line_start: 1649
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 1700
      start: 1647
    functionDepth: 8
    functionLinenumber: 1647
    functionLinenumberEnd: 1700
    functionName: EvalContextStackPopFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 9
    functionsReached:
    - CalculateLogLevel
    - EvalContextAppendEventFrame
    - assert
    - LoggingPrivSetLevels
    - LogGetGlobalSystemLogLevel
    - SeqRemove
    - LogDebug
    - VariableTableClear
    - LogGetGlobalLevel
    - strcmp
    - SeqLength
    - EvalContextStackCurrentPromise
    - LastStackFrame
    - CalculateReportLevel
    linkageType: ''
    returnType: void
    signature: void EvalContextStackPopFrame(EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:1704,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:1706,1
    - Dst: ClassTableRemove
      Src: /src/core/libpromises/eval_context.c:1712,1
    - Dst: ClassTableRemove
      Src: /src/core/libpromises/eval_context.c:1715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - ns
    - name
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1716
    functionName: EvalContextClassRemove
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - SeqLength
    - ClassTableRemove
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool EvalContextClassRemove(EvalContext *ctx, const char *ns, const
      char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1720,1
    - Dst: ClassTableGet
      Src: /src/core/libpromises/eval_context.c:1723,1
    - Dst: ClassTableGet
      Src: /src/core/libpromises/eval_context.c:1730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - ns
    - name
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1718
    functionDepth: 3
    functionLinenumber: 1718
    functionLinenumberEnd: 1731
    functionName: EvalContextClassGet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 6
    functionsReached:
    - LastStackFrameByType
    - ClassTableGet
    linkageType: ''
    returnType: Class
    signature: Class *EvalContextClassGet(const EvalContext *ctx, const char *ns,
      const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1735,1
    - Dst: ClassTableMatch
      Src: /src/core/libpromises/eval_context.c:1738,1
    - Dst: ClassTableMatch
      Src: /src/core/libpromises/eval_context.c:1745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - regex
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1733
    functionDepth: 3
    functionLinenumber: 1733
    functionLinenumberEnd: 1746
    functionName: EvalContextClassMatch
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - ClassTableMatch
    - LastStackFrameByType
    linkageType: ''
    returnType: Class
    signature: Class *EvalContextClassMatch(const EvalContext *ctx, const char *regex)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:1758,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:1760,1
    - Dst: strlcpy
      Src: /src/core/libpromises/eval_context.c:1765,1
    - Dst: Chop
      Src: /src/core/libpromises/eval_context.c:1767,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:1769,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/eval_context.c:1771,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:1773,1
    - Dst: snprintf
      Src: /src/core/libpromises/eval_context.c:1775,1
    - Dst: strlcpy
      Src: /src/core/libpromises/eval_context.c:1779,1
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:1782,1
    - Dst: IsRegexItemIn
      Src: /src/core/libpromises/eval_context.c:1787,1
    - Dst: EvalContextStackCurrentBundle
      Src: /src/core/libpromises/eval_context.c:1789,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:1792,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:1796,1
    - Dst: SetBundleAborted
      Src: /src/core/libpromises/eval_context.c:1798,1
    - Dst: IsRegexItemIn
      Src: /src/core/libpromises/eval_context.c:1801,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:1803,1
    - Dst: SetEvalAborted
      Src: /src/core/libpromises/eval_context.c:1804,1
    - Dst: EvalContextClassGet
      Src: /src/core/libpromises/eval_context.c:1808,1
    - Dst: Nova_ClassHistoryAddContextName
      Src: /src/core/libpromises/eval_context.c:1814,1
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1820,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:1823,1
    - Dst: ClassTablePut
      Src: /src/core/libpromises/eval_context.c:1825,1
    - Dst: ClassTablePut
      Src: /src/core/libpromises/eval_context.c:1830,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:1834,1
    - Dst: BundleAborted
      Src: /src/core/libpromises/eval_context.c:1837,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/eval_context.c:1843,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:1845,1
    - Dst: SetBundleAborted
      Src: /src/core/libpromises/eval_context.c:1846,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 7
    argNames:
    - ctx
    - ns
    - name
    - is_soft
    - scope
    - tags
    - comment
    argTypes:
    - EvalContext*
    - char*
    - char*
    - bool
    - ContextScope
    - StringSet*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1748
    functionDepth: 8
    functionLinenumber: 1748
    functionLinenumberEnd: 1853
    functionName: EvalContextClassPutTagsSet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - Nova_ClassHistoryAddContextName
    - SetEvalAborted
    - SetBundleAborted
    - snprintf
    - strlen
    - CanonifyNameInPlace
    - EvalContextStackCurrentBundle
    - BundleAborted
    - ClassTablePut
    - ProgrammingError
    - Log
    - strcmp
    - IsRegexItemIn
    - Chop
    - EvalContextClassGet
    - LastStackFrameByType
    - IsDefinedClass
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextClassPutTagsSet(EvalContext *ctx, const char *ns,
      const char *name, bool is_soft,\n                                       ContextScope
      scope, StringSet *tags, const char *comment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/eval_context.c:1858,1
    - Dst: StringSetFromString
      Src: /src/core/libpromises/eval_context.c:1858,1
    - Dst: EvalContextClassPutTagsSet
      Src: /src/core/libpromises/eval_context.c:1859,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:1862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ctx
    - ns
    - name
    - is_soft
    - scope
    - tags
    - comment
    argTypes:
    - EvalContext*
    - char*
    - char*
    - bool
    - ContextScope
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1855
    functionDepth: 9
    functionLinenumber: 1855
    functionLinenumberEnd: 1865
    functionName: EvalContextClassPut
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - StringSetDestroy
    - NULL_OR_EMPTY
    - StringSetFromString
    - EvalContextClassPutTagsSet
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextClassPut(EvalContext *ctx, const char *ns, const char
      *name, bool is_soft,\n                                ContextScope scope, const
      char *tags, const char *comment)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:1869,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:1873,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1867
    functionDepth: 1
    functionLinenumber: 1867
    functionLinenumberEnd: 1886
    functionName: EvalContextCurrentNamespace
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: char
    signature: char *EvalContextCurrentNamespace(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassPut
      Src: /src/core/libpromises/eval_context.c:1890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - name
    - tags
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1888
    functionDepth: 10
    functionLinenumber: 1888
    functionLinenumberEnd: 1891
    functionName: EvalContextClassPutHard
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 35
    functionsReached:
    - EvalContextClassPut
    linkageType: ''
    returnType: bool
    signature: bool EvalContextClassPutHard(EvalContext *ctx, const char *name, const
      char *tags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/eval_context.c:1895,1
    - Dst: StringSetFromString
      Src: /src/core/libpromises/eval_context.c:1895,1
    - Dst: EvalContextClassPutSoftTagsSet
      Src: /src/core/libpromises/eval_context.c:1896,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:1899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - name
    - scope
    - tags
    argTypes:
    - EvalContext*
    - char*
    - ContextScope
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1893
    functionDepth: 3
    functionLinenumber: 1893
    functionLinenumberEnd: 1902
    functionName: EvalContextClassPutSoft
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - EvalContextClassPutSoftTagsSet
    - NULL_OR_EMPTY
    - StringSetFromString
    - StringSetDestroy
    linkageType: ''
    returnType: bool
    signature: bool EvalContextClassPutSoft(EvalContext *ctx, const char *name, ContextScope
      scope, const char *tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassPutSoftTagsSetWithComment
      Src: /src/core/libpromises/eval_context.c:1906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - name
    - scope
    - tags
    argTypes:
    - EvalContext*
    - char*
    - ContextScope
    - StringSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1904
    functionDepth: 1
    functionLinenumber: 1904
    functionLinenumberEnd: 1907
    functionName: EvalContextClassPutSoftTagsSet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutSoftTagsSetWithComment
    linkageType: ''
    returnType: bool
    signature: bool EvalContextClassPutSoftTagsSet(EvalContext *ctx, const char *name,
      ContextScope scope, StringSet *tags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libpromises/eval_context.c:1914,1
    - Dst: xstrndup
      Src: /src/core/libpromises/eval_context.c:1918,1
    - Dst: EvalContextClassPutTagsSet
      Src: /src/core/libpromises/eval_context.c:1921,1
    - Dst: EvalContextCurrentNamespace
      Src: /src/core/libpromises/eval_context.c:1921,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:1923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - name
    - scope
    - tags
    - comment
    argTypes:
    - EvalContext*
    - char*
    - ContextScope
    - StringSet*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1909
    functionDepth: 9
    functionLinenumber: 1909
    functionLinenumberEnd: 1925
    functionName: EvalContextClassPutSoftTagsSetWithComment
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutTagsSet
    - EvalContextCurrentNamespace
    - strchr
    - free
    - xstrndup
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextClassPutSoftTagsSetWithComment(EvalContext *ctx, const
      char *name, ContextScope scope,\n                                               StringSet
      *tags, const char *comment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassPut
      Src: /src/core/libpromises/eval_context.c:1930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - ns
    - name
    - scope
    - tags
    argTypes:
    - EvalContext*
    - char*
    - char*
    - ContextScope
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1927
    functionDepth: 10
    functionLinenumber: 1927
    functionLinenumberEnd: 1931
    functionName: EvalContextClassPutSoftNS
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - EvalContextClassPut
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextClassPutSoftNS(EvalContext *ctx, const char *ns, const
      char *name,\n                               ContextScope scope, const char *tags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassPutSoftNSTagsSetWithComment
      Src: /src/core/libpromises/eval_context.c:1939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - ns
    - name
    - scope
    - tags
    argTypes:
    - EvalContext*
    - char*
    - char*
    - ContextScope
    - StringSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1936
    functionDepth: 1
    functionLinenumber: 1936
    functionLinenumberEnd: 1940
    functionName: EvalContextClassPutSoftNSTagsSet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - EvalContextClassPutSoftNSTagsSetWithComment
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextClassPutSoftNSTagsSet(EvalContext *ctx, const char
      *ns, const char *name,\n                                      ContextScope scope,
      StringSet *tags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassPutTagsSet
      Src: /src/core/libpromises/eval_context.c:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - ns
    - name
    - scope
    - tags
    - comment
    argTypes:
    - EvalContext*
    - char*
    - char*
    - ContextScope
    - StringSet*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1942
    functionDepth: 9
    functionLinenumber: 1942
    functionLinenumberEnd: 1946
    functionName: EvalContextClassPutSoftNSTagsSetWithComment
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - EvalContextClassPutTagsSet
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextClassPutSoftNSTagsSetWithComment(EvalContext *ctx,
      const char *ns, const char *name,\n                                                 ContextScope
      scope, StringSet *tags, const char *comment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableIteratorNew
      Src: /src/core/libpromises/eval_context.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - ns
    - is_hard
    - is_soft
    argTypes:
    - EvalContext*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1948
    functionDepth: 1
    functionLinenumber: 1948
    functionLinenumberEnd: 1951
    functionName: EvalContextClassTableIteratorNewGlobal
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 4
    functionsReached:
    - ClassTableIteratorNew
    linkageType: ''
    returnType: ClassTableIterator
    signature: ClassTableIterator *EvalContextClassTableIteratorNewGlobal(const EvalContext
      *ctx, const char *ns, bool is_hard, bool is_soft)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1955,1
    - Dst: ClassTableIteratorNew
      Src: /src/core/libpromises/eval_context.c:1961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1953
    functionDepth: 3
    functionLinenumber: 1953
    functionLinenumberEnd: 1962
    functionName: EvalContextClassTableIteratorNewLocal
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - LastStackFrameByType
    - ClassTableIteratorNew
    linkageType: ''
    returnType: ClassTableIterator
    signature: ClassTableIterator *EvalContextClassTableIteratorNewLocal(const EvalContext
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1964
    functionDepth: 3
    functionLinenumber: 1964
    functionLinenumberEnd: 1968
    functionName: EvalContextStackCurrentPromise
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - LastStackFrameByType
    linkageType: ''
    returnType: Promise
    signature: Promise *EvalContextStackCurrentPromise(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1970
    functionDepth: 3
    functionLinenumber: 1970
    functionLinenumberEnd: 1974
    functionName: EvalContextStackCurrentBundle
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - LastStackFrameByType
    linkageType: ''
    returnType: Bundle
    signature: Bundle *EvalContextStackCurrentBundle(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1976
    functionDepth: 3
    functionLinenumber: 1976
    functionLinenumberEnd: 1980
    functionName: EvalContextStackCurrentMessages
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - LastStackFrameByType
    linkageType: ''
    returnType: RingBuffer
    signature: RingBuffer *EvalContextStackCurrentMessages(const EvalContext *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:1995,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:1999,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:2003,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - str
    argTypes:
    - Buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1988
    functionDepth: 4
    functionLinenumber: 1988
    functionLinenumberEnd: 2007
    functionName: BufferAppendPromiseStr
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - BufferAppendChar
    linkageType: ''
    returnType: void
    signature: void BufferAppendPromiseStr(Buffer *buf, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libpromises/eval_context.c:2024,1
    - Dst: BufferAppendPromiseStr
      Src: /src/core/libpromises/eval_context.c:2027,1
    - Dst: strrchr
      Src: /src/core/libpromises/eval_context.c:2035,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2036,1
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:2037,1
    - Dst: memcpy
      Src: /src/core/libpromises/eval_context.c:2042,1
    - Dst: strcpy
      Src: /src/core/libpromises/eval_context.c:2043,1
    - Dst: strcat
      Src: /src/core/libpromises/eval_context.c:2044,1
    - Dst: BufferAppendPromiseStr
      Src: /src/core/libpromises/eval_context.c:2045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - promiser
    - N
    argTypes:
    - Buffer*
    - char*
    - int
    assertStmts:
    - condition: (last_line)
      pos:
        line_end: 2035
        line_start: 2035
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2047
      start: 2020
    functionDepth: 5
    functionLinenumber: 2020
    functionLinenumberEnd: 2047
    functionName: BufferAppendAbbreviatedStr
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - assert
    - BufferAppendPromiseStr
    - strchr
    - strcat
    - strrchr
    - strcpy
    linkageType: ''
    returnType: void
    signature: "void BufferAppendAbbreviatedStr(Buffer *buf,\n                                       const
      char *promiser, const int N)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libpromises/eval_context.c:2051,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:2053,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:2055,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:2059,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/eval_context.c:2060,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:2064,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/eval_context.c:2065,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:2066,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/eval_context.c:2067,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:2071,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/eval_context.c:2072,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:2078,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:2079,1
    - Dst: BufferAppendAbbreviatedStr
      Src: /src/core/libpromises/eval_context.c:2080,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/eval_context.c:2081,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:2082,1
    - Dst: BufferAppendF
      Src: /src/core/libpromises/eval_context.c:2087,1
    - Dst: PromiseIteratorIndex
      Src: /src/core/libpromises/eval_context.c:2088,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:2093,1
    - Dst: BufferClose
      Src: /src/core/libpromises/eval_context.c:2097,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2049
    functionDepth: 6
    functionLinenumber: 2049
    functionLinenumberEnd: 2098
    functionName: EvalContextStackPath
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - BufferAppendAbbreviatedStr
    - BufferAppend
    - BufferAppendF
    - BufferClose
    - BufferAppendChar
    - ProgrammingError
    - BufferNew
    - SeqLength
    - PromiseIteratorIndex
    - SeqAt
    linkageType: ''
    returnType: char
    signature: char *EvalContextStackPath(const EvalContext *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libpromises/eval_context.c:2102,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:2104,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:2106,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/eval_context.c:2117,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:2117,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/eval_context.c:2117,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/eval_context.c:2122,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/eval_context.c:2126,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:2126,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/eval_context.c:2126,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2130,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2140,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: '(false && "Canary: promisee not scalar or list")'
      pos:
        line_end: 2139
        line_start: 2139
        source_file: /src/core/libpromises/eval_context.c
    - condition: '(false && "Canary: promisee list contained non-scalar value")'
      pos:
        line_end: 2129
        line_start: 2129
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2145
      start: 2100
    functionDepth: 1
    functionLinenumber: 2100
    functionLinenumberEnd: 2145
    functionName: EvalContextStackPromisees
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - RvalScalarValue
    - assert
    - xstrdup
    - SeqLength
    - StringSetNew
    - RvalRlistValue
    - SeqAt
    - StringSetAdd
    linkageType: ''
    returnType: StringSet
    signature: StringSet *EvalContextStackPromisees(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:2155,1
    - Dst: xmalloc
      Src: /src/core/libpromises/eval_context.c:2158,1
    - Dst: memcpy
      Src: /src/core/libpromises/eval_context.c:2159,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/eval_context.c:2162,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/eval_context.c:2163,1
    - Dst: StringReplaceN
      Src: /src/core/libpromises/eval_context.c:2167,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2169,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2171,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - scope
    - var_name
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (ret == (var_name_len + sizeof(NESTED_SCOPE_SEP) - 2))
      pos:
        line_end: 2168
        line_start: 2168
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2175
      start: 2153
    functionDepth: 2
    functionLinenumber: 2153
    functionLinenumberEnd: 2175
    functionName: MangleScopedVarNameIntoSpecialScopeName
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - memcpy
    - StringReplaceN
    - strlen
    - assert
    - StringConcatenate
    - xmalloc
    - free
    linkageType: ''
    returnType: char
    signature: char *MangleScopedVarNameIntoSpecialScopeName(const char *scope, const
      char *var_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/eval_context.c:2182,1
    - Dst: StringSetFromString
      Src: /src/core/libpromises/eval_context.c:2182,1
    - Dst: EvalContextVariablePutSpecialTagsSet
      Src: /src/core/libpromises/eval_context.c:2183,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:2186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - scope
    - lval
    - value
    - type
    - tags
    argTypes:
    - EvalContext*
    - SpecialScope
    - char*
    - void*
    - DataType
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2180
    functionDepth: 3
    functionLinenumber: 2180
    functionLinenumberEnd: 2189
    functionName: EvalContextVariablePutSpecial
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 30
    functionsReached:
    - NULL_OR_EMPTY
    - StringSetFromString
    - StringSetDestroy
    - EvalContextVariablePutSpecialTagsSet
    linkageType: ''
    returnType: bool
    signature: bool EvalContextVariablePutSpecial(EvalContext *ctx, SpecialScope scope,
      const char *lval, const void *value, DataType type, const char *tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariablePutSpecialTagsSetWithComment
      Src: /src/core/libpromises/eval_context.c:2199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - scope
    - lval
    - value
    - type
    - tags
    argTypes:
    - EvalContext*
    - SpecialScope
    - char*
    - void*
    - DataType
    - StringSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2195
    functionDepth: 1
    functionLinenumber: 2195
    functionLinenumberEnd: 2200
    functionName: EvalContextVariablePutSpecialTagsSet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - EvalContextVariablePutSpecialTagsSetWithComment
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextVariablePutSpecialTagsSet(EvalContext *ctx, SpecialScope
      scope,\n                                          const char *lval, const void
      *value,\n                                          DataType type, StringSet
      *tags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libpromises/eval_context.c:2208,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/eval_context.c:2210,1
    - Dst: MangleScopedVarNameIntoSpecialScopeName
      Src: /src/core/libpromises/eval_context.c:2213,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2215,1
    - Dst: strchr
      Src: /src/core/libpromises/eval_context.c:2217,1
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/eval_context.c:2220,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/eval_context.c:2220,1
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/eval_context.c:2221,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2222,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2223,1
    - Dst: VarRefConst
      Src: /src/core/libpromises/eval_context.c:2229,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/eval_context.c:2229,1
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/eval_context.c:2230,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - ctx
    - scope
    - lval
    - value
    - type
    - tags
    - comment
    argTypes:
    - EvalContext*
    - SpecialScope
    - char*
    - void*
    - DataType
    - StringSet*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2202
    functionDepth: 3
    functionLinenumber: 2202
    functionLinenumberEnd: 2234
    functionName: EvalContextVariablePutSpecialTagsSetWithComment
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - VarRefConst
    - SpecialScopeToString
    - VarRefParseFromScope
    - VarRefDestroy
    - strchr
    - EvalContextVariablePutTagsSetWithComment
    - VarRefParse
    - free
    - MangleScopedVarNameIntoSpecialScopeName
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextVariablePutSpecialTagsSetWithComment(EvalContext *ctx,
      SpecialScope scope,\n                                                     const
      char *lval, const void *value,\n                                                     DataType
      type, StringSet *tags,\n                                                     const
      char *comment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/eval_context.c:2242,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/eval_context.c:2243,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/eval_context.c:2244,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - scope
    - varname
    - type_out
    argTypes:
    - EvalContext*
    - SpecialScope
    - char*
    - DataType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2236
    functionDepth: 1
    functionLinenumber: 2236
    functionLinenumberEnd: 2248
    functionName: EvalContextVariableGetSpecial
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 3
    functionsReached:
    - VarRefDestroy
    - EvalContextVariableGet
    - SpecialScopeToString
    - VarRefParseFromScope
    linkageType: ''
    returnType: void
    signature: "void *EvalContextVariableGetSpecial(\n    const EvalContext *const
      ctx,\n    const SpecialScope scope,\n    const char *const varname,\n    DataType
      *const type_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariableGetSpecial
      Src: /src/core/libpromises/eval_context.c:2260,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - scope
    - varname
    argTypes:
    - EvalContext*
    - SpecialScope
    - char*
    assertStmts:
    - condition: (type_out == CF_DATA_TYPE_STRING)
      pos:
        line_end: 2261
        line_start: 2261
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2264
      start: 2254
    functionDepth: 2
    functionLinenumber: 2254
    functionLinenumberEnd: 2264
    functionName: EvalContextVariableGetSpecialString
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - assert
    - EvalContextVariableGetSpecial
    linkageType: ''
    returnType: char
    signature: "char *EvalContextVariableGetSpecialString(\n    const EvalContext
      *const ctx,\n    const SpecialScope scope,\n    const char *const varname)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/eval_context.c:2277,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/eval_context.c:2277,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/libpromises/eval_context.c:2278,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2279,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2284,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - scope
    - lval
    argTypes:
    - EvalContext*
    - SpecialScope
    - char*
    assertStmts:
    - condition: (false && "Attempted to remove none-special variable")
      pos:
        line_end: 2283
        line_start: 2283
        source_file: /src/core/libpromises/eval_context.c
    - condition: (false && "Unhandled case in switch")
      pos:
        line_end: 2287
        line_start: 2287
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2291
      start: 2266
    functionDepth: 1
    functionLinenumber: 2266
    functionLinenumberEnd: 2291
    functionName: EvalContextVariableRemoveSpecial
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 3
    functionsReached:
    - SpecialScopeToString
    - EvalContextVariableRemove
    - assert
    - VarRefParseFromScope
    - VarRefDestroy
    linkageType: ''
    returnType: bool
    signature: bool EvalContextVariableRemoveSpecial(const EvalContext *ctx, SpecialScope
      scope, const char *lval)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2297,1
    - Dst: SpecialScopeFromString
      Src: /src/core/libpromises/eval_context.c:2299,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2308,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2308,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2312,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2312,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2316,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2316,1
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:2318,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2319,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2324,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2324,1
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:2326,1
    - Dst: LastStackFrameByType
      Src: /src/core/libpromises/eval_context.c:2334,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - ns
    - scope
    argTypes:
    - EvalContext*
    - NDEBUG_UNUSED*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 2296
        line_start: 2296
        source_file: /src/core/libpromises/eval_context.c
    - condition: (!ns || strcmp("default", ns) == 0)
      pos:
        line_end: 2311
        line_start: 2311
        source_file: /src/core/libpromises/eval_context.c
    - condition: (!ns || strcmp("default", ns) == 0)
      pos:
        line_end: 2307
        line_start: 2307
        source_file: /src/core/libpromises/eval_context.c
    - condition: (!ns || strcmp("default", ns) == 0)
      pos:
        line_end: 2315
        line_start: 2315
        source_file: /src/core/libpromises/eval_context.c
    - condition: (frame)
      pos:
        line_end: 2318
        line_start: 2318
        source_file: /src/core/libpromises/eval_context.c
    - condition: (!ns || strcmp("default", ns) == 0)
      pos:
        line_end: 2323
        line_start: 2323
        source_file: /src/core/libpromises/eval_context.c
    - condition: (false && "Unhandled case in switch")
      pos:
        line_end: 2341
        line_start: 2341
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2345
      start: 2293
    functionDepth: 3
    functionLinenumber: 2293
    functionLinenumberEnd: 2345
    functionName: GetVariableTableForScope
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    - LastStackFrameByType
    - SpecialScopeFromString
    linkageType: ''
    returnType: VariableTable
    signature: "VariableTable *GetVariableTableForScope(const EvalContext *ctx,\n
      \                                              NDEBUG_UNUSED const char *ns,
      /* only used in assertions ... */\n                                               const
      char *scope)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetVariableTableForScope
      Src: /src/core/libpromises/eval_context.c:2349,1
    - Dst: VariableTableRemove
      Src: /src/core/libpromises/eval_context.c:2350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - EvalContext*
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2347
    functionDepth: 4
    functionLinenumber: 2347
    functionLinenumberEnd: 2351
    functionName: EvalContextVariableRemove
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - GetVariableTableForScope
    - VariableTableRemove
    linkageType: ''
    returnType: bool
    signature: bool EvalContextVariableRemove(const EvalContext *ctx, const VarRef
      *ref)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: StringContainsVar
      Src: /src/core/libpromises/eval_context.c:2358,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/eval_context.c:2360,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:2361,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2362,1
    - Dst: StringContainsVar
      Src: /src/core/libpromises/eval_context.c:2375,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/eval_context.c:2375,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/eval_context.c:2377,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:2378,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2379,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - ref
    - value
    - rval_type
    argTypes:
    - VarRef*
    - void*
    - RvalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2353
    functionDepth: 8
    functionLinenumber: 2353
    functionLinenumberEnd: 2392
    functionName: IsVariableSelfReferential
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StringContainsVar
    - VarRefToString
    - Log
    - RlistScalarValue
    - free
    linkageType: ''
    returnType: bool
    signature: bool IsVariableSelfReferential(const VarRef *ref, const void *value,
      RvalType rval_type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:2396,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2397,1
    - Dst: VarRefQualify
      Src: /src/core/libpromises/eval_context.c:2402,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/eval_context.c:2402,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:2407,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2408,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2409,1
    - Dst: VarRefQualify
      Src: /src/core/libpromises/eval_context.c:2410,1
    - Dst: VarRefQualify
      Src: /src/core/libpromises/eval_context.c:2417,1
    - Dst: VarRefQualify
      Src: /src/core/libpromises/eval_context.c:2425,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/eval_context.c:2425,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:2429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - EvalContext*
    - VarRef*
    assertStmts:
    - condition: (last_frame)
      pos:
        line_end: 2396
        line_start: 2396
        source_file: /src/core/libpromises/eval_context.c
    - condition: (last_last_frame)
      pos:
        line_end: 2407
        line_start: 2407
        source_file: /src/core/libpromises/eval_context.c
    - condition: (last_last_frame->type == STACK_FRAME_TYPE_BUNDLE)
      pos:
        line_end: 2408
        line_start: 2408
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2431
      start: 2394
    functionDepth: 2
    functionLinenumber: 2394
    functionLinenumberEnd: 2431
    functionName: VarRefStackQualify
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - SpecialScopeToString
    - assert
    - VarRefQualify
    - ProgrammingError
    - LastStackFrame
    linkageType: ''
    returnType: void
    signature: void VarRefStackQualify(const EvalContext *ctx, VarRef *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/eval_context.c:2440,1
    - Dst: StringSetFromString
      Src: /src/core/libpromises/eval_context.c:2440,1
    - Dst: EvalContextVariablePutTagsSet
      Src: /src/core/libpromises/eval_context.c:2441,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:2444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - ref
    - value
    - type
    - tags
    argTypes:
    - EvalContext*
    - VarRef*
    - void*
    - DataType
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2436
    functionDepth: 3
    functionLinenumber: 2436
    functionLinenumberEnd: 2447
    functionName: EvalContextVariablePut
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 17
    functionsReached:
    - NULL_OR_EMPTY
    - EvalContextVariablePutTagsSet
    - StringSetFromString
    - StringSetDestroy
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextVariablePut(EvalContext *ctx,\n                            const
      VarRef *ref, const void *value,\n                            DataType type,
      const char *tags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/eval_context.c:2457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - ref
    - value
    - type
    - tags
    argTypes:
    - EvalContext*
    - VarRef*
    - void*
    - DataType
    - StringSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2453
    functionDepth: 1
    functionLinenumber: 2453
    functionLinenumberEnd: 2458
    functionName: EvalContextVariablePutTagsSet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - EvalContextVariablePutTagsSetWithComment
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextVariablePutTagsSet(EvalContext *ctx,\n                                   const
      VarRef *ref, const void *value,\n                                   DataType
      type, StringSet *tags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2465,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2466,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2467,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2471,1
    - Dst: DataTypeIsIterable
      Src: /src/core/libpromises/eval_context.c:2471,1
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:2473,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/eval_context.c:2475,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:2476,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2479,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2483,1
    - Dst: IsVariableSelfReferential
      Src: /src/core/libpromises/eval_context.c:2484,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/eval_context.c:2484,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/eval_context.c:2489,1
    - Dst: GetVariableTableForScope
      Src: /src/core/libpromises/eval_context.c:2490,1
    - Dst: EvalContextStackCurrentPromise
      Src: /src/core/libpromises/eval_context.c:2491,1
    - Dst: VariableTablePut
      Src: /src/core/libpromises/eval_context.c:2492,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/eval_context.c:2492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - ctx
    - ref
    - value
    - type
    - tags
    - comment
    argTypes:
    - EvalContext*
    - VarRef*
    - void*
    - DataType
    - StringSet*
    - char*
    assertStmts:
    - condition: (type != CF_DATA_TYPE_NONE)
      pos:
        line_end: 2464
        line_start: 2464
        source_file: /src/core/libpromises/eval_context.c
    - condition: (ref->lval)
      pos:
        line_end: 2466
        line_start: 2466
        source_file: /src/core/libpromises/eval_context.c
    - condition: (ref)
      pos:
        line_end: 2465
        line_start: 2465
        source_file: /src/core/libpromises/eval_context.c
    - condition: (value != NULL || DataTypeIsIterable(type))
      pos:
        line_end: 2470
        line_start: 2470
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2494
      start: 2460
    functionDepth: 9
    functionLinenumber: 2460
    functionLinenumberEnd: 2494
    functionName: EvalContextVariablePutTagsSetWithComment
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - VarRefToString
    - strlen
    - assert
    - SafeStringDuplicate
    - IsVariableSelfReferential
    - DataTypeIsIterable
    - Log
    - strcmp
    - VariableTablePut
    - free
    - DataTypeToRvalType
    - EvalContextStackCurrentPromise
    - GetVariableTableForScope
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextVariablePutTagsSetWithComment(EvalContext *ctx,\n
      \                                             const VarRef *ref, const void
      *value,\n                                              DataType type, StringSet
      *tags,\n                                              const char *comment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefCopy
      Src: /src/core/libpromises/eval_context.c:2503,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/eval_context.c:2504,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2507,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2509,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:2510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ref
    argTypes:
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2501
    functionDepth: 2
    functionLinenumber: 2501
    functionLinenumberEnd: 2513
    functionName: MangledThisScopedRef
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - StringConcatenate
    - free
    - VarRefCopy
    linkageType: ''
    returnType: VarRef
    signature: VarRef *MangledThisScopedRef(const VarRef *ref)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2517,1
    - Dst: GetVariableTableForScope
      Src: /src/core/libpromises/eval_context.c:2520,1
    - Dst: SpecialScopeFromString
      Src: /src/core/libpromises/eval_context.c:2530,1
    - Dst: SpecialScopeFromString
      Src: /src/core/libpromises/eval_context.c:2531,1
    - Dst: VarRefCopy
      Src: /src/core/libpromises/eval_context.c:2534,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:2535,1
    - Dst: VariableTableGet
      Src: /src/core/libpromises/eval_context.c:2537,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2538,1
    - Dst: VariableTableGet
      Src: /src/core/libpromises/eval_context.c:2542,1
    - Dst: GetVariableTableForScope
      Src: /src/core/libpromises/eval_context.c:2564,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/eval_context.c:2565,1
    - Dst: MangledThisScopedRef
      Src: /src/core/libpromises/eval_context.c:2568,1
    - Dst: VariableTableGet
      Src: /src/core/libpromises/eval_context.c:2569,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2570,1
    - Dst: VarRefCopyIndexless
      Src: /src/core/libpromises/eval_context.c:2582,1
    - Dst: VariableTableGet
      Src: /src/core/libpromises/eval_context.c:2583,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2584,1
    - Dst: VariableGetType
      Src: /src/core/libpromises/eval_context.c:2586,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - EvalContext*
    - VarRef*
    assertStmts:
    - condition: (ref != NULL)
      pos:
        line_end: 2516
        line_start: 2516
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2594
      start: 2515
    functionDepth: 9
    functionLinenumber: 2515
    functionLinenumberEnd: 2594
    functionName: VariableResolve2
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - SpecialScopeToString
    - VarRefCopyIndexless
    - assert
    - SpecialScopeFromString
    - VarRefDestroy
    - MangledThisScopedRef
    - VariableGetType
    - VarRefCopy
    - free
    - GetVariableTableForScope
    - VariableTableGet
    linkageType: ''
    returnType: Variable
    signature: Variable *VariableResolve2(const EvalContext *ctx, const VarRef *ref)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2607,1
    - Dst: VariableResolve2
      Src: /src/core/libpromises/eval_context.c:2612,1
    - Dst: VarRefIsQualified
      Src: /src/core/libpromises/eval_context.c:2621,1
    - Dst: VarRefCopy
      Src: /src/core/libpromises/eval_context.c:2623,1
    - Dst: VarRefStackQualify
      Src: /src/core/libpromises/eval_context.c:2624,1
    - Dst: VariableResolve2
      Src: /src/core/libpromises/eval_context.c:2625,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2628,1
    - Dst: EvalContextStackCurrentBundle
      Src: /src/core/libpromises/eval_context.c:2634,1
    - Dst: SpecialScopeFromString
      Src: /src/core/libpromises/eval_context.c:2640,1
    - Dst: SpecialScopeFromString
      Src: /src/core/libpromises/eval_context.c:2641,1
    - Dst: VarRefCopy
      Src: /src/core/libpromises/eval_context.c:2644,1
    - Dst: VarRefQualify
      Src: /src/core/libpromises/eval_context.c:2645,1
    - Dst: VariableResolve2
      Src: /src/core/libpromises/eval_context.c:2646,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2648,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2649,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - EvalContext*
    - VarRef*
    assertStmts:
    - condition: (ref->lval)
      pos:
        line_end: 2606
        line_start: 2606
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2655
      start: 2605
    functionDepth: 10
    functionLinenumber: 2605
    functionLinenumberEnd: 2655
    functionName: VariableResolve
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - VariableResolve2
    - VarRefIsQualified
    - assert
    - EvalContextStackCurrentBundle
    - VarRefQualify
    - SpecialScopeFromString
    - VarRefDestroy
    - VarRefStackQualify
    - VarRefCopy
    linkageType: ''
    returnType: Variable
    signature: Variable *VariableResolve(const EvalContext *ctx, const VarRef *ref)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VariableResolve
      Src: /src/core/libpromises/eval_context.c:2665,1
    - Dst: VariableGetRef
      Src: /src/core/libpromises/eval_context.c:2668,1
    - Dst: VariableGetType
      Src: /src/core/libpromises/eval_context.c:2669,1
    - Dst: VariableGetRval
      Src: /src/core/libpromises/eval_context.c:2670,1
    - Dst: JsonSelect
      Src: /src/core/libpromises/eval_context.c:2676,1
    - Dst: RvalContainerValue
      Src: /src/core/libpromises/eval_context.c:2676,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - ref
    - type_out
    argTypes:
    - EvalContext*
    - VarRef*
    - DataType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2663
    functionDepth: 11
    functionLinenumber: 2663
    functionLinenumberEnd: 2702
    functionName: EvalContextVariableGet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 15
    functionsReached:
    - RvalContainerValue
    - VariableGetRval
    - VariableGetType
    - VariableResolve
    - JsonSelect
    - VariableGetRef
    linkageType: ''
    returnType: void
    signature: void *EvalContextVariableGet(const EvalContext *ctx, const VarRef *ref,
      DataType *type_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VariableResolve
      Src: /src/core/libpromises/eval_context.c:2706,1
    - Dst: VariableGetPromise
      Src: /src/core/libpromises/eval_context.c:2707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - EvalContext*
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2704
    functionDepth: 11
    functionLinenumber: 2704
    functionLinenumberEnd: 2708
    functionName: EvalContextVariablePromiseGet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - VariableGetPromise
    - VariableResolve
    linkageType: ''
    returnType: Promise
    signature: Promise *EvalContextVariablePromiseGet(const EvalContext *ctx, const
      VarRef *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassGet
      Src: /src/core/libpromises/eval_context.c:2712,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - ns
    - name
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts:
    - condition: (cls->tags != NULL)
      pos:
        line_end: 2717
        line_start: 2717
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2720
      start: 2710
    functionDepth: 4
    functionLinenumber: 2710
    functionLinenumberEnd: 2720
    functionName: EvalContextClassTags
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - assert
    - EvalContextClassGet
    linkageType: ''
    returnType: StringSet
    signature: StringSet *EvalContextClassTags(const EvalContext *ctx, const char
      *ns, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VariableResolve
      Src: /src/core/libpromises/eval_context.c:2724,1
    - Dst: VariableGetTags
      Src: /src/core/libpromises/eval_context.c:2730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - EvalContext*
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2722
    functionDepth: 11
    functionLinenumber: 2722
    functionLinenumberEnd: 2732
    functionName: EvalContextVariableTags
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - VariableGetTags
    - VariableResolve
    linkageType: ''
    returnType: StringSet
    signature: StringSet *EvalContextVariableTags(const EvalContext *ctx, const VarRef
      *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VariableTableClear
      Src: /src/core/libpromises/eval_context.c:2736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2734
    functionDepth: 2
    functionLinenumber: 2734
    functionLinenumberEnd: 2737
    functionName: EvalContextVariableClearMatch
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - VariableTableClear
    linkageType: ''
    returnType: bool
    signature: bool EvalContextVariableClearMatch(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetVariableTableForScope
      Src: /src/core/libpromises/eval_context.c:2741,1
    - Dst: VariableTableIteratorNew
      Src: /src/core/libpromises/eval_context.c:2742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - ns
    - scope
    - lval
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2739
    functionDepth: 4
    functionLinenumber: 2739
    functionLinenumberEnd: 2743
    functionName: EvalContextVariableTableIteratorNew
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - VariableTableIteratorNew
    - GetVariableTableForScope
    linkageType: ''
    returnType: VariableTableIterator
    signature: VariableTableIterator *EvalContextVariableTableIteratorNew(const EvalContext
      *ctx, const char *ns, const char *scope, const char *lval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2748,1
    - Dst: GetVariableTableForScope
      Src: /src/core/libpromises/eval_context.c:2749,1
    - Dst: VariableTableIteratorNewFromVarRef
      Src: /src/core/libpromises/eval_context.c:2750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - ref
    argTypes:
    - EvalContext*
    - VarRef*
    assertStmts:
    - condition: (ref)
      pos:
        line_end: 2747
        line_start: 2747
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2751
      start: 2746
    functionDepth: 4
    functionLinenumber: 2746
    functionLinenumberEnd: 2751
    functionName: EvalContextVariableTableFromRefIteratorNew
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - assert
    - GetVariableTableForScope
    - VariableTableIteratorNewFromVarRef
    linkageType: ''
    returnType: VariableTableIterator
    signature: VariableTableIterator *EvalContextVariableTableFromRefIteratorNew(const
      EvalContext *ctx, const VarRef *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2755,1
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/eval_context.c:2757,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/eval_context.c:2758,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/eval_context.c:2759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - lval
    argTypes:
    - EvalContext*
    - CommonControl
    assertStmts:
    - condition: (lval >= 0 && lval < COMMON_CONTROL_MAX)
      pos:
        line_end: 2754
        line_start: 2754
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2761
      start: 2753
    functionDepth: 1
    functionLinenumber: 2753
    functionLinenumberEnd: 2761
    functionName: EvalContextVariableControlCommonGet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 3
    functionsReached:
    - VarRefDestroy
    - assert
    - EvalContextVariableGet
    - VarRefParseFromScope
    linkageType: ''
    returnType: void
    signature: void *EvalContextVariableControlCommonGet(const EvalContext *ctx, CommonControl
      lval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ClassRefParse
      Src: /src/core/libpromises/eval_context.c:2766,1
    - Dst: ClassRefIsQualified
      Src: /src/core/libpromises/eval_context.c:2767,1
    - Dst: EvalContextCurrentNamespace
      Src: /src/core/libpromises/eval_context.c:2769,1
    - Dst: ClassRefQualify
      Src: /src/core/libpromises/eval_context.c:2772,1
    - Dst: ClassRefQualify
      Src: /src/core/libpromises/eval_context.c:2776,1
    - Dst: NamespaceDefault
      Src: /src/core/libpromises/eval_context.c:2776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2763
    functionDepth: 2
    functionLinenumber: 2763
    functionLinenumberEnd: 2781
    functionName: IDRefQualify
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - NamespaceDefault
    - ClassRefIsQualified
    - ClassRefParse
    - EvalContextCurrentNamespace
    - ClassRefQualify
    linkageType: ''
    returnType: ClassRef
    signature: ClassRef IDRefQualify(const EvalContext *ctx, const char *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IDRefQualify
      Src: /src/core/libpromises/eval_context.c:2786,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:2789,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:2791,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2792,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2793,1
    - Dst: StringEqual
      Src: /src/core/libpromises/eval_context.c:2794,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/eval_context.c:2803,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - policy
    - callee_reference
    - callee_type
    argTypes:
    - EvalContext*
    - Policy*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2783
    functionDepth: 4
    functionLinenumber: 2783
    functionLinenumberEnd: 2805
    functionName: EvalContextResolveBundleExpression
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - ClassRefDestroy
    - strcmp
    - IDRefQualify
    - SeqLength
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: Bundle
    signature: "Bundle *EvalContextResolveBundleExpression(const EvalContext *ctx,
      const Policy *policy,\n                                               const
      char *callee_reference, const char *callee_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:2810,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:2812,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2813,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2814,1
    - Dst: StringEqual
      Src: /src/core/libpromises/eval_context.c:2815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - policy
    - type
    - namespace
    - name
    argTypes:
    - Policy*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2807
    functionDepth: 4
    functionLinenumber: 2807
    functionLinenumberEnd: 2822
    functionName: EvalContextFindFirstMatchingBody
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - strcmp
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: Body
    signature: "Body *EvalContextFindFirstMatchingBody(const Policy *policy, const
      char *type,\n                                             const char *namespace,
      const char *name)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:2830,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/eval_context.c:2831,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:2834,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:2836,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2837,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/eval_context.c:2843,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/eval_context.c:2847,1
    - Dst: IDRefQualify
      Src: /src/core/libpromises/eval_context.c:2850,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:2854,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:2856,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/eval_context.c:2857,1
    - Dst: EvalContextFindFirstMatchingBody
      Src: /src/core/libpromises/eval_context.c:2860,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/eval_context.c:2863,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/eval_context.c:2864,1
    - Dst: EvalContextAppendBodyParentsAndArgs
      Src: /src/core/libpromises/eval_context.c:2865,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/eval_context.c:2867,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - ctx
    - policy
    - chain
    - bp
    - callee_type
    - depth
    argTypes:
    - EvalContext*
    - Policy*
    - Seq*
    - Body*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2824
    functionDepth: 8
    functionLinenumber: 2824
    functionLinenumberEnd: 2870
    functionName: EvalContextAppendBodyParentsAndArgs
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - DoCleanupAndExit
    - RvalFnCallValue
    - ClassRefDestroy
    - RvalScalarValue
    - EvalContextAppendBodyParentsAndArgs
    - SeqAppend
    - Log
    - strcmp
    - IDRefQualify
    - EvalContextFindFirstMatchingBody
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void EvalContextAppendBodyParentsAndArgs(const EvalContext *ctx, const
      Policy *policy,\n                                         Seq* chain, const
      Body *bp, const char *callee_type,\n                                         int
      depth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IDRefQualify
      Src: /src/core/libpromises/eval_context.c:2875,1
    - Dst: EvalContextFindFirstMatchingBody
      Src: /src/core/libpromises/eval_context.c:2878,1
    - Dst: SeqNew
      Src: /src/core/libpromises/eval_context.c:2881,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/eval_context.c:2882,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/eval_context.c:2883,1
    - Dst: EvalContextAppendBodyParentsAndArgs
      Src: /src/core/libpromises/eval_context.c:2884,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/eval_context.c:2887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - policy
    - callee_reference
    - callee_type
    argTypes:
    - EvalContext*
    - Policy*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2872
    functionDepth: 9
    functionLinenumber: 2872
    functionLinenumberEnd: 2889
    functionName: EvalContextResolveBodyExpression
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - ClassRefDestroy
    - EvalContextAppendBodyParentsAndArgs
    - SeqNew
    - EvalContextFindFirstMatchingBody
    - IDRefQualify
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: "Seq *EvalContextResolveBodyExpression(const EvalContext *ctx, const
      Policy *policy,\n                                      const char *callee_reference,
      const char *callee_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetContains
      Src: /src/core/libpromises/eval_context.c:2893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2894
    functionName: EvalContextPromiseLockCacheContains
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StringSetContains
    linkageType: ''
    returnType: bool
    signature: bool EvalContextPromiseLockCacheContains(const EvalContext *ctx, const
      char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetAdd
      Src: /src/core/libpromises/eval_context.c:2898,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:2898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2896
    functionDepth: 0
    functionLinenumber: 2896
    functionLinenumberEnd: 2899
    functionName: EvalContextPromiseLockCachePut
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void EvalContextPromiseLockCachePut(EvalContext *ctx, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSetRemove
      Src: /src/core/libpromises/eval_context.c:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2901
    functionDepth: 0
    functionLinenumber: 2901
    functionLinenumberEnd: 2904
    functionName: EvalContextPromiseLockCacheRemove
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StringSetRemove
    linkageType: ''
    returnType: void
    signature: void EvalContextPromiseLockCacheRemove(EvalContext *ctx, const char
      *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2910,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2911,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2912,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/eval_context.c:2920,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/eval_context.c:2921,1
    - Dst: FuncCacheMapGet
      Src: /src/core/libpromises/eval_context.c:2922,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/eval_context.c:2923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - ARG_UNUSED
    - args
    - rval_out
    argTypes:
    - EvalContext*
    - FnCall*
    - Rlist*
    - Rval*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 2909
        line_start: 2909
        source_file: /src/core/libpromises/eval_context.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 2910
        line_start: 2910
        source_file: /src/core/libpromises/eval_context.c
    - condition: (ctx != NULL)
      pos:
        line_end: 2911
        line_start: 2911
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2936
      start: 2906
    functionDepth: 1
    functionLinenumber: 2906
    functionLinenumberEnd: 2936
    functionName: EvalContextFunctionCacheGet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - RlistCopy
    - assert
    - FuncCacheMapGet
    - RlistDestroy
    - RlistPrepend
    linkageType: ''
    returnType: bool
    signature: "bool EvalContextFunctionCacheGet(const EvalContext *ctx,\n                                 const
      FnCall *fp ARG_UNUSED,\n                                 const Rlist *args,
      Rval *rval_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2942,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2943,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:2944,1
    - Dst: xmalloc
      Src: /src/core/libpromises/eval_context.c:2951,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/eval_context.c:2952,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/eval_context.c:2954,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/eval_context.c:2955,1
    - Dst: FuncCacheMapInsert
      Src: /src/core/libpromises/eval_context.c:2957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - ARG_UNUSED
    - args
    - rval
    argTypes:
    - EvalContext*
    - FnCall*
    - Rlist*
    - Rval*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 2941
        line_start: 2941
        source_file: /src/core/libpromises/eval_context.c
    - condition: (ctx != NULL)
      pos:
        line_end: 2943
        line_start: 2943
        source_file: /src/core/libpromises/eval_context.c
    - condition: (fp->name != NULL)
      pos:
        line_end: 2942
        line_start: 2942
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 2958
      start: 2938
    functionDepth: 1
    functionLinenumber: 2938
    functionLinenumberEnd: 2958
    functionName: EvalContextFunctionCachePut
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - RlistCopy
    - assert
    - FuncCacheMapInsert
    - RvalCopy
    - xmalloc
    - RlistPrepend
    linkageType: ''
    returnType: void
    signature: "void EvalContextFunctionCachePut(EvalContext *ctx,\n                                 const
      FnCall *fp ARG_UNUSED,\n                                 const Rlist *args,
      const Rval *rval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/eval_context.c:2981,1
    - Dst: IsStrIn
      Src: /src/core/libpromises/eval_context.c:2981,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/eval_context.c:2981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2979
    functionDepth: 1
    functionLinenumber: 2979
    functionLinenumberEnd: 2982
    functionName: IsPromiseValuableForStatus
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - IsStrIn
    - PromiseGetPromiseType
    linkageType: ''
    returnType: bool
    signature: bool IsPromiseValuableForStatus(const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/eval_context.c:2991,1
    - Dst: IsStrIn
      Src: /src/core/libpromises/eval_context.c:2991,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/eval_context.c:2991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2989
    functionDepth: 1
    functionLinenumber: 2989
    functionLinenumberEnd: 2992
    functionName: IsPromiseValuableForLogging
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - IsStrIn
    - PromiseGetPromiseType
    linkageType: ''
    returnType: bool
    signature: bool IsPromiseValuableForLogging(const Promise *pp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:2999,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/eval_context.c:2999,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:3000,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:3000,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3002,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/eval_context.c:3005,1
    - Dst: EvalContextHeapContainsHard
      Src: /src/core/libpromises/eval_context.c:3007,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3009,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3017,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3020,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/libpromises/eval_context.c:3021,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/eval_context.c:3022,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3026,1
    - Dst: EvalContextStackFrameAddSoft
      Src: /src/core/libpromises/eval_context.c:3031,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/eval_context.c:3036,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:3040,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3044,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - ctx
    - list
    - persistence_ttl
    - policy
    - context_scope
    argTypes:
    - EvalContext*
    - Rlist*
    - unsigned int
    - PersistentClassPolicy
    - ContextScope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 2994
    functionDepth: 9
    functionLinenumber: 2994
    functionLinenumberEnd: 3046
    functionName: AddAllClasses
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - CanonifyNameInPlace
    - EvalContextClassPutSoft
    - EvalContextStackFrameAddSoft
    - EvalContextHeapContainsHard
    - ProgrammingError
    - Log
    - strcmp
    - xstrdup
    - RlistScalarValue
    - free
    - EvalContextHeapPersistentSave
    linkageType: ''
    returnType: void
    signature: "void AddAllClasses(EvalContext *ctx, const Rlist *list, unsigned int
      persistence_ttl,\n                          PersistentClassPolicy policy, ContextScope
      context_scope)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CheckParseContext
      Src: /src/core/libpromises/eval_context.c:3052,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/eval_context.c:3052,1
    - Dst: EvalContextHeapContainsHard
      Src: /src/core/libpromises/eval_context.c:3057,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/eval_context.c:3057,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3059,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/eval_context.c:3060,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/eval_context.c:3064,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3066,1
    - Dst: EvalContextHeapPersistentRemove
      Src: /src/core/libpromises/eval_context.c:3068,1
    - Dst: ClassRefParse
      Src: /src/core/libpromises/eval_context.c:3071,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/eval_context.c:3071,1
    - Dst: EvalContextClassRemove
      Src: /src/core/libpromises/eval_context.c:3072,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/eval_context.c:3073,1
    - Dst: EvalContextStackFrameRemoveSoft
      Src: /src/core/libpromises/eval_context.c:3075,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/eval_context.c:3075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - list
    argTypes:
    - EvalContext*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3048
    functionDepth: 9
    functionLinenumber: 3048
    functionLinenumberEnd: 3077
    functionName: DeleteAllClasses
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - ClassRefDestroy
    - ClassRefParse
    - EvalContextHeapContainsHard
    - EvalContextHeapPersistentRemove
    - Log
    - CheckParseContext
    - EvalContextStackFrameRemoveSoft
    - RlistScalarValue
    - EvalContextClassRemove
    - CanonifyName
    linkageType: ''
    returnType: void
    signature: void DeleteAllClasses(EvalContext *ctx, const Rlist *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - PromiseResult
    - Promise
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3079
    functionDepth: 0
    functionLinenumber: 3079
    functionLinenumberEnd: 3081
    functionName: ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB(void, TrackTotalCompliance,
      ARG_UNUSED PromiseResult, status, ARG_UNUSED const Promise *, pp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:3118,1
    - Dst: AddAllClasses
      Src: /src/core/libpromises/eval_context.c:3121,1
    - Dst: DeleteAllClasses
      Src: /src/core/libpromises/eval_context.c:3122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - status
    - dc
    argTypes:
    - EvalContext*
    - PromiseResult
    - DefineClasses*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3123
      start: 3083
    functionDepth: 10
    functionLinenumber: 3083
    functionLinenumberEnd: 3123
    functionName: SetPromiseOutcomeClasses
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - DeleteAllClasses
    - AddAllClasses
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void SetPromiseOutcomeClasses(EvalContext *ctx, PromiseResult status,
      const DefineClasses *dc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libpromises/eval_context.c:3129,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/eval_context.c:3130,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:3132,1
    - Dst: RemoteSysLog
      Src: /src/core/libpromises/eval_context.c:3134,1
    - Dst: BufferData
      Src: /src/core/libpromises/eval_context.c:3134,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:3136,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3138,1
    - Dst: BufferData
      Src: /src/core/libpromises/eval_context.c:3138,1
    - Dst: lstat
      Src: /src/core/libpromises/eval_context.c:3145,1
    - Dst: creat
      Src: /src/core/libpromises/eval_context.c:3148,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3151,1
    - Dst: close
      Src: /src/core/libpromises/eval_context.c:3154,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/eval_context.c:3158,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3162,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3166,1
    - Dst: BufferData
      Src: /src/core/libpromises/eval_context.c:3166,1
    - Dst: fprintf
      Src: /src/core/libpromises/eval_context.c:3167,1
    - Dst: BufferData
      Src: /src/core/libpromises/eval_context.c:3167,1
    - Dst: fclose
      Src: /src/core/libpromises/eval_context.c:3169,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/eval_context.c:3172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - tc
    - logname
    argTypes:
    - EvalContext*
    - TransactionContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3178
      start: 3125
    functionDepth: 8
    functionLinenumber: 3125
    functionLinenumberEnd: 3178
    functionName: SummarizeTransaction
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - creat
    - BufferData
    - BufferDestroy
    - RemoteSysLog
    - ExpandScalar
    - safe_fopen
    - Log
    - strcmp
    - lstat
    - fprintf
    - BufferNew
    - fclose
    - close
    linkageType: ''
    returnType: void
    signature: void SummarizeTransaction(EvalContext *ctx, const TransactionContext
      *tc, const char *logname)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IsPromiseValuableForLogging
      Src: /src/core/libpromises/eval_context.c:3182,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:3211,1
    - Dst: SummarizeTransaction
      Src: /src/core/libpromises/eval_context.c:3214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - status
    - pp
    - tc
    argTypes:
    - EvalContext*
    - PromiseResult
    - Promise*
    - TransactionContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3215
      start: 3180
    functionDepth: 9
    functionLinenumber: 3180
    functionLinenumberEnd: 3215
    functionName: DoSummarizeTransaction
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - IsPromiseValuableForLogging
    - SummarizeTransaction
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void DoSummarizeTransaction(EvalContext *ctx, PromiseResult status,
      const Promise *pp, const TransactionContext *tc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetHandle
      Src: /src/core/libpromises/eval_context.c:3224,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/eval_context.c:3227,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:3227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - pp
    - result
    argTypes:
    - EvalContext*
    - Promise*
    - PromiseResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3236
      start: 3217
    functionDepth: 1
    functionLinenumber: 3217
    functionLinenumberEnd: 3236
    functionName: NotifyDependantPromises
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StringSetAdd
    - xstrdup
    - PromiseGetHandle
    linkageType: ''
    returnType: void
    signature: void NotifyDependantPromises(EvalContext *ctx, const Promise *pp, PromiseResult
      result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3240,1
    - Dst: IsPromiseValuableForStatus
      Src: /src/core/libpromises/eval_context.c:3241,1
    - Dst: TrackTotalCompliance
      Src: /src/core/libpromises/eval_context.c:3243,1
    - Dst: UpdatePromiseCounters
      Src: /src/core/libpromises/eval_context.c:3244,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/libpromises/eval_context.c:3247,1
    - Dst: DoSummarizeTransaction
      Src: /src/core/libpromises/eval_context.c:3248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - pp
    - attr
    - status
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - PromiseResult
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 3239
        line_start: 3239
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3249
      start: 3238
    functionDepth: 11
    functionLinenumber: 3238
    functionLinenumberEnd: 3249
    functionName: ClassAuditLog
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - TrackTotalCompliance
    - UpdatePromiseCounters
    - DoSummarizeTransaction
    - SetPromiseOutcomeClasses
    - IsPromiseValuableForStatus
    linkageType: ''
    returnType: void
    signature: void ClassAuditLog(EvalContext *ctx, const Promise *pp, const Attributes
      *attr, PromiseResult status)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WouldLog
      Src: /src/core/libpromises/eval_context.c:3253,1
    - Dst: StringWriter
      Src: /src/core/libpromises/eval_context.c:3258,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/eval_context.c:3259,1
    - Dst: PromiseGetHandle
      Src: /src/core/libpromises/eval_context.c:3260,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/eval_context.c:3262,1
    - Dst: PromiseGetHandle
      Src: /src/core/libpromises/eval_context.c:3262,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/libpromises/eval_context.c:3266,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/eval_context.c:3269,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:3273,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/eval_context.c:3275,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:3275,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/eval_context.c:3281,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/eval_context.c:3281,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/eval_context.c:3285,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/eval_context.c:3286,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/eval_context.c:3294,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3297,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/eval_context.c:3297,1
    - Dst: WriterClose
      Src: /src/core/libpromises/eval_context.c:3298,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3251
    functionDepth: 8
    functionLinenumber: 3251
    functionLinenumberEnd: 3299
    functionName: LogPromiseContext
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - WriterClose
    - RvalScalarValue
    - WouldLog
    - WriterWrite
    - StringWriter
    - StringWriterData
    - Log
    - EvalContextVariableControlCommonGet
    - WriterWriteF
    - RlistWrite
    - PromiseGetHandle
    linkageType: ''
    returnType: void
    signature: void LogPromiseContext(const EvalContext *ctx, const Promise *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3303,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3304,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3307,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/eval_context.c:3307,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/eval_context.c:3309,1
    - Dst: LogPromiseContext
      Src: /src/core/libpromises/eval_context.c:3313,1
    - Dst: va_start
      Src: /src/core/libpromises/eval_context.c:3317,1
    - Dst: VLog
      Src: /src/core/libpromises/eval_context.c:3318,1
    - Dst: va_end
      Src: /src/core/libpromises/eval_context.c:3319,1
    - Dst: ClassAuditLog
      Src: /src/core/libpromises/eval_context.c:3326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - ctx
    - level
    - status
    - pp
    - attr
    - fmt
    argTypes:
    - EvalContext*
    - LogLevel
    - PromiseResult
    - Promise*
    - Attributes*
    - char*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 3302
        line_start: 3302
        source_file: /src/core/libpromises/eval_context.c
    - condition: (!NULL_OR_EMPTY(fmt) || (level == LOG_LEVEL_NOTHING))
      pos:
        line_end: 3306
        line_start: 3306
        source_file: /src/core/libpromises/eval_context.c
    - condition: (attr != NULL)
      pos:
        line_end: 3303
        line_start: 3303
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3328
      start: 3301
    functionDepth: 12
    functionLinenumber: 3301
    functionLinenumberEnd: 3328
    functionName: cfPS
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - ClassAuditLog
    - va_start
    - assert
    - va_end
    - LogPromiseContext
    - VLog
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: void
    signature: void cfPS(EvalContext *ctx, LogLevel level, PromiseResult status, const
      Promise *pp, const Attributes *attr, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3332,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3333,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3334,1
    - Dst: LogPromiseContext
      Src: /src/core/libpromises/eval_context.c:3336,1
    - Dst: va_start
      Src: /src/core/libpromises/eval_context.c:3339,1
    - Dst: VLog
      Src: /src/core/libpromises/eval_context.c:3340,1
    - Dst: va_end
      Src: /src/core/libpromises/eval_context.c:3341,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/libpromises/eval_context.c:3343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - pp
    - attr
    - fmt
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3331
        line_start: 3331
        source_file: /src/core/libpromises/eval_context.c
    - condition: (attr != NULL)
      pos:
        line_end: 3333
        line_start: 3333
        source_file: /src/core/libpromises/eval_context.c
    - condition: (pp != NULL)
      pos:
        line_end: 3332
        line_start: 3332
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3344
      start: 3330
    functionDepth: 11
    functionLinenumber: 3330
    functionLinenumberEnd: 3344
    functionName: RecordChange
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - va_start
    - assert
    - va_end
    - LogPromiseContext
    - SetPromiseOutcomeClasses
    - VLog
    linkageType: ''
    returnType: void
    signature: void RecordChange(EvalContext *ctx, const Promise *pp, const Attributes
      *attr, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3348,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3349,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3350,1
    - Dst: LogPromiseContext
      Src: /src/core/libpromises/eval_context.c:3352,1
    - Dst: va_start
      Src: /src/core/libpromises/eval_context.c:3355,1
    - Dst: VLog
      Src: /src/core/libpromises/eval_context.c:3356,1
    - Dst: va_end
      Src: /src/core/libpromises/eval_context.c:3357,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/libpromises/eval_context.c:3359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - pp
    - attr
    - fmt
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3347
        line_start: 3347
        source_file: /src/core/libpromises/eval_context.c
    - condition: (pp != NULL)
      pos:
        line_end: 3348
        line_start: 3348
        source_file: /src/core/libpromises/eval_context.c
    - condition: (attr != NULL)
      pos:
        line_end: 3349
        line_start: 3349
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3360
      start: 3346
    functionDepth: 11
    functionLinenumber: 3346
    functionLinenumberEnd: 3360
    functionName: RecordNoChange
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - va_start
    - assert
    - va_end
    - LogPromiseContext
    - SetPromiseOutcomeClasses
    - VLog
    linkageType: ''
    returnType: void
    signature: void RecordNoChange(EvalContext *ctx, const Promise *pp, const Attributes
      *attr, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3364,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3365,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3366,1
    - Dst: LogPromiseContext
      Src: /src/core/libpromises/eval_context.c:3368,1
    - Dst: va_start
      Src: /src/core/libpromises/eval_context.c:3371,1
    - Dst: VLog
      Src: /src/core/libpromises/eval_context.c:3372,1
    - Dst: va_end
      Src: /src/core/libpromises/eval_context.c:3373,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/libpromises/eval_context.c:3375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - pp
    - attr
    - fmt
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3363
        line_start: 3363
        source_file: /src/core/libpromises/eval_context.c
    - condition: (attr != NULL)
      pos:
        line_end: 3365
        line_start: 3365
        source_file: /src/core/libpromises/eval_context.c
    - condition: (pp != NULL)
      pos:
        line_end: 3364
        line_start: 3364
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3376
      start: 3362
    functionDepth: 11
    functionLinenumber: 3362
    functionLinenumberEnd: 3376
    functionName: RecordFailure
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - va_start
    - assert
    - va_end
    - LogPromiseContext
    - SetPromiseOutcomeClasses
    - VLog
    linkageType: ''
    returnType: void
    signature: void RecordFailure(EvalContext *ctx, const Promise *pp, const Attributes
      *attr, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3380,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3381,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3382,1
    - Dst: LogPromiseContext
      Src: /src/core/libpromises/eval_context.c:3384,1
    - Dst: va_start
      Src: /src/core/libpromises/eval_context.c:3387,1
    - Dst: VLog
      Src: /src/core/libpromises/eval_context.c:3388,1
    - Dst: va_end
      Src: /src/core/libpromises/eval_context.c:3389,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/libpromises/eval_context.c:3391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - pp
    - attr
    - fmt
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3379
        line_start: 3379
        source_file: /src/core/libpromises/eval_context.c
    - condition: (attr != NULL)
      pos:
        line_end: 3381
        line_start: 3381
        source_file: /src/core/libpromises/eval_context.c
    - condition: (pp != NULL)
      pos:
        line_end: 3380
        line_start: 3380
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3392
      start: 3378
    functionDepth: 11
    functionLinenumber: 3378
    functionLinenumberEnd: 3392
    functionName: RecordWarning
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - va_start
    - assert
    - va_end
    - LogPromiseContext
    - SetPromiseOutcomeClasses
    - VLog
    linkageType: ''
    returnType: void
    signature: void RecordWarning(EvalContext *ctx, const Promise *pp, const Attributes
      *attr, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3396,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3397,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3398,1
    - Dst: LogPromiseContext
      Src: /src/core/libpromises/eval_context.c:3400,1
    - Dst: va_start
      Src: /src/core/libpromises/eval_context.c:3403,1
    - Dst: VLog
      Src: /src/core/libpromises/eval_context.c:3404,1
    - Dst: va_end
      Src: /src/core/libpromises/eval_context.c:3405,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/libpromises/eval_context.c:3407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - pp
    - attr
    - fmt
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3395
        line_start: 3395
        source_file: /src/core/libpromises/eval_context.c
    - condition: (pp != NULL)
      pos:
        line_end: 3396
        line_start: 3396
        source_file: /src/core/libpromises/eval_context.c
    - condition: (attr != NULL)
      pos:
        line_end: 3397
        line_start: 3397
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3408
      start: 3394
    functionDepth: 11
    functionLinenumber: 3394
    functionLinenumberEnd: 3408
    functionName: RecordDenial
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - va_start
    - assert
    - va_end
    - LogPromiseContext
    - SetPromiseOutcomeClasses
    - VLog
    linkageType: ''
    returnType: void
    signature: void RecordDenial(EvalContext *ctx, const Promise *pp, const Attributes
      *attr, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3412,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3413,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3414,1
    - Dst: LogPromiseContext
      Src: /src/core/libpromises/eval_context.c:3416,1
    - Dst: va_start
      Src: /src/core/libpromises/eval_context.c:3419,1
    - Dst: VLog
      Src: /src/core/libpromises/eval_context.c:3420,1
    - Dst: va_end
      Src: /src/core/libpromises/eval_context.c:3421,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/libpromises/eval_context.c:3423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - pp
    - attr
    - fmt
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3411
        line_start: 3411
        source_file: /src/core/libpromises/eval_context.c
    - condition: (attr != NULL)
      pos:
        line_end: 3413
        line_start: 3413
        source_file: /src/core/libpromises/eval_context.c
    - condition: (pp != NULL)
      pos:
        line_end: 3412
        line_start: 3412
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3424
      start: 3410
    functionDepth: 11
    functionLinenumber: 3410
    functionLinenumberEnd: 3424
    functionName: RecordInterruption
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - va_start
    - assert
    - va_end
    - LogPromiseContext
    - SetPromiseOutcomeClasses
    - VLog
    linkageType: ''
    returnType: void
    signature: void RecordInterruption(EvalContext *ctx, const Promise *pp, const
      Attributes *attr, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3429,1
    - Dst: xasprintf
      Src: /src/core/libpromises/eval_context.c:3439,1
    - Dst: xasprintf
      Src: /src/core/libpromises/eval_context.c:3443,1
    - Dst: LogPromiseContext
      Src: /src/core/libpromises/eval_context.c:3446,1
    - Dst: va_start
      Src: /src/core/libpromises/eval_context.c:3449,1
    - Dst: VLog
      Src: /src/core/libpromises/eval_context.c:3450,1
    - Dst: va_end
      Src: /src/core/libpromises/eval_context.c:3451,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3453,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/libpromises/eval_context.c:3455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - pp
    - attr
    - result
    - change_desc_fmt
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - PromiseResult*
    - char*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 3428
        line_start: 3428
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3463
      start: 3426
    functionDepth: 11
    functionLinenumber: 3426
    functionLinenumberEnd: 3463
    functionName: MakingChanges
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - va_start
    - assert
    - va_end
    - xasprintf
    - LogPromiseContext
    - SetPromiseOutcomeClasses
    - VLog
    - free
    linkageType: ''
    returnType: bool
    signature: "bool MakingChanges(EvalContext *ctx, const Promise *pp, const Attributes
      *attr,\n                   PromiseResult *result, const char *change_desc_fmt,
      ...)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3468,1
    - Dst: xasprintf
      Src: /src/core/libpromises/eval_context.c:3478,1
    - Dst: xasprintf
      Src: /src/core/libpromises/eval_context.c:3482,1
    - Dst: LogPromiseContext
      Src: /src/core/libpromises/eval_context.c:3485,1
    - Dst: va_start
      Src: /src/core/libpromises/eval_context.c:3488,1
    - Dst: VLog
      Src: /src/core/libpromises/eval_context.c:3489,1
    - Dst: va_end
      Src: /src/core/libpromises/eval_context.c:3490,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3492,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/libpromises/eval_context.c:3494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - pp
    - attr
    - result
    - change_desc_fmt
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - PromiseResult*
    - char*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 3467
        line_start: 3467
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3502
      start: 3465
    functionDepth: 11
    functionLinenumber: 3465
    functionLinenumberEnd: 3502
    functionName: MakingInternalChanges
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - va_start
    - assert
    - va_end
    - xasprintf
    - LogPromiseContext
    - SetPromiseOutcomeClasses
    - VLog
    - free
    linkageType: ''
    returnType: bool
    signature: "bool MakingInternalChanges(EvalContext *ctx, const Promise *pp, const
      Attributes *attr,\n                           PromiseResult *result, const char
      *change_desc_fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - enabled
    argTypes:
    - EvalContext*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3504
    functionDepth: 0
    functionLinenumber: 3504
    functionLinenumberEnd: 3507
    functionName: SetChecksumUpdatesDefault
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetChecksumUpdatesDefault(EvalContext *ctx, bool enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3509
    functionDepth: 0
    functionLinenumber: 3509
    functionLinenumberEnd: 3512
    functionName: GetChecksumUpdatesDefault
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool GetChecksumUpdatesDefault(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AppendItem
      Src: /src/core/libpromises/eval_context.c:3516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ip_address
    - iface
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3514
    functionDepth: 1
    functionLinenumber: 3514
    functionLinenumberEnd: 3518
    functionName: EvalContextAddIpAddress
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 3
    functionsReached:
    - AppendItem
    linkageType: ''
    returnType: void
    signature: void EvalContextAddIpAddress(EvalContext *ctx, const char *ip_address,
      const char *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemList
      Src: /src/core/libpromises/eval_context.c:3522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3524
      start: 3520
    functionDepth: 0
    functionLinenumber: 3520
    functionLinenumberEnd: 3524
    functionName: EvalContextDeleteIpAddresses
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 3
    functionsReached:
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void EvalContextDeleteIpAddresses(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3529
      start: 3526
    functionDepth: 0
    functionLinenumber: 3526
    functionLinenumberEnd: 3529
    functionName: EvalContextGetIpAddresses
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Item
    signature: Item *EvalContextGetIpAddresses(const EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - option
    - value
    argTypes:
    - EvalContext*
    - EvalContextOption
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3541
      start: 3531
    functionDepth: 0
    functionLinenumber: 3531
    functionLinenumberEnd: 3541
    functionName: EvalContextSetEvalOption
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EvalContextSetEvalOption(EvalContext *ctx, EvalContextOption option,
      bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - option
    argTypes:
    - EvalContext*
    - EvalContextOption
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3546
      start: 3543
    functionDepth: 0
    functionLinenumber: 3543
    functionLinenumberEnd: 3546
    functionName: EvalContextGetEvalOption
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EvalContextGetEvalOption(EvalContext *ctx, EvalContextOption option)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3550,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:3551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3552
      start: 3548
    functionDepth: 0
    functionLinenumber: 3548
    functionLinenumberEnd: 3552
    functionName: EvalContextSetLaunchDirectory
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void EvalContextSetLaunchDirectory(EvalContext *ctx, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3557,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3558,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/eval_context.c:3559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - entry_point
    argTypes:
    - EvalContext*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3556
        line_start: 3556
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3560
      start: 3554
    functionDepth: 1
    functionLinenumber: 3554
    functionLinenumberEnd: 3560
    functionName: EvalContextSetEntryPoint
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - SafeStringDuplicate
    - free
    linkageType: ''
    returnType: void
    signature: "void EvalContextSetEntryPoint(\n    EvalContext *const ctx, const
      char *const entry_point)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3563
        line_start: 3563
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3566
      start: 3562
    functionDepth: 0
    functionLinenumber: 3562
    functionLinenumberEnd: 3566
    functionName: EvalContextGetEntryPoint
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *EvalContextGetEntryPoint(EvalContext *const ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ignore
    argTypes:
    - EvalContext*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3571
      start: 3568
    functionDepth: 0
    functionLinenumber: 3568
    functionLinenumberEnd: 3571
    functionName: EvalContextSetIgnoreLocks
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EvalContextSetIgnoreLocks(EvalContext *ctx, bool ignore)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3576
      start: 3573
    functionDepth: 0
    functionLinenumber: 3573
    functionLinenumberEnd: 3576
    functionName: EvalContextIsIgnoringLocks
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EvalContextIsIgnoringLocks(const EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3585,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:3586,1
    - Dst: ClassTableIteratorNew
      Src: /src/core/libpromises/eval_context.c:3590,1
    - Dst: ClassesMatching
      Src: /src/core/libpromises/eval_context.c:3595,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libpromises/eval_context.c:3596,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/eval_context.c:3600,1
    - Dst: ClassesMatchingLocalRecursive
      Src: /src/core/libpromises/eval_context.c:3605,1
    - Dst: StringSetJoin
      Src: /src/core/libpromises/eval_context.c:3607,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/eval_context.c:3608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - regex
    - tags
    - first_only
    - stack_index
    argTypes:
    - EvalContext*
    - char*
    - Rlist*
    - bool
    - size_t
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3584
        line_start: 3584
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3612
      start: 3578
    functionDepth: 1
    functionLinenumber: 3578
    functionLinenumberEnd: 3612
    functionName: ClassesMatchingLocalRecursive
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - StringSetJoin
    - assert
    - StringSetDestroy
    - ClassesMatching
    - ClassTableIteratorDestroy
    - StringSetNew
    - ClassesMatchingLocalRecursive
    - ClassTableIteratorNew
    - SeqAt
    linkageType: ''
    returnType: StringSet
    signature: "StringSet *ClassesMatchingLocalRecursive(\n    const EvalContext *ctx,\n
      \   const char *regex,\n    const Rlist *tags,\n    bool first_only,\n    size_t
      stack_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3620,1
    - Dst: ClassesMatchingLocalRecursive
      Src: /src/core/libpromises/eval_context.c:3621,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:3622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - regex
    - tags
    - first_only
    argTypes:
    - EvalContext*
    - char*
    - Rlist*
    - bool
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3619
        line_start: 3619
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3623
      start: 3614
    functionDepth: 2
    functionLinenumber: 3614
    functionLinenumberEnd: 3623
    functionName: ClassesMatchingLocal
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - assert
    - ClassesMatchingLocalRecursive
    linkageType: ''
    returnType: StringSet
    signature: "StringSet *ClassesMatchingLocal(\n    const EvalContext *ctx,\n    const
      char *regex,\n    const Rlist *tags,\n    bool first_only)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassTableIteratorNewGlobal
      Src: /src/core/libpromises/eval_context.c:3632,1
    - Dst: ClassesMatching
      Src: /src/core/libpromises/eval_context.c:3633,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libpromises/eval_context.c:3634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - regex
    - tags
    - first_only
    argTypes:
    - EvalContext*
    - char*
    - Rlist*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3636
      start: 3625
    functionDepth: 2
    functionLinenumber: 3625
    functionLinenumberEnd: 3636
    functionName: ClassesMatchingGlobal
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - ClassTableIteratorDestroy
    - EvalContextClassTableIteratorNewGlobal
    - ClassesMatching
    linkageType: ''
    returnType: StringSet
    signature: "StringSet *ClassesMatchingGlobal(\n    const EvalContext *ctx,\n    const
      char *regex,\n    const Rlist *tags,\n    bool first_only)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libpromises/eval_context.c:3639,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/eval_context.c:3641,1
    - Dst: ClassTableIteratorNext
      Src: /src/core/libpromises/eval_context.c:3644,1
    - Dst: ClassRefToString
      Src: /src/core/libpromises/eval_context.c:3646,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:3649,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/eval_context.c:3650,1
    - Dst: EvalContextClassTags
      Src: /src/core/libpromises/eval_context.c:3653,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/eval_context.c:3659,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/eval_context.c:3661,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/eval_context.c:3662,1
    - Dst: strcmp
      Src: /src/core/libpromises/eval_context.c:3665,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/eval_context.c:3666,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/eval_context.c:3681,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3685,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3690,1
    - Dst: StringSetSize
      Src: /src/core/libpromises/eval_context.c:3693,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/eval_context.c:3701,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 5
    argNames:
    - ctx
    - iter
    - regex
    - tags
    - first_only
    argTypes:
    - EvalContext*
    - ClassTableIterator*
    - char*
    - Rlist*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3637
    functionDepth: 5
    functionLinenumber: 3637
    functionLinenumberEnd: 3705
    functionName: ClassesMatching
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 4
    functionsReached:
    - EvalContextClassTags
    - StringSetIteratorNext
    - ClassRefToString
    - StringSetSize
    - CompileRegex
    - RegexDestroy
    - StringMatchFullWithPrecompiledRegex
    - StringMatchFull
    - strcmp
    - ClassTableIteratorNext
    - RlistScalarValue
    - StringSetIteratorInit
    - free
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: StringSet
    signature: StringSet *ClassesMatching(const EvalContext *ctx, ClassTableIterator
      *iter, const char* regex, const Rlist *tags, bool first_only)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/eval_context.c:3709,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libpromises/eval_context.c:3714,1
    - Dst: BufferNew
      Src: /src/core/libpromises/eval_context.c:3716,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/eval_context.c:3717,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/eval_context.c:3717,1
    - Dst: JsonStringCreate
      Src: /src/core/libpromises/eval_context.c:3718,1
    - Dst: BufferData
      Src: /src/core/libpromises/eval_context.c:3718,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/eval_context.c:3719,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/eval_context.c:3724,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/eval_context.c:3727,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/eval_context.c:3729,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/eval_context.c:3731,1
    - Dst: JsonLength
      Src: /src/core/libpromises/eval_context.c:3731,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/eval_context.c:3732,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/eval_context.c:3734,1
    - Dst: BufferNew
      Src: /src/core/libpromises/eval_context.c:3736,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/eval_context.c:3737,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libpromises/eval_context.c:3738,1
    - Dst: BufferData
      Src: /src/core/libpromises/eval_context.c:3738,1
    - Dst: JsonExpandElement
      Src: /src/core/libpromises/eval_context.c:3738,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/eval_context.c:3738,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/eval_context.c:3739,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/eval_context.c:3746,1
    - Dst: JsonLength
      Src: /src/core/libpromises/eval_context.c:3746,1
    - Dst: JsonLength
      Src: /src/core/libpromises/eval_context.c:3747,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libpromises/eval_context.c:3749,1
    - Dst: JsonExpandElement
      Src: /src/core/libpromises/eval_context.c:3749,1
    - Dst: JsonArrayGet
      Src: /src/core/libpromises/eval_context.c:3749,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/eval_context.c:3755,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - source
    argTypes:
    - EvalContext*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3707
    functionDepth: 4
    functionLinenumber: 3707
    functionLinenumberEnd: 3757
    functionName: JsonExpandElement
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - JsonGetContainerType
    - JsonIteratorNextKey
    - BufferDestroy
    - BufferNew
    - JsonObjectGet
    - JsonGetPrimitiveType
    - BufferData
    - JsonExpandElement
    - JsonCopy
    - JsonGetElementType
    - JsonArrayAppendElement
    - JsonPrimitiveGetAsString
    - JsonObjectCreate
    - JsonStringCreate
    - JsonIteratorInit
    - ExpandScalar
    - JsonArrayGet
    - JsonLength
    - JsonObjectAppendElement
    - ProgrammingError
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement * JsonExpandElement(EvalContext *ctx, const JsonElement
      *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 3760
        line_start: 3760
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3763
      start: 3759
    functionDepth: 0
    functionLinenumber: 3759
    functionLinenumberEnd: 3763
    functionName: EvalContextAllClassesGet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: StringSet
    signature: StringSet *EvalContextAllClassesGet(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3767,1
    - Dst: Nova_ClassHistoryEnable
      Src: /src/core/libpromises/eval_context.c:3768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - enable
    argTypes:
    - EvalContext*
    - bool
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 3766
        line_start: 3766
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3769
      start: 3765
    functionDepth: 0
    functionLinenumber: 3765
    functionLinenumberEnd: 3769
    functionName: EvalContextAllClassesLoggingEnable
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - Nova_ClassHistoryEnable
    linkageType: ''
    returnType: void
    signature: void EvalContextAllClassesLoggingEnable(EvalContext *ctx, bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3773,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/eval_context.c:3774,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:3774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - bundle_name
    argTypes:
    - EvalContext*
    - char*
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 3772
        line_start: 3772
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3775
      start: 3771
    functionDepth: 0
    functionLinenumber: 3771
    functionLinenumberEnd: 3775
    functionName: EvalContextPushBundleName
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    - xstrdup
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void EvalContextPushBundleName(const EvalContext *ctx, const char *bundle_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 3778
        line_start: 3778
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3781
      start: 3777
    functionDepth: 0
    functionLinenumber: 3777
    functionLinenumberEnd: 3781
    functionName: EvalContextGetBundleNames
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: StringSet
    signature: StringSet *EvalContextGetBundleNames(const EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3785,1
    - Dst: RemoteVarPromisesMapNew
      Src: /src/core/libpromises/eval_context.c:3790,1
    - Dst: RemoteVarPromisesMapGet
      Src: /src/core/libpromises/eval_context.c:3793,1
    - Dst: SeqNew
      Src: /src/core/libpromises/eval_context.c:3799,1
    - Dst: RemoteVarPromisesMapInsert
      Src: /src/core/libpromises/eval_context.c:3800,1
    - Dst: xstrdup
      Src: /src/core/libpromises/eval_context.c:3800,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/eval_context.c:3803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - bundle_name
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 3784
        line_start: 3784
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3804
      start: 3783
    functionDepth: 3
    functionLinenumber: 3783
    functionLinenumberEnd: 3804
    functionName: EvalContextPushRemoteVarPromise
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - RemoteVarPromisesMapInsert
    - RemoteVarPromisesMapNew
    - assert
    - SeqNew
    - xstrdup
    - RemoteVarPromisesMapGet
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void EvalContextPushRemoteVarPromise(EvalContext *ctx, const char *bundle_name,
      const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3808,1
    - Dst: RemoteVarPromisesMapGet
      Src: /src/core/libpromises/eval_context.c:3813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - bundle_name
    argTypes:
    - EvalContext*
    - char*
    assertStmts:
    - condition: (ctx)
      pos:
        line_end: 3807
        line_start: 3807
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3814
      start: 3806
    functionDepth: 0
    functionLinenumber: 3806
    functionLinenumberEnd: 3814
    functionName: EvalContextGetRemoteVarPromises
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - RemoteVarPromisesMapGet
    linkageType: ''
    returnType: Seq
    signature: Seq *EvalContextGetRemoteVarPromises(const EvalContext *ctx, const
      char *bundle_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3818,1
    - Dst: Log
      Src: /src/core/libpromises/eval_context.c:3822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - dump_reports
    argTypes:
    - EvalContext*
    - bool
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3817
        line_start: 3817
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3824
      start: 3816
    functionDepth: 8
    functionLinenumber: 3816
    functionLinenumberEnd: 3824
    functionName: EvalContextSetDumpReports
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - Log
    linkageType: ''
    returnType: void
    signature: void EvalContextSetDumpReports(EvalContext *ctx, bool dump_reports)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3827
        line_start: 3827
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3831
      start: 3826
    functionDepth: 0
    functionLinenumber: 3826
    functionLinenumberEnd: 3831
    functionName: EvalContextGetDumpReports
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool EvalContextGetDumpReports(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3835,1
    - Dst: snprintf
      Src: /src/core/libpromises/eval_context.c:3838,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/eval_context.c:3842,1
    - Dst: EvalContextSetDumpReports
      Src: /src/core/libpromises/eval_context.c:3844,1
    - Dst: access
      Src: /src/core/libpromises/eval_context.c:3844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3834
        line_start: 3834
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3845
      start: 3833
    functionDepth: 9
    functionLinenumber: 3833
    functionLinenumberEnd: 3845
    functionName: EvalContextUpdateDumpReports
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - access
    - snprintf
    - assert
    - GetWorkDir
    - EvalContextSetDumpReports
    linkageType: ''
    returnType: void
    signature: void EvalContextUpdateDumpReports(EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3851,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3854,1
    - Dst: SafeStringLength
      Src: /src/core/libpromises/eval_context.c:3856,1
    - Dst: memcpy
      Src: /src/core/libpromises/eval_context.c:3858,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/eval_context.c:3861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - chroot
    argTypes:
    - char*
    assertStmts:
    - condition: (chroot != NULL)
      pos:
        line_end: 3850
        line_start: 3850
        source_file: /src/core/libpromises/eval_context.c
    - condition: (chroot_len == 0)
      pos:
        line_end: 3853
        line_start: 3853
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3866
      start: 3849
    functionDepth: 2
    functionLinenumber: 3849
    functionLinenumberEnd: 3866
    functionName: SetChangesChroot
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - IsFileSep
    - assert
    - memcpy
    - SafeStringLength
    linkageType: ''
    returnType: void
    signature: void SetChangesChroot(const char *chroot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3871,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3873,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3874,1
    - Dst: IsAbsPath
      Src: /src/core/libpromises/eval_context.c:3874,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3875,1
    - Dst: strlen
      Src: /src/core/libpromises/eval_context.c:3875,1
    - Dst: strncpy
      Src: /src/core/libpromises/eval_context.c:3897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - orig_path
    argTypes:
    - char*
    assertStmts:
    - condition: (chroot_len != 0)
      pos:
        line_end: 3870
        line_start: 3870
        source_file: /src/core/libpromises/eval_context.c
    - condition: (orig_path != NULL)
      pos:
        line_end: 3872
        line_start: 3872
        source_file: /src/core/libpromises/eval_context.c
    - condition: (IsAbsPath(orig_path))
      pos:
        line_end: 3873
        line_start: 3873
        source_file: /src/core/libpromises/eval_context.c
    - condition: (strlen(orig_path) <= (PATH_MAX - chroot_len - 1))
      pos:
        line_end: 3874
        line_start: 3874
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3900
      start: 3868
    functionDepth: 2
    functionLinenumber: 3868
    functionLinenumberEnd: 3900
    functionName: ToChangesChroot
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 9
    functionsReached:
    - assert
    - IsAbsPath
    - strncpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *ToChangesChroot(const char *orig_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3904,1
    - Dst: strncmp
      Src: /src/core/libpromises/eval_context.c:3904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - orig_path
    argTypes:
    - char*
    assertStmts:
    - condition: (strncmp(orig_path, chrooted_path, chroot_len) == 0)
      pos:
        line_end: 3903
        line_start: 3903
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3907
      start: 3902
    functionDepth: 1
    functionLinenumber: 3902
    functionLinenumberEnd: 3907
    functionName: ToNormalRoot
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *ToNormalRoot(const char *orig_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3911,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:3912,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - should_override
    argTypes:
    - EvalContext*
    - bool
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3910
        line_start: 3910
        source_file: /src/core/libpromises/eval_context.c
    - condition: (stack_frame != NULL)
      pos:
        line_end: 3912
        line_start: 3912
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3915
      start: 3909
    functionDepth: 2
    functionLinenumber: 3909
    functionLinenumberEnd: 3915
    functionName: EvalContextOverrideImmutableSet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - LastStackFrame
    linkageType: ''
    returnType: void
    signature: void EvalContextOverrideImmutableSet(EvalContext *ctx, bool should_override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3919,1
    - Dst: LastStackFrame
      Src: /src/core/libpromises/eval_context.c:3920,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 3918
        line_start: 3918
        source_file: /src/core/libpromises/eval_context.c
    - condition: (stack_frame != NULL)
      pos:
        line_end: 3920
        line_start: 3920
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3923
      start: 3917
    functionDepth: 2
    functionLinenumber: 3917
    functionLinenumberEnd: 3923
    functionName: EvalContextOverrideImmutableGet
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - LastStackFrame
    linkageType: ''
    returnType: bool
    signature: bool EvalContextOverrideImmutableGet(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/core/libpromises/eval_context.c:3931,1
    - Dst: clock_gettime
      Src: /src/core/libpromises/eval_context.c:3934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3937
      start: 3927
    functionDepth: 1
    functionLinenumber: 3927
    functionLinenumberEnd: 3937
    functionName: EvalContextEventStart
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: int64_t
    signature: int64_t EvalContextEventStart()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/eval_context.c:3942,1
    - Dst: EvalContextEventStart
      Src: /src/core/libpromises/eval_context.c:3943,1
    - Dst: GetAbsolutePath
      Src: /src/core/libpromises/eval_context.c:3945,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/eval_context.c:3948,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/eval_context.c:3949,1
    - Dst: StringFormat
      Src: /src/core/libpromises/eval_context.c:3953,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/eval_context.c:3953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - source
    - component
    - type
    - ns
    - name
    - offset
    - prev
    - id
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - SourceOffset
    - EventFrame*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3956
      start: 3939
    functionDepth: 10
    functionLinenumber: 3939
    functionLinenumberEnd: 3956
    functionName: EventFrameCreate
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - SafeStringDuplicate
    - EvalContextEventStart
    - xmalloc
    - StringFormat
    - GetAbsolutePath
    linkageType: ''
    returnType: EventFrame
    signature: "EventFrame *EventFrameCreate(const char *source, char *component,
      char *type, const char *ns, const char *name,\n    SourceOffset offset, EventFrame
      *prev, char *id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3962,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3963,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3964,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3966,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3967,1
    - Dst: free
      Src: /src/core/libpromises/eval_context.c:3968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - event
    argTypes:
    - EventFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3970
      start: 3958
    functionDepth: 0
    functionLinenumber: 3958
    functionLinenumberEnd: 3970
    functionName: EventFrameDestroy
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void EventFrameDestroy(EventFrame *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3974,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/eval_context.c:3975,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:3977,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:3978,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:3979,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:3980,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:3981,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:3982,1
    - Dst: JsonObjectAppendInteger64
      Src: /src/core/libpromises/eval_context.c:3983,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/eval_context.c:3984,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/eval_context.c:3986,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/eval_context.c:3987,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/eval_context.c:3988,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/eval_context.c:3989,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/eval_context.c:3990,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/eval_context.c:3992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - event
    argTypes:
    - EventFrame*
    assertStmts:
    - condition: (event != NULL)
      pos:
        line_end: 3973
        line_start: 3973
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 3995
      start: 3972
    functionDepth: 2
    functionLinenumber: 3972
    functionLinenumberEnd: 3995
    functionName: EventToJson
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendObject
    - assert
    - JsonObjectAppendInteger64
    - JsonObjectAppendInteger
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *EventToJson(EventFrame *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:3999,1
    - Dst: StringFormat
      Src: /src/core/libpromises/eval_context.c:4000,1
    - Dst: GetAbsolutePath
      Src: /src/core/libpromises/eval_context.c:4000,1
    - Dst: EventFrameCreate
      Src: /src/core/libpromises/eval_context.c:4001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bp
    - prev_frame
    argTypes:
    - Bundle*
    - EventFrame*
    assertStmts:
    - condition: (bp != NULL)
      pos:
        line_end: 3998
        line_start: 3998
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4002
      start: 3997
    functionDepth: 11
    functionLinenumber: 3997
    functionLinenumberEnd: 4002
    functionName: BundleToEventFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    - GetAbsolutePath
    - StringFormat
    - EventFrameCreate
    linkageType: ''
    returnType: EventFrame
    signature: EventFrame *BundleToEventFrame(const Bundle *bp, EventFrame *prev_frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4006,1
    - Dst: StringFormat
      Src: /src/core/libpromises/eval_context.c:4007,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:4007,1
    - Dst: EventFrameCreate
      Src: /src/core/libpromises/eval_context.c:4008,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:4008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - prev_frame
    argTypes:
    - Promise*
    - EventFrame*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 4005
        line_start: 4005
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4009
      start: 4004
    functionDepth: 11
    functionLinenumber: 4004
    functionLinenumberEnd: 4009
    functionName: PromiseToEventFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    - EventFrameCreate
    - PromiseGetBundle
    - StringFormat
    linkageType: ''
    returnType: EventFrame
    signature: EventFrame *PromiseToEventFrame(const Promise *pp, EventFrame *prev_frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4013,1
    - Dst: StringFormat
      Src: /src/core/libpromises/eval_context.c:4014,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:4014,1
    - Dst: EventFrameCreate
      Src: /src/core/libpromises/eval_context.c:4015,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/eval_context.c:4015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - prev_frame
    argTypes:
    - FnCall*
    - EventFrame*
    assertStmts:
    - condition: (fp != NULL)
      pos:
        line_end: 4012
        line_start: 4012
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4016
      start: 4011
    functionDepth: 11
    functionLinenumber: 4011
    functionLinenumberEnd: 4016
    functionName: FunctionToEventFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - EventFrameCreate
    - PromiseGetBundle
    - StringFormat
    linkageType: ''
    returnType: EventFrame
    signature: EventFrame *FunctionToEventFrame(const FnCall *fp, EventFrame *prev_frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - profiling
    argTypes:
    - EvalContext*
    - bool
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 4019
        line_start: 4019
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4022
      start: 4018
    functionDepth: 0
    functionLinenumber: 4018
    functionLinenumberEnd: 4022
    functionName: EvalContextSetProfiling
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void EvalContextSetProfiling(EvalContext *ctx, bool profiling)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 4025
        line_start: 4025
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4028
      start: 4024
    functionDepth: 0
    functionLinenumber: 4024
    functionLinenumberEnd: 4028
    functionName: EvalContextGetProfiling
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool EvalContextGetProfiling(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4032,1
    - Dst: EvalContextEventStart
      Src: /src/core/libpromises/eval_context.c:4033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 4031
        line_start: 4031
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4034
      start: 4030
    functionDepth: 2
    functionLinenumber: 4030
    functionLinenumberEnd: 4034
    functionName: EvalContextProfilingStart
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    - EvalContextEventStart
    linkageType: ''
    returnType: void
    signature: void EvalContextProfilingStart(EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4038,1
    - Dst: EvalContextEventStart
      Src: /src/core/libpromises/eval_context.c:4045,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4047,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/eval_context.c:4051,1
    - Dst: SeqLength
      Src: /src/core/libpromises/eval_context.c:4053,1
    - Dst: SeqAt
      Src: /src/core/libpromises/eval_context.c:4055,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/eval_context.c:4056,1
    - Dst: EventToJson
      Src: /src/core/libpromises/eval_context.c:4056,1
    - Dst: FileWriter
      Src: /src/core/libpromises/eval_context.c:4060,1
    - Dst: JsonWrite
      Src: /src/core/libpromises/eval_context.c:4061,1
    - Dst: WriterClose
      Src: /src/core/libpromises/eval_context.c:4062,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/eval_context.c:4064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 4037
        line_start: 4037
        source_file: /src/core/libpromises/eval_context.c
    - condition: (end >= start)
      pos:
        line_end: 4046
        line_start: 4046
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4065
      start: 4036
    functionDepth: 7
    functionLinenumber: 4036
    functionLinenumberEnd: 4065
    functionName: EvalContextProfilingEnd
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - JsonDestroy
    - WriterClose
    - assert
    - EventToJson
    - EvalContextEventStart
    - JsonWrite
    - JsonArrayAppendObject
    - SeqLength
    - JsonArrayCreate
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void EvalContextProfilingEnd(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LastStackFrameByEvent
      Src: /src/core/libpromises/eval_context.c:4069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4072
      start: 4067
    functionDepth: 3
    functionLinenumber: 4067
    functionLinenumberEnd: 4072
    functionName: EvalContextGetLastEventFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 2
    functionsReached:
    - LastStackFrameByEvent
    linkageType: ''
    returnType: EventFrame
    signature: EventFrame *EvalContextGetLastEventFrame(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4076,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4077,1
    - Dst: EvalContextEventStart
      Src: /src/core/libpromises/eval_context.c:4080,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4081,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/eval_context.c:4085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - event
    argTypes:
    - EvalContext*
    - EventFrame*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 4075
        line_start: 4075
        source_file: /src/core/libpromises/eval_context.c
    - condition: (end >= start)
      pos:
        line_end: 4080
        line_start: 4080
        source_file: /src/core/libpromises/eval_context.c
    - condition: (event != NULL)
      pos:
        line_end: 4076
        line_start: 4076
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4086
      start: 4074
    functionDepth: 3
    functionLinenumber: 4074
    functionLinenumberEnd: 4086
    functionName: EvalContextAppendEventFrame
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 1
    functionsReached:
    - assert
    - EvalContextEventStart
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void EvalContextAppendEventFrame(EvalContext *ctx, EventFrame *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - eval_order
    argTypes:
    - EvalContext*
    - EvalOrder
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 4091
        line_start: 4091
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4094
      start: 4090
    functionDepth: 0
    functionLinenumber: 4090
    functionLinenumberEnd: 4094
    functionName: EvalContextSetCommonEvalOrder
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void EvalContextSetCommonEvalOrder(EvalContext *ctx, EvalOrder eval_order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - eval_order
    argTypes:
    - EvalContext*
    - EvalOrder
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 4097
        line_start: 4097
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4100
      start: 4096
    functionDepth: 0
    functionLinenumber: 4096
    functionLinenumberEnd: 4100
    functionName: EvalContextSetAgentEvalOrder
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void EvalContextSetAgentEvalOrder(EvalContext *ctx, EvalOrder eval_order)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - evaluation_order
    argTypes:
    - EvalOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4113
      start: 4102
    functionDepth: 0
    functionLinenumber: 4102
    functionLinenumberEnd: 4113
    functionName: EvalContextEvaluationOrderToString
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EvalContextEvaluationOrderToString(EvalOrder evaluation_order)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/eval_context.c:4117,1
    - Dst: StringEqual
      Src: /src/core/libpromises/eval_context.c:4121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - evaluation_order_string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4126
      start: 4115
    functionDepth: 4
    functionLinenumber: 4115
    functionLinenumberEnd: 4126
    functionName: EvalContextEvaluationOrderFromString
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - StringEqual
    linkageType: ''
    returnType: EvalOrder
    signature: EvalOrder EvalContextEvaluationOrderFromString(const char *evaluation_order_string)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4130,1
    - Dst: assert
      Src: /src/core/libpromises/eval_context.c:4131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - bp
    argTypes:
    - EvalContext*
    - Bundle*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 4129
        line_start: 4129
        source_file: /src/core/libpromises/eval_context.c
    - condition: (bp != NULL)
      pos:
        line_end: 4130
        line_start: 4130
        source_file: /src/core/libpromises/eval_context.c
    constantsTouched: []
    func_position:
      end: 4155
      start: 4128
    functionDepth: 0
    functionLinenumber: 4128
    functionLinenumberEnd: 4155
    functionName: EvalContextIsClassicOrder
    functionSourceFile: /src/core/libpromises/eval_context.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool EvalContextIsClassicOrder(EvalContext *ctx, const Bundle *bp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/libpromises/process_linux.c:41,1
    - Dst: open
      Src: /src/core/libpromises/process_linux.c:46,1
    - Dst: assert
      Src: /src/core/libpromises/process_linux.c:66,1
    - Dst: FullRead
      Src: /src/core/libpromises/process_linux.c:70,1
    - Dst: close
      Src: /src/core/libpromises/process_linux.c:71,1
    - Dst: assert
      Src: /src/core/libpromises/process_linux.c:77,1
    - Dst: memrchr
      Src: /src/core/libpromises/process_linux.c:83,1
    - Dst: sscanf
      Src: /src/core/libpromises/process_linux.c:95,1
    - Dst: sysconf
      Src: /src/core/libpromises/process_linux.c:123,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - pid
    - state
    argTypes:
    - pid_t
    - ProcessStat*
    assertStmts:
    - condition: (fd != -1 && "Unable to open /proc/<pid>/stat")
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/core/libpromises/process_linux.c
    - condition: (res < CF_BUFSIZE)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/core/libpromises/process_linux.c
    constantsTouched: []
    func_position:
      end: 126
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 126
    functionName: GetProcessStat
    functionSourceFile: /src/core/libpromises/process_linux.c
    functionUses: 0
    functionsReached:
    - assert
    - memrchr
    - sysconf
    - sscanf
    - FullRead
    - open
    - xsnprintf
    - close
    linkageType: ''
    returnType: bool
    signature: bool GetProcessStat(pid_t pid, ProcessStat *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStat
      Src: /src/core/libpromises/process_linux.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: GetProcessStartTime
    functionSourceFile: /src/core/libpromises/process_linux.c
    functionUses: 15
    functionsReached:
    - GetProcessStat
    linkageType: ''
    returnType: time_t
    signature: time_t GetProcessStartTime(pid_t pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStat
      Src: /src/core/libpromises/process_linux.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 160
    functionName: GetProcessState
    functionSourceFile: /src/core/libpromises/process_linux.c
    functionUses: 17
    functionsReached:
    - GetProcessStat
    linkageType: ''
    returnType: ProcessState
    signature: ProcessState GetProcessState(pid_t pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:57,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/mod_custom.c:59,1
    - Dst: SeqLength
      Src: /src/core/libpromises/mod_custom.c:63,1
    - Dst: SeqAt
      Src: /src/core/libpromises/mod_custom.c:66,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - promise
    argTypes:
    - Promise*
    assertStmts:
    - condition: (promise != NULL)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 73
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 73
    functionName: FindCustomPromiseType
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - PromiseGetPromiseType
    - assert
    - SeqLength
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: Body
    signature: Body *FindCustomPromiseType(const Promise *promise)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:81,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:82,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:83,1
    - Dst: SeqLength
      Src: /src/core/libpromises/mod_custom.c:90,1
    - Dst: SeqAt
      Src: /src/core/libpromises/mod_custom.c:94,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/mod_custom.c:96,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:98,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:100,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/mod_custom.c:101,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:103,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:105,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/mod_custom.c:106,1
    - Dst: debug_abort_if_reached
      Src: /src/core/libpromises/mod_custom.c:110,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:116,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:119,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - promise_block
    - interpreter_out
    - path_out
    argTypes:
    - EvalContext*
    - Body*
    - char**
    - char**
    assertStmts:
    - condition: (promise_block != NULL)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (path_out != NULL)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (interpreter_out != NULL)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 127
      start: 75
    functionDepth: 8
    functionLinenumber: 75
    functionLinenumberEnd: 127
    functionName: GetInterpreterAndPath
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - RvalScalarValue
    - ExpandScalar
    - assert
    - debug_abort_if_reached
    - Log
    - SeqLength
    - free
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: "bool GetInterpreterAndPath(\n    EvalContext *ctx,\n    Body *promise_block,\n
      \   char **interpreter_out,\n    char **path_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/mod_custom.c:131,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/mod_custom.c:132,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:134,1
    - Dst: LogLevelFromString
      Src: /src/core/libpromises/mod_custom.c:135,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:136,1
    - Dst: ActionAttributeLogLevelFromString
      Src: /src/core/libpromises/mod_custom.c:141,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pp
    - promise_log_level
    argTypes:
    - JsonElement*
    - Promise*
    - char*
    assertStmts:
    - condition: (level_string != NULL && message != NULL)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (level != LOG_LEVEL_NOTHING)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 154
      start: 129
    functionDepth: 8
    functionLinenumber: 129
    functionLinenumberEnd: 154
    functionName: PromiseModule_LogJson
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - assert
    - JsonObjectGetAsString
    - Log
    - LogLevelFromString
    - ActionAttributeLogLevelFromString
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel PromiseModule_LogJson(JsonElement *object, const Promise *pp,
      const char *promise_log_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/mod_custom.c:158,1
    - Dst: strchr
      Src: /src/core/libpromises/mod_custom.c:159,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/mod_custom.c:163,1
    - Dst: strchr
      Src: /src/core/libpromises/mod_custom.c:165,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/mod_custom.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: PromiseModule_ParseResultClasses
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - strchr
    - JsonArrayAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *PromiseModule_ParseResultClasses(char *value)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:174,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/mod_custom.c:181,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/mod_custom.c:186,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/mod_custom.c:192,1
    - Dst: getline
      Src: /src/core/libpromises/mod_custom.c:197,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:199,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:200,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:202,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:203,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:209,1
    - Dst: StringStartsWith
      Src: /src/core/libpromises/mod_custom.c:216,1
    - Dst: strchr
      Src: /src/core/libpromises/mod_custom.c:218,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:219,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:222,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libpromises/mod_custom.c:226,1
    - Dst: strlen
      Src: /src/core/libpromises/mod_custom.c:231,1
    - Dst: xstrndup
      Src: /src/core/libpromises/mod_custom.c:233,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:234,1
    - Dst: strlen
      Src: /src/core/libpromises/mod_custom.c:234,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/mod_custom.c:236,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/mod_custom.c:237,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/mod_custom.c:238,1
    - Dst: PromiseModule_LogJson
      Src: /src/core/libpromises/mod_custom.c:239,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/mod_custom.c:244,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:246,1
    - Dst: strchr
      Src: /src/core/libpromises/mod_custom.c:250,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:251,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:254,1
    - Dst: xstrndup
      Src: /src/core/libpromises/mod_custom.c:262,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:263,1
    - Dst: strlen
      Src: /src/core/libpromises/mod_custom.c:263,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:264,1
    - Dst: xstrdup
      Src: /src/core/libpromises/mod_custom.c:266,1
    - Dst: PromiseModule_ParseResultClasses
      Src: /src/core/libpromises/mod_custom.c:267,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/mod_custom.c:268,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:269,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/mod_custom.c:273,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:275,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:280,1
    - Dst: strlen
      Src: /src/core/libpromises/mod_custom.c:280,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:281,1
    - Dst: JsonParse
      Src: /src/core/libpromises/mod_custom.c:283,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:286,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:287,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:290,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:293,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libpromises/mod_custom.c:296,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:304,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:305,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/mod_custom.c:313,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/mod_custom.c:318,1
    - Dst: JsonLength
      Src: /src/core/libpromises/mod_custom.c:324,1
    - Dst: PromiseModule_LogJson
      Src: /src/core/libpromises/mod_custom.c:327,1
    - Dst: JsonArrayGet
      Src: /src/core/libpromises/mod_custom.c:327,1
    - Dst: JsonLength
      Src: /src/core/libpromises/mod_custom.c:337,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/mod_custom.c:349,1
    - Dst: JsonMerge
      Src: /src/core/libpromises/mod_custom.c:355,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/mod_custom.c:356,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/mod_custom.c:360,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:362,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 96
    argCount: 3
    argNames:
    - module
    - pp
    - n_log_msgs
    argTypes:
    - PromiseModule*
    - Promise*
    - uint16_t[]
    assertStmts:
    - condition: (line[bytes] == '\0')
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (equal_sign != NULL)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (strlen(line) > 0)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (bytes > 0)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (strlen(key) == key_length)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (response == NULL)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (response == NULL)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (module != NULL)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (line != NULL)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (equal_sign != NULL)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (!line_based)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (response != NULL)
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (line[bytes - 1] == '\n')
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (strlen(level) == level_length)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (response != NULL)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 364
      start: 171
    functionDepth: 9
    functionLinenumber: 171
    functionLinenumberEnd: 364
    functionName: PromiseModule_Receive
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - PromiseModule_LogJson
    - Log
    - free
    - xstrndup
    - JsonObjectGet
    - StringEqual
    - strlen
    - strchr
    - JsonArrayAppendObject
    - xstrdup
    - JsonObjectCreate
    - StringStartsWith
    - JsonMerge
    - assert
    - JsonArrayGet
    - PromiseGetConstraintAsRval
    - getline
    - PromiseModule_ParseResultClasses
    - FREE_AND_NULL
    - JsonObjectAppendString
    - JsonParse
    - JsonLength
    - JsonDestroy
    - JsonObjectAppendArray
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: "JsonElement *PromiseModule_Receive(PromiseModule *module, const Promise
      *pp,\n                                          uint16_t n_log_msgs[LOG_LEVEL_DEBUG
      + 1])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:368,1
    - Dst: SeqLength
      Src: /src/core/libpromises/mod_custom.c:370,1
    - Dst: SeqAt
      Src: /src/core/libpromises/mod_custom.c:373,1
    - Dst: strlen
      Src: /src/core/libpromises/mod_custom.c:374,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:375,1
    - Dst: memchr
      Src: /src/core/libpromises/mod_custom.c:375,1
    - Dst: fprintf
      Src: /src/core/libpromises/mod_custom.c:376,1
    - Dst: fprintf
      Src: /src/core/libpromises/mod_custom.c:378,1
    - Dst: fflush
      Src: /src/core/libpromises/mod_custom.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - message
    argTypes:
    - PromiseModule*
    - Seq*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (line_length > 0 && memchr(line, '\n', line_length) == NULL)
      pos:
        line_end: 374
        line_start: 374
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 380
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 380
    functionName: PromiseModule_SendMessage
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - fflush
    - strlen
    - assert
    - fprintf
    - SeqLength
    - SeqAt
    - memchr
    linkageType: ''
    returnType: void
    signature: void PromiseModule_SendMessage(PromiseModule *module, Seq *message)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:384,1
    - Dst: getline
      Src: /src/core/libpromises/mod_custom.c:389,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:392,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:395,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:400,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:405,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:410,1
    - Dst: SeqStringFromString
      Src: /src/core/libpromises/mod_custom.c:412,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libpromises/mod_custom.c:414,1
    - Dst: getline
      Src: /src/core/libpromises/mod_custom.c:418,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:421,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/mod_custom.c:426,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:427,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - module
    argTypes:
    - PromiseModule*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 433
      start: 382
    functionDepth: 8
    functionLinenumber: 382
    functionLinenumberEnd: 433
    functionName: PromiseModule_ReceiveHeader
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - assert
    - Log
    - getline
    - free
    - FREE_AND_NULL
    - SeqStringFromString
    linkageType: ''
    returnType: Seq
    signature: Seq *PromiseModule_ReceiveHeader(PromiseModule *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:438,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:440,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:441,1
    - Dst: cf_pclose_full_duplex
      Src: /src/core/libpromises/mod_custom.c:443,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PromiseModule*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 445
      start: 436
    functionDepth: 10
    functionLinenumber: 436
    functionLinenumberEnd: 445
    functionName: PromiseModule_DestroyInternal
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - assert
    - cf_pclose_full_duplex
    - free
    linkageType: ''
    returnType: void
    signature: void PromiseModule_DestroyInternal(PromiseModule *module)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:449,1
    - Dst: access
      Src: /src/core/libpromises/mod_custom.c:451,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:453,1
    - Dst: access
      Src: /src/core/libpromises/mod_custom.c:459,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:461,1
    - Dst: access
      Src: /src/core/libpromises/mod_custom.c:467,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:469,1
    - Dst: xcalloc
      Src: /src/core/libpromises/mod_custom.c:475,1
    - Dst: snprintf
      Src: /src/core/libpromises/mod_custom.c:483,1
    - Dst: snprintf
      Src: /src/core/libpromises/mod_custom.c:487,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:490,1
    - Dst: cf_popen_full_duplex_streams
      Src: /src/core/libpromises/mod_custom.c:492,1
    - Dst: PipeToPid
      Src: /src/core/libpromises/mod_custom.c:497,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:499,1
    - Dst: PromiseModule_DestroyInternal
      Src: /src/core/libpromises/mod_custom.c:500,1
    - Dst: GetProcessStartTime
      Src: /src/core/libpromises/mod_custom.c:504,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:507,1
    - Dst: PromiseModule_DestroyInternal
      Src: /src/core/libpromises/mod_custom.c:508,1
    - Dst: fprintf
      Src: /src/core/libpromises/mod_custom.c:512,1
    - Dst: Version
      Src: /src/core/libpromises/mod_custom.c:512,1
    - Dst: fflush
      Src: /src/core/libpromises/mod_custom.c:513,1
    - Dst: PromiseModule_ReceiveHeader
      Src: /src/core/libpromises/mod_custom.c:515,1
    - Dst: PromiseModule_DestroyInternal
      Src: /src/core/libpromises/mod_custom.c:525,1
    - Dst: SeqLength
      Src: /src/core/libpromises/mod_custom.c:534,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:536,1
    - Dst: SeqAt
      Src: /src/core/libpromises/mod_custom.c:539,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:540,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:545,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:552,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:557,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:564,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:572,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/mod_custom.c:578,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 2
    argNames:
    - interpreter
    - path
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (path != NULL)
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (header_length > flags_offset)
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 581
      start: 447
    functionDepth: 11
    functionLinenumber: 447
    functionLinenumberEnd: 581
    functionName: PromiseModule_Start
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - PromiseModule_ReceiveHeader
    - xcalloc
    - access
    - GetProcessStartTime
    - fflush
    - snprintf
    - Version
    - SeqDestroy
    - assert
    - cf_popen_full_duplex_streams
    - PipeToPid
    - Log
    - fprintf
    - SeqLength
    - PromiseModule_DestroyInternal
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: PromiseModule
    signature: PromiseModule *PromiseModule_Start(char *interpreter, char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:586,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/mod_custom.c:590,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/mod_custom.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - key
    - value
    argTypes:
    - PromiseModule*
    - char*
    - char*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 593
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 593
    functionName: PromiseModule_AppendString
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - assert
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: void
    signature: "void PromiseModule_AppendString(\n    PromiseModule *module, const
      char *key, const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:598,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/mod_custom.c:602,1
    - Dst: JsonObjectAppendInteger64
      Src: /src/core/libpromises/mod_custom.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - key
    - value
    argTypes:
    - PromiseModule*
    - char*
    - int64_t
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 605
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 605
    functionName: PromiseModule_AppendInteger
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - assert
    - JsonObjectCreate
    - JsonObjectAppendInteger64
    linkageType: ''
    returnType: void
    signature: "void PromiseModule_AppendInteger(\n    PromiseModule *module, const
      char *key, int64_t value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:610,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/mod_custom.c:614,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/mod_custom.c:617,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/mod_custom.c:620,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/mod_custom.c:621,1
    - Dst: JsonObjectAppendElement
      Src: /src/core/libpromises/mod_custom.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - module
    - key
    - value
    argTypes:
    - PromiseModule*
    - char*
    - JsonElement*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 625
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 625
    functionName: PromiseModule_AppendAttribute
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendObject
    - assert
    - JsonObjectAppendElement
    - JsonObjectGet
    - JsonObjectCreate
    linkageType: ''
    returnType: void
    signature: "void PromiseModule_AppendAttribute(\n    PromiseModule *module, const
      char *key, JsonElement *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:629,1
    - Dst: FileWriter
      Src: /src/core/libpromises/mod_custom.c:633,1
    - Dst: JsonWriteCompact
      Src: /src/core/libpromises/mod_custom.c:634,1
    - Dst: FileWriterDetach
      Src: /src/core/libpromises/mod_custom.c:635,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/libpromises/mod_custom.c:636,1
    - Dst: fprintf
      Src: /src/core/libpromises/mod_custom.c:637,1
    - Dst: fflush
      Src: /src/core/libpromises/mod_custom.c:638,1
    - Dst: SeqNew
      Src: /src/core/libpromises/mod_custom.c:642,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/mod_custom.c:644,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/mod_custom.c:646,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:648,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libpromises/mod_custom.c:650,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/mod_custom.c:651,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/mod_custom.c:654,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/mod_custom.c:656,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libpromises/mod_custom.c:657,1
    - Dst: xasprintf
      Src: /src/core/libpromises/mod_custom.c:659,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_custom.c:660,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/mod_custom.c:666,1
    - Dst: JsonIteratorCurrentValue
      Src: /src/core/libpromises/mod_custom.c:666,1
    - Dst: xasprintf
      Src: /src/core/libpromises/mod_custom.c:668,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_custom.c:669,1
    - Dst: PromiseModule_SendMessage
      Src: /src/core/libpromises/mod_custom.c:673,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/mod_custom.c:674,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/libpromises/mod_custom.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - module
    argTypes:
    - PromiseModule*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 628
        line_start: 628
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 676
      start: 627
    functionDepth: 7
    functionLinenumber: 627
    functionLinenumberEnd: 676
    functionName: PromiseModule_Send
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - JsonIteratorInit
    - DESTROY_AND_NULL
    - fflush
    - JsonIteratorNextKey
    - SeqDestroy
    - assert
    - JsonPrimitiveGetAsString
    - JsonIteratorCurrentValue
    - xasprintf
    - PromiseModule_SendMessage
    - SeqNew
    - JsonWriteCompact
    - fprintf
    - FileWriterDetach
    - StringEqual
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void PromiseModule_Send(PromiseModule *module)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringIsBareNonScalarRef
      Src: /src/core/libpromises/mod_custom.c:680,1
    - Dst: strlen
      Src: /src/core/libpromises/mod_custom.c:683,1
    - Dst: xstrndup
      Src: /src/core/libpromises/mod_custom.c:684,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/mod_custom.c:685,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/mod_custom.c:688,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:689,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/mod_custom.c:690,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/mod_custom.c:696,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - scalar
    - out
    argTypes:
    - EvalContext*
    - char*
    - JsonElement**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 678
    functionDepth: 4
    functionLinenumber: 678
    functionLinenumberEnd: 702
    functionName: TryToGetContainerFromScalarRef
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - strlen
    - JsonCopy
    - VarRefDestroy
    - EvalContextVariableGet
    - VarRefParse
    - StringIsBareNonScalarRef
    - free
    - xstrndup
    linkageType: ''
    returnType: bool
    signature: bool TryToGetContainerFromScalarRef(const EvalContext *ctx, const char
      *scalar, JsonElement **out)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:707,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:708,1
    - Dst: SeqLength
      Src: /src/core/libpromises/mod_custom.c:715,1
    - Dst: SeqAt
      Src: /src/core/libpromises/mod_custom.c:718,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:720,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:720,1
    - Dst: IsClassesBodyConstraint
      Src: /src/core/libpromises/mod_custom.c:721,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:722,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:723,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:724,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:725,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:726,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:727,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:728,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:734,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:734,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:740,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:747,1
    - Dst: JsonStringCreate
      Src: /src/core/libpromises/mod_custom.c:751,1
    - Dst: TryToGetContainerFromScalarRef
      Src: /src/core/libpromises/mod_custom.c:756,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/mod_custom.c:756,1
    - Dst: RvalToJson
      Src: /src/core/libpromises/mod_custom.c:760,1
    - Dst: RvalToJson
      Src: /src/core/libpromises/mod_custom.c:766,1
    - Dst: PromiseModule_AppendAttribute
      Src: /src/core/libpromises/mod_custom.c:771,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:775,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:780,1
    - Dst: PromiseModule_AppendAttribute
      Src: /src/core/libpromises/mod_custom.c:786,1
    - Dst: JsonStringCreate
      Src: /src/core/libpromises/mod_custom.c:786,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 36
    argCount: 3
    argNames:
    - module
    - ctx
    - pp
    argTypes:
    - PromiseModule*
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (module != NULL)
      pos:
        line_end: 706
        line_start: 706
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (pp != NULL)
      pos:
        line_end: 707
        line_start: 707
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (!StringEqual(name, "ifvarclass"))
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 788
      start: 704
    functionDepth: 8
    functionLinenumber: 704
    functionLinenumberEnd: 788
    functionName: PromiseModule_AppendAllAttributes
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - JsonStringCreate
    - RvalScalarValue
    - assert
    - PromiseModule_AppendAttribute
    - TryToGetContainerFromScalarRef
    - Log
    - RvalToJson
    - SeqLength
    - IsClassesBodyConstraint
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void PromiseModule_AppendAllAttributes(\n    PromiseModule *module,
      const EvalContext *ctx, const Promise *pp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:792,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/mod_custom.c:792,1
    - Dst: StringContainsUnresolved
      Src: /src/core/libpromises/mod_custom.c:795,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/mod_custom.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - primitive
    - data
    argTypes:
    - JsonElement*
    - ARG_UNUSED*
    assertStmts:
    - condition: (JsonGetElementType(primitive) == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: CheckPrimitiveForUnexpandedVars
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - assert
    - JsonGetElementType
    - StringContainsUnresolved
    - JsonPrimitiveGetAsString
    linkageType: ''
    returnType: bool
    signature: bool CheckPrimitiveForUnexpandedVars(JsonElement *primitive, ARG_UNUSED
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:800,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/mod_custom.c:800,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/mod_custom.c:804,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libpromises/mod_custom.c:805,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/mod_custom.c:807,1
    - Dst: StringContainsUnresolved
      Src: /src/core/libpromises/mod_custom.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - object
    - data
    argTypes:
    - JsonElement*
    - ARG_UNUSED*
    assertStmts:
    - condition: (JsonGetType(object) == JSON_TYPE_OBJECT)
      pos:
        line_end: 799
        line_start: 799
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 814
      start: 798
    functionDepth: 3
    functionLinenumber: 798
    functionLinenumberEnd: 814
    functionName: CheckObjectForUnexpandedVars
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonIteratorNextKey
    - assert
    - JsonIteratorHasMore
    - StringContainsUnresolved
    - JsonGetType
    linkageType: ''
    returnType: bool
    signature: bool CheckObjectForUnexpandedVars(JsonElement *object, ARG_UNUSED void
      *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:818,1
    - Dst: StringContainsUnresolved
      Src: /src/core/libpromises/mod_custom.c:820,1
    - Dst: SeqLength
      Src: /src/core/libpromises/mod_custom.c:824,1
    - Dst: SeqAt
      Src: /src/core/libpromises/mod_custom.c:827,1
    - Dst: IsClassesBodyConstraint
      Src: /src/core/libpromises/mod_custom.c:828,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:829,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:834,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:839,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/mod_custom.c:853,1
    - Dst: StringContainsUnresolved
      Src: /src/core/libpromises/mod_custom.c:854,1
    - Dst: TryToGetContainerFromScalarRef
      Src: /src/core/libpromises/mod_custom.c:854,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:861,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/mod_custom.c:862,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:864,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/mod_custom.c:865,1
    - Dst: StringContainsUnresolved
      Src: /src/core/libpromises/mod_custom.c:866,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:874,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:875,1
    - Dst: RvalContainerValue
      Src: /src/core/libpromises/mod_custom.c:876,1
    - Dst: JsonWalk
      Src: /src/core/libpromises/mod_custom.c:877,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 3
    argNames:
    - ctx
    - pp
    - nonscalars_allowed
    argTypes:
    - EvalContext*
    - Promise*
    - bool
    assertStmts:
    - condition: (attribute->rval.type == RVAL_TYPE_CONTAINER)
      pos:
        line_end: 874
        line_start: 874
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (pp != NULL)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (rl->val.type == RVAL_TYPE_SCALAR)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (nonscalars_allowed)
      pos:
        line_end: 860
        line_start: 860
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (nonscalars_allowed)
      pos:
        line_end: 873
        line_start: 873
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 882
      start: 816
    functionDepth: 5
    functionLinenumber: 816
    functionLinenumberEnd: 882
    functionName: CustomPromise_IsFullyResolved
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - RvalScalarValue
    - assert
    - RvalContainerValue
    - TryToGetContainerFromScalarRef
    - JsonWalk
    - StringContainsUnresolved
    - SeqLength
    - RvalRlistValue
    - IsClassesBodyConstraint
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool CustomPromise_IsFullyResolved(const EvalContext *ctx, const Promise
      *pp, bool nonscalars_allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/mod_custom.c:887,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - response
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 885
    functionDepth: 4
    functionLinenumber: 885
    functionLinenumberEnd: 889
    functionName: HasResultAndResultIsValid
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - JsonObjectGetAsString
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool HasResultAndResultIsValid(JsonElement *response)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/mod_custom.c:893,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/mod_custom.c:896,1
    - Dst: ActionAttributeLogLevelFromString
      Src: /src/core/libpromises/mod_custom.c:899,1
    - Dst: MIN
      Src: /src/core/libpromises/mod_custom.c:904,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:911,1
    - Dst: LogLevelToString
      Src: /src/core/libpromises/mod_custom.c:912,1
    - Dst: LogLevelToString
      Src: /src/core/libpromises/mod_custom.c:914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts:
    - condition: ((log_level == LOG_LEVEL_NOTHING) || (log_level == LOG_LEVEL_CRIT))
      pos:
        line_end: 910
        line_start: 910
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 915
      start: 891
    functionDepth: 2
    functionLinenumber: 891
    functionLinenumberEnd: 915
    functionName: LogLevelToRequestFromModule
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - assert
    - MIN
    - LogGetGlobalLevel
    - LogLevelToString
    - PromiseGetConstraintAsRval
    - ActionAttributeLogLevelFromString
    linkageType: ''
    returnType: char
    signature: char *LogLevelToRequestFromModule(const Promise *pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:919,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:920,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/mod_custom.c:922,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/mod_custom.c:925,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:927,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:927,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:930,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:936,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:937,1
    - Dst: LogLevelToRequestFromModule
      Src: /src/core/libpromises/mod_custom.c:937,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:938,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:939,1
    - Dst: PromiseModule_AppendInteger
      Src: /src/core/libpromises/mod_custom.c:940,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:941,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/mod_custom.c:941,1
    - Dst: PromiseModule_AppendAllAttributes
      Src: /src/core/libpromises/mod_custom.c:942,1
    - Dst: PromiseModule_Send
      Src: /src/core/libpromises/mod_custom.c:943,1
    - Dst: PromiseModule_Receive
      Src: /src/core/libpromises/mod_custom.c:947,1
    - Dst: HasResultAndResultIsValid
      Src: /src/core/libpromises/mod_custom.c:955,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/mod_custom.c:957,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:965,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:974,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - module
    - ctx
    - pp
    argTypes:
    - PromiseModule*
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (module != NULL)
      pos:
        line_end: 918
        line_start: 918
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 984
      start: 917
    functionDepth: 10
    functionLinenumber: 917
    functionLinenumberEnd: 984
    functionName: PromiseModule_Validate
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - JsonDestroy
    - HasResultAndResultIsValid
    - PromiseGetPromiseType
    - assert
    - PromiseModule_Receive
    - Log
    - PromiseGetConstraintAsRval
    - PromiseModule_AppendInteger
    - PromiseModule_Send
    - LogLevelToRequestFromModule
    - PromiseModule_AppendAllAttributes
    - StringEqual
    - PromiseModule_AppendString
    linkageType: ''
    returnType: bool
    signature: bool PromiseModule_Validate(PromiseModule *module, const EvalContext
      *ctx, const Promise *pp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:989,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:990,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/mod_custom.c:992,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:995,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:996,1
    - Dst: LogLevelToRequestFromModule
      Src: /src/core/libpromises/mod_custom.c:997,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:998,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:999,1
    - Dst: PromiseModule_AppendInteger
      Src: /src/core/libpromises/mod_custom.c:1000,1
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:1001,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/mod_custom.c:1001,1
    - Dst: PromiseModule_AppendAllAttributes
      Src: /src/core/libpromises/mod_custom.c:1003,1
    - Dst: PromiseModule_Send
      Src: /src/core/libpromises/mod_custom.c:1004,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/mod_custom.c:1006,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:1008,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:1008,1
    - Dst: PromiseModule_Receive
      Src: /src/core/libpromises/mod_custom.c:1011,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/mod_custom.c:1018,1
    - Dst: JsonLength
      Src: /src/core/libpromises/mod_custom.c:1021,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libpromises/mod_custom.c:1024,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:1025,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/mod_custom.c:1026,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/mod_custom.c:1031,1
    - Dst: GetClassContextAttributes
      Src: /src/core/libpromises/mod_custom.c:1034,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1041,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1053,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:1064,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1067,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:1077,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1080,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1092,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1102,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:1111,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1114,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1126,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1137,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:1145,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1148,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1162,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/mod_custom.c:1175,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 3
    argNames:
    - module
    - ctx
    - pp
    argTypes:
    - PromiseModule*
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 989
        line_start: 989
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (class_name != NULL)
      pos:
        line_end: 1024
        line_start: 1024
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (module != NULL)
      pos:
        line_end: 988
        line_start: 988
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 1177
      start: 986
    functionDepth: 13
    functionLinenumber: 986
    functionLinenumberEnd: 1177
    functionName: PromiseModule_Evaluate
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - Log
    - StringEqual
    - JsonObjectGetAsArray
    - EvalContextClassPutSoft
    - JsonArrayGetAsString
    - GetClassContextAttributes
    - PromiseModule_AppendInteger
    - PromiseGetBundle
    - PromiseGetPromiseType
    - assert
    - JsonObjectGetAsString
    - PromiseGetConstraintAsRval
    - PromiseModule_Send
    - JsonLength
    - JsonDestroy
    - cfPS
    - PromiseModule_Receive
    - LogLevelToRequestFromModule
    - PromiseModule_AppendAllAttributes
    - PromiseModule_AppendString
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult PromiseModule_Evaluate(\n    PromiseModule *module,
      EvalContext *ctx, const Promise *pp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseModule_AppendString
      Src: /src/core/libpromises/mod_custom.c:1183,1
    - Dst: PromiseModule_Send
      Src: /src/core/libpromises/mod_custom.c:1184,1
    - Dst: PromiseModule_Receive
      Src: /src/core/libpromises/mod_custom.c:1187,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/mod_custom.c:1188,1
    - Dst: PromiseModule_DestroyInternal
      Src: /src/core/libpromises/mod_custom.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - pp
    argTypes:
    - PromiseModule*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1179
    functionDepth: 11
    functionLinenumber: 1179
    functionLinenumberEnd: 1192
    functionName: PromiseModule_Terminate
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - PromiseModule_Receive
    - PromiseModule_Send
    - PromiseModule_DestroyInternal
    - PromiseModule_AppendString
    linkageType: ''
    returnType: void
    signature: void PromiseModule_Terminate(PromiseModule *module, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseModule_Terminate
      Src: /src/core/libpromises/mod_custom.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1194
    functionDepth: 12
    functionLinenumber: 1194
    functionLinenumberEnd: 1198
    functionName: PromiseModule_Terminate_untyped
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - PromiseModule_Terminate
    linkageType: ''
    returnType: void
    signature: void PromiseModule_Terminate_untyped(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MapIteratorInit
      Src: /src/core/libpromises/mod_custom.c:1207,1
    - Dst: MapIteratorNext
      Src: /src/core/libpromises/mod_custom.c:1209,1
    - Dst: MapIteratorNext
      Src: /src/core/libpromises/mod_custom.c:1209,1
    - Dst: GracefulTerminate
      Src: /src/core/libpromises/mod_custom.c:1214,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1200
    functionDepth: 10
    functionLinenumber: 1200
    functionLinenumberEnd: 1219
    functionName: TerminateCustomPromises
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 1
    functionsReached:
    - MapIteratorNext
    - Log
    - GracefulTerminate
    - MapIteratorInit
    linkageType: ''
    returnType: void
    signature: void TerminateCustomPromises(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapNew
      Src: /src/core/libpromises/mod_custom.c:1224,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (custom_modules != NULL)
      pos:
        line_end: 1227
        line_start: 1227
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 1231
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1231
    functionName: InitializeCustomPromises
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - MapNew
    - assert
    linkageType: ''
    returnType: bool
    signature: bool InitializeCustomPromises()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapDestroy
      Src: /src/core/libpromises/mod_custom.c:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1233
    functionDepth: 5
    functionLinenumber: 1233
    functionLinenumberEnd: 1236
    functionName: FinalizeCustomPromises
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - MapDestroy
    linkageType: ''
    returnType: void
    signature: void FinalizeCustomPromises()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:1240,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:1241,1
    - Dst: FindCustomPromiseType
      Src: /src/core/libpromises/mod_custom.c:1243,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1246,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/mod_custom.c:1248,1
    - Dst: GetClassContextAttributes
      Src: /src/core/libpromises/mod_custom.c:1253,1
    - Dst: GetInterpreterAndPath
      Src: /src/core/libpromises/mod_custom.c:1258,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:1262,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1264,1
    - Dst: snprintf
      Src: /src/core/libpromises/mod_custom.c:1271,1
    - Dst: assert
      Src: /src/core/libpromises/mod_custom.c:1275,1
    - Dst: MapGet
      Src: /src/core/libpromises/mod_custom.c:1277,1
    - Dst: PromiseModule_Start
      Src: /src/core/libpromises/mod_custom.c:1281,1
    - Dst: MapInsert
      Src: /src/core/libpromises/mod_custom.c:1284,1
    - Dst: xstrdup
      Src: /src/core/libpromises/mod_custom.c:1284,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:1288,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:1289,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1291,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_custom.c:1297,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1299,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/mod_custom.c:1301,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:1302,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:1303,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1304,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:1307,1
    - Dst: free
      Src: /src/core/libpromises/mod_custom.c:1308,1
    - Dst: CustomPromise_IsFullyResolved
      Src: /src/core/libpromises/mod_custom.c:1312,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/mod_custom.c:1313,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1315,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/mod_custom.c:1317,1
    - Dst: AcquireLock
      Src: /src/core/libpromises/mod_custom.c:1321,1
    - Dst: PromiseModule_Validate
      Src: /src/core/libpromises/mod_custom.c:1331,1
    - Dst: PromiseModule_Evaluate
      Src: /src/core/libpromises/mod_custom.c:1337,1
    - Dst: Log
      Src: /src/core/libpromises/mod_custom.c:1342,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/mod_custom.c:1344,1
    - Dst: cfPS
      Src: /src/core/libpromises/mod_custom.c:1346,1
    - Dst: YieldCurrentLock
      Src: /src/core/libpromises/mod_custom.c:1351,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (interpreter == NULL && path == NULL)
      pos:
        line_end: 1261
        line_start: 1261
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (ctx != NULL)
      pos:
        line_end: 1239
        line_start: 1239
        source_file: /src/core/libpromises/mod_custom.c
    - condition: ((ret > 0) && (ret < sizeof(custom_promise_id)))
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/core/libpromises/mod_custom.c
    - condition: (pp != NULL)
      pos:
        line_end: 1240
        line_start: 1240
        source_file: /src/core/libpromises/mod_custom.c
    constantsTouched: []
    func_position:
      end: 1353
      start: 1238
    functionDepth: 14
    functionLinenumber: 1238
    functionLinenumberEnd: 1353
    functionName: EvaluateCustomPromise
    functionSourceFile: /src/core/libpromises/mod_custom.c
    functionUses: 0
    functionsReached:
    - AcquireLock
    - Log
    - FindCustomPromiseType
    - free
    - StringEqual
    - snprintf
    - MapGet
    - YieldCurrentLock
    - GetClassContextAttributes
    - xstrdup
    - PromiseGetPromiseType
    - assert
    - MapInsert
    - EvalContextGetPass
    - CustomPromise_IsFullyResolved
    - PromiseModule_Start
    - PromiseModule_Validate
    - PromiseModule_Evaluate
    - GetInterpreterAndPath
    - cfPS
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult EvaluateCustomPromise(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriteDB
      Src: /src/core/libpromises/dbm_migration_lastseen.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: LastseenMigrationVersion0
    functionSourceFile: /src/core/libpromises/dbm_migration_lastseen.c
    functionUses: 0
    functionsReached:
    - WriteDB
    linkageType: ''
    returnType: bool
    signature: bool LastseenMigrationVersion0(DBHandle *db)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NewDBCursor
      Src: /src/core/libpromises/dbm_migration_lastseen.c:76,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_migration_lastseen.c:78,1
    - Dst: NextDB
      Src: /src/core/libpromises/dbm_migration_lastseen.c:88,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_migration_lastseen.c:92,1
    - Dst: StringEqualN
      Src: /src/core/libpromises/dbm_migration_lastseen.c:101,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_migration_lastseen.c:103,1
    - Dst: DBCursorWriteEntry
      Src: /src/core/libpromises/dbm_migration_lastseen.c:119,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_migration_lastseen.c:121,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/dbm_migration_lastseen.c:128,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_migration_lastseen.c:130,1
    - Dst: WriteDB
      Src: /src/core/libpromises/dbm_migration_lastseen.c:134,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_migration_lastseen.c:136,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_migration_lastseen.c:140,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 73
    functionDepth: 8
    functionLinenumber: 73
    functionLinenumberEnd: 142
    functionName: LastseenMigrationVersion1
    functionSourceFile: /src/core/libpromises/dbm_migration_lastseen.c
    functionUses: 0
    functionsReached:
    - DBCursorWriteEntry
    - NewDBCursor
    - DeleteDBCursor
    - StringEqualN
    - Log
    - WriteDB
    - NextDB
    linkageType: ''
    returnType: bool
    signature: bool LastseenMigrationVersion1(DBHandle *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/parser.c:42,1
    - Dst: free
      Src: /src/core/libpromises/parser.c:52,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/parser.c:53,1
    - Dst: FnCallDestroy
      Src: /src/core/libpromises/parser.c:54,1
    - Dst: assert
      Src: /src/core/libpromises/parser.c:58,1
    - Dst: assert
      Src: /src/core/libpromises/parser.c:59,1
    - Dst: assert
      Src: /src/core/libpromises/parser.c:60,1
    - Dst: free
      Src: /src/core/libpromises/parser.c:67,1
    - Dst: free
      Src: /src/core/libpromises/parser.c:76,1
    - Dst: xstrdup
      Src: /src/core/libpromises/parser.c:77,1
    - Dst: free
      Src: /src/core/libpromises/parser.c:84,1
    - Dst: free
      Src: /src/core/libpromises/parser.c:90,1
    - Dst: free
      Src: /src/core/libpromises/parser.c:98,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/parser.c:103,1
    - Dst: RvalNew
      Src: /src/core/libpromises/parser.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 2
    argNames:
    - p
    - discard
    argTypes:
    - ParserState*
    - bool
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/core/libpromises/parser.c
    - condition: (!p->currentfnid[i])
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/libpromises/parser.c
    - condition: (!p->giveargs[i])
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/core/libpromises/parser.c
    - condition: (!p->currentfncall[i])
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/core/libpromises/parser.c
    constantsTouched: []
    func_position:
      end: 105
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 105
    functionName: ParserStateReset
    functionSourceFile: /src/core/libpromises/parser.c
    functionUses: 0
    functionsReached:
    - RvalDestroy
    - assert
    - RvalNew
    - RlistDestroy
    - xstrdup
    - free
    - FnCallDestroy
    linkageType: ''
    returnType: void
    signature: void ParserStateReset(ParserState *p, bool discard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/parser.c:109,1
    - Dst: free
      Src: /src/core/libpromises/parser.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - ParserState*
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/core/libpromises/parser.c
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: ParserStateClean
    functionSourceFile: /src/core/libpromises/parser.c
    functionUses: 0
    functionsReached:
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void ParserStateClean(ParserState *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ParserStateReset
      Src: /src/core/libpromises/parser.c:119,1
    - Dst: PolicyNew
      Src: /src/core/libpromises/parser.c:122,1
    - Dst: strlcpy
      Src: /src/core/libpromises/parser.c:127,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/parser.c:129,1
    - Dst: Log
      Src: /src/core/libpromises/parser.c:132,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/parser.c:132,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/parser.c:133,1
    - Dst: feof
      Src: /src/core/libpromises/parser.c:136,1
    - Dst: yyparse
      Src: /src/core/libpromises/parser.c:138,1
    - Dst: ferror
      Src: /src/core/libpromises/parser.c:140,1
    - Dst: perror
      Src: /src/core/libpromises/parser.c:142,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/parser.c:143,1
    - Dst: fclose
      Src: /src/core/libpromises/parser.c:147,1
    - Dst: PolicyDestroy
      Src: /src/core/libpromises/parser.c:151,1
    - Dst: ParserStateReset
      Src: /src/core/libpromises/parser.c:152,1
    - Dst: ParserStateClean
      Src: /src/core/libpromises/parser.c:153,1
    - Dst: ParserStateReset
      Src: /src/core/libpromises/parser.c:158,1
    - Dst: ParserStateClean
      Src: /src/core/libpromises/parser.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - agent_type
    - path
    - warnings
    - warnings_error
    argTypes:
    - AgentType
    - char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 117
    functionDepth: 8
    functionLinenumber: 117
    functionLinenumberEnd: 161
    functionName: ParserParseFile
    functionSourceFile: /src/core/libpromises/parser.c
    functionUses: 6
    functionsReached:
    - GetErrorStr
    - DoCleanupAndExit
    - PolicyDestroy
    - ParserStateReset
    - PolicyNew
    - ParserStateClean
    - feof
    - safe_fopen
    - Log
    - fclose
    - perror
    - yyparse
    - ferror
    - strlcpy
    linkageType: ''
    returnType: Policy
    signature: Policy *ParserParseFile(AgentType agent_type, const char *path, unsigned
      int warnings, unsigned int warnings_error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/parser.c:165,1
    - Dst: strcmp
      Src: /src/core/libpromises/parser.c:169,1
    - Dst: strcmp
      Src: /src/core/libpromises/parser.c:173,1
    - Dst: strcmp
      Src: /src/core/libpromises/parser.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - warning_str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 185
    functionName: ParserWarningFromString
    functionSourceFile: /src/core/libpromises/parser.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ParserWarningFromString(const char *warning_str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/parser.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - warning
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 201
    functionName: ParserWarningToString
    functionSourceFile: /src/core/libpromises/parser.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *ParserWarningToString(unsigned int warning)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IsProcessRunning
      Src: /src/core/libpromises/unix.c:42,1
    - Dst: kill
      Src: /src/core/libpromises/unix.c:48,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:50,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/unix.c:51,1
    - Dst: sleep
      Src: /src/core/libpromises/unix.c:54,1
    - Dst: kill
      Src: /src/core/libpromises/unix.c:55,1
    - Dst: kill
      Src: /src/core/libpromises/unix.c:61,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:63,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/unix.c:64,1
    - Dst: sleep
      Src: /src/core/libpromises/unix.c:67,1
    - Dst: kill
      Src: /src/core/libpromises/unix.c:68,1
    - Dst: kill
      Src: /src/core/libpromises/unix.c:74,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:76,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/unix.c:77,1
    - Dst: sleep
      Src: /src/core/libpromises/unix.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 40
    functionDepth: 8
    functionLinenumber: 40
    functionLinenumberEnd: 81
    functionName: ProcessSignalTerminate
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 1
    functionsReached:
    - kill
    - GetErrorStr
    - sleep
    - IsProcessRunning
    - Log
    linkageType: ''
    returnType: void
    signature: void ProcessSignalTerminate(pid_t pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/core/libpromises/unix.c:87,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:99,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/unix.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 102
    functionName: IsProcessRunning
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 1
    functionsReached:
    - kill
    - Log
    - GetErrorStr
    linkageType: ''
    returnType: bool
    signature: bool IsProcessRunning(pid_t pid)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/unix.c:112,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:114,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:120,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:121,1
    - Dst: getuid
      Src: /src/core/libpromises/unix.c:125,1
    - Dst: getuid
      Src: /src/core/libpromises/unix.c:125,1
    - Dst: getgid
      Src: /src/core/libpromises/unix.c:132,1
    - Dst: getgroups
      Src: /src/core/libpromises/unix.c:146,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 106
    functionDepth: 8
    functionLinenumber: 106
    functionLinenumberEnd: 164
    functionName: IsExecutable
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 4
    functionsReached:
    - stat
    - getgid
    - getgroups
    - getuid
    - Log
    linkageType: ''
    returnType: bool
    signature: bool IsExecutable(const char *file)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/unix.c:173,1
    - Dst: fork
      Src: /src/core/libpromises/unix.c:177,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:179,1
    - Dst: execl
      Src: /src/core/libpromises/unix.c:188,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:190,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/unix.c:190,1
    - Dst: exit
      Src: /src/core/libpromises/unix.c:191,1
    - Dst: ArgSplitCommand
      Src: /src/core/libpromises/unix.c:196,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/unix.c:199,1
    - Dst: open
      Src: /src/core/libpromises/unix.c:201,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:203,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/unix.c:203,1
    - Dst: exit
      Src: /src/core/libpromises/unix.c:204,1
    - Dst: dup2
      Src: /src/core/libpromises/unix.c:207,1
    - Dst: dup2
      Src: /src/core/libpromises/unix.c:207,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:209,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/unix.c:209,1
    - Dst: exit
      Src: /src/core/libpromises/unix.c:210,1
    - Dst: close
      Src: /src/core/libpromises/unix.c:213,1
    - Dst: execv
      Src: /src/core/libpromises/unix.c:216,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:218,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/unix.c:218,1
    - Dst: exit
      Src: /src/core/libpromises/unix.c:219,1
    - Dst: waitpid
      Src: /src/core/libpromises/unix.c:238,1
    - Dst: IsPendingTermination
      Src: /src/core/libpromises/unix.c:252,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:254,1
    - Dst: ProcessSignalTerminate
      Src: /src/core/libpromises/unix.c:257,1
    - Dst: waitpid
      Src: /src/core/libpromises/unix.c:258,1
    - Dst: nanosleep
      Src: /src/core/libpromises/unix.c:268,1
    - Dst: WEXITSTATUS
      Src: /src/core/libpromises/unix.c:271,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - command
    - shell
    argTypes:
    - char*
    - ShellType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 166
    functionDepth: 9
    functionLinenumber: 166
    functionLinenumberEnd: 275
    functionName: ShellCommandReturnsZero
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - fork
    - exit
    - WEXITSTATUS
    - nanosleep
    - ProcessSignalTerminate
    - execv
    - IsPendingTermination
    - LogGetGlobalLevel
    - Log
    - open
    - waitpid
    - execl
    - ArgSplitCommand
    - dup2
    - close
    linkageType: ''
    returnType: bool
    signature: bool ShellCommandReturnsZero(const char *command, ShellType shell)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/unix.c:285,1
    - Dst: snprintf
      Src: /src/core/libpromises/unix.c:295,1
    - Dst: assert
      Src: /src/core/libpromises/unix.c:296,1
    - Dst: cf_popen
      Src: /src/core/libpromises/unix.c:298,1
    - Dst: fread
      Src: /src/core/libpromises/unix.c:301,1
    - Dst: feof
      Src: /src/core/libpromises/unix.c:306,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:308,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/unix.c:309,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/unix.c:312,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:320,1
    - Dst: strchr
      Src: /src/core/libpromises/unix.c:324,1
    - Dst: strchr
      Src: /src/core/libpromises/unix.c:325,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:327,1
    - Dst: strchr
      Src: /src/core/libpromises/unix.c:334,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:337,1
    - Dst: strlcpy
      Src: /src/core/libpromises/unix.c:344,1
    - Dst: assert
      Src: /src/core/libpromises/unix.c:345,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:349,1
    - Dst: strchr
      Src: /src/core/libpromises/unix.c:362,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:365,1
    - Dst: strchr
      Src: /src/core/libpromises/unix.c:371,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:374,1
    - Dst: sscanf
      Src: /src/core/libpromises/unix.c:379,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:382,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 6
    argNames:
    - type
    - query
    - name
    - name_size
    - id
    - error_log_level
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    - uintmax_t*
    - LogLevel
    assertStmts:
    - condition: (print_ret < sizeof(buf))
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/core/libpromises/unix.c
    - condition: (ret < name_size)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/core/libpromises/unix.c
    constantsTouched: []
    func_position:
      end: 388
      start: 279
    functionDepth: 11
    functionLinenumber: 279
    functionLinenumberEnd: 388
    functionName: GetUserGroupInfoFromGetent
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 0
    functionsReached:
    - stat
    - snprintf
    - cf_popen
    - assert
    - fread
    - feof
    - sscanf
    - strchr
    - cf_pclose
    - Log
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool GetUserGroupInfoFromGetent(const char *type, const char *query,\n
      \                                      char *name, size_t name_size, uintmax_t
      *id,\n                                       LogLevel error_log_level)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getpwuid_r
      Src: /src/core/libpromises/unix.c:396,1
    - Dst: snprintf
      Src: /src/core/libpromises/unix.c:400,1
    - Dst: assert
      Src: /src/core/libpromises/unix.c:401,1
    - Dst: GetUserGroupInfoFromGetent
      Src: /src/core/libpromises/unix.c:403,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:412,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/unix.c:413,1
    - Dst: strlcpy
      Src: /src/core/libpromises/unix.c:420,1
    - Dst: assert
      Src: /src/core/libpromises/unix.c:421,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - uid
    - user_name_buf
    - buf_size
    - error_log_level
    argTypes:
    - uid_t
    - char*
    - size_t
    - LogLevel
    assertStmts:
    - condition: (print_ret < sizeof(uid_str))
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/core/libpromises/unix.c
    - condition: (ret < buf_size)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/core/libpromises/unix.c
    constantsTouched: []
    func_position:
      end: 432
      start: 390
    functionDepth: 12
    functionLinenumber: 390
    functionLinenumberEnd: 432
    functionName: GetUserName
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 1
    functionsReached:
    - getpwuid_r
    - snprintf
    - assert
    - GetUserGroupInfoFromGetent
    - Log
    - GetErrorStrFromCode
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool GetUserName(uid_t uid, char *user_name_buf, size_t buf_size, LogLevel
      error_log_level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/unix.c:436,1
    - Dst: GetUserName
      Src: /src/core/libpromises/unix.c:437,1
    - Dst: getuid
      Src: /src/core/libpromises/unix.c:437,1
    - Dst: strlcpy
      Src: /src/core/libpromises/unix.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - userName
    - userNameLen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 434
    functionDepth: 13
    functionLinenumber: 434
    functionLinenumberEnd: 444
    functionName: GetCurrentUserName
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 2
    functionsReached:
    - GetUserName
    - getuid
    - strlcpy
    - memset
    linkageType: ''
    returnType: bool
    signature: bool GetCurrentUserName(char *userName, int userNameLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getgrgid_r
      Src: /src/core/libpromises/unix.c:452,1
    - Dst: snprintf
      Src: /src/core/libpromises/unix.c:456,1
    - Dst: assert
      Src: /src/core/libpromises/unix.c:457,1
    - Dst: GetUserGroupInfoFromGetent
      Src: /src/core/libpromises/unix.c:459,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:468,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/unix.c:469,1
    - Dst: strlcpy
      Src: /src/core/libpromises/unix.c:476,1
    - Dst: assert
      Src: /src/core/libpromises/unix.c:477,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - gid
    - group_name_buf
    - buf_size
    - error_log_level
    argTypes:
    - gid_t
    - char*
    - size_t
    - LogLevel
    assertStmts:
    - condition: (print_ret < sizeof(gid_str))
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/core/libpromises/unix.c
    - condition: (ret < buf_size)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/core/libpromises/unix.c
    constantsTouched: []
    func_position:
      end: 488
      start: 446
    functionDepth: 12
    functionLinenumber: 446
    functionLinenumberEnd: 488
    functionName: GetGroupName
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 1
    functionsReached:
    - getgrgid_r
    - snprintf
    - assert
    - GetUserGroupInfoFromGetent
    - Log
    - GetErrorStrFromCode
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool GetGroupName(gid_t gid, char *group_name_buf, size_t buf_size,
      LogLevel error_log_level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getpwnam_r
      Src: /src/core/libpromises/unix.c:496,1
    - Dst: GetUserGroupInfoFromGetent
      Src: /src/core/libpromises/unix.c:500,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:513,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/unix.c:514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - user_name
    - uid
    - error_log_level
    argTypes:
    - char*
    - uid_t*
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 490
    functionDepth: 12
    functionLinenumber: 490
    functionLinenumberEnd: 525
    functionName: GetUserID
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 2
    functionsReached:
    - GetErrorStrFromCode
    - Log
    - GetUserGroupInfoFromGetent
    - getpwnam_r
    linkageType: ''
    returnType: bool
    signature: bool GetUserID(const char *user_name, uid_t *uid, LogLevel error_log_level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getgrnam_r
      Src: /src/core/libpromises/unix.c:533,1
    - Dst: GetUserGroupInfoFromGetent
      Src: /src/core/libpromises/unix.c:537,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:550,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/unix.c:551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - group_name
    - gid
    - error_log_level
    argTypes:
    - char*
    - gid_t*
    - LogLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 527
    functionDepth: 12
    functionLinenumber: 527
    functionLinenumberEnd: 562
    functionName: GetGroupID
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 2
    functionsReached:
    - Log
    - getgrnam_r
    - GetUserGroupInfoFromGetent
    - GetErrorStrFromCode
    linkageType: ''
    returnType: bool
    signature: bool GetGroupID(const char *group_name, gid_t *gid, LogLevel error_log_level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/libpromises/unix.c:566,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 564
    functionDepth: 8
    functionLinenumber: 564
    functionLinenumberEnd: 577
    functionName: GetRelocatedProcdirRoot
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 3
    functionsReached:
    - Log
    - getenv
    linkageType: ''
    returnType: char
    signature: char * GetRelocatedProcdirRoot()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/libpromises/unix.c:585,1
    - Dst: StringToInt64
      Src: /src/core/libpromises/unix.c:590,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:593,1
    - Dst: strerror
      Src: /src/core/libpromises/unix.c:593,1
    - Dst: Log
      Src: /src/core/libpromises/unix.c:597,1
    - Dst: getpid
      Src: /src/core/libpromises/unix.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 583
    functionDepth: 8
    functionLinenumber: 583
    functionLinenumberEnd: 602
    functionName: GetProcdirPid
    functionSourceFile: /src/core/libpromises/unix.c
    functionUses: 2
    functionsReached:
    - getpid
    - getenv
    - strerror
    - Log
    - StringToInt64
    linkageType: ''
    returnType: int
    signature: int GetProcdirPid()
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/actuator.c:53,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/actuator.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 2
    argNames:
    - prior
    - evidence
    argTypes:
    - PromiseResult
    - PromiseResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 86
    functionName: PromiseResultUpdate
    functionSourceFile: /src/core/libpromises/actuator.c
    functionUses: 1
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult PromiseResultUpdate(PromiseResult prior, PromiseResult
      evidence)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - PromiseResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: PromiseResultIsOK
    functionSourceFile: /src/core/libpromises/actuator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool PromiseResultIsOK(PromiseResult result)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sysctl
      Src: /src/core/libpromises/process_freebsd.c:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pid
    - state
    argTypes:
    - pid_t
    - ProcessStat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 74
    functionName: GetProcessStat
    functionSourceFile: /src/core/libpromises/process_freebsd.c
    functionUses: 2
    functionsReached:
    - sysctl
    linkageType: ''
    returnType: bool
    signature: bool GetProcessStat(pid_t pid, ProcessStat *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStat
      Src: /src/core/libpromises/process_freebsd.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: GetProcessStartTime
    functionSourceFile: /src/core/libpromises/process_freebsd.c
    functionUses: 16
    functionsReached:
    - GetProcessStat
    linkageType: ''
    returnType: time_t
    signature: time_t GetProcessStartTime(pid_t pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessStat
      Src: /src/core/libpromises/process_freebsd.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: GetProcessState
    functionSourceFile: /src/core/libpromises/process_freebsd.c
    functionUses: 17
    functionsReached:
    - GetProcessStat
    linkageType: ''
    returnType: ProcessState
    signature: ProcessState GetProcessState(pid_t pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/core/libpromises/files_interfaces.c:45,1
    - Dst: Log
      Src: /src/core/libpromises/files_interfaces.c:48,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_interfaces.c:48,1
    - Dst: assert
      Src: /src/core/libpromises/files_interfaces.c:54,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_interfaces.c:54,1
    - Dst: cf_remote_stat
      Src: /src/core/libpromises/files_interfaces.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - file
    - buf
    - fc
    - conn
    argTypes:
    - char*
    - struct stat*
    - FileCopy*
    - AgentConnection*
    assertStmts:
    - condition: (fc->servers && strcmp(fc->servers->val.item, "localhost"))
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/core/libpromises/files_interfaces.c
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 8
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: cf_lstat
    functionSourceFile: /src/core/libpromises/files_interfaces.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - cf_remote_stat
    - assert
    - Log
    - strcmp
    - lstat
    linkageType: ''
    returnType: int
    signature: int cf_lstat(const char *file, struct stat *buf, const FileCopy *fc,
      AgentConnection *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/mod_methods.c:49,1
    - Dst: SeqAt
      Src: /src/core/libpromises/mod_methods.c:51,1
    - Dst: StringEqual
      Src: /src/core/libpromises/mod_methods.c:54,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/mod_methods.c:59,1
    - Dst: ClassRefParse
      Src: /src/core/libpromises/mod_methods.c:60,1
    - Dst: ClassRefIsQualified
      Src: /src/core/libpromises/mod_methods.c:61,1
    - Dst: ClassRefQualify
      Src: /src/core/libpromises/mod_methods.c:63,1
    - Dst: PromiseGetNamespace
      Src: /src/core/libpromises/mod_methods.c:63,1
    - Dst: PolicyGetBundle
      Src: /src/core/libpromises/mod_methods.c:66,1
    - Dst: PolicyFromPromise
      Src: /src/core/libpromises/mod_methods.c:66,1
    - Dst: PolicyGetBundle
      Src: /src/core/libpromises/mod_methods.c:69,1
    - Dst: PolicyFromPromise
      Src: /src/core/libpromises/mod_methods.c:69,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/mod_methods.c:72,1
    - Dst: RlistLen
      Src: /src/core/libpromises/mod_methods.c:76,1
    - Dst: RlistLen
      Src: /src/core/libpromises/mod_methods.c:76,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_methods.c:78,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/mod_methods.c:78,1
    - Dst: RlistLen
      Src: /src/core/libpromises/mod_methods.c:80,1
    - Dst: RlistLen
      Src: /src/core/libpromises/mod_methods.c:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - pp
    - errors
    argTypes:
    - Promise*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 88
    functionName: MethodsParseTreeCheck
    functionSourceFile: /src/core/libpromises/mod_methods.c
    functionUses: 0
    functionsReached:
    - ClassRefIsQualified
    - RvalFnCallValue
    - PolicyFromPromise
    - ClassRefDestroy
    - ClassRefParse
    - PromiseGetNamespace
    - SeqAppend
    - PolicyGetBundle
    - PolicyErrorNew
    - SeqLength
    - RlistLen
    - ClassRefQualify
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool MethodsParseTreeCheck(const Promise *pp, Seq *errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: ConstraintSyntaxNewNull
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewNull()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lval
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: ConstraintSyntaxNewBool
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewBool(lval, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lval
    - ','
    - options
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: ConstraintSyntaxNewOption
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewOption(lval, options, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lval
    - ','
    - item_range
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: ConstraintSyntaxNewOptionList
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewOptionList(lval, item_range, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lval
    - ','
    - regex
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: ConstraintSyntaxNewString
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewString(lval, regex, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lval
    - ','
    - item_range
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: ConstraintSyntaxNewStringList
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewStringList(lval, item_range, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lval
    - ','
    - int_range
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: ConstraintSyntaxNewInt
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewInt(lval, int_range, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lval
    - ','
    - int_range
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: ConstraintSyntaxNewIntRange
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewIntRange(lval, int_range, description, status )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lval
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: ConstraintSyntaxNewIntList
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewIntList(lval, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lval
    - ','
    - real_range
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: ConstraintSyntaxNewReal
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewReal(lval, real_range, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lval
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: ConstraintSyntaxNewRealList
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewRealList(lval, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lval
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: ConstraintSyntaxNewContext
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewContext(lval, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lval
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: ConstraintSyntaxNewContextList
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewContextList(lval, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lval
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: ConstraintSyntaxNewContainer
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewContainer(lval, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lval
    - ','
    - body_syntax
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: ConstraintSyntaxNewBody
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewBody(lval, body_syntax, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lval
    - ','
    - description
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: ConstraintSyntaxNewBundle
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstraintSyntaxNewBundle(lval, description, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - body_type
    - ','
    - constraints
    - ','
    - check_fn
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: BodySyntaxNew
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BodySyntaxNew(body_type, constraints, check_fn, status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: BodySyntaxNewNull
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BodySyntaxNewNull()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - agent_type
    - ','
    - promise_type
    - ','
    - constraints
    - ','
    - check_fn
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: PromiseTypeSyntaxNew
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PromiseTypeSyntaxNew(agent_type, promise_type, constraints, check_fn,
      status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: PromiseTypeSyntaxNewNull
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PromiseTypeSyntaxNewNull()
  - 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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: ARGC
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGC(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - name
    - ','
    - return_type
    - ','
    - arguments
    - ','
    - implementation
    - ','
    - description
    - ','
    - opts
    - ','
    - category
    - ','
    - status
    - ','
    - argc_range
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: FnCallTypeNew
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FnCallTypeNew(name, return_type, arguments, implementation, description,
      opts, category, status, argc_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: FnCallTypeNewNull
    functionSourceFile: /src/core/libpromises/syntax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FnCallTypeNewNull()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: _math_eval_step
    functionSourceFile: /src/core/libpromises/math_eval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double _math_eval_step(double p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/math_eval.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - n
    - stack
    - stackp
    argTypes:
    - double
    - double*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: math_eval_push
    functionSourceFile: /src/core/libpromises/math_eval.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: double
    signature: double math_eval_push(double n, double *stack, int *stackp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/math_eval.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stack
    - stackp
    argTypes:
    - double*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 8
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: math_eval_pop
    functionSourceFile: /src/core/libpromises/math_eval.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: double
    signature: double math_eval_pop(double *stack, int *stackp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: YY_PARSE
    functionSourceFile: /src/core/libpromises/math_eval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_PARSE(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ctx
    - ','
    - buf
    - ','
    - result
    - ','
    - max_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: YY_INPUT
    functionSourceFile: /src/core/libpromises/math_eval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(ctx, buf, result, max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/math_eval.c:120,1
    - Dst: yymath_parse
      Src: /src/core/libpromises/math_eval.c:127,1
    - Dst: yyrelease
      Src: /src/core/libpromises/math_eval.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - input
    - failure
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: EvaluateMathInfix
    functionSourceFile: /src/core/libpromises/math_eval.c
    functionUses: 1
    functionsReached:
    - yyrelease
    - yymath_parse
    - memset
    linkageType: ''
    returnType: double
    signature: double EvaluateMathInfix(EvalContext *ctx, const char *input, char
      *failure)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/math_eval.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: EvaluateMathFunction
    functionSourceFile: /src/core/libpromises/math_eval.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: double
    signature: double EvaluateMathFunction(const char *f, double p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HandleLMDBCorruption
      Src: /src/core/libpromises/dbm_lmdb.c:89,1
    - Dst: HandleFullLMDB
      Src: /src/core/libpromises/dbm_lmdb.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rc
    - env
    argTypes:
    - int
    - MDB_env*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: CheckLMDBUsable
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - HandleLMDBCorruption
    - HandleFullLMDB
    linkageType: ''
    returnType: void
    signature: void CheckLMDBUsable(int rc, MDB_env *env)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:99,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:100,1
    - Dst: pthread_getspecific
      Src: /src/core/libpromises/dbm_lmdb.c:102,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_lmdb.c:107,1
    - Dst: pthread_setspecific
      Src: /src/core/libpromises/dbm_lmdb.c:108,1
    - Dst: mdb_txn_begin
      Src: /src/core/libpromises/dbm_lmdb.c:113,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:116,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:117,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - db
    - txn
    argTypes:
    - DBPriv*
    - DBTxn**
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (txn != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 124
      start: 97
    functionDepth: 8
    functionLinenumber: 97
    functionLinenumberEnd: 124
    functionName: GetReadTransaction
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - pthread_setspecific
    - assert
    - mdb_strerror
    - mdb_txn_begin
    - Log
    - pthread_getspecific
    - mdb_env_get_userctx
    linkageType: ''
    returnType: int
    signature: int GetReadTransaction(DBPriv *const db, DBTxn **const txn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:128,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:129,1
    - Dst: pthread_getspecific
      Src: /src/core/libpromises/dbm_lmdb.c:131,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_lmdb.c:136,1
    - Dst: pthread_setspecific
      Src: /src/core/libpromises/dbm_lmdb.c:137,1
    - Dst: mdb_txn_commit
      Src: /src/core/libpromises/dbm_lmdb.c:142,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:143,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:146,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:147,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:147,1
    - Dst: mdb_txn_begin
      Src: /src/core/libpromises/dbm_lmdb.c:154,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:155,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:162,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:163,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - db
    - txn
    argTypes:
    - DBPriv*
    - DBTxn**
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (txn != NULL)
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 170
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 170
    functionName: GetWriteTransaction
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - CheckLMDBUsable
    - pthread_setspecific
    - assert
    - mdb_strerror
    - mdb_txn_begin
    - Log
    - pthread_getspecific
    - mdb_txn_commit
    - mdb_env_get_userctx
    linkageType: ''
    returnType: int
    signature: int GetWriteTransaction(DBPriv *const db, DBTxn **const txn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:174,1
    - Dst: pthread_getspecific
      Src: /src/core/libpromises/dbm_lmdb.c:176,1
    - Dst: mdb_txn_abort
      Src: /src/core/libpromises/dbm_lmdb.c:181,1
    - Dst: pthread_setspecific
      Src: /src/core/libpromises/dbm_lmdb.c:184,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 187
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 187
    functionName: AbortTransaction
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - pthread_setspecific
    - assert
    - pthread_getspecific
    - mdb_txn_abort
    - free
    linkageType: ''
    returnType: void
    signature: void AbortTransaction(DBPriv *const db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnexpectedError
      Src: /src/core/libpromises/dbm_lmdb.c:192,1
    - Dst: UnexpectedError
      Src: /src/core/libpromises/dbm_lmdb.c:195,1
    - Dst: mdb_txn_abort
      Src: /src/core/libpromises/dbm_lmdb.c:196,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: DestroyTransaction
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - mdb_txn_abort
    - free
    - UnexpectedError
    linkageType: ''
    returnType: void
    signature: void DestroyTransaction(void *const ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: DBPrivGetFileExtension
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *DBPrivGetFileExtension(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_txn
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: DBPrivSetMaximumConcurrentTransactions
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBPrivSetMaximumConcurrentTransactions(const int max_txn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:222,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:223,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:224,1
    - Dst: mdb_env_get_maxkeysize
      Src: /src/core/libpromises/dbm_lmdb.c:224,1
    - Dst: mdb_env_open
      Src: /src/core/libpromises/dbm_lmdb.c:235,1
    - Dst: sched_yield
      Src: /src/core/libpromises/dbm_lmdb.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - env
    - path
    - flags
    - mode
    argTypes:
    - MDB_env*
    - char*
    - unsigned int
    - mdb_mode_t
    assertStmts:
    - condition: (env != NULL)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (path != NULL)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (mdb_env_get_maxkeysize(env) == 511)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 250
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 250
    functionName: LmdbEnvOpen
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - mdb_env_get_maxkeysize
    - assert
    - mdb_env_open
    - sched_yield
    linkageType: ''
    returnType: int
    signature: "int LmdbEnvOpen(\n    MDB_env *const env,\n    const char *const path,\n
      \   const unsigned int flags,\n    const mdb_mode_t mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/core/libpromises/dbm_lmdb.c:258,1
    - Dst: lseek
      Src: /src/core/libpromises/dbm_lmdb.c:259,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:263,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_lmdb.c:263,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:268,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:273,1
    - Dst: GetDBHandleFromFilename
      Src: /src/core/libpromises/dbm_lmdb.c:281,1
    - Dst: GetDBOpenTimestamp
      Src: /src/core/libpromises/dbm_lmdb.c:282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - lmdb_file
    - fd_tstamp
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 255
    functionDepth: 8
    functionLinenumber: 255
    functionLinenumberEnd: 288
    functionName: RepairedAfterOpen
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - GetDBOpenTimestamp
    - read
    - GetDBHandleFromFilename
    - Log
    - lseek
    linkageType: ''
    returnType: bool
    signature: bool RepairedAfterOpen(const char *lmdb_file, int fd_tstamp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/core/libpromises/dbm_lmdb.c:296,1
    - Dst: lseek
      Src: /src/core/libpromises/dbm_lmdb.c:297,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:301,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_lmdb.c:301,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:306,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:311,1
    - Dst: GetDBHandleFromFilename
      Src: /src/core/libpromises/dbm_lmdb.c:318,1
    - Dst: GetDBOpenTimestamp
      Src: /src/core/libpromises/dbm_lmdb.c:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - lmdb_file
    - fd_tstamp
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 293
    functionDepth: 8
    functionLinenumber: 293
    functionLinenumberEnd: 325
    functionName: RotatedAfterOpen
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - GetDBOpenTimestamp
    - read
    - GetDBHandleFromFilename
    - Log
    - lseek
    linkageType: ''
    returnType: bool
    signature: bool RotatedAfterOpen(const char *lmdb_file, int fd_tstamp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:329,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:330,1
    - Dst: GetDBHandleFromFilename
      Src: /src/core/libpromises/dbm_lmdb.c:335,1
    - Dst: FreezeDB
      Src: /src/core/libpromises/dbm_lmdb.c:336,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:341,1
    - Dst: unlink
      Src: /src/core/libpromises/dbm_lmdb.c:343,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:345,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:347,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:349,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_lmdb.c:361,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_lmdb.c:363,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_lmdb.c:364,1
    - Dst: safe_open
      Src: /src/core/libpromises/dbm_lmdb.c:366,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:369,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:371,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:372,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:373,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:375,1
    - Dst: safe_open
      Src: /src/core/libpromises/dbm_lmdb.c:379,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:382,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:384,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:385,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:386,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:387,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:389,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:398,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:399,1
    - Dst: SharedFileLock
      Src: /src/core/libpromises/dbm_lmdb.c:401,1
    - Dst: RepairedAfterOpen
      Src: /src/core/libpromises/dbm_lmdb.c:404,1
    - Dst: SharedFileUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:411,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:417,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:425,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:426,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:427,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:428,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:429,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:431,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libpromises/dbm_lmdb.c:440,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:446,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:450,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:451,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:452,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:453,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:454,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:456,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libpromises/dbm_lmdb.c:463,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:466,1
    - Dst: sleep
      Src: /src/core/libpromises/dbm_lmdb.c:468,1
    - Dst: RepairedAfterOpen
      Src: /src/core/libpromises/dbm_lmdb.c:473,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:477,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:478,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:479,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:480,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:481,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:483,1
    - Dst: repair_lmdb_file
      Src: /src/core/libpromises/dbm_lmdb.c:489,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:496,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:501,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:507,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:509,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:514,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:516,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:520,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:521,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:522,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:528,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:532,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 86
    argCount: 2
    argNames:
    - env
    - msg
    argTypes:
    - MDB_env*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 327
    functionDepth: 12
    functionLinenumber: 327
    functionLinenumberEnd: 535
    functionName: HandleLMDBCorruption
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 1
    functionsReached:
    - SharedFileLock
    - ThreadUnlock
    - ExclusiveFileUnlock
    - repair_lmdb_file
    - Log
    - free
    - FreezeDB
    - close
    - ThreadLock
    - unlink
    - StringFormat
    - sleep
    - ExclusiveFileLock
    - GetDBHandleFromFilename
    - RepairedAfterOpen
    - mdb_env_get_userctx
    - exit
    - safe_open
    - SharedFileUnlock
    linkageType: ''
    returnType: void
    signature: void HandleLMDBCorruption(MDB_env *env, const char *msg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:543,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:544,1
    - Dst: GetDBHandleFromFilename
      Src: /src/core/libpromises/dbm_lmdb.c:548,1
    - Dst: FreezeDB
      Src: /src/core/libpromises/dbm_lmdb.c:549,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:554,1
    - Dst: time
      Src: /src/core/libpromises/dbm_lmdb.c:556,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_lmdb.c:557,1
    - Dst: rename
      Src: /src/core/libpromises/dbm_lmdb.c:558,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:560,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:561,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_lmdb.c:563,1
    - Dst: unlink
      Src: /src/core/libpromises/dbm_lmdb.c:564,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:566,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_lmdb.c:567,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:569,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:571,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:572,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_lmdb.c:581,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_lmdb.c:583,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_lmdb.c:584,1
    - Dst: safe_open
      Src: /src/core/libpromises/dbm_lmdb.c:586,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:589,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:591,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:592,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:593,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:595,1
    - Dst: safe_open
      Src: /src/core/libpromises/dbm_lmdb.c:599,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:602,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:604,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:605,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:606,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:607,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:609,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:618,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:619,1
    - Dst: SharedFileLock
      Src: /src/core/libpromises/dbm_lmdb.c:621,1
    - Dst: RotatedAfterOpen
      Src: /src/core/libpromises/dbm_lmdb.c:624,1
    - Dst: SharedFileUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:631,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:637,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:645,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:646,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:647,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:648,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:649,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:651,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libpromises/dbm_lmdb.c:660,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:666,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:670,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:671,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:672,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:673,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:674,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:676,1
    - Dst: ExclusiveFileLock
      Src: /src/core/libpromises/dbm_lmdb.c:683,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:686,1
    - Dst: sleep
      Src: /src/core/libpromises/dbm_lmdb.c:688,1
    - Dst: RotatedAfterOpen
      Src: /src/core/libpromises/dbm_lmdb.c:693,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:697,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:698,1
    - Dst: close
      Src: /src/core/libpromises/dbm_lmdb.c:699,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:700,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:701,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:703,1
    - Dst: rotate_lmdb_file
      Src: /src/core/libpromises/dbm_lmdb.c:707,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:711,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:715,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:721,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:723,1
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:728,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:730,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_lmdb.c:734,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:735,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:736,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:742,1
    - Dst: exit
      Src: /src/core/libpromises/dbm_lmdb.c:746,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 91
    argCount: 1
    argNames:
    - env
    argTypes:
    - MDB_env*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 541
    functionDepth: 12
    functionLinenumber: 541
    functionLinenumberEnd: 749
    functionName: HandleFullLMDB
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 1
    functionsReached:
    - SharedFileLock
    - ThreadUnlock
    - ExclusiveFileUnlock
    - Log
    - free
    - FreezeDB
    - close
    - time
    - ThreadLock
    - unlink
    - StringFormat
    - sleep
    - ExclusiveFileLock
    - GetDBHandleFromFilename
    - rotate_lmdb_file
    - rename
    - mdb_env_get_userctx
    - GetErrorStr
    - exit
    - safe_open
    - RotatedAfterOpen
    - SharedFileUnlock
    linkageType: ''
    returnType: void
    signature: void HandleFullLMDB(MDB_env *env)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_lmdb.c:753,1
    - Dst: pthread_key_create
      Src: /src/core/libpromises/dbm_lmdb.c:756,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:759,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/dbm_lmdb.c:760,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:761,1
    - Dst: mdb_env_create
      Src: /src/core/libpromises/dbm_lmdb.c:765,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:768,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:769,1
    - Dst: mdb_env_set_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:772,1
    - Dst: xstrdup
      Src: /src/core/libpromises/dbm_lmdb.c:772,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:775,1
    - Dst: mdb_env_set_assert
      Src: /src/core/libpromises/dbm_lmdb.c:778,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:781,1
    - Dst: mdb_env_set_mapsize
      Src: /src/core/libpromises/dbm_lmdb.c:784,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:787,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:788,1
    - Dst: mdb_env_set_maxreaders
      Src: /src/core/libpromises/dbm_lmdb.c:793,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:796,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:797,1
    - Dst: GetAmPolicyHub
      Src: /src/core/libpromises/dbm_lmdb.c:808,1
    - Dst: LmdbEnvOpen
      Src: /src/core/libpromises/dbm_lmdb.c:826,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:829,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:830,1
    - Dst: HandleLMDBCorruption
      Src: /src/core/libpromises/dbm_lmdb.c:833,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:833,1
    - Dst: mdb_env_get_maxreaders
      Src: /src/core/libpromises/dbm_lmdb.c:840,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:843,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:844,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:852,1
    - Dst: mdb_txn_begin
      Src: /src/core/libpromises/dbm_lmdb.c:860,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:864,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:867,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:868,1
    - Dst: sched_yield
      Src: /src/core/libpromises/dbm_lmdb.c:874,1
    - Dst: mdb_txn_begin
      Src: /src/core/libpromises/dbm_lmdb.c:876,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:880,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:881,1
    - Dst: mdb_open
      Src: /src/core/libpromises/dbm_lmdb.c:884,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:885,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:888,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:889,1
    - Dst: mdb_txn_abort
      Src: /src/core/libpromises/dbm_lmdb.c:890,1
    - Dst: mdb_txn_commit
      Src: /src/core/libpromises/dbm_lmdb.c:893,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:894,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:897,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:898,1
    - Dst: mdb_env_close
      Src: /src/core/libpromises/dbm_lmdb.c:907,1
    - Dst: pthread_key_delete
      Src: /src/core/libpromises/dbm_lmdb.c:909,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:910,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 101
    argCount: 2
    argNames:
    - dbpath
    - id
    argTypes:
    - char*
    - dbid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 751
    functionDepth: 13
    functionLinenumber: 751
    functionLinenumberEnd: 916
    functionName: DBPrivOpenDB
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - CheckLMDBUsable
    - HandleLMDBCorruption
    - Log
    - GetErrorStrFromCode
    - free
    - mdb_env_set_assert
    - GetAmPolicyHub
    - sched_yield
    - mdb_env_set_mapsize
    - pthread_key_create
    - mdb_env_set_maxreaders
    - xstrdup
    - mdb_env_create
    - mdb_env_set_userctx
    - mdb_strerror
    - mdb_env_get_maxreaders
    - mdb_txn_abort
    - LmdbEnvOpen
    - xcalloc
    - mdb_txn_begin
    - pthread_key_delete
    - mdb_env_close
    - mdb_open
    - mdb_txn_commit
    linkageType: ''
    returnType: DBPriv
    signature: DBPriv *DBPrivOpenDB(const char *const dbpath, const dbid id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:920,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:924,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:926,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:929,1
    - Dst: mdb_env_close
      Src: /src/core/libpromises/dbm_lmdb.c:933,1
    - Dst: pthread_key_delete
      Src: /src/core/libpromises/dbm_lmdb.c:936,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 938
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 938
    functionName: DBPrivCloseDB
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - assert
    - AbortTransaction
    - pthread_key_delete
    - mdb_env_close
    - free
    - mdb_env_get_userctx
    linkageType: ''
    returnType: void
    signature: void DBPrivCloseDB(DBPriv *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:944,1
    - Dst: GetWriteTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:947,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:951,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:952,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:952,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:955,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:956,1
    - Dst: mdb_drop
      Src: /src/core/libpromises/dbm_lmdb.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (txn != NULL)
      pos:
        line_end: 954
        line_start: 954
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (!txn->cursor_open)
      pos:
        line_end: 955
        line_start: 955
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 959
      start: 942
    functionDepth: 9
    functionLinenumber: 942
    functionLinenumberEnd: 959
    functionName: DBPrivClean
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - assert
    - mdb_strerror
    - GetWriteTransaction
    - mdb_drop
    - Log
    - mdb_env_get_userctx
    linkageType: ''
    returnType: bool
    signature: bool DBPrivClean(DBPriv *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/dbm_lmdb.c:964,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:967,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_lmdb.c:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 961
    functionDepth: 8
    functionLinenumber: 961
    functionLinenumberEnd: 971
    functionName: DBPrivGetDBUsagePercentage
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - stat
    - Log
    linkageType: ''
    returnType: int
    signature: int DBPrivGetDBUsagePercentage(const char *db_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:975,1
    - Dst: pthread_getspecific
      Src: /src/core/libpromises/dbm_lmdb.c:977,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:980,1
    - Dst: mdb_txn_commit
      Src: /src/core/libpromises/dbm_lmdb.c:981,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:982,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:985,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:986,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:986,1
    - Dst: pthread_setspecific
      Src: /src/core/libpromises/dbm_lmdb.c:989,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (!db_txn->cursor_open)
      pos:
        line_end: 979
        line_start: 979
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 991
      start: 973
    functionDepth: 8
    functionLinenumber: 973
    functionLinenumberEnd: 991
    functionName: DBPrivCommit
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - CheckLMDBUsable
    - pthread_setspecific
    - assert
    - mdb_strerror
    - Log
    - pthread_getspecific
    - mdb_txn_commit
    - free
    - mdb_env_get_userctx
    linkageType: ''
    returnType: void
    signature: void DBPrivCommit(DBPriv *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:995,1
    - Dst: GetReadTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1001,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1004,1
    - Dst: mdb_get
      Src: /src/core/libpromises/dbm_lmdb.c:1007,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1008,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1011,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1012,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1012,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - db
    - key
    - key_size
    argTypes:
    - DBPriv*
    - void*
    - int
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (!txn->cursor_open)
      pos:
        line_end: 1003
        line_start: 1003
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1018
      start: 993
    functionDepth: 9
    functionLinenumber: 993
    functionLinenumberEnd: 1018
    functionName: DBPrivHasKey
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - CheckLMDBUsable
    - GetReadTransaction
    - assert
    - mdb_strerror
    - AbortTransaction
    - mdb_get
    - Log
    - mdb_env_get_userctx
    linkageType: ''
    returnType: bool
    signature: bool DBPrivHasKey(DBPriv *db, const void *key, int key_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1022,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1023,1
    - Dst: GetReadTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1030,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1033,1
    - Dst: mdb_get
      Src: /src/core/libpromises/dbm_lmdb.c:1036,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1037,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1040,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1041,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1041,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1042,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1047,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - db
    - key
    - key_size
    argTypes:
    - DBPriv*
    - void*
    - int
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (key_size >= 0)
      pos:
        line_end: 1022
        line_start: 1022
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (!txn->cursor_open)
      pos:
        line_end: 1032
        line_start: 1032
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (ret <= INT_MAX)
      pos:
        line_end: 1046
        line_start: 1046
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1049
      start: 1020
    functionDepth: 9
    functionLinenumber: 1020
    functionLinenumberEnd: 1049
    functionName: DBPrivGetValueSize
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - CheckLMDBUsable
    - GetReadTransaction
    - assert
    - mdb_strerror
    - AbortTransaction
    - mdb_get
    - Log
    - mdb_env_get_userctx
    linkageType: ''
    returnType: int
    signature: int DBPrivGetValueSize(DBPriv *const db, const void *const key, const
      int key_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1058,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1059,1
    - Dst: GetReadTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1064,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1068,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1069,1
    - Dst: mdb_get
      Src: /src/core/libpromises/dbm_lmdb.c:1072,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1073,1
    - Dst: memcpy
      Src: /src/core/libpromises/dbm_lmdb.c:1080,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1085,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1086,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1086,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1087,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - db
    - key
    - key_size
    - dest
    - dest_size
    argTypes:
    - DBPriv*
    - void*
    - int
    - void*
    - size_t
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 1057
        line_start: 1057
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (!txn->cursor_open)
      pos:
        line_end: 1068
        line_start: 1068
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (txn != NULL)
      pos:
        line_end: 1067
        line_start: 1067
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (key_size >= 0)
      pos:
        line_end: 1058
        line_start: 1058
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1091
      start: 1051
    functionDepth: 9
    functionLinenumber: 1051
    functionLinenumberEnd: 1091
    functionName: DBPrivRead
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - CheckLMDBUsable
    - memcpy
    - GetReadTransaction
    - assert
    - mdb_strerror
    - AbortTransaction
    - mdb_get
    - Log
    - mdb_env_get_userctx
    linkageType: ''
    returnType: bool
    signature: "bool DBPrivRead(\n    DBPriv *const db,\n    const void *const key,\n
      \   const int key_size,\n    void *const dest,\n    size_t dest_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1100,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1101,1
    - Dst: GetWriteTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1104,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1108,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1109,1
    - Dst: mdb_put
      Src: /src/core/libpromises/dbm_lmdb.c:1114,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1115,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1118,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1119,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1119,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - db
    - key
    - key_size
    - value
    - value_size
    argTypes:
    - DBPriv*
    - void*
    - int
    - void*
    - int
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 1099
        line_start: 1099
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (txn != NULL)
      pos:
        line_end: 1107
        line_start: 1107
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (key_size >= 0)
      pos:
        line_end: 1100
        line_start: 1100
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (!txn->cursor_open)
      pos:
        line_end: 1108
        line_start: 1108
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1124
      start: 1093
    functionDepth: 9
    functionLinenumber: 1093
    functionLinenumberEnd: 1124
    functionName: DBPrivWrite
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 1
    functionsReached:
    - CheckLMDBUsable
    - mdb_put
    - assert
    - mdb_strerror
    - AbortTransaction
    - GetWriteTransaction
    - Log
    - mdb_env_get_userctx
    linkageType: ''
    returnType: bool
    signature: "bool DBPrivWrite(\n    DBPriv *const db,\n    const void *const key,\n
      \   const int key_size,\n    const void *const value,\n    const int value_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1129,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1130,1
    - Dst: GetWriteTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1132,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1139,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1140,1
    - Dst: mdb_get
      Src: /src/core/libpromises/dbm_lmdb.c:1145,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1146,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1149,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1150,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1150,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1151,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1159,1
    - Dst: memcpy
      Src: /src/core/libpromises/dbm_lmdb.c:1165,1
    - Dst: Condition
      Src: /src/core/libpromises/dbm_lmdb.c:1166,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1168,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1174,1
    - Dst: Condition
      Src: /src/core/libpromises/dbm_lmdb.c:1175,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1177,1
    - Dst: mdb_put
      Src: /src/core/libpromises/dbm_lmdb.c:1186,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1187,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1190,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1191,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1191,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1192,1
    - Dst: DBPrivCommit
      Src: /src/core/libpromises/dbm_lmdb.c:1195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 7
    argNames:
    - db
    - key
    - key_size
    - value
    - value_size
    - Condition
    - data
    argTypes:
    - DBPriv*
    - char*
    - int
    - void*
    - size_t
    - OverwriteCondition
    - void*
    assertStmts:
    - condition: (rc == MDB_NOTFOUND)
      pos:
        line_end: 1173
        line_start: 1173
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (orig_data.mv_size > 0)
      pos:
        line_end: 1158
        line_start: 1158
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (txn != NULL)
      pos:
        line_end: 1138
        line_start: 1138
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (db != NULL)
      pos:
        line_end: 1128
        line_start: 1128
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (!txn->cursor_open)
      pos:
        line_end: 1139
        line_start: 1139
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (key_size >= 0)
      pos:
        line_end: 1129
        line_start: 1129
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1197
      start: 1126
    functionDepth: 9
    functionLinenumber: 1126
    functionLinenumberEnd: 1197
    functionName: DBPrivOverwrite
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - CheckLMDBUsable
    - memcpy
    - mdb_put
    - assert
    - mdb_strerror
    - AbortTransaction
    - GetWriteTransaction
    - mdb_get
    - Log
    - DBPrivCommit
    - Condition
    - mdb_env_get_userctx
    linkageType: ''
    returnType: bool
    signature: "bool DBPrivOverwrite(DBPriv *db, const char *key, int key_size, const
      void *value, size_t value_size,\n                     OverwriteCondition Condition,
      void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1201,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1202,1
    - Dst: GetWriteTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1206,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1209,1
    - Dst: mdb_del
      Src: /src/core/libpromises/dbm_lmdb.c:1212,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1213,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1216,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1217,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1217,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1221,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1222,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1222,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - db
    - key
    - key_size
    argTypes:
    - DBPriv*
    - void*
    - int
    assertStmts:
    - condition: (key_size >= 0)
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (db != NULL)
      pos:
        line_end: 1201
        line_start: 1201
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (!txn->cursor_open)
      pos:
        line_end: 1208
        line_start: 1208
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1227
      start: 1199
    functionDepth: 9
    functionLinenumber: 1199
    functionLinenumberEnd: 1227
    functionName: DBPrivDelete
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 1
    functionsReached:
    - CheckLMDBUsable
    - assert
    - mdb_strerror
    - AbortTransaction
    - GetWriteTransaction
    - Log
    - mdb_del
    - mdb_env_get_userctx
    linkageType: ''
    returnType: bool
    signature: bool DBPrivDelete(DBPriv *const db, const void *const key, const int
      key_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1231,1
    - Dst: GetWriteTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1237,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1240,1
    - Dst: mdb_cursor_open
      Src: /src/core/libpromises/dbm_lmdb.c:1241,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1242,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_lmdb.c:1245,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1252,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1253,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1253,1
    - Dst: AbortTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 1230
        line_start: 1230
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (!txn->cursor_open)
      pos:
        line_end: 1239
        line_start: 1239
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1260
      start: 1229
    functionDepth: 9
    functionLinenumber: 1229
    functionLinenumberEnd: 1260
    functionName: DBPrivOpenCursor
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - CheckLMDBUsable
    - xcalloc
    - assert
    - mdb_strerror
    - AbortTransaction
    - GetWriteTransaction
    - Log
    - mdb_cursor_open
    - mdb_env_get_userctx
    linkageType: ''
    returnType: DBCursorPriv
    signature: DBCursorPriv *DBPrivOpenCursor(DBPriv *const db)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1269,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1270,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:1277,1
    - Dst: mdb_cursor_get
      Src: /src/core/libpromises/dbm_lmdb.c:1281,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1282,1
    - Dst: xmalloc
      Src: /src/core/libpromises/dbm_lmdb.c:1292,1
    - Dst: memcpy
      Src: /src/core/libpromises/dbm_lmdb.c:1293,1
    - Dst: memcpy
      Src: /src/core/libpromises/dbm_lmdb.c:1298,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1304,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1305,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1305,1
    - Dst: mdb_cursor_get
      Src: /src/core/libpromises/dbm_lmdb.c:1311,1
    - Dst: mdb_cursor_del
      Src: /src/core/libpromises/dbm_lmdb.c:1314,1
    - Dst: mdb_cursor_get
      Src: /src/core/libpromises/dbm_lmdb.c:1321,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - cursor
    - key
    - key_size
    - value
    - value_size
    argTypes:
    - DBCursorPriv*
    - void**
    - int*
    - void**
    - int*
    assertStmts:
    - condition: (cursor != NULL)
      pos:
        line_end: 1268
        line_start: 1268
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (cursor->db != NULL)
      pos:
        line_end: 1269
        line_start: 1269
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1328
      start: 1262
    functionDepth: 8
    functionLinenumber: 1262
    functionLinenumberEnd: 1328
    functionName: DBPrivAdvanceCursor
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - CheckLMDBUsable
    - memcpy
    - mdb_cursor_del
    - assert
    - mdb_strerror
    - mdb_cursor_get
    - xmalloc
    - Log
    - free
    - mdb_env_get_userctx
    linkageType: ''
    returnType: bool
    signature: "bool DBPrivAdvanceCursor(\n    DBCursorPriv *const cursor,\n    void
      **const key,\n    int *const key_size,\n    void **const value,\n    int *const
      value_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1332,1
    - Dst: mdb_cursor_get
      Src: /src/core/libpromises/dbm_lmdb.c:1334,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - DBCursorPriv*
    assertStmts:
    - condition: (cursor != NULL)
      pos:
        line_end: 1331
        line_start: 1331
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1341
      start: 1330
    functionDepth: 2
    functionLinenumber: 1330
    functionLinenumberEnd: 1341
    functionName: DBPrivDeleteCursorEntry
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - assert
    - CheckLMDBUsable
    - mdb_cursor_get
    linkageType: ''
    returnType: bool
    signature: bool DBPrivDeleteCursorEntry(DBCursorPriv *const cursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1346,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1347,1
    - Dst: mdb_cursor_put
      Src: /src/core/libpromises/dbm_lmdb.c:1362,1
    - Dst: CheckLMDBUsable
      Src: /src/core/libpromises/dbm_lmdb.c:1363,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1366,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1367,1
    - Dst: mdb_strerror
      Src: /src/core/libpromises/dbm_lmdb.c:1367,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_lmdb.c:1372,1
    - Dst: mdb_env_get_userctx
      Src: /src/core/libpromises/dbm_lmdb.c:1373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - cursor
    - value
    - value_size
    argTypes:
    - DBCursorPriv*
    - void*
    - int
    assertStmts:
    - condition: (cursor != NULL)
      pos:
        line_end: 1345
        line_start: 1345
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (cursor->db != NULL)
      pos:
        line_end: 1346
        line_start: 1346
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1377
      start: 1343
    functionDepth: 8
    functionLinenumber: 1343
    functionLinenumberEnd: 1377
    functionName: DBPrivWriteCursorEntry
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - CheckLMDBUsable
    - assert
    - mdb_strerror
    - Log
    - mdb_cursor_put
    - mdb_env_get_userctx
    linkageType: ''
    returnType: bool
    signature: "bool DBPrivWriteCursorEntry(\n    DBCursorPriv *const cursor, const
      void *const value, const int value_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1381,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_lmdb.c:1382,1
    - Dst: GetWriteTransaction
      Src: /src/core/libpromises/dbm_lmdb.c:1385,1
    - Dst: CF_ASSERT
      Src: /src/core/libpromises/dbm_lmdb.c:1386,1
    - Dst: CF_ASSERT
      Src: /src/core/libpromises/dbm_lmdb.c:1387,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:1392,1
    - Dst: mdb_cursor_del
      Src: /src/core/libpromises/dbm_lmdb.c:1397,1
    - Dst: mdb_cursor_close
      Src: /src/core/libpromises/dbm_lmdb.c:1400,1
    - Dst: free
      Src: /src/core/libpromises/dbm_lmdb.c:1401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - DBCursorPriv*
    assertStmts:
    - condition: (cursor != NULL)
      pos:
        line_end: 1380
        line_start: 1380
        source_file: /src/core/libpromises/dbm_lmdb.c
    - condition: (cursor->db != NULL)
      pos:
        line_end: 1381
        line_start: 1381
        source_file: /src/core/libpromises/dbm_lmdb.c
    constantsTouched: []
    func_position:
      end: 1402
      start: 1379
    functionDepth: 9
    functionLinenumber: 1379
    functionLinenumberEnd: 1402
    functionName: DBPrivCloseCursor
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - mdb_cursor_del
    - assert
    - GetWriteTransaction
    - CF_ASSERT
    - mdb_cursor_close
    - free
    linkageType: ''
    returnType: void
    signature: void DBPrivCloseCursor(DBCursorPriv *const cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_lmdb.c:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1404
    functionDepth: 3
    functionLinenumber: 1404
    functionLinenumberEnd: 1407
    functionName: DBPrivDiagnose
    functionSourceFile: /src/core/libpromises/dbm_lmdb.c
    functionUses: 0
    functionsReached:
    - StringFormat
    linkageType: ''
    returnType: char
    signature: char *DBPrivDiagnose(const char *const dbpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __lock
    - ','
    - __lock_sum
    - ','
    - __lock_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: LOG_LOCK_ENTRY
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_LOCK_ENTRY(__lock, __lock_sum, __lock_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __lock
    - ','
    - __lock_sum
    - ','
    - __lock_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: LOG_LOCK_EXIT
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_LOCK_EXIT(__lock, __lock_sum, __lock_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __lock
    - ','
    - __lock_sum
    - ','
    - __lock_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: LOG_LOCK_OP
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_LOCK_OP(__lock, __lock_sum, __lock_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/locks.c:87,1
    - Dst: strlcpy
      Src: /src/core/libpromises/locks.c:88,1
    - Dst: strlcpy
      Src: /src/core/libpromises/locks.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - lock
    - last
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: PushLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void PushLock(char *lock, char *last)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: PopLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CfLockStack
    signature: CfLockStack *PopLock()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/locks.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: OpenLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - OpenDB
    linkageType: ''
    returnType: CF_DB
    signature: CF_DB *OpenLock()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseDB
      Src: /src/core/libpromises/locks.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dbp
    argTypes:
    - CF_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: CloseLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - CloseDB
    linkageType: ''
    returnType: void
    signature: void CloseLock(CF_DB *dbp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/locks.c:140,1
    - Dst: LogDebug
      Src: /src/core/libpromises/locks.c:144,1
    - Dst: LogDebug
      Src: /src/core/libpromises/locks.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - op
    - function
    - lock
    - lock_sum
    - lock_data
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - LockData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 133
    functionDepth: 8
    functionLinenumber: 133
    functionLinenumberEnd: 159
    functionName: log_lock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - LogDebug
    - LogGetGlobalLevel
    linkageType: ''
    returnType: void
    signature: "void log_lock(const char *op,\n                            const char
      *function,\n                            const char *lock,\n                            const
      char *lock_sum,\n                            const LockData *lock_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/locks.c:163,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:163,1
    - Dst: assert
      Src: /src/core/libpromises/locks.c:164,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:164,1
    - Dst: StringCopyTruncateAndHashIfNecessary
      Src: /src/core/libpromises/locks.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - istring
    - ohash
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (strlen("CF_CRITICAL_SECTION") < LMDB_MAX_KEY_SIZE)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/core/libpromises/locks.c
    - condition: (strlen("lock.track_license_bundle.track_license") < LMDB_MAX_KEY_SIZE)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/core/libpromises/locks.c
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: HashLockKeyIfNecessary
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - assert
    - StringCopyTruncateAndHashIfNecessary
    - strlen
    linkageType: ''
    returnType: void
    signature: void HashLockKeyIfNecessary(const char *const istring, char *const
      ohash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashLockKeyIfNecessary
      Src: /src/core/libpromises/locks.c:176,1
    - Dst: LOG_LOCK_ENTRY
      Src: /src/core/libpromises/locks.c:178,1
    - Dst: WriteDB
      Src: /src/core/libpromises/locks.c:179,1
    - Dst: LOG_LOCK_EXIT
      Src: /src/core/libpromises/locks.c:180,1
    - Dst: WriteDB
      Src: /src/core/libpromises/locks.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - dbp
    - lock_id
    - lock_data
    argTypes:
    - CF_DB*
    - char*
    - LockData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 186
    functionName: WriteLockData
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - LOG_LOCK_ENTRY
    - HashLockKeyIfNecessary
    - LOG_LOCK_EXIT
    - WriteDB
    linkageType: ''
    returnType: bool
    signature: bool WriteLockData(CF_DB *dbp, const char *lock_id, LockData *lock_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/core/libpromises/locks.c:191,1
    - Dst: time
      Src: /src/core/libpromises/locks.c:192,1
    - Dst: GetProcessStartTime
      Src: /src/core/libpromises/locks.c:193,1
    - Dst: getpid
      Src: /src/core/libpromises/locks.c:193,1
    - Dst: WriteLockData
      Src: /src/core/libpromises/locks.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dbp
    - lock_id
    argTypes:
    - CF_DB*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 6
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: WriteLockDataCurrent
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - GetProcessStartTime
    - WriteLockData
    - getpid
    - time
    linkageType: ''
    returnType: bool
    signature: bool WriteLockDataCurrent(CF_DB *dbp, const char *lock_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenLock
      Src: /src/core/libpromises/locks.c:200,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/locks.c:207,1
    - Dst: WriteLockDataCurrent
      Src: /src/core/libpromises/locks.c:208,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:210,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/locks.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 198
    functionDepth: 7
    functionLinenumber: 198
    functionLinenumberEnd: 214
    functionName: WriteLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - ThreadUnlock
    - CloseLock
    - WriteLockDataCurrent
    - OpenLock
    linkageType: ''
    returnType: int
    signature: int WriteLock(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OpenLock
      Src: /src/core/libpromises/locks.c:219,1
    - Dst: HashLockKeyIfNecessary
      Src: /src/core/libpromises/locks.c:230,1
    - Dst: LOG_LOCK_ENTRY
      Src: /src/core/libpromises/locks.c:232,1
    - Dst: ReadDB
      Src: /src/core/libpromises/locks.c:233,1
    - Dst: LOG_LOCK_EXIT
      Src: /src/core/libpromises/locks.c:234,1
    - Dst: ReadDB
      Src: /src/core/libpromises/locks.c:236,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:241,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 216
    functionDepth: 5
    functionLinenumber: 216
    functionLinenumberEnd: 249
    functionName: FindLockTime
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - LOG_LOCK_ENTRY
    - HashLockKeyIfNecessary
    - CloseLock
    - ReadDB
    - LOG_LOCK_EXIT
    - OpenLock
    linkageType: ''
    returnType: time_t
    signature: time_t FindLockTime(const char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:265,1
    - Dst: strstr
      Src: /src/core/libpromises/locks.c:273,1
    - Dst: strstr
      Src: /src/core/libpromises/locks.c:284,1
    - Dst: sscanf
      Src: /src/core/libpromises/locks.c:295,1
    - Dst: isdigit
      Src: /src/core/libpromises/locks.c:310,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 316
    functionName: RemoveDates
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - strstr
    - isdigit
    - sscanf
    - strlen
    linkageType: ''
    returnType: void
    signature: void RemoveDates(char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenLock
      Src: /src/core/libpromises/locks.c:320,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/locks.c:326,1
    - Dst: HashLockKeyIfNecessary
      Src: /src/core/libpromises/locks.c:330,1
    - Dst: LOG_LOCK_ENTRY
      Src: /src/core/libpromises/locks.c:332,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/locks.c:333,1
    - Dst: LOG_LOCK_EXIT
      Src: /src/core/libpromises/locks.c:334,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/locks.c:336,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/locks.c:338,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 318
    functionDepth: 5
    functionLinenumber: 318
    functionLinenumberEnd: 342
    functionName: RemoveLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - DeleteDB
    - ThreadUnlock
    - LOG_LOCK_ENTRY
    - HashLockKeyIfNecessary
    - CloseLock
    - LOG_LOCK_EXIT
    - OpenLock
    linkageType: ''
    returnType: int
    signature: int RemoveLock(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/locks.c:346,1
    - Dst: time
      Src: /src/core/libpromises/locks.c:353,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - entry
    - entry_size
    - max_old
    argTypes:
    - LockData*
    - ARG_UNUSED
    - size_t*
    assertStmts:
    - condition: ((entry == NULL) || (entry_size == sizeof(LockData)))
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/core/libpromises/locks.c
    constantsTouched: []
    func_position:
      end: 359
      start: 344
    functionDepth: 8
    functionLinenumber: 344
    functionLinenumberEnd: 359
    functionName: NoOrObsoleteLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - assert
    - Log
    - time
    linkageType: ''
    returnType: bool
    signature: bool NoOrObsoleteLock(LockData *entry, ARG_UNUSED size_t entry_size,
      size_t *max_old)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/locks.c:363,1
    - Dst: OpenLock
      Src: /src/core/libpromises/locks.c:365,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:368,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/locks.c:369,1
    - Dst: time
      Src: /src/core/libpromises/locks.c:373,1
    - Dst: getpid
      Src: /src/core/libpromises/locks.c:375,1
    - Dst: HashLockKeyIfNecessary
      Src: /src/core/libpromises/locks.c:380,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:381,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:390,1
    - Dst: time
      Src: /src/core/libpromises/locks.c:392,1
    - Dst: time
      Src: /src/core/libpromises/locks.c:394,1
    - Dst: OverwriteDB
      Src: /src/core/libpromises/locks.c:395,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:399,1
    - Dst: sleep
      Src: /src/core/libpromises/locks.c:400,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:408,1
    - Dst: WriteDB
      Src: /src/core/libpromises/locks.c:409,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:411,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:416,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:419,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/locks.c:420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - section_id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 361
    functionDepth: 8
    functionLinenumber: 361
    functionLinenumberEnd: 421
    functionName: WaitForCriticalSection
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - getpid
    - ThreadUnlock
    - sleep
    - HashLockKeyIfNecessary
    - OverwriteDB
    - CloseLock
    - Log
    - WriteDB
    - time
    - OpenLock
    linkageType: ''
    returnType: void
    signature: void WaitForCriticalSection(const char *section_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/locks.c:425,1
    - Dst: RemoveLock
      Src: /src/core/libpromises/locks.c:426,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:428,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - section_id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 423
    functionDepth: 8
    functionLinenumber: 423
    functionLinenumberEnd: 434
    functionName: ReleaseCriticalSection
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - Log
    - RemoveLock
    linkageType: ''
    returnType: void
    signature: void ReleaseCriticalSection(const char *section_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindLockTime
      Src: /src/core/libpromises/locks.c:440,1
    - Dst: WriteLock
      Src: /src/core/libpromises/locks.c:444,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - last
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 436
    functionDepth: 8
    functionLinenumber: 436
    functionLinenumberEnd: 456
    functionName: FindLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - WriteLock
    - FindLockTime
    - Log
    linkageType: ''
    returnType: time_t
    signature: time_t FindLock(char *last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PopLock
      Src: /src/core/libpromises/locks.c:461,1
    - Dst: xstrdup
      Src: /src/core/libpromises/locks.c:464,1
    - Dst: xstrdup
      Src: /src/core/libpromises/locks.c:465,1
    - Dst: YieldCurrentLock
      Src: /src/core/libpromises/locks.c:467,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: LocksCleanup
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - free
    - YieldCurrentLock
    - PopLock
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void LocksCleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterCleanupFunction
      Src: /src/core/libpromises/locks.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 475
    functionName: RegisterLockCleanup
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - RegisterCleanupFunction
    linkageType: ''
    returnType: void
    signature: void RegisterLockCleanup(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/locks.c:486,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:487,1
    - Dst: strcpy
      Src: /src/core/libpromises/locks.c:494,1
    - Dst: strcat
      Src: /src/core/libpromises/locks.c:495,1
    - Dst: SeqLength
      Src: /src/core/libpromises/locks.c:502,1
    - Dst: SeqAt
      Src: /src/core/libpromises/locks.c:505,1
    - Dst: strcmp
      Src: /src/core/libpromises/locks.c:510,1
    - Dst: strcmp
      Src: /src/core/libpromises/locks.c:517,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:522,1
    - Dst: strcat
      Src: /src/core/libpromises/locks.c:525,1
    - Dst: strcat
      Src: /src/core/libpromises/locks.c:526,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - dst
    - dst_size
    - pp
    argTypes:
    - char*
    - size_t
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 531
    functionName: PromiseTypeString
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - strlen
    - PromiseGetPromiseType
    - strcat
    - strcmp
    - SeqLength
    - strcpy
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void PromiseTypeString(char *dst, size_t dst_size, const Promise *pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/locks.c:541,1
    - Dst: open
      Src: /src/core/libpromises/locks.c:542,1
    - Dst: FullRead
      Src: /src/core/libpromises/locks.c:554,1
    - Dst: close
      Src: /src/core/libpromises/locks.c:555,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:558,1
    - Dst: StringEqual
      Src: /src/core/libpromises/locks.c:581,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:586,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 538
    functionDepth: 8
    functionLinenumber: 538
    functionLinenumberEnd: 588
    functionName: IsCfengineLockHolder
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - snprintf
    - StringEqual
    - FullRead
    - Log
    - open
    - close
    linkageType: ''
    returnType: bool
    signature: bool IsCfengineLockHolder(pid_t pid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OpenLock
      Src: /src/core/libpromises/locks.c:593,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:596,1
    - Dst: HashLockKeyIfNecessary
      Src: /src/core/libpromises/locks.c:605,1
    - Dst: LOG_LOCK_ENTRY
      Src: /src/core/libpromises/locks.c:607,1
    - Dst: ReadDB
      Src: /src/core/libpromises/locks.c:608,1
    - Dst: LOG_LOCK_EXIT
      Src: /src/core/libpromises/locks.c:609,1
    - Dst: ReadDB
      Src: /src/core/libpromises/locks.c:611,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:617,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:621,1
    - Dst: IsCfengineLockHolder
      Src: /src/core/libpromises/locks.c:623,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:624,1
    - Dst: GracefulTerminate
      Src: /src/core/libpromises/locks.c:630,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:632,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:641,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:648,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/locks.c:650,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - lock
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 590
    functionDepth: 10
    functionLinenumber: 590
    functionLinenumberEnd: 654
    functionName: KillLockHolder
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - GracefulTerminate
    - LOG_LOCK_ENTRY
    - HashLockKeyIfNecessary
    - CloseLock
    - IsCfengineLockHolder
    - ReadDB
    - Log
    - LOG_LOCK_EXIT
    - OpenLock
    linkageType: ''
    returnType: bool
    signature: bool KillLockHolder(const char *lock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/locks.c:658,1
    - Dst: assert
      Src: /src/core/libpromises/locks.c:659,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:664,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/locks.c:664,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:665,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/locks.c:665,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:670,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/locks.c:670,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:671,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/locks.c:671,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/locks.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - context
    - rp
    argTypes:
    - EVP_MD_CTX*
    - Rlist*
    assertStmts:
    - condition: (context != NULL)
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/core/libpromises/locks.c
    - condition: (rp != NULL)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/core/libpromises/locks.c
    constantsTouched: []
    func_position:
      end: 678
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 678
    functionName: RvalDigestUpdate
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - strlen
    - assert
    - EVP_DigestUpdate
    - RlistFnCallValue
    - ProgrammingError
    - RlistScalarValue
    linkageType: ''
    returnType: void
    signature: void RvalDigestUpdate(EVP_MD_CTX *context, Rlist *rp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: HashDigestFromId
      Src: /src/core/libpromises/locks.c:694,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:697,1
    - Dst: EVP_MD_CTX_new
      Src: /src/core/libpromises/locks.c:703,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:706,1
    - Dst: EVP_DigestInit
      Src: /src/core/libpromises/locks.c:710,1
    - Dst: strcmp
      Src: /src/core/libpromises/locks.c:713,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:715,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:715,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:720,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:720,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:727,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:729,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:734,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:736,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:744,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:744,1
    - Dst: SeqLength
      Src: /src/core/libpromises/locks.c:749,1
    - Dst: SeqAt
      Src: /src/core/libpromises/locks.c:751,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:753,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:753,1
    - Dst: strcmp
      Src: /src/core/libpromises/locks.c:760,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:775,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:775,1
    - Dst: RvalDigestUpdate
      Src: /src/core/libpromises/locks.c:781,1
    - Dst: RvalContainerValue
      Src: /src/core/libpromises/locks.c:787,1
    - Dst: StringWriter
      Src: /src/core/libpromises/locks.c:788,1
    - Dst: JsonWriteCompact
      Src: /src/core/libpromises/locks.c:789,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:790,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/locks.c:790,1
    - Dst: StringWriterLength
      Src: /src/core/libpromises/locks.c:790,1
    - Dst: WriterClose
      Src: /src/core/libpromises/locks.c:791,1
    - Dst: EVP_DigestUpdate
      Src: /src/core/libpromises/locks.c:801,1
    - Dst: strlen
      Src: /src/core/libpromises/locks.c:801,1
    - Dst: RvalDigestUpdate
      Src: /src/core/libpromises/locks.c:805,1
    - Dst: EVP_DigestFinal
      Src: /src/core/libpromises/locks.c:815,1
    - Dst: EVP_MD_CTX_free
      Src: /src/core/libpromises/locks.c:816,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 4
    argNames:
    - pp
    - salt
    - digest
    - type
    argTypes:
    - Promise*
    - char*
    - unsigned char[]
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 680
    functionDepth: 8
    functionLinenumber: 680
    functionLinenumberEnd: 819
    functionName: PromiseRuntimeHash
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - EVP_DigestInit
    - HashDigestFromId
    - strlen
    - EVP_DigestUpdate
    - EVP_DigestFinal
    - StringWriterLength
    - StringWriter
    - RvalContainerValue
    - JsonWriteCompact
    - EVP_MD_CTX_new
    - Log
    - strcmp
    - StringWriterData
    - RvalDigestUpdate
    - SeqLength
    - EVP_MD_CTX_free
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void PromiseRuntimeHash(const Promise *pp, const char *salt,\n                        unsigned
      char digest[EVP_MAX_MD_SIZE + 1],\n                        HashMethod type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/libpromises/locks.c:824,1
    - Dst: xstrdup
      Src: /src/core/libpromises/locks.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - last
    - lock
    - is_dummy
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 828
    functionName: CfLockNew
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: CfLock
    signature: CfLock CfLockNew(const char *last, const char *lock, bool is_dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 837
    functionName: CfLockNull
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CfLock
    signature: CfLock CfLockNull(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CfLockNull
      Src: /src/core/libpromises/locks.c:845,1
    - Dst: PromiseRuntimeHash
      Src: /src/core/libpromises/locks.c:851,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/locks.c:852,1
    - Dst: EvalContextPromiseLockCacheContains
      Src: /src/core/libpromises/locks.c:856,1
    - Dst: CfLockNull
      Src: /src/core/libpromises/locks.c:859,1
    - Dst: EvalContextPromiseLockCachePut
      Src: /src/core/libpromises/locks.c:862,1
    - Dst: EvalContextIsIgnoringLocks
      Src: /src/core/libpromises/locks.c:865,1
    - Dst: CfLockNew
      Src: /src/core/libpromises/locks.c:867,1
    - Dst: PromiseTypeString
      Src: /src/core/libpromises/locks.c:873,1
    - Dst: snprintf
      Src: /src/core/libpromises/locks.c:874,1
    - Dst: strlcpy
      Src: /src/core/libpromises/locks.c:878,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/locks.c:879,1
    - Dst: RemoveDates
      Src: /src/core/libpromises/locks.c:880,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:883,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/locks.c:898,1
    - Dst: snprintf
      Src: /src/core/libpromises/locks.c:901,1
    - Dst: snprintf
      Src: /src/core/libpromises/locks.c:905,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:908,1
    - Dst: WaitForCriticalSection
      Src: /src/core/libpromises/locks.c:912,1
    - Dst: FindLock
      Src: /src/core/libpromises/locks.c:915,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:924,1
    - Dst: ReleaseCriticalSection
      Src: /src/core/libpromises/locks.c:928,1
    - Dst: CfLockNull
      Src: /src/core/libpromises/locks.c:929,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:934,1
    - Dst: ReleaseCriticalSection
      Src: /src/core/libpromises/locks.c:937,1
    - Dst: CfLockNull
      Src: /src/core/libpromises/locks.c:938,1
    - Dst: FindLock
      Src: /src/core/libpromises/locks.c:943,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:952,1
    - Dst: KillLockHolder
      Src: /src/core/libpromises/locks.c:956,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:958,1
    - Dst: unlink
      Src: /src/core/libpromises/locks.c:960,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:964,1
    - Dst: ReleaseCriticalSection
      Src: /src/core/libpromises/locks.c:969,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:970,1
    - Dst: CfLockNull
      Src: /src/core/libpromises/locks.c:973,1
    - Dst: WriteLock
      Src: /src/core/libpromises/locks.c:977,1
    - Dst: pthread_once
      Src: /src/core/libpromises/locks.c:986,1
    - Dst: ReleaseCriticalSection
      Src: /src/core/libpromises/locks.c:990,1
    - Dst: PushLock
      Src: /src/core/libpromises/locks.c:993,1
    - Dst: CfLockNew
      Src: /src/core/libpromises/locks.c:995,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 68
    argCount: 8
    argNames:
    - ctx
    - operand
    - host
    - now
    - ifelapsed
    - expireafter
    - pp
    - ignoreProcesses
    argTypes:
    - EvalContext*
    - char*
    - char*
    - time_t
    - int
    - int
    - Promise*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 839
    functionDepth: 11
    functionLinenumber: 839
    functionLinenumberEnd: 996
    functionName: AcquireLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 1
    functionsReached:
    - PromiseRuntimeHash
    - CfLockNull
    - ReleaseCriticalSection
    - HashPrintSafe
    - FindLock
    - Log
    - EvalContextPromiseLockCachePut
    - strlcpy
    - snprintf
    - unlink
    - RemoveDates
    - WaitForCriticalSection
    - pthread_once
    - EvalContextIsIgnoringLocks
    - PushLock
    - EvalContextPromiseLockCacheContains
    - PromiseGetBundle
    - CanonifyNameInPlace
    - KillLockHolder
    - PromiseTypeString
    - CfLockNew
    - WriteLock
    linkageType: ''
    returnType: CfLock
    signature: "CfLock AcquireLock(EvalContext *ctx, const char *operand, const char
      *host,\n                   time_t now, int ifelapsed, int expireafter, const
      Promise *pp,\n                   bool ignoreProcesses)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/locks.c:1002,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1011,1
    - Dst: RemoveLock
      Src: /src/core/libpromises/locks.c:1013,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1015,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1016,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1017,1
    - Dst: WriteLock
      Src: /src/core/libpromises/locks.c:1021,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1023,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/locks.c:1024,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1025,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1026,1
    - Dst: strcmp
      Src: /src/core/libpromises/locks.c:1037,1
    - Dst: strcmp
      Src: /src/core/libpromises/locks.c:1038,1
    - Dst: assert
      Src: /src/core/libpromises/locks.c:1044,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1049,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1056,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1057,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CfLock
    assertStmts:
    - condition: (delete_me == LOCK_STACK)
      pos:
        line_end: 1043
        line_start: 1043
        source_file: /src/core/libpromises/locks.c
    constantsTouched: []
    func_position:
      end: 1058
      start: 998
    functionDepth: 8
    functionLinenumber: 998
    functionLinenumberEnd: 1058
    functionName: YieldCurrentLock
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - WriteLock
    - assert
    - Log
    - strcmp
    - free
    - RemoveLock
    linkageType: ''
    returnType: void
    signature: void YieldCurrentLock(CfLock lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseRuntimeHash
      Src: /src/core/libpromises/locks.c:1064,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/locks.c:1066,1
    - Dst: YieldCurrentLock
      Src: /src/core/libpromises/locks.c:1069,1
    - Dst: EvalContextPromiseLockCacheRemove
      Src: /src/core/libpromises/locks.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - lock
    - operand
    - pp
    argTypes:
    - EvalContext*
    - CfLock
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1060
    functionDepth: 9
    functionLinenumber: 1060
    functionLinenumberEnd: 1071
    functionName: YieldCurrentLockAndRemoveFromCache
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - EvalContextPromiseLockCacheRemove
    - HashPrintSafe
    - YieldCurrentLock
    - PromiseRuntimeHash
    linkageType: ''
    returnType: void
    signature: "void YieldCurrentLockAndRemoveFromCache(EvalContext *ctx, CfLock lock,\n
      \                                       const char *operand, const Promise *pp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libpromises/locks.c:1093,1
    - Dst: strlcat
      Src: /src/core/libpromises/locks.c:1094,1
    - Dst: strlcat
      Src: /src/core/libpromises/locks.c:1095,1
    - Dst: strlcat
      Src: /src/core/libpromises/locks.c:1096,1
    - Dst: strncat
      Src: /src/core/libpromises/locks.c:1103,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/locks.c:1103,1
    - Dst: strncat
      Src: /src/core/libpromises/locks.c:1107,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/locks.c:1107,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/locks.c:1111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - lockname
    - locktype
    - base
    - params
    argTypes:
    - char*
    - char*
    - char*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1115
    functionName: GetLockName
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - strlcat
    - strncat
    - RlistFnCallValue
    - ProgrammingError
    - RlistScalarValue
    - strlcpy
    linkageType: ''
    returnType: void
    signature: "void GetLockName(char *lockname, const char *locktype,\n                 const
      char *base, const Rlist *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBIdToPath
      Src: /src/core/libpromises/locks.c:1122,1
    - Dst: xasprintf
      Src: /src/core/libpromises/locks.c:1124,1
    - Dst: CopyLockDatabaseAtomically
      Src: /src/core/libpromises/locks.c:1126,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1129,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1131
    functionName: RestoreLockDatabase
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - CopyLockDatabaseAtomically
    - xasprintf
    - free
    - DBIdToPath
    linkageType: ''
    returnType: void
    signature: void RestoreLockDatabase(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libpromises/locks.c:1138,1
    - Dst: open
      Src: /src/core/libpromises/locks.c:1140,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1143,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/locks.c:1145,1
    - Dst: open
      Src: /src/core/libpromises/locks.c:1149,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1152,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/locks.c:1154,1
    - Dst: FileSparseCopy
      Src: /src/core/libpromises/locks.c:1160,1
    - Dst: FileSparseClose
      Src: /src/core/libpromises/locks.c:1167,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1172,1
    - Dst: rename
      Src: /src/core/libpromises/locks.c:1177,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1179,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/locks.c:1181,1
    - Dst: close
      Src: /src/core/libpromises/locks.c:1187,1
    - Dst: unlink
      Src: /src/core/libpromises/locks.c:1189,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - from
    - to
    - from_pretty_name
    - to_pretty_name
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1133
    functionDepth: 11
    functionLinenumber: 1133
    functionLinenumberEnd: 1191
    functionName: CopyLockDatabaseAtomically
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - FileSparseClose
    - unlink
    - xasprintf
    - Log
    - open
    - FileSparseCopy
    - free
    - rename
    - close
    linkageType: ''
    returnType: void
    signature: "void CopyLockDatabaseAtomically(const char *from, const char *to,\n
      \                                      const char *from_pretty_name,\n                                       const
      char *to_pretty_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForCriticalSection
      Src: /src/core/libpromises/locks.c:1195,1
    - Dst: DBIdToPath
      Src: /src/core/libpromises/locks.c:1197,1
    - Dst: xasprintf
      Src: /src/core/libpromises/locks.c:1199,1
    - Dst: CopyLockDatabaseAtomically
      Src: /src/core/libpromises/locks.c:1201,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1204,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1205,1
    - Dst: ReleaseCriticalSection
      Src: /src/core/libpromises/locks.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1193
    functionDepth: 12
    functionLinenumber: 1193
    functionLinenumberEnd: 1208
    functionName: BackupLockDatabase
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - CopyLockDatabaseAtomically
    - WaitForCriticalSection
    - ReleaseCriticalSection
    - xasprintf
    - free
    - DBIdToPath
    linkageType: ''
    returnType: void
    signature: void BackupLockDatabase(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OpenLock
      Src: /src/core/libpromises/locks.c:1212,1
    - Dst: time
      Src: /src/core/libpromises/locks.c:1218,1
    - Dst: GetDBUsagePercentage
      Src: /src/core/libpromises/locks.c:1220,1
    - Dst: MIN
      Src: /src/core/libpromises/locks.c:1228,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1233,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:1234,1
    - Dst: memset
      Src: /src/core/libpromises/locks.c:1240,1
    - Dst: ReadDB
      Src: /src/core/libpromises/locks.c:1241,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1245,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:1246,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1251,1
    - Dst: NewDBCursor
      Src: /src/core/libpromises/locks.c:1256,1
    - Dst: DBIdToPath
      Src: /src/core/libpromises/locks.c:1258,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1259,1
    - Dst: free
      Src: /src/core/libpromises/locks.c:1261,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:1262,1
    - Dst: NextDB
      Src: /src/core/libpromises/locks.c:1269,1
    - Dst: LOG_LOCK_OP
      Src: /src/core/libpromises/locks.c:1272,1
    - Dst: StringStartsWith
      Src: /src/core/libpromises/locks.c:1274,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1281,1
    - Dst: DBCursorDeleteEntry
      Src: /src/core/libpromises/locks.c:1283,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/locks.c:1286,1
    - Dst: Log
      Src: /src/core/libpromises/locks.c:1288,1
    - Dst: WriteDB
      Src: /src/core/libpromises/locks.c:1291,1
    - Dst: CloseLock
      Src: /src/core/libpromises/locks.c:1292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1210
    functionDepth: 8
    functionLinenumber: 1210
    functionLinenumberEnd: 1293
    functionName: PurgeLocks
    functionSourceFile: /src/core/libpromises/locks.c
    functionUses: 0
    functionsReached:
    - NewDBCursor
    - StringStartsWith
    - MIN
    - OpenLock
    - CloseLock
    - LOG_LOCK_OP
    - DeleteDBCursor
    - DBIdToPath
    - memset
    - Log
    - ReadDB
    - WriteDB
    - NextDB
    - free
    - DBCursorDeleteEntry
    - GetDBUsagePercentage
    - time
    linkageType: ''
    returnType: void
    signature: void PurgeLocks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __arg1
    - ','
    - __arg2
    - ','
    - __arg3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: llistxattr
    functionSourceFile: /src/core/libpromises/files_copy.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: llistxattr(__arg1, __arg2, __arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - __arg1
    - ','
    - __arg2
    - ','
    - __arg3
    - ','
    - __arg4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: lgetxattr
    functionSourceFile: /src/core/libpromises/files_copy.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lgetxattr(__arg1, __arg2, __arg3, __arg4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - __arg1
    - ','
    - __arg2
    - ','
    - __arg3
    - ','
    - __arg4
    - ','
    - __arg5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: lsetxattr
    functionSourceFile: /src/core/libpromises/files_copy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lsetxattr(__arg1, __arg2, __arg3, __arg4, __arg5)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/core/libpromises/sort.c:70,1
    - Dst: next
      Src: /src/core/libpromises/sort.c:89,1
    - Dst: next
      Src: /src/core/libpromises/sort.c:96,1
    - Dst: less
      Src: /src/core/libpromises/sort.c:99,1
    - Dst: next
      Src: /src/core/libpromises/sort.c:104,1
    - Dst: next
      Src: /src/core/libpromises/sort.c:111,1
    - Dst: putnext
      Src: /src/core/libpromises/sort.c:118,1
    - Dst: putnext
      Src: /src/core/libpromises/sort.c:132,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 5
    argNames:
    - list
    - less
    - next
    - putnext
    - ctx
    argTypes:
    - void*
    - LessFn
    - GetNextElementFn
    - PutNextElementFn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 144
    functionName: Sort
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 11
    functionsReached:
    - less
    - next
    - putnext
    linkageType: ''
    returnType: void
    signature: void *Sort(void *list, LessFn less, GetNextElementFn next, PutNextElementFn
      putnext, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/sort.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: ItemNameLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool ItemNameLess(void *lhs, void *rhs, ARG_UNUSED void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/sort.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: ItemClassesLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool ItemClassesLess(void *lhs, void *rhs, ARG_UNUSED void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: ItemCounterMore
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ItemCounterMore(void *lhs, void *rhs, ARG_UNUSED void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ItemTimeMore
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ItemTimeMore(void *lhs, void *rhs, ARG_UNUSED void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - element
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ItemGetNext
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ItemGetNext(void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - element
    - next
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: ItemPutNext
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ItemPutNext(void *element, void *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: SortItemListNames
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 1
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Item
    signature: Item *SortItemListNames(Item *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: SortItemListClasses
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 1
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Item
    signature: Item *SortItemListClasses(Item *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: SortItemListCounters
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 2
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Item
    signature: Item *SortItemListCounters(Item *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: SortItemListTimes
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Item
    signature: Item *SortItemListTimes(Item *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs_
    - rhs_
    - ctx
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: RlistCustomItemLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RlistCustomItemLess(void *lhs_, void *rhs_, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/sort.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: RlistItemLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool RlistItemLess(void *lhs, void *rhs, ARG_UNUSED void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/sort.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - char*
    - char*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: StringItemLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool StringItemLess(const char *lhs, const char *rhs, ARG_UNUSED void
      *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libpromises/sort.c:227,1
    - Dst: sscanf
      Src: /src/core/libpromises/sort.c:228,1
    - Dst: sscanf
      Src: /src/core/libpromises/sort.c:232,1
    - Dst: sscanf
      Src: /src/core/libpromises/sort.c:237,1
    - Dst: StringItemLess
      Src: /src/core/libpromises/sort.c:263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - lhs
    - rhs
    - ctx
    - int_mode
    argTypes:
    - char*
    - char*
    - ARG_UNUSED*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 264
    functionName: StringItemNumberLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - sscanf
    - StringItemLess
    linkageType: ''
    returnType: bool
    signature: bool StringItemNumberLess(const char *lhs, const char *rhs, ARG_UNUSED
      void *ctx, bool int_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringItemNumberLess
      Src: /src/core/libpromises/sort.c:268,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/sort.c:268,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/sort.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - lhs
    - rhs
    - ctx
    - int_mode
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: RlistItemNumberLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - StringItemNumberLess
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool RlistItemNumberLess(void *lhs, void *rhs, ARG_UNUSED void *ctx,
      bool int_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistItemNumberLess
      Src: /src/core/libpromises/sort.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: RlistItemIntLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - RlistItemNumberLess
    linkageType: ''
    returnType: bool
    signature: bool RlistItemIntLess(void *lhs, void *rhs, ARG_UNUSED void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistItemNumberLess
      Src: /src/core/libpromises/sort.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: RlistItemRealLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - RlistItemNumberLess
    linkageType: ''
    returnType: bool
    signature: bool RlistItemRealLess(void *lhs, void *rhs, ARG_UNUSED void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferNewFrom
      Src: /src/core/libpromises/sort.c:283,1
    - Dst: strlen
      Src: /src/core/libpromises/sort.c:283,1
    - Dst: BufferNewFrom
      Src: /src/core/libpromises/sort.c:284,1
    - Dst: strlen
      Src: /src/core/libpromises/sort.c:284,1
    - Dst: IPAddressNew
      Src: /src/core/libpromises/sort.c:286,1
    - Dst: IPAddressNew
      Src: /src/core/libpromises/sort.c:287,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/sort.c:292,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/sort.c:293,1
    - Dst: IPAddressCompareLess
      Src: /src/core/libpromises/sort.c:297,1
    - Dst: IPAddressDestroy
      Src: /src/core/libpromises/sort.c:298,1
    - Dst: IPAddressDestroy
      Src: /src/core/libpromises/sort.c:299,1
    - Dst: IPAddressDestroy
      Src: /src/core/libpromises/sort.c:303,1
    - Dst: IPAddressDestroy
      Src: /src/core/libpromises/sort.c:304,1
    - Dst: StringItemLess
      Src: /src/core/libpromises/sort.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - left_item
    - right_item
    - ctx
    argTypes:
    - char*
    - char*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 318
    functionName: StringItemIPLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - BufferNewFrom
    - strlen
    - IPAddressCompareLess
    - IPAddressDestroy
    - IPAddressNew
    - StringItemLess
    linkageType: ''
    returnType: bool
    signature: bool StringItemIPLess(const char *left_item, const char *right_item,
      ARG_UNUSED void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringItemIPLess
      Src: /src/core/libpromises/sort.c:322,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/sort.c:322,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/sort.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: RlistItemIPLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - StringItemIPLess
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool RlistItemIPLess(void *lhs, void *rhs, ARG_UNUSED void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/sort.c:327,1
    - Dst: sscanf
      Src: /src/core/libpromises/sort.c:329,1
    - Dst: sscanf
      Src: /src/core/libpromises/sort.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - addr
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: ParseEtherAddress
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strlen
    linkageType: ''
    returnType: long
    signature: long ParseEtherAddress(const char* input, unsigned char *addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ParseEtherAddress
      Src: /src/core/libpromises/sort.c:341,1
    - Dst: ParseEtherAddress
      Src: /src/core/libpromises/sort.c:342,1
    - Dst: memcmp
      Src: /src/core/libpromises/sort.c:346,1
    - Dst: StringItemLess
      Src: /src/core/libpromises/sort.c:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - char*
    - char*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 362
    functionName: StringItemMACLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - memcmp
    - StringItemLess
    - ParseEtherAddress
    linkageType: ''
    returnType: bool
    signature: bool StringItemMACLess(const char *lhs, const char *rhs, ARG_UNUSED
      void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringItemMACLess
      Src: /src/core/libpromises/sort.c:366,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/sort.c:366,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/sort.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - ctx
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: RlistItemMACLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - StringItemMACLess
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool RlistItemMACLess(void *lhs, void *rhs, ARG_UNUSED void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - element
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: RlistGetNext
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *RlistGetNext(void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - element
    - next
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: RlistPutNext
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RlistPutNext(void *element, void *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: SortRlist
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 1
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Rlist
    signature: Rlist *SortRlist(Rlist *list, bool (*CompareItems) ())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: AlphaSortRListNames
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 2
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Rlist
    signature: Rlist *AlphaSortRListNames(Rlist *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: IntSortRListNames
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 1
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Rlist
    signature: Rlist *IntSortRListNames(Rlist *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: RealSortRListNames
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 1
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RealSortRListNames(Rlist *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: IPSortRListNames
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 1
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Rlist
    signature: Rlist *IPSortRListNames(Rlist *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sort
      Src: /src/core/libpromises/sort.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: MACSortRListNames
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 1
    functionsReached:
    - Sort
    linkageType: ''
    returnType: Rlist
    signature: Rlist *MACSortRListNames(Rlist *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/sort.c:413,1
    - Dst: RlistItemNumberLess
      Src: /src/core/libpromises/sort.c:415,1
    - Dst: strcmp
      Src: /src/core/libpromises/sort.c:417,1
    - Dst: RlistItemNumberLess
      Src: /src/core/libpromises/sort.c:419,1
    - Dst: strcasecmp
      Src: /src/core/libpromises/sort.c:421,1
    - Dst: RlistItemIPLess
      Src: /src/core/libpromises/sort.c:423,1
    - Dst: strcasecmp
      Src: /src/core/libpromises/sort.c:425,1
    - Dst: RlistItemMACLess
      Src: /src/core/libpromises/sort.c:427,1
    - Dst: RlistItemLess
      Src: /src/core/libpromises/sort.c:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - sort_type
    - lhs
    - rhs
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 411
    functionDepth: 5
    functionLinenumber: 411
    functionLinenumberEnd: 432
    functionName: GenericItemLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 0
    functionsReached:
    - RlistItemMACLess
    - RlistItemNumberLess
    - RlistItemIPLess
    - strcmp
    - strcasecmp
    - RlistItemLess
    linkageType: ''
    returnType: bool
    signature: bool GenericItemLess(const char *sort_type, void *lhs, void *rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/sort.c:436,1
    - Dst: StringItemNumberLess
      Src: /src/core/libpromises/sort.c:438,1
    - Dst: strcmp
      Src: /src/core/libpromises/sort.c:440,1
    - Dst: StringItemNumberLess
      Src: /src/core/libpromises/sort.c:442,1
    - Dst: strcasecmp
      Src: /src/core/libpromises/sort.c:444,1
    - Dst: StringItemIPLess
      Src: /src/core/libpromises/sort.c:446,1
    - Dst: strcasecmp
      Src: /src/core/libpromises/sort.c:448,1
    - Dst: StringItemMACLess
      Src: /src/core/libpromises/sort.c:450,1
    - Dst: StringItemLess
      Src: /src/core/libpromises/sort.c:454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - sort_type
    - lhs
    - rhs
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 455
    functionName: GenericStringItemLess
    functionSourceFile: /src/core/libpromises/sort.c
    functionUses: 1
    functionsReached:
    - StringItemLess
    - strcmp
    - StringItemMACLess
    - StringItemIPLess
    - StringItemNumberLess
    - strcasecmp
    linkageType: ''
    returnType: bool
    signature: bool GenericStringItemLess(const char *sort_type, const char *lhs,
      const char *rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/libpromises/conversion.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - unspec_address
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: MapAddress
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *MapAddress(const char *unspec_address)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - haystack
    - needle
    - default_value
    - null_value
    argTypes:
    - char*[]
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: FindTypeInArray
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int FindTypeInArray(const char *const haystack[], const char *needle,
      int default_value, int null_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: MeasurePolicyFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: MeasurePolicy
    signature: MeasurePolicy MeasurePolicyFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: EnvironmentStateFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: EnvironmentState
    signature: EnvironmentState EnvironmentStateFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: InsertMatchTypeFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: InsertMatchType
    signature: InsertMatchType InsertMatchTypeFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: SyslogPriorityFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: int
    signature: int SyslogPriorityFromString(const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/conversion.c:119,1
    - Dst: strchr
      Src: /src/core/libpromises/conversion.c:122,1
    - Dst: strncmp
      Src: /src/core/libpromises/conversion.c:127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 147
    functionName: ShellTypeFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - strchr
    - strncmp
    - strlen
    linkageType: ''
    returnType: ShellType
    signature: ShellType ShellTypeFromString(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: DatabaseTypeFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: DatabaseType
    signature: DatabaseType DatabaseTypeFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: UserStateFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: UserState
    signature: UserState UserStateFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: PasswordFormatFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: PasswordFormat
    signature: PasswordFormat PasswordFormatFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: PackageActionFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: PackageAction
    signature: PackageAction PackageActionFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - action_types
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: GetNewPackagePolicy
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: NewPackageAction
    signature: NewPackageAction GetNewPackagePolicy(const char *s, const char **action_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: PackageVersionComparatorFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: PackageVersionComparator
    signature: PackageVersionComparator PackageVersionComparatorFromString(const char
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: PackageActionPolicyFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: PackageActionPolicy
    signature: PackageActionPolicy PackageActionPolicyFromString(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libpromises/conversion.c:205,1
    - Dst: RvalWrite
      Src: /src/core/libpromises/conversion.c:209,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/conversion.c:213,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/conversion.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - list
    - sep
    argTypes:
    - Rlist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: Rlist2String
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - StringWriterClose
    - WriterWrite
    - RvalWrite
    - StringWriter
    linkageType: ''
    returnType: char
    signature: char *Rlist2String(Rlist *list, char *sep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libpromises/conversion.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 246
    functionName: SignalFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 1
    functionsReached:
    - StringEqual_IgnoreCase
    linkageType: ''
    returnType: int
    signature: int SignalFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scope_str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: ContextScopeFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: ContextScope
    signature: ContextScope ContextScopeFromString(const char *scope_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: FileLinkTypeFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: FileLinkType
    signature: FileLinkType FileLinkTypeFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: FileComparatorFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: FileComparator
    signature: FileComparator FileComparatorFromString(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: DataTypeFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: DataType
    signature: DataType DataTypeFromString(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - DataType
    assertStmts:
    - condition: (type < CF_DATA_TYPE_NONE)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/core/libpromises/conversion.c
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: DataTypeToString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *DataTypeToString(DataType type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - body_syntax
    - lval
    argTypes:
    - ConstraintSyntax*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 323
    functionName: ConstraintSyntaxGetDataType
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: DataType
    signature: DataType ConstraintSyntaxGetDataType(const ConstraintSyntax *body_syntax,
      const char *lval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:330,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:330,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:331,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:333,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:334,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (StringEqual(CF_BOOL, "true,false,yes,no,on,off"))
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/core/libpromises/conversion.c
    - condition: (s != NULL)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/core/libpromises/conversion.c
    constantsTouched: []
    func_position:
      end: 349
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 349
    functionName: BooleanFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 10
    functionsReached:
    - assert
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool BooleanFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:353,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:353,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:354,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:356,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:357,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:358,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:359,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:360,1
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (StringEqual(CF_BOOL, "true,false,yes,no,on,off"))
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/core/libpromises/conversion.c
    - condition: (s != NULL)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/core/libpromises/conversion.c
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: StringIsBoolean
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 1
    functionsReached:
    - assert
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool StringIsBoolean(const char *s)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:382,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:386,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:391,1
    - Dst: strchr
      Src: /src/core/libpromises/conversion.c:395,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:397,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:403,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:411,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:417,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:428,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:453,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:468,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:481,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:488,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (ret == 2)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/core/libpromises/conversion.c
    constantsTouched: []
    func_position:
      end: 495
      start: 373
    functionDepth: 8
    functionLinenumber: 373
    functionLinenumberEnd: 495
    functionName: IntFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 38
    functionsReached:
    - assert
    - sscanf
    - strchr
    - Log
    - strcmp
    linkageType: ''
    returnType: long
    signature: long IntFromString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: IntervalFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 1
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: Interval
    signature: Interval IntervalFromString(const char *string)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:509,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:510,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:512,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:516,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:521,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:532,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:557,1
    - Dst: Log
      Src: /src/core/libpromises/conversion.c:572,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:579,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - s
    - value_out
    argTypes:
    - char*
    - double*
    assertStmts:
    - condition: (s         != NULL)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/core/libpromises/conversion.c
    - condition: (value_out != NULL)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/core/libpromises/conversion.c
    - condition: (ret == 2)
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/core/libpromises/conversion.c
    - condition: (ret == 1  ||  ret == 2)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/core/libpromises/conversion.c
    constantsTouched: []
    func_position:
      end: 583
      start: 504
    functionDepth: 8
    functionLinenumber: 504
    functionLinenumberEnd: 583
    functionName: DoubleFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 8
    functionsReached:
    - sscanf
    - assert
    - Log
    linkageType: ''
    returnType: bool
    signature: bool DoubleFromString(const char *s, double *value_out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SplitString
      Src: /src/core/libpromises/conversion.c:604,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:606,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:608,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:614,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/conversion.c:617,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - intrange
    - min_out
    - max_out
    argTypes:
    - char*
    - long*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 627
    functionName: IntegerRangeFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - sscanf
    - SplitString
    - DeleteItemList
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool IntegerRangeFromString(const char *intrange, long *min_out, long
      *max_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: AclMethodFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: AclMethod
    signature: AclMethod AclMethodFromString(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 643
    functionName: AclTypeFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: AclType
    signature: AclType AclTypeFromString(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 652
    functionName: AclInheritanceFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: AclDefault
    signature: AclDefault AclInheritanceFromString(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeInArray
      Src: /src/core/libpromises/conversion.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 660
    functionName: AclDefaultFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - FindTypeInArray
    linkageType: ''
    returnType: AclDefault
    signature: AclDefault AclDefaultFromString(const char *string)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/conversion.c:675,1
    - Dst: strchr
      Src: /src/core/libpromises/conversion.c:678,1
    - Dst: strncmp
      Src: /src/core/libpromises/conversion.c:683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 691
    functionName: AclInheritFromString
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - strchr
    - strncmp
    - strlen
    linkageType: ''
    returnType: AclInherit
    signature: AclInherit AclInheritFromString(const char *string)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:695,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:697,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:702,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:707,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:712,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:717,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:722,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:727,1
    - Dst: strcmp
      Src: /src/core/libpromises/conversion.c:732,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - short_type
    argTypes:
    - char*
    assertStmts:
    - condition: (short_type)
      pos:
        line_end: 694
        line_start: 694
        source_file: /src/core/libpromises/conversion.c
    constantsTouched: []
    func_position:
      end: 738
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 738
    functionName: DataTypeShortToType
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *DataTypeShortToType(char *short_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - DataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 753
    functionName: DataTypeIsIterable
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DataTypeIsIterable(DataType t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:761,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:762,1
    - Dst: Month2Int
      Src: /src/core/libpromises/conversion.c:769,1
    - Dst: Month2Int
      Src: /src/core/libpromises/conversion.c:770,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - bigger
    - smaller
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 783
    functionName: CoarseLaterThan
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - sscanf
    - Month2Int
    linkageType: ''
    returnType: bool
    signature: bool CoarseLaterThan(const char *bigger, const char *smaller)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/libpromises/conversion.c:796,1
    - Dst: strlen
      Src: /src/core/libpromises/conversion.c:796,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 804
    functionName: Month2Int
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int Month2Int(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/conversion.c:816,1
    - Dst: ctime
      Src: /src/core/libpromises/conversion.c:816,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:817,1
    - Dst: snprintf
      Src: /src/core/libpromises/conversion.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - t
    - outStr
    - outStrSz
    argTypes:
    - time_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 819
    functionName: TimeToDateStr
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - ctime
    - snprintf
    - sscanf
    linkageType: ''
    returnType: void
    signature: void TimeToDateStr(time_t t, char *outStr, int outStrSz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/core/libpromises/conversion.c:847,1
    - Dst: memcpy
      Src: /src/core/libpromises/conversion.c:851,1
    - Dst: strlcpy
      Src: /src/core/libpromises/conversion.c:860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - src
    - dst_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 863
    functionName: CommandArg0_bound
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 1
    functionsReached:
    - memcpy
    - strlcpy
    - strchrnul
    linkageType: ''
    returnType: size_t
    signature: size_t CommandArg0_bound(char *dst, const char *src, size_t dst_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libpromises/conversion.c:886,1
    - Dst: strchr
      Src: /src/core/libpromises/conversion.c:888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - execstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 896
    functionName: CommandArg0
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 6
    functionsReached:
    - strchr
    - strlcpy
    linkageType: ''
    returnType: char
    signature: char *CommandArg0(const char *execstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/conversion.c:917,1
    - Dst: strncpy
      Src: /src/core/libpromises/conversion.c:918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - execstr
    - comm
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 919
    functionName: CommandPrefix
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - strncpy
    - memset
    linkageType: ''
    returnType: void
    signature: void CommandPrefix(char *execstr, char *comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 934
    functionName: IsRealNumber
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 1
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: bool
    signature: bool IsRealNumber(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/conversion.c:953,1
    - Dst: free
      Src: /src/core/libpromises/conversion.c:954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - uids
    argTypes:
    - UidList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 956
    functionName: UidListDestroy
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void UidListDestroy(UidList *uids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/conversion.c:960,1
    - Dst: xstrdup
      Src: /src/core/libpromises/conversion.c:966,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - uidlist
    - uid
    - uidname
    argTypes:
    - UidList**
    - uid_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 983
    functionName: AddSimpleUidItem
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void AddSimpleUidItem(UidList ** uidlist, uid_t uid, char *uidname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Str2Uid
      Src: /src/core/libpromises/conversion.c:995,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/conversion.c:995,1
    - Dst: AddSimpleUidItem
      Src: /src/core/libpromises/conversion.c:996,1
    - Dst: AddSimpleUidItem
      Src: /src/core/libpromises/conversion.c:1001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - uidnames
    - pp
    argTypes:
    - Rlist*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1005
    functionName: Rlist2UidList
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - AddSimpleUidItem
    - Str2Uid
    - RlistScalarValue
    linkageType: ''
    returnType: UidList
    signature: UidList *Rlist2UidList(Rlist *uidnames, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/conversion.c:1015,1
    - Dst: free
      Src: /src/core/libpromises/conversion.c:1016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - gids
    argTypes:
    - GidList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1018
    functionName: GidListDestroy
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void GidListDestroy(GidList *gids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/conversion.c:1022,1
    - Dst: xstrdup
      Src: /src/core/libpromises/conversion.c:1028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - gidlist
    - gid
    - gidname
    argTypes:
    - GidList**
    - gid_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1044
    functionName: AddSimpleGidItem
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void AddSimpleGidItem(GidList ** gidlist, gid_t gid, char *gidname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Str2Gid
      Src: /src/core/libpromises/conversion.c:1056,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/conversion.c:1056,1
    - Dst: AddSimpleGidItem
      Src: /src/core/libpromises/conversion.c:1057,1
    - Dst: AddSimpleGidItem
      Src: /src/core/libpromises/conversion.c:1062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - gidnames
    - pp
    argTypes:
    - Rlist*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1066
    functionName: Rlist2GidList
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - AddSimpleGidItem
    - Str2Gid
    - RlistScalarValue
    linkageType: ''
    returnType: GidList
    signature: GidList *Rlist2GidList(Rlist *gidnames, const Promise *pp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:1072,1
    - Dst: StringIsNumeric
      Src: /src/core/libpromises/conversion.c:1077,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:1082,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:1083,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:1086,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:1087,1
    - Dst: setnetgrent
      Src: /src/core/libpromises/conversion.c:1103,1
    - Dst: getnetgrent
      Src: /src/core/libpromises/conversion.c:1104,1
    - Dst: GetUserID
      Src: /src/core/libpromises/conversion.c:1108,1
    - Dst: strcpy
      Src: /src/core/libpromises/conversion.c:1112,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/conversion.c:1119,1
    - Dst: endnetgrent
      Src: /src/core/libpromises/conversion.c:1124,1
    - Dst: GetUserID
      Src: /src/core/libpromises/conversion.c:1129,1
    - Dst: strlcpy
      Src: /src/core/libpromises/conversion.c:1133,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/conversion.c:1140,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 4
    argNames:
    - uidbuff
    - usercopy
    - copy_size
    - pp
    argTypes:
    - char*
    - char*
    - size_t
    - Promise*
    assertStmts:
    - condition: (ret == 1)
      pos:
        line_end: 1082
        line_start: 1082
        source_file: /src/core/libpromises/conversion.c
    - condition: (ret == 1)
      pos:
        line_end: 1086
        line_start: 1086
        source_file: /src/core/libpromises/conversion.c
    constantsTouched: []
    func_position:
      end: 1145
      start: 1070
    functionDepth: 13
    functionLinenumber: 1070
    functionLinenumberEnd: 1145
    functionName: Str2Uid
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 3
    functionsReached:
    - GetUserID
    - setnetgrent
    - getnetgrent
    - assert
    - PromiseRef
    - sscanf
    - endnetgrent
    - StringIsNumeric
    - strcpy
    - strlcpy
    - StringEqual
    linkageType: ''
    returnType: uid_t
    signature: uid_t Str2Uid(const char *uidbuff, char *usercopy, size_t copy_size,
      const Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/conversion.c:1151,1
    - Dst: StringIsNumeric
      Src: /src/core/libpromises/conversion.c:1156,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:1161,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:1162,1
    - Dst: sscanf
      Src: /src/core/libpromises/conversion.c:1165,1
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:1166,1
    - Dst: GetGroupID
      Src: /src/core/libpromises/conversion.c:1172,1
    - Dst: strlcpy
      Src: /src/core/libpromises/conversion.c:1176,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/conversion.c:1183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - gidbuff
    - groupcopy
    - copy_size
    - pp
    argTypes:
    - char*
    - char*
    - size_t
    - Promise*
    assertStmts:
    - condition: (ret == 1)
      pos:
        line_end: 1161
        line_start: 1161
        source_file: /src/core/libpromises/conversion.c
    - condition: (ret == 1)
      pos:
        line_end: 1165
        line_start: 1165
        source_file: /src/core/libpromises/conversion.c
    constantsTouched: []
    func_position:
      end: 1188
      start: 1149
    functionDepth: 13
    functionLinenumber: 1149
    functionLinenumberEnd: 1188
    functionName: Str2Gid
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 3
    functionsReached:
    - StringEqual
    - assert
    - PromiseRef
    - sscanf
    - StringIsNumeric
    - strlcpy
    - GetGroupID
    linkageType: ''
    returnType: gid_t
    signature: gid_t Str2Gid(const char *gidbuff, char *groupcopy, size_t copy_size,
      const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/conversion.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - uids
    argTypes:
    - UidList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1201
    functionName: UidListDestroy
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void UidListDestroy(UidList *uids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/conversion.c:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gids
    argTypes:
    - ARG_UNUSED*
    assertStmts:
    - condition: (gids == NULL)
      pos:
        line_end: 1204
        line_start: 1204
        source_file: /src/core/libpromises/conversion.c
    constantsTouched: []
    func_position:
      end: 1206
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1206
    functionName: GidListDestroy
    functionSourceFile: /src/core/libpromises/conversion.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void GidListDestroy(ARG_UNUSED GidList *gids)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libpromises/override_fsattrs.c:16,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:19,1
    - Dst: rand
      Src: /src/core/libpromises/override_fsattrs.c:29,1
    - Dst: assert
      Src: /src/core/libpromises/override_fsattrs.c:30,1
    - Dst: snprintf
      Src: /src/core/libpromises/override_fsattrs.c:33,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:36,1
    - Dst: CopyRegularFileDiskPerms
      Src: /src/core/libpromises/override_fsattrs.c:45,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - orig
    - copy
    - copy_len
    - override
    argTypes:
    - char*
    - char*
    - size_t
    - bool
    assertStmts:
    - condition: (rand_number >= 0)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/core/libpromises/override_fsattrs.c
    constantsTouched: []
    func_position:
      end: 55
      start: 11
    functionDepth: 8
    functionLinenumber: 11
    functionLinenumberEnd: 55
    functionName: OverrideImmutableBegin
    functionSourceFile: /src/core/libpromises/override_fsattrs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - rand
    - assert
    - CopyRegularFileDiskPerms
    - Log
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool OverrideImmutableBegin(\n    const char *orig, char *copy, size_t
      copy_len, bool override)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/core/libpromises/override_fsattrs.c:67,1
    - Dst: lstat
      Src: /src/core/libpromises/override_fsattrs.c:71,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:73,1
    - Dst: unlink
      Src: /src/core/libpromises/override_fsattrs.c:76,1
    - Dst: chmod
      Src: /src/core/libpromises/override_fsattrs.c:80,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:82,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/override_fsattrs.c:86,1
    - Dst: unlink
      Src: /src/core/libpromises/override_fsattrs.c:87,1
    - Dst: OverrideImmutableRename
      Src: /src/core/libpromises/override_fsattrs.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - orig
    - copy
    - override
    - abort
    argTypes:
    - char*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 92
    functionName: OverrideImmutableCommit
    functionSourceFile: /src/core/libpromises/override_fsattrs.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - unlink
    - OverrideImmutableRename
    - Log
    - lstat
    - chmod
    linkageType: ''
    returnType: bool
    signature: "bool OverrideImmutableCommit(\n    const char *orig, const char *copy,
      bool override, bool abort)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FSAttrsGetImmutableFlag
      Src: /src/core/libpromises/override_fsattrs.c:102,1
    - Dst: FSAttrsUpdateImmutableFlag
      Src: /src/core/libpromises/override_fsattrs.c:107,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:110,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:118,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/libpromises/override_fsattrs.c:121,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:125,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/libpromises/override_fsattrs.c:128,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:134,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:141,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/libpromises/override_fsattrs.c:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - filename
    - override
    - was_immutable
    argTypes:
    - char*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 94
    functionDepth: 10
    functionLinenumber: 94
    functionLinenumberEnd: 148
    functionName: TemporarilyClearImmutableBit
    functionSourceFile: /src/core/libpromises/override_fsattrs.c
    functionUses: 0
    functionsReached:
    - FSAttrsErrorCodeToString
    - FSAttrsUpdateImmutableFlag
    - FSAttrsGetImmutableFlag
    - Log
    linkageType: ''
    returnType: FSAttrsResult
    signature: "FSAttrsResult TemporarilyClearImmutableBit(\n    const char *filename,
      bool override, bool *was_immutable)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FSAttrsUpdateImmutableFlag
      Src: /src/core/libpromises/override_fsattrs.c:160,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:163,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:169,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/libpromises/override_fsattrs.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - filename
    - override
    - res
    - was_immutable
    argTypes:
    - char*
    - bool
    - FSAttrsResult
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 150
    functionDepth: 10
    functionLinenumber: 150
    functionLinenumberEnd: 175
    functionName: ResetTemporarilyClearedImmutableBit
    functionSourceFile: /src/core/libpromises/override_fsattrs.c
    functionUses: 0
    functionsReached:
    - FSAttrsErrorCodeToString
    - FSAttrsUpdateImmutableFlag
    - Log
    linkageType: ''
    returnType: void
    signature: "void ResetTemporarilyClearedImmutableBit(\n    const char *filename,
      bool override, FSAttrsResult res, bool was_immutable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/override_fsattrs.c:179,1
    - Dst: TemporarilyClearImmutableBit
      Src: /src/core/libpromises/override_fsattrs.c:183,1
    - Dst: safe_chmod
      Src: /src/core/libpromises/override_fsattrs.c:185,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:188,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/override_fsattrs.c:191,1
    - Dst: ResetTemporarilyClearedImmutableBit
      Src: /src/core/libpromises/override_fsattrs.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - filename
    - mode
    - override
    argTypes:
    - char*
    - mode_t
    - bool
    assertStmts:
    - condition: (filename != NULL)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/core/libpromises/override_fsattrs.c
    constantsTouched: []
    func_position:
      end: 197
      start: 177
    functionDepth: 11
    functionLinenumber: 177
    functionLinenumberEnd: 197
    functionName: OverrideImmutableChmod
    functionSourceFile: /src/core/libpromises/override_fsattrs.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - assert
    - safe_chmod
    - ResetTemporarilyClearedImmutableBit
    - Log
    - TemporarilyClearImmutableBit
    linkageType: ''
    returnType: bool
    signature: bool OverrideImmutableChmod(const char *filename, mode_t mode, bool
      override)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/override_fsattrs.c:202,1
    - Dst: assert
      Src: /src/core/libpromises/override_fsattrs.c:203,1
    - Dst: TemporarilyClearImmutableBit
      Src: /src/core/libpromises/override_fsattrs.c:206,1
    - Dst: TemporarilyClearImmutableBit
      Src: /src/core/libpromises/override_fsattrs.c:209,1
    - Dst: rename
      Src: /src/core/libpromises/override_fsattrs.c:212,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:214,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/override_fsattrs.c:218,1
    - Dst: unlink
      Src: /src/core/libpromises/override_fsattrs.c:219,1
    - Dst: ResetTemporarilyClearedImmutableBit
      Src: /src/core/libpromises/override_fsattrs.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - old_filename
    - new_filename
    - override
    argTypes:
    - char*
    - char*
    - bool
    assertStmts:
    - condition: (old_filename != NULL)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/core/libpromises/override_fsattrs.c
    - condition: (new_filename != NULL)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/core/libpromises/override_fsattrs.c
    constantsTouched: []
    func_position:
      end: 227
      start: 199
    functionDepth: 11
    functionLinenumber: 199
    functionLinenumberEnd: 227
    functionName: OverrideImmutableRename
    functionSourceFile: /src/core/libpromises/override_fsattrs.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - unlink
    - assert
    - ResetTemporarilyClearedImmutableBit
    - Log
    - TemporarilyClearImmutableBit
    - rename
    linkageType: ''
    returnType: bool
    signature: "bool OverrideImmutableRename(\n    const char *old_filename, const
      char *new_filename, bool override)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/override_fsattrs.c:231,1
    - Dst: TemporarilyClearImmutableBit
      Src: /src/core/libpromises/override_fsattrs.c:234,1
    - Dst: unlink
      Src: /src/core/libpromises/override_fsattrs.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - override
    argTypes:
    - char*
    - bool
    assertStmts:
    - condition: (filename != NULL)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/core/libpromises/override_fsattrs.c
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 11
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: OverrideImmutableDelete
    functionSourceFile: /src/core/libpromises/override_fsattrs.c
    functionUses: 0
    functionsReached:
    - assert
    - unlink
    - TemporarilyClearImmutableBit
    linkageType: ''
    returnType: bool
    signature: bool OverrideImmutableDelete(const char *filename, bool override)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/override_fsattrs.c:242,1
    - Dst: TemporarilyClearImmutableBit
      Src: /src/core/libpromises/override_fsattrs.c:246,1
    - Dst: utime
      Src: /src/core/libpromises/override_fsattrs.c:248,1
    - Dst: Log
      Src: /src/core/libpromises/override_fsattrs.c:251,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/override_fsattrs.c:254,1
    - Dst: ResetTemporarilyClearedImmutableBit
      Src: /src/core/libpromises/override_fsattrs.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - filename
    - override
    - times
    argTypes:
    - char*
    - bool
    - struct utimbuf*
    assertStmts:
    - condition: (filename != NULL)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/core/libpromises/override_fsattrs.c
    constantsTouched: []
    func_position:
      end: 260
      start: 239
    functionDepth: 11
    functionLinenumber: 239
    functionLinenumberEnd: 260
    functionName: OverrideImmutableUtime
    functionSourceFile: /src/core/libpromises/override_fsattrs.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - assert
    - ResetTemporarilyClearedImmutableBit
    - Log
    - TemporarilyClearImmutableBit
    - utime
    linkageType: ''
    returnType: bool
    signature: "bool OverrideImmutableUtime(\n    const char *filename, bool override,
      const struct utimbuf *times)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unsetenv
      Src: /src/core/libpromises/generic_agent.c:121,1
    - Dst: unsetenv
      Src: /src/core/libpromises/generic_agent.c:124,1
    - Dst: unsetenv
      Src: /src/core/libpromises/generic_agent.c:125,1
    - Dst: unsetenv
      Src: /src/core/libpromises/generic_agent.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: SanitizeEnvironment
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - unsetenv
    linkageType: ''
    returnType: void
    signature: void SanitizeEnvironment()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB(void, GenericAgentSetDefaultDigest,
      HashMethod *, digest, int *, digest_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:140,1
    - Dst: GetBinDir
      Src: /src/core/libpromises/generic_agent.c:140,1
    - Dst: access
      Src: /src/core/libpromises/generic_agent.c:142,1
    - Dst: EvalContextClassGet
      Src: /src/core/libpromises/generic_agent.c:143,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:147,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/generic_agent.c:148,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:149,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/generic_agent.c:150,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:156,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/generic_agent.c:162,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:163,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/generic_agent.c:164,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/generic_agent.c:172,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:173,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/generic_agent.c:174,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:179,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/generic_agent.c:180,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:181,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/generic_agent.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (is_policy_server && is_reporting_hub)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 11
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: SetCFEngineRoles
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - access
    - EvalContextClassPutHard
    - snprintf
    - assert
    - RlistFromSplitString
    - EvalContextClassGet
    - RlistDestroy
    - EvalContextVariablePutSpecial
    - GetBinDir
    linkageType: ''
    returnType: void
    signature: void SetCFEngineRoles(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:188,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:190,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:191,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 11
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: MarkAsPolicyServer
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - Log
    - EvalContextClassPutHard
    linkageType: ''
    returnType: void
    signature: void MarkAsPolicyServer(EvalContext *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentCheckPolicy
      Src: /src/core/libpromises/generic_agent.c:199,1
    - Dst: LoadPolicy
      Src: /src/core/libpromises/generic_agent.c:201,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:205,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:210,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:211,1
    - Dst: CheckAndGenerateFailsafe
      Src: /src/core/libpromises/generic_agent.c:213,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:213,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/libpromises/generic_agent.c:215,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:215,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:216,1
    - Dst: LoadPolicy
      Src: /src/core/libpromises/generic_agent.c:217,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:223,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:224,1
    - Dst: GetReleaseIdFile
      Src: /src/core/libpromises/generic_agent.c:227,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:227,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libpromises/generic_agent.c:228,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:232,1
    - Dst: FileWriter
      Src: /src/core/libpromises/generic_agent.c:236,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/generic_agent.c:237,1
    - Dst: WriterClose
      Src: /src/core/libpromises/generic_agent.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - config
    - ctx
    - validate_policy
    - write_validated_file
    argTypes:
    - GenericAgentConfig*
    - EvalContext*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 195
    functionDepth: 14
    functionLinenumber: 195
    functionLinenumberEnd: 243
    functionName: SelectAndLoadPolicy
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 3
    functionsReached:
    - FileWriter
    - GenericAgentConfigSetInputFile
    - EvalContextClassPutHard
    - WriterClose
    - LoadPolicy
    - GenericAgentCheckPolicy
    - WriterWrite
    - GetReleaseIdFile
    - safe_fopen_create_perms
    - Log
    - free
    - GetInputDir
    - xstrdup
    - CheckAndGenerateFailsafe
    linkageType: ''
    returnType: Policy
    signature: Policy *SelectAndLoadPolicy(GenericAgentConfig *config, EvalContext
      *ctx, bool validate_policy, bool write_validated_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringEndsWith
      Src: /src/core/libpromises/generic_agent.c:247,1
    - Dst: strlen
      Src: /src/core/libpromises/generic_agent.c:249,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:252,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:253,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:259,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:260,1
    - Dst: strlen
      Src: /src/core/libpromises/generic_agent.c:260,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/generic_agent.c:263,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:265,1
    - Dst: EvalContextClassTableIteratorNewGlobal
      Src: /src/core/libpromises/generic_agent.c:269,1
    - Dst: ClassesMatching
      Src: /src/core/libpromises/generic_agent.c:270,1
    - Dst: StringSetSize
      Src: /src/core/libpromises/generic_agent.c:272,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/generic_agent.c:274,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libpromises/generic_agent.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - class_str
    argTypes:
    - EvalContext*
    - char*
    assertStmts:
    - condition: (length == 2)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/core/libpromises/generic_agent.c
    - condition: (strlen(tmp_class_str) == length)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 278
      start: 245
    functionDepth: 8
    functionLinenumber: 245
    functionLinenumberEnd: 278
    functionName: CheckContextClassmatch
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - strlen
    - assert
    - StringEndsWith
    - StringSetSize
    - StringSetDestroy
    - ClassTableIteratorDestroy
    - Log
    - IsDefinedClass
    - xstrdup
    - ClassesMatching
    - free
    - EvalContextClassTableIteratorNewGlobal
    linkageType: ''
    returnType: bool
    signature: bool CheckContextClassmatch(EvalContext *ctx, const char *class_str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/generic_agent.c:287,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/generic_agent.c:289,1
    - Dst: JsonArrayContainsOnlyPrimitives
      Src: /src/core/libpromises/generic_agent.c:290,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:292,1
    - Dst: JsonArrayToStringSet
      Src: /src/core/libpromises/generic_agent.c:299,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:302,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/generic_agent.c:311,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/generic_agent.c:313,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - item_type
    - key
    - json_tags
    - default_tag
    - filename
    argTypes:
    - char*
    - char*
    - JsonElement*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 280
    functionDepth: 8
    functionLinenumber: 280
    functionLinenumberEnd: 316
    functionName: GetTagsFromAugmentsTags
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - JsonArrayContainsOnlyPrimitives
    - JsonArrayToStringSet
    - Log
    - xstrdup
    - JSON_NOT_NULL
    - StringSetNew
    - JsonGetType
    - StringSetAdd
    linkageType: ''
    returnType: StringSet
    signature: "StringSet *GetTagsFromAugmentsTags(const char *item_type,\n                                          const
      char *key,\n                                          const JsonElement *json_tags,\n
      \                                         const char *default_tag,\n                                          const
      char *filename)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:320,1
    - Dst: EvalContextVariableTags
      Src: /src/core/libpromises/generic_agent.c:328,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/generic_agent.c:329,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - var_ref
    argTypes:
    - EvalContext*
    - VarRef*
    assertStmts:
    - condition: (var_ref != NULL)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 342
      start: 318
    functionDepth: 12
    functionLinenumber: 318
    functionLinenumberEnd: 342
    functionName: CanSetVariable
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - StringSetContains
    - assert
    - Log
    - EvalContextVariableTags
    linkageType: ''
    returnType: bool
    signature: bool CanSetVariable(const EvalContext *ctx, VarRef *var_ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libpromises/generic_agent.c:347,1
    - Dst: xstrndup
      Src: /src/core/libpromises/generic_agent.c:350,1
    - Dst: EvalContextClassTags
      Src: /src/core/libpromises/generic_agent.c:354,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/generic_agent.c:355,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - class_spec
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 344
    functionDepth: 8
    functionLinenumber: 344
    functionLinenumberEnd: 364
    functionName: CanSetClass
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - EvalContextClassTags
    - StringSetContains
    - strchr
    - Log
    - xstrndup
    linkageType: ''
    returnType: bool
    signature: bool CanSetClass(const EvalContext *ctx, const char *class_spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:369,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/generic_agent.c:369,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:371,1
    - Dst: NULL_JSON
      Src: /src/core/libpromises/generic_agent.c:372,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/generic_agent.c:377,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:379,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/generic_agent.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - item_type
    - identifier
    - file_name
    - json_object
    argTypes:
    - char*
    - char*
    - char*
    - JsonElement*
    assertStmts:
    - condition: (JsonGetType(json_object) == JSON_TYPE_OBJECT)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 386
      start: 366
    functionDepth: 8
    functionLinenumber: 366
    functionLinenumberEnd: 386
    functionName: GetAugmentsComment
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - NULL_JSON
    - assert
    - Log
    - JsonPrimitiveGetAsString
    - JsonObjectGet
    - JsonGetType
    linkageType: ''
    returnType: char
    signature: "char *GetAugmentsComment(const char *item_type, const char *identifier,\n
      \                                            const char *file_name, const JsonElement
      *json_object)"
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:392,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/generic_agent.c:393,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:395,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:400,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/generic_agent.c:402,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/generic_agent.c:404,1
    - Dst: StringEqual
      Src: /src/core/libpromises/generic_agent.c:406,1
    - Dst: StringEqual
      Src: /src/core/libpromises/generic_agent.c:407,1
    - Dst: StringEqual
      Src: /src/core/libpromises/generic_agent.c:408,1
    - Dst: StringEqual
      Src: /src/core/libpromises/generic_agent.c:409,1
    - Dst: StringEqual
      Src: /src/core/libpromises/generic_agent.c:410,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:412,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:418,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/generic_agent.c:419,1
    - Dst: JsonExpandElement
      Src: /src/core/libpromises/generic_agent.c:421,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:424,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/generic_agent.c:425,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:427,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/generic_agent.c:431,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/generic_agent.c:433,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/generic_agent.c:435,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:440,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/generic_agent.c:442,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:448,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:451,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:452,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/generic_agent.c:454,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:457,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/generic_agent.c:458,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:459,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:461,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:466,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:468,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/generic_agent.c:470,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:473,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:475,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/generic_agent.c:476,1
    - Dst: JsonArrayContainsOnlyPrimitives
      Src: /src/core/libpromises/generic_agent.c:477,1
    - Dst: RlistFromContainer
      Src: /src/core/libpromises/generic_agent.c:480,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:483,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/generic_agent.c:484,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:485,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:487,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:495,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:497,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/generic_agent.c:499,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/generic_agent.c:504,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:510,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/generic_agent.c:511,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:512,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:514,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:522,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:524,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/generic_agent.c:526,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/generic_agent.c:532,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:536,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:540,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/generic_agent.c:541,1
    - Dst: JsonExpandElement
      Src: /src/core/libpromises/generic_agent.c:543,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/generic_agent.c:545,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:547,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/generic_agent.c:551,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/generic_agent.c:553,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/generic_agent.c:555,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:560,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/generic_agent.c:562,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:568,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:571,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/generic_agent.c:577,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:579,1
    - Dst: NULL_JSON
      Src: /src/core/libpromises/generic_agent.c:581,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:583,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/generic_agent.c:585,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:589,1
    - Dst: GetTagsFromAugmentsTags
      Src: /src/core/libpromises/generic_agent.c:590,1
    - Dst: GetAugmentsComment
      Src: /src/core/libpromises/generic_agent.c:591,1
    - Dst: GetTagsFromAugmentsTags
      Src: /src/core/libpromises/generic_agent.c:597,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:600,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:601,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:604,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/generic_agent.c:606,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:609,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/generic_agent.c:610,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:611,1
    - Dst: EvalContextVariablePutSpecialTagsSetWithComment
      Src: /src/core/libpromises/generic_agent.c:613,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:619,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:621,1
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/generic_agent.c:623,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:627,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:629,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/generic_agent.c:630,1
    - Dst: JsonArrayContainsOnlyPrimitives
      Src: /src/core/libpromises/generic_agent.c:631,1
    - Dst: RlistFromContainer
      Src: /src/core/libpromises/generic_agent.c:634,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:637,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/generic_agent.c:638,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:639,1
    - Dst: EvalContextVariablePutSpecialTagsSetWithComment
      Src: /src/core/libpromises/generic_agent.c:641,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:649,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:651,1
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/generic_agent.c:653,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/generic_agent.c:659,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:665,1
    - Dst: SpecialScopeToString
      Src: /src/core/libpromises/generic_agent.c:666,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:667,1
    - Dst: EvalContextVariablePutSpecialTagsSetWithComment
      Src: /src/core/libpromises/generic_agent.c:669,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:677,1
    - Dst: CanSetVariable
      Src: /src/core/libpromises/generic_agent.c:679,1
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/generic_agent.c:681,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/generic_agent.c:687,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/generic_agent.c:694,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:699,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:703,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/generic_agent.c:704,1
    - Dst: JsonExpandElement
      Src: /src/core/libpromises/generic_agent.c:706,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:708,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/generic_agent.c:709,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:711,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/generic_agent.c:716,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/generic_agent.c:718,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:720,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:721,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/generic_agent.c:723,1
    - Dst: CheckContextClassmatch
      Src: /src/core/libpromises/generic_agent.c:725,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:727,1
    - Dst: CanSetClass
      Src: /src/core/libpromises/generic_agent.c:729,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/generic_agent.c:731,1
    - Dst: StringEqual
      Src: /src/core/libpromises/generic_agent.c:734,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/generic_agent.c:736,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:738,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:740,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/generic_agent.c:741,1
    - Dst: JsonArrayContainsOnlyPrimitives
      Src: /src/core/libpromises/generic_agent.c:742,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/generic_agent.c:745,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/generic_agent.c:747,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/generic_agent.c:749,1
    - Dst: CheckContextClassmatch
      Src: /src/core/libpromises/generic_agent.c:750,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:752,1
    - Dst: CanSetClass
      Src: /src/core/libpromises/generic_agent.c:754,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/generic_agent.c:756,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:758,1
    - Dst: StringEqual
      Src: /src/core/libpromises/generic_agent.c:761,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/generic_agent.c:763,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:766,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/generic_agent.c:769,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:771,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:772,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:773,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/generic_agent.c:775,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/generic_agent.c:775,1
    - Dst: NULL_JSON
      Src: /src/core/libpromises/generic_agent.c:776,1
    - Dst: NULL_JSON
      Src: /src/core/libpromises/generic_agent.c:776,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:778,1
    - Dst: GetTagsFromAugmentsTags
      Src: /src/core/libpromises/generic_agent.c:784,1
    - Dst: GetAugmentsComment
      Src: /src/core/libpromises/generic_agent.c:786,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/generic_agent.c:788,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/generic_agent.c:790,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/generic_agent.c:792,1
    - Dst: CheckContextClassmatch
      Src: /src/core/libpromises/generic_agent.c:793,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:795,1
    - Dst: CanSetClass
      Src: /src/core/libpromises/generic_agent.c:797,1
    - Dst: EvalContextClassPutSoftTagsSetWithComment
      Src: /src/core/libpromises/generic_agent.c:799,1
    - Dst: StringEqual
      Src: /src/core/libpromises/generic_agent.c:802,1
    - Dst: EvalContextClassPutSoftTagsSetWithComment
      Src: /src/core/libpromises/generic_agent.c:804,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:807,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:811,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/generic_agent.c:817,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:822,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:828,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:832,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/generic_agent.c:833,1
    - Dst: JsonExpandElement
      Src: /src/core/libpromises/generic_agent.c:835,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:837,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/generic_agent.c:838,1
    - Dst: JsonArrayContainsOnlyPrimitives
      Src: /src/core/libpromises/generic_agent.c:839,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:841,1
    - Dst: RlistFromContainer
      Src: /src/core/libpromises/generic_agent.c:843,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:844,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/generic_agent.c:848,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:852,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:856,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:860,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/generic_agent.c:861,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:864,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/generic_agent.c:866,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/generic_agent.c:867,1
    - Dst: JsonArrayContainsOnlyPrimitives
      Src: /src/core/libpromises/generic_agent.c:868,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/generic_agent.c:870,1
    - Dst: JsonIteratorNextValueByType
      Src: /src/core/libpromises/generic_agent.c:872,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/generic_agent.c:874,1
    - Dst: LoadAugmentsFiles
      Src: /src/core/libpromises/generic_agent.c:875,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:878,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:882,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:884,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:889,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 251
    argCount: 3
    argNames:
    - ctx
    - filename
    - augment
    argTypes:
    - EvalContext*
    - char*
    - JsonElement*
    assertStmts:
    - condition: (tags != NULL)
      pos:
        line_end: 599
        line_start: 599
        source_file: /src/core/libpromises/generic_agent.c
    - condition: (further_augments != NULL)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/core/libpromises/generic_agent.c
    - condition: (data != NULL)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 896
      start: 388
    functionDepth: 13
    functionLinenumber: 388
    functionLinenumberEnd: 896
    functionName: LoadAugmentsData
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonIteratorNextKey
    - EvalContextClassPutSoftTagsSetWithComment
    - RlistFromContainer
    - VarRefDestroy
    - Log
    - JsonPrimitiveToString
    - JsonObjectGet
    - free
    - GetAugmentsComment
    - StringEqual
    - JsonExpandElement
    - EvalContextClassPutSoft
    - JsonGetElementType
    - EvalContextVariablePutTagsSetWithComment
    - RlistDestroy
    - xstrdup
    - CheckContextClassmatch
    - JSON_NOT_NULL
    - CanSetVariable
    - JsonIteratorInit
    - CanSetClass
    - assert
    - JsonIteratorNextValueByType
    - EvalContextVariablePut
    - VarRefParse
    - EvalContextVariablePutSpecialTagsSetWithComment
    - SpecialScopeToString
    - JsonDestroy
    - JsonArrayContainsOnlyPrimitives
    - NULL_JSON
    - StringSetDestroy
    - LoadAugmentsFiles
    - GetTagsFromAugmentsTags
    - EvalContextVariablePutSpecial
    - JsonGetType
    linkageType: ''
    returnType: bool
    signature: bool LoadAugmentsData(EvalContext *ctx, const char *filename, const
      JsonElement* augment)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ExpandScalar
      Src: /src/core/libpromises/generic_agent.c:902,1
    - Dst: strstr
      Src: /src/core/libpromises/generic_agent.c:904,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:906,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:912,1
    - Dst: FileCanOpen
      Src: /src/core/libpromises/generic_agent.c:914,1
    - Dst: ReadJsonFile
      Src: /src/core/libpromises/generic_agent.c:917,1
    - Dst: LoadAugmentsData
      Src: /src/core/libpromises/generic_agent.c:920,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:921,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:926,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:930,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - unexpanded_filename
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 898
    functionDepth: 14
    functionLinenumber: 898
    functionLinenumberEnd: 932
    functionName: LoadAugmentsFiles
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - JsonDestroy
    - ExpandScalar
    - strstr
    - LoadAugmentsData
    - ReadJsonFile
    - Log
    - free
    - FileCanOpen
    linkageType: ''
    returnType: bool
    signature: bool LoadAugmentsFiles(EvalContext *ctx, const char *unexpanded_filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:937,1
    - Dst: S_ISREG
      Src: /src/core/libpromises/generic_agent.c:941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 946
    functionName: IsFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - stat
    - S_ISREG
    linkageType: ''
    returnType: bool
    signature: bool IsFile(const char *const filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:950,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:956,1
    - Dst: StringFormat
      Src: /src/core/libpromises/generic_agent.c:961,1
    - Dst: IsFile
      Src: /src/core/libpromises/generic_agent.c:962,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libpromises/generic_agent.c:965,1
    - Dst: StringFormat
      Src: /src/core/libpromises/generic_agent.c:974,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:976,1
    - Dst: LoadAugmentsFiles
      Src: /src/core/libpromises/generic_agent.c:977,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - config
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 979
      start: 948
    functionDepth: 15
    functionLinenumber: 948
    functionLinenumberEnd: 979
    functionName: LoadAugments
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - EvalContextClassPutHard
    - IsFile
    - assert
    - LoadAugmentsFiles
    - StringFormat
    - Log
    - free
    - FREE_AND_NULL
    linkageType: ''
    returnType: void
    signature: void LoadAugments(EvalContext *ctx, GenericAgentConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetAbsolutePath
      Src: /src/core/libpromises/generic_agent.c:983,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:985,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:986,1
    - Dst: EvalContextSetEntryPoint
      Src: /src/core/libpromises/generic_agent.c:987,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:988,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:992,1
    - Dst: dirname
      Src: /src/core/libpromises/generic_agent.c:994,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:996,1
    - Dst: basename
      Src: /src/core/libpromises/generic_agent.c:998,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1000,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1001,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - config
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 981
    functionDepth: 10
    functionLinenumber: 981
    functionLinenumberEnd: 1003
    functionName: AddPolicyEntryVariables
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - EvalContextSetEntryPoint
    - dirname
    - xstrdup
    - EvalContextVariablePutSpecial
    - free
    - GetAbsolutePath
    - basename
    linkageType: ''
    returnType: void
    signature: void AddPolicyEntryVariables (EvalContext *ctx, const GenericAgentConfig
      *config)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:1008,1
    - Dst: strcpy
      Src: /src/core/libpromises/generic_agent.c:1010,1
    - Dst: strncpy
      Src: /src/core/libpromises/generic_agent.c:1013,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1016,1
    - Dst: NameVersion
      Src: /src/core/libpromises/generic_agent.c:1016,1
    - Dst: Banner
      Src: /src/core/libpromises/generic_agent.c:1017,1
    - Dst: GenericAgentSetDefaultDigest
      Src: /src/core/libpromises/generic_agent.c:1019,1
    - Dst: GenericAgentInitialize
      Src: /src/core/libpromises/generic_agent.c:1020,1
    - Dst: SetReferenceTime
      Src: /src/core/libpromises/generic_agent.c:1022,1
    - Dst: UpdateTimeClasses
      Src: /src/core/libpromises/generic_agent.c:1023,1
    - Dst: SanitizeEnvironment
      Src: /src/core/libpromises/generic_agent.c:1024,1
    - Dst: LoggingSetAgentType
      Src: /src/core/libpromises/generic_agent.c:1027,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:1028,1
    - Dst: DetectEnvironment
      Src: /src/core/libpromises/generic_agent.c:1031,1
    - Dst: AddPolicyEntryVariables
      Src: /src/core/libpromises/generic_agent.c:1032,1
    - Dst: EvalContextHeapPersistentLoadAll
      Src: /src/core/libpromises/generic_agent.c:1034,1
    - Dst: LoadSystemConstants
      Src: /src/core/libpromises/generic_agent.c:1035,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:1045,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:1049,1
    - Dst: RemoveAllExistingPolicyInInputs
      Src: /src/core/libpromises/generic_agent.c:1052,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:1052,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1054,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/generic_agent.c:1056,1
    - Dst: WriteBuiltinFailsafePolicy
      Src: /src/core/libpromises/generic_agent.c:1059,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:1059,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1061,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/generic_agent.c:1063,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/libpromises/generic_agent.c:1065,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:1065,1
    - Dst: strlen
      Src: /src/core/libpromises/generic_agent.c:1067,1
    - Dst: StringCanonify
      Src: /src/core/libpromises/generic_agent.c:1068,1
    - Dst: EvalContextClassGet
      Src: /src/core/libpromises/generic_agent.c:1071,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1075,1
    - Dst: GetMasterDir
      Src: /src/core/libpromises/generic_agent.c:1076,1
    - Dst: MarkAsPolicyServer
      Src: /src/core/libpromises/generic_agent.c:1077,1
    - Dst: SetCFEngineRoles
      Src: /src/core/libpromises/generic_agent.c:1078,1
    - Dst: MasterfileExists
      Src: /src/core/libpromises/generic_agent.c:1080,1
    - Dst: GetMasterDir
      Src: /src/core/libpromises/generic_agent.c:1080,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1082,1
    - Dst: GetMasterDir
      Src: /src/core/libpromises/generic_agent.c:1083,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/generic_agent.c:1084,1
    - Dst: CheckAndSetHAState
      Src: /src/core/libpromises/generic_agent.c:1087,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:1087,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1091,1
    - Dst: SetCFEngineRoles
      Src: /src/core/libpromises/generic_agent.c:1095,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:1099,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1100,1
    - Dst: WriteAmPolicyHubFile
      Src: /src/core/libpromises/generic_agent.c:1106,1
    - Dst: PolicyServerWriteFile
      Src: /src/core/libpromises/generic_agent.c:1108,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:1108,1
    - Dst: EvalContextSetPolicyServer
      Src: /src/core/libpromises/generic_agent.c:1109,1
    - Dst: CreateBootstrapIDFile
      Src: /src/core/libpromises/generic_agent.c:1110,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:1110,1
    - Dst: EvalContextSetBootstrapID
      Src: /src/core/libpromises/generic_agent.c:1113,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1114,1
    - Dst: UpdateLastPolicyUpdateTime
      Src: /src/core/libpromises/generic_agent.c:1118,1
    - Dst: PolicyServerReadFile
      Src: /src/core/libpromises/generic_agent.c:1122,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:1122,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1125,1
    - Dst: EvalContextSetPolicyServer
      Src: /src/core/libpromises/generic_agent.c:1127,1
    - Dst: ReadBootstrapIDFile
      Src: /src/core/libpromises/generic_agent.c:1128,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:1128,1
    - Dst: EvalContextSetBootstrapID
      Src: /src/core/libpromises/generic_agent.c:1131,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1132,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1134,1
    - Dst: UpdateLastPolicyUpdateTime
      Src: /src/core/libpromises/generic_agent.c:1135,1
    - Dst: GetAmPolicyHub
      Src: /src/core/libpromises/generic_agent.c:1136,1
    - Dst: MarkAsPolicyServer
      Src: /src/core/libpromises/generic_agent.c:1139,1
    - Dst: SetCFEngineRoles
      Src: /src/core/libpromises/generic_agent.c:1140,1
    - Dst: CheckAndSetHAState
      Src: /src/core/libpromises/generic_agent.c:1143,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:1143,1
    - Dst: SetCFEngineRoles
      Src: /src/core/libpromises/generic_agent.c:1148,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1153,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:1154,1
    - Dst: LoadCMDBData
      Src: /src/core/libpromises/generic_agent.c:1159,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1161,1
    - Dst: LoadAugments
      Src: /src/core/libpromises/generic_agent.c:1168,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 86
    argCount: 3
    argNames:
    - ctx
    - config
    - program_name
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    - char*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 1007
        line_start: 1007
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 1170
      start: 1005
    functionDepth: 16
    functionLinenumber: 1005
    functionLinenumberEnd: 1170
    functionName: GenericAgentDiscoverContext
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 5
    functionsReached:
    - SanitizeEnvironment
    - GenericAgentInitialize
    - EvalContextSetBootstrapID
    - SetReferenceTime
    - WriteBuiltinFailsafePolicy
    - Log
    - GetInputDir
    - LoadSystemConstants
    - AddPolicyEntryVariables
    - StringCanonify
    - free
    - CreateBootstrapIDFile
    - EvalContextSetPolicyServer
    - ReadBootstrapIDFile
    - GenericAgentConfigSetInputFile
    - NameVersion
    - RemoveAllExistingPolicyInInputs
    - strlen
    - GetAmPolicyHub
    - PolicyServerReadFile
    - PolicyServerWriteFile
    - EvalContextHeapPersistentLoadAll
    - UpdateTimeClasses
    - DetectEnvironment
    - CheckAndSetHAState
    - strcpy
    - LoadCMDBData
    - strncpy
    - Banner
    - assert
    - WriteAmPolicyHubFile
    - SetCFEngineRoles
    - GetMasterDir
    - MarkAsPolicyServer
    - GetWorkDir
    - MasterfileExists
    - DoCleanupAndExit
    - LoadAugments
    - UpdateLastPolicyUpdateTime
    - EvalContextClassPutHard
    - LoggingSetAgentType
    - GenericAgentSetDefaultDigest
    - EvalContextClassGet
    linkageType: ''
    returnType: void
    signature: "void GenericAgentDiscoverContext(EvalContext *ctx, GenericAgentConfig
      *config,\n                                 const char *program_name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsFileOutsideDefaultRepository
      Src: /src/core/libpromises/generic_agent.c:1176,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1179,1
    - Dst: GenericAgentIsPolicyReloadNeeded
      Src: /src/core/libpromises/generic_agent.c:1181,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1184,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - config
    - force_validation
    argTypes:
    - GenericAgentConfig*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1172
    functionDepth: 8
    functionLinenumber: 1172
    functionLinenumberEnd: 1193
    functionName: IsPolicyPrecheckNeeded
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - IsFileOutsideDefaultRepository
    - GenericAgentIsPolicyReloadNeeded
    - Log
    linkageType: ''
    returnType: bool
    signature: bool IsPolicyPrecheckNeeded(GenericAgentConfig *config, bool force_validation)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MissingInputFile
      Src: /src/core/libpromises/generic_agent.c:1197,1
    - Dst: ReadTimestampFromPolicyValidatedFile
      Src: /src/core/libpromises/generic_agent.c:1204,1
    - Dst: IsPolicyPrecheckNeeded
      Src: /src/core/libpromises/generic_agent.c:1209,1
    - Dst: GenericAgentArePromisesValid
      Src: /src/core/libpromises/generic_agent.c:1211,1
    - Dst: GenericAgentTagReleaseDirectory
      Src: /src/core/libpromises/generic_agent.c:1214,1
    - Dst: GetAmPolicyHub
      Src: /src/core/libpromises/generic_agent.c:1217,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1222,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1230,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - config
    - force_validation
    - write_validated_file
    argTypes:
    - GenericAgentConfig*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1195
    functionDepth: 9
    functionLinenumber: 1195
    functionLinenumberEnd: 1235
    functionName: GenericAgentCheckPolicy
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - GetAmPolicyHub
    - ReadTimestampFromPolicyValidatedFile
    - GenericAgentTagReleaseDirectory
    - MissingInputFile
    - IsPolicyPrecheckNeeded
    - GenericAgentArePromisesValid
    - Log
    linkageType: ''
    returnType: bool
    signature: bool GenericAgentCheckPolicy(GenericAgentConfig *config, bool force_validation,
      bool write_validated_file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:1241,1
    - Dst: ReadJsonFile
      Src: /src/core/libpromises/generic_agent.c:1246,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1249,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/generic_agent.c:1250,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/generic_agent.c:1253,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/generic_agent.c:1257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1237
    functionDepth: 8
    functionLinenumber: 1237
    functionLinenumberEnd: 1262
    functionName: ReadPolicyValidatedFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - stat
    - ReadJsonFile
    - JsonObjectAppendInteger
    - Log
    - JsonObjectCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *ReadPolicyValidatedFile(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPromisesValidatedFile
      Src: /src/core/libpromises/generic_agent.c:1268,1
    - Dst: ReadPolicyValidatedFile
      Src: /src/core/libpromises/generic_agent.c:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - config
    - maybe_dirname
    argTypes:
    - GenericAgentConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1264
    functionDepth: 9
    functionLinenumber: 1264
    functionLinenumberEnd: 1271
    functionName: ReadPolicyValidatedFileFromMasterfiles
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - GetPromisesValidatedFile
    - ReadPolicyValidatedFile
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *ReadPolicyValidatedFileFromMasterfiles(const GenericAgentConfig
      *config, const char *maybe_dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:1280,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1282,1
    - Dst: creat
      Src: /src/core/libpromises/generic_agent.c:1287,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1290,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:1290,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/generic_agent.c:1294,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/generic_agent.c:1295,1
    - Dst: time
      Src: /src/core/libpromises/generic_agent.c:1295,1
    - Dst: FileWriter
      Src: /src/core/libpromises/generic_agent.c:1297,1
    - Dst: fdopen
      Src: /src/core/libpromises/generic_agent.c:1297,1
    - Dst: JsonWrite
      Src: /src/core/libpromises/generic_agent.c:1298,1
    - Dst: WriterClose
      Src: /src/core/libpromises/generic_agent.c:1300,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:1301,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - GenericAgentConfig *config
    - filename
    argTypes:
    - ARG_UNUSED
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1278
    functionDepth: 8
    functionLinenumber: 1278
    functionLinenumberEnd: 1305
    functionName: WritePolicyValidatedFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - creat
    - GetErrorStr
    - FileWriter
    - JsonDestroy
    - fdopen
    - WriterClose
    - MakeParentDirectory
    - JsonObjectAppendInteger
    - Log
    - JsonWrite
    - JsonObjectCreate
    - time
    linkageType: ''
    returnType: bool
    signature: bool WritePolicyValidatedFile(ARG_UNUSED const GenericAgentConfig *config,
      const char *filename)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetAutotagDir
      Src: /src/core/libpromises/generic_agent.c:1316,1
    - Dst: GeneratePolicyReleaseIDFromGit
      Src: /src/core/libpromises/generic_agent.c:1322,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1324,1
    - Dst: GetReleaseIdFile
      Src: /src/core/libpromises/generic_agent.c:1332,1
    - Dst: ReadReleaseIdFromReleaseIdFileMasterfiles
      Src: /src/core/libpromises/generic_agent.c:1333,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:1336,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1340,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1344,1
    - Dst: WriteReleaseIdFile
      Src: /src/core/libpromises/generic_agent.c:1347,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1350,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1351,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1356,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1360,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1366,1
    - Dst: GetPromisesValidatedFile
      Src: /src/core/libpromises/generic_agent.c:1368,1
    - Dst: WritePolicyValidatedFile
      Src: /src/core/libpromises/generic_agent.c:1370,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1374,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1378,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - config
    - dirname
    - write_validated
    - write_release
    argTypes:
    - GenericAgentConfig*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1311
    functionDepth: 9
    functionLinenumber: 1311
    functionLinenumberEnd: 1383
    functionName: GenericAgentTagReleaseDirectory
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 2
    functionsReached:
    - WritePolicyValidatedFile
    - ReadReleaseIdFromReleaseIdFileMasterfiles
    - GeneratePolicyReleaseIDFromGit
    - GetReleaseIdFile
    - GetAutotagDir
    - Log
    - strcmp
    - free
    - GetPromisesValidatedFile
    - WriteReleaseIdFile
    linkageType: ''
    returnType: bool
    signature: bool GenericAgentTagReleaseDirectory(const GenericAgentConfig *config,
      const char *dirname, bool write_validated, bool write_release)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GeneratePolicyReleaseID
      Src: /src/core/libpromises/generic_agent.c:1397,1
    - Dst: creat
      Src: /src/core/libpromises/generic_agent.c:1404,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1407,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:1407,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/generic_agent.c:1411,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/generic_agent.c:1412,1
    - Dst: FileWriter
      Src: /src/core/libpromises/generic_agent.c:1414,1
    - Dst: fdopen
      Src: /src/core/libpromises/generic_agent.c:1414,1
    - Dst: JsonWrite
      Src: /src/core/libpromises/generic_agent.c:1415,1
    - Dst: WriterClose
      Src: /src/core/libpromises/generic_agent.c:1417,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:1418,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - filename
    - dirname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1392
    functionDepth: 8
    functionLinenumber: 1392
    functionLinenumberEnd: 1422
    functionName: WriteReleaseIdFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - creat
    - GetErrorStr
    - FileWriter
    - JsonDestroy
    - fdopen
    - WriterClose
    - Log
    - GeneratePolicyReleaseID
    - JsonWrite
    - JsonObjectCreate
    - JsonObjectAppendString
    linkageType: ''
    returnType: bool
    signature: bool WriteReleaseIdFile(const char *filename, const char *dirname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:1426,1
    - Dst: GetBinDir
      Src: /src/core/libpromises/generic_agent.c:1429,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1431,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1435,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:1439,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1441,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1450,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1454,1
    - Dst: strlcat
      Src: /src/core/libpromises/generic_agent.c:1458,1
    - Dst: strlcat
      Src: /src/core/libpromises/generic_agent.c:1460,1
    - Dst: strlcat
      Src: /src/core/libpromises/generic_agent.c:1464,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/generic_agent.c:1467,1
    - Dst: strlcat
      Src: /src/core/libpromises/generic_agent.c:1468,1
    - Dst: strlcat
      Src: /src/core/libpromises/generic_agent.c:1472,1
    - Dst: strlcat
      Src: /src/core/libpromises/generic_agent.c:1475,1
    - Dst: strlcat
      Src: /src/core/libpromises/generic_agent.c:1480,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1483,1
    - Dst: ShellCommandReturnsZero
      Src: /src/core/libpromises/generic_agent.c:1485,1
    - Dst: IsPendingTermination
      Src: /src/core/libpromises/generic_agent.c:1487,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1489,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1494,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - config
    argTypes:
    - GenericAgentConfig*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 1425
        line_start: 1425
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 1500
      start: 1424
    functionDepth: 10
    functionLinenumber: 1424
    functionLinenumberEnd: 1500
    functionName: GenericAgentArePromisesValid
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 2
    functionsReached:
    - stat
    - strlcat
    - ShellCommandReturnsZero
    - snprintf
    - assert
    - IsPendingTermination
    - Log
    - RlistScalarValue
    - GetBinDir
    linkageType: ''
    returnType: bool
    signature: bool GenericAgentArePromisesValid(const GenericAgentConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openlog
      Src: /src/core/libpromises/generic_agent.c:1510,1
    - Dst: RegisterCleanupFunction
      Src: /src/core/libpromises/generic_agent.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - facility
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1512
    functionName: OpenLog
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - openlog
    - RegisterCleanupFunction
    linkageType: ''
    returnType: void
    signature: void OpenLog(int facility)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closelog
      Src: /src/core/libpromises/generic_agent.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1521
    functionName: CloseLog
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - closelog
    linkageType: ''
    returnType: void
    signature: void CloseLog(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1524
    functionDepth: 11
    functionLinenumber: 1524
    functionLinenumberEnd: 1527
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - EvalContextClassPutHard
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, GenericAgentAddEditionClasses,
      EvalContext *, ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1532,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/generic_agent.c:1533,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:1535,1
    - Dst: access
      Src: /src/core/libpromises/generic_agent.c:1536,1
    - Dst: fopen
      Src: /src/core/libpromises/generic_agent.c:1541,1
    - Dst: fread
      Src: /src/core/libpromises/generic_agent.c:1547,1
    - Dst: fclose
      Src: /src/core/libpromises/generic_agent.c:1548,1
    - Dst: ParseFacility
      Src: /src/core/libpromises/generic_agent.c:1557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (written < PATH_MAX)
      pos:
        line_end: 1534
        line_start: 1534
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 1558
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1558
    functionName: GetDefaultLogFacility
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - access
    - fopen
    - snprintf
    - assert
    - fread
    - GetStateDir
    - ParseFacility
    - fclose
    linkageType: ''
    returnType: int
    signature: int GetDefaultLogFacility()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1563,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/generic_agent.c:1564,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:1566,1
    - Dst: fopen
      Src: /src/core/libpromises/generic_agent.c:1568,1
    - Dst: LogFacilityToString
      Src: /src/core/libpromises/generic_agent.c:1573,1
    - Dst: GetSyslogFacility
      Src: /src/core/libpromises/generic_agent.c:1573,1
    - Dst: fprintf
      Src: /src/core/libpromises/generic_agent.c:1574,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:1575,1
    - Dst: fclose
      Src: /src/core/libpromises/generic_agent.c:1577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (written < PATH_MAX)
      pos:
        line_end: 1565
        line_start: 1565
        source_file: /src/core/libpromises/generic_agent.c
    - condition: (printed > 0)
      pos:
        line_end: 1574
        line_start: 1574
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 1579
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1579
    functionName: StoreDefaultLogFacility
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - fopen
    - snprintf
    - assert
    - GetStateDir
    - fclose
    - fprintf
    - GetSyslogFacility
    - LogFacilityToString
    linkageType: ''
    returnType: bool
    signature: bool StoreDefaultLogFacility()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: InitializeWindows
      Src: /src/core/libpromises/generic_agent.c:1589,1
    - Dst: fflush
      Src: /src/core/libpromises/generic_agent.c:1597,1
    - Dst: setlinebuf
      Src: /src/core/libpromises/generic_agent.c:1600,1
    - Dst: setvbuf
      Src: /src/core/libpromises/generic_agent.c:1606,1
    - Dst: DetermineCfenginePort
      Src: /src/core/libpromises/generic_agent.c:1609,1
    - Dst: GetDefaultLogFacility
      Src: /src/core/libpromises/generic_agent.c:1611,1
    - Dst: OpenLog
      Src: /src/core/libpromises/generic_agent.c:1612,1
    - Dst: SetSyslogFacility
      Src: /src/core/libpromises/generic_agent.c:1613,1
    - Dst: GenericAgentAddEditionClasses
      Src: /src/core/libpromises/generic_agent.c:1615,1
    - Dst: EvalContextClassGet
      Src: /src/core/libpromises/generic_agent.c:1617,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:1620,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/generic_agent.c:1624,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/generic_agent.c:1629,1
    - Dst: GetChangesChrootDir
      Src: /src/core/libpromises/generic_agent.c:1632,1
    - Dst: SetChangesChroot
      Src: /src/core/libpromises/generic_agent.c:1633,1
    - Dst: RegisterCleanupFunction
      Src: /src/core/libpromises/generic_agent.c:1634,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1635,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:1641,1
    - Dst: GetBinDir
      Src: /src/core/libpromises/generic_agent.c:1642,1
    - Dst: FatalError
      Src: /src/core/libpromises/generic_agent.c:1646,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1649,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1651,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:1651,1
    - Dst: MakeParentInternalDirectory
      Src: /src/core/libpromises/generic_agent.c:1652,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1653,1
    - Dst: MakeParentInternalDirectory
      Src: /src/core/libpromises/generic_agent.c:1654,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1655,1
    - Dst: MakeParentInternalDirectory
      Src: /src/core/libpromises/generic_agent.c:1656,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1657,1
    - Dst: MakeParentInternalDirectory
      Src: /src/core/libpromises/generic_agent.c:1658,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1659,1
    - Dst: MakeParentInternalDirectory
      Src: /src/core/libpromises/generic_agent.c:1660,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1662,1
    - Dst: GetLogDir
      Src: /src/core/libpromises/generic_agent.c:1662,1
    - Dst: MakeParentInternalDirectory
      Src: /src/core/libpromises/generic_agent.c:1663,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1664,1
    - Dst: GetPidDir
      Src: /src/core/libpromises/generic_agent.c:1664,1
    - Dst: MakeParentInternalDirectory
      Src: /src/core/libpromises/generic_agent.c:1665,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1666,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/generic_agent.c:1666,1
    - Dst: MakeParentInternalDirectory
      Src: /src/core/libpromises/generic_agent.c:1667,1
    - Dst: MakeParentInternalDirectory
      Src: /src/core/libpromises/generic_agent.c:1669,1
    - Dst: GetLogDir
      Src: /src/core/libpromises/generic_agent.c:1669,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1671,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:1671,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:1673,1
    - Dst: FatalError
      Src: /src/core/libpromises/generic_agent.c:1675,1
    - Dst: chmod
      Src: /src/core/libpromises/generic_agent.c:1681,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1684,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:1686,1
    - Dst: FatalError
      Src: /src/core/libpromises/generic_agent.c:1688,1
    - Dst: chmod
      Src: /src/core/libpromises/generic_agent.c:1694,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/generic_agent.c:1697,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1699,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:1701,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:1703,1
    - Dst: CreateEmptyFile
      Src: /src/core/libpromises/generic_agent.c:1705,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1708,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:1711,1
    - Dst: CreateEmptyFile
      Src: /src/core/libpromises/generic_agent.c:1713,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1716,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:1719,1
    - Dst: CreateEmptyFile
      Src: /src/core/libpromises/generic_agent.c:1721,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1724,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:1726,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1728,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:1730,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1732,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:1734,1
    - Dst: OpenNetwork
      Src: /src/core/libpromises/generic_agent.c:1736,1
    - Dst: CryptoInitialize
      Src: /src/core/libpromises/generic_agent.c:1737,1
    - Dst: CheckWorkingDirectories
      Src: /src/core/libpromises/generic_agent.c:1739,1
    - Dst: LoadSecretKeys
      Src: /src/core/libpromises/generic_agent.c:1745,1
    - Dst: PolicyServerLookUpFile
      Src: /src/core/libpromises/generic_agent.c:1747,1
    - Dst: PolicyHubUpdateKeys
      Src: /src/core/libpromises/generic_agent.c:1748,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1749,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:1750,1
    - Dst: getcwd
      Src: /src/core/libpromises/generic_agent.c:1757,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1766,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:1768,1
    - Dst: EvalContextSetLaunchDirectory
      Src: /src/core/libpromises/generic_agent.c:1773,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/libpromises/generic_agent.c:1779,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:1779,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 100
    argCount: 2
    argNames:
    - ctx
    - config
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1581
    functionDepth: 9
    functionLinenumber: 1581
    functionLinenumberEnd: 1781
    functionName: GenericAgentInitialize
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - OpenLog
    - MakeParentDirectory
    - GetDefaultLogFacility
    - CreateEmptyFile
    - setvbuf
    - Log
    - GetInputDir
    - DetermineCfenginePort
    - free
    - fflush
    - GenericAgentConfigSetInputFile
    - snprintf
    - MakeParentInternalDirectory
    - CheckWorkingDirectories
    - EvalContextSetLaunchDirectory
    - GetPidDir
    - InitializeWindows
    - getcwd
    - GetBinDir
    - chmod
    - GetWorkDir
    - LoadSecretKeys
    - GetErrorStr
    - ChrootChanges
    - SetSyslogFacility
    - stat
    - SetChangesChroot
    - GetLogDir
    - GetStateDir
    - GetChangesChrootDir
    - GenericAgentAddEditionClasses
    - FatalError
    - EvalContextClassGet
    - OpenNetwork
    - PolicyHubUpdateKeys
    - EvalContextVariablePutSpecial
    - CryptoInitialize
    - RegisterCleanupFunction
    - PolicyServerLookUpFile
    - setlinebuf
    linkageType: ''
    returnType: void
    signature: void GenericAgentInitialize(EvalContext *ctx, GenericAgentConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1785,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/generic_agent.c:1785,1
    - Dst: getpid
      Src: /src/core/libpromises/generic_agent.c:1785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1786
    functionName: GetChangesChrootDir
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - GetStateDir
    - snprintf
    - getpid
    linkageType: ''
    returnType: void
    signature: void GetChangesChrootDir(char *buf, size_t buf_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetChangesChrootDir
      Src: /src/core/libpromises/generic_agent.c:1791,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1792,1
    - Dst: DeleteDirectoryTree
      Src: /src/core/libpromises/generic_agent.c:1793,1
    - Dst: rmdir
      Src: /src/core/libpromises/generic_agent.c:1796,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1788
    functionDepth: 10
    functionLinenumber: 1788
    functionLinenumberEnd: 1800
    functionName: DeleteChangesChroot
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - rmdir
    - DeleteDirectoryTree
    - Log
    - GetChangesChrootDir
    linkageType: ''
    returnType: void
    signature: void DeleteChangesChroot()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cfnet_shut
      Src: /src/core/libpromises/generic_agent.c:1807,1
    - Dst: CryptoDeInitialize
      Src: /src/core/libpromises/generic_agent.c:1809,1
    - Dst: GenericAgentConfigDestroy
      Src: /src/core/libpromises/generic_agent.c:1810,1
    - Dst: EvalContextDestroy
      Src: /src/core/libpromises/generic_agent.c:1811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - config
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1802
    functionDepth: 4
    functionLinenumber: 1802
    functionLinenumberEnd: 1812
    functionName: GenericAgentFinalize
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 8
    functionsReached:
    - cfnet_shut
    - EvalContextDestroy
    - GenericAgentConfigDestroy
    - CryptoDeInitialize
    linkageType: ''
    returnType: void
    signature: void GenericAgentFinalize(EvalContext *ctx, GenericAgentConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:1818,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1820,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input_file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1814
    functionDepth: 8
    functionLinenumber: 1814
    functionLinenumberEnd: 1825
    functionName: MissingInputFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - Log
    linkageType: ''
    returnType: bool
    signature: bool MissingInputFile(const char *input_file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1836,1
    - Dst: MapName
      Src: /src/core/libpromises/generic_agent.c:1837,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/generic_agent.c:1841,1
    - Dst: fscanf
      Src: /src/core/libpromises/generic_agent.c:1845,1
    - Dst: fclose
      Src: /src/core/libpromises/generic_agent.c:1850,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1851,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/generic_agent.c:1853,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1854,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1858,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:1861,1
    - Dst: fseek
      Src: /src/core/libpromises/generic_agent.c:1862,1
    - Dst: fscanf
      Src: /src/core/libpromises/generic_agent.c:1863,1
    - Dst: fclose
      Src: /src/core/libpromises/generic_agent.c:1864,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1868,1
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:1882,1
    - Dst: fscanf
      Src: /src/core/libpromises/generic_agent.c:1883,1
    - Dst: fclose
      Src: /src/core/libpromises/generic_agent.c:1884,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1889,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:1890,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - release_id_out
    - ARG_UNUSED
    - policy_dir
    argTypes:
    - char*
    - NDEBUG
    - char*
    assertStmts:
    - condition: (out_size > 40)
      pos:
        line_end: 1860
        line_start: 1860
        source_file: /src/core/libpromises/generic_agent.c
    - condition: (out_size > 40)
      pos:
        line_end: 1881
        line_start: 1881
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 1900
      start: 1828
    functionDepth: 8
    functionLinenumber: 1828
    functionLinenumberEnd: 1900
    functionName: GeneratePolicyReleaseIDFromGit
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - fscanf
    - snprintf
    - MapName
    - assert
    - fseek
    - safe_fopen
    - Log
    - fclose
    linkageType: ''
    returnType: bool
    signature: "bool GeneratePolicyReleaseIDFromGit(char *release_id_out,\n#ifdef
      NDEBUG /* out_size is only used in an assertion */\n                                           ARG_UNUSED\n#endif\n
      \                                          size_t out_size,\n                                           const
      char *policy_dir)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/core/libpromises/generic_agent.c:1905,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1907,1
    - Dst: HashDigestFromId
      Src: /src/core/libpromises/generic_agent.c:1912,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1915,1
    - Dst: EVP_MD_CTX_new
      Src: /src/core/libpromises/generic_agent.c:1920,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:1923,1
    - Dst: EVP_DigestInit
      Src: /src/core/libpromises/generic_agent.c:1927,1
    - Dst: HashDirectoryTree
      Src: /src/core/libpromises/generic_agent.c:1929,1
    - Dst: EVP_DigestFinal
      Src: /src/core/libpromises/generic_agent.c:1935,1
    - Dst: EVP_MD_CTX_free
      Src: /src/core/libpromises/generic_agent.c:1936,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/generic_agent.c:1938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - release_id_out
    - out_size
    - policy_dir
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1902
    functionDepth: 11
    functionLinenumber: 1902
    functionLinenumberEnd: 1941
    functionName: GeneratePolicyReleaseIDFromTree
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - access
    - EVP_DigestInit
    - HashDigestFromId
    - EVP_DigestFinal
    - HashPrintSafe
    - EVP_MD_CTX_new
    - Log
    - HashDirectoryTree
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: bool
    signature: "bool GeneratePolicyReleaseIDFromTree(char *release_id_out, size_t
      out_size,\n                                            const char *policy_dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GeneratePolicyReleaseIDFromGit
      Src: /src/core/libpromises/generic_agent.c:1946,1
    - Dst: GeneratePolicyReleaseIDFromTree
      Src: /src/core/libpromises/generic_agent.c:1951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - release_id_out
    - out_size
    - policy_dir
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1943
    functionDepth: 12
    functionLinenumber: 1943
    functionLinenumberEnd: 1953
    functionName: GeneratePolicyReleaseID
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - GeneratePolicyReleaseIDFromGit
    - GeneratePolicyReleaseIDFromTree
    linkageType: ''
    returnType: bool
    signature: "bool GeneratePolicyReleaseID(char *release_id_out, size_t out_size,\n
      \                                   const char *policy_dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetAutotagDir
      Src: /src/core/libpromises/generic_agent.c:1963,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1967,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/generic_agent.c:1967,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:1971,1
    - Dst: MapName
      Src: /src/core/libpromises/generic_agent.c:1974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - filename
    - max_size
    - config
    - maybe_dirname
    argTypes:
    - char*
    - size_t
    - GenericAgentConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1958
    functionDepth: 2
    functionLinenumber: 1958
    functionLinenumberEnd: 1975
    functionName: GetPromisesValidatedFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 2
    functionsReached:
    - MapName
    - CanonifyName
    - GetAutotagDir
    - snprintf
    linkageType: ''
    returnType: void
    signature: void GetPromisesValidatedFile(char *filename, size_t max_size, const
      GenericAgentConfig *config, const char *maybe_dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libpromises/generic_agent.c:1984,1
    - Dst: strlcpy
      Src: /src/core/libpromises/generic_agent.c:1988,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/generic_agent.c:1988,1
    - Dst: strlcpy
      Src: /src/core/libpromises/generic_agent.c:1992,1
    - Dst: GetMasterDir
      Src: /src/core/libpromises/generic_agent.c:1992,1
    - Dst: MapName
      Src: /src/core/libpromises/generic_agent.c:1995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dirname
    - max_size
    - maybe_dirname
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1980
    functionDepth: 1
    functionLinenumber: 1980
    functionLinenumberEnd: 1996
    functionName: GetAutotagDir
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 2
    functionsReached:
    - MapName
    - GetStateDir
    - GetMasterDir
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void GetAutotagDir(char *dirname, size_t max_size, const char *maybe_dirname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2003,1
    - Dst: MapName
      Src: /src/core/libpromises/generic_agent.c:2004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - base_path
    - filename
    - max_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 2001
    functionDepth: 1
    functionLinenumber: 2001
    functionLinenumberEnd: 2005
    functionName: GetReleaseIdFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 4
    functionsReached:
    - MapName
    - snprintf
    linkageType: ''
    returnType: void
    signature: void GetReleaseIdFile(const char *base_path, char *filename, size_t
      max_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetReleaseIdFile
      Src: /src/core/libpromises/generic_agent.c:2011,1
    - Dst: GetMasterDir
      Src: /src/core/libpromises/generic_agent.c:2011,1
    - Dst: ReadJsonFile
      Src: /src/core/libpromises/generic_agent.c:2014,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - maybe_dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2007
    functionDepth: 8
    functionLinenumber: 2007
    functionLinenumberEnd: 2021
    functionName: ReadReleaseIdFileFromMasterfiles
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - GetReleaseIdFile
    - GetMasterDir
    - Log
    - ReadJsonFile
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *ReadReleaseIdFileFromMasterfiles(const char *maybe_dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadReleaseIdFileFromMasterfiles
      Src: /src/core/libpromises/generic_agent.c:2025,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:2029,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:2032,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/generic_agent.c:2032,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:2034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - maybe_dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2023
    functionDepth: 9
    functionLinenumber: 2023
    functionLinenumberEnd: 2038
    functionName: ReadReleaseIdFromReleaseIdFileMasterfiles
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - JsonDestroy
    - ReadReleaseIdFileFromMasterfiles
    - xstrdup
    - JsonPrimitiveGetAsString
    - JsonObjectGet
    linkageType: ''
    returnType: char
    signature: char * ReadReleaseIdFromReleaseIdFileMasterfiles(const char *maybe_dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadPolicyValidatedFileFromMasterfiles
      Src: /src/core/libpromises/generic_agent.c:2045,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:2048,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/libpromises/generic_agent.c:2051,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:2053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - config
    - maybe_dirname
    argTypes:
    - GenericAgentConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2041
    functionDepth: 10
    functionLinenumber: 2041
    functionLinenumberEnd: 2058
    functionName: ReadTimestampFromPolicyValidatedFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 2
    functionsReached:
    - ReadPolicyValidatedFileFromMasterfiles
    - JsonObjectGet
    - JsonDestroy
    - JsonPrimitiveGetAsInteger
    linkageType: ''
    returnType: time_t
    signature: time_t ReadTimestampFromPolicyValidatedFile(const GenericAgentConfig
      *config, const char *maybe_dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadPolicyValidatedFileFromMasterfiles
      Src: /src/core/libpromises/generic_agent.c:2066,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/generic_agent.c:2069,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:2072,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/generic_agent.c:2072,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/generic_agent.c:2074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - config
    - maybe_dirname
    argTypes:
    - GenericAgentConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2061
    functionDepth: 10
    functionLinenumber: 2061
    functionLinenumberEnd: 2079
    functionName: ReadChecksumFromPolicyValidatedMasterfiles
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - JsonDestroy
    - xstrdup
    - JsonPrimitiveGetAsString
    - ReadPolicyValidatedFileFromMasterfiles
    - JsonObjectGet
    linkageType: ''
    returnType: char
    signature: char * ReadChecksumFromPolicyValidatedMasterfiles(const GenericAgentConfig
      *config, const char *maybe_dirname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ReadTimestampFromPolicyValidatedFile
      Src: /src/core/libpromises/generic_agent.c:2087,1
    - Dst: time
      Src: /src/core/libpromises/generic_agent.c:2088,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2092,1
    - Dst: GenericAgentTagReleaseDirectory
      Src: /src/core/libpromises/generic_agent.c:2096,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:2105,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2107,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2107,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2112,1
    - Dst: IsNewerFileTree
      Src: /src/core/libpromises/generic_agent.c:2119,1
    - Dst: GetInputDir
      Src: /src/core/libpromises/generic_agent.c:2119,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2121,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2128,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:2128,1
    - Dst: MapName
      Src: /src/core/libpromises/generic_agent.c:2129,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:2132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - config
    argTypes:
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2085
    functionDepth: 11
    functionLinenumber: 2085
    functionLinenumberEnd: 2139
    functionName: GenericAgentIsPolicyReloadNeeded
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - IsNewerFileTree
    - snprintf
    - MapName
    - ReadTimestampFromPolicyValidatedFile
    - GenericAgentTagReleaseDirectory
    - Log
    - GetInputDir
    - GetWorkDir
    - time
    linkageType: ''
    returnType: bool
    signature: bool GenericAgentIsPolicyReloadNeeded(const GenericAgentConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/generic_agent.c:2145,1
    - Dst: SeqAt
      Src: /src/core/libpromises/generic_agent.c:2147,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2149,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - policy
    - agent
    argTypes:
    - Policy*
    - AgentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2143
    functionDepth: 1
    functionLinenumber: 2143
    functionLinenumberEnd: 2159
    functionName: ControlBodyConstraints
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 3
    functionsReached:
    - SeqLength
    - strcmp
    - SeqAt
    linkageType: ''
    returnType: Seq
    signature: Seq *ControlBodyConstraints(const Policy *policy, AgentType agent)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2165,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2169,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2173,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2177,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2181,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2185,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2189,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2193,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2197,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2201,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2163
    functionDepth: 0
    functionLinenumber: 2163
    functionLinenumberEnd: 2206
    functionName: ParseFacility
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ParseFacility(const char *name)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - facility
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2208
    functionDepth: 0
    functionLinenumber: 2208
    functionLinenumberEnd: 2224
    functionName: LogFacilityToString
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *LogFacilityToString(int facility)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2228,1
    - Dst: CloseLog
      Src: /src/core/libpromises/generic_agent.c:2230,1
    - Dst: OpenLog
      Src: /src/core/libpromises/generic_agent.c:2231,1
    - Dst: ParseFacility
      Src: /src/core/libpromises/generic_agent.c:2231,1
    - Dst: SetSyslogFacility
      Src: /src/core/libpromises/generic_agent.c:2232,1
    - Dst: ParseFacility
      Src: /src/core/libpromises/generic_agent.c:2232,1
    - Dst: StoreDefaultLogFacility
      Src: /src/core/libpromises/generic_agent.c:2233,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - retval
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2226
    functionDepth: 8
    functionLinenumber: 2226
    functionLinenumberEnd: 2237
    functionName: SetFacility
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 2
    functionsReached:
    - SetSyslogFacility
    - OpenLog
    - StoreDefaultLogFacility
    - ParseFacility
    - Log
    - CloseLog
    linkageType: ''
    returnType: void
    signature: void SetFacility(const char *retval)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:2245,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/generic_agent.c:2246,1
    - Dst: uname
      Src: /src/core/libpromises/generic_agent.c:2248,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2250,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2250,1
    - Dst: memset
      Src: /src/core/libpromises/generic_agent.c:2251,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2254,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:2255,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:2258,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:2258,1
    - Dst: FatalError
      Src: /src/core/libpromises/generic_agent.c:2260,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/generic_agent.c:2261,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2261,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2264,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2266,1
    - Dst: getuid
      Src: /src/core/libpromises/generic_agent.c:2269,1
    - Dst: getgid
      Src: /src/core/libpromises/generic_agent.c:2269,1
    - Dst: chown
      Src: /src/core/libpromises/generic_agent.c:2271,1
    - Dst: getuid
      Src: /src/core/libpromises/generic_agent.c:2271,1
    - Dst: getgid
      Src: /src/core/libpromises/generic_agent.c:2271,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2273,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2275,1
    - Dst: getuid
      Src: /src/core/libpromises/generic_agent.c:2276,1
    - Dst: getgid
      Src: /src/core/libpromises/generic_agent.c:2276,1
    - Dst: chmod
      Src: /src/core/libpromises/generic_agent.c:2283,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2285,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2286,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:2290,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/generic_agent.c:2290,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2291,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2293,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:2295,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2297,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:2298,1
    - Dst: chown
      Src: /src/core/libpromises/generic_agent.c:2300,1
    - Dst: getuid
      Src: /src/core/libpromises/generic_agent.c:2300,1
    - Dst: getgid
      Src: /src/core/libpromises/generic_agent.c:2300,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2302,1
    - Dst: getuid
      Src: /src/core/libpromises/generic_agent.c:2303,1
    - Dst: getgid
      Src: /src/core/libpromises/generic_agent.c:2303,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2303,1
    - Dst: chmod
      Src: /src/core/libpromises/generic_agent.c:2306,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2313,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2319,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2321,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:2323,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2325,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:2326,1
    - Dst: chown
      Src: /src/core/libpromises/generic_agent.c:2328,1
    - Dst: getuid
      Src: /src/core/libpromises/generic_agent.c:2328,1
    - Dst: getgid
      Src: /src/core/libpromises/generic_agent.c:2328,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2330,1
    - Dst: getuid
      Src: /src/core/libpromises/generic_agent.c:2331,1
    - Dst: getgid
      Src: /src/core/libpromises/generic_agent.c:2331,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2331,1
    - Dst: chmod
      Src: /src/core/libpromises/generic_agent.c:2334,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2341,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2347,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2349,1
    - Dst: stat
      Src: /src/core/libpromises/generic_agent.c:2351,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2353,1
    - Dst: MakeParentDirectory
      Src: /src/core/libpromises/generic_agent.c:2354,1
    - Dst: chmod
      Src: /src/core/libpromises/generic_agent.c:2356,1
    - Dst: FatalError
      Src: /src/core/libpromises/generic_agent.c:2363,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2239
    functionDepth: 8
    functionLinenumber: 2239
    functionLinenumberEnd: 2368
    functionName: CheckWorkingDirectories
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - snprintf
    - getgid
    - uname
    - MakeParentDirectory
    - GetStateDir
    - getuid
    - FatalError
    - Log
    - chown
    - chmod
    - GetWorkDir
    - memset
    linkageType: ''
    returnType: void
    signature: void CheckWorkingDirectories(EvalContext *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FilePathGetType
      Src: /src/core/libpromises/generic_agent.c:2375,1
    - Dst: strlcpy
      Src: /src/core/libpromises/generic_agent.c:2378,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2383,1
    - Dst: MapName
      Src: /src/core/libpromises/generic_agent.c:2387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - config
    - input_file
    argTypes:
    - GenericAgentConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2371
    functionDepth: 4
    functionLinenumber: 2371
    functionLinenumberEnd: 2388
    functionName: GenericAgentResolveInputPath
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 4
    functionsReached:
    - MapName
    - FilePathGetType
    - snprintf
    - strlcpy
    linkageType: ''
    returnType: char
    signature: char *GenericAgentResolveInputPath(const GenericAgentConfig *config,
      const char *input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteF
      Src: /src/core/libpromises/generic_agent.c:2392,1
    - Dst: NameVersion
      Src: /src/core/libpromises/generic_agent.c:2392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2390
    functionDepth: 2
    functionLinenumber: 2390
    functionLinenumberEnd: 2393
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - NameVersion
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, GenericAgentWriteVersion,
      Writer *, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2397
    functionDepth: 0
    functionLinenumber: 2397
    functionLinenumberEnd: 2400
    functionName: Version
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2404
    functionDepth: 0
    functionLinenumber: 2404
    functionLinenumberEnd: 2407
    functionName: NameVersion
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *NameVersion(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/core/libpromises/generic_agent.c:2413,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2417,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2411
    functionDepth: 8
    functionLinenumber: 2411
    functionLinenumberEnd: 2420
    functionName: CleanPidFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - Log
    - unlink
    linkageType: ''
    returnType: void
    signature: void CleanPidFile(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterCleanupFunction
      Src: /src/core/libpromises/generic_agent.c:2426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2424
    functionDepth: 1
    functionLinenumber: 2424
    functionLinenumberEnd: 2427
    functionName: RegisterPidCleanup
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - RegisterCleanupFunction
    linkageType: ''
    returnType: void
    signature: void RegisterPidCleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/core/libpromises/generic_agent.c:2433,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2435,1
    - Dst: GetPidDir
      Src: /src/core/libpromises/generic_agent.c:2435,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libpromises/generic_agent.c:2437,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2440,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2440,1
    - Dst: fprintf
      Src: /src/core/libpromises/generic_agent.c:2444,1
    - Dst: getpid
      Src: /src/core/libpromises/generic_agent.c:2444,1
    - Dst: fclose
      Src: /src/core/libpromises/generic_agent.c:2446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2431
    functionDepth: 10
    functionLinenumber: 2431
    functionLinenumberEnd: 2447
    functionName: WritePID
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - snprintf
    - getpid
    - fprintf
    - pthread_once
    - safe_fopen_create_perms
    - Log
    - fclose
    - GetPidDir
    linkageType: ''
    returnType: void
    signature: void WritePID(char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2452,1
    - Dst: GetPidDir
      Src: /src/core/libpromises/generic_agent.c:2452,1
    - Dst: access
      Src: /src/core/libpromises/generic_agent.c:2454,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2456,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/generic_agent.c:2460,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2463,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/generic_agent.c:2463,1
    - Dst: fscanf
      Src: /src/core/libpromises/generic_agent.c:2468,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2470,1
    - Dst: fclose
      Src: /src/core/libpromises/generic_agent.c:2471,1
    - Dst: fclose
      Src: /src/core/libpromises/generic_agent.c:2474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2449
    functionDepth: 8
    functionLinenumber: 2449
    functionLinenumberEnd: 2476
    functionName: ReadPID
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - access
    - fscanf
    - snprintf
    - safe_fopen
    - Log
    - fclose
    - GetPidDir
    linkageType: ''
    returnType: pid_t
    signature: pid_t ReadPID(char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/libpromises/generic_agent.c:2490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - config
    - argc
    - argv
    argTypes:
    - GenericAgentConfig*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2493
    functionName: GenericAgentConfigParseArguments
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 4
    functionsReached:
    - GenericAgentConfigSetInputFile
    linkageType: ''
    returnType: bool
    signature: bool GenericAgentConfigParseArguments(GenericAgentConfig *config, int
      argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/generic_agent.c:2497,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2502,1
    - Dst: StringStartsWith
      Src: /src/core/libpromises/generic_agent.c:2511,1
    - Dst: strlen
      Src: /src/core/libpromises/generic_agent.c:2513,1
    - Dst: StringSetFromString
      Src: /src/core/libpromises/generic_agent.c:2517,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/generic_agent.c:2518,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/generic_agent.c:2520,1
    - Dst: ParserWarningFromString
      Src: /src/core/libpromises/generic_agent.c:2522,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2525,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/generic_agent.c:2526,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/generic_agent.c:2540,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - config
    - warning_options
    argTypes:
    - GenericAgentConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2495
    functionDepth: 8
    functionLinenumber: 2495
    functionLinenumberEnd: 2542
    functionName: GenericAgentConfigParseWarningOptions
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - strlen
    - StringSetIteratorNext
    - StringSetDestroy
    - Log
    - strcmp
    - StringSetIteratorInit
    - ParserWarningFromString
    - StringSetFromString
    - StringStartsWith
    linkageType: ''
    returnType: bool
    signature: bool GenericAgentConfigParseWarningOptions(GenericAgentConfig *config,
      const char *warning_options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2546,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2551,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2556,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - config
    - mode
    argTypes:
    - GenericAgentConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2544
    functionDepth: 8
    functionLinenumber: 2544
    functionLinenumberEnd: 2566
    functionName: GenericAgentConfigParseColor
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 5
    functionsReached:
    - Log
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool GenericAgentConfigParseColor(GenericAgentConfig *config, const
      char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/core/libpromises/generic_agent.c:2570,1
    - Dst: isatty
      Src: /src/core/libpromises/generic_agent.c:2570,1
    - Dst: isatty
      Src: /src/core/libpromises/generic_agent.c:2570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2568
    functionDepth: 0
    functionLinenumber: 2568
    functionLinenumberEnd: 2571
    functionName: GetTTYInteractive
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 5
    functionsReached:
    - isatty
    linkageType: ''
    returnType: bool
    signature: bool GetTTYInteractive(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/generic_agent.c:2575,1
    - Dst: LoggingSetAgentType
      Src: /src/core/libpromises/generic_agent.c:2577,1
    - Dst: getenv
      Src: /src/core/libpromises/generic_agent.c:2581,1
    - Dst: strcmp
      Src: /src/core/libpromises/generic_agent.c:2582,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 2
    argNames:
    - agent_type
    - tty_interactive
    argTypes:
    - AgentType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2573
    functionDepth: 2
    functionLinenumber: 2573
    functionLinenumberEnd: 2647
    functionName: GenericAgentConfigNewDefault
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 10
    functionsReached:
    - xmalloc
    - strcmp
    - getenv
    - LoggingSetAgentType
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *GenericAgentConfigNewDefault(AgentType agent_type,
      bool tty_interactive)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistDestroy
      Src: /src/core/libpromises/generic_agent.c:2653,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/generic_agent.c:2654,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/generic_agent.c:2655,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2656,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2657,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2658,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2659,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2660,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2661,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2662,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2663,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - config
    argTypes:
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2649
    functionDepth: 1
    functionLinenumber: 2649
    functionLinenumberEnd: 2666
    functionName: GenericAgentConfigDestroy
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 4
    functionsReached:
    - free
    - RlistDestroy
    - StringSetDestroy
    linkageType: ''
    returnType: void
    signature: void GenericAgentConfigDestroy(GenericAgentConfig *config)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:2670,1
    - Dst: EvalContextSetConfig
      Src: /src/core/libpromises/generic_agent.c:2672,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/generic_agent.c:2676,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/generic_agent.c:2678,1
    - Dst: EvalContextClassGet
      Src: /src/core/libpromises/generic_agent.c:2680,1
    - Dst: FatalError
      Src: /src/core/libpromises/generic_agent.c:2683,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/generic_agent.c:2686,1
    - Dst: EvalContextSetNegatedClasses
      Src: /src/core/libpromises/generic_agent.c:2693,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/generic_agent.c:2697,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:2700,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:2701,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:2704,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:2707,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:2710,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:2713,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:2716,1
    - Dst: LoggingSetColor
      Src: /src/core/libpromises/generic_agent.c:2724,1
    - Dst: EvalContextSetEvalOption
      Src: /src/core/libpromises/generic_agent.c:2729,1
    - Dst: EvalContextSetEvalOption
      Src: /src/core/libpromises/generic_agent.c:2732,1
    - Dst: EvalContextSetIgnoreLocks
      Src: /src/core/libpromises/generic_agent.c:2736,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/generic_agent.c:2740,1
    - Dst: EvalContextSetProfiling
      Src: /src/core/libpromises/generic_agent.c:2743,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - ctx
    - config
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 2669
        line_start: 2669
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 2744
      start: 2668
    functionDepth: 11
    functionLinenumber: 2668
    functionLinenumberEnd: 2744
    functionName: GenericAgentConfigApply
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 5
    functionsReached:
    - EvalContextClassPutHard
    - EvalContextSetProfiling
    - assert
    - StringSetIteratorNext
    - EvalContextClassPutSoft
    - EvalContextSetEvalOption
    - EvalContextSetConfig
    - FatalError
    - LogGetGlobalLevel
    - EvalContextClassGet
    - EvalContextSetNegatedClasses
    - StringSetIteratorInit
    - LoggingSetColor
    - EvalContextSetIgnoreLocks
    linkageType: ''
    returnType: void
    signature: void GenericAgentConfigApply(EvalContext *ctx, const GenericAgentConfig
      *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/generic_agent.c:2750,1
    - Dst: strlen
      Src: /src/core/libpromises/generic_agent.c:2750,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2752,1
    - Dst: snprintf
      Src: /src/core/libpromises/generic_agent.c:2760,1
    - Dst: MapName
      Src: /src/core/libpromises/generic_agent.c:2761,1
    - Dst: access
      Src: /src/core/libpromises/generic_agent.c:2763,1
    - Dst: WriteBuiltinFailsafePolicyToPath
      Src: /src/core/libpromises/generic_agent.c:2765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - inputdir
    - input_file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2746
    functionDepth: 8
    functionLinenumber: 2746
    functionLinenumberEnd: 2768
    functionName: CheckAndGenerateFailsafe
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - access
    - WriteBuiltinFailsafePolicyToPath
    - snprintf
    - strlen
    - MapName
    - Log
    linkageType: ''
    returnType: bool
    signature: bool CheckAndGenerateFailsafe(const char *inputdir, const char *input_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2772,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2773,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2774,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:2776,1
    - Dst: FilePathGetType
      Src: /src/core/libpromises/generic_agent.c:2778,1
    - Dst: StringFormat
      Src: /src/core/libpromises/generic_agent.c:2780,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:2784,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:2787,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/generic_agent.c:2788,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2790,1
    - Dst: xstrdup
      Src: /src/core/libpromises/generic_agent.c:2791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - config
    - inputdir
    - input_file
    argTypes:
    - GenericAgentConfig*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2770
    functionDepth: 4
    functionLinenumber: 2770
    functionLinenumberEnd: 2793
    functionName: GenericAgentConfigSetInputFile
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 13
    functionsReached:
    - StringFormat
    - xstrdup
    - free
    - FilePathGetType
    - ChopLastNode
    linkageType: ''
    returnType: void
    signature: void GenericAgentConfigSetInputFile(GenericAgentConfig *config, const
      char *inputdir, const char *input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistDestroy
      Src: /src/core/libpromises/generic_agent.c:2797,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/generic_agent.c:2798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - config
    - bundlesequence
    argTypes:
    - GenericAgentConfig*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2799
    functionName: GenericAgentConfigSetBundleSequence
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 2
    functionsReached:
    - RlistCopy
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void GenericAgentConfigSetBundleSequence(GenericAgentConfig *config,
      const Rlist *bundlesequence)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/libpromises/generic_agent.c:2804,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/libpromises/generic_agent.c:2806,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/libpromises/generic_agent.c:2809,1
    - Dst: LogLevelFromString
      Src: /src/core/libpromises/generic_agent.c:2811,1
    - Dst: LogSetGlobalSystemLogLevel
      Src: /src/core/libpromises/generic_agent.c:2814,1
    - Dst: cfnet_init
      Src: /src/core/libpromises/generic_agent.c:2817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2801
    functionDepth: 5
    functionLinenumber: 2801
    functionLinenumberEnd: 2818
    functionName: GenericAgentPostLoadInit
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 4
    functionsReached:
    - cfnet_init
    - LogSetGlobalSystemLogLevel
    - EvalContextVariableControlCommonGet
    - LogLevelFromString
    linkageType: ''
    returnType: bool
    signature: bool GenericAgentPostLoadInit(const EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/core/libpromises/generic_agent.c:2822,1
    - Dst: signal
      Src: /src/core/libpromises/generic_agent.c:2823,1
    - Dst: signal
      Src: /src/core/libpromises/generic_agent.c:2824,1
    - Dst: signal
      Src: /src/core/libpromises/generic_agent.c:2825,1
    - Dst: signal
      Src: /src/core/libpromises/generic_agent.c:2826,1
    - Dst: signal
      Src: /src/core/libpromises/generic_agent.c:2827,1
    - Dst: signal
      Src: /src/core/libpromises/generic_agent.c:2828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2820
    functionDepth: 0
    functionLinenumber: 2820
    functionLinenumberEnd: 2829
    functionName: SetupSignalsForAgent
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - signal
    linkageType: ''
    returnType: void
    signature: void SetupSignalsForAgent(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:2833,1
    - Dst: EvalContextClassTableIteratorNewGlobal
      Src: /src/core/libpromises/generic_agent.c:2835,1
    - Dst: SeqNew
      Src: /src/core/libpromises/generic_agent.c:2837,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/generic_agent.c:2839,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2843,1
    - Dst: ClassTableIteratorNext
      Src: /src/core/libpromises/generic_agent.c:2848,1
    - Dst: ClassRefToString
      Src: /src/core/libpromises/generic_agent.c:2850,1
    - Dst: RegexPartialMatch
      Src: /src/core/libpromises/generic_agent.c:2852,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2854,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/generic_agent.c:2859,1
    - Dst: xasprintf
      Src: /src/core/libpromises/generic_agent.c:2862,1
    - Dst: BufferData
      Src: /src/core/libpromises/generic_agent.c:2862,1
    - Dst: NULL_TO_EMPTY_STRING
      Src: /src/core/libpromises/generic_agent.c:2862,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/generic_agent.c:2863,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/generic_agent.c:2865,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2866,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/generic_agent.c:2869,1
    - Dst: SeqSort
      Src: /src/core/libpromises/generic_agent.c:2871,1
    - Dst: printf
      Src: /src/core/libpromises/generic_agent.c:2873,1
    - Dst: SeqLength
      Src: /src/core/libpromises/generic_agent.c:2875,1
    - Dst: SeqAt
      Src: /src/core/libpromises/generic_agent.c:2877,1
    - Dst: printf
      Src: /src/core/libpromises/generic_agent.c:2878,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/generic_agent.c:2881,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libpromises/generic_agent.c:2883,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - regexp
    argTypes:
    - EvalContext*
    - char*
    assertStmts:
    - condition: (regexp != NULL)
      pos:
        line_end: 2832
        line_start: 2832
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 2884
      start: 2831
    functionDepth: 8
    functionLinenumber: 2831
    functionLinenumberEnd: 2884
    functionName: GenericAgentShowContextsFormatted
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - BufferDestroy
    - RegexPartialMatch
    - Log
    - SeqLength
    - free
    - ClassTableIteratorDestroy
    - SeqAppend
    - BufferData
    - StringSetToBuffer
    - SeqDestroy
    - CompileRegex
    - SeqAt
    - assert
    - ClassRefToString
    - xasprintf
    - printf
    - SeqNew
    - RegexDestroy
    - ClassTableIteratorNext
    - NULL_TO_EMPTY_STRING
    - SeqSort
    - EvalContextClassTableIteratorNewGlobal
    linkageType: ''
    returnType: void
    signature: void GenericAgentShowContextsFormatted(EvalContext *ctx, const char
      *regexp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/generic_agent.c:2888,1
    - Dst: EvalContextVariableTableIteratorNew
      Src: /src/core/libpromises/generic_agent.c:2890,1
    - Dst: SeqNew
      Src: /src/core/libpromises/generic_agent.c:2893,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/generic_agent.c:2895,1
    - Dst: Log
      Src: /src/core/libpromises/generic_agent.c:2899,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/generic_agent.c:2903,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/generic_agent.c:2905,1
    - Dst: VariableGetRef
      Src: /src/core/libpromises/generic_agent.c:2905,1
    - Dst: RegexPartialMatch
      Src: /src/core/libpromises/generic_agent.c:2907,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2909,1
    - Dst: StringWriter
      Src: /src/core/libpromises/generic_agent.c:2913,1
    - Dst: VariableGetRval
      Src: /src/core/libpromises/generic_agent.c:2915,1
    - Dst: JsonWriteCompact
      Src: /src/core/libpromises/generic_agent.c:2918,1
    - Dst: RvalContainerValue
      Src: /src/core/libpromises/generic_agent.c:2918,1
    - Dst: RvalWrite
      Src: /src/core/libpromises/generic_agent.c:2922,1
    - Dst: StringIsPrintable
      Src: /src/core/libpromises/generic_agent.c:2926,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/generic_agent.c:2926,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/generic_agent.c:2928,1
    - Dst: VariableGetTags
      Src: /src/core/libpromises/generic_agent.c:2937,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/generic_agent.c:2940,1
    - Dst: VariableGetComment
      Src: /src/core/libpromises/generic_agent.c:2942,1
    - Dst: xasprintf
      Src: /src/core/libpromises/generic_agent.c:2945,1
    - Dst: BufferData
      Src: /src/core/libpromises/generic_agent.c:2947,1
    - Dst: NULL_TO_EMPTY_STRING
      Src: /src/core/libpromises/generic_agent.c:2948,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/generic_agent.c:2950,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/generic_agent.c:2952,1
    - Dst: WriterClose
      Src: /src/core/libpromises/generic_agent.c:2953,1
    - Dst: free
      Src: /src/core/libpromises/generic_agent.c:2954,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/generic_agent.c:2957,1
    - Dst: SeqSort
      Src: /src/core/libpromises/generic_agent.c:2959,1
    - Dst: printf
      Src: /src/core/libpromises/generic_agent.c:2961,1
    - Dst: SeqLength
      Src: /src/core/libpromises/generic_agent.c:2963,1
    - Dst: SeqAt
      Src: /src/core/libpromises/generic_agent.c:2965,1
    - Dst: printf
      Src: /src/core/libpromises/generic_agent.c:2966,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/generic_agent.c:2969,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/libpromises/generic_agent.c:2970,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - ctx
    - regexp
    argTypes:
    - EvalContext*
    - char*
    assertStmts:
    - condition: (regexp != NULL)
      pos:
        line_end: 2887
        line_start: 2887
        source_file: /src/core/libpromises/generic_agent.c
    constantsTouched: []
    func_position:
      end: 2971
      start: 2886
    functionDepth: 8
    functionLinenumber: 2886
    functionLinenumberEnd: 2971
    functionName: GenericAgentShowVariablesFormatted
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 1
    functionsReached:
    - BufferDestroy
    - StringIsPrintable
    - RegexPartialMatch
    - Log
    - SeqLength
    - free
    - VariableGetRef
    - SeqAppend
    - BufferData
    - StringSetToBuffer
    - SeqDestroy
    - EvalContextVariableTableIteratorNew
    - CompileRegex
    - RvalContainerValue
    - JsonWriteCompact
    - RvalWrite
    - VariableTableIteratorNext
    - VariableGetComment
    - SeqAt
    - VarRefToString
    - WriterClose
    - assert
    - xasprintf
    - printf
    - SeqNew
    - RegexDestroy
    - VariableGetTags
    - NULL_TO_EMPTY_STRING
    - StringWriter
    - VariableGetRval
    - StringWriterData
    - VariableTableIteratorDestroy
    - SeqSort
    linkageType: ''
    returnType: void
    signature: void GenericAgentShowVariablesFormatted(EvalContext *ctx, const char
      *regexp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DetectEnvironmentFromPolicy
      Src: /src/core/libpromises/generic_agent.c:2975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2973
    functionDepth: 3
    functionLinenumber: 2973
    functionLinenumberEnd: 2976
    functionName: GenericAgentDetectEnvironmentFromPolicy
    functionSourceFile: /src/core/libpromises/generic_agent.c
    functionUses: 0
    functionsReached:
    - DetectEnvironmentFromPolicy
    linkageType: ''
    returnType: void
    signature: void GenericAgentDetectEnvironmentFromPolicy(EvalContext *ctx, Policy
      *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/monitoring_read.c:113,1
    - Dst: free
      Src: /src/core/libpromises/monitoring_read.c:114,1
    - Dst: free
      Src: /src/core/libpromises/monitoring_read.c:115,1
    - Dst: free
      Src: /src/core/libpromises/monitoring_read.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - slot
    argTypes:
    - MonitoringSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: Nova_FreeSlot
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void Nova_FreeSlot(MonitoringSlot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/monitoring_read.c:125,1
    - Dst: xstrdup
      Src: /src/core/libpromises/monitoring_read.c:127,1
    - Dst: xstrdup
      Src: /src/core/libpromises/monitoring_read.c:128,1
    - Dst: xstrdup
      Src: /src/core/libpromises/monitoring_read.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - name
    - description
    - units
    - expected_minimum
    - expected_maximum
    - consolidable
    argTypes:
    - char*
    - char*
    - char*
    - double
    - double
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: Nova_MakeSlot
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: MonitoringSlot
    signature: "MonitoringSlot *Nova_MakeSlot(const char *name, const char *description,\n
      \                             const char *units,\n                              double
      expected_minimum, double expected_maximum,\n                              bool
      consolidable)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/monitoring_read.c:145,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/monitoring_read.c:145,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/monitoring_read.c:147,1
    - Dst: fileno
      Src: /src/core/libpromises/monitoring_read.c:153,1
    - Dst: fstat
      Src: /src/core/libpromises/monitoring_read.c:155,1
    - Dst: fclose
      Src: /src/core/libpromises/monitoring_read.c:158,1
    - Dst: fgetc
      Src: /src/core/libpromises/monitoring_read.c:171,1
    - Dst: fgets
      Src: /src/core/libpromises/monitoring_read.c:188,1
    - Dst: Log
      Src: /src/core/libpromises/monitoring_read.c:190,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/monitoring_read.c:190,1
    - Dst: sscanf
      Src: /src/core/libpromises/monitoring_read.c:194,1
    - Dst: Log
      Src: /src/core/libpromises/monitoring_read.c:207,1
    - Dst: strcmp
      Src: /src/core/libpromises/monitoring_read.c:210,1
    - Dst: Nova_FreeSlot
      Src: /src/core/libpromises/monitoring_read.c:212,1
    - Dst: Nova_MakeSlot
      Src: /src/core/libpromises/monitoring_read.c:213,1
    - Dst: fclose
      Src: /src/core/libpromises/monitoring_read.c:217,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 140
    functionDepth: 8
    functionLinenumber: 140
    functionLinenumberEnd: 218
    functionName: Nova_LoadSlots
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fgets
    - snprintf
    - Nova_FreeSlot
    - fstat
    - fileno
    - GetStateDir
    - safe_fopen
    - sscanf
    - Nova_MakeSlot
    - Log
    - strcmp
    - fclose
    - fgetc
    linkageType: ''
    returnType: void
    signature: void Nova_LoadSlots(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Nova_LoadSlots
      Src: /src/core/libpromises/monitoring_read.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 9
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: NovaHasSlot
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - Nova_LoadSlots
    linkageType: ''
    returnType: bool
    signature: bool NovaHasSlot(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Nova_LoadSlots
      Src: /src/core/libpromises/monitoring_read.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 9
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: NovaGetSlotName
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - Nova_LoadSlots
    linkageType: ''
    returnType: char
    signature: char *NovaGetSlotName(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Nova_LoadSlots
      Src: /src/core/libpromises/monitoring_read.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 9
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: NovaGetSlotDescription
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - Nova_LoadSlots
    linkageType: ''
    returnType: char
    signature: char *NovaGetSlotDescription(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Nova_LoadSlots
      Src: /src/core/libpromises/monitoring_read.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 9
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: NovaGetSlotUnits
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - Nova_LoadSlots
    linkageType: ''
    returnType: char
    signature: char *NovaGetSlotUnits(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Nova_LoadSlots
      Src: /src/core/libpromises/monitoring_read.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 9
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: NovaGetSlotExpectedMinimum
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - Nova_LoadSlots
    linkageType: ''
    returnType: double
    signature: double NovaGetSlotExpectedMinimum(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Nova_LoadSlots
      Src: /src/core/libpromises/monitoring_read.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 9
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: NovaGetSlotExpectedMaximum
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - Nova_LoadSlots
    linkageType: ''
    returnType: double
    signature: double NovaGetSlotExpectedMaximum(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Nova_LoadSlots
      Src: /src/core/libpromises/monitoring_read.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 9
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: NovaIsSlotConsolidable
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - Nova_LoadSlots
    linkageType: ''
    returnType: bool
    signature: bool NovaIsSlotConsolidable(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/core/libpromises/monitoring_read.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 296
    functionName: WeekBegin
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - gmtime_r
    linkageType: ''
    returnType: time_t
    signature: time_t WeekBegin(time_t time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - time
    - weeks
    argTypes:
    - time_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: SubtractWeeks
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t SubtractWeeks(time_t time, int weeks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: NextShift
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t NextShift(time_t time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/core/libpromises/monitoring_read.c:314,1
    - Dst: snprintf
      Src: /src/core/libpromises/monitoring_read.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - time
    - result
    argTypes:
    - time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 318
    functionName: MakeTimekey
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - gmtime_r
    - snprintf
    linkageType: ''
    returnType: void
    signature: void MakeTimekey(time_t time, char *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeTimekey
      Src: /src/core/libpromises/monitoring_read.c:325,1
    - Dst: ReadDB
      Src: /src/core/libpromises/monitoring_read.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - time
    - result
    argTypes:
    - CF_DB*
    - time_t
    - Averages*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: GetRecordForTime
    functionSourceFile: /src/core/libpromises/monitoring_read.c
    functionUses: 0
    functionsReached:
    - ReadDB
    - MakeTimekey
    linkageType: ''
    returnType: bool
    signature: bool GetRecordForTime(CF_DB *db, time_t time, Averages *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ParseExpression
      Src: /src/core/libpromises/verify_classes.c:45,1
    - Dst: strlen
      Src: /src/core/libpromises/verify_classes.c:45,1
    - Dst: FreeExpression
      Src: /src/core/libpromises/verify_classes.c:49,1
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:52,1
    - Dst: strlen
      Src: /src/core/libpromises/verify_classes.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (res.position >= 0)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/core/libpromises/verify_classes.c
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: ValidClassName
    functionSourceFile: /src/core/libpromises/verify_classes.c
    functionUses: 0
    functionsReached:
    - strlen
    - assert
    - FreeExpression
    - ParseExpression
    linkageType: ''
    returnType: bool
    signature: bool ValidClassName(const char *str)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:58,1
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:59,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:61,1
    - Dst: GetClassContextAttributes
      Src: /src/core/libpromises/verify_classes.c:63,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/verify_classes.c:65,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:67,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/verify_classes.c:68,1
    - Dst: cfPS
      Src: /src/core/libpromises/verify_classes.c:73,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:85,1
    - Dst: VerifyClassCancel
      Src: /src/core/libpromises/verify_classes.c:87,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/verify_classes.c:93,1
    - Dst: cfPS
      Src: /src/core/libpromises/verify_classes.c:95,1
    - Dst: EvalClassExpression
      Src: /src/core/libpromises/verify_classes.c:103,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_classes.c:112,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/verify_classes.c:114,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/verify_classes.c:115,1
    - Dst: xstrdup
      Src: /src/core/libpromises/verify_classes.c:115,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/verify_classes.c:116,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/verify_classes.c:118,1
    - Dst: xstrdup
      Src: /src/core/libpromises/verify_classes.c:118,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:118,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:120,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/verify_classes.c:123,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/libpromises/verify_classes.c:124,1
    - Dst: BufferData
      Src: /src/core/libpromises/verify_classes.c:125,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/verify_classes.c:126,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/verify_classes.c:127,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:135,1
    - Dst: ValidClassName
      Src: /src/core/libpromises/verify_classes.c:138,1
    - Dst: cfPS
      Src: /src/core/libpromises/verify_classes.c:140,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/verify_classes.c:146,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/verify_classes.c:147,1
    - Dst: xstrdup
      Src: /src/core/libpromises/verify_classes.c:147,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/verify_classes.c:149,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/verify_classes.c:151,1
    - Dst: xstrdup
      Src: /src/core/libpromises/verify_classes.c:151,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:151,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/verify_classes.c:154,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:164,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_classes.c:164,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:166,1
    - Dst: EvalContextClassPutSoftTagsSetWithComment
      Src: /src/core/libpromises/verify_classes.c:168,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:174,1
    - Dst: EvalContextClassPutSoftTagsSetWithComment
      Src: /src/core/libpromises/verify_classes.c:176,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:183,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/verify_classes.c:186,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/libpromises/verify_classes.c:187,1
    - Dst: BufferData
      Src: /src/core/libpromises/verify_classes.c:188,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/verify_classes.c:189,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:193,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/verify_classes.c:199,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 3
    argNames:
    - ctx
    - pp
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - ARG_UNUSED*
    assertStmts:
    - condition: (param == NULL)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/core/libpromises/verify_classes.c
    - condition: (pp != NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/libpromises/verify_classes.c
    constantsTouched: []
    func_position:
      end: 207
      start: 56
    functionDepth: 13
    functionLinenumber: 56
    functionLinenumberEnd: 207
    functionName: VerifyClassPromise
    functionSourceFile: /src/core/libpromises/verify_classes.c
    functionUses: 0
    functionsReached:
    - EvalContextClassPutSoftTagsSetWithComment
    - BufferDestroy
    - VerifyClassCancel
    - Log
    - RlistScalarValue
    - PromiseGetConstraintAsList
    - StringSetNew
    - ValidClassName
    - BufferData
    - StringSetToBuffer
    - GetClassContextAttributes
    - StringMatchFull
    - IsDefinedClass
    - strcmp
    - xstrdup
    - PromiseGetBundle
    - CanonifyNameInPlace
    - assert
    - PromiseGetConstraintAsRval
    - EvalContextHeapPersistentSave
    - EvalClassExpression
    - StringSetAdd
    - cfPS
    - StringSetDestroy
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyClassPromise(EvalContext *ctx, const Promise *pp,
      ARG_UNUSED void *param)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RlistLen
      Src: /src/core/libpromises/verify_classes.c:211,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:215,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_classes.c:216,1
    - Dst: IsVarList
      Src: /src/core/libpromises/verify_classes.c:219,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:219,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:221,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:223,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_classes.c:224,1
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:228,1
    - Dst: snprintf
      Src: /src/core/libpromises/verify_classes.c:232,1
    - Dst: getuid
      Src: /src/core/libpromises/verify_classes.c:232,1
    - Dst: StringHash
      Src: /src/core/libpromises/verify_classes.c:233,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/verify_classes.c:244,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:244,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:246,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:248,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_classes.c:249,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/verify_classes.c:253,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - list
    - pp
    argTypes:
    - EvalContext*
    - Rlist*
    - Promise*
    assertStmts:
    - condition: (list)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/core/libpromises/verify_classes.c
    constantsTouched: []
    func_position:
      end: 256
      start: 209
    functionDepth: 9
    functionLinenumber: 209
    functionLinenumberEnd: 256
    functionName: SelectClass
    functionSourceFile: /src/core/libpromises/verify_classes.c
    functionUses: 0
    functionsReached:
    - StringHash
    - snprintf
    - assert
    - IsExpandable
    - EvalContextClassPutSoft
    - PromiseRef
    - getuid
    - Log
    - RlistScalarValue
    - IsVarList
    - RlistLen
    linkageType: ''
    returnType: bool
    signature: bool SelectClass(EvalContext *ctx, const Rlist *list, const Promise
      *pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IntFromString
      Src: /src/core/libpromises/verify_classes.c:265,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:265,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:269,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_classes.c:270,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:279,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_classes.c:280,1
    - Dst: drand48
      Src: /src/core/libpromises/verify_classes.c:284,1
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:285,1
    - Dst: IntFromString
      Src: /src/core/libpromises/verify_classes.c:289,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:289,1
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:295,1
    - Dst: snprintf
      Src: /src/core/libpromises/verify_classes.c:298,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:298,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:300,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_classes.c:300,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/verify_classes.c:302,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/libpromises/verify_classes.c:307,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - dist
    - pp
    argTypes:
    - EvalContext*
    - Rlist*
    - Promise*
    assertStmts:
    - condition: (0 <= fluct && fluct < total)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/core/libpromises/verify_classes.c
    - condition: (rp)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/core/libpromises/verify_classes.c
    constantsTouched: []
    func_position:
      end: 312
      start: 258
    functionDepth: 9
    functionLinenumber: 258
    functionLinenumberEnd: 312
    functionName: DistributeClass
    functionSourceFile: /src/core/libpromises/verify_classes.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - snprintf
    - assert
    - EvalContextClassPutSoft
    - drand48
    - PromiseRef
    - Log
    - strcmp
    - RlistScalarValue
    - IntFromString
    linkageType: ''
    returnType: bool
    signature: bool DistributeClass(EvalContext *ctx, const Rlist *dist, const Promise
      *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_classes.c:324,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_classes.c:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - list
    - logic
    argTypes:
    - EvalContext*
    - Rlist*
    - enum combine_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 350
    functionName: EvalBoolCombination
    functionSourceFile: /src/core/libpromises/verify_classes.c
    functionUses: 0
    functionsReached:
    - IsDefinedClass
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: "bool EvalBoolCombination(EvalContext *ctx, const Rlist *list,\n                                enum
      combine_t logic)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:354,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:358,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_classes.c:362,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_classes.c:367,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/verify_classes.c:369,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:371,1
    - Dst: EvalContextHeapPersistentRemove
      Src: /src/core/libpromises/verify_classes.c:374,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/verify_classes.c:385,1
    - Dst: FnCallEvaluate
      Src: /src/core/libpromises/verify_classes.c:387,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/verify_classes.c:387,1
    - Dst: FnCallDestroy
      Src: /src/core/libpromises/verify_classes.c:389,1
    - Dst: EvaluateFinalRval
      Src: /src/core/libpromises/verify_classes.c:396,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/verify_classes.c:396,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_classes.c:398,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/verify_classes.c:404,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_classes.c:405,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:410,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_classes.c:413,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/verify_classes.c:413,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:416,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_classes.c:419,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/verify_classes.c:419,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:425,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_classes.c:426,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:431,1
    - Dst: SelectClass
      Src: /src/core/libpromises/verify_classes.c:433,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:437,1
    - Dst: DistributeClass
      Src: /src/core/libpromises/verify_classes.c:439,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:443,1
    - Dst: EvalBoolCombination
      Src: /src/core/libpromises/verify_classes.c:445,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:447,1
    - Dst: EvalBoolCombination
      Src: /src/core/libpromises/verify_classes.c:449,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_classes.c:451,1
    - Dst: EvalBoolCombination
      Src: /src/core/libpromises/verify_classes.c:453,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - ctx
    - cp
    - pp
    argTypes:
    - EvalContext*
    - Constraint*
    - Promise*
    assertStmts:
    - condition: (pp)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/core/libpromises/verify_classes.c
    constantsTouched: []
    func_position:
      end: 457
      start: 352
    functionDepth: 10
    functionLinenumber: 352
    functionLinenumberEnd: 457
    functionName: EvalClassExpression
    functionSourceFile: /src/core/libpromises/verify_classes.c
    functionUses: 1
    functionsReached:
    - RvalDestroy
    - RvalFnCallValue
    - PromiseGetConstraintAsInt
    - ExpandPrivateRval
    - RvalScalarValue
    - assert
    - FnCallEvaluate
    - DistributeClass
    - PromiseRef
    - SelectClass
    - EvalContextHeapPersistentRemove
    - PromiseGetPolicy
    - IsDefinedClass
    - Log
    - strcmp
    - EvaluateFinalRval
    - EvalBoolCombination
    - FnCallDestroy
    linkageType: ''
    returnType: bool
    signature: bool EvalClassExpression(EvalContext *ctx, Constraint *cp, const Promise
      *pp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:472,1
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:473,1
    - Dst: assert
      Src: /src/core/libpromises/verify_classes.c:474,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:480,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/verify_classes.c:490,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/verify_classes.c:491,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/verify_classes.c:492,1
    - Dst: cfPS
      Src: /src/core/libpromises/verify_classes.c:494,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/verify_classes.c:502,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_classes.c:508,1
    - Dst: ValidClassName
      Src: /src/core/libpromises/verify_classes.c:513,1
    - Dst: cfPS
      Src: /src/core/libpromises/verify_classes.c:515,1
    - Dst: EvalContextClassGet
      Src: /src/core/libpromises/verify_classes.c:524,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:527,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_classes.c:533,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:535,1
    - Dst: Log
      Src: /src/core/libpromises/verify_classes.c:541,1
    - Dst: EvalContextHeapPersistentRemove
      Src: /src/core/libpromises/verify_classes.c:543,1
    - Dst: ClassRefParse
      Src: /src/core/libpromises/verify_classes.c:545,1
    - Dst: EvalContextClassRemove
      Src: /src/core/libpromises/verify_classes.c:546,1
    - Dst: ClassRefDestroy
      Src: /src/core/libpromises/verify_classes.c:547,1
    - Dst: EvalContextStackFrameRemoveSoft
      Src: /src/core/libpromises/verify_classes.c:549,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - pp
    - a
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/core/libpromises/verify_classes.c
    - condition: (a != NULL)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/core/libpromises/verify_classes.c
    - condition: (ctx != NULL)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/core/libpromises/verify_classes.c
    constantsTouched: []
    func_position:
      end: 552
      start: 470
    functionDepth: 13
    functionLinenumber: 470
    functionLinenumberEnd: 552
    functionName: VerifyClassCancel
    functionSourceFile: /src/core/libpromises/verify_classes.c
    functionUses: 1
    functionsReached:
    - ClassRefDestroy
    - PromiseGetConstraint
    - assert
    - ClassRefParse
    - cfPS
    - EvalContextHeapPersistentRemove
    - Log
    - IsDefinedClass
    - EvalContextClassGet
    - EvalContextStackFrameRemoveSoft
    - EvalContextClassRemove
    - ValidClassName
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyClassCancel(EvalContext *ctx, const Promise *pp,
      Attributes *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: extension_libraries_disable
    functionSourceFile: /src/core/libpromises/extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void extension_libraries_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/assoc.c:33,1
    - Dst: xstrdup
      Src: /src/core/libpromises/assoc.c:37,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/assoc.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - lval
    - rval
    - dt
    argTypes:
    - char*
    - Rval
    - DataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: NewAssoc
    functionSourceFile: /src/core/libpromises/assoc.c
    functionUses: 1
    functionsReached:
    - RvalCopy
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: CfAssoc
    signature: CfAssoc *NewAssoc(const char *lval, Rval rval, DataType dt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/assoc.c:53,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/assoc.c:54,1
    - Dst: free
      Src: /src/core/libpromises/assoc.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ap
    argTypes:
    - CfAssoc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: DeleteAssoc
    functionSourceFile: /src/core/libpromises/assoc.c
    functionUses: 1
    functionsReached:
    - free
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void DeleteAssoc(CfAssoc *ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pstat_getproc
      Src: /src/core/libpromises/process_hpux.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: GetProcessStartTime
    functionSourceFile: /src/core/libpromises/process_hpux.c
    functionUses: 17
    functionsReached:
    - pstat_getproc
    linkageType: ''
    returnType: time_t
    signature: time_t GetProcessStartTime(pid_t pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pstat_getproc
      Src: /src/core/libpromises/process_hpux.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 64
    functionName: GetProcessState
    functionSourceFile: /src/core/libpromises/process_hpux.c
    functionUses: 17
    functionsReached:
    - pstat_getproc
    linkageType: ''
    returnType: ProcessState
    signature: ProcessState GetProcessState(pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/core/libpromises/timeout.c:32,1
    - Dst: alarm
      Src: /src/core/libpromises/timeout.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: SetTimeOut
    functionSourceFile: /src/core/libpromises/timeout.c
    functionUses: 0
    functionsReached:
    - alarm
    - signal
    linkageType: ''
    returnType: void
    signature: void SetTimeOut(int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/core/libpromises/timeout.c:40,1
    - Dst: Log
      Src: /src/core/libpromises/timeout.c:44,1
    - Dst: GracefulTerminate
      Src: /src/core/libpromises/timeout.c:45,1
    - Dst: Log
      Src: /src/core/libpromises/timeout.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 10
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: TimeOut
    functionSourceFile: /src/core/libpromises/timeout.c
    functionUses: 0
    functionsReached:
    - alarm
    - Log
    - GracefulTerminate
    linkageType: ''
    returnType: void
    signature: void TimeOut()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/libpromises/timeout.c:59,1
    - Dst: Log
      Src: /src/core/libpromises/timeout.c:61,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/timeout.c:61,1
    - Dst: Log
      Src: /src/core/libpromises/timeout.c:65,1
    - Dst: ctime
      Src: /src/core/libpromises/timeout.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: SetReferenceTime
    functionSourceFile: /src/core/libpromises/timeout.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - Log
    - time
    - ctime
    linkageType: ''
    returnType: time_t
    signature: time_t SetReferenceTime(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_copy.c:42,1
    - Dst: assert
      Src: /src/core/libpromises/files_copy.c:43,1
    - Dst: safe_open
      Src: /src/core/libpromises/files_copy.c:45,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:48,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:49,1
    - Dst: unlink
      Src: /src/core/libpromises/files_copy.c:55,1
    - Dst: safe_open_create_perms
      Src: /src/core/libpromises/files_copy.c:57,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:62,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:64,1
    - Dst: close
      Src: /src/core/libpromises/files_copy.c:65,1
    - Dst: fstat
      Src: /src/core/libpromises/files_copy.c:71,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:73,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:74,1
    - Dst: close
      Src: /src/core/libpromises/files_copy.c:75,1
    - Dst: close
      Src: /src/core/libpromises/files_copy.c:76,1
    - Dst: FileSparseCopy
      Src: /src/core/libpromises/files_copy.c:82,1
    - Dst: ST_BLKSIZE
      Src: /src/core/libpromises/files_copy.c:83,1
    - Dst: unlink
      Src: /src/core/libpromises/files_copy.c:87,1
    - Dst: close
      Src: /src/core/libpromises/files_copy.c:88,1
    - Dst: close
      Src: /src/core/libpromises/files_copy.c:89,1
    - Dst: FileSparseClose
      Src: /src/core/libpromises/files_copy.c:94,1
    - Dst: unlink
      Src: /src/core/libpromises/files_copy.c:98,1
    - Dst: close
      Src: /src/core/libpromises/files_copy.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - source
    - destination
    - mode
    argTypes:
    - char*
    - char*
    - int
    assertStmts:
    - condition: (source != NULL)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/core/libpromises/files_copy.c
    - condition: (destination != NULL)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/core/libpromises/files_copy.c
    constantsTouched: []
    func_position:
      end: 103
      start: 39
    functionDepth: 11
    functionLinenumber: 39
    functionLinenumberEnd: 103
    functionName: CopyRegularFileDiskPerms
    functionSourceFile: /src/core/libpromises/files_copy.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - unlink
    - FileSparseClose
    - safe_open
    - assert
    - fstat
    - safe_open_create_perms
    - ST_BLKSIZE
    - Log
    - FileSparseCopy
    - close
    linkageType: ''
    returnType: bool
    signature: "bool CopyRegularFileDiskPerms(const char *source, const char *destination,\n
      \                             int mode)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_copy.c:107,1
    - Dst: assert
      Src: /src/core/libpromises/files_copy.c:108,1
    - Dst: safe_open
      Src: /src/core/libpromises/files_copy.c:112,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:115,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:116,1
    - Dst: fstat
      Src: /src/core/libpromises/files_copy.c:122,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:124,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:125,1
    - Dst: unlink
      Src: /src/core/libpromises/files_copy.c:131,1
    - Dst: safe_open_create_perms
      Src: /src/core/libpromises/files_copy.c:133,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:138,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:140,1
    - Dst: FileSparseCopy
      Src: /src/core/libpromises/files_copy.c:146,1
    - Dst: ST_BLKSIZE
      Src: /src/core/libpromises/files_copy.c:147,1
    - Dst: FileSparseClose
      Src: /src/core/libpromises/files_copy.c:150,1
    - Dst: unlink
      Src: /src/core/libpromises/files_copy.c:155,1
    - Dst: close
      Src: /src/core/libpromises/files_copy.c:161,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - source
    - destination
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (source != NULL)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/core/libpromises/files_copy.c
    - condition: (destination != NULL)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/core/libpromises/files_copy.c
    constantsTouched: []
    func_position:
      end: 164
      start: 105
    functionDepth: 11
    functionLinenumber: 105
    functionLinenumberEnd: 164
    functionName: CopyRegularFileDisk
    functionSourceFile: /src/core/libpromises/files_copy.c
    functionUses: 12
    functionsReached:
    - GetErrorStr
    - unlink
    - FileSparseClose
    - safe_open
    - assert
    - fstat
    - safe_open_create_perms
    - ST_BLKSIZE
    - Log
    - FileSparseCopy
    - close
    linkageType: ''
    returnType: bool
    signature: bool CopyRegularFileDisk(const char *source, const char *destination)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/files_copy.c:170,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:172,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:172,1
    - Dst: safe_chmod
      Src: /src/core/libpromises/files_copy.c:176,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:178,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:178,1
    - Dst: safe_chown
      Src: /src/core/libpromises/files_copy.c:182,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:184,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:184,1
    - Dst: CopyFileExtendedAttributesDisk
      Src: /src/core/libpromises/files_copy.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - source
    - destination
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 8
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: CopyFilePermissionsDisk
    functionSourceFile: /src/core/libpromises/files_copy.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - stat
    - CopyFileExtendedAttributesDisk
    - safe_chmod
    - safe_chown
    - Log
    linkageType: ''
    returnType: bool
    signature: bool CopyFilePermissionsDisk(const char *source, const char *destination)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: llistxattr
      Src: /src/core/libpromises/files_copy.c:203,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:216,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:217,1
    - Dst: strlen
      Src: /src/core/libpromises/files_copy.c:226,1
    - Dst: lgetxattr
      Src: /src/core/libpromises/files_copy.c:229,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:238,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:239,1
    - Dst: lgetxattr
      Src: /src/core/libpromises/files_copy.c:244,1
    - Dst: memcmp
      Src: /src/core/libpromises/files_copy.c:250,1
    - Dst: lsetxattr
      Src: /src/core/libpromises/files_copy.c:256,1
    - Dst: Log
      Src: /src/core/libpromises/files_copy.c:265,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_copy.c:266,1
    - Dst: CopyACLs
      Src: /src/core/libpromises/files_copy.c:278,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 3
    argNames:
    - source
    - destination
    - change
    argTypes:
    - char*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 196
    functionDepth: 8
    functionLinenumber: 196
    functionLinenumberEnd: 285
    functionName: CopyFileExtendedAttributesDisk
    functionSourceFile: /src/core/libpromises/files_copy.c
    functionUses: 1
    functionsReached:
    - llistxattr
    - GetErrorStr
    - strlen
    - lsetxattr
    - lgetxattr
    - CopyACLs
    - Log
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool CopyFileExtendedAttributesDisk(const char *source, const char
      *destination, bool *change)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/processes_select.c:150,1
    - Dst: assert
      Src: /src/core/libpromises/processes_select.c:151,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/processes_select.c:153,1
    - Dst: memset
      Src: /src/core/libpromises/processes_select.c:156,1
    - Dst: SplitProcLine
      Src: /src/core/libpromises/processes_select.c:158,1
    - Dst: ApplyPlatformExtraTable
      Src: /src/core/libpromises/processes_select.c:165,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:169,1
    - Dst: SelectProcRegexMatch
      Src: /src/core/libpromises/processes_select.c:173,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:189,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/processes_select.c:191,1
    - Dst: SelectProcRegexMatch
      Src: /src/core/libpromises/processes_select.c:193,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/processes_select.c:193,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:195,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:195,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/processes_select.c:200,1
    - Dst: SelectProcRangeMatch
      Src: /src/core/libpromises/processes_select.c:205,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:207,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:207,1
    - Dst: SelectProcRangeMatch
      Src: /src/core/libpromises/processes_select.c:214,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:216,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:216,1
    - Dst: SelectProcRangeMatch
      Src: /src/core/libpromises/processes_select.c:223,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:225,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:225,1
    - Dst: SelectProcRangeMatch
      Src: /src/core/libpromises/processes_select.c:232,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:234,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:234,1
    - Dst: SelectProcRangeMatch
      Src: /src/core/libpromises/processes_select.c:241,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:243,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:243,1
    - Dst: SelectProcTimeCounterRangeMatch
      Src: /src/core/libpromises/processes_select.c:250,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:252,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:252,1
    - Dst: SelectProcTimeAbsRangeMatch
      Src: /src/core/libpromises/processes_select.c:259,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:262,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:262,1
    - Dst: SelectProcRangeMatch
      Src: /src/core/libpromises/processes_select.c:269,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:271,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:271,1
    - Dst: SelectProcRangeMatch
      Src: /src/core/libpromises/processes_select.c:278,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:280,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:280,1
    - Dst: SelectProcRegexMatch
      Src: /src/core/libpromises/processes_select.c:287,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:289,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:289,1
    - Dst: SelectProcRegexMatch
      Src: /src/core/libpromises/processes_select.c:296,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:298,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:298,1
    - Dst: SelectProcRegexMatch
      Src: /src/core/libpromises/processes_select.c:305,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/processes_select.c:307,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:307,1
    - Dst: StringSetSize
      Src: /src/core/libpromises/processes_select.c:316,1
    - Dst: EvalProcessResult
      Src: /src/core/libpromises/processes_select.c:318,1
    - Dst: EvalProcessResult
      Src: /src/core/libpromises/processes_select.c:322,1
    - Dst: StringWriter
      Src: /src/core/libpromises/processes_select.c:326,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/processes_select.c:327,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/processes_select.c:328,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/processes_select.c:329,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/processes_select.c:331,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/processes_select.c:333,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/processes_select.c:334,1
    - Dst: EvalProcessResult
      Src: /src/core/libpromises/processes_select.c:337,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/processes_select.c:337,1
    - Dst: WriterClose
      Src: /src/core/libpromises/processes_select.c:338,1
    - Dst: EvalProcessResult
      Src: /src/core/libpromises/processes_select.c:343,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/processes_select.c:347,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:351,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 131
    argCount: 8
    argNames:
    - procentry
    - pstime
    - names
    - start
    - end
    - process_regex
    - a
    - attrselect
    argTypes:
    - char*
    - time_t
    - char**
    - int*
    - int*
    - char*
    - ProcessSelect*
    - bool
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/core/libpromises/processes_select.c
    - condition: (process_regex)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/core/libpromises/processes_select.c
    constantsTouched: []
    func_position:
      end: 355
      start: 137
    functionDepth: 10
    functionLinenumber: 137
    functionLinenumberEnd: 355
    functionName: SelectProcess
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - WriterWriteChar
    - Log
    - RlistScalarValue
    - free
    - StringSetNew
    - WriterWrite
    - RlistFnCallValue
    - SelectProcRegexMatch
    - xstrdup
    - memset
    - WriterClose
    - SelectProcTimeAbsRangeMatch
    - EvalProcessResult
    - assert
    - LogDebug
    - StringSetContains
    - SelectProcTimeCounterRangeMatch
    - StringSetSize
    - ApplyPlatformExtraTable
    - StringSetIteratorInit
    - StringSetAdd
    - StringSetIteratorNext
    - StringWriter
    - StringSetDestroy
    - StringWriterData
    - SelectProcRangeMatch
    - SplitProcLine
    linkageType: ''
    returnType: bool
    signature: "bool SelectProcess(const char *procentry,\n                          time_t
      pstime,\n                          char **names,\n                          int
      *start,\n                          int *end,\n                          const
      char *process_regex,\n                          const ProcessSelect *a,\n                          bool
      attrselect)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/processes_select.c:359,1
    - Dst: GetProcessColumnNames
      Src: /src/core/libpromises/processes_select.c:372,1
    - Dst: time
      Src: /src/core/libpromises/processes_select.c:375,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/processes_select.c:379,1
    - Dst: SelectProcess
      Src: /src/core/libpromises/processes_select.c:384,1
    - Dst: ExtractPid
      Src: /src/core/libpromises/processes_select.c:389,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:393,1
    - Dst: PrependItem
      Src: /src/core/libpromises/processes_select.c:397,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:403,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - process_name
    - a
    - attrselect
    argTypes:
    - char*
    - ProcessSelect*
    - bool
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/core/libpromises/processes_select.c
    constantsTouched: []
    func_position:
      end: 407
      start: 357
    functionDepth: 11
    functionLinenumber: 357
    functionLinenumberEnd: 407
    functionName: SelectProcesses
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 3
    functionsReached:
    - SelectProcess
    - assert
    - GetProcessColumnNames
    - Log
    - PrependItem
    - ExtractPid
    - free
    - NULL_OR_EMPTY
    - time
    linkageType: ''
    returnType: Item
    signature: Item *SelectProcesses(const char *process_name, const ProcessSelect
      *a, bool attrselect)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetProcColumnIndex
      Src: /src/core/libpromises/processes_select.c:419,1
    - Dst: IntFromString
      Src: /src/core/libpromises/processes_select.c:421,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:425,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - name1
    - name2
    - min
    - max
    - names
    - line
    argTypes:
    - char*
    - char*
    - int
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 409
    functionDepth: 9
    functionLinenumber: 409
    functionLinenumberEnd: 443
    functionName: SelectProcRangeMatch
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 1
    functionsReached:
    - GetProcColumnIndex
    - Log
    - IntFromString
    linkageType: ''
    returnType: bool
    signature: bool SelectProcRangeMatch(char *name1, char *name2, int min, int max,
      char **names, char **line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libpromises/processes_select.c:457,1
    - Dst: sscanf
      Src: /src/core/libpromises/processes_select.c:463,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:471,1
    - Dst: assert
      Src: /src/core/libpromises/processes_select.c:476,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (got > 2)
      pos:
        line_end: 475
        line_start: 475
        source_file: /src/core/libpromises/processes_select.c
    constantsTouched: []
    func_position:
      end: 489
      start: 447
    functionDepth: 8
    functionLinenumber: 447
    functionLinenumberEnd: 489
    functionName: TimeCounter2Int
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - sscanf
    - assert
    - Log
    - LogDebug
    linkageType: ''
    returnType: long
    signature: long TimeCounter2Int(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetProcColumnIndex
      Src: /src/core/libpromises/processes_select.c:498,1
    - Dst: TimeCounter2Int
      Src: /src/core/libpromises/processes_select.c:501,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:505,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:513,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - name1
    - name2
    - min
    - max
    - names
    - line
    argTypes:
    - char*
    - char*
    - time_t
    - time_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 491
    functionDepth: 9
    functionLinenumber: 491
    functionLinenumberEnd: 529
    functionName: SelectProcTimeCounterRangeMatch
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 1
    functionsReached:
    - GetProcColumnIndex
    - TimeCounter2Int
    - Log
    - LogDebug
    linkageType: ''
    returnType: bool
    signature: bool SelectProcTimeCounterRangeMatch(char *name1, char *name2, time_t
      min, time_t max, char **names, char **line)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/core/libpromises/processes_select.c:539,1
    - Dst: sscanf
      Src: /src/core/libpromises/processes_select.c:546,1
    - Dst: sscanf
      Src: /src/core/libpromises/processes_select.c:557,1
    - Dst: Month2Int
      Src: /src/core/libpromises/processes_select.c:559,1
    - Dst: sscanf
      Src: /src/core/libpromises/processes_select.c:573,1
    - Dst: memset
      Src: /src/core/libpromises/processes_select.c:588,1
    - Dst: mktime
      Src: /src/core/libpromises/processes_select.c:597,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 598
    functionName: TimeAbs2Int
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - localtime_r
    - sscanf
    - Month2Int
    - mktime
    - memset
    linkageType: ''
    returnType: time_t
    signature: time_t TimeAbs2Int(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetProcColumnIndex
      Src: /src/core/libpromises/processes_select.c:610,1
    - Dst: TimeAbs2Int
      Src: /src/core/libpromises/processes_select.c:612,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:616,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:623,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - name1
    - name2
    - min
    - max
    - names
    - line
    argTypes:
    - char*
    - char*
    - time_t
    - time_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 600
    functionDepth: 8
    functionLinenumber: 600
    functionLinenumberEnd: 634
    functionName: SelectProcTimeAbsRangeMatch
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 1
    functionsReached:
    - GetProcColumnIndex
    - TimeAbs2Int
    - Log
    linkageType: ''
    returnType: bool
    signature: bool SelectProcTimeAbsRangeMatch(char *name1, char *name2, time_t min,
      time_t max, char **names, char **line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetProcColumnIndex
      Src: /src/core/libpromises/processes_select.c:649,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/processes_select.c:653,1
    - Dst: StringMatch
      Src: /src/core/libpromises/processes_select.c:658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - name1
    - name2
    - regex
    - anchored
    - colNames
    - line
    argTypes:
    - char*
    - char*
    - char*
    - bool
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 663
    functionName: SelectProcRegexMatch
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 1
    functionsReached:
    - StringMatch
    - GetProcColumnIndex
    - StringMatchFull
    linkageType: ''
    returnType: bool
    signature: "bool SelectProcRegexMatch(const char *name1, const char *name2,\n
      \                                const char *regex, bool anchored,\n                                 char
      **colNames, char **line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/processes_select.c:675,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/processes_select.c:676,1
    - Dst: strlcat
      Src: /src/core/libpromises/processes_select.c:677,1
    - Dst: strlcat
      Src: /src/core/libpromises/processes_select.c:678,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:682,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - prefix_spaces
    - len
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 665
    functionDepth: 8
    functionLinenumber: 665
    functionLinenumberEnd: 684
    functionName: PrintStringIndexLine
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - LogDebug
    - strlcat
    - PRINTSIZE
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void PrintStringIndexLine(int prefix_spaces, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetProcColumnIndex
      Src: /src/core/libpromises/processes_select.c:694,1
    - Dst: TimeCounter2Int
      Src: /src/core/libpromises/processes_select.c:697,1
    - Dst: GetProcColumnIndex
      Src: /src/core/libpromises/processes_select.c:700,1
    - Dst: sscanf
      Src: /src/core/libpromises/processes_select.c:702,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:706,1
    - Dst: ctime
      Src: /src/core/libpromises/processes_select.c:708,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:710,1
    - Dst: xasprintf
      Src: /src/core/libpromises/processes_select.c:711,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - line
    - pstime
    - names
    - fields
    argTypes:
    - char*
    - time_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 686
    functionDepth: 9
    functionLinenumber: 686
    functionLinenumberEnd: 721
    functionName: MaybeFixStartTime
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - ctime
    - TimeCounter2Int
    - GetProcColumnIndex
    - LogDebug
    - xasprintf
    - sscanf
    - Log
    - free
    linkageType: ''
    returnType: void
    signature: "void MaybeFixStartTime(const char *line,\n                              time_t
      pstime,\n                              char **names,\n                              char
      **fields)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/processes_select.c:740,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:742,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/processes_select.c:747,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:749,1
    - Dst: PrintStringIndexLine
      Src: /src/core/libpromises/processes_select.c:751,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:836,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:837,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:843,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:845,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:848,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:854,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:859,1
    - Dst: strncmp
      Src: /src/core/libpromises/processes_select.c:861,1
    - Dst: strncmp
      Src: /src/core/libpromises/processes_select.c:862,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:864,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:887,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:890,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:896,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:902,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:903,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:904,1
    - Dst: StringEqual
      Src: /src/core/libpromises/processes_select.c:905,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:913,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:925,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:934,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:937,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:944,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:951,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:962,1
    - Dst: isalpha
      Src: /src/core/libpromises/processes_select.c:969,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:973,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:980,1
    - Dst: isdigit
      Src: /src/core/libpromises/processes_select.c:981,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/processes_select.c:984,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:987,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:991,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:1001,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:1012,1
    - Dst: isdigit
      Src: /src/core/libpromises/processes_select.c:1021,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:1034,1
    - Dst: xstrndup
      Src: /src/core/libpromises/processes_select.c:1041,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:1042,1
    - Dst: MaybeFixStartTime
      Src: /src/core/libpromises/processes_select.c:1050,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 126
    argCount: 7
    argNames:
    - line
    - pstime
    - names
    - start
    - end
    - pca
    - fields
    argTypes:
    - char*
    - time_t
    - char**
    - int*
    - int*
    - PsColumnAlgorithm
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 727
    functionDepth: 10
    functionLinenumber: 727
    functionLinenumberEnd: 1053
    functionName: SplitProcLine
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 10
    functionsReached:
    - strncmp
    - isalpha
    - strlen
    - LogDebug
    - isdigit
    - isspace
    - LogGetGlobalLevel
    - Log
    - strcmp
    - xstrdup
    - PrintStringIndexLine
    - xsnprintf
    - xstrndup
    - MaybeFixStartTime
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: "bool SplitProcLine(const char *line,\n                          time_t
      pstime,\n                          char **names,\n                          int
      *start,\n                          int *end,\n                          PsColumnAlgorithm
      pca,\n                          char **fields)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:1061,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:1062,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:1068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - name1
    - name2
    - names
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1057
    functionDepth: 8
    functionLinenumber: 1057
    functionLinenumberEnd: 1073
    functionName: GetProcColumnIndex
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 5
    functionsReached:
    - LogDebug
    - strcmp
    linkageType: ''
    returnType: int
    signature: int GetProcColumnIndex(const char *name1, const char *name2, char **names)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/processes_select.c:1085,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1089,1
    - Dst: time
      Src: /src/core/libpromises/processes_select.c:1093,1
    - Dst: GetProcessColumnNames
      Src: /src/core/libpromises/processes_select.c:1095,1
    - Dst: memset
      Src: /src/core/libpromises/processes_select.c:1100,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/processes_select.c:1102,1
    - Dst: SplitProcLine
      Src: /src/core/libpromises/processes_select.c:1107,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1110,1
    - Dst: ApplyPlatformExtraTable
      Src: /src/core/libpromises/processes_select.c:1114,1
    - Dst: SelectProcRegexMatch
      Src: /src/core/libpromises/processes_select.c:1116,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1124,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - procNameRegex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1077
    functionDepth: 11
    functionLinenumber: 1077
    functionLinenumberEnd: 1134
    functionName: IsProcessNameRunning
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - SplitProcLine
    - GetProcessColumnNames
    - ApplyPlatformExtraTable
    - Log
    - SelectProcRegexMatch
    - free
    - NULL_OR_EMPTY
    - time
    - memset
    linkageType: ''
    returnType: bool
    signature: bool IsProcessNameRunning(char *procNameRegex)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/processes_select.c:1142,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:1144,1
    - Dst: PrintStringIndexLine
      Src: /src/core/libpromises/processes_select.c:1146,1
    - Dst: strlen
      Src: /src/core/libpromises/processes_select.c:1146,1
    - Dst: isspace
      Src: /src/core/libpromises/processes_select.c:1161,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:1165,1
    - Dst: strspn
      Src: /src/core/libpromises/processes_select.c:1169,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1177,1
    - Dst: sscanf
      Src: /src/core/libpromises/processes_select.c:1197,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:1199,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:1201,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:1203,1
    - Dst: LogDebug
      Src: /src/core/libpromises/processes_select.c:1210,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - proc
    - names
    - start
    - end
    argTypes:
    - char*
    - char**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1137
    functionDepth: 9
    functionLinenumber: 1137
    functionLinenumberEnd: 1213
    functionName: GetProcessColumnNames
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 11
    functionsReached:
    - strlen
    - LogDebug
    - isspace
    - strspn
    - sscanf
    - LogGetGlobalLevel
    - Log
    - xstrdup
    - PrintStringIndexLine
    linkageType: ''
    returnType: void
    signature: void GetProcessColumnNames(const char *proc, char **names, int *start,
      int *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/libpromises/processes_select.c:1220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1228
    functionName: GetProcessOptions
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *GetProcessOptions(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:1237,1
    - Dst: isalnum
      Src: /src/core/libpromises/processes_select.c:1251,1
    - Dst: sscanf
      Src: /src/core/libpromises/processes_select.c:1265,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - psentry
    - names
    - end
    argTypes:
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1272
    functionName: ExtractPid
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 1
    functionsReached:
    - sscanf
    - isalnum
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ExtractPid(char *psentry, char **names, int *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pid1
    - pid2
    - user_data
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1295
    functionName: PidListCompare
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PidListCompare(const void *pid1, const void *pid2, ARG_UNUSED void
      *user_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_popen
      Src: /src/core/libpromises/processes_select.c:1309,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1312,1
    - Dst: xmalloc
      Src: /src/core/libpromises/processes_select.c:1317,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/processes_select.c:1322,1
    - Dst: feof
      Src: /src/core/libpromises/processes_select.c:1325,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1327,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/processes_select.c:1327,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/processes_select.c:1328,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1329,1
    - Dst: Chop
      Src: /src/core/libpromises/processes_select.c:1337,1
    - Dst: GetProcessColumnNames
      Src: /src/core/libpromises/processes_select.c:1340,1
    - Dst: ExtractPid
      Src: /src/core/libpromises/processes_select.c:1344,1
    - Dst: strspn
      Src: /src/core/libpromises/processes_select.c:1346,1
    - Dst: strcspn
      Src: /src/core/libpromises/processes_select.c:1347,1
    - Dst: strspn
      Src: /src/core/libpromises/processes_select.c:1348,1
    - Dst: strcspn
      Src: /src/core/libpromises/processes_select.c:1349,1
    - Dst: strncmp
      Src: /src/core/libpromises/processes_select.c:1351,1
    - Dst: strncmp
      Src: /src/core/libpromises/processes_select.c:1353,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/processes_select.c:1357,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/processes_select.c:1361,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/processes_select.c:1367,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1368,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - pidlist
    - rootpidlist
    argTypes:
    - Seq*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1300
    functionDepth: 11
    functionLinenumber: 1300
    functionLinenumberEnd: 1370
    functionName: ZLoadProcesstable
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - strncmp
    - strcspn
    - cf_popen
    - feof
    - strspn
    - cf_pclose
    - xmalloc
    - Log
    - GetProcessColumnNames
    - ExtractPid
    - Chop
    - free
    - CfReadLine
    - SeqAppend
    linkageType: ''
    returnType: int
    signature: int ZLoadProcesstable(Seq *pidlist, Seq *rootpidlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLookup
      Src: /src/core/libpromises/processes_select.c:1373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - pid
    argTypes:
    - Seq*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1381
    functionName: PidInSeq
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - SeqLookup
    linkageType: ''
    returnType: bool
    signature: bool PidInSeq(Seq *list, int pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PidInSeq
      Src: /src/core/libpromises/processes_select.c:1386,1
    - Dst: PidInSeq
      Src: /src/core/libpromises/processes_select.c:1386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pid
    - pidlist
    - rootpidlist
    argTypes:
    - int
    - Seq*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1384
    functionDepth: 2
    functionLinenumber: 1384
    functionLinenumberEnd: 1394
    functionName: IsGlobalProcess
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - PidInSeq
    linkageType: ''
    returnType: int
    signature: int IsGlobalProcess(int pid, Seq *pidlist, Seq *rootpidlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExtractPid
      Src: /src/core/libpromises/processes_select.c:1397,1
    - Dst: PidInSeq
      Src: /src/core/libpromises/processes_select.c:1399,1
    - Dst: PrependItem
      Src: /src/core/libpromises/processes_select.c:1401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dest
    - source
    - pidlist
    - names
    - end
    argTypes:
    - Item**
    - Item*
    - Seq*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1395
    functionDepth: 2
    functionLinenumber: 1395
    functionLinenumberEnd: 1403
    functionName: ZCopyProcessList
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - PidInSeq
    - PrependItem
    - ExtractPid
    linkageType: ''
    returnType: void
    signature: void ZCopyProcessList(Item **dest, const Item *source, Seq *pidlist,
      char **names, int *end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libpromises/processes_select.c:1415,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1418,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/processes_select.c:1425,1
    - Dst: sscanf
      Src: /src/core/libpromises/processes_select.c:1431,1
    - Dst: atoi
      Src: /src/core/libpromises/processes_select.c:1435,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1437,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1445,1
    - Dst: fclose
      Src: /src/core/libpromises/processes_select.c:1446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1406
    functionDepth: 8
    functionLinenumber: 1406
    functionLinenumberEnd: 1448
    functionName: CheckPsLineLimitations
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - safe_fopen
    - sscanf
    - Log
    - free
    - fclose
    - atoi
    - CfReadLine
    linkageType: ''
    returnType: void
    signature: void CheckPsLineLimitations(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1462
    functionName: GetProcessTableLegend
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetProcessTableLegend(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/processes_select.c:1470,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1472,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1479,1
    - Dst: xasprintf
      Src: /src/core/libpromises/processes_select.c:1486,1
    - Dst: cf_popen
      Src: /src/core/libpromises/processes_select.c:1489,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1492,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1498,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1503,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1465
    functionDepth: 11
    functionLinenumber: 1465
    functionLinenumberEnd: 1507
    functionName: OpenUcbPsPipe
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - stat
    - cf_popen
    - xasprintf
    - Log
    - free
    linkageType: ''
    returnType: FILE
    signature: FILE *OpenUcbPsPipe(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/processes_select.c:1512,1
    - Dst: time
      Src: /src/core/libpromises/processes_select.c:1518,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/processes_select.c:1521,1
    - Dst: GetProcessColumnNames
      Src: /src/core/libpromises/processes_select.c:1525,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:1529,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:1533,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:1534,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1542,1
    - Dst: memset
      Src: /src/core/libpromises/processes_select.c:1554,1
    - Dst: SplitProcLine
      Src: /src/core/libpromises/processes_select.c:1555,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1558,1
    - Dst: StringMapInsert
      Src: /src/core/libpromises/processes_select.c:1562,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1572,1
    - Dst: feof
      Src: /src/core/libpromises/processes_select.c:1576,1
    - Dst: ferror
      Src: /src/core/libpromises/processes_select.c:1576,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1578,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/processes_select.c:1579,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1584,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1587,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1509
    functionDepth: 11
    functionLinenumber: 1509
    functionLinenumberEnd: 1588
    functionName: ReadFromUcbPsPipe
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ferror
    - StringMapInsert
    - feof
    - GetProcessColumnNames
    - Log
    - strcmp
    - free
    - SplitProcLine
    - CfReadLine
    - time
    - memset
    linkageType: ''
    returnType: void
    signature: void ReadFromUcbPsPipe(FILE *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringMapDestroy
      Src: /src/core/libpromises/processes_select.c:1594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1590
    functionDepth: 0
    functionLinenumber: 1590
    functionLinenumberEnd: 1597
    functionName: ClearPlatformExtraTable
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 1
    functionsReached:
    - StringMapDestroy
    linkageType: ''
    returnType: void
    signature: void ClearPlatformExtraTable(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringMapNew
      Src: /src/core/libpromises/processes_select.c:1606,1
    - Dst: OpenUcbPsPipe
      Src: /src/core/libpromises/processes_select.c:1608,1
    - Dst: ReadFromUcbPsPipe
      Src: /src/core/libpromises/processes_select.c:1613,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/processes_select.c:1614,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1616,1
    - Dst: StringMapClear
      Src: /src/core/libpromises/processes_select.c:1619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1599
    functionDepth: 12
    functionLinenumber: 1599
    functionLinenumberEnd: 1621
    functionName: LoadPlatformExtraTable
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached:
    - cf_pclose
    - ReadFromUcbPsPipe
    - Log
    - OpenUcbPsPipe
    - StringMapClear
    - StringMapNew
    linkageType: ''
    returnType: void
    signature: void LoadPlatformExtraTable(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:1629,1
    - Dst: StringMapHasKey
      Src: /src/core/libpromises/processes_select.c:1636,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:1643,1
    - Dst: strcmp
      Src: /src/core/libpromises/processes_select.c:1643,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1645,1
    - Dst: xstrdup
      Src: /src/core/libpromises/processes_select.c:1646,1
    - Dst: StringMapGet
      Src: /src/core/libpromises/processes_select.c:1646,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - names
    - columns
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1650
    functionName: ApplyPlatformExtraTable
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 3
    functionsReached:
    - StringMapGet
    - strcmp
    - xstrdup
    - StringMapHasKey
    - free
    linkageType: ''
    returnType: void
    signature: void ApplyPlatformExtraTable(char **names, char **columns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1653
    functionDepth: 0
    functionLinenumber: 1653
    functionLinenumberEnd: 1655
    functionName: LoadPlatformExtraTable
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LoadPlatformExtraTable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1659
    functionName: ClearPlatformExtraTable
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ClearPlatformExtraTable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - names
    - columns
    argTypes:
    - ARG_UNUSED**
    - ARG_UNUSED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1663
    functionName: ApplyPlatformExtraTable
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ApplyPlatformExtraTable(ARG_UNUSED char **names, ARG_UNUSED char
      **columns)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1677,1
    - Dst: LoadPlatformExtraTable
      Src: /src/core/libpromises/processes_select.c:1681,1
    - Dst: CheckPsLineLimitations
      Src: /src/core/libpromises/processes_select.c:1683,1
    - Dst: GetProcessOptions
      Src: /src/core/libpromises/processes_select.c:1685,1
    - Dst: snprintf
      Src: /src/core/libpromises/processes_select.c:1687,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1689,1
    - Dst: cf_popen
      Src: /src/core/libpromises/processes_select.c:1691,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1693,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/processes_select.c:1693,1
    - Dst: xmalloc
      Src: /src/core/libpromises/processes_select.c:1698,1
    - Dst: SeqNew
      Src: /src/core/libpromises/processes_select.c:1705,1
    - Dst: SeqNew
      Src: /src/core/libpromises/processes_select.c:1706,1
    - Dst: IsGlobalZone
      Src: /src/core/libpromises/processes_select.c:1707,1
    - Dst: ZLoadProcesstable
      Src: /src/core/libpromises/processes_select.c:1711,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1715,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/processes_select.c:1726,1
    - Dst: feof
      Src: /src/core/libpromises/processes_select.c:1729,1
    - Dst: Log
      Src: /src/core/libpromises/processes_select.c:1731,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/processes_select.c:1731,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/processes_select.c:1732,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1733,1
    - Dst: Chop
      Src: /src/core/libpromises/processes_select.c:1741,1
    - Dst: GetProcessColumnNames
      Src: /src/core/libpromises/processes_select.c:1749,1
    - Dst: ExtractPid
      Src: /src/core/libpromises/processes_select.c:1753,1
    - Dst: IsGlobalProcess
      Src: /src/core/libpromises/processes_select.c:1755,1
    - Dst: AppendItem
      Src: /src/core/libpromises/processes_select.c:1763,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/processes_select.c:1768,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/processes_select.c:1771,1
    - Dst: snprintf
      Src: /src/core/libpromises/processes_select.c:1773,1
    - Dst: RawSaveItemList
      Src: /src/core/libpromises/processes_select.c:1775,1
    - Dst: ZCopyProcessList
      Src: /src/core/libpromises/processes_select.c:1783,1
    - Dst: ReverseItemList
      Src: /src/core/libpromises/processes_select.c:1786,1
    - Dst: ZCopyProcessList
      Src: /src/core/libpromises/processes_select.c:1790,1
    - Dst: ReverseItemList
      Src: /src/core/libpromises/processes_select.c:1793,1
    - Dst: CopyList
      Src: /src/core/libpromises/processes_select.c:1798,1
    - Dst: CopyList
      Src: /src/core/libpromises/processes_select.c:1799,1
    - Dst: DeleteItemNotContaining
      Src: /src/core/libpromises/processes_select.c:1801,1
    - Dst: DeleteItemContaining
      Src: /src/core/libpromises/processes_select.c:1805,1
    - Dst: PrependItem
      Src: /src/core/libpromises/processes_select.c:1811,1
    - Dst: SetUmask
      Src: /src/core/libpromises/processes_select.c:1815,1
    - Dst: snprintf
      Src: /src/core/libpromises/processes_select.c:1817,1
    - Dst: RawSaveItemList
      Src: /src/core/libpromises/processes_select.c:1818,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/processes_select.c:1819,1
    - Dst: snprintf
      Src: /src/core/libpromises/processes_select.c:1821,1
    - Dst: RawSaveItemList
      Src: /src/core/libpromises/processes_select.c:1822,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/processes_select.c:1823,1
    - Dst: RestoreUmask
      Src: /src/core/libpromises/processes_select.c:1825,1
    - Dst: free
      Src: /src/core/libpromises/processes_select.c:1827,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1667
    functionDepth: 13
    functionLinenumber: 1667
    functionLinenumberEnd: 1829
    functionName: LoadProcessTable
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 3
    functionsReached:
    - ZLoadProcesstable
    - CopyList
    - RawSaveItemList
    - IsGlobalZone
    - feof
    - Log
    - ExtractPid
    - free
    - DeleteItemNotContaining
    - CheckPsLineLimitations
    - snprintf
    - cf_popen
    - RestoreUmask
    - cf_pclose
    - GetProcessColumnNames
    - Chop
    - CfReadLine
    - SetUmask
    - SeqNew
    - ZCopyProcessList
    - DeleteItemList
    - xmalloc
    - GetErrorStr
    - AppendItem
    - LoadPlatformExtraTable
    - GetStateDir
    - GetProcessOptions
    - DeleteItemContaining
    - PrependItem
    - IsGlobalProcess
    - ReverseItemList
    linkageType: ''
    returnType: bool
    signature: bool LoadProcessTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearPlatformExtraTable
      Src: /src/core/libpromises/processes_select.c:1834,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/processes_select.c:1836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1838
    functionName: ClearProcessTable
    functionSourceFile: /src/core/libpromises/processes_select.c
    functionUses: 3
    functionsReached:
    - DeleteItemList
    - ClearPlatformExtraTable
    linkageType: ''
    returnType: void
    signature: void ClearProcessTable(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BodyHasConstraint
      Src: /src/core/libpromises/mod_files.c:148,1
    - Dst: BodyHasConstraint
      Src: /src/core/libpromises/mod_files.c:149,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_files.c:151,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/mod_files.c:151,1
    - Dst: BodyHasConstraint
      Src: /src/core/libpromises/mod_files.c:154,1
    - Dst: BodyHasConstraint
      Src: /src/core/libpromises/mod_files.c:155,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_files.c:157,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/mod_files.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - body
    - errors
    argTypes:
    - Body*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 162
    functionName: AclCheck
    functionSourceFile: /src/core/libpromises/mod_files.c
    functionUses: 0
    functionsReached:
    - BodyHasConstraint
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool AclCheck(const Body *body, Seq *errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/core/libpromises/policy.h
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: PromiseGetPromiseType
    functionSourceFile: /src/core/libpromises/policy.h
    functionUses: 11
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *PromiseGetPromiseType(const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BodyHasConstraint
      Src: /src/core/libpromises/mod_common.c:68,1
    - Dst: BodyHasConstraint
      Src: /src/core/libpromises/mod_common.c:69,1
    - Dst: BodyHasConstraint
      Src: /src/core/libpromises/mod_common.c:70,1
    - Dst: BodyHasConstraint
      Src: /src/core/libpromises/mod_common.c:72,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_common.c:74,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/mod_common.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - body
    - errors
    argTypes:
    - Body*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: ActionCheck
    functionSourceFile: /src/core/libpromises/mod_common.c
    functionUses: 0
    functionsReached:
    - BodyHasConstraint
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool ActionCheck(const Body *body, Seq *errors)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/core/libpromises/mod_common.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - identifier
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: CheckIdentifierNotPurelyNumerical
    functionSourceFile: /src/core/libpromises/mod_common.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool CheckIdentifierNotPurelyNumerical(const char *identifier)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CheckIdentifierNotPurelyNumerical
      Src: /src/core/libpromises/mod_common.c:163,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_common.c:165,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/mod_common.c:165,1
    - Dst: CheckParseVariableName
      Src: /src/core/libpromises/mod_common.c:170,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_common.c:172,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/mod_common.c:172,1
    - Dst: SeqLength
      Src: /src/core/libpromises/mod_common.c:181,1
    - Dst: SeqAt
      Src: /src/core/libpromises/mod_common.c:183,1
    - Dst: DataTypeFromString
      Src: /src/core/libpromises/mod_common.c:185,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_common.c:189,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/mod_common.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pp
    - errors
    argTypes:
    - Promise*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 200
    functionName: VarsParseTreeCheck
    functionSourceFile: /src/core/libpromises/mod_common.c
    functionUses: 0
    functionsReached:
    - CheckIdentifierNotPurelyNumerical
    - DataTypeFromString
    - CheckParseVariableName
    - SeqLength
    - SeqAt
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool VarsParseTreeCheck(const Promise *pp, Seq *errors)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CheckIdentifierNotPurelyNumerical
      Src: /src/core/libpromises/mod_common.c:239,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_common.c:241,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/mod_common.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pp
    - errors
    argTypes:
    - Promise*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: ClassesParseTreeCheck
    functionSourceFile: /src/core/libpromises/mod_common.c
    functionUses: 0
    functionsReached:
    - CheckIdentifierNotPurelyNumerical
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool ClassesParseTreeCheck(const Promise *pp, Seq *errors)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/mod_common.c:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - lval
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 571
    functionName: CommonControlFromString
    functionSourceFile: /src/core/libpromises/mod_common.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: CommonControl
    signature: CommonControl CommonControlFromString(const char *lval)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: acl_get_file
      Src: /src/core/libpromises/acl_tools_posix.c:51,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:64,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:64,1
    - Dst: acl_set_file
      Src: /src/core/libpromises/acl_tools_posix.c:68,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:69,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:82,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:82,1
    - Dst: stat
      Src: /src/core/libpromises/acl_tools_posix.c:87,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:89,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:89,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/acl_tools_posix.c:92,1
    - Dst: acl_get_file
      Src: /src/core/libpromises/acl_tools_posix.c:102,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:105,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:105,1
    - Dst: acl_set_file
      Src: /src/core/libpromises/acl_tools_posix.c:108,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:109,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:112,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:112,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 3
    argNames:
    - src
    - dst
    - change
    argTypes:
    - char*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 45
    functionDepth: 8
    functionLinenumber: 45
    functionLinenumberEnd: 120
    functionName: CopyACLs
    functionSourceFile: /src/core/libpromises/acl_tools_posix.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - acl_free
    - acl_set_file
    - S_ISDIR
    - Log
    - acl_get_file
    linkageType: ''
    returnType: bool
    signature: bool CopyACLs(const char *src, const char *dst, bool *change)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/acl_tools_posix.c:124,1
    - Dst: assert
      Src: /src/core/libpromises/acl_tools_posix.c:125,1
    - Dst: acl_get_file
      Src: /src/core/libpromises/acl_tools_posix.c:127,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:130,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:130,1
    - Dst: acl_get_entry
      Src: /src/core/libpromises/acl_tools_posix.c:135,1
    - Dst: acl_get_tag_type
      Src: /src/core/libpromises/acl_tools_posix.c:139,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:141,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:141,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:142,1
    - Dst: acl_delete_entry
      Src: /src/core/libpromises/acl_tools_posix.c:147,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:149,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:149,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:150,1
    - Dst: acl_get_entry
      Src: /src/core/libpromises/acl_tools_posix.c:154,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:158,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:158,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:159,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/acl_tools_posix.c:163,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/acl_tools_posix.c:165,1
    - Dst: GetUserID
      Src: /src/core/libpromises/acl_tools_posix.c:168,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:171,1
    - Dst: acl_create_entry
      Src: /src/core/libpromises/acl_tools_posix.c:175,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:177,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:177,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:178,1
    - Dst: acl_set_tag_type
      Src: /src/core/libpromises/acl_tools_posix.c:181,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:183,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:183,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:184,1
    - Dst: acl_set_qualifier
      Src: /src/core/libpromises/acl_tools_posix.c:187,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:189,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:189,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:190,1
    - Dst: acl_get_permset
      Src: /src/core/libpromises/acl_tools_posix.c:195,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:197,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:197,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:198,1
    - Dst: acl_clear_perms
      Src: /src/core/libpromises/acl_tools_posix.c:201,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:203,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:203,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:204,1
    - Dst: acl_add_perm
      Src: /src/core/libpromises/acl_tools_posix.c:208,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:210,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:210,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:211,1
    - Dst: acl_add_perm
      Src: /src/core/libpromises/acl_tools_posix.c:215,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:217,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:217,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:218,1
    - Dst: acl_add_perm
      Src: /src/core/libpromises/acl_tools_posix.c:222,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:224,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:224,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:225,1
    - Dst: acl_set_permset
      Src: /src/core/libpromises/acl_tools_posix.c:229,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:231,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:231,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:232,1
    - Dst: acl_calc_mask
      Src: /src/core/libpromises/acl_tools_posix.c:237,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:239,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:239,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:240,1
    - Dst: acl_valid
      Src: /src/core/libpromises/acl_tools_posix.c:244,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:246,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:247,1
    - Dst: acl_set_file
      Src: /src/core/libpromises/acl_tools_posix.c:251,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:253,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:253,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:254,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:258,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 95
    argCount: 4
    argNames:
    - path
    - users
    - allow_writes
    - allow_execute
    argTypes:
    - char*
    - StringSet*
    - bool
    - bool
    assertStmts:
    - condition: (path != NULL)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/core/libpromises/acl_tools_posix.c
    - condition: (users != NULL)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/core/libpromises/acl_tools_posix.c
    constantsTouched: []
    func_position:
      end: 260
      start: 122
    functionDepth: 13
    functionLinenumber: 122
    functionLinenumberEnd: 260
    functionName: AllowAccessForUsers
    functionSourceFile: /src/core/libpromises/acl_tools_posix.c
    functionUses: 1
    functionsReached:
    - acl_free
    - acl_delete_entry
    - Log
    - acl_get_file
    - acl_set_tag_type
    - acl_calc_mask
    - acl_create_entry
    - acl_get_entry
    - acl_add_perm
    - acl_set_permset
    - acl_clear_perms
    - GetUserID
    - assert
    - acl_get_permset
    - acl_valid
    - acl_set_qualifier
    - acl_get_tag_type
    - StringSetIteratorInit
    - GetErrorStr
    - StringSetIteratorNext
    - acl_set_file
    linkageType: ''
    returnType: bool
    signature: bool AllowAccessForUsers(const char *path, StringSet *users, bool allow_writes,
      bool allow_execute)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/acl_tools_posix.c:264,1
    - Dst: acl_get_file
      Src: /src/core/libpromises/acl_tools_posix.c:266,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:269,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:270,1
    - Dst: acl_to_any_text
      Src: /src/core/libpromises/acl_tools_posix.c:274,1
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:277,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/acl_tools_posix.c:278,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:279,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/acl_tools_posix.c:283,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:285,1
    - Dst: acl_free
      Src: /src/core/libpromises/acl_tools_posix.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - path
    - access
    argTypes:
    - char*
    - bool
    assertStmts:
    - condition: (path != NULL)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/core/libpromises/acl_tools_posix.c
    constantsTouched: []
    func_position:
      end: 288
      start: 262
    functionDepth: 8
    functionLinenumber: 262
    functionLinenumberEnd: 288
    functionName: GetACLs
    functionSourceFile: /src/core/libpromises/acl_tools_posix.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - acl_free
    - assert
    - acl_to_any_text
    - RlistFromSplitString
    - Log
    - acl_get_file
    linkageType: ''
    returnType: Rlist
    signature: Rlist *GetACLs(const char *path, bool access)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - access
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: GetACLs
    functionSourceFile: /src/core/libpromises/acl_tools_posix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Rlist
    signature: Rlist *GetACLs(ARG_UNUSED const char *path, ARG_UNUSED bool access)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - src
    - dst
    - change
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: CopyACLs
    functionSourceFile: /src/core/libpromises/acl_tools_posix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CopyACLs(ARG_UNUSED const char *src, ARG_UNUSED const char *dst,
      bool *change)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/acl_tools_posix.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - path
    - users
    - allow_writes
    - allow_execute
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 8
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: AllowAccessForUsers
    functionSourceFile: /src/core/libpromises/acl_tools_posix.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: bool
    signature: "bool AllowAccessForUsers(ARG_UNUSED const char *path, ARG_UNUSED StringSet
      *users,\n                         ARG_UNUSED bool allow_writes, ARG_UNUSED bool
      allow_execute)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/policy.c:92,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/policy.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - promisetype
    argTypes:
    - Promise*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: DefaultBundleConstraint
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - CanonifyName
    - snprintf
    linkageType: ''
    returnType: Rval
    signature: Rval DefaultBundleConstraint(const Promise *pp, char *promisetype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: NamespaceDefault
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *NamespaceDefault(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:109,1
    - Dst: StringCopy
      Src: /src/core/libpromises/policy.c:111,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/policy.c:111,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:112,1
    - Dst: JoinPaths
      Src: /src/core/libpromises/policy.c:113,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:114,1
    - Dst: ExclusiveFileLockPath
      Src: /src/core/libpromises/policy.c:118,1
    - Dst: SharedFileLockPath
      Src: /src/core/libpromises/policy.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - lock
    - exclusive
    - wait
    argTypes:
    - FileLock*
    - bool
    - bool
    assertStmts:
    - condition: (lock != NULL)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/core/libpromises/policy.c
    - condition: (ret < sizeof(path))
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/core/libpromises/policy.c
    - condition: (path_ret != NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 11
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: GetMasterfilesStageLock
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - assert
    - StringCopy
    - ExclusiveFileLockPath
    - GetStateDir
    - JoinPaths
    - SharedFileLockPath
    linkageType: ''
    returnType: bool
    signature: bool GetMasterfilesStageLock(FileLock *lock, bool exclusive, bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/policy.c:130,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:133,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:134,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: PolicyNew
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 14
    functionsReached:
    - xcalloc
    - SeqNew
    linkageType: ''
    returnType: Policy
    signature: Policy *PolicyNew(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: PolicyCompare
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PolicyCompare(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqDestroy
      Src: /src/core/libpromises/policy.c:154,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/policy.c:155,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/policy.c:156,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:157,1
    - Dst: StringMapDestroy
      Src: /src/core/libpromises/policy.c:160,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - policy
    argTypes:
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: PolicyDestroy
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 26
    functionsReached:
    - free
    - SeqDestroy
    - StringMapDestroy
    linkageType: ''
    returnType: void
    signature: void PolicyDestroy(Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringHash
      Src: /src/core/libpromises/policy.c:173,1
    - Dst: StringHash
      Src: /src/core/libpromises/policy.c:174,1
    - Dst: RvalHash
      Src: /src/core/libpromises/policy.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cp
    - seed
    argTypes:
    - Constraint*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: ConstraintHash
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - StringHash
    - RvalHash
    linkageType: ''
    returnType: unsigned
    signature: unsigned ConstraintHash(const Constraint *cp, unsigned seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:185,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:187,1
    - Dst: ConstraintHash
      Src: /src/core/libpromises/policy.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - body
    - seed
    argTypes:
    - Body*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 192
    functionName: BodyHash
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - ConstraintHash
    - SeqAt
    linkageType: ''
    returnType: unsigned
    signature: unsigned BodyHash(const Body *body, unsigned seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringHash
      Src: /src/core/libpromises/policy.c:199,1
    - Dst: RvalHash
      Src: /src/core/libpromises/policy.c:200,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:202,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:204,1
    - Dst: ConstraintHash
      Src: /src/core/libpromises/policy.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pp
    - seed
    argTypes:
    - Promise*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: PromiseHash
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - StringHash
    - RvalHash
    - ConstraintHash
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: unsigned
    signature: unsigned PromiseHash(const Promise *pp, unsigned seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringHash
      Src: /src/core/libpromises/policy.c:217,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:218,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:220,1
    - Dst: PromiseHash
      Src: /src/core/libpromises/policy.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - section
    - seed
    argTypes:
    - BundleSection*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: BundleSectionHash
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - StringHash
    - PromiseHash
    - SeqAt
    linkageType: ''
    returnType: unsigned
    signature: unsigned BundleSectionHash(const BundleSection *section, unsigned seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringHash
      Src: /src/core/libpromises/policy.c:233,1
    - Dst: StringHash
      Src: /src/core/libpromises/policy.c:234,1
    - Dst: StringHash
      Src: /src/core/libpromises/policy.c:235,1
    - Dst: RlistHash
      Src: /src/core/libpromises/policy.c:236,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:238,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:240,1
    - Dst: BundleSectionHash
      Src: /src/core/libpromises/policy.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - bundle
    - seed
    argTypes:
    - Bundle*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 245
    functionName: BundleHash
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - StringHash
    - RlistHash
    - BundleSectionHash
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: unsigned
    signature: unsigned BundleHash(const Bundle *bundle, unsigned seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:253,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:255,1
    - Dst: BodyHash
      Src: /src/core/libpromises/policy.c:256,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:259,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:261,1
    - Dst: BundleHash
      Src: /src/core/libpromises/policy.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - policy
    argTypes:
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 249
    functionDepth: 6
    functionLinenumber: 249
    functionLinenumberEnd: 266
    functionName: PolicyHash
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - BundleHash
    - BodyHash
    - SeqAt
    linkageType: ''
    returnType: unsigned
    signature: unsigned PolicyHash(const Policy *policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/libpromises/policy.c:272,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:274,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:276,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/policy.c:279,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:279,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:283,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:285,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/policy.c:288,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - policy
    argTypes:
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 293
    functionName: PolicySourceFiles
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - SeqLength
    - StringSetNew
    - SeqAt
    - StringSetAdd
    linkageType: ''
    returnType: StringSet
    signature: StringSet *PolicySourceFiles(const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMapGet
      Src: /src/core/libpromises/policy.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - policy
    - policy_file_path
    argTypes:
    - Policy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: PolicyGetPolicyFileHash
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - StringMapGet
    linkageType: ''
    returnType: char
    signature: char *PolicyGetPolicyFileHash(const Policy *policy, const char *policy_file_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libpromises/policy.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - full_symbol
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 324
    functionName: StripNamespace
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *StripNamespace(const char *full_symbol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:338,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:340,1
    - Dst: StripNamespace
      Src: /src/core/libpromises/policy.c:341,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:343,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:344,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - policy
    - ns
    - type
    - name
    argTypes:
    - Policy*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 357
    functionName: PolicyGetBody
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 2
    functionsReached:
    - SeqLength
    - strcmp
    - StripNamespace
    - SeqAt
    linkageType: ''
    returnType: Body
    signature: Body *PolicyGetBody(const Policy *policy, const char *ns, const char
      *type, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StripNamespace
      Src: /src/core/libpromises/policy.c:371,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:373,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:375,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:377,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:379,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:380,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 4
    argNames:
    - policy
    - ns
    - type
    - name
    argTypes:
    - Policy*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 393
    functionName: PolicyGetBundle
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 3
    functionsReached:
    - StripNamespace
    - SeqLength
    - strcmp
    - SeqAt
    linkageType: ''
    returnType: Bundle
    signature: Bundle *PolicyGetBundle(const Policy *policy, const char *ns, const
      char *type, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyGetBody
      Src: /src/core/libpromises/policy.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - policy
    argTypes:
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: PolicyIsRunnable
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - PolicyGetBody
    linkageType: ''
    returnType: bool
    signature: bool PolicyIsRunnable(const Policy *policy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:417,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:418,1
    - Dst: PolicyNew
      Src: /src/core/libpromises/policy.c:420,1
    - Dst: SeqAppendSeq
      Src: /src/core/libpromises/policy.c:422,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libpromises/policy.c:423,1
    - Dst: SeqAppendSeq
      Src: /src/core/libpromises/policy.c:424,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libpromises/policy.c:425,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:427,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:429,1
    - Dst: SeqAppendSeq
      Src: /src/core/libpromises/policy.c:433,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libpromises/policy.c:434,1
    - Dst: SeqAppendSeq
      Src: /src/core/libpromises/policy.c:435,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libpromises/policy.c:436,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:438,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:440,1
    - Dst: SeqAppendSeq
      Src: /src/core/libpromises/policy.c:444,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libpromises/policy.c:445,1
    - Dst: SeqAppendSeq
      Src: /src/core/libpromises/policy.c:446,1
    - Dst: SeqSoftDestroy
      Src: /src/core/libpromises/policy.c:447,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:449,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:451,1
    - Dst: MapIteratorInit
      Src: /src/core/libpromises/policy.c:475,1
    - Dst: MapIteratorNext
      Src: /src/core/libpromises/policy.c:477,1
    - Dst: StringMapInsert
      Src: /src/core/libpromises/policy.c:481,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:482,1
    - Dst: StringMapSoftDestroy
      Src: /src/core/libpromises/policy.c:485,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:489,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:490,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:491,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:492,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Policy*
    - Policy*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/core/libpromises/policy.c
    - condition: (b != NULL)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 495
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 495
    functionName: PolicyMerge
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 2
    functionsReached:
    - StringMapSoftDestroy
    - SeqSoftDestroy
    - PolicyNew
    - assert
    - StringMapInsert
    - SeqAppendSeq
    - MapIteratorNext
    - MapIteratorInit
    - xstrdup
    - SeqLength
    - free
    - SeqAt
    linkageType: ''
    returnType: Policy
    signature: Policy *PolicyMerge(Policy *a, Policy *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cp
    argTypes:
    - Constraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 512
    functionName: ConstraintGetNamespace
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *ConstraintGetNamespace(const Constraint *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:523,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:526,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - promise
    argTypes:
    - Promise*
    assertStmts:
    - condition: (promise)
      pos:
        line_end: 522
        line_start: 522
        source_file: /src/core/libpromises/policy.c
    - condition: (section != NULL)
      pos:
        line_end: 525
        line_start: 525
        source_file: /src/core/libpromises/policy.c
    - condition: (bundle)
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 532
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 532
    functionName: PolicyFromPromise
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: Policy
    signature: Policy *PolicyFromPromise(const Promise *promise)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:536,1
    - Dst: NamespaceDefault
      Src: /src/core/libpromises/policy.c:544,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/policy.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bundle
    argTypes:
    - Bundle*
    assertStmts:
    - condition: (bundle)
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 549
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 549
    functionName: BundleQualifiedName
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 2
    functionsReached:
    - NamespaceDefault
    - assert
    - StringConcatenate
    linkageType: ''
    returnType: char
    signature: char *BundleQualifiedName(const Bundle *bundle)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - rval_type
    - expected_datatype
    argTypes:
    - RvalType
    - DataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 587
    functionName: RvalTypeCheckDataType
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: bool
    signature: bool RvalTypeCheckDataType(RvalType rval_type, DataType expected_datatype)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:596,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:599,1
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/libpromises/policy.c:607,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:611,1
    - Dst: RvalTypeCheckDataType
      Src: /src/core/libpromises/policy.c:613,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:615,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:616,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:629,1
    - Dst: RvalTypeCheckDataType
      Src: /src/core/libpromises/policy.c:631,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:633,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:634,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:643,1
    - Dst: RvalTypeCheckDataType
      Src: /src/core/libpromises/policy.c:645,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:647,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:648,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:657,1
    - Dst: RvalTypeCheckDataType
      Src: /src/core/libpromises/policy.c:659,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:661,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:662,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:671,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:672,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - constraint
    - errors
    argTypes:
    - Constraint*
    - Seq*
    assertStmts:
    - condition: (constraint != NULL)
      pos:
        line_end: 595
        line_start: 595
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 678
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 678
    functionName: ConstraintCheckSyntax
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - assert
    - RvalTypeCheckDataType
    - PromiseTypeSyntaxGet
    - strcmp
    - ProgrammingError
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool ConstraintCheckSyntax(const Constraint *constraint, Seq *errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:684,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:685,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:688,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:690,1
    - Dst: PromiseCheck
      Src: /src/core/libpromises/policy.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - section
    - errors
    argTypes:
    - BundleSection*
    - Seq*
    assertStmts:
    - condition: (section != NULL)
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/core/libpromises/policy.c
    - condition: (section->parent_bundle)
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 695
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 695
    functionName: PolicyCheckPromiseType
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - PromiseCheck
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool PolicyCheckPromiseType(const BundleSection *section, Seq *errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:702,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:705,1
    - Dst: PolicyCheckPromiseType
      Src: /src/core/libpromises/policy.c:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sections
    - errors
    argTypes:
    - Seq*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 709
    functionName: PolicyCheckBundleSections
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - PolicyCheckPromiseType
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool PolicyCheckBundleSections(Seq * sections, Seq *errors)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:713,1
    - Dst: IsStrIn
      Src: /src/core/libpromises/policy.c:720,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:722,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:722,1
    - Dst: PolicyCheckBundleSections
      Src: /src/core/libpromises/policy.c:728,1
    - Dst: PolicyCheckBundleSections
      Src: /src/core/libpromises/policy.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - bundle
    - errors
    argTypes:
    - Bundle*
    - Seq*
    assertStmts:
    - condition: (bundle)
      pos:
        line_end: 712
        line_start: 712
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 732
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 732
    functionName: PolicyCheckBundle
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - assert
    - IsStrIn
    - PolicyCheckBundleSections
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool PolicyCheckBundle(const Bundle *bundle, Seq *errors)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:738,1
    - Dst: RlistLen
      Src: /src/core/libpromises/policy.c:740,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:742,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:742,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:749,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:751,1
    - Dst: ConstraintCheckType
      Src: /src/core/libpromises/policy.c:752,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:755,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:755,1
    - Dst: BodySyntaxGet
      Src: /src/core/libpromises/policy.c:762,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:763,1
    - Dst: BodySyntax*::check_body
      Src: /src/core/libpromises/policy.c:766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - body
    - errors
    argTypes:
    - Body*
    - Seq*
    assertStmts:
    - condition: (body_syntax && "Should have been checked at parse time")
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 770
      start: 734
    functionDepth: 5
    functionLinenumber: 734
    functionLinenumberEnd: 770
    functionName: PolicyCheckBody
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - BodySyntax*::check_body
    - BodySyntaxGet
    - assert
    - ConstraintCheckType
    - strcmp
    - SeqLength
    - RlistLen
    - SeqAt
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool PolicyCheckBody(const Body *body, Seq *errors)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:781,1
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/libpromises/policy.c:788,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:794,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:803,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:810,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:817,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:824,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - constraint
    argTypes:
    - Constraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 827
    functionName: ConstraintGetSyntax
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - PromiseTypeSyntaxGet
    - strcmp
    - ProgrammingError
    linkageType: ''
    returnType: ConstraintSyntax
    signature: ConstraintSyntax *ConstraintGetSyntax(const Constraint *constraint)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 849
    functionName: RvalFullSymbol
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *RvalFullSymbol(const Rval *rval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libpromises/policy.c:856,1
    - Dst: sscanf
      Src: /src/core/libpromises/policy.c:859,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - qualified_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 867
    functionName: QualifiedNameNamespaceComponent
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - sscanf
    - strchr
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *QualifiedNameNamespaceComponent(const char *qualified_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libpromises/policy.c:874,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:877,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - qualified_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 883
    functionName: QualifiedNameScopeComponent
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - strchr
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *QualifiedNameScopeComponent(const char *qualified_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:889,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:891,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:893,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:895,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:897,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:899,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:901,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:903,1
    - Dst: ConstraintGetSyntax
      Src: /src/core/libpromises/policy.c:905,1
    - Dst: QualifiedNameNamespaceComponent
      Src: /src/core/libpromises/policy.c:908,1
    - Dst: RvalFullSymbol
      Src: /src/core/libpromises/policy.c:908,1
    - Dst: QualifiedNameScopeComponent
      Src: /src/core/libpromises/policy.c:909,1
    - Dst: RvalFullSymbol
      Src: /src/core/libpromises/policy.c:909,1
    - Dst: PolicyGetBody
      Src: /src/core/libpromises/policy.c:911,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:914,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:914,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:919,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:920,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - policy
    - errors
    argTypes:
    - Policy*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 885
    functionDepth: 3
    functionLinenumber: 885
    functionLinenumberEnd: 928
    functionName: PolicyCheckUndefinedBodies
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - RvalFullSymbol
    - PolicyGetBody
    - QualifiedNameNamespaceComponent
    - SeqAppend
    - ConstraintGetSyntax
    - SeqLength
    - free
    - QualifiedNameScopeComponent
    - PolicyErrorNew
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool PolicyCheckUndefinedBodies(const Policy *policy, Seq *errors)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PolicyGetBody
      Src: /src/core/libpromises/policy.c:932,1
    - Dst: ConstraintsGetAsBoolean
      Src: /src/core/libpromises/policy.c:935,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:943,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:945,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:947,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:949,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:951,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:953,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:956,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:958,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:960,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:969,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:969,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - policy
    - errors
    argTypes:
    - EvalContext*
    - Policy*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 930
    functionDepth: 3
    functionLinenumber: 930
    functionLinenumberEnd: 983
    functionName: PolicyCheckRequiredComments
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - PolicyGetBody
    - SeqAppend
    - strcmp
    - SeqLength
    - ConstraintsGetAsBoolean
    - PolicyErrorNew
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool PolicyCheckRequiredComments(const EvalContext *ctx, const Policy
      *policy, Seq *errors)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MapNew
      Src: /src/core/libpromises/policy.c:989,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:991,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:993,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:995,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:997,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:999,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1001,1
    - Dst: PromiseGetHandle
      Src: /src/core/libpromises/policy.c:1002,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/policy.c:1006,1
    - Dst: MapGet
      Src: /src/core/libpromises/policy.c:1012,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1016,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1018,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:1018,1
    - Dst: MapInsert
      Src: /src/core/libpromises/policy.c:1025,1
    - Dst: MapDestroy
      Src: /src/core/libpromises/policy.c:1032,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - policy
    - errors
    argTypes:
    - Policy*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 985
    functionDepth: 6
    functionLinenumber: 985
    functionLinenumberEnd: 1035
    functionName: PolicyCheckDuplicateHandles
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - IsCf3VarString
    - MapGet
    - SeqAppend
    - MapInsert
    - MapDestroy
    - MapNew
    - strcmp
    - SeqLength
    - SeqAt
    - PolicyErrorNew
    - PromiseGetHandle
    linkageType: ''
    returnType: bool
    signature: bool PolicyCheckDuplicateHandles(const Policy *policy, Seq *errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyCheckRequiredComments
      Src: /src/core/libpromises/policy.c:1048,1
    - Dst: PolicyCheckUndefinedBodies
      Src: /src/core/libpromises/policy.c:1049,1
    - Dst: PolicyCheckDuplicateHandles
      Src: /src/core/libpromises/policy.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - policy
    - errors
    argTypes:
    - EvalContext*
    - Policy*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1044
    functionDepth: 7
    functionLinenumber: 1044
    functionLinenumberEnd: 1053
    functionName: PolicyCheckRunnable
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 2
    functionsReached:
    - PolicyCheckDuplicateHandles
    - PolicyCheckRequiredComments
    - PolicyCheckUndefinedBodies
    linkageType: ''
    returnType: bool
    signature: bool PolicyCheckRunnable(const EvalContext *ctx, const Policy *policy,
      Seq *errors)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1066,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1068,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1070,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1072,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1075,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1076,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1077,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1079,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:1079,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1087,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1089,1
    - Dst: PolicyCheckBundle
      Src: /src/core/libpromises/policy.c:1090,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1095,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1097,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1099,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1101,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1104,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1105,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1106,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1108,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1110,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:1110,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1119,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1121,1
    - Dst: PolicyCheckBody
      Src: /src/core/libpromises/policy.c:1122,1
    - Dst: PolicyCheckDuplicateHandles
      Src: /src/core/libpromises/policy.c:1126,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 2
    argNames:
    - policy
    - errors
    argTypes:
    - Policy*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1061
    functionDepth: 7
    functionLinenumber: 1061
    functionLinenumberEnd: 1129
    functionName: PolicyCheckPartial
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 5
    functionsReached:
    - PolicyCheckDuplicateHandles
    - PolicyCheckBundle
    - PolicyCheckBody
    - strcmp
    - SeqLength
    - SeqAt
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool PolicyCheckPartial(const Policy *policy, Seq *errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/policy.c:1135,1
    - Dst: va_start
      Src: /src/core/libpromises/policy.c:1141,1
    - Dst: xvasprintf
      Src: /src/core/libpromises/policy.c:1142,1
    - Dst: va_end
      Src: /src/core/libpromises/policy.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - type
    - subject
    - error_msg
    argTypes:
    - PolicyElementType
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1146
    functionName: PolicyErrorNew
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 12
    functionsReached:
    - va_end
    - xvasprintf
    - xmalloc
    - va_start
    linkageType: ''
    returnType: PolicyError
    signature: PolicyError *PolicyErrorNew(PolicyElementType type, const void *subject,
      const char *error_msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/policy.c:1152,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - PolicyError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1154
    functionName: PolicyErrorDestroy
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void PolicyErrorDestroy(PolicyError *error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1160,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - type
    - element
    argTypes:
    - PolicyElementType
    - void*
    assertStmts:
    - condition: (element)
      pos:
        line_end: 1159
        line_start: 1159
        source_file: /src/core/libpromises/policy.c
    - condition: (false && "Invalid policy element")
      pos:
        line_end: 1199
        line_start: 1199
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 1203
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1203
    functionName: PolicyElementSourceOffset
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SourceOffset
    signature: SourceOffset PolicyElementSourceOffset(PolicyElementType type, const
      void *element)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1209,1
    - Dst: PolicyElementSourceFile
      Src: /src/core/libpromises/policy.c:1231,1
    - Dst: PolicyElementSourceFile
      Src: /src/core/libpromises/policy.c:1237,1
    - Dst: PolicyElementSourceFile
      Src: /src/core/libpromises/policy.c:1246,1
    - Dst: PolicyElementSourceFile
      Src: /src/core/libpromises/policy.c:1249,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1252,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - type
    - element
    argTypes:
    - PolicyElementType
    - void*
    assertStmts:
    - condition: (element)
      pos:
        line_end: 1208
        line_start: 1208
        source_file: /src/core/libpromises/policy.c
    - condition: (false && "Constraint has invalid parent element type")
      pos:
        line_end: 1251
        line_start: 1251
        source_file: /src/core/libpromises/policy.c
    - condition: (false && "Invalid policy element")
      pos:
        line_end: 1257
        line_start: 1257
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 1261
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1261
    functionName: PolicyElementSourceFile
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - assert
    - PolicyElementSourceFile
    linkageType: ''
    returnType: char
    signature: char *PolicyElementSourceFile(PolicyElementType type, const void *element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyElementSourceOffset
      Src: /src/core/libpromises/policy.c:1267,1
    - Dst: PolicyElementSourceFile
      Src: /src/core/libpromises/policy.c:1268,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/policy.c:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - error
    argTypes:
    - Writer*
    - PolicyError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1265
    functionDepth: 2
    functionLinenumber: 1265
    functionLinenumberEnd: 1272
    functionName: PolicyErrorWrite
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 3
    functionsReached:
    - WriterWriteF
    - PolicyElementSourceFile
    - PolicyElementSourceOffset
    linkageType: ''
    returnType: void
    signature: void PolicyErrorWrite(Writer *writer, const PolicyError *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PolicyElementSourceOffset
      Src: /src/core/libpromises/policy.c:1276,1
    - Dst: PolicyElementSourceFile
      Src: /src/core/libpromises/policy.c:1277,1
    - Dst: StringWriter
      Src: /src/core/libpromises/policy.c:1279,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/policy.c:1280,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:1287,1
    - Dst: RvalWrite
      Src: /src/core/libpromises/policy.c:1288,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:1289,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/policy.c:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - error
    argTypes:
    - PolicyError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1274
    functionDepth: 5
    functionLinenumber: 1274
    functionLinenumberEnd: 1293
    functionName: PolicyErrorToString
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - PolicyElementSourceFile
    - WriterWriteChar
    - WriterWrite
    - StringWriter
    - RvalWrite
    - PolicyElementSourceOffset
    - StringWriterClose
    - WriterWriteF
    linkageType: ''
    returnType: char
    signature: char *PolicyErrorToString(const PolicyError *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqDestroy
      Src: /src/core/libpromises/policy.c:1301,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1303,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - section
    argTypes:
    - BundleSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1297
    functionDepth: 2
    functionLinenumber: 1297
    functionLinenumberEnd: 1306
    functionName: BundleSectionDestroy
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - free
    - SeqDestroy
    linkageType: ''
    returnType: void
    signature: void BundleSectionDestroy(BundleSection *section)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/policy.c:1312,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1316,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1318,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1319,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1320,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/policy.c:1321,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/policy.c:1322,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:1323,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:1324,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 7
    argNames:
    - policy
    - ns
    - name
    - type
    - args
    - source_path
    - evaluation_order
    argTypes:
    - Policy*
    - char*
    - char*
    - char*
    - Rlist*
    - char*
    - EvalOrder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1308
    functionDepth: 3
    functionLinenumber: 1308
    functionLinenumberEnd: 1329
    functionName: PolicyAppendBundle
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 11
    functionsReached:
    - xcalloc
    - RlistCopy
    - SafeStringDuplicate
    - SeqNew
    - xstrdup
    - SeqAppend
    linkageType: ''
    returnType: Bundle
    signature: "Bundle *PolicyAppendBundle(Policy *policy,\n                           const
      char *ns, const char *name, const char *type,\n                           const
      Rlist *args, const char *source_path, const EvalOrder evaluation_order)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/policy.c:1337,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1340,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1342,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1343,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1344,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/policy.c:1345,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/policy.c:1346,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:1347,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1351,1
    - Dst: RlistAppendRval
      Src: /src/core/libpromises/policy.c:1354,1
    - Dst: RvalNew
      Src: /src/core/libpromises/policy.c:1354,1
    - Dst: RlistAppendRval
      Src: /src/core/libpromises/policy.c:1355,1
    - Dst: RvalNew
      Src: /src/core/libpromises/policy.c:1355,1
    - Dst: FnCallNew
      Src: /src/core/libpromises/policy.c:1357,1
    - Dst: BodyAppendConstraint
      Src: /src/core/libpromises/policy.c:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 7
    argNames:
    - policy
    - ns
    - name
    - type
    - args
    - source_path
    - is_custom
    argTypes:
    - Policy*
    - char*
    - char*
    - char*
    - Rlist*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1333
    functionDepth: 3
    functionLinenumber: 1333
    functionLinenumberEnd: 1362
    functionName: PolicyAppendBody
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - RlistCopy
    - RlistAppendRval
    - SafeStringDuplicate
    - RvalNew
    - SeqNew
    - strcmp
    - xstrdup
    - BodyAppendConstraint
    - FnCallNew
    - SeqAppend
    linkageType: ''
    returnType: Body
    signature: "Body *PolicyAppendBody(Policy *policy, const char *ns, const char
      *name,\n                       const char *type, Rlist *args, const char *source_path,\n
      \                      bool is_custom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1374,1
    - Dst: xcalloc
      Src: /src/core/libpromises/policy.c:1376,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1379,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1381,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1382,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1383,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/policy.c:1384,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/policy.c:1385,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 6
    argNames:
    - policy
    - ns
    - name
    - type
    - args
    - source_path
    argTypes:
    - Policy*
    - char*
    - char*
    - char*
    - Rlist*
    - char*
    assertStmts:
    - condition: (policy != NULL)
      pos:
        line_end: 1373
        line_start: 1373
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 1389
      start: 1366
    functionDepth: 3
    functionLinenumber: 1366
    functionLinenumberEnd: 1389
    functionName: PolicyAppendPromiseBlock
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - RlistCopy
    - assert
    - SafeStringDuplicate
    - SeqNew
    - xstrdup
    - SeqAppend
    linkageType: ''
    returnType: Body
    signature: "Body *PolicyAppendPromiseBlock(\n    Policy *policy,\n    const char
      *ns,\n    const char *name,\n    const char *type,\n    Rlist *args,\n    const
      char *source_path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:1397,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1401,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1403,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1404,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1409,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1411,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1412,1
    - Dst: xcalloc
      Src: /src/core/libpromises/policy.c:1418,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1421,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:1422,1
    - Dst: IsBuiltInPromiseType
      Src: /src/core/libpromises/policy.c:1424,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1426,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - bundle
    - promise_type
    argTypes:
    - Bundle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1393
    functionDepth: 5
    functionLinenumber: 1393
    functionLinenumberEnd: 1434
    functionName: BundleAppendSection
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 5
    functionsReached:
    - xcalloc
    - SeqAppend
    - SeqNew
    - strcmp
    - xstrdup
    - ProgrammingError
    - SeqLength
    - IsBuiltInPromiseType
    - SeqAt
    linkageType: ''
    returnType: BundleSection
    signature: BundleSection *BundleAppendSection(Bundle *bundle, const char *promise_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1440,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1441,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1442,1
    - Dst: xcalloc
      Src: /src/core/libpromises/policy.c:1444,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1446,1
    - Dst: strlen
      Src: /src/core/libpromises/policy.c:1448,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1450,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:1454,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1457,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1458,1
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:1463,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/policy.c:1468,1
    - Dst: RvalNew
      Src: /src/core/libpromises/policy.c:1468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - section
    - promiser
    - promisee
    - classes
    - varclasses
    argTypes:
    - BundleSection*
    - char*
    - Rval
    - char*
    - char*
    assertStmts:
    - condition: (promiser && "Missing promiser")
      pos:
        line_end: 1439
        line_start: 1439
        source_file: /src/core/libpromises/policy.c
    - condition: (section != NULL && "Missing promise type")
      pos:
        line_end: 1440
        line_start: 1440
        source_file: /src/core/libpromises/policy.c
    - condition: (section->parent_bundle != NULL)
      pos:
        line_end: 1441
        line_start: 1441
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 1472
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1472
    functionName: BundleSectionAppendPromise
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 5
    functionsReached:
    - xcalloc
    - strlen
    - PromiseAppendConstraint
    - assert
    - RvalNew
    - SeqNew
    - xstrdup
    - SeqAppend
    linkageType: ''
    returnType: Promise
    signature: Promise *BundleSectionAppendPromise(BundleSection *section, const char
      *promiser, Rval promisee, const char *classes, const char *varclasses)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/policy.c:1478,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1479,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1480,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1481,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/policy.c:1483,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/policy.c:1484,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/policy.c:1485,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/policy.c:1486,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - bundle
    argTypes:
    - Bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1474
    functionDepth: 2
    functionLinenumber: 1474
    functionLinenumberEnd: 1490
    functionName: BundleDestroy
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - free
    - SeqDestroy
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void BundleDestroy(Bundle *bundle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/policy.c:1496,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1497,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1498,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1499,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/policy.c:1501,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/policy.c:1502,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - body
    argTypes:
    - Body*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1492
    functionDepth: 2
    functionLinenumber: 1492
    functionLinenumberEnd: 1505
    functionName: BodyDestroy
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - free
    - SeqDestroy
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void BodyDestroy(Body *body)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/policy.c:1512,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/policy.c:1516,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1519,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1520,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/policy.c:1522,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1526
    functionName: PromiseDestroy
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 3
    functionsReached:
    - free
    - SeqDestroy
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void PromiseDestroy(Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/policy.c:1532,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/policy.c:1534,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/policy.c:1537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - lval
    - rval
    - classes
    - references_body
    argTypes:
    - char*
    - Rval
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1541
    functionName: ConstraintNew
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - SafeStringDuplicate
    linkageType: ''
    returnType: Constraint
    signature: Constraint *ConstraintNew(const char *lval, Rval rval, const char *classes,
      bool references_body)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ConstraintNew
      Src: /src/core/libpromises/policy.c:1545,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1549,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1551,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1552,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1554,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1555,1
    - Dst: RvalToString
      Src: /src/core/libpromises/policy.c:1564,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:1565,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:1566,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1567,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/policy.c:1570,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/policy.c:1570,1
    - Dst: RlistAppend
      Src: /src/core/libpromises/policy.c:1573,1
    - Dst: FnCallNew
      Src: /src/core/libpromises/policy.c:1575,1
    - Dst: RvalToString
      Src: /src/core/libpromises/policy.c:1576,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:1577,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:1578,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/policy.c:1581,1
    - Dst: BufferNew
      Src: /src/core/libpromises/policy.c:1588,1
    - Dst: BufferAppendF
      Src: /src/core/libpromises/policy.c:1589,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/policy.c:1590,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/policy.c:1591,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/policy.c:1592,1
    - Dst: RvalNew
      Src: /src/core/libpromises/policy.c:1593,1
    - Dst: BufferData
      Src: /src/core/libpromises/policy.c:1593,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/policy.c:1594,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:1600,1
    - Dst: SeqSet
      Src: /src/core/libpromises/policy.c:1604,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1609,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - pp
    - lval
    - rval
    - references_body
    argTypes:
    - Promise*
    - char*
    - Rval
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1543
    functionDepth: 8
    functionLinenumber: 1543
    functionLinenumberEnd: 1611
    functionName: PromiseAppendConstraint
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 6
    functionsReached:
    - BufferDestroy
    - RlistAppendScalar
    - Log
    - BufferNew
    - SeqLength
    - free
    - RvalDestroy
    - SeqAppend
    - BufferData
    - strcmp
    - RvalNew
    - SeqAt
    - BufferAppendF
    - RvalScalarValue
    - SeqSet
    - RlistAppend
    - RvalToString
    - ConstraintNew
    - ProgrammingError
    - FnCallNew
    linkageType: ''
    returnType: Constraint
    signature: Constraint *PromiseAppendConstraint(Promise *pp, const char *lval,
      Rval rval, bool references_body)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConstraintNew
      Src: /src/core/libpromises/policy.c:1616,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1620,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1622,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1623,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1623,1
    - Dst: SeqSet
      Src: /src/core/libpromises/policy.c:1625,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:1630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - body
    - lval
    - rval
    - classes
    - references_body
    argTypes:
    - Body*
    - char*
    - Rval
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1613
    functionDepth: 3
    functionLinenumber: 1613
    functionLinenumberEnd: 1633
    functionName: BodyAppendConstraint
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - SeqSet
    - SeqAppend
    - strcmp
    - ConstraintNew
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: Constraint
    signature: "Constraint *BodyAppendConstraint(Body *body, const char *lval, Rval
      rval, const char *classes,\n                                 bool references_body)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1645,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1647,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - bp
    - promise_type
    argTypes:
    - Bundle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1656
    functionName: BundleGetSection
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - strcmp
    - SeqAt
    linkageType: ''
    returnType: BundleSection
    signature: BundleSection *BundleGetSection(const Bundle *bp, const char *promise_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/policy.c:1670,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/policy.c:1676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - raw
    - out
    argTypes:
    - char*
    - Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1660
    functionDepth: 4
    functionLinenumber: 1660
    functionLinenumberEnd: 1680
    functionName: EscapeQuotes
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - BufferAppendChar
    linkageType: ''
    returnType: Buffer
    signature: Buffer *EscapeQuotes(const char *raw, Buffer *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JsonCopy
      Src: /src/core/libpromises/policy.c:1693,1
    - Dst: RvalContainerValue
      Src: /src/core/libpromises/policy.c:1693,1
    - Dst: BufferNewWithCapacity
      Src: /src/core/libpromises/policy.c:1698,1
    - Dst: strlen
      Src: /src/core/libpromises/policy.c:1698,1
    - Dst: EscapeQuotes
      Src: /src/core/libpromises/policy.c:1700,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1702,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1706,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1710,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1712,1
    - Dst: BufferData
      Src: /src/core/libpromises/policy.c:1712,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/policy.c:1714,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1723,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1725,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1726,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1730,1
    - Dst: AttributeValueToJson
      Src: /src/core/libpromises/policy.c:1730,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1733,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1742,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1743,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1744,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1747,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1751,1
    - Dst: AttributeValueToJson
      Src: /src/core/libpromises/policy.c:1751,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1754,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:1761,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 2
    argNames:
    - rval
    - symbolic_reference
    argTypes:
    - Rval
    - bool
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1764
        line_start: 1764
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 1767
      start: 1687
    functionDepth: 5
    functionLinenumber: 1687
    functionLinenumberEnd: 1767
    functionName: AttributeValueToJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - BufferData
    - BufferDestroy
    - EscapeQuotes
    - BufferNewWithCapacity
    - strlen
    - JsonCopy
    - assert
    - RvalContainerValue
    - AttributeValueToJson
    - JsonArrayAppendObject
    - JsonObjectAppendArray
    - ProgrammingError
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *AttributeValueToJson(Rval rval, bool symbolic_reference)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1771,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1773,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - name
    - children_name
    - children
    argTypes:
    - char*
    - char*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1769
    functionDepth: 0
    functionLinenumber: 1769
    functionLinenumberEnd: 1777
    functionName: CreateContextAsJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonObjectAppendArray
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *CreateContextAsJson(const char *name, const char *children_name,
      JsonElement *children)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1781,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1782,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1785,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1787,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1789,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1791,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1793,1
    - Dst: CreateContextAsJson
      Src: /src/core/libpromises/policy.c:1794,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1796,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/policy.c:1800,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1802,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/policy.c:1803,1
    - Dst: AttributeValueToJson
      Src: /src/core/libpromises/policy.c:1803,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1804,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1807,1
    - Dst: CreateContextAsJson
      Src: /src/core/libpromises/policy.c:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - constraints
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1779
    functionDepth: 6
    functionLinenumber: 1779
    functionLinenumberEnd: 1812
    functionName: BodyContextsToJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - JsonObjectAppendObject
    - JsonObjectAppendInteger
    - AttributeValueToJson
    - strcmp
    - JsonArrayAppendObject
    - SeqLength
    - JsonObjectCreate
    - JsonArrayCreate
    - JsonObjectAppendString
    - CreateContextAsJson
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *BodyContextsToJson(const Seq *constraints)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1816,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1817,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1820,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1822,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1829,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:1831,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1833,1
    - Dst: CreateContextAsJson
      Src: /src/core/libpromises/policy.c:1834,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1836,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/policy.c:1840,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1843,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1845,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1847,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1849,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/policy.c:1851,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1853,1
    - Dst: AttributeValueToJson
      Src: /src/core/libpromises/policy.c:1854,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/policy.c:1855,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1857,1
    - Dst: JsonObjectAppendObject
      Src: /src/core/libpromises/policy.c:1861,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1863,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1866,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1871,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1876,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/policy.c:1879,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/policy.c:1879,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1881,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1889,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1891,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:1894,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1896,1
    - Dst: CreateContextAsJson
      Src: /src/core/libpromises/policy.c:1897,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - promises
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1814
    functionDepth: 6
    functionLinenumber: 1814
    functionLinenumberEnd: 1902
    functionName: BundleContextsToJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - RlistScalarValue
    - JsonLength
    - JsonObjectAppendObject
    - JsonArrayAppendString
    - JsonObjectAppendInteger
    - AttributeValueToJson
    - strcmp
    - JsonArrayAppendObject
    - JsonObjectAppendArray
    - SeqLength
    - JsonObjectCreate
    - JsonArrayCreate
    - JsonObjectAppendString
    - CreateContextAsJson
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *BundleContextsToJson(const Seq *promises)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:1911,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1912,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1916,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/policy.c:1918,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1920,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1921,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1922,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1923,1
    - Dst: EvalContextEvaluationOrderToString
      Src: /src/core/libpromises/policy.c:1923,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1926,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/policy.c:1931,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/policy.c:1931,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1934,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1938,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:1940,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:1942,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1944,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/policy.c:1946,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1947,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1948,1
    - Dst: BundleContextsToJson
      Src: /src/core/libpromises/policy.c:1948,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:1950,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - bundle
    argTypes:
    - Bundle*
    assertStmts:
    - condition: (bundle != NULL)
      pos:
        line_end: 1910
        line_start: 1910
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 1957
      start: 1909
    functionDepth: 7
    functionLinenumber: 1909
    functionLinenumberEnd: 1957
    functionName: BundleToJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - assert
    - JsonArrayAppendString
    - JsonObjectAppendInteger
    - EvalContextEvaluationOrderToString
    - JsonObjectAppendArray
    - RlistScalarValue
    - SeqLength
    - BundleContextsToJson
    - JsonObjectCreate
    - JsonArrayAppendObject
    - JsonObjectAppendString
    - SeqAt
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *BundleToJson(const Bundle *bundle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:1966,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1970,1
    - Dst: JsonObjectAppendInteger
      Src: /src/core/libpromises/policy.c:1972,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1974,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1975,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/policy.c:1976,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:1979,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/policy.c:1984,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/policy.c:1984,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1987,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:1990,1
    - Dst: BodyContextsToJson
      Src: /src/core/libpromises/policy.c:1990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - body
    argTypes:
    - Body*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1964
    functionDepth: 7
    functionLinenumber: 1964
    functionLinenumberEnd: 1993
    functionName: BodyToJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - JsonArrayAppendString
    - JsonObjectAppendInteger
    - BodyContextsToJson
    - JsonObjectAppendArray
    - RlistScalarValue
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *BodyToJson(const Body *body)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/policy.c:2002,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:2005,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2007,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2009,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:2010,1
    - Dst: BundleToJson
      Src: /src/core/libpromises/policy.c:2010,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:2013,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/policy.c:2017,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2019,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2021,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/policy.c:2023,1
    - Dst: BodyToJson
      Src: /src/core/libpromises/policy.c:2023,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/policy.c:2026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - policy
    argTypes:
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2000
    functionDepth: 8
    functionLinenumber: 2000
    functionLinenumberEnd: 2030
    functionName: PolicyToJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 3
    functionsReached:
    - BodyToJson
    - JsonArrayAppendObject
    - BundleToJson
    - JsonObjectAppendArray
    - SeqLength
    - JsonObjectCreate
    - JsonArrayCreate
    - SeqAt
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *PolicyToJson(const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - indent_level
    argTypes:
    - Writer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2035
    functionDepth: 4
    functionLinenumber: 2035
    functionLinenumberEnd: 2045
    functionName: IndentPrint
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - WriterWriteChar
    linkageType: ''
    returnType: void
    signature: void IndentPrint(Writer *writer, int indent_level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteF
      Src: /src/core/libpromises/policy.c:2049,1
    - Dst: RvalWrite
      Src: /src/core/libpromises/policy.c:2052,1
    - Dst: RvalWriteQuoted
      Src: /src/core/libpromises/policy.c:2056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - writer
    - attribute
    - symbolic_reference
    argTypes:
    - Writer*
    - Constraint*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2047
    functionDepth: 2
    functionLinenumber: 2047
    functionLinenumberEnd: 2058
    functionName: AttributeToString
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - RvalWrite
    - RvalWriteQuoted
    linkageType: ''
    returnType: void
    signature: void AttributeToString(Writer *writer, Constraint *attribute, bool
      symbolic_reference)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2065,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/policy.c:2068,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/policy.c:2068,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2072,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - args
    argTypes:
    - Writer*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2061
    functionDepth: 5
    functionLinenumber: 2061
    functionLinenumberEnd: 2076
    functionName: ArgumentsToString
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - WriterWriteF
    - WriterWriteChar
    - WriterWrite
    - RlistScalarValue
    linkageType: ''
    returnType: void
    signature: void ArgumentsToString(Writer *writer, Rlist *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteF
      Src: /src/core/libpromises/policy.c:2083,1
    - Dst: ArgumentsToString
      Src: /src/core/libpromises/policy.c:2084,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2085,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2087,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2089,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2091,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2095,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2097,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/policy.c:2101,1
    - Dst: IndentPrint
      Src: /src/core/libpromises/policy.c:2105,1
    - Dst: AttributeToString
      Src: /src/core/libpromises/policy.c:2106,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2107,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2108,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - writer
    - body
    argTypes:
    - Writer*
    - Body*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2079
    functionDepth: 6
    functionLinenumber: 2079
    functionLinenumberEnd: 2112
    functionName: BodyToString
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - WriterWriteChar
    - WriterWrite
    - ArgumentsToString
    - strcmp
    - IndentPrint
    - SeqLength
    - WriterWriteF
    - AttributeToString
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void BodyToString(Writer *writer, Body *body)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteF
      Src: /src/core/libpromises/policy.c:2117,1
    - Dst: ArgumentsToString
      Src: /src/core/libpromises/policy.c:2118,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2119,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2121,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2123,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/policy.c:2125,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2128,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2130,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2132,1
    - Dst: IndentPrint
      Src: /src/core/libpromises/policy.c:2135,1
    - Dst: WriterWriteF
      Src: /src/core/libpromises/policy.c:2136,1
    - Dst: IndentPrint
      Src: /src/core/libpromises/policy.c:2139,1
    - Dst: ScalarWrite
      Src: /src/core/libpromises/policy.c:2140,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2150,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2152,1
    - Dst: IndentPrint
      Src: /src/core/libpromises/policy.c:2154,1
    - Dst: AttributeToString
      Src: /src/core/libpromises/policy.c:2155,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2156,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2158,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2159,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2162,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2163,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2166,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2168,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - writer
    - bundle
    argTypes:
    - Writer*
    - Bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2115
    functionDepth: 6
    functionLinenumber: 2115
    functionLinenumberEnd: 2173
    functionName: BundleToString
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - ScalarWrite
    - WriterWriteChar
    - WriterWrite
    - ArgumentsToString
    - strcmp
    - IndentPrint
    - SeqLength
    - WriterWriteF
    - AttributeToString
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void BundleToString(Writer *writer, Bundle *bundle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2182,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2184,1
    - Dst: BundleToString
      Src: /src/core/libpromises/policy.c:2185,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2186,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2189,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2191,1
    - Dst: BodyToString
      Src: /src/core/libpromises/policy.c:2192,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - policy
    - writer
    argTypes:
    - Policy*
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2180
    functionDepth: 7
    functionLinenumber: 2180
    functionLinenumberEnd: 2196
    functionName: PolicyToString
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - BodyToString
    - BundleToString
    - WriterWriteChar
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void PolicyToString(const Policy *policy, Writer *writer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2202,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2204,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2204,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2206,1
    - Dst: xstrdup
      Src: /src/core/libpromises/policy.c:2207,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2209,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2211,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2214,1
    - Dst: RvalFromJson
      Src: /src/core/libpromises/policy.c:2216,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2216,1
    - Dst: RlistAppend
      Src: /src/core/libpromises/policy.c:2217,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/policy.c:2218,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2223,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2225,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2226,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2229,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2231,1
    - Dst: RvalFromJson
      Src: /src/core/libpromises/policy.c:2232,1
    - Dst: RlistAppend
      Src: /src/core/libpromises/policy.c:2234,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/policy.c:2235,1
    - Dst: FnCallNew
      Src: /src/core/libpromises/policy.c:2238,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:2244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - json_rval
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2200
    functionDepth: 2
    functionLinenumber: 2200
    functionLinenumberEnd: 2246
    functionName: RvalFromJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - JsonLength
    - JsonArrayGetAsObject
    - JsonObjectGetAsArray
    - RvalFromJson
    - JsonObjectGetAsString
    - RlistAppend
    - strcmp
    - xstrdup
    - ProgrammingError
    - FnCallNew
    - RvalDestroy
    linkageType: ''
    returnType: Rval
    signature: Rval RvalFromJson(JsonElement *json_rval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2250,1
    - Dst: JsonObjectGetAsObject
      Src: /src/core/libpromises/policy.c:2252,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2253,1
    - Dst: RvalFromJson
      Src: /src/core/libpromises/policy.c:2255,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/policy.c:2257,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - promise
    - json_constraint
    argTypes:
    - Promise*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2248
    functionDepth: 9
    functionLinenumber: 2248
    functionLinenumberEnd: 2260
    functionName: PromiseAppendConstraintJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - JsonObjectGetAsObject
    - PromiseAppendConstraint
    - RvalFromJson
    - JsonObjectGetAsString
    - strcmp
    linkageType: ''
    returnType: Constraint
    signature: Constraint *PromiseAppendConstraintJson(Promise *promise, JsonElement
      *json_constraint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2264,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/libpromises/policy.c:2266,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2268,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2269,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2271,1
    - Dst: PromiseAppendConstraintJson
      Src: /src/core/libpromises/policy.c:2272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - section
    - json_promise
    - context
    argTypes:
    - BundleSection*
    - JsonElement*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2262
    functionDepth: 10
    functionLinenumber: 2262
    functionLinenumberEnd: 2276
    functionName: BundleSectionAppendPromiseJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - PromiseAppendConstraintJson
    - JsonArrayGetAsObject
    - JsonObjectGetAsArray
    - BundleSectionAppendPromise
    - JsonObjectGetAsString
    linkageType: ''
    returnType: Promise
    signature: Promise *BundleSectionAppendPromiseJson(BundleSection *section, JsonElement
      *json_promise, const char *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2280,1
    - Dst: BundleAppendSection
      Src: /src/core/libpromises/policy.c:2282,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2284,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2285,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2287,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2289,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2291,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2292,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2294,1
    - Dst: BundleSectionAppendPromiseJson
      Src: /src/core/libpromises/policy.c:2295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bundle
    - json_promise_type
    argTypes:
    - Bundle*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2278
    functionDepth: 11
    functionLinenumber: 2278
    functionLinenumberEnd: 2300
    functionName: BundleAppendSectionJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - BundleAppendSection
    - JsonArrayGetAsObject
    - JsonObjectGetAsArray
    - JsonObjectGetAsString
    - BundleSectionAppendPromiseJson
    linkageType: ''
    returnType: BundleSection
    signature: BundleSection *BundleAppendSectionJson(Bundle *bundle, JsonElement
      *json_promise_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2304,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2305,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2306,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2307,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2308,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2312,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2313,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/policy.c:2315,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libpromises/policy.c:2315,1
    - Dst: PolicyAppendBundle
      Src: /src/core/libpromises/policy.c:2319,1
    - Dst: EvalContextEvaluationOrderFromString
      Src: /src/core/libpromises/policy.c:2319,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2322,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2323,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2325,1
    - Dst: BundleAppendSectionJson
      Src: /src/core/libpromises/policy.c:2326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - policy
    - json_bundle
    argTypes:
    - Policy*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2302
    functionDepth: 12
    functionLinenumber: 2302
    functionLinenumberEnd: 2331
    functionName: PolicyAppendBundleJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - EvalContextEvaluationOrderFromString
    - JsonArrayGetAsObject
    - RlistAppendScalar
    - JsonObjectGetAsArray
    - JsonObjectGetAsString
    - JsonArrayGetAsString
    - BundleAppendSectionJson
    - PolicyAppendBundle
    linkageType: ''
    returnType: Bundle
    signature: Bundle *PolicyAppendBundleJson(Policy *policy, JsonElement *json_bundle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2335,1
    - Dst: JsonObjectGetAsObject
      Src: /src/core/libpromises/policy.c:2337,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2338,1
    - Dst: RvalFromJson
      Src: /src/core/libpromises/policy.c:2340,1
    - Dst: BodyAppendConstraint
      Src: /src/core/libpromises/policy.c:2342,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - body
    - json_constraint
    - context
    argTypes:
    - Body*
    - JsonElement*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2333
    functionDepth: 4
    functionLinenumber: 2333
    functionLinenumberEnd: 2345
    functionName: BodyAppendConstraintJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - JsonObjectGetAsObject
    - RvalFromJson
    - JsonObjectGetAsString
    - strcmp
    - BodyAppendConstraint
    linkageType: ''
    returnType: Constraint
    signature: Constraint *BodyAppendConstraintJson(Body *body, JsonElement *json_constraint,
      const char *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2349,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2350,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2351,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2352,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2356,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2357,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/policy.c:2359,1
    - Dst: JsonArrayGetAsString
      Src: /src/core/libpromises/policy.c:2359,1
    - Dst: PolicyAppendBody
      Src: /src/core/libpromises/policy.c:2363,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/policy.c:2364,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2366,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2367,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2369,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/policy.c:2370,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2373,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2374,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2376,1
    - Dst: BodyAppendConstraintJson
      Src: /src/core/libpromises/policy.c:2377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - policy
    - json_body
    argTypes:
    - Policy*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2347
    functionDepth: 5
    functionLinenumber: 2347
    functionLinenumberEnd: 2384
    functionName: PolicyAppendBodyJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - JsonLength
    - BodyAppendConstraintJson
    - JsonArrayGetAsObject
    - RlistAppendScalar
    - JsonObjectGetAsArray
    - PolicyAppendBody
    - JsonObjectGetAsString
    - JsonArrayGetAsString
    - RlistDestroy
    linkageType: ''
    returnType: Body
    signature: Body *PolicyAppendBodyJson(Policy *policy, JsonElement *json_body)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PolicyNew
      Src: /src/core/libpromises/policy.c:2393,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2395,1
    - Dst: JsonObjectGetAsArray
      Src: /src/core/libpromises/policy.c:2396,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2405,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2407,1
    - Dst: PolicyAppendBundleJson
      Src: /src/core/libpromises/policy.c:2408,1
    - Dst: JsonLength
      Src: /src/core/libpromises/policy.c:2413,1
    - Dst: JsonArrayGetAsObject
      Src: /src/core/libpromises/policy.c:2415,1
    - Dst: PolicyAppendBodyJson
      Src: /src/core/libpromises/policy.c:2416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - json_policy
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2391
    functionDepth: 13
    functionLinenumber: 2391
    functionLinenumberEnd: 2421
    functionName: PolicyFromJson
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 2
    functionsReached:
    - JsonLength
    - JsonArrayGetAsObject
    - PolicyNew
    - JsonObjectGetAsArray
    - PolicyAppendBundleJson
    - PolicyAppendBodyJson
    linkageType: ''
    returnType: Policy
    signature: Policy *PolicyFromJson(JsonElement *json_policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libpromises/policy.c:2431,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2433,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2435,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2436,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:2438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - body
    - lval
    argTypes:
    - Body*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2429
    functionDepth: 3
    functionLinenumber: 2429
    functionLinenumberEnd: 2443
    functionName: BodyGetConstraint
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 2
    functionsReached:
    - SeqNew
    - strcmp
    - SeqLength
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *BodyGetConstraint(Body *body, const char *lval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2447,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2449,1
    - Dst: StringEqual
      Src: /src/core/libpromises/policy.c:2450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - body
    - lval
    argTypes:
    - Body*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2445
    functionDepth: 4
    functionLinenumber: 2445
    functionLinenumberEnd: 2457
    functionName: BodyHasConstraint
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 2
    functionsReached:
    - SeqLength
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool BodyHasConstraint(const Body *body, const char *lval)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/policy.c:2475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cp
    argTypes:
    - Constraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2464
    functionDepth: 1
    functionLinenumber: 2464
    functionLinenumberEnd: 2478
    functionName: ConstraintContext
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *ConstraintContext(const Constraint *cp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2487,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2489,1
    - Dst: ConstraintContext
      Src: /src/core/libpromises/policy.c:2491,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/policy.c:2492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - constraints
    argTypes:
    - EvalContext*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2485
    functionDepth: 2
    functionLinenumber: 2485
    functionLinenumberEnd: 2499
    functionName: EffectiveConstraint
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - SeqLength
    - IsDefinedClass
    - ConstraintContext
    - SeqAt
    linkageType: ''
    returnType: Constraint
    signature: Constraint *EffectiveConstraint(const EvalContext *ctx, Seq *constraints)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RvalDestroy
      Src: /src/core/libpromises/policy.c:2505,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:2506,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:2507,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:2509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cp
    argTypes:
    - Constraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2501
    functionDepth: 1
    functionLinenumber: 2501
    functionLinenumberEnd: 2511
    functionName: ConstraintDestroy
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - free
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void ConstraintDestroy(Constraint *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBooleanWithDefault
      Src: /src/core/libpromises/policy.c:2522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - lval
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2520
    functionDepth: 1
    functionLinenumber: 2520
    functionLinenumberEnd: 2523
    functionName: PromiseGetConstraintAsBoolean
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsBooleanWithDefault
    linkageType: ''
    returnType: int
    signature: int PromiseGetConstraintAsBoolean(const EvalContext *ctx, const char
      *lval, const Promise *pp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:2532,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2536,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2538,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2540,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/policy.c:2542,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2546,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:2547,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2557,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:2559,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:2560,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2563,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2563,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2569,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2569,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2580,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/policy.c:2583,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - ctx
    - lval
    - pp
    - default_val
    - with_warning
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    - int
    - bool
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 2531
        line_start: 2531
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 2589
      start: 2529
    functionDepth: 9
    functionLinenumber: 2529
    functionLinenumberEnd: 2589
    functionName: PromiseGetConstraintAsBooleanWithDefault
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - PromiseGetBundle
    - assert
    - PromiseRef
    - FatalError
    - IsDefinedClass
    - strcmp
    - Log
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: int
    signature: "int PromiseGetConstraintAsBooleanWithDefault(const EvalContext *ctx,
      const char *lval, const Promise *pp,\n                                             int
      default_val, bool with_warning)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2603,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2605,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2607,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/policy.c:2609,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2613,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2623,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:2625,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2628,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2628,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2634,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2634,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - lval
    - constraints
    argTypes:
    - EvalContext*
    - char*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2599
    functionDepth: 8
    functionLinenumber: 2599
    functionLinenumberEnd: 2647
    functionName: ConstraintsGetAsBoolean
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - FatalError
    - Log
    - IsDefinedClass
    - strcmp
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: int
    signature: int ConstraintsGetAsBoolean(const EvalContext *ctx, const char *lval,
      const Seq *constraints)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2655,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2657,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:2659,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/policy.c:2661,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2665,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:2666,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2676,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:2679,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:2680,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - lval
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2651
    functionDepth: 9
    functionLinenumber: 2651
    functionLinenumberEnd: 2688
    functionName: PromiseBundleOrBodyConstraintExists
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - PromiseRef
    - FatalError
    - Log
    - IsDefinedClass
    - strcmp
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool PromiseBundleOrBodyConstraintExists(const EvalContext *ctx, const
      char *lval, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/policy.c:2692,1
    - Dst: StringEqual
      Src: /src/core/libpromises/policy.c:2692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2690
    functionDepth: 4
    functionLinenumber: 2690
    functionLinenumberEnd: 2693
    functionName: CheckScalarNotEmptyVarRef
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool CheckScalarNotEmptyVarRef(const char *scalar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:2697,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:2698,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:2699,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/policy.c:2701,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2704,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2707,1
    - Dst: StringEqual
      Src: /src/core/libpromises/policy.c:2709,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:2711,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:2713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pp
    - errors
    argTypes:
    - Promise*
    - Seq*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 2696
        line_start: 2696
        source_file: /src/core/libpromises/policy.c
    - condition: (errors != NULL)
      pos:
        line_end: 2698
        line_start: 2698
        source_file: /src/core/libpromises/policy.c
    - condition: (pp->parent_section != NULL)
      pos:
        line_end: 2697
        line_start: 2697
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 2728
      start: 2695
    functionDepth: 4
    functionLinenumber: 2695
    functionLinenumberEnd: 2728
    functionName: ValidateCustomPromise
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - PromiseGetPromiseType
    - assert
    - SeqAppend
    - PolicyErrorNew
    - SeqLength
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool ValidateCustomPromise(const Promise *pp, Seq *errors)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:2732,1
    - Dst: CheckScalarNotEmptyVarRef
      Src: /src/core/libpromises/policy.c:2736,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:2738,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:2738,1
    - Dst: IsBuiltInPromiseType
      Src: /src/core/libpromises/policy.c:2743,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/policy.c:2743,1
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/libpromises/policy.c:2745,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/policy.c:2746,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/policy.c:2755,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:2756,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:2764,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:2766,1
    - Dst: ConstraintCheckSyntax
      Src: /src/core/libpromises/policy.c:2767,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:2773,1
    - Dst: ValidateCustomPromise
      Src: /src/core/libpromises/policy.c:2774,1
    - Dst: assert
      Src: /src/core/libpromises/policy.c:2778,1
    - Dst: PromiseTypeSyntax*::check_promise
      Src: /src/core/libpromises/policy.c:2779,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pp
    - errors
    argTypes:
    - Promise*
    - Seq*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 2731
        line_start: 2731
        source_file: /src/core/libpromises/policy.c
    - condition: (is_builtin)
      pos:
        line_end: 2777
        line_start: 2777
        source_file: /src/core/libpromises/policy.c
    - condition: (!is_builtin)
      pos:
        line_end: 2772
        line_start: 2772
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 2783
      start: 2730
    functionDepth: 5
    functionLinenumber: 2730
    functionLinenumberEnd: 2783
    functionName: PromiseCheck
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - CheckScalarNotEmptyVarRef
    - PromiseGetPromiseType
    - assert
    - PromiseTypeSyntax*::check_promise
    - ConstraintCheckSyntax
    - PromiseTypeSyntaxGet
    - IsBuiltInPromiseType
    - SeqLength
    - ValidateCustomPromise
    - SeqAt
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool PromiseCheck(const Promise *pp, Seq *errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2785
    functionDepth: 0
    functionLinenumber: 2785
    functionLinenumberEnd: 2788
    functionName: PromiseGetNamespace
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *PromiseGetNamespace(const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2793
    functionName: PromiseGetBundle
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: Bundle
    signature: Bundle *PromiseGetBundle(const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/policy.c:2797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2798
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2798
    functionName: PromiseGetPolicy
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 4
    functionsReached:
    - PromiseGetBundle
    linkageType: ''
    returnType: Policy
    signature: Policy *PromiseGetPolicy(const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2802,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2803,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2804,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - w
    - bp
    argTypes:
    - Writer*
    - Bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2800
    functionDepth: 5
    functionLinenumber: 2800
    functionLinenumberEnd: 2806
    functionName: BundlePath
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - WriterWriteChar
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void BundlePath(Writer *w, const Bundle *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BundlePath
      Src: /src/core/libpromises/policy.c:2810,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2811,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - w
    - section
    argTypes:
    - Writer*
    - BundleSection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2808
    functionDepth: 6
    functionLinenumber: 2808
    functionLinenumberEnd: 2813
    functionName: PromiseTypePath
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - WriterWriteChar
    - WriterWrite
    - BundlePath
    linkageType: ''
    returnType: void
    signature: void PromiseTypePath(Writer *w, const BundleSection *section)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseTypePath
      Src: /src/core/libpromises/policy.c:2820,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2821,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2822,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/policy.c:2823,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/policy.c:2824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - w
    - pp
    argTypes:
    - Writer*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2818
    functionDepth: 7
    functionLinenumber: 2818
    functionLinenumberEnd: 2825
    functionName: PromisePath
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - PromiseTypePath
    - WriterWriteChar
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void PromisePath(Writer *w, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetImmediateRvalValue
      Src: /src/core/libpromises/policy.c:2834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2832
    functionDepth: 1
    functionLinenumber: 2832
    functionLinenumberEnd: 2835
    functionName: PromiseGetHandle
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 4
    functionsReached:
    - PromiseGetImmediateRvalValue
    linkageType: ''
    returnType: char
    signature: char *PromiseGetHandle(const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/policy.c:2846,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2851,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:2853,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:2854,1
    - Dst: IntFromString
      Src: /src/core/libpromises/policy.c:2857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - lval
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2843
    functionDepth: 9
    functionLinenumber: 2843
    functionLinenumberEnd: 2861
    functionName: PromiseGetConstraintAsInt
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 2
    functionsReached:
    - PromiseGetConstraint
    - PromiseRef
    - FatalError
    - Log
    - IntFromString
    linkageType: ''
    returnType: int
    signature: int PromiseGetConstraintAsInt(const EvalContext *ctx, const char *lval,
      const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/policy.c:2871,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2876,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:2878,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/policy.c:2881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - lval
    - pp
    - value_out
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2869
    functionDepth: 9
    functionLinenumber: 2869
    functionLinenumberEnd: 2886
    functionName: PromiseGetConstraintAsReal
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - FatalError
    - Log
    - DoubleFromString
    - PromiseGetConstraint
    linkageType: ''
    returnType: bool
    signature: bool PromiseGetConstraintAsReal(const EvalContext *ctx, const char
      *lval, const Promise *pp, double *value_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libpromises/policy.c:2903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - s
    - mode_out
    argTypes:
    - char*
    - mode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2893
    functionDepth: 0
    functionLinenumber: 2893
    functionLinenumberEnd: 2912
    functionName: Str2Mode
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: bool
    signature: bool Str2Mode(const char *s, mode_t *mode_out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/policy.c:2926,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2931,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:2933,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:2934,1
    - Dst: Str2Mode
      Src: /src/core/libpromises/policy.c:2937,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2939,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:2940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - lval
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2920
    functionDepth: 9
    functionLinenumber: 2920
    functionLinenumberEnd: 2945
    functionName: PromiseGetConstraintAsOctal
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - PromiseGetConstraint
    - PromiseRef
    - FatalError
    - Log
    - Str2Mode
    linkageType: ''
    returnType: mode_t
    signature: mode_t PromiseGetConstraintAsOctal(const EvalContext *ctx, const char
      *lval, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - lval
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2951
    functionDepth: 0
    functionLinenumber: 2951
    functionLinenumberEnd: 2954
    functionName: PromiseGetConstraintAsUid
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uid_t
    signature: uid_t PromiseGetConstraintAsUid(const EvalContext *ctx, const char
      *lval, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/policy.c:2968,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:2973,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:2976,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:2977,1
    - Dst: Str2Uid
      Src: /src/core/libpromises/policy.c:2980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - lval
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2964
    functionDepth: 14
    functionLinenumber: 2964
    functionLinenumberEnd: 2984
    functionName: PromiseGetConstraintAsUid
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - PromiseGetConstraint
    - PromiseRef
    - FatalError
    - Log
    - Str2Uid
    linkageType: ''
    returnType: uid_t
    signature: uid_t PromiseGetConstraintAsUid(const EvalContext *ctx, const char
      *lval, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - lval
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2995
    functionName: PromiseGetConstraintAsGid
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gid_t
    signature: gid_t PromiseGetConstraintAsGid(const EvalContext *ctx, char *lval,
      const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/policy.c:3009,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:3014,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:3017,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:3018,1
    - Dst: Str2Gid
      Src: /src/core/libpromises/policy.c:3021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - lval
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 3005
    functionDepth: 14
    functionLinenumber: 3005
    functionLinenumberEnd: 3025
    functionName: PromiseGetConstraintAsGid
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - PromiseGetConstraint
    - PromiseRef
    - FatalError
    - Log
    - Str2Gid
    linkageType: ''
    returnType: gid_t
    signature: gid_t PromiseGetConstraintAsGid(const EvalContext *ctx, char *lval,
      const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/policy.c:3039,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:3044,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:3045,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:3046,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/policy.c:3049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - lval
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3053
      start: 3037
    functionDepth: 9
    functionLinenumber: 3037
    functionLinenumberEnd: 3053
    functionName: PromiseGetConstraintAsList
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 3
    functionsReached:
    - PromiseGetConstraint
    - PromiseRef
    - FatalError
    - Log
    - RvalRlistValue
    linkageType: ''
    returnType: Rlist
    signature: Rlist *PromiseGetConstraintAsList(const EvalContext *ctx, const char
      *lval, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:3068,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:3070,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pp
    - lval
    argTypes:
    - Promise*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 3061
    functionDepth: 1
    functionLinenumber: 3061
    functionLinenumberEnd: 3079
    functionName: PromiseGetConstraint
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 9
    functionsReached:
    - SeqLength
    - strcmp
    - SeqAt
    linkageType: ''
    returnType: Constraint
    signature: Constraint *PromiseGetConstraint(const Promise *pp, const char *lval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:3083,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:3084,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:3086,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3091,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pp
    - lval
    - type
    argTypes:
    - Promise*
    - char*
    - RvalType
    assertStmts:
    - condition: (pp)
      pos:
        line_end: 3082
        line_start: 3082
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 3098
      start: 3081
    functionDepth: 1
    functionLinenumber: 3081
    functionLinenumberEnd: 3098
    functionName: PromiseGetConstraintWithType
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - strcmp
    - SeqAt
    linkageType: ''
    returnType: Constraint
    signature: Constraint *PromiseGetConstraintWithType(const Promise *pp, const char
      *lval, RvalType type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:3116,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:3118,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pp
    - lval
    argTypes:
    - Promise*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3135
      start: 3109
    functionDepth: 1
    functionLinenumber: 3109
    functionLinenumberEnd: 3135
    functionName: PromiseGetImmediateConstraint
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - strcmp
    - SeqAt
    linkageType: ''
    returnType: Constraint
    signature: Constraint *PromiseGetImmediateConstraint(const Promise *pp, const
      char *lval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetImmediateConstraint
      Src: /src/core/libpromises/policy.c:3150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - lval
    - pp
    - rtype
    argTypes:
    - char*
    - Promise*
    - RvalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3160
      start: 3148
    functionDepth: 2
    functionLinenumber: 3148
    functionLinenumberEnd: 3160
    functionName: PromiseGetImmediateRvalValue
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 1
    functionsReached:
    - PromiseGetImmediateConstraint
    linkageType: ''
    returnType: void
    signature: void *PromiseGetImmediateRvalValue(const char *lval, const Promise
      *pp, RvalType rtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/policy.c:3173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pp
    - lval
    - rtype
    argTypes:
    - Promise*
    - char*
    - RvalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3171
    functionDepth: 2
    functionLinenumber: 3171
    functionLinenumberEnd: 3183
    functionName: PromiseGetConstraintAsRval
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 8
    functionsReached:
    - PromiseGetConstraint
    linkageType: ''
    returnType: void
    signature: void *PromiseGetConstraintAsRval(const Promise *pp, const char *lval,
      RvalType rtype)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:3199,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:3201,1
    - Dst: ConstraintCheckType
      Src: /src/core/libpromises/policy.c:3202,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/policy.c:3206,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/policy.c:3208,1
    - Dst: PolicyErrorToString
      Src: /src/core/libpromises/policy.c:3209,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:3211,1
    - Dst: PolicyErrorDestroy
      Src: /src/core/libpromises/policy.c:3212,1
    - Dst: free
      Src: /src/core/libpromises/policy.c:3213,1
    - Dst: FatalError
      Src: /src/core/libpromises/policy.c:3215,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3222,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/policy.c:3222,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/policy.c:3229,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/policy.c:3231,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/policy.c:3234,1
    - Dst: ReturnItemInClass
      Src: /src/core/libpromises/policy.c:3235,1
    - Dst: Log
      Src: /src/core/libpromises/policy.c:3238,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/policy.c:3242,1
    - Dst: PrependItem
      Src: /src/core/libpromises/policy.c:3246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3197
    functionDepth: 9
    functionLinenumber: 3197
    functionLinenumberEnd: 3249
    functionName: PromiseRecheckAllConstraints
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - ReturnItemInClass
    - PromiseGetBundle
    - PolicyErrorToString
    - PolicyErrorDestroy
    - PromiseGetPromiseType
    - IsExpandable
    - PromiseRef
    - ConstraintCheckType
    - FatalError
    - Log
    - strcmp
    - PromiseGetConstraintAsRval
    - PrependItem
    - SeqLength
    - free
    - SeqAt
    - PolicyErrorNew
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: void
    signature: void PromiseRecheckAllConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3258,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/policy.c:3260,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3286,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3300,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/policy.c:3302,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3307,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/policy.c:3309,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3327,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/policy.c:3329,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 1
    argNames:
    - cp
    argTypes:
    - Constraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3253
    functionDepth: 2
    functionLinenumber: 3253
    functionLinenumberEnd: 3334
    functionName: ConstraintCheckType
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 2
    functionsReached:
    - CheckConstraintTypeMatch
    - strcmp
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: SyntaxTypeMatch ConstraintCheckType(const Constraint *cp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3343,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3345,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3351,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3356,1
    - Dst: strcmp
      Src: /src/core/libpromises/policy.c:3361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3367
      start: 3340
    functionDepth: 0
    functionLinenumber: 3340
    functionLinenumberEnd: 3367
    functionName: BundleTypeCheck
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool BundleTypeCheck(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/policy.c:3371,1
    - Dst: SeqLength
      Src: /src/core/libpromises/policy.c:3373,1
    - Dst: SeqAt
      Src: /src/core/libpromises/policy.c:3376,1
    - Dst: StringEqual
      Src: /src/core/libpromises/policy.c:3377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - policy
    - name
    argTypes:
    - Policy*
    - char*
    assertStmts:
    - condition: (policy != NULL)
      pos:
        line_end: 3370
        line_start: 3370
        source_file: /src/core/libpromises/policy.c
    constantsTouched: []
    func_position:
      end: 3383
      start: 3369
    functionDepth: 4
    functionLinenumber: 3369
    functionLinenumberEnd: 3383
    functionName: PolicyHasCustomPromiseType
    functionSourceFile: /src/core/libpromises/policy.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool PolicyHasCustomPromiseType(const Policy *policy, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netgroup
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: setnetgrent
    functionSourceFile: /src/core/libpromises/patches.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setnetgrent(const char *netgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - machinep
    - userp
    - domainp
    argTypes:
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: getnetgrent
    functionSourceFile: /src/core/libpromises/patches.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getnetgrent(char **machinep, char **userp, char **domainp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: endnetgrent
    functionSourceFile: /src/core/libpromises/patches.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void endnetgrent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setregid
      Src: /src/core/libpromises/patches.c:98,1
    - Dst: Log
      Src: /src/core/libpromises/patches.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - gid
    argTypes:
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 8
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: setegid
    functionSourceFile: /src/core/libpromises/patches.c
    functionUses: 0
    functionsReached:
    - setregid
    - Log
    linkageType: ''
    returnType: int
    signature: int setegid(gid_t gid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/libpromises/patches.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: IsPrivileged
    functionSourceFile: /src/core/libpromises/patches.c
    functionUses: 0
    functionsReached:
    - getuid
    linkageType: ''
    returnType: bool
    signature: bool IsPrivileged()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: localtime_r
      Src: /src/core/libpromises/patches.c:136,1
    - Dst: Log
      Src: /src/core/libpromises/patches.c:138,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/patches.c:138,1
    - Dst: cf_format_strtimestamp
      Src: /src/core/libpromises/patches.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - time
    - buf
    argTypes:
    - time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: cf_strtimestamp_local
    functionSourceFile: /src/core/libpromises/patches.c
    functionUses: 3
    functionsReached:
    - GetErrorStr
    - Log
    - localtime_r
    - cf_format_strtimestamp
    linkageType: ''
    returnType: char
    signature: char *cf_strtimestamp_local(const time_t time, char *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/core/libpromises/patches.c:151,1
    - Dst: Log
      Src: /src/core/libpromises/patches.c:153,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/patches.c:153,1
    - Dst: cf_format_strtimestamp
      Src: /src/core/libpromises/patches.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - time
    - buf
    argTypes:
    - time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 8
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: cf_strtimestamp_utc
    functionSourceFile: /src/core/libpromises/patches.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - gmtime_r
    - Log
    - cf_format_strtimestamp
    linkageType: ''
    returnType: char
    signature: char *cf_strtimestamp_utc(const time_t time, char *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/patches.c:167,1
    - Dst: snprintf
      Src: /src/core/libpromises/patches.c:173,1
    - Dst: Log
      Src: /src/core/libpromises/patches.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tm
    - buf
    argTypes:
    - struct tm*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 8
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: cf_format_strtimestamp
    functionSourceFile: /src/core/libpromises/patches.c
    functionUses: 2
    functionsReached:
    - Log
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *cf_format_strtimestamp(struct tm *tm, char *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CopyFile
      Src: /src/core/libpromises/patches.c:195,1
    - Dst: File_Copy
      Src: /src/core/libpromises/patches.c:201,1
    - Dst: symlink
      Src: /src/core/libpromises/patches.c:206,1
    - Dst: link
      Src: /src/core/libpromises/patches.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - from
    - to
    - sym
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 186
    functionDepth: 9
    functionLinenumber: 186
    functionLinenumberEnd: 222
    functionName: LinkOrCopy
    functionSourceFile: /src/core/libpromises/patches.c
    functionUses: 1
    functionsReached:
    - File_Copy
    - CopyFile
    - link
    - symlink
    linkageType: ''
    returnType: bool
    signature: bool LinkOrCopy(const char *from, const char *to, int sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UidListDestroy
      Src: /src/core/libpromises/attributes.c:44,1
    - Dst: GidListDestroy
      Src: /src/core/libpromises/attributes.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - whom
    argTypes:
    - Attributes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: ClearFilesAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GidListDestroy
    - UidListDestroy
    linkageType: ''
    returnType: void
    signature: void ClearFilesAttributes(Attributes *whom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:54,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:55,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:56,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:57,1
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:58,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:59,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:60,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:61,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:62,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:63,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:65,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:66,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:67,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:68,1
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:75,1
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:76,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:81,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:82,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:83,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:84,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:85,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:86,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:87,1
    - Dst: GetAclConstraints
      Src: /src/core/libpromises/attributes.c:89,1
    - Dst: GetPermissionConstraints
      Src: /src/core/libpromises/attributes.c:90,1
    - Dst: GetSelectConstraints
      Src: /src/core/libpromises/attributes.c:91,1
    - Dst: GetDeleteConstraints
      Src: /src/core/libpromises/attributes.c:92,1
    - Dst: GetFSAttrsConstraints
      Src: /src/core/libpromises/attributes.c:93,1
    - Dst: GetRenameConstraints
      Src: /src/core/libpromises/attributes.c:94,1
    - Dst: GetChangeMgtConstraints
      Src: /src/core/libpromises/attributes.c:95,1
    - Dst: GetCopyConstraints
      Src: /src/core/libpromises/attributes.c:96,1
    - Dst: GetLinkConstraints
      Src: /src/core/libpromises/attributes.c:97,1
    - Dst: GetEditDefaults
      Src: /src/core/libpromises/attributes.c:98,1
    - Dst: GetRecursionConstraints
      Src: /src/core/libpromises/attributes.c:108,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:112,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:113,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:114,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 48
    functionDepth: 10
    functionLinenumber: 48
    functionLinenumberEnd: 118
    functionName: GetFilesAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetFSAttrsConstraints
    - GetRecursionConstraints
    - PromiseBundleOrBodyConstraintExists
    - GetEditDefaults
    - GetTransactionConstraints
    - GetLinkConstraints
    - GetDeleteConstraints
    - GetChangeMgtConstraints
    - GetAclConstraints
    - GetRenameConstraints
    - GetCopyConstraints
    - PromiseGetConstraintAsRval
    - GetClassDefinitionConstraints
    - GetSelectConstraints
    - PromiseGetConstraintAsBoolean
    - GetPermissionConstraints
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetFilesAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:126,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:127,1
    - Dst: GetReportConstraints
      Src: /src/core/libpromises/attributes.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: GetReportsAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetTransactionConstraints
    - GetReportConstraints
    - GetClassDefinitionConstraints
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetReportsAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:139,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:140,1
    - Dst: GetEnvironmentsConstraints
      Src: /src/core/libpromises/attributes.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: GetEnvironmentsAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetTransactionConstraints
    - GetEnvironmentsConstraints
    - GetClassDefinitionConstraints
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetEnvironmentsAttributes(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:152,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:153,1
    - Dst: GetServicesConstraints
      Src: /src/core/libpromises/attributes.c:154,1
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 10
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: GetServicesAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetTransactionConstraints
    - GetClassDefinitionConstraints
    - PromiseBundleOrBodyConstraintExists
    - GetServicesConstraints
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetServicesAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:166,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:167,1
    - Dst: GetPackageConstraints
      Src: /src/core/libpromises/attributes.c:168,1
    - Dst: GetNewPackageConstraints
      Src: /src/core/libpromises/attributes.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: GetPackageAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetTransactionConstraints
    - GetNewPackageConstraints
    - GetClassDefinitionConstraints
    - GetPackageConstraints
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetPackageAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:180,1
    - Dst: UserStateFromString
      Src: /src/core/libpromises/attributes.c:181,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:183,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:185,1
    - Dst: PasswordFormatFromString
      Src: /src/core/libpromises/attributes.c:186,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:187,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:188,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:190,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:191,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:192,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:194,1
    - Dst: PromiseGetImmediateConstraint
      Src: /src/core/libpromises/attributes.c:196,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:201,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 175
    functionDepth: 10
    functionLinenumber: 175
    functionLinenumberEnd: 206
    functionName: GetUserConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - PasswordFormatFromString
    - PromiseRef
    - UserStateFromString
    - PromiseGetImmediateConstraint
    - Log
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsList
    linkageType: ''
    returnType: User
    signature: User GetUserConstraints(const EvalContext *ctx, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:212,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:214,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:216,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:217,1
    - Dst: GetUserConstraints
      Src: /src/core/libpromises/attributes.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 11
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: GetUserAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - PromiseBundleOrBodyConstraintExists
    - GetTransactionConstraints
    - GetUserConstraints
    - GetClassDefinitionConstraints
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetUserAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:228,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:229,1
    - Dst: GetDatabaseConstraints
      Src: /src/core/libpromises/attributes.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: GetDatabaseAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetTransactionConstraints
    - GetClassDefinitionConstraints
    - GetDatabaseConstraints
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetDatabaseAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:240,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:241,1
    - Dst: GetContextConstraints
      Src: /src/core/libpromises/attributes.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: GetClassContextAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 3
    functionsReached:
    - GetContextConstraints
    - GetTransactionConstraints
    - GetClassDefinitionConstraints
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetClassContextAttributes(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetExecContainConstraints
      Src: /src/core/libpromises/attributes.c:253,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:254,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:256,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:257,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:258,1
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:261,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:263,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:272,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:273,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:275,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 249
    functionDepth: 10
    functionLinenumber: 249
    functionLinenumberEnd: 279
    functionName: GetExecAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetExecContainConstraints
    - PromiseBundleOrBodyConstraintExists
    - GetTransactionConstraints
    - GetClassDefinitionConstraints
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetExecAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:287,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:288,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:289,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:290,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:291,1
    - Dst: GetMatchesConstraints
      Src: /src/core/libpromises/attributes.c:293,1
    - Dst: GetProcessFilterConstraints
      Src: /src/core/libpromises/attributes.c:294,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:298,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:299,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:301,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 283
    functionDepth: 10
    functionLinenumber: 283
    functionLinenumberEnd: 305
    functionName: GetProcessAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetMatchesConstraints
    - GetTransactionConstraints
    - GetClassDefinitionConstraints
    - PromiseGetConstraintAsRval
    - GetProcessFilterConstraints
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetProcessAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMountConstraints
      Src: /src/core/libpromises/attributes.c:313,1
    - Dst: GetVolumeConstraints
      Src: /src/core/libpromises/attributes.c:314,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:315,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:316,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:325,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:326,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:328,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 332
    functionName: GetStorageAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetTransactionConstraints
    - GetMountConstraints
    - GetClassDefinitionConstraints
    - GetVolumeConstraints
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetStorageAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:340,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:342,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:346,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:347,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:349,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 336
    functionDepth: 10
    functionLinenumber: 336
    functionLinenumberEnd: 353
    functionName: GetMethodAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetTransactionConstraints
    - PromiseGetConstraintAsBoolean
    - GetClassDefinitionConstraints
    - PromiseBundleOrBodyConstraintExists
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetMethodAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetMeasurementConstraint
      Src: /src/core/libpromises/attributes.c:359,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:363,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:364,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:366,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 370
    functionName: GetMeasurementAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetMeasurementConstraint
    - GetTransactionConstraints
    - GetClassDefinitionConstraints
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetMeasurementAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:380,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:381,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:382,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:383,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:384,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 376
    functionDepth: 10
    functionLinenumber: 376
    functionLinenumberEnd: 388
    functionName: GetServicesConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: Services
    signature: Services GetServicesConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:396,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:397,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:398,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:399,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:400,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:401,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:403,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:404,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:405,1
    - Dst: EnvironmentStateFromString
      Src: /src/core/libpromises/attributes.c:406,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 392
    functionDepth: 10
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: GetEnvironmentsConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - EnvironmentStateFromString
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsInt
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: Environments
    signature: Environments GetEnvironmentsConstraints(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ShellTypeFromString
      Src: /src/core/libpromises/attributes.c:417,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:417,1
    - Dst: PromiseGetConstraintAsOctal
      Src: /src/core/libpromises/attributes.c:418,1
    - Dst: PromiseGetConstraintAsUid
      Src: /src/core/libpromises/attributes.c:419,1
    - Dst: PromiseGetConstraintAsGid
      Src: /src/core/libpromises/attributes.c:420,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:421,1
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:422,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:424,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:428,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:430,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:431,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 413
    functionDepth: 10
    functionLinenumber: 413
    functionLinenumberEnd: 435
    functionName: GetExecContainConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsUid
    - PromiseGetConstraintAsInt
    - PromiseBundleOrBodyConstraintExists
    - PromiseGetConstraintAsOctal
    - ShellTypeFromString
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsBoolean
    - PromiseGetConstraintAsGid
    linkageType: ''
    returnType: ExecContain
    signature: ExecContain GetExecContainConstraints(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:443,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:444,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:445,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:452,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:453,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:454,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 439
    functionDepth: 10
    functionLinenumber: 439
    functionLinenumberEnd: 457
    functionName: GetRecursionConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsInt
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: DirectoryRecursion
    signature: DirectoryRecursion GetRecursionConstraints(const EvalContext *ctx,
      const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AclMethodFromString
      Src: /src/core/libpromises/attributes.c:465,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:465,1
    - Dst: AclTypeFromString
      Src: /src/core/libpromises/attributes.c:466,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:466,1
    - Dst: AclDefaultFromString
      Src: /src/core/libpromises/attributes.c:467,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:467,1
    - Dst: AclDefaultFromString
      Src: /src/core/libpromises/attributes.c:471,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:471,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:473,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:474,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:478,1
    - Dst: AclInheritFromString
      Src: /src/core/libpromises/attributes.c:480,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 461
    functionDepth: 10
    functionLinenumber: 461
    functionLinenumberEnd: 482
    functionName: GetAclConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - AclTypeFromString
    - AclDefaultFromString
    - PromiseGetConstraintAsRval
    - AclInheritFromString
    - PromiseGetConstraintAsList
    - AclMethodFromString
    linkageType: ''
    returnType: Acl
    signature: Acl GetAclConstraints(const EvalContext *ctx, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:492,1
    - Dst: ParseModeString
      Src: /src/core/libpromises/attributes.c:497,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:499,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:500,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:503,1
    - Dst: ParseFlagString
      Src: /src/core/libpromises/attributes.c:508,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:510,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:511,1
    - Dst: Rlist2UidList
      Src: /src/core/libpromises/attributes.c:514,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:514,1
    - Dst: Rlist2GidList
      Src: /src/core/libpromises/attributes.c:515,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:515,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:517,1
    - Dst: PromiseGetConstraintAsBooleanWithDefault
      Src: /src/core/libpromises/attributes.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 486
    functionDepth: 10
    functionLinenumber: 486
    functionLinenumberEnd: 522
    functionName: GetPermissionConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - Rlist2UidList
    - ParseModeString
    - PromiseRef
    - PromiseGetConstraintAsBooleanWithDefault
    - Log
    - PromiseGetConstraintAsRval
    - ParseFlagString
    - Rlist2GidList
    - PromiseGetConstraintAsList
    linkageType: ''
    returnType: FilePerms
    signature: FilePerms GetPermissionConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:536,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/attributes.c:540,1
    - Dst: ParseModeString
      Src: /src/core/libpromises/attributes.c:542,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:544,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:545,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:550,1
    - Dst: ParseFlagString
      Src: /src/core/libpromises/attributes.c:553,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:555,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:556,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:560,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:566,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:568,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:569,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:573,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:579,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:581,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:582,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:586,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:592,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:594,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:595,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:599,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:605,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:607,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:608,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:612,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:613,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:614,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:615,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:616,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:617,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:618,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:619,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:629,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:633,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 526
    functionDepth: 10
    functionLinenumber: 526
    functionLinenumberEnd: 638
    functionName: GetSelectConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - ParseModeString
    - PromiseRef
    - IntegerRangeFromString
    - FatalError
    - Log
    - ParseFlagString
    - PromiseGetConstraintAsRval
    - RlistScalarValue
    - PromiseGetConstraintAsList
    linkageType: ''
    returnType: FileSelect
    signature: FileSelect GetSelectConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:649,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:649,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:653,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:657,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:657,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - log_level
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 642
    functionDepth: 8
    functionLinenumber: 642
    functionLinenumberEnd: 667
    functionName: ActionAttributeLogLevelFromString
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 2
    functionsReached:
    - Log
    - StringEqual
    linkageType: ''
    returnType: LogLevel
    signature: LogLevel ActionAttributeLogLevelFromString(const char *log_level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:674,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:676,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:676,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:685,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:686,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:687,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:691,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:691,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:692,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:692,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:693,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:693,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:694,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:694,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:695,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:695,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:696,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:696,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:700,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:703,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:704,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:708,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:711,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/attributes.c:712,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:726,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:727,1
    - Dst: SyslogPriorityFromString
      Src: /src/core/libpromises/attributes.c:728,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:728,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:730,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:731,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:732,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:734,1
    - Dst: ActionAttributeLogLevelFromString
      Src: /src/core/libpromises/attributes.c:735,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:737,1
    - Dst: ActionAttributeLogLevelFromString
      Src: /src/core/libpromises/attributes.c:738,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:740,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 669
    functionDepth: 10
    functionLinenumber: 669
    functionLinenumberEnd: 743
    functionName: GetTransactionConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 13
    functionsReached:
    - PromiseGetConstraintAsInt
    - SyslogPriorityFromString
    - PromiseGetPromiseType
    - Log
    - strcmp
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsBoolean
    - ActionAttributeLogLevelFromString
    linkageType: ''
    returnType: TransactionContext
    signature: TransactionContext GetTransactionConstraints(const EvalContext *ctx,
      const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:750,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:751,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:752,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:753,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:754,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:755,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:756,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:757,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:758,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:759,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:760,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:761,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:762,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:763,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:764,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:765,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 2
    argCount: 1
    argNames:
    - constraint
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 747
    functionDepth: 4
    functionLinenumber: 747
    functionLinenumberEnd: 767
    functionName: IsClassesBodyConstraint
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 2
    functionsReached:
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool IsClassesBodyConstraint(const char *constraint)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:775,1
    - Dst: ContextScopeFromString
      Src: /src/core/libpromises/attributes.c:776,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:778,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:779,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:780,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:781,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:782,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:784,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:785,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:786,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:788,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:789,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:790,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:792,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:799,1
    - Dst: strncmp
      Src: /src/core/libpromises/attributes.c:801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 769
    functionDepth: 10
    functionLinenumber: 769
    functionLinenumberEnd: 811
    functionName: GetClassDefinitionConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 13
    functionsReached:
    - strncmp
    - PromiseGetConstraintAsInt
    - ContextScopeFromString
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsList
    linkageType: ''
    returnType: DefineClasses
    signature: DefineClasses GetClassDefinitionConstraints(const EvalContext *ctx,
      const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:820,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:822,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 833
    functionName: GetDeleteConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - strcmp
    - PromiseGetConstraintAsBoolean
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: FileDelete
    signature: FileDelete GetDeleteConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/attributes.c:839,1
    - Dst: assert
      Src: /src/core/libpromises/attributes.c:840,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:844,1
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 838
        line_start: 838
        source_file: /src/core/libpromises/attributes.c
    - condition: (pp != NULL)
      pos:
        line_end: 839
        line_start: 839
        source_file: /src/core/libpromises/attributes.c
    constantsTouched: []
    func_position:
      end: 849
      start: 837
    functionDepth: 10
    functionLinenumber: 837
    functionLinenumberEnd: 849
    functionName: GetFSAttrsConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - assert
    - PromiseGetConstraintAsBoolean
    - PromiseBundleOrBodyConstraintExists
    linkageType: ''
    returnType: FileFSAttrs
    signature: FileFSAttrs GetFSAttrsConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:859,1
    - Dst: ParseModeString
      Src: /src/core/libpromises/attributes.c:861,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:863,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:864,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:867,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:868,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:869,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 854
    functionDepth: 10
    functionLinenumber: 854
    functionLinenumberEnd: 873
    functionName: GetRenameConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsInt
    - ParseModeString
    - PromiseRef
    - Log
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: FileRename
    signature: FileRename GetRenameConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 880
    functionName: ENTERPRISE_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_0ARG_DEFINE_STUB(HashMethod, GetBestFileChangeHashMethod)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:887,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:889,1
    - Dst: GetBestFileChangeHashMethod
      Src: /src/core/libpromises/attributes.c:891,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:893,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:897,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:901,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:905,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:909,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:920,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:921,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:924,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:926,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:930,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:934,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:943,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:945,1
    - Dst: GetChecksumUpdatesDefault
      Src: /src/core/libpromises/attributes.c:949,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:952,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 882
    functionDepth: 9
    functionLinenumber: 882
    functionLinenumberEnd: 954
    functionName: GetChangeMgtConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - GetBestFileChangeHashMethod
    - PromiseRef
    - Log
    - strcmp
    - PromiseGetConstraintAsRval
    - GetChecksumUpdatesDefault
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: FileChange
    signature: FileChange GetChangeMgtConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:964,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:965,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:967,1
    - Dst: FileComparatorFromString
      Src: /src/core/libpromises/attributes.c:972,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:974,1
    - Dst: FileLinkTypeFromString
      Src: /src/core/libpromises/attributes.c:975,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:977,1
    - Dst: ParseProtocolVersionPolicy
      Src: /src/core/libpromises/attributes.c:984,1
    - Dst: ProtocolIsKnown
      Src: /src/core/libpromises/attributes.c:985,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:991,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:992,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:993,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:994,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:996,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:998,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1002,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1011,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1012,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1013,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1014,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1015,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1016,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1017,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1019,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1020,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1022,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1023,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1029,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1030,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1031,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1032,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1033,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 958
    functionDepth: 10
    functionLinenumber: 958
    functionLinenumberEnd: 1037
    functionName: GetCopyConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsInt
    - FileComparatorFromString
    - ParseProtocolVersionPolicy
    - IntegerRangeFromString
    - PromiseRef
    - FatalError
    - FileLinkTypeFromString
    - PromiseGetConstraintAsRval
    - strcmp
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsBoolean
    - ProtocolIsKnown
    linkageType: ''
    returnType: FileCopy
    signature: FileCopy GetCopyConstraints(const EvalContext *ctx, const Promise *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1046,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1047,1
    - Dst: FileLinkTypeFromString
      Src: /src/core/libpromises/attributes.c:1048,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1049,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1051,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1053,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1057,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1066,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1068,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1077,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1041
    functionDepth: 10
    functionLinenumber: 1041
    functionLinenumberEnd: 1080
    functionName: GetLinkConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - FileLinkTypeFromString
    - strcmp
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: FileLink
    signature: FileLink GetLinkConstraints(const EvalContext *ctx, const Promise *pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:1089,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1096,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1098,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1102,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1106,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:1109,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1116,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1118,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1084
    functionDepth: 10
    functionLinenumber: 1084
    functionLinenumberEnd: 1123
    functionName: GetEditDefaults
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - strcmp
    - PromiseGetConstraintAsInt
    - PromiseGetConstraintAsBoolean
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: EditDefaults
    signature: EditDefaults GetEditDefaults(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:1133,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1136,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:1137,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1153,1
    - Dst: ContextScopeFromString
      Src: /src/core/libpromises/attributes.c:1154,1
    - Dst: SeqLength
      Src: /src/core/libpromises/attributes.c:1157,1
    - Dst: SeqAt
      Src: /src/core/libpromises/attributes.c:1159,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:1163,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:1164,1
    - Dst: StringEqual
      Src: /src/core/libpromises/attributes.c:1165,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1170,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1127
    functionDepth: 10
    functionLinenumber: 1127
    functionLinenumberEnd: 1179
    functionName: GetContextConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsInt
    - ContextScopeFromString
    - PromiseGetConstraintAsRval
    - strcmp
    - SeqLength
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: ContextConstraint
    signature: ContextConstraint GetContextConstraints(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:1188,1
    - Dst: PolicyFromPromise
      Src: /src/core/libpromises/attributes.c:1194,1
    - Dst: EvalContextResolveBodyExpression
      Src: /src/core/libpromises/attributes.c:1195,1
    - Dst: SeqLength
      Src: /src/core/libpromises/attributes.c:1197,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:1199,1
    - Dst: SeqAt
      Src: /src/core/libpromises/attributes.c:1200,1
    - Dst: CopyBodyConstraintsToPromise
      Src: /src/core/libpromises/attributes.c:1201,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:1206,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/attributes.c:1208,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1212,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1213,1
    - Dst: PackageVersionComparatorFromString
      Src: /src/core/libpromises/attributes.c:1214,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1214,1
    - Dst: PackageActionFromString
      Src: /src/core/libpromises/attributes.c:1215,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1215,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1236,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1237,1
    - Dst: PackageActionPolicyFromString
      Src: /src/core/libpromises/attributes.c:1238,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1238,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1239,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1240,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1241,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1242,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1243,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1244,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1245,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1246,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1247,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:1248,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1249,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1250,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1251,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1252,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:1253,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1254,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1255,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1256,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1257,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1258,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1259,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1260,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1261,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1262,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1263,1
    - Dst: PromiseGetConstraint
      Src: /src/core/libpromises/attributes.c:1264,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1270,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1272,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1273,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1183
    functionDepth: 10
    functionLinenumber: 1183
    functionLinenumberEnd: 1276
    functionName: GetPackageConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PackageVersionComparatorFromString
    - PromiseGetConstraintAsBoolean
    - PromiseGetConstraintAsInt
    - SeqDestroy
    - PromiseGetConstraint
    - PackageActionPolicyFromString
    - Log
    - CopyBodyConstraintsToPromise
    - PromiseGetConstraintAsRval
    - PackageActionFromString
    - PolicyFromPromise
    - SeqLength
    - PromiseBundleOrBodyConstraintExists
    - SeqAt
    - PromiseGetConstraintAsList
    - EvalContextResolveBodyExpression
    linkageType: ''
    returnType: Packages
    signature: Packages GetPackageConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1292,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1293,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1294,1
    - Dst: memcmp
      Src: /src/core/libpromises/attributes.c:1296,1
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:1298,1
    - Dst: PromiseBundleOrBodyConstraintExists
      Src: /src/core/libpromises/attributes.c:1299,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:1302,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/libpromises/attributes.c:1304,1
    - Dst: GetPackageModuleFromContext
      Src: /src/core/libpromises/attributes.c:1305,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:1309,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/attributes.c:1310,1
    - Dst: xstrdup
      Src: /src/core/libpromises/attributes.c:1310,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/attributes.c:1311,1
    - Dst: xstrdup
      Src: /src/core/libpromises/attributes.c:1311,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:1315,1
    - Dst: GetNewPackagePolicy
      Src: /src/core/libpromises/attributes.c:1318,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1318,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1332,1
    - Dst: GetPackageModuleFromContext
      Src: /src/core/libpromises/attributes.c:1335,1
    - Dst: GetDefaultPackageModuleFromContext
      Src: /src/core/libpromises/attributes.c:1339,1
    - Dst: GetDefaultInventoryFromContext
      Src: /src/core/libpromises/attributes.c:1341,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1287
    functionDepth: 10
    functionLinenumber: 1287
    functionLinenumberEnd: 1350
    functionName: GetNewPackageConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - GetPackageModuleFromContext
    - PromiseAppendConstraint
    - GetDefaultInventoryFromContext
    - Log
    - PromiseGetConstraintAsRval
    - EvalContextVariableControlCommonGet
    - xstrdup
    - memcmp
    - PromiseGetConstraintAsList
    - PromiseBundleOrBodyConstraintExists
    - GetNewPackagePolicy
    - GetDefaultPackageModuleFromContext
    linkageType: ''
    returnType: NewPackages
    signature: NewPackages GetNewPackageConstraints(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1360,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1361,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1363,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1364,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1368,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1369,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1371,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1372,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1376,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1377,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1379,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1380,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1384,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1385,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1387,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1388,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1392,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1393,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1395,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1396,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1400,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1401,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1403,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1404,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1408,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1409,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1411,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1412,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1416,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1417,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1419,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1420,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1424,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1425,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1427,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1428,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1432,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1433,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1434,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1435,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1438,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1354
    functionDepth: 10
    functionLinenumber: 1354
    functionLinenumberEnd: 1441
    functionName: GetProcessFilterConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseRef
    - IntegerRangeFromString
    - FatalError
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsList
    linkageType: ''
    returnType: ProcessSelect
    signature: ProcessSelect GetProcessFilterConstraints(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1450,1
    - Dst: IntegerRangeFromString
      Src: /src/core/libpromises/attributes.c:1451,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1453,1
    - Dst: FatalError
      Src: /src/core/libpromises/attributes.c:1454,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1456,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1445
    functionDepth: 10
    functionLinenumber: 1445
    functionLinenumberEnd: 1460
    functionName: GetMatchesConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseRef
    - IntegerRangeFromString
    - FatalError
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsList
    linkageType: ''
    returnType: ProcessCount
    signature: ProcessCount GetMatchesConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1466,1
    - Dst: GetLocationAttributes
      Src: /src/core/libpromises/attributes.c:1467,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1469,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1470,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1472,1
    - Dst: GetInsertSelectConstraints
      Src: /src/core/libpromises/attributes.c:1473,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1475,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1479,1
    - Dst: GetRegionConstraints
      Src: /src/core/libpromises/attributes.c:1480,1
    - Dst: GetXmlConstraints
      Src: /src/core/libpromises/attributes.c:1482,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1484,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:1485,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1487,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:1488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1462
    functionDepth: 11
    functionLinenumber: 1462
    functionLinenumberEnd: 1491
    functionName: GetInsertionAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetRegionConstraints
    - GetTransactionConstraints
    - GetXmlConstraints
    - GetLocationAttributes
    - GetClassDefinitionConstraints
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsBoolean
    - GetInsertSelectConstraints
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetInsertionAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1500,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1502,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1504,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1495
    functionDepth: 3
    functionLinenumber: 1495
    functionLinenumberEnd: 1515
    functionName: GetLocationAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - strcmp
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: EditLocation
    signature: EditLocation GetLocationAttributes(const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1523,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1525,1
    - Dst: GetDeleteSelectConstraints
      Src: /src/core/libpromises/attributes.c:1526,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1530,1
    - Dst: GetRegionConstraints
      Src: /src/core/libpromises/attributes.c:1531,1
    - Dst: GetXmlConstraints
      Src: /src/core/libpromises/attributes.c:1533,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1535,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:1536,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1538,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:1539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1519
    functionDepth: 11
    functionLinenumber: 1519
    functionLinenumberEnd: 1542
    functionName: GetDeletionAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetDeleteSelectConstraints
    - GetRegionConstraints
    - GetTransactionConstraints
    - GetXmlConstraints
    - GetClassDefinitionConstraints
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetDeletionAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1550,1
    - Dst: GetColumnConstraints
      Src: /src/core/libpromises/attributes.c:1551,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1555,1
    - Dst: GetRegionConstraints
      Src: /src/core/libpromises/attributes.c:1556,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1558,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:1559,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1561,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:1562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1546
    functionDepth: 11
    functionLinenumber: 1546
    functionLinenumberEnd: 1565
    functionName: GetColumnAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetRegionConstraints
    - GetTransactionConstraints
    - GetClassDefinitionConstraints
    - PromiseGetConstraintAsBoolean
    - GetColumnConstraints
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetColumnAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1573,1
    - Dst: GetReplaceConstraints
      Src: /src/core/libpromises/attributes.c:1574,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1576,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1580,1
    - Dst: GetRegionConstraints
      Src: /src/core/libpromises/attributes.c:1581,1
    - Dst: GetXmlConstraints
      Src: /src/core/libpromises/attributes.c:1583,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1585,1
    - Dst: GetTransactionConstraints
      Src: /src/core/libpromises/attributes.c:1586,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1588,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/attributes.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1569
    functionDepth: 11
    functionLinenumber: 1569
    functionLinenumberEnd: 1592
    functionName: GetReplaceAttributes
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 0
    functionsReached:
    - GetRegionConstraints
    - GetReplaceConstraints
    - GetXmlConstraints
    - GetTransactionConstraints
    - GetClassDefinitionConstraints
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetReplaceAttributes(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1600,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1601,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1596
    functionDepth: 3
    functionLinenumber: 1596
    functionLinenumberEnd: 1605
    functionName: GetXmlConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 3
    functionsReached:
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: EditXml
    signature: EditXml GetXmlConstraints(const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1613,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1614,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1615,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1616,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1619,1
    - Dst: strcmp
      Src: /src/core/libpromises/attributes.c:1622,1
    - Dst: EvalContextGetSelectEndMatchEof
      Src: /src/core/libpromises/attributes.c:1633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1609
    functionDepth: 3
    functionLinenumber: 1609
    functionLinenumberEnd: 1636
    functionName: GetRegionConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 4
    functionsReached:
    - EvalContextGetSelectEndMatchEof
    - strcmp
    - PromiseGetConstraintAsBoolean
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: EditRegion
    signature: EditRegion GetRegionConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1644,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1640
    functionDepth: 3
    functionLinenumber: 1640
    functionLinenumberEnd: 1648
    functionName: GetReplaceConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: EditReplace
    signature: EditReplace GetReplaceConstraints(const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1657,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:1658,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1660,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1665,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1676,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1677,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1678,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1652
    functionDepth: 10
    functionLinenumber: 1652
    functionLinenumberEnd: 1681
    functionName: GetColumnConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsInt
    - PromiseGetConstraintAsBoolean
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: EditColumn
    signature: EditColumn GetColumnConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1691,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1692,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1693,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1694,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1695,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1687
    functionDepth: 10
    functionLinenumber: 1687
    functionLinenumberEnd: 1699
    functionName: GetMountConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsBoolean
    - PromiseGetConstraintAsRval
    linkageType: ''
    returnType: StorageMount
    signature: StorageMount GetMountConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1708,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1709,1
    - Dst: IntFromString
      Src: /src/core/libpromises/attributes.c:1711,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1712,1
    - Dst: IntFromString
      Src: /src/core/libpromises/attributes.c:1713,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1714,1
    - Dst: IntFromString
      Src: /src/core/libpromises/attributes.c:1715,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1703
    functionDepth: 9
    functionLinenumber: 1703
    functionLinenumberEnd: 1730
    functionName: GetVolumeConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsBoolean
    - PromiseGetConstraintAsRval
    - IntFromString
    linkageType: ''
    returnType: StorageVolume
    signature: StorageVolume GetVolumeConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1736,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1738,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:1741,1
    - Dst: PromiseGetConstraintAsReal
      Src: /src/core/libpromises/attributes.c:1754,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1759,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1760,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:1761,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1768,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1770,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1772,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:1776,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/attributes.c:1776,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1732
    functionDepth: 10
    functionLinenumber: 1732
    functionLinenumberEnd: 1780
    functionName: GetReportConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsInt
    - PromiseGetBundle
    - PromiseGetConstraintAsReal
    - Log
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsList
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: Report
    signature: Report GetReportConstraints(const EvalContext *ctx, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1788,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1789,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1790,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1791,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1792,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1784
    functionDepth: 10
    functionLinenumber: 1784
    functionLinenumberEnd: 1796
    functionName: GetInsertSelectConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsList
    linkageType: ''
    returnType: LineSelect
    signature: LineSelect GetInsertSelectConstraints(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1804,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1805,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1806,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1807,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1808,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1800
    functionDepth: 10
    functionLinenumber: 1800
    functionLinenumberEnd: 1812
    functionName: GetDeleteSelectConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsList
    linkageType: ''
    returnType: LineSelect
    signature: LineSelect GetDeleteSelectConstraints(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1821,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1823,1
    - Dst: DataTypeFromString
      Src: /src/core/libpromises/attributes.c:1824,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1831,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1832,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/attributes.c:1833,1
    - Dst: MeasurePolicyFromString
      Src: /src/core/libpromises/attributes.c:1834,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1834,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1836,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1837,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/libpromises/attributes.c:1838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1816
    functionDepth: 10
    functionLinenumber: 1816
    functionLinenumberEnd: 1840
    functionName: GetMeasurementConstraint
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseGetConstraintAsInt
    - MeasurePolicyFromString
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsBoolean
    - DataTypeFromString
    linkageType: ''
    returnType: Measurement
    signature: Measurement GetMeasurementConstraint(const EvalContext *ctx, const
      Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1849,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1850,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1851,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1852,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1853,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1854,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1855,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1856,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1857,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/attributes.c:1858,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/attributes.c:1860,1
    - Dst: DatabaseTypeFromString
      Src: /src/core/libpromises/attributes.c:1861,1
    - Dst: Log
      Src: /src/core/libpromises/attributes.c:1865,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/attributes.c:1866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1844
    functionDepth: 10
    functionLinenumber: 1844
    functionLinenumberEnd: 1870
    functionName: GetDatabaseConstraints
    functionSourceFile: /src/core/libpromises/attributes.c
    functionUses: 1
    functionsReached:
    - PromiseRef
    - Log
    - PromiseGetConstraintAsRval
    - PromiseGetConstraintAsList
    - DatabaseTypeFromString
    linkageType: ''
    returnType: Database
    signature: Database GetDatabaseConstraints(const EvalContext *ctx, const Promise
      *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:50,1
    - Dst: JsonParseFile
      Src: /src/core/libpromises/cmdb.c:53,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:57,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:64,1
    - Dst: JsonParseErrorToString
      Src: /src/core/libpromises/cmdb.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - filename
    - log_level
    - size_max
    argTypes:
    - char*
    - LogLevel
    - size_t
    assertStmts:
    - condition: (filename != NULL)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/core/libpromises/cmdb.c
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: ReadJsonFile
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 3
    functionsReached:
    - assert
    - JsonParseErrorToString
    - Log
    - JsonParseFile
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *ReadJsonFile(const char *filename, LogLevel log_level,
      size_t size_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:72,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/cmdb.c:72,1
    - Dst: StringContainsUnresolved
      Src: /src/core/libpromises/cmdb.c:75,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/cmdb.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - primitive
    - data
    argTypes:
    - JsonElement*
    - ARG_UNUSED*
    assertStmts:
    - condition: (JsonGetElementType(primitive) == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/core/libpromises/cmdb.c
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: CheckPrimitiveForUnexpandedVars
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - assert
    - JsonGetElementType
    - StringContainsUnresolved
    - JsonPrimitiveGetAsString
    linkageType: ''
    returnType: bool
    signature: bool CheckPrimitiveForUnexpandedVars(JsonElement *primitive, ARG_UNUSED
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:80,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:80,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/cmdb.c:84,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libpromises/cmdb.c:85,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/cmdb.c:87,1
    - Dst: StringContainsUnresolved
      Src: /src/core/libpromises/cmdb.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - object
    - data
    argTypes:
    - JsonElement*
    - ARG_UNUSED*
    assertStmts:
    - condition: (JsonGetType(object) == JSON_TYPE_OBJECT)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/core/libpromises/cmdb.c
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: CheckObjectForUnexpandedVars
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonIteratorNextKey
    - assert
    - JsonIteratorHasMore
    - StringContainsUnresolved
    - JsonGetType
    linkageType: ''
    returnType: bool
    signature: bool CheckObjectForUnexpandedVars(JsonElement *object, ARG_UNUSED void
      *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParse
      Src: /src/core/libpromises/cmdb.c:98,1
    - Dst: xstrdup
      Src: /src/core/libpromises/cmdb.c:101,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:107,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/cmdb.c:109,1
    - Dst: xstrdup
      Src: /src/core/libpromises/cmdb.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 96
    functionDepth: 8
    functionLinenumber: 96
    functionLinenumberEnd: 119
    functionName: GetCMDBVariableRef
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - VarRefDestroy
    - Log
    - VarRefParse
    - xstrdup
    linkageType: ''
    returnType: VarRef
    signature: VarRef *GetCMDBVariableRef(const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:124,1
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:125,1
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:126,1
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:127,1
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:128,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/cmdb.c:131,1
    - Dst: JsonPrimitiveToString
      Src: /src/core/libpromises/cmdb.c:133,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:134,1
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/cmdb.c:136,1
    - Dst: free
      Src: /src/core/libpromises/cmdb.c:138,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:140,1
    - Dst: JsonArrayContainsOnlyPrimitives
      Src: /src/core/libpromises/cmdb.c:141,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:144,1
    - Dst: RlistFromContainer
      Src: /src/core/libpromises/cmdb.c:146,1
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/cmdb.c:147,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/cmdb.c:150,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:155,1
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/cmdb.c:157,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/cmdb.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - ctx
    - key
    - ref
    - data
    - tags
    - comment
    argTypes:
    - EvalContext*
    - char*
    - VarRef*
    - JsonElement*
    - StringSet*
    - char*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/core/libpromises/cmdb.c
    - condition: (ctx != NULL)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/core/libpromises/cmdb.c
    - condition: (ref != NULL)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/core/libpromises/cmdb.c
    - condition: (data != NULL)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/core/libpromises/cmdb.c
    - condition: (tags != NULL)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/core/libpromises/cmdb.c
    constantsTouched: []
    func_position:
      end: 168
      start: 121
    functionDepth: 10
    functionLinenumber: 121
    functionLinenumberEnd: 168
    functionName: AddCMDBVariable
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - RlistFromContainer
    - JsonArrayContainsOnlyPrimitives
    - assert
    - JsonGetElementType
    - StringSetDestroy
    - EvalContextVariablePutTagsSetWithComment
    - Log
    - RlistDestroy
    - JsonPrimitiveToString
    - free
    - JsonGetType
    linkageType: ''
    returnType: bool
    signature: "bool AddCMDBVariable(EvalContext *ctx, const char *key, const VarRef
      *ref,\n                            JsonElement *data, StringSet *tags, const
      char *comment)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:172,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:174,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:176,1
    - Dst: JsonWalk
      Src: /src/core/libpromises/cmdb.c:180,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:182,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/cmdb.c:186,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libpromises/cmdb.c:187,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/cmdb.c:189,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:190,1
    - Dst: GetCMDBVariableRef
      Src: /src/core/libpromises/cmdb.c:192,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/cmdb.c:198,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/cmdb.c:199,1
    - Dst: xstrdup
      Src: /src/core/libpromises/cmdb.c:199,1
    - Dst: AddCMDBVariable
      Src: /src/core/libpromises/cmdb.c:200,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/cmdb.c:201,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - vars
    argTypes:
    - EvalContext*
    - JsonElement*
    assertStmts:
    - condition: (vars != NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/core/libpromises/cmdb.c
    constantsTouched: []
    func_position:
      end: 209
      start: 170
    functionDepth: 11
    functionLinenumber: 170
    functionLinenumberEnd: 209
    functionName: ReadCMDBVars
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonIteratorNextKey
    - GetCMDBVariableRef
    - assert
    - JsonIteratorHasMore
    - VarRefDestroy
    - JsonWalk
    - Log
    - xstrdup
    - AddCMDBVariable
    - JsonObjectGet
    - StringSetNew
    - JsonGetType
    - StringSetAdd
    linkageType: ''
    returnType: bool
    signature: bool ReadCMDBVars(EvalContext *ctx, JsonElement *vars)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/cmdb.c:217,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:219,1
    - Dst: JsonArrayContainsOnlyPrimitives
      Src: /src/core/libpromises/cmdb.c:220,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:222,1
    - Dst: JsonArrayToStringSet
      Src: /src/core/libpromises/cmdb.c:229,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:232,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/cmdb.c:241,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/cmdb.c:243,1
    - Dst: xstrdup
      Src: /src/core/libpromises/cmdb.c:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - item_type
    - key
    - json_tags
    - default_tag
    argTypes:
    - char*
    - char*
    - JsonElement*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 211
    functionDepth: 8
    functionLinenumber: 211
    functionLinenumberEnd: 246
    functionName: GetTagsFromJsonTags
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - JsonArrayContainsOnlyPrimitives
    - JsonArrayToStringSet
    - Log
    - xstrdup
    - JSON_NOT_NULL
    - StringSetNew
    - JsonGetType
    - StringSetAdd
    linkageType: ''
    returnType: StringSet
    signature: "StringSet *GetTagsFromJsonTags(const char *item_type,\n                                      const
      char *key,\n                                      const JsonElement *json_tags,\n
      \                                     const char *default_tag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:251,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:251,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:253,1
    - Dst: NULL_JSON
      Src: /src/core/libpromises/cmdb.c:254,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:259,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:261,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/cmdb.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - item_type
    - identifier
    - json_object
    argTypes:
    - char*
    - char*
    - JsonElement*
    assertStmts:
    - condition: (JsonGetType(json_object) == JSON_TYPE_OBJECT)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/core/libpromises/cmdb.c
    constantsTouched: []
    func_position:
      end: 268
      start: 248
    functionDepth: 8
    functionLinenumber: 248
    functionLinenumberEnd: 268
    functionName: GetCMDBComment
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - NULL_JSON
    - assert
    - Log
    - JsonPrimitiveGetAsString
    - JsonObjectGet
    - JsonGetType
    linkageType: ''
    returnType: char
    signature: "char *GetCMDBComment(const char *item_type, const char *identifier,\n
      \                                        const JsonElement *json_object)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:273,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:275,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:277,1
    - Dst: JsonWalk
      Src: /src/core/libpromises/cmdb.c:281,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:283,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/cmdb.c:287,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libpromises/cmdb.c:288,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/cmdb.c:290,1
    - Dst: GetCMDBVariableRef
      Src: /src/core/libpromises/cmdb.c:292,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:298,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:304,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:306,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:310,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/cmdb.c:311,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:315,1
    - Dst: GetTagsFromJsonTags
      Src: /src/core/libpromises/cmdb.c:316,1
    - Dst: GetCMDBComment
      Src: /src/core/libpromises/cmdb.c:317,1
    - Dst: GetTagsFromJsonTags
      Src: /src/core/libpromises/cmdb.c:323,1
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:326,1
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:327,1
    - Dst: AddCMDBVariable
      Src: /src/core/libpromises/cmdb.c:329,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/cmdb.c:330,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:334,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - ctx
    - variables
    argTypes:
    - EvalContext*
    - JsonElement*
    assertStmts:
    - condition: (variables != NULL)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/core/libpromises/cmdb.c
    - condition: (tags != NULL)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/core/libpromises/cmdb.c
    - condition: (data != NULL)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/core/libpromises/cmdb.c
    constantsTouched: []
    func_position:
      end: 338
      start: 271
    functionDepth: 11
    functionLinenumber: 271
    functionLinenumberEnd: 338
    functionName: ReadCMDBVariables
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonIteratorNextKey
    - GetCMDBComment
    - GetCMDBVariableRef
    - assert
    - JsonIteratorHasMore
    - VarRefDestroy
    - JsonWalk
    - Log
    - AddCMDBVariable
    - JsonObjectGet
    - JsonGetType
    - GetTagsFromJsonTags
    linkageType: ''
    returnType: bool
    signature: bool ReadCMDBVariables(EvalContext *ctx, JsonElement *variables)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:342,1
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:343,1
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:344,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:347,1
    - Dst: strchr
      Src: /src/core/libpromises/cmdb.c:349,1
    - Dst: xstrdup
      Src: /src/core/libpromises/cmdb.c:351,1
    - Dst: strchr
      Src: /src/core/libpromises/cmdb.c:352,1
    - Dst: EvalContextClassPutSoftNSTagsSetWithComment
      Src: /src/core/libpromises/cmdb.c:355,1
    - Dst: free
      Src: /src/core/libpromises/cmdb.c:357,1
    - Dst: EvalContextClassPutSoftNSTagsSetWithComment
      Src: /src/core/libpromises/cmdb.c:361,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/cmdb.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - key
    - tags
    - comment
    argTypes:
    - EvalContext*
    - char*
    - StringSet*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 341
        line_start: 341
        source_file: /src/core/libpromises/cmdb.c
    - condition: (key != NULL)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/core/libpromises/cmdb.c
    - condition: (tags != NULL)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/core/libpromises/cmdb.c
    constantsTouched: []
    func_position:
      end: 372
      start: 340
    functionDepth: 10
    functionLinenumber: 340
    functionLinenumberEnd: 372
    functionName: AddCMDBClass
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - assert
    - StringSetDestroy
    - strchr
    - Log
    - xstrdup
    - free
    - EvalContextClassPutSoftNSTagsSetWithComment
    linkageType: ''
    returnType: bool
    signature: bool AddCMDBClass(EvalContext *ctx, const char *key, StringSet *tags,
      const char *comment)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cmdb.c:376,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:378,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:380,1
    - Dst: JsonWalk
      Src: /src/core/libpromises/cmdb.c:384,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:386,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/cmdb.c:390,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libpromises/cmdb.c:391,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/cmdb.c:393,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:394,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/cmdb.c:395,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/cmdb.c:397,1
    - Dst: StringEqual
      Src: /src/core/libpromises/cmdb.c:398,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:400,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/cmdb.c:405,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/cmdb.c:406,1
    - Dst: xstrdup
      Src: /src/core/libpromises/cmdb.c:406,1
    - Dst: AddCMDBClass
      Src: /src/core/libpromises/cmdb.c:407,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:413,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/cmdb.c:416,1
    - Dst: JsonArrayContainsOnlyPrimitives
      Src: /src/core/libpromises/cmdb.c:417,1
    - Dst: JsonLength
      Src: /src/core/libpromises/cmdb.c:419,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:422,1
    - Dst: StringEqual
      Src: /src/core/libpromises/cmdb.c:426,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/cmdb.c:426,1
    - Dst: JsonArrayGet
      Src: /src/core/libpromises/cmdb.c:426,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:428,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/cmdb.c:430,1
    - Dst: JsonArrayGet
      Src: /src/core/libpromises/cmdb.c:430,1
    - Dst: StringWriter
      Src: /src/core/libpromises/cmdb.c:437,1
    - Dst: JsonWriteCompact
      Src: /src/core/libpromises/cmdb.c:438,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:439,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/cmdb.c:441,1
    - Dst: WriterClose
      Src: /src/core/libpromises/cmdb.c:442,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/cmdb.c:446,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/cmdb.c:447,1
    - Dst: xstrdup
      Src: /src/core/libpromises/cmdb.c:447,1
    - Dst: AddCMDBClass
      Src: /src/core/libpromises/cmdb.c:448,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:454,1
    - Dst: JsonGetContainerType
      Src: /src/core/libpromises/cmdb.c:457,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:459,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:460,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:461,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/cmdb.c:463,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:464,1
    - Dst: JsonLength
      Src: /src/core/libpromises/cmdb.c:465,1
    - Dst: JsonLength
      Src: /src/core/libpromises/cmdb.c:466,1
    - Dst: StringEqual
      Src: /src/core/libpromises/cmdb.c:467,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/cmdb.c:467,1
    - Dst: JsonArrayGet
      Src: /src/core/libpromises/cmdb.c:467,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:469,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/cmdb.c:474,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:475,1
    - Dst: JsonLength
      Src: /src/core/libpromises/cmdb.c:476,1
    - Dst: JsonLength
      Src: /src/core/libpromises/cmdb.c:477,1
    - Dst: StringEqual
      Src: /src/core/libpromises/cmdb.c:478,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/cmdb.c:478,1
    - Dst: JsonArrayGet
      Src: /src/core/libpromises/cmdb.c:478,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:480,1
    - Dst: GetTagsFromJsonTags
      Src: /src/core/libpromises/cmdb.c:486,1
    - Dst: GetCMDBComment
      Src: /src/core/libpromises/cmdb.c:487,1
    - Dst: AddCMDBClass
      Src: /src/core/libpromises/cmdb.c:488,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:494,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:499,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 62
    argCount: 2
    argNames:
    - ctx
    - classes
    argTypes:
    - EvalContext*
    - JsonElement*
    assertStmts:
    - condition: (classes != NULL)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/core/libpromises/cmdb.c
    constantsTouched: []
    func_position:
      end: 503
      start: 374
    functionDepth: 11
    functionLinenumber: 374
    functionLinenumberEnd: 503
    functionName: ReadCMDBClasses
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 0
    functionsReached:
    - JsonGetContainerType
    - JsonIteratorNextKey
    - JsonWalk
    - Log
    - JsonObjectGet
    - StringSetNew
    - StringEqual
    - AddCMDBClass
    - JsonGetElementType
    - JsonIteratorHasMore
    - JsonWriteCompact
    - xstrdup
    - JsonPrimitiveGetAsString
    - JSON_NOT_NULL
    - GetTagsFromJsonTags
    - JsonIteratorInit
    - WriterClose
    - assert
    - JsonArrayGet
    - StringSetAdd
    - GetCMDBComment
    - JsonLength
    - JsonArrayContainsOnlyPrimitives
    - StringWriter
    - StringWriterData
    - JsonGetType
    linkageType: ''
    returnType: bool
    signature: bool ReadCMDBClasses(EvalContext *ctx, JsonElement *classes)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/core/libpromises/cmdb.c:508,1
    - Dst: GetDataDir
      Src: /src/core/libpromises/cmdb.c:508,1
    - Dst: JoinPaths
      Src: /src/core/libpromises/cmdb.c:509,1
    - Dst: access
      Src: /src/core/libpromises/cmdb.c:510,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:512,1
    - Dst: access
      Src: /src/core/libpromises/cmdb.c:515,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:517,1
    - Dst: ReadJsonFile
      Src: /src/core/libpromises/cmdb.c:522,1
    - Dst: JsonGetType
      Src: /src/core/libpromises/cmdb.c:528,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:530,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/cmdb.c:531,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:535,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/cmdb.c:537,1
    - Dst: JsonIteratorHasMore
      Src: /src/core/libpromises/cmdb.c:538,1
    - Dst: JsonIteratorNextKey
      Src: /src/core/libpromises/cmdb.c:540,1
    - Dst: IsStrIn
      Src: /src/core/libpromises/cmdb.c:542,1
    - Dst: Log
      Src: /src/core/libpromises/cmdb.c:544,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:550,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/cmdb.c:551,1
    - Dst: ReadCMDBVars
      Src: /src/core/libpromises/cmdb.c:551,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:556,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/cmdb.c:557,1
    - Dst: ReadCMDBVariables
      Src: /src/core/libpromises/cmdb.c:557,1
    - Dst: JsonObjectGet
      Src: /src/core/libpromises/cmdb.c:561,1
    - Dst: JSON_NOT_NULL
      Src: /src/core/libpromises/cmdb.c:562,1
    - Dst: ReadCMDBClasses
      Src: /src/core/libpromises/cmdb.c:562,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/cmdb.c:567,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 505
    functionDepth: 12
    functionLinenumber: 505
    functionLinenumberEnd: 569
    functionName: LoadCMDBData
    functionSourceFile: /src/core/libpromises/cmdb.c
    functionUses: 1
    functionsReached:
    - JsonIteratorInit
    - access
    - JsonIteratorNextKey
    - JsonDestroy
    - ReadCMDBClasses
    - strncpy
    - GetDataDir
    - IsStrIn
    - ReadCMDBVars
    - JsonIteratorHasMore
    - ReadJsonFile
    - Log
    - JoinPaths
    - JsonObjectGet
    - JsonGetType
    - ReadCMDBVariables
    - JSON_NOT_NULL
    linkageType: ''
    returnType: bool
    signature: bool LoadCMDBData(EvalContext *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - dst
    - src
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 73
    functionName: StringAppendPromise
    functionSourceFile: /src/core/libpromises/ornaments.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool StringAppendPromise(char *dst, const char *src, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libpromises/ornaments.c:90,1
    - Dst: StringAppendPromise
      Src: /src/core/libpromises/ornaments.c:93,1
    - Dst: strrchr
      Src: /src/core/libpromises/ornaments.c:101,1
    - Dst: assert
      Src: /src/core/libpromises/ornaments.c:102,1
    - Dst: strlen
      Src: /src/core/libpromises/ornaments.c:103,1
    - Dst: memcpy
      Src: /src/core/libpromises/ornaments.c:108,1
    - Dst: strcpy
      Src: /src/core/libpromises/ornaments.c:109,1
    - Dst: strcat
      Src: /src/core/libpromises/ornaments.c:110,1
    - Dst: StringAppendPromise
      Src: /src/core/libpromises/ornaments.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - dst
    - src
    - n
    - max_fragment
    argTypes:
    - char*
    - char*
    - size_t
    - size_t
    assertStmts:
    - condition: (last_line)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/core/libpromises/ornaments.c
    constantsTouched: []
    func_position:
      end: 113
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 113
    functionName: StringAppendAbbreviatedPromise
    functionSourceFile: /src/core/libpromises/ornaments.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - StringAppendPromise
    - assert
    - strchr
    - strcat
    - strrchr
    - strcpy
    linkageType: ''
    returnType: bool
    signature: "bool StringAppendAbbreviatedPromise(char *dst, const char *src, size_t
      n,\n                                           const size_t max_fragment)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:123,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:124,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:128,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - pass
    argTypes:
    - TypeSequence
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 8
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: SpecialTypeBanner
    functionSourceFile: /src/core/libpromises/ornaments.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void SpecialTypeBanner(TypeSequence type, int pass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libpromises/ornaments.c:135,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:137,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:138,1
    - Dst: StringEqual
      Src: /src/core/libpromises/ornaments.c:140,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:142,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - pass
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 8
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: SpecialTypeBannerFromString
    functionSourceFile: /src/core/libpromises/ornaments.c
    functionUses: 0
    functionsReached:
    - Log
    - StringEqual
    linkageType: ''
    returnType: void
    signature: void SpecialTypeBannerFromString(const char *type, int pass)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetHandle
      Src: /src/core/libpromises/ornaments.c:152,1
    - Dst: PromiseID
      Src: /src/core/libpromises/ornaments.c:152,1
    - Dst: strlcpy
      Src: /src/core/libpromises/ornaments.c:154,1
    - Dst: strcpy
      Src: /src/core/libpromises/ornaments.c:158,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:161,1
    - Dst: strlen
      Src: /src/core/libpromises/ornaments.c:163,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:165,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/ornaments.c:165,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/ornaments.c:165,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:169,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/ornaments.c:169,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/ornaments.c:169,1
    - Dst: alloca
      Src: /src/core/libpromises/ornaments.c:173,1
    - Dst: StringAppendAbbreviatedPromise
      Src: /src/core/libpromises/ornaments.c:175,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:176,1
    - Dst: EvalContextGetBundleArgs
      Src: /src/core/libpromises/ornaments.c:182,1
    - Dst: StringWriter
      Src: /src/core/libpromises/ornaments.c:184,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/ornaments.c:185,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:186,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/ornaments.c:186,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/ornaments.c:186,1
    - Dst: WriterClose
      Src: /src/core/libpromises/ornaments.c:187,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:191,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/ornaments.c:191,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:194,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/ornaments.c:196,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/ornaments.c:196,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:198,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/ornaments.c:200,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/ornaments.c:200,1
    - Dst: StringWriter
      Src: /src/core/libpromises/ornaments.c:202,1
    - Dst: FnCallWrite
      Src: /src/core/libpromises/ornaments.c:203,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:204,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/ornaments.c:204,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/ornaments.c:206,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:208,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/ornaments.c:210,1
    - Dst: StringWriter
      Src: /src/core/libpromises/ornaments.c:212,1
    - Dst: FnCallWrite
      Src: /src/core/libpromises/ornaments.c:213,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:214,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/ornaments.c:214,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:217,1
    - Dst: EvalContextStackToString
      Src: /src/core/libpromises/ornaments.c:217,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:221,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:222,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 147
    functionDepth: 8
    functionLinenumber: 147
    functionLinenumberEnd: 224
    functionName: PromiseBanner
    functionSourceFile: /src/core/libpromises/ornaments.c
    functionUses: 0
    functionsReached:
    - alloca
    - Log
    - FnCallWrite
    - EvalContextStackToString
    - strlcpy
    - PromiseGetHandle
    - strlen
    - PromiseID
    - strcpy
    - RlistWrite
    - StringAppendAbbreviatedPromise
    - PromiseGetBundle
    - WriterClose
    - PromiseGetPromiseType
    - EvalContextGetBundleArgs
    - PromiseGetConstraintAsRval
    - EvalContextGetPass
    - StringWriter
    - StringWriterData
    linkageType: ''
    returnType: void
    signature: void PromiseBanner(EvalContext *ctx, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:228,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:229,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:230,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:231,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:232,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:233,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:234,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:235,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 226
    functionDepth: 8
    functionLinenumber: 226
    functionLinenumberEnd: 237
    functionName: Legend
    functionSourceFile: /src/core/libpromises/ornaments.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void Legend()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:241,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:242,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 8
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: Banner
    functionSourceFile: /src/core/libpromises/ornaments.c
    functionUses: 4
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void Banner(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:249,1
    - Dst: StringWriter
      Src: /src/core/libpromises/ornaments.c:253,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/ornaments.c:254,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:255,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/ornaments.c:255,1
    - Dst: WriterClose
      Src: /src/core/libpromises/ornaments.c:256,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:260,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - bp
    - params
    argTypes:
    - Bundle*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 247
    functionDepth: 8
    functionLinenumber: 247
    functionLinenumberEnd: 264
    functionName: BundleBanner
    functionSourceFile: /src/core/libpromises/ornaments.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - StringWriter
    - StringWriterData
    - Log
    - RlistWrite
    linkageType: ''
    returnType: void
    signature: void BundleBanner(const Bundle *bp, const Rlist *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:273,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:274,1
    - Dst: Log
      Src: /src/core/libpromises/ornaments.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bp
    argTypes:
    - Bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 8
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: EndBundleBanner
    functionSourceFile: /src/core/libpromises/ornaments.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void EndBundleBanner(const Bundle *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrndup
      Src: /src/core/libpromises/iteration.c:149,1
    - Dst: xmemdup
      Src: /src/core/libpromises/iteration.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - varname
    - varname_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: WheelNew
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - xstrndup
    - xmemdup
    linkageType: ''
    returnType: Wheel
    signature: Wheel *WheelNew(const char *varname, size_t varname_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:167,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:170,1
    - Dst: free
      Src: /src/core/libpromises/iteration.c:171,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/iteration.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - w
    argTypes:
    - Wheel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 178
    functionName: WheelValuesSeqDestroy
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - free
    - SeqDestroy
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void WheelValuesSeqDestroy(Wheel *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/iteration.c:183,1
    - Dst: free
      Src: /src/core/libpromises/iteration.c:184,1
    - Dst: WheelValuesSeqDestroy
      Src: /src/core/libpromises/iteration.c:185,1
    - Dst: free
      Src: /src/core/libpromises/iteration.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - wheel
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: WheelDestroy
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - free
    - WheelValuesSeqDestroy
    linkageType: ''
    returnType: void
    signature: void WheelDestroy(void *wheel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/iteration.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wheel1
    - wheel2
    - ARG_UNUSED
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: WheelCompareUnexpanded
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int WheelCompareUnexpanded(const void *wheel1, const void *wheel2,\n
      \                                 void *user_data ARG_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libpromises/iteration.c:201,1
    - Dst: xmemdup
      Src: /src/core/libpromises/iteration.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: PromiseIteratorNew
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 1
    functionsReached:
    - xmemdup
    - SeqNew
    linkageType: ''
    returnType: PromiseIterator
    signature: PromiseIterator *PromiseIteratorNew(const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqDestroy
      Src: /src/core/libpromises/iteration.c:210,1
    - Dst: free
      Src: /src/core/libpromises/iteration.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iterctx
    argTypes:
    - PromiseIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: PromiseIteratorDestroy
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 1
    functionsReached:
    - free
    - SeqDestroy
    linkageType: ''
    returnType: void
    signature: void PromiseIteratorDestroy(PromiseIterator *iterctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter_ctx
    argTypes:
    - PromiseIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: PromiseIteratorIndex
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t PromiseIteratorIndex(const PromiseIterator *iter_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - s
    - max
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (i == max || s[i] == '\0')
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 240
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 240
    functionName: FindDollarParen
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t FindDollarParen(const char *s, size_t max)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/iteration.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: opposite
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char opposite(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: opposite
      Src: /src/core/libpromises/iteration.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 279
    functionName: FindClosingParen
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - opposite
    linkageType: ''
    returnType: char
    signature: char *FindClosingParen(char *s, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:289,1
    - Dst: strlen
      Src: /src/core/libpromises/iteration.c:290,1
    - Dst: FindDollarParen
      Src: /src/core/libpromises/iteration.c:291,1
    - Dst: strchrnul
      Src: /src/core/libpromises/iteration.c:292,1
    - Dst: MIN
      Src: /src/core/libpromises/iteration.c:293,1
    - Dst: strchrnul
      Src: /src/core/libpromises/iteration.c:294,1
    - Dst: strchrnul
      Src: /src/core/libpromises/iteration.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 306
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 306
    functionName: IsMangled
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 1
    functionsReached:
    - strlen
    - assert
    - MIN
    - FindDollarParen
    - strchrnul
    linkageType: ''
    returnType: bool
    signature: bool IsMangled(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FindDollarParen
      Src: /src/core/libpromises/iteration.c:317,1
    - Dst: MIN
      Src: /src/core/libpromises/iteration.c:318,1
    - Dst: memchr
      Src: /src/core/libpromises/iteration.c:319,1
    - Dst: memchr
      Src: /src/core/libpromises/iteration.c:325,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:331,1
    - Dst: memchr
      Src: /src/core/libpromises/iteration.c:336,1
    - Dst: strncmp
      Src: /src/core/libpromises/iteration.c:338,1
    - Dst: LogDebug
      Src: /src/core/libpromises/iteration.c:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - ref_str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (upto >= (ns + 1 - ref_str))
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 350
      start: 315
    functionDepth: 8
    functionLinenumber: 315
    functionLinenumberEnd: 350
    functionName: MangleVarRefString
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 3
    functionsReached:
    - strncmp
    - assert
    - MIN
    - LogDebug
    - FindDollarParen
    - memchr
    linkageType: ''
    returnType: void
    signature: void MangleVarRefString(char *ref_str, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/iteration.c:362,1
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/iteration.c:371,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/iteration.c:373,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/iteration.c:374,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:378,1
    - Dst: IsMangled
      Src: /src/core/libpromises/iteration.c:380,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/iteration.c:385,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/iteration.c:386,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/iteration.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - iterctx
    - evalctx
    - varname
    - type
    argTypes:
    - PromiseIterator*
    - EvalContext*
    - char*
    - DataType*
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 392
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 392
    functionName: IterVariableGet
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - assert
    - VarRefParseFromNamespaceAndScope
    - IsMangled
    - VarRefDestroy
    - EvalContextVariableGet
    - VarRefParse
    linkageType: ''
    returnType: void
    signature: "void *IterVariableGet(const PromiseIterator *iterctx,\n                                   const
      EvalContext *evalctx,\n                                   const char *varname,
      DataType *type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/iteration.c:398,1
    - Dst: strcmp
      Src: /src/core/libpromises/iteration.c:399,1
    - Dst: strcmp
      Src: /src/core/libpromises/iteration.c:400,1
    - Dst: strcmp
      Src: /src/core/libpromises/iteration.c:401,1
    - Dst: strcmp
      Src: /src/core/libpromises/iteration.c:402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 410
    functionName: VarIsSpecial
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool VarIsSpecial(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/iteration.c:445,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/iteration.c:446,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/iteration.c:448,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/iteration.c:449,1
    - Dst: FindDollarParen
      Src: /src/core/libpromises/iteration.c:451,1
    - Dst: DataTypeIsIterable
      Src: /src/core/libpromises/iteration.c:458,1
    - Dst: VarIsSpecial
      Src: /src/core/libpromises/iteration.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - iterctx
    - evalctx
    - varname
    - varname_len
    argTypes:
    - PromiseIterator*
    - EvalContext*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 491
    functionName: ShouldAddVariableAsIterationWheel
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - VarRefParseFromBundle
    - FindDollarParen
    - VarIsSpecial
    - VarRefDestroy
    - EvalContextVariableGet
    - DataTypeIsIterable
    linkageType: ''
    returnType: bool
    signature: "bool ShouldAddVariableAsIterationWheel(\n    const PromiseIterator
      *iterctx,\n    const EvalContext *evalctx,\n    char *varname, size_t varname_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:513,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:514,1
    - Dst: FindClosingParen
      Src: /src/core/libpromises/iteration.c:516,1
    - Dst: strlen
      Src: /src/core/libpromises/iteration.c:517,1
    - Dst: FindDollarParen
      Src: /src/core/libpromises/iteration.c:524,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:531,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:532,1
    - Dst: ProcessVar
      Src: /src/core/libpromises/iteration.c:534,1
    - Dst: strlen
      Src: /src/core/libpromises/iteration.c:542,1
    - Dst: FindDollarParen
      Src: /src/core/libpromises/iteration.c:543,1
    - Dst: strlen
      Src: /src/core/libpromises/iteration.c:551,1
    - Dst: FindClosingParen
      Src: /src/core/libpromises/iteration.c:552,1
    - Dst: FindDollarParen
      Src: /src/core/libpromises/iteration.c:559,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:563,1
    - Dst: Log
      Src: /src/core/libpromises/iteration.c:566,1
    - Dst: opposite
      Src: /src/core/libpromises/iteration.c:567,1
    - Dst: ShouldAddVariableAsIterationWheel
      Src: /src/core/libpromises/iteration.c:573,1
    - Dst: MangleVarRefString
      Src: /src/core/libpromises/iteration.c:576,1
    - Dst: WheelNew
      Src: /src/core/libpromises/iteration.c:578,1
    - Dst: SeqLookup
      Src: /src/core/libpromises/iteration.c:586,1
    - Dst: LogDebug
      Src: /src/core/libpromises/iteration.c:590,1
    - Dst: WheelDestroy
      Src: /src/core/libpromises/iteration.c:593,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/iteration.c:601,1
    - Dst: LogDebug
      Src: /src/core/libpromises/iteration.c:603,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:605,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:610,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:611,1
    - Dst: opposite
      Src: /src/core/libpromises/iteration.c:611,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - iterctx
    - evalctx
    - s
    - c
    argTypes:
    - PromiseIterator*
    - EvalContext*
    - char*
    - char
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/core/libpromises/iteration.c
    - condition: (s_end != NULL)
      pos:
        line_end: 562
        line_start: 562
        source_file: /src/core/libpromises/iteration.c
    - condition: (next_var[0] != '\0')
      pos:
        line_end: 530
        line_start: 530
        source_file: /src/core/libpromises/iteration.c
    - condition: (*s_end == opposite(c))
      pos:
        line_end: 610
        line_start: 610
        source_file: /src/core/libpromises/iteration.c
    - condition: (c == '(' || c == '{')
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/core/libpromises/iteration.c
    - condition: (next_var[1] != '\0')
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/core/libpromises/iteration.c
    - condition: (s_end != NULL)
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 613
      start: 510
    functionDepth: 9
    functionLinenumber: 510
    functionLinenumberEnd: 613
    functionName: ProcessVar
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 1
    functionsReached:
    - WheelNew
    - WheelDestroy
    - strlen
    - MangleVarRefString
    - assert
    - LogDebug
    - FindDollarParen
    - SeqLookup
    - Log
    - opposite
    - ShouldAddVariableAsIterationWheel
    - FindClosingParen
    - ProcessVar
    - SeqLength
    - SeqAppend
    linkageType: ''
    returnType: char
    signature: "char *ProcessVar(PromiseIterator *iterctx, const EvalContext *evalctx,\n
      \                       char *s, char c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:629,1
    - Dst: LogDebug
      Src: /src/core/libpromises/iteration.c:630,1
    - Dst: strlen
      Src: /src/core/libpromises/iteration.c:631,1
    - Dst: FindDollarParen
      Src: /src/core/libpromises/iteration.c:632,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:634,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:646,1
    - Dst: ProcessVar
      Src: /src/core/libpromises/iteration.c:648,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:649,1
    - Dst: FindDollarParen
      Src: /src/core/libpromises/iteration.c:656,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - iterctx
    - evalctx
    - s
    argTypes:
    - PromiseIterator*
    - EvalContext*
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 628
        line_start: 628
        source_file: /src/core/libpromises/iteration.c
    - condition: (offset <= s_len)
      pos:
        line_end: 633
        line_start: 633
        source_file: /src/core/libpromises/iteration.c
    - condition: (paren_or_brace == '(' || paren_or_brace == '{')
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/core/libpromises/iteration.c
    - condition: (var_end != NULL)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/core/libpromises/iteration.c
    - condition: (var_offset <= var_next_len)
      pos:
        line_end: 656
        line_start: 656
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 664
      start: 625
    functionDepth: 10
    functionLinenumber: 625
    functionLinenumberEnd: 664
    functionName: PromiseIteratorPrepare
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 1
    functionsReached:
    - strlen
    - assert
    - LogDebug
    - FindDollarParen
    - ProcessVar
    linkageType: ''
    returnType: void
    signature: "void PromiseIteratorPrepare(PromiseIterator *iterctx,\n                            const
      EvalContext *evalctx,\n                            char *s)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/iteration.c:680,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/iteration.c:684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - evalctx
    - varname
    - listtype
    - value
    argTypes:
    - EvalContext*
    - char*
    - DataType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 666
    functionDepth: 4
    functionLinenumber: 666
    functionLinenumberEnd: 687
    functionName: IterListElementVariablePut
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - EvalContextVariablePutSpecial
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: "void IterListElementVariablePut(EvalContext *evalctx,\n                                       const
      char *varname,\n                                       DataType listtype, void
      *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:691,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/iteration.c:691,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libpromises/iteration.c:693,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/iteration.c:696,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libpromises/iteration.c:696,1
    - Dst: xstrdup
      Src: /src/core/libpromises/iteration.c:697,1
    - Dst: xstrdup
      Src: /src/core/libpromises/iteration.c:697,1
    - Dst: StringFromLong
      Src: /src/core/libpromises/iteration.c:701,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/libpromises/iteration.c:701,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/iteration.c:702,1
    - Dst: StringFromDouble
      Src: /src/core/libpromises/iteration.c:707,1
    - Dst: JsonPrimitiveGetAsReal
      Src: /src/core/libpromises/iteration.c:707,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/iteration.c:708,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/iteration.c:712,1
    - Dst: xstrdup
      Src: /src/core/libpromises/iteration.c:712,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/iteration.c:712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - seq
    - primitive
    argTypes:
    - Seq*
    - JsonElement*
    assertStmts:
    - condition: (JsonGetElementType(primitive) == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 690
        line_start: 690
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 718
      start: 689
    functionDepth: 5
    functionLinenumber: 689
    functionLinenumberEnd: 718
    functionName: SeqAppendContainerPrimitive
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - JsonPrimitiveGetAsBool
    - JsonPrimitiveGetAsReal
    - assert
    - JsonGetElementType
    - StringFromDouble
    - JsonPrimitiveGetAsString
    - StringFromLong
    - xstrdup
    - JsonPrimitiveGetAsInteger
    - JsonGetPrimitiveType
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void SeqAppendContainerPrimitive(Seq *seq, const JsonElement *primitive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libpromises/iteration.c:722,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/iteration.c:724,1
    - Dst: SeqAppendContainerPrimitive
      Src: /src/core/libpromises/iteration.c:727,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/iteration.c:732,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/iteration.c:735,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/iteration.c:737,1
    - Dst: SeqAppendContainerPrimitive
      Src: /src/core/libpromises/iteration.c:739,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - container
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 720
    functionDepth: 6
    functionLinenumber: 720
    functionLinenumberEnd: 748
    functionName: ContainerToSeq
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - JsonIteratorInit
    - JsonGetElementType
    - SeqNew
    - SeqAppendContainerPrimitive
    - JsonIteratorNextValue
    linkageType: ''
    returnType: Seq
    signature: Seq *ContainerToSeq(const JsonElement *container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/libpromises/iteration.c:752,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/iteration.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 750
    functionDepth: 3
    functionLinenumber: 750
    functionLinenumberEnd: 764
    functionName: RlistToSeq
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - SeqAppend
    - SeqNew
    linkageType: ''
    returnType: Seq
    signature: Seq *RlistToSeq(const Rlist *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ContainerToSeq
      Src: /src/core/libpromises/iteration.c:771,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:777,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/iteration.c:777,1
    - Dst: RlistToSeq
      Src: /src/core/libpromises/iteration.c:778,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/iteration.c:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - v
    - t
    argTypes:
    - void*
    - DataType
    assertStmts:
    - condition: (DataTypeToRvalType(t) == RVAL_TYPE_LIST)
      pos:
        line_end: 776
        line_start: 776
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 783
      start: 766
    functionDepth: 7
    functionLinenumber: 766
    functionLinenumberEnd: 783
    functionName: IterableToSeq
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - ContainerToSeq
    - assert
    - ProgrammingError
    - DataTypeToRvalType
    - RlistToSeq
    linkageType: ''
    returnType: Seq
    signature: Seq *IterableToSeq(const void *v, DataType t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:804,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:805,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:806,1
    - Dst: EvalContextGetBundleNames
      Src: /src/core/libpromises/iteration.c:808,1
    - Dst: strchr
      Src: /src/core/libpromises/iteration.c:812,1
    - Dst: strchr
      Src: /src/core/libpromises/iteration.c:815,1
    - Dst: strchr
      Src: /src/core/libpromises/iteration.c:818,1
    - Dst: strchr
      Src: /src/core/libpromises/iteration.c:821,1
    - Dst: StringStartsWith
      Src: /src/core/libpromises/iteration.c:834,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/iteration.c:835,1
    - Dst: strchr
      Src: /src/core/libpromises/iteration.c:859,1
    - Dst: strchr
      Src: /src/core/libpromises/iteration.c:862,1
    - Dst: StringStartsWith
      Src: /src/core/libpromises/iteration.c:869,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/iteration.c:870,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - iterctx
    - evalctx
    - varname
    argTypes:
    - PromiseIterator*
    - EvalContext*
    - char*
    assertStmts:
    - condition: (iterctx != NULL)
      pos:
        line_end: 803
        line_start: 803
        source_file: /src/core/libpromises/iteration.c
    - condition: (iterctx->pp->promiser != NULL)
      pos:
        line_end: 805
        line_start: 805
        source_file: /src/core/libpromises/iteration.c
    - condition: (iterctx->pp != NULL)
      pos:
        line_end: 804
        line_start: 804
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 885
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 885
    functionName: WheelMangleAfterExpandingToList
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - StringSetContains
    - assert
    - strchr
    - EvalContextGetBundleNames
    - StringStartsWith
    linkageType: ''
    returnType: void
    signature: "void WheelMangleAfterExpandingToList(const PromiseIterator *iterctx,\n
      \                                           EvalContext *evalctx, char *varname)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:902,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:903,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:904,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:905,1
    - Dst: BufferNew
      Src: /src/core/libpromises/iteration.c:908,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:910,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:913,1
    - Dst: BufferClear
      Src: /src/core/libpromises/iteration.c:914,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/iteration.c:922,1
    - Dst: PromiseGetNamespace
      Src: /src/core/libpromises/iteration.c:923,1
    - Dst: strcmp
      Src: /src/core/libpromises/iteration.c:930,1
    - Dst: free
      Src: /src/core/libpromises/iteration.c:932,1
    - Dst: xstrdup
      Src: /src/core/libpromises/iteration.c:933,1
    - Dst: WheelValuesSeqDestroy
      Src: /src/core/libpromises/iteration.c:935,1
    - Dst: IterVariableGet
      Src: /src/core/libpromises/iteration.c:940,1
    - Dst: DataTypeIsIterable
      Src: /src/core/libpromises/iteration.c:945,1
    - Dst: IterableToSeq
      Src: /src/core/libpromises/iteration.c:947,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:949,1
    - Dst: Log
      Src: /src/core/libpromises/iteration.c:957,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:963,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:964,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:964,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:965,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:965,1
    - Dst: IsMangled
      Src: /src/core/libpromises/iteration.c:967,1
    - Dst: WheelMangleAfterExpandingToList
      Src: /src/core/libpromises/iteration.c:969,1
    - Dst: IterListElementVariablePut
      Src: /src/core/libpromises/iteration.c:974,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:975,1
    - Dst: IsMangled
      Src: /src/core/libpromises/iteration.c:984,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/iteration.c:986,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:998,1
    - Dst: DataTypeIsIterable
      Src: /src/core/libpromises/iteration.c:998,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:999,1
    - Dst: IsMangled
      Src: /src/core/libpromises/iteration.c:1000,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:1002,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:1010,1
    - Dst: IterListElementVariablePut
      Src: /src/core/libpromises/iteration.c:1013,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:1015,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/iteration.c:1020,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - iterctx
    - evalctx
    - wheel_idx
    argTypes:
    - PromiseIterator*
    - EvalContext*
    - size_t
    assertStmts:
    - condition: (iterctx->pp->promiser != NULL)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/core/libpromises/iteration.c
    - condition: (iterctx->pp != NULL)
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/core/libpromises/iteration.c
    - condition: (iterctx != NULL)
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/core/libpromises/iteration.c
    - condition: "(value_type == CF_DATA_TYPE_NONE ||  /* var does not resolve */\n
        \                      !IsMangled(varname))"
      pos:
        line_end: 999
        line_start: 998
        source_file: /src/core/libpromises/iteration.c
    - condition: (          wheel->values     != NULL)
      pos:
        line_end: 962
        line_start: 962
        source_file: /src/core/libpromises/iteration.c
    - condition: (SeqLength(wheel->values)     > 0)
      pos:
        line_end: 963
        line_start: 963
        source_file: /src/core/libpromises/iteration.c
    - condition: (    SeqAt(wheel->values, 0) != NULL)
      pos:
        line_end: 964
        line_start: 964
        source_file: /src/core/libpromises/iteration.c
    - condition: (wheel->values == NULL)
      pos:
        line_end: 1001
        line_start: 1001
        source_file: /src/core/libpromises/iteration.c
    - condition: (iterctx->wheels != NULL)
      pos:
        line_end: 902
        line_start: 902
        source_file: /src/core/libpromises/iteration.c
    - condition: (!DataTypeIsIterable(value_type))
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 1021
      start: 897
    functionDepth: 8
    functionLinenumber: 897
    functionLinenumberEnd: 1021
    functionName: ExpandAndPutWheelVariablesAfter
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - Log
    - BufferNew
    - free
    - SeqLength
    - WheelValuesSeqDestroy
    - WheelMangleAfterExpandingToList
    - BufferClear
    - strcmp
    - xstrdup
    - SeqAt
    - IterListElementVariablePut
    - ExpandScalar
    - assert
    - IterableToSeq
    - PromiseGetNamespace
    - IsMangled
    - DataTypeIsIterable
    - EvalContextVariablePutSpecial
    - IterVariableGet
    linkageType: ''
    returnType: void
    signature: "void ExpandAndPutWheelVariablesAfter(\n    const PromiseIterator *iterctx,\n
      \   EvalContext *evalctx,\n    size_t wheel_idx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:1025,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:1028,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:1029,1
    - Dst: VarIsSpecial
      Src: /src/core/libpromises/iteration.c:1031,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:1038,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - iterctx
    argTypes:
    - PromiseIterator*
    assertStmts:
    - condition: (wheel != NULL)
      pos:
        line_end: 1028
        line_start: 1028
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 1047
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1047
    functionName: IteratorHasEmptyWheel
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - VarIsSpecial
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool IteratorHasEmptyWheel(const PromiseIterator *iterctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:1053,1
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:1057,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:1067,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:1073,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:1074,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - iterctx
    argTypes:
    - PromiseIterator*
    assertStmts:
    - condition: (wheels_num > 0)
      pos:
        line_end: 1056
        line_start: 1056
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 1077
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1077
    functionName: WheelRightmostIncrement
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - SeqAt
    linkageType: ''
    returnType: size_t
    signature: size_t WheelRightmostIncrement(PromiseIterator *iterctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/iteration.c:1084,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - iterctx
    argTypes:
    - PromiseIterator*
    assertStmts:
    - condition: (SeqLength(iterctx->wheels) == 0)
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/core/libpromises/iteration.c
    constantsTouched: []
    func_position:
      end: 1095
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1095
    functionName: RunOnlyOnce
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    linkageType: ''
    returnType: bool
    signature: bool RunOnlyOnce(PromiseIterator *iterctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:1099,1
    - Dst: RunOnlyOnce
      Src: /src/core/libpromises/iteration.c:1103,1
    - Dst: Log
      Src: /src/core/libpromises/iteration.c:1111,1
    - Dst: ExpandAndPutWheelVariablesAfter
      Src: /src/core/libpromises/iteration.c:1115,1
    - Dst: IteratorHasEmptyWheel
      Src: /src/core/libpromises/iteration.c:1117,1
    - Dst: WheelRightmostIncrement
      Src: /src/core/libpromises/iteration.c:1122,1
    - Dst: Log
      Src: /src/core/libpromises/iteration.c:1125,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:1136,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:1137,1
    - Dst: IterListElementVariablePut
      Src: /src/core/libpromises/iteration.c:1139,1
    - Dst: ExpandAndPutWheelVariablesAfter
      Src: /src/core/libpromises/iteration.c:1144,1
    - Dst: IteratorHasEmptyWheel
      Src: /src/core/libpromises/iteration.c:1149,1
    - Dst: LogDebug
      Src: /src/core/libpromises/iteration.c:1151,1
    - Dst: SeqLength
      Src: /src/core/libpromises/iteration.c:1160,1
    - Dst: SeqAt
      Src: /src/core/libpromises/iteration.c:1162,1
    - Dst: StringEqual
      Src: /src/core/libpromises/iteration.c:1163,1
    - Dst: EvaluateFinalRval
      Src: /src/core/libpromises/iteration.c:1165,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/iteration.c:1165,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/iteration.c:1167,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/iteration.c:1167,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/iteration.c:1169,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/iteration.c:1170,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/iteration.c:1174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - iterctx
    - evalctx
    argTypes:
    - PromiseIterator*
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1097
    functionDepth: 9
    functionLinenumber: 1097
    functionLinenumberEnd: 1179
    functionName: PromiseIteratorNext
    functionSourceFile: /src/core/libpromises/iteration.c
    functionUses: 0
    functionsReached:
    - IsCf3VarString
    - RvalDestroy
    - IterListElementVariablePut
    - ExpandAndPutWheelVariablesAfter
    - RvalScalarValue
    - EvaluateFinalRval
    - LogDebug
    - IteratorHasEmptyWheel
    - RunOnlyOnce
    - EvalContextVariablePutSpecial
    - WheelRightmostIncrement
    - PromiseGetPolicy
    - Log
    - SeqLength
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool PromiseIteratorNext(PromiseIterator *iterctx, EvalContext *evalctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassDestroy
      Src: /src/core/libpromises/class.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: ClassDestroy_untyped
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 0
    functionsReached:
    - ClassDestroy
    linkageType: ''
    returnType: void
    signature: void ClassDestroy_untyped(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/class.c:74,1
    - Dst: strcmp
      Src: /src/core/libpromises/class.c:76,1
    - Dst: xstrdup
      Src: /src/core/libpromises/class.c:82,1
    - Dst: xstrdup
      Src: /src/core/libpromises/class.c:85,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/class.c:86,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/class.c:90,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/class.c:91,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/class.c:93,1
    - Dst: xstrdup
      Src: /src/core/libpromises/class.c:93,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/class.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - cls
    - ns
    - name
    - is_soft
    - scope
    - tags
    - comment
    argTypes:
    - Class*
    - char*
    - char*
    - bool
    - ContextScope
    - StringSet*
    - char*
    assertStmts:
    - condition: (cls != NULL)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/core/libpromises/class.c
    constantsTouched: []
    func_position:
      end: 96
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 96
    functionName: ClassInit
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 0
    functionsReached:
    - CanonifyNameInPlace
    - assert
    - StringSetContains
    - SafeStringDuplicate
    - strcmp
    - xstrdup
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: "void ClassInit(Class *cls,\n                      const char *ns,
      const char *name,\n                      bool is_soft, ContextScope scope, StringSet
      *tags,\n                      const char *comment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/class.c:102,1
    - Dst: free
      Src: /src/core/libpromises/class.c:103,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/class.c:104,1
    - Dst: free
      Src: /src/core/libpromises/class.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cls
    argTypes:
    - Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: ClassDestroySoft
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 0
    functionsReached:
    - free
    - StringSetDestroy
    linkageType: ''
    returnType: void
    signature: void ClassDestroySoft(Class *cls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClassDestroySoft
      Src: /src/core/libpromises/class.c:113,1
    - Dst: free
      Src: /src/core/libpromises/class.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cls
    argTypes:
    - Class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: ClassDestroy
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 1
    functionsReached:
    - free
    - ClassDestroySoft
    linkageType: ''
    returnType: void
    signature: void ClassDestroy(Class *cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/class.c:120,1
    - Dst: ClassMapNew
      Src: /src/core/libpromises/class.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: ClassTableNew
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 5
    functionsReached:
    - xmalloc
    - ClassMapNew
    linkageType: ''
    returnType: ClassTable
    signature: ClassTable *ClassTableNew(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ClassMapDestroy
      Src: /src/core/libpromises/class.c:131,1
    - Dst: free
      Src: /src/core/libpromises/class.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - table
    argTypes:
    - ClassTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: ClassTableDestroy
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 5
    functionsReached:
    - free
    - ClassMapDestroy
    linkageType: ''
    returnType: void
    signature: void ClassTableDestroy(ClassTable *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/class.c:140,1
    - Dst: assert
      Src: /src/core/libpromises/class.c:141,1
    - Dst: strcmp
      Src: /src/core/libpromises/class.c:141,1
    - Dst: assert
      Src: /src/core/libpromises/class.c:142,1
    - Dst: xmalloc
      Src: /src/core/libpromises/class.c:149,1
    - Dst: ClassInit
      Src: /src/core/libpromises/class.c:150,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/class.c:153,1
    - Dst: Log
      Src: /src/core/libpromises/class.c:155,1
    - Dst: ClassMapInsert
      Src: /src/core/libpromises/class.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - table
    - ns
    - name
    - is_soft
    - scope
    - tags
    - comment
    argTypes:
    - ClassTable*
    - char*
    - char*
    - bool
    - ContextScope
    - StringSet*
    - char*
    assertStmts:
    - condition: (name)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/core/libpromises/class.c
    - condition: (is_soft || scope == CONTEXT_SCOPE_NAMESPACE)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/core/libpromises/class.c
    - condition: (is_soft || (!ns || strcmp("default", ns) == 0))
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/core/libpromises/class.c
    constantsTouched: []
    func_position:
      end: 160
      start: 136
    functionDepth: 8
    functionLinenumber: 136
    functionLinenumberEnd: 160
    functionName: ClassTablePut
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 5
    functionsReached:
    - assert
    - ClassMapInsert
    - StringConcatenate
    - ClassInit
    - xmalloc
    - Log
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool ClassTablePut(ClassTable *table,\n                   const char
      *ns, const char *name,\n                   bool is_soft, ContextScope scope,
      StringSet *tags, const char *comment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/class.c:169,1
    - Dst: strlen
      Src: /src/core/libpromises/class.c:169,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/class.c:170,1
    - Dst: ClassMapGet
      Src: /src/core/libpromises/class.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - table
    - ns
    - name
    argTypes:
    - ClassTable*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 173
    functionName: ClassTableGet
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 7
    functionsReached:
    - xsnprintf
    - ClassMapGet
    - strlen
    linkageType: ''
    returnType: Class
    signature: Class *ClassTableGet(const ClassTable *table, const char *ns, const
      char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ClassTableIteratorNew
      Src: /src/core/libpromises/class.c:177,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/class.c:180,1
    - Dst: Log
      Src: /src/core/libpromises/class.c:184,1
    - Dst: ClassTableIteratorNext
      Src: /src/core/libpromises/class.c:188,1
    - Dst: ClassRefToString
      Src: /src/core/libpromises/class.c:193,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/class.c:194,1
    - Dst: free
      Src: /src/core/libpromises/class.c:195,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/class.c:199,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/class.c:208,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/libpromises/class.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - table
    - regex
    argTypes:
    - ClassTable*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 175
    functionDepth: 8
    functionLinenumber: 175
    functionLinenumberEnd: 212
    functionName: ClassTableMatch
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 3
    functionsReached:
    - ClassRefToString
    - CompileRegex
    - RegexDestroy
    - ClassTableIteratorDestroy
    - StringMatchFullWithPrecompiledRegex
    - Log
    - ClassTableIteratorNext
    - free
    - ClassTableIteratorNew
    linkageType: ''
    returnType: Class
    signature: Class *ClassTableMatch(const ClassTable *table, const char *regex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/class.c:221,1
    - Dst: strlen
      Src: /src/core/libpromises/class.c:221,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/class.c:222,1
    - Dst: ClassMapRemove
      Src: /src/core/libpromises/class.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - table
    - ns
    - name
    argTypes:
    - ClassTable*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: ClassTableRemove
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 4
    functionsReached:
    - xsnprintf
    - ClassMapRemove
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool ClassTableRemove(ClassTable *table, const char *ns, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClassMapSize
      Src: /src/core/libpromises/class.c:229,1
    - Dst: ClassMapClear
      Src: /src/core/libpromises/class.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - table
    argTypes:
    - ClassTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: ClassTableClear
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 1
    functionsReached:
    - ClassMapClear
    - ClassMapSize
    linkageType: ''
    returnType: bool
    signature: bool ClassTableClear(ClassTable *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/class.c:238,1
    - Dst: xstrdup
      Src: /src/core/libpromises/class.c:240,1
    - Dst: MapIteratorInit
      Src: /src/core/libpromises/class.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - table
    - ns
    - is_hard
    - is_soft
    argTypes:
    - ClassTable*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: ClassTableIteratorNew
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 4
    functionsReached:
    - MapIteratorInit
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: ClassTableIterator
    signature: "ClassTableIterator *ClassTableIteratorNew(const ClassTable *table,\n
      \                                         const char *ns,\n                                          bool
      is_hard, bool is_soft)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MapIteratorNext
      Src: /src/core/libpromises/class.c:252,1
    - Dst: CF_ASSERT_FIX
      Src: /src/core/libpromises/class.c:258,1
    - Dst: strcmp
      Src: /src/core/libpromises/class.c:259,1
    - Dst: strcmp
      Src: /src/core/libpromises/class.c:266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 1
    argNames:
    - iter
    argTypes:
    - ClassTableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 284
    functionName: ClassTableIteratorNext
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 5
    functionsReached:
    - CF_ASSERT_FIX
    - strcmp
    - MapIteratorNext
    linkageType: ''
    returnType: Class
    signature: Class *ClassTableIteratorNext(ClassTableIterator *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/class.c:290,1
    - Dst: free
      Src: /src/core/libpromises/class.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - iter
    argTypes:
    - ClassTableIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 293
    functionName: ClassTableIteratorDestroy
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 9
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ClassTableIteratorDestroy(ClassTableIterator *iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/libpromises/class.c:297,1
    - Dst: xstrdup
      Src: /src/core/libpromises/class.c:300,1
    - Dst: xstrndup
      Src: /src/core/libpromises/class.c:307,1
    - Dst: xstrdup
      Src: /src/core/libpromises/class.c:312,1
    - Dst: xstrdup
      Src: /src/core/libpromises/class.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - expr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 317
    functionName: ClassRefParse
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 9
    functionsReached:
    - strchr
    - xstrndup
    - xstrdup
    linkageType: ''
    returnType: ClassRef
    signature: ClassRef ClassRefParse(const char *expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/class.c:321,1
    - Dst: strcmp
      Src: /src/core/libpromises/class.c:324,1
    - Dst: xstrdup
      Src: /src/core/libpromises/class.c:326,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/class.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ns
    - name
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/core/libpromises/class.c
    constantsTouched: []
    func_position:
      end: 332
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 332
    functionName: ClassRefToString
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 6
    functionsReached:
    - StringConcatenate
    - assert
    - strcmp
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *ClassRefToString(const char *ns, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - ClassRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: ClassRefIsQualified
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ClassRefIsQualified(ClassRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/class.c:341,1
    - Dst: xstrdup
      Src: /src/core/libpromises/class.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - ns
    argTypes:
    - ClassRef*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: ClassRefQualify
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 3
    functionsReached:
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void ClassRefQualify(ClassRef *ref, const char *ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/class.c:347,1
    - Dst: free
      Src: /src/core/libpromises/class.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ref
    argTypes:
    - ClassRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: ClassRefDestroy
    functionSourceFile: /src/core/libpromises/class.c
    functionUses: 12
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ClassRefDestroy(ClassRef ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckClassExpression
      Src: /src/core/libpromises/eval_context.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - context
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 9
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: IsDefinedClass
    functionSourceFile: /src/core/libpromises/eval_context.h
    functionUses: 33
    functionsReached:
    - CheckClassExpression
    linkageType: ''
    returnType: bool
    signature: bool IsDefinedClass(const EvalContext *ctx, const char *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 368
    functionName: ChrootChanges
    functionSourceFile: /src/core/libpromises/eval_context.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ChrootChanges()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChrootChanges
      Src: /src/core/libpromises/eval_context.h:394,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/eval_context.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: ToChangesPath
    functionSourceFile: /src/core/libpromises/eval_context.h
    functionUses: 0
    functionsReached:
    - ToChangesChroot
    - ChrootChanges
    linkageType: ''
    returnType: char
    signature: char *ToChangesPath(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: ParserDebug
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ParserDebug(...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringVFormat
      Src: /src/core/libpromises/cf3parse_logic.h:101,1
    - Dst: fprintf
      Src: /src/core/libpromises/cf3parse_logic.h:102,1
    - Dst: free
      Src: /src/core/libpromises/cf3parse_logic.h:109,1
    - Dst: fprintf
      Src: /src/core/libpromises/cf3parse_logic.h:116,1
    - Dst: fprintf
      Src: /src/core/libpromises/cf3parse_logic.h:117,1
    - Dst: fprintf
      Src: /src/core/libpromises/cf3parse_logic.h:122,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/cf3parse_logic.h:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - column_offset
    - s
    - ap
    argTypes:
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 125
    functionName: ParseErrorVColumnOffset
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - free
    - StringVFormat
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void ParseErrorVColumnOffset(\n    int column_offset, const char *s,
      va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libpromises/cf3parse_logic.h:130,1
    - Dst: ParseErrorVColumnOffset
      Src: /src/core/libpromises/cf3parse_logic.h:131,1
    - Dst: va_end
      Src: /src/core/libpromises/cf3parse_logic.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - column_offset
    - s
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: ParseErrorColumnOffset
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - va_end
    - ParseErrorVColumnOffset
    - va_start
    linkageType: ''
    returnType: void
    signature: void ParseErrorColumnOffset(int column_offset, const char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseErrorVColumnOffset
      Src: /src/core/libpromises/cf3parse_logic.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: ParseErrorV
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - ParseErrorVColumnOffset
    linkageType: ''
    returnType: void
    signature: void ParseErrorV(const char *s, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libpromises/cf3parse_logic.h:143,1
    - Dst: ParseErrorV
      Src: /src/core/libpromises/cf3parse_logic.h:144,1
    - Dst: va_end
      Src: /src/core/libpromises/cf3parse_logic.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: ParseError
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - va_end
    - ParseErrorV
    - va_start
    linkageType: ''
    returnType: void
    signature: void ParseError(const char *s, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringVFormat
      Src: /src/core/libpromises/cf3parse_logic.h:155,1
    - Dst: ParserWarningToString
      Src: /src/core/libpromises/cf3parse_logic.h:156,1
    - Dst: fprintf
      Src: /src/core/libpromises/cf3parse_logic.h:158,1
    - Dst: fprintf
      Src: /src/core/libpromises/cf3parse_logic.h:166,1
    - Dst: fprintf
      Src: /src/core/libpromises/cf3parse_logic.h:167,1
    - Dst: free
      Src: /src/core/libpromises/cf3parse_logic.h:169,1
    - Dst: fprintf
      Src: /src/core/libpromises/cf3parse_logic.h:180,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/cf3parse_logic.h:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - warning
    - s
    - ap
    argTypes:
    - unsigned int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: ParseWarningV
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - StringVFormat
    - ParserWarningToString
    - fprintf
    - free
    linkageType: ''
    returnType: void
    signature: void ParseWarningV(unsigned int warning, const char *s, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libpromises/cf3parse_logic.h:188,1
    - Dst: ParseWarningV
      Src: /src/core/libpromises/cf3parse_logic.h:189,1
    - Dst: va_end
      Src: /src/core/libpromises/cf3parse_logic.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - warning
    - s
    argTypes:
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: ParseWarning
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - va_end
    - ParseWarningV
    - va_start
    linkageType: ''
    returnType: void
    signature: void ParseWarning(unsigned int warning, const char *s, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseError
      Src: /src/core/libpromises/cf3parse_logic.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: yyerror
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 3
    functionsReached:
    - ParseError
    linkageType: ''
    returnType: void
    signature: void yyerror(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/libpromises/cf3parse_logic.h:207,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/cf3parse_logic.h:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: fatal_yyerror
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fatal_yyerror(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:220,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:221,1
    - Dst: SplitString
      Src: /src/core/libpromises/cf3parse_logic.h:228,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:230,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/cf3parse_logic.h:232,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/cf3parse_logic.h:234,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/cf3parse_logic.h:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - agent
    - blocktype
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 241
    functionName: RelevantBundle
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - DeleteItemList
    - SplitString
    - IsItemIn
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool RelevantBundle(const char *agent, const char *blocktype)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:261,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:268,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - stype
    - lval
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 284
    functionName: LvalWantsBody
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool LvalWantsBody(char *stype, char *lval)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BodySyntaxGet
      Src: /src/core/libpromises/cf3parse_logic.h:295,1
    - Dst: StringEqual
      Src: /src/core/libpromises/cf3parse_logic.h:299,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/cf3parse_logic.h:301,1
    - Dst: debug_abort_if_reached
      Src: /src/core/libpromises/cf3parse_logic.h:311,1
    - Dst: assert
      Src: /src/core/libpromises/cf3parse_logic.h:314,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:317,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:321,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:327,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/cf3parse_logic.h:339,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:386,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:388,1
    - Dst: snprintf
      Src: /src/core/libpromises/cf3parse_logic.h:392,1
    - Dst: yyerror
      Src: /src/core/libpromises/cf3parse_logic.h:399,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:403,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/cf3parse_logic.h:408,1
    - Dst: snprintf
      Src: /src/core/libpromises/cf3parse_logic.h:427,1
    - Dst: yyerror
      Src: /src/core/libpromises/cf3parse_logic.h:433,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 5
    argNames:
    - block
    - type
    - name
    - lval
    - rval
    argTypes:
    - ParserBlock
    - char*
    - char*
    - char*
    - Rval
    assertStmts:
    - condition: (block == PARSER_BLOCK_BODY)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/core/libpromises/cf3parse_logic.h
    constantsTouched: []
    func_position:
      end: 436
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 436
    functionName: CheckSelection
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - snprintf
    - yyerror
    - BodySyntaxGet
    - assert
    - CheckConstraintTypeMatch
    - strcmp
    - debug_abort_if_reached
    - StringEqual
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: "SyntaxTypeMatch CheckSelection(\n    ParserBlock block,\n    const
      char *type,\n    const char *name,\n    const char *lval,\n    Rval rval)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cf3parse_logic.h:444,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:448,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:454,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/cf3parse_logic.h:464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - type
    - lval
    - rval
    - promise_type_syntax
    argTypes:
    - char*
    - char*
    - Rval
    - PromiseTypeSyntax*
    assertStmts:
    - condition: (promise_type_syntax)
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/core/libpromises/cf3parse_logic.h
    constantsTouched: []
    func_position:
      end: 477
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 477
    functionName: CheckConstraint
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - assert
    - CheckConstraintTypeMatch
    - strcmp
    linkageType: ''
    returnType: SyntaxTypeMatch
    signature: "SyntaxTypeMatch CheckConstraint(\n    const char *type,\n    const
      char *lval,\n    Rval rval,\n    const PromiseTypeSyntax *promise_type_syntax)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ParseExpression
      Src: /src/core/libpromises/cf3parse_logic.h:481,1
    - Dst: strlen
      Src: /src/core/libpromises/cf3parse_logic.h:481,1
    - Dst: ParseErrorColumnOffset
      Src: /src/core/libpromises/cf3parse_logic.h:485,1
    - Dst: strlen
      Src: /src/core/libpromises/cf3parse_logic.h:486,1
    - Dst: FreeExpression
      Src: /src/core/libpromises/cf3parse_logic.h:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - class_literal
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 491
    functionName: ValidateClassLiteral
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - strlen
    - ParseErrorColumnOffset
    - FreeExpression
    - ParseExpression
    linkageType: ''
    returnType: void
    signature: void ValidateClassLiteral(const char *class_literal)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 507
    functionName: ParserEndCurrentBlock
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParserEndCurrentBlock()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:530,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:531,1
    - Dst: strlen
      Src: /src/core/libpromises/cf3parse_logic.h:532,1
    - Dst: xstrndup
      Src: /src/core/libpromises/cf3parse_logic.h:536,1
    - Dst: strlen
      Src: /src/core/libpromises/cf3parse_logic.h:536,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/cf3parse_logic.h:537,1
    - Dst: free
      Src: /src/core/libpromises/cf3parse_logic.h:538,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:539,1
    - Dst: FnCallNew
      Src: /src/core/libpromises/cf3parse_logic.h:542,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:548,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:549,1
    - Dst: BufferNewFrom
      Src: /src/core/libpromises/cf3parse_logic.h:554,1
    - Dst: strlen
      Src: /src/core/libpromises/cf3parse_logic.h:554,1
    - Dst: strlen
      Src: /src/core/libpromises/cf3parse_logic.h:557,1
    - Dst: strncmp
      Src: /src/core/libpromises/cf3parse_logic.h:557,1
    - Dst: strstr
      Src: /src/core/libpromises/cf3parse_logic.h:562,1
    - Dst: strstr
      Src: /src/core/libpromises/cf3parse_logic.h:563,1
    - Dst: BufferData
      Src: /src/core/libpromises/cf3parse_logic.h:565,1
    - Dst: JsonParseYamlString
      Src: /src/core/libpromises/cf3parse_logic.h:566,1
    - Dst: strstr
      Src: /src/core/libpromises/cf3parse_logic.h:574,1
    - Dst: strstr
      Src: /src/core/libpromises/cf3parse_logic.h:575,1
    - Dst: BufferData
      Src: /src/core/libpromises/cf3parse_logic.h:577,1
    - Dst: JsonParse
      Src: /src/core/libpromises/cf3parse_logic.h:578,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:583,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/cf3parse_logic.h:592,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:596,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/cf3parse_logic.h:605,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:606,1
    - Dst: FnCallNew
      Src: /src/core/libpromises/cf3parse_logic.h:609,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:613,1
    - Dst: CheckConstraint
      Src: /src/core/libpromises/cf3parse_logic.h:621,1
    - Dst: yyerror
      Src: /src/core/libpromises/cf3parse_logic.h:626,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/cf3parse_logic.h:626,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:631,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:631,1
    - Dst: ValidateClassLiteral
      Src: /src/core/libpromises/cf3parse_logic.h:633,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 47
    argCount: 1
    argNames:
    - promise_type_syntax
    argTypes:
    - PromiseTypeSyntax*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 524
    functionDepth: 6
    functionLinenumber: 524
    functionLinenumberEnd: 635
    functionName: MagicRvalTransformations
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - strncmp
    - BufferDestroy
    - RlistAppendScalar
    - free
    - xstrndup
    - RvalDestroy
    - BufferData
    - strlen
    - JsonGetElementType
    - strcmp
    - ValidateClassLiteral
    - BufferNewFrom
    - JsonParse
    - JsonDestroy
    - yyerror
    - strstr
    - JsonParseYamlString
    - FnCallNew
    - CheckConstraint
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: void
    signature: "void MagicRvalTransformations(\n    const PromiseTypeSyntax *promise_type_syntax)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseAppendConstraint
      Src: /src/core/libpromises/cf3parse_logic.h:639,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/cf3parse_logic.h:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 637
    functionDepth: 9
    functionLinenumber: 637
    functionLinenumberEnd: 646
    functionName: ParserAppendCurrentConstraint
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - PromiseAppendConstraint
    - RvalCopy
    linkageType: ''
    returnType: void
    signature: void ParserAppendCurrentConstraint()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RvalDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:656,1
    - Dst: RvalNew
      Src: /src/core/libpromises/cf3parse_logic.h:657,1
    - Dst: PolicyHasCustomPromiseType
      Src: /src/core/libpromises/cf3parse_logic.h:661,1
    - Dst: MagicRvalTransformations
      Src: /src/core/libpromises/cf3parse_logic.h:664,1
    - Dst: ParserAppendCurrentConstraint
      Src: /src/core/libpromises/cf3parse_logic.h:665,1
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/libpromises/cf3parse_logic.h:670,1
    - Dst: PromiseTypeSyntaxGetConstraintSyntax
      Src: /src/core/libpromises/cf3parse_logic.h:672,1
    - Dst: MagicRvalTransformations
      Src: /src/core/libpromises/cf3parse_logic.h:678,1
    - Dst: ParserAppendCurrentConstraint
      Src: /src/core/libpromises/cf3parse_logic.h:679,1
    - Dst: ParseError
      Src: /src/core/libpromises/cf3parse_logic.h:684,1
    - Dst: ParseWarning
      Src: /src/core/libpromises/cf3parse_logic.h:694,1
    - Dst: MagicRvalTransformations
      Src: /src/core/libpromises/cf3parse_logic.h:704,1
    - Dst: ParserAppendCurrentConstraint
      Src: /src/core/libpromises/cf3parse_logic.h:705,1
    - Dst: ParseWarning
      Src: /src/core/libpromises/cf3parse_logic.h:709,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:720,1
    - Dst: RvalNew
      Src: /src/core/libpromises/cf3parse_logic.h:721,1
    - Dst: strcpy
      Src: /src/core/libpromises/cf3parse_logic.h:722,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:723,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 652
    functionDepth: 10
    functionLinenumber: 652
    functionLinenumberEnd: 725
    functionName: ParserHandleBundlePromiseRval
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - RvalDestroy
    - PromiseTypeSyntaxGetConstraintSyntax
    - PolicyHasCustomPromiseType
    - ParserAppendCurrentConstraint
    - ParseError
    - ParseWarning
    - MagicRvalTransformations
    - PromiseTypeSyntaxGet
    - RlistDestroy
    - strcpy
    - RvalNew
    linkageType: ''
    returnType: void
    signature: void ParserHandleBundlePromiseRval()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ParserDebug
      Src: /src/core/libpromises/cf3parse_logic.h:729,1
    - Dst: ParserBlockString
      Src: /src/core/libpromises/cf3parse_logic.h:729,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:734,1
    - Dst: RvalNew
      Src: /src/core/libpromises/cf3parse_logic.h:735,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:738,1
    - Dst: free
      Src: /src/core/libpromises/cf3parse_logic.h:743,1
    - Dst: strcpy
      Src: /src/core/libpromises/cf3parse_logic.h:747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - ParserBlock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 748
    functionName: ParserBeginBlock
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - RvalDestroy
    - ParserDebug
    - RlistDestroy
    - ParserBlockString
    - free
    - strcpy
    - RvalNew
    linkageType: ''
    returnType: void
    signature: void ParserBeginBlock(ParserBlock b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ParserDebug
      Src: /src/core/libpromises/cf3parse_logic.h:756,1
    - Dst: ParserBlockString
      Src: /src/core/libpromises/cf3parse_logic.h:758,1
    - Dst: PromiseTypeSyntaxGet
      Src: /src/core/libpromises/cf3parse_logic.h:764,1
    - Dst: ParseWarning
      Src: /src/core/libpromises/cf3parse_logic.h:771,1
    - Dst: BundleAppendSection
      Src: /src/core/libpromises/cf3parse_logic.h:785,1
    - Dst: ParseWarning
      Src: /src/core/libpromises/cf3parse_logic.h:797,1
    - Dst: BundleAppendSection
      Src: /src/core/libpromises/cf3parse_logic.h:813,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 754
    functionDepth: 6
    functionLinenumber: 754
    functionLinenumberEnd: 822
    functionName: ParserHandlePromiseGuard
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - BundleAppendSection
    - ParseWarning
    - ParserDebug
    - PromiseTypeSyntaxGet
    - ParserBlockString
    linkageType: ''
    returnType: void
    signature: void ParserHandlePromiseGuard()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BodySyntaxGet
      Src: /src/core/libpromises/cf3parse_logic.h:827,1
    - Dst: PolicyAppendPromiseBlock
      Src: /src/core/libpromises/cf3parse_logic.h:831,1
    - Dst: ParseWarning
      Src: /src/core/libpromises/cf3parse_logic.h:848,1
    - Dst: PolicyAppendBody
      Src: /src/core/libpromises/cf3parse_logic.h:857,1
    - Dst: ParseWarning
      Src: /src/core/libpromises/cf3parse_logic.h:870,1
    - Dst: ParseError
      Src: /src/core/libpromises/cf3parse_logic.h:881,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:885,1
    - Dst: strcpy
      Src: /src/core/libpromises/cf3parse_logic.h:888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 825
    functionDepth: 5
    functionLinenumber: 825
    functionLinenumberEnd: 889
    functionName: ParserBeginBlockBody
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - ParseError
    - ParseWarning
    - BodySyntaxGet
    - PolicyAppendBody
    - RlistDestroy
    - PolicyAppendPromiseBlock
    - strcpy
    linkageType: ''
    returnType: void
    signature: void ParserBeginBlockBody()
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cf3parse_logic.h:895,1
    - Dst: BodySyntaxGet
      Src: /src/core/libpromises/cf3parse_logic.h:899,1
    - Dst: assert
      Src: /src/core/libpromises/cf3parse_logic.h:900,1
    - Dst: xmalloc
      Src: /src/core/libpromises/cf3parse_logic.h:905,1
    - Dst: BodySyntaxGetConstraintSyntax
      Src: /src/core/libpromises/cf3parse_logic.h:911,1
    - Dst: ParseWarning
      Src: /src/core/libpromises/cf3parse_logic.h:920,1
    - Dst: CheckSelection
      Src: /src/core/libpromises/cf3parse_logic.h:928,1
    - Dst: yyerror
      Src: /src/core/libpromises/cf3parse_logic.h:933,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/cf3parse_logic.h:933,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:937,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:938,1
    - Dst: ValidateClassLiteral
      Src: /src/core/libpromises/cf3parse_logic.h:940,1
    - Dst: BodyAppendConstraint
      Src: /src/core/libpromises/cf3parse_logic.h:949,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/cf3parse_logic.h:952,1
    - Dst: BodyAppendConstraint
      Src: /src/core/libpromises/cf3parse_logic.h:958,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/cf3parse_logic.h:961,1
    - Dst: ParseError
      Src: /src/core/libpromises/cf3parse_logic.h:968,1
    - Dst: ParseWarning
      Src: /src/core/libpromises/cf3parse_logic.h:980,1
    - Dst: free
      Src: /src/core/libpromises/cf3parse_logic.h:991,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:996,1
    - Dst: RvalNew
      Src: /src/core/libpromises/cf3parse_logic.h:997,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:1000,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:1000,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:1002,1
    - Dst: yyerror
      Src: /src/core/libpromises/cf3parse_logic.h:1006,1
    - Dst: free
      Src: /src/core/libpromises/cf3parse_logic.h:1010,1
    - Dst: xstrdup
      Src: /src/core/libpromises/cf3parse_logic.h:1011,1
    - Dst: StringEqual
      Src: /src/core/libpromises/cf3parse_logic.h:1014,1
    - Dst: yyerror
      Src: /src/core/libpromises/cf3parse_logic.h:1018,1
    - Dst: StringEqual
      Src: /src/core/libpromises/cf3parse_logic.h:1022,1
    - Dst: StringEqual
      Src: /src/core/libpromises/cf3parse_logic.h:1026,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:1034,1
    - Dst: RvalNew
      Src: /src/core/libpromises/cf3parse_logic.h:1035,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (P.block == PARSER_BLOCK_BODY || P.block == PARSER_BLOCK_PROMISE)
      pos:
        line_end: 894
        line_start: 894
        source_file: /src/core/libpromises/cf3parse_logic.h
    - condition: (body_syntax != NULL)
      pos:
        line_end: 899
        line_start: 899
        source_file: /src/core/libpromises/cf3parse_logic.h
    constantsTouched: []
    func_position:
      end: 1036
      start: 893
    functionDepth: 6
    functionLinenumber: 893
    functionLinenumberEnd: 1036
    functionName: ParserHandleBlockAttributeRval
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - RvalDestroy
    - ParseError
    - yyerror
    - ParseWarning
    - assert
    - BodySyntaxGet
    - RvalNew
    - xmalloc
    - RvalCopy
    - CheckSelection
    - strcmp
    - ValidateClassLiteral
    - BodyAppendConstraint
    - free
    - BodySyntaxGetConstraintSyntax
    - xstrdup
    - StringEqual
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: void
    signature: void ParserHandleBlockAttributeRval()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/cf3parse_logic.h:1040,1
    - Dst: RelevantBundle
      Src: /src/core/libpromises/cf3parse_logic.h:1042,1
    - Dst: strcmp
      Src: /src/core/libpromises/cf3parse_logic.h:1046,1
    - Dst: PolicyAppendBundle
      Src: /src/core/libpromises/cf3parse_logic.h:1053,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/cf3parse_logic.h:1069,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (P.block == PARSER_BLOCK_BUNDLE)
      pos:
        line_end: 1039
        line_start: 1039
        source_file: /src/core/libpromises/cf3parse_logic.h
    constantsTouched: []
    func_position:
      end: 1071
      start: 1038
    functionDepth: 4
    functionLinenumber: 1038
    functionLinenumberEnd: 1071
    functionName: ParserBeginBundleBody
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - assert
    - RlistDestroy
    - strcmp
    - RelevantBundle
    - PolicyAppendBundle
    linkageType: ''
    returnType: void
    signature: void ParserBeginBundleBody()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/cf3parse_logic.h:1075,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libpromises/cf3parse_logic.h:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1078
    functionName: ParserHandleQuotedListItem
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - FREE_AND_NULL
    - RlistAppendScalar
    linkageType: ''
    returnType: void
    signature: void ParserHandleQuotedListItem()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IsBuiltInPromiseType
      Src: /src/core/libpromises/cf3parse_logic.h:1097,1
    - Dst: IsStringInArray
      Src: /src/core/libpromises/cf3parse_logic.h:1110,1
    - Dst: SeqLength
      Src: /src/core/libpromises/cf3parse_logic.h:1122,1
    - Dst: SeqAt
      Src: /src/core/libpromises/cf3parse_logic.h:1125,1
    - Dst: IsStringInArray
      Src: /src/core/libpromises/cf3parse_logic.h:1126,1
    - Dst: ParseWarning
      Src: /src/core/libpromises/cf3parse_logic.h:1138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1089
    functionDepth: 5
    functionLinenumber: 1089
    functionLinenumberEnd: 1141
    functionName: ParserCheckPromiseLine
    functionSourceFile: /src/core/libpromises/cf3parse_logic.h
    functionUses: 0
    functionsReached:
    - ParseWarning
    - IsStringInArray
    - IsBuiltInPromiseType
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void ParserCheckPromiseLine()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: BeginAudit
    functionSourceFile: /src/core/libpromises/audit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BeginAudit()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/audit.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - status
    argTypes:
    - PromiseResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: UpdatePromiseCounters
    functionSourceFile: /src/core/libpromises/audit.c
    functionUses: 1
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void UpdatePromiseCounters(PromiseResult status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/libpromises/audit.c:77,1
    - Dst: Log
      Src: /src/core/libpromises/audit.c:85,1
    - Dst: LogTotalCompliance
      Src: /src/core/libpromises/audit.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - background_tasks
    argTypes:
    - EvalContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 68
    functionDepth: 8
    functionLinenumber: 68
    functionLinenumberEnd: 92
    functionName: EndAudit
    functionSourceFile: /src/core/libpromises/audit.c
    functionUses: 0
    functionsReached:
    - LogTotalCompliance
    - Log
    - EvalContextVariableControlCommonGet
    linkageType: ''
    returnType: void
    signature: void EndAudit(const EvalContext *ctx, int background_tasks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/libpromises/audit.c:101,1
    - Dst: vsnprintf
      Src: /src/core/libpromises/audit.c:102,1
    - Dst: va_end
      Src: /src/core/libpromises/audit.c:103,1
    - Dst: Log
      Src: /src/core/libpromises/audit.c:104,1
    - Dst: EndAudit
      Src: /src/core/libpromises/audit.c:107,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/audit.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 9
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: FatalError
    functionSourceFile: /src/core/libpromises/audit.c
    functionUses: 37
    functionsReached:
    - DoCleanupAndExit
    - va_start
    - va_end
    - EndAudit
    - Log
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void FatalError(const EvalContext *ctx, char *s, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/libpromises/shared_lib.c:39,1
    - Dst: Log
      Src: /src/core/libpromises/shared_lib.c:41,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/shared_lib.c:41,1
    - Dst: dlopen
      Src: /src/core/libpromises/shared_lib.c:45,1
    - Dst: Log
      Src: /src/core/libpromises/shared_lib.c:48,1
    - Dst: dlerror
      Src: /src/core/libpromises/shared_lib.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - lib_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 8
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: shlib_open
    functionSourceFile: /src/core/libpromises/shared_lib.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - stat
    - Log
    - dlerror
    - dlopen
    linkageType: ''
    returnType: void
    signature: void *shlib_open(const char *lib_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/shared_lib.c:56,1
    - Dst: dlsym
      Src: /src/core/libpromises/shared_lib.c:57,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/shared_lib.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - handle
    - symbol_name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: shlib_load
    functionSourceFile: /src/core/libpromises/shared_lib.c
    functionUses: 0
    functionsReached:
    - ThreadUnlock
    - dlsym
    - ThreadLock
    linkageType: ''
    returnType: void
    signature: void *shlib_load(void *handle, const char *symbol_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/core/libpromises/shared_lib.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: shlib_close
    functionSourceFile: /src/core/libpromises/shared_lib.c
    functionUses: 0
    functionsReached:
    - dlclose
    linkageType: ''
    returnType: void
    signature: void shlib_close(void *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - dbid
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: DBMigrate
    functionSourceFile: /src/core/libpromises/dbm_migration.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DBMigrate(ARG_UNUSED DBHandle *db, ARG_UNUSED  dbid id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadDB
      Src: /src/core/libpromises/dbm_migration.c:43,1
    - Dst: StringToLongDefaultOnError
      Src: /src/core/libpromises/dbm_migration.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: DBVersion
    functionSourceFile: /src/core/libpromises/dbm_migration.c
    functionUses: 0
    functionsReached:
    - StringToLongDefaultOnError
    - ReadDB
    linkageType: ''
    returnType: size_t
    signature: size_t DBVersion(DBHandle *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DBVersion
      Src: /src/core/libpromises/dbm_migration.c:66,1
    - Dst: SeqNew
      Src: /src/core/libpromises/dbm_migration.c:68,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/dbm_migration.c:69,1
    - Dst: DBIdToPath
      Src: /src/core/libpromises/dbm_migration.c:69,1
    - Dst: backup_files_copy
      Src: /src/core/libpromises/dbm_migration.c:70,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/dbm_migration.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - db
    - id
    argTypes:
    - DBHandle*
    - dbid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 57
    functionDepth: 9
    functionLinenumber: 57
    functionLinenumberEnd: 81
    functionName: DBMigrate
    functionSourceFile: /src/core/libpromises/dbm_migration.c
    functionUses: 0
    functionsReached:
    - DBVersion
    - SeqDestroy
    - SeqAppend
    - SeqNew
    - backup_files_copy
    - DBIdToPath
    linkageType: ''
    returnType: bool
    signature: bool DBMigrate(DBHandle *db, dbid id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/process_solaris.c:42,1
    - Dst: open
      Src: /src/core/libpromises/process_solaris.c:44,1
    - Dst: FullRead
      Src: /src/core/libpromises/process_solaris.c:50,1
    - Dst: close
      Src: /src/core/libpromises/process_solaris.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pid
    - psinfo
    argTypes:
    - pid_t
    - psinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: GetProcessPsinfo
    functionSourceFile: /src/core/libpromises/process_solaris.c
    functionUses: 0
    functionsReached:
    - open
    - FullRead
    - snprintf
    - close
    linkageType: ''
    returnType: bool
    signature: bool GetProcessPsinfo(pid_t pid, psinfo_t *psinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessPsinfo
      Src: /src/core/libpromises/process_solaris.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: GetProcessStartTime
    functionSourceFile: /src/core/libpromises/process_solaris.c
    functionUses: 17
    functionsReached:
    - GetProcessPsinfo
    linkageType: ''
    returnType: time_t
    signature: time_t GetProcessStartTime(pid_t pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/process_solaris.c:71,1
    - Dst: open
      Src: /src/core/libpromises/process_solaris.c:73,1
    - Dst: FullRead
      Src: /src/core/libpromises/process_solaris.c:79,1
    - Dst: close
      Src: /src/core/libpromises/process_solaris.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pid
    - pstatus
    argTypes:
    - pid_t
    - pstatus_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: GetProcessPstatus
    functionSourceFile: /src/core/libpromises/process_solaris.c
    functionUses: 0
    functionsReached:
    - open
    - FullRead
    - snprintf
    - close
    linkageType: ''
    returnType: bool
    signature: bool GetProcessPstatus(pid_t pid, pstatus_t *pstatus)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessPsinfo
      Src: /src/core/libpromises/process_solaris.c:94,1
    - Dst: GetProcessPstatus
      Src: /src/core/libpromises/process_solaris.c:107,1
    - Dst: GetProcessPstatus
      Src: /src/core/libpromises/process_solaris.c:132,1
    - Dst: GetProcessPsinfo
      Src: /src/core/libpromises/process_solaris.c:137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 167
    functionName: GetProcessState
    functionSourceFile: /src/core/libpromises/process_solaris.c
    functionUses: 17
    functionsReached:
    - GetProcessPstatus
    - GetProcessPsinfo
    linkageType: ''
    returnType: ProcessState
    signature: ProcessState GetProcessState(pid_t pid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/mod_access.c:118,1
    - Dst: SeqAt
      Src: /src/core/libpromises/mod_access.c:120,1
    - Dst: StringSafeCompare
      Src: /src/core/libpromises/mod_access.c:122,1
    - Dst: StringSafeCompare
      Src: /src/core/libpromises/mod_access.c:126,1
    - Dst: StringSafeCompare
      Src: /src/core/libpromises/mod_access.c:132,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/mod_access.c:142,1
    - Dst: PolicyErrorNew
      Src: /src/core/libpromises/mod_access.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - pp
    - errors
    argTypes:
    - Promise*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 148
    functionName: AccessParseTreeCheck
    functionSourceFile: /src/core/libpromises/mod_access.c
    functionUses: 0
    functionsReached:
    - StringSafeCompare
    - SeqLength
    - SeqAt
    - PolicyErrorNew
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool AccessParseTreeCheck(const Promise *pp, Seq *errors)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/chflags.c:77,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/chflags.c:78,1
    - Dst: ConvertBSDBits
      Src: /src/core/libpromises/chflags.c:83,1
    - Dst: ConvertBSDBits
      Src: /src/core/libpromises/chflags.c:87,1
    - Dst: ConvertBSDBits
      Src: /src/core/libpromises/chflags.c:91,1
    - Dst: Log
      Src: /src/core/libpromises/chflags.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - bitlist
    - plusmask
    - minusmask
    argTypes:
    - Rlist*
    - u_long*
    - u_long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 99
    functionName: ParseFlagString
    functionSourceFile: /src/core/libpromises/chflags.c
    functionUses: 2
    functionsReached:
    - ConvertBSDBits
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool ParseFlagString(Rlist *bitlist, u_long *plusmask, u_long *minusmask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/chflags.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 116
    functionName: ConvertBSDBits
    functionSourceFile: /src/core/libpromises/chflags.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: u_long
    signature: u_long ConvertBSDBits(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/matching.c:43,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/core/libpromises/matching.c:45,1
    - Dst: pcre2_match
      Src: /src/core/libpromises/matching.c:46,1
    - Dst: pcre2_get_ovector_count
      Src: /src/core/libpromises/matching.c:53,1
    - Dst: strlcpy
      Src: /src/core/libpromises/matching.c:57,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libpromises/matching.c:58,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/matching.c:59,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/core/libpromises/matching.c:63,1
    - Dst: strncpy
      Src: /src/core/libpromises/matching.c:70,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libpromises/matching.c:74,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/matching.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - regex
    - teststring
    argTypes:
    - Regex*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 77
    functionName: FirstBackReference
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_free
    - strncpy
    - pcre2_get_ovector_count
    - pcre2_match_data_create_from_pattern
    - pcre2_get_ovector_pointer
    - pcre2_match
    - RegexDestroy
    - strlcpy
    - memset
    linkageType: ''
    returnType: char
    signature: char *FirstBackReference(Regex *regex, const char *teststring)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/matching.c:88,1
    - Dst: FirstBackReference
      Src: /src/core/libpromises/matching.c:94,1
    - Dst: strlen
      Src: /src/core/libpromises/matching.c:96,1
    - Dst: strlcpy
      Src: /src/core/libpromises/matching.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - regexp
    - teststring
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: ExtractFirstReference
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 0
    functionsReached:
    - strlen
    - strlcpy
    - FirstBackReference
    - CompileRegex
    linkageType: ''
    returnType: char
    signature: char *ExtractFirstReference(const char *regexp, const char *teststring)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 198
    functionName: IsRegex
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsRegex(const char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IsRegex
      Src: /src/core/libpromises/matching.c:202,1
    - Dst: Log
      Src: /src/core/libpromises/matching.c:227,1
    - Dst: Log
      Src: /src/core/libpromises/matching.c:230,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 200
    functionDepth: 8
    functionLinenumber: 200
    functionLinenumberEnd: 239
    functionName: IsPathRegex
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 0
    functionsReached:
    - Log
    - IsRegex
    linkageType: ''
    returnType: bool
    signature: bool IsPathRegex(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/matching.c:248,1
    - Dst: strcmp
      Src: /src/core/libpromises/matching.c:254,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/matching.c:261,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/matching.c:261,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - list
    - regex
    argTypes:
    - EvalContext*
    - Item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 243
    functionDepth: 10
    functionLinenumber: 243
    functionLinenumberEnd: 268
    functionName: IsRegexItemIn
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 2
    functionsReached:
    - StringMatchFull
    - IsDefinedClass
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool IsRegexItemIn(const EvalContext *ctx, const Item *list, const
      char *regex)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/matching.c:286,1
    - Dst: strncmp
      Src: /src/core/libpromises/matching.c:290,1
    - Dst: strlen
      Src: /src/core/libpromises/matching.c:290,1
    - Dst: strlen
      Src: /src/core/libpromises/matching.c:292,1
    - Dst: Log
      Src: /src/core/libpromises/matching.c:294,1
    - Dst: strlcat
      Src: /src/core/libpromises/matching.c:300,1
    - Dst: strlen
      Src: /src/core/libpromises/matching.c:301,1
    - Dst: strlen
      Src: /src/core/libpromises/matching.c:302,1
    - Dst: strchr
      Src: /src/core/libpromises/matching.c:305,1
    - Dst: isalnum
      Src: /src/core/libpromises/matching.c:309,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - str
    - strEsc
    - strEscSz
    - noEscSeq
    - noEscList
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 272
    functionDepth: 8
    functionLinenumber: 272
    functionLinenumberEnd: 316
    functionName: EscapeSpecialChars
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlcat
    - strlen
    - isalnum
    - strchr
    - Log
    - memset
    linkageType: ''
    returnType: void
    signature: void EscapeSpecialChars(const char *str, char *strEsc, size_t strEscSz,
      char *noEscSeq, char *noEscList)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 337
    functionName: EscapeRegexCharsLen
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EscapeRegexCharsLen(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/matching.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - str
    - strEsc
    - strEscSz
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 360
    functionName: EscapeRegexChars
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void EscapeRegexChars(char *str, char *strEsc, int strEscSz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/matching.c:371,1
    - Dst: snprintf
      Src: /src/core/libpromises/matching.c:374,1
    - Dst: memset
      Src: /src/core/libpromises/matching.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - str
    - strSz
    - esc
    argTypes:
    - char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 389
    functionName: EscapeChar
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 0
    functionsReached:
    - memset
    - snprintf
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *EscapeChar(char *str, size_t strSz, char esc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/matching.c:393,1
    - Dst: memset
      Src: /src/core/libpromises/matching.c:395,1
    - Dst: snprintf
      Src: /src/core/libpromises/matching.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - regex
    - out
    - outSz
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 401
    functionName: AnchorRegex
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 0
    functionsReached:
    - NULL_OR_EMPTY
    - snprintf
    - memset
    linkageType: ''
    returnType: void
    signature: void AnchorRegex(const char *regex, char *out, int outSz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/matching.c:405,1
    - Dst: xstrdup
      Src: /src/core/libpromises/matching.c:407,1
    - Dst: xasprintf
      Src: /src/core/libpromises/matching.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - regex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 414
    functionName: AnchorRegexNew
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 0
    functionsReached:
    - NULL_OR_EMPTY
    - xasprintf
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *AnchorRegexNew(const char *regex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/core/libpromises/matching.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 429
    functionName: HasRegexMetaChars
    functionSourceFile: /src/core/libpromises/matching.c
    functionUses: 1
    functionsReached:
    - strcspn
    linkageType: ''
    returnType: bool
    signature: bool HasRegexMetaChars(const char *string)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/exec_tools.c:40,1
    - Dst: assert
      Src: /src/core/libpromises/exec_tools.c:41,1
    - Dst: cf_popen_sh_select
      Src: /src/core/libpromises/exec_tools.c:52,1
    - Dst: cf_popen_powershell_select
      Src: /src/core/libpromises/exec_tools.c:57,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:59,1
    - Dst: cf_popen_select
      Src: /src/core/libpromises/exec_tools.c:65,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:70,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/exec_tools.c:70,1
    - Dst: xcalloc
      Src: /src/core/libpromises/exec_tools.c:77,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/exec_tools.c:81,1
    - Dst: feof
      Src: /src/core/libpromises/exec_tools.c:84,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:86,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/exec_tools.c:86,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/exec_tools.c:87,1
    - Dst: free
      Src: /src/core/libpromises/exec_tools.c:88,1
    - Dst: snprintf
      Src: /src/core/libpromises/exec_tools.c:97,1
    - Dst: xrealloc
      Src: /src/core/libpromises/exec_tools.c:100,1
    - Dst: snprintf
      Src: /src/core/libpromises/exec_tools.c:101,1
    - Dst: strlen
      Src: /src/core/libpromises/exec_tools.c:104,1
    - Dst: Chop
      Src: /src/core/libpromises/exec_tools.c:109,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:111,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:115,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/exec_tools.c:119,1
    - Dst: cf_pclose
      Src: /src/core/libpromises/exec_tools.c:123,1
    - Dst: free
      Src: /src/core/libpromises/exec_tools.c:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 6
    argNames:
    - command
    - buffer
    - buffer_size
    - shell
    - output_select
    - ret_out
    argTypes:
    - char*
    - char**
    - size_t*
    - ShellType
    - OutputSelect
    - int*
    assertStmts:
    - condition: (buffer_size != NULL && *buffer_size > 0)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/core/libpromises/exec_tools.c
    - condition: (buffer != NULL && *buffer != NULL)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/core/libpromises/exec_tools.c
    constantsTouched: []
    func_position:
      end: 128
      start: 37
    functionDepth: 10
    functionLinenumber: 37
    functionLinenumberEnd: 128
    functionName: GetExecOutput
    functionSourceFile: /src/core/libpromises/exec_tools.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - cf_popen_powershell_select
    - xcalloc
    - snprintf
    - strlen
    - assert
    - cf_popen_select
    - xrealloc
    - feof
    - cf_pclose
    - Log
    - Chop
    - free
    - cf_popen_sh_select
    - CfReadLine
    linkageType: ''
    returnType: bool
    signature: bool GetExecOutput(const char *command, char **buffer, size_t *buffer_size,
      ShellType shell, OutputSelect output_select, int *ret_out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setsid
      Src: /src/core/libpromises/exec_tools.c:137,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:139,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/exec_tools.c:141,1
    - Dst: CloseNetwork
      Src: /src/core/libpromises/exec_tools.c:145,1
    - Dst: CloseLog
      Src: /src/core/libpromises/exec_tools.c:146,1
    - Dst: fflush
      Src: /src/core/libpromises/exec_tools.c:148,1
    - Dst: open
      Src: /src/core/libpromises/exec_tools.c:152,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:155,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/exec_tools.c:157,1
    - Dst: dup2
      Src: /src/core/libpromises/exec_tools.c:161,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:163,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/exec_tools.c:165,1
    - Dst: dup2
      Src: /src/core/libpromises/exec_tools.c:168,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:170,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/exec_tools.c:172,1
    - Dst: dup2
      Src: /src/core/libpromises/exec_tools.c:175,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:177,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/exec_tools.c:179,1
    - Dst: close
      Src: /src/core/libpromises/exec_tools.c:184,1
    - Dst: chdir
      Src: /src/core/libpromises/exec_tools.c:188,1
    - Dst: Log
      Src: /src/core/libpromises/exec_tools.c:190,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/exec_tools.c:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 194
    functionName: ActAsDaemon
    functionSourceFile: /src/core/libpromises/exec_tools.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - fflush
    - chdir
    - setsid
    - CloseNetwork
    - Log
    - open
    - CloseLog
    - dup2
    - close
    linkageType: ''
    returnType: void
    signature: void ActAsDaemon()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/core/libpromises/exec_tools.c:215,1
    - Dst: strchr
      Src: /src/core/libpromises/exec_tools.c:229,1
    - Dst: strpbrk
      Src: /src/core/libpromises/exec_tools.c:233,1
    - Dst: xstrdup
      Src: /src/core/libpromises/exec_tools.c:239,1
    - Dst: assert
      Src: /src/core/libpromises/exec_tools.c:245,1
    - Dst: xstrndup
      Src: /src/core/libpromises/exec_tools.c:247,1
    - Dst: strspn
      Src: /src/core/libpromises/exec_tools.c:253,1
    - Dst: xstrdup
      Src: /src/core/libpromises/exec_tools.c:254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - comm
    - exec
    - args
    argTypes:
    - char*
    - char**
    - char**
    assertStmts:
    - condition: (end > s)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/core/libpromises/exec_tools.c
    constantsTouched: []
    func_position:
      end: 268
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 268
    functionName: ArgGetExecutableAndArgs
    functionSourceFile: /src/core/libpromises/exec_tools.c
    functionUses: 7
    functionsReached:
    - strpbrk
    - assert
    - isspace
    - strspn
    - strchr
    - xstrdup
    - xstrndup
    linkageType: ''
    returnType: void
    signature: void ArgGetExecutableAndArgs(const char *comm, char **exec, char **args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/exec_tools.c:278,1
    - Dst: isspace
      Src: /src/core/libpromises/exec_tools.c:285,1
    - Dst: strchr
      Src: /src/core/libpromises/exec_tools.c:299,1
    - Dst: strpbrk
      Src: /src/core/libpromises/exec_tools.c:303,1
    - Dst: xstrdup
      Src: /src/core/libpromises/exec_tools.c:309,1
    - Dst: strlen
      Src: /src/core/libpromises/exec_tools.c:310,1
    - Dst: xstrndup
      Src: /src/core/libpromises/exec_tools.c:314,1
    - Dst: xrealloc
      Src: /src/core/libpromises/exec_tools.c:325,1
    - Dst: SeqLength
      Src: /src/core/libpromises/exec_tools.c:331,1
    - Dst: xrealloc
      Src: /src/core/libpromises/exec_tools.c:334,1
    - Dst: xstrdup
      Src: /src/core/libpromises/exec_tools.c:338,1
    - Dst: SeqAt
      Src: /src/core/libpromises/exec_tools.c:338,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 343
    functionName: ArgSplitCommand
    functionSourceFile: /src/core/libpromises/exec_tools.c
    functionUses: 14
    functionsReached:
    - strpbrk
    - strlen
    - isspace
    - xrealloc
    - strchr
    - xmalloc
    - xstrdup
    - SeqLength
    - xstrndup
    - SeqAt
    linkageType: ''
    returnType: char
    signature: char **ArgSplitCommand(const char *comm, const Seq *arglist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/exec_tools.c:353,1
    - Dst: free
      Src: /src/core/libpromises/exec_tools.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 357
    functionName: ArgFree
    functionSourceFile: /src/core/libpromises/exec_tools.c
    functionUses: 13
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ArgFree(char **args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapAddress
      Src: /src/core/libpromises/lastseen.c:86,1
    - Dst: UpdateLastSawHost
      Src: /src/core/libpromises/lastseen.c:87,1
    - Dst: time
      Src: /src/core/libpromises/lastseen.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ipaddress
    - hashstr
    - role
    argTypes:
    - char*
    - char*
    - LastSeenRole
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: LastSaw1
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 6
    functionsReached:
    - MapAddress
    - UpdateLastSawHost
    - time
    linkageType: ''
    returnType: void
    signature: "void LastSaw1(const char *ipaddress, const char *hashstr,\n              LastSeenRole
      role)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/lastseen.c:94,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:96,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/lastseen.c:100,1
    - Dst: MapAddress
      Src: /src/core/libpromises/lastseen.c:102,1
    - Dst: UpdateLastSawHost
      Src: /src/core/libpromises/lastseen.c:104,1
    - Dst: time
      Src: /src/core/libpromises/lastseen.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ipaddress
    - digest
    - role
    argTypes:
    - char*
    - unsigned char*
    - LastSeenRole
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 8
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: LastSaw
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 0
    functionsReached:
    - strlen
    - HashPrintSafe
    - UpdateLastSawHost
    - Log
    - MapAddress
    - time
    linkageType: ''
    returnType: void
    signature: void LastSaw(const char *ipaddress, const unsigned char *digest, LastSeenRole
      role)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/lastseen.c:113,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:115,1
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:122,1
    - Dst: ReadDB
      Src: /src/core/libpromises/lastseen.c:130,1
    - Dst: QAverage
      Src: /src/core/libpromises/lastseen.c:132,1
    - Dst: QDefinite
      Src: /src/core/libpromises/lastseen.c:137,1
    - Dst: WriteDB
      Src: /src/core/libpromises/lastseen.c:139,1
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:144,1
    - Dst: WriteDB
      Src: /src/core/libpromises/lastseen.c:146,1
    - Dst: strlen
      Src: /src/core/libpromises/lastseen.c:146,1
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:151,1
    - Dst: WriteDB
      Src: /src/core/libpromises/lastseen.c:153,1
    - Dst: strlen
      Src: /src/core/libpromises/lastseen.c:153,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - hostkey
    - address
    - incoming
    - timestamp
    argTypes:
    - char*
    - char*
    - bool
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 109
    functionDepth: 8
    functionLinenumber: 109
    functionLinenumberEnd: 156
    functionName: UpdateLastSawHost
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 13
    functionsReached:
    - snprintf
    - strlen
    - QAverage
    - OpenDB
    - ReadDB
    - Log
    - CloseDB
    - WriteDB
    - QDefinite
    linkageType: ''
    returnType: void
    signature: "void UpdateLastSawHost(const char *hostkey, const char *address,\n
      \                      bool incoming, time_t timestamp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:166,1
    - Dst: ReadDB
      Src: /src/core/libpromises/lastseen.c:168,1
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:181,1
    - Dst: ReadDB
      Src: /src/core/libpromises/lastseen.c:183,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:185,1
    - Dst: strlcpy
      Src: /src/core/libpromises/lastseen.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - db
    - address
    - result
    - result_size
    argTypes:
    - DBHandle*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 160
    functionDepth: 8
    functionLinenumber: 160
    functionLinenumberEnd: 193
    functionName: Address2HostkeyInDB
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 0
    functionsReached:
    - Log
    - ReadDB
    - snprintf
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool Address2HostkeyInDB(DBHandle *db, const char *address, char *result,
      size_t result_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/lastseen.c:204,1
    - Dst: strcmp
      Src: /src/core/libpromises/lastseen.c:205,1
    - Dst: strcmp
      Src: /src/core/libpromises/lastseen.c:206,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:208,1
    - Dst: HashPubKey
      Src: /src/core/libpromises/lastseen.c:215,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/lastseen.c:216,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:222,1
    - Dst: OpenDB
      Src: /src/core/libpromises/lastseen.c:230,1
    - Dst: Address2HostkeyInDB
      Src: /src/core/libpromises/lastseen.c:232,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:233,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - dst
    - dst_size
    - address
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 245
    functionName: Address2Hostkey
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 4
    functionsReached:
    - Address2HostkeyInDB
    - OpenDB
    - HashPrintSafe
    - HashPubKey
    - Log
    - strcmp
    - CloseDB
    linkageType: ''
    returnType: bool
    signature: bool Address2Hostkey(char *dst, size_t dst_size, const char *address)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/lastseen.c:250,1
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:256,1
    - Dst: ReadDB
      Src: /src/core/libpromises/lastseen.c:258,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:260,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:261,1
    - Dst: xstrdup
      Src: /src/core/libpromises/lastseen.c:262,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:266,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:267,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hostkey
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 247
    functionDepth: 8
    functionLinenumber: 247
    functionLinenumberEnd: 276
    functionName: HostkeyToAddress
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 1
    functionsReached:
    - snprintf
    - OpenDB
    - Log
    - ReadDB
    - CloseDB
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *HostkeyToAddress(const char *hostkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:287,1
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 299
    functionName: IsDigestOrHost
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool IsDigestOrHost(const char *input)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/lastseen.c:343,1
    - Dst: DBIdToPath
      Src: /src/core/libpromises/lastseen.c:345,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:346,1
    - Dst: free
      Src: /src/core/libpromises/lastseen.c:347,1
    - Dst: NewDBCursor
      Src: /src/core/libpromises/lastseen.c:351,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:353,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:354,1
    - Dst: NextDB
      Src: /src/core/libpromises/lastseen.c:369,1
    - Dst: strcmp
      Src: /src/core/libpromises/lastseen.c:371,1
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:372,1
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:373,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:377,1
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:385,1
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:385,1
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:386,1
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:386,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/lastseen.c:388,1
    - Dst: PrependItem
      Src: /src/core/libpromises/lastseen.c:390,1
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:397,1
    - Dst: strncmp
      Src: /src/core/libpromises/lastseen.c:397,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/lastseen.c:399,1
    - Dst: PrependItem
      Src: /src/core/libpromises/lastseen.c:401,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/lastseen.c:403,1
    - Dst: PrependItem
      Src: /src/core/libpromises/lastseen.c:405,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/lastseen.c:412,1
    - Dst: PrependItem
      Src: /src/core/libpromises/lastseen.c:414,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/lastseen.c:416,1
    - Dst: PrependItem
      Src: /src/core/libpromises/lastseen.c:418,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/lastseen.c:423,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:424,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/lastseen.c:432,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:434,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/lastseen.c:450,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:452,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/lastseen.c:463,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/lastseen.c:464,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/lastseen.c:465,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/lastseen.c:466,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/lastseen.c:467,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 338
    functionDepth: 8
    functionLinenumber: 338
    functionLinenumberEnd: 470
    functionName: IsLastSeenCoherent
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 19
    functionsReached:
    - strncmp
    - IsItemIn
    - NewDBCursor
    - OpenDB
    - DeleteDBCursor
    - DeleteItemList
    - Log
    - strcmp
    - CloseDB
    - PrependItem
    - NextDB
    - free
    - DBIdToPath
    linkageType: ''
    returnType: bool
    signature: bool IsLastSeenCoherent(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/lastseen.c:486,1
    - Dst: DBIdToPath
      Src: /src/core/libpromises/lastseen.c:488,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:489,1
    - Dst: free
      Src: /src/core/libpromises/lastseen.c:490,1
    - Dst: strcpy
      Src: /src/core/libpromises/lastseen.c:497,1
    - Dst: strlcat
      Src: /src/core/libpromises/lastseen.c:498,1
    - Dst: ReadDB
      Src: /src/core/libpromises/lastseen.c:501,1
    - Dst: strcpy
      Src: /src/core/libpromises/lastseen.c:503,1
    - Dst: strlcat
      Src: /src/core/libpromises/lastseen.c:504,1
    - Dst: HasKeyDB
      Src: /src/core/libpromises/lastseen.c:505,1
    - Dst: strlen
      Src: /src/core/libpromises/lastseen.c:505,1
    - Dst: strlcpy
      Src: /src/core/libpromises/lastseen.c:514,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/lastseen.c:516,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/lastseen.c:517,1
    - Dst: strcpy
      Src: /src/core/libpromises/lastseen.c:527,1
    - Dst: strlcat
      Src: /src/core/libpromises/lastseen.c:528,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/lastseen.c:529,1
    - Dst: strcpy
      Src: /src/core/libpromises/lastseen.c:531,1
    - Dst: strlcat
      Src: /src/core/libpromises/lastseen.c:532,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/lastseen.c:533,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 3
    argNames:
    - ip
    - digest
    - digest_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 481
    functionDepth: 8
    functionLinenumber: 481
    functionLinenumberEnd: 538
    functionName: DeleteIpFromLastSeen
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 1
    functionsReached:
    - strlcat
    - DeleteDB
    - strlen
    - OpenDB
    - Log
    - ReadDB
    - CloseDB
    - HasKeyDB
    - free
    - strcpy
    - strlcpy
    - DBIdToPath
    linkageType: ''
    returnType: bool
    signature: bool DeleteIpFromLastSeen(const char *ip, char *digest, size_t digest_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/lastseen.c:556,1
    - Dst: DBIdToPath
      Src: /src/core/libpromises/lastseen.c:558,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:559,1
    - Dst: free
      Src: /src/core/libpromises/lastseen.c:560,1
    - Dst: strcpy
      Src: /src/core/libpromises/lastseen.c:566,1
    - Dst: strlcat
      Src: /src/core/libpromises/lastseen.c:567,1
    - Dst: ReadDB
      Src: /src/core/libpromises/lastseen.c:570,1
    - Dst: strcpy
      Src: /src/core/libpromises/lastseen.c:572,1
    - Dst: strlcat
      Src: /src/core/libpromises/lastseen.c:573,1
    - Dst: HasKeyDB
      Src: /src/core/libpromises/lastseen.c:574,1
    - Dst: strlen
      Src: /src/core/libpromises/lastseen.c:574,1
    - Dst: strlcpy
      Src: /src/core/libpromises/lastseen.c:583,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/lastseen.c:585,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/lastseen.c:586,1
    - Dst: strcpy
      Src: /src/core/libpromises/lastseen.c:596,1
    - Dst: strlcat
      Src: /src/core/libpromises/lastseen.c:597,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/lastseen.c:598,1
    - Dst: strcpy
      Src: /src/core/libpromises/lastseen.c:600,1
    - Dst: strlcat
      Src: /src/core/libpromises/lastseen.c:601,1
    - Dst: DeleteDB
      Src: /src/core/libpromises/lastseen.c:602,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:605,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 4
    argNames:
    - key
    - ip
    - ip_size
    - a_entry_required
    argTypes:
    - char*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 551
    functionDepth: 8
    functionLinenumber: 551
    functionLinenumberEnd: 607
    functionName: DeleteDigestFromLastSeen
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 2
    functionsReached:
    - strlcat
    - DeleteDB
    - strlen
    - OpenDB
    - Log
    - ReadDB
    - CloseDB
    - HasKeyDB
    - free
    - strcpy
    - strlcpy
    - DBIdToPath
    linkageType: ''
    returnType: bool
    signature: bool DeleteDigestFromLastSeen(const char *key, char *ip, size_t ip_size,
      bool a_entry_required)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LoadDatabaseToStringMap
      Src: /src/core/libpromises/lastseen.c:612,1
    - Dst: MapIteratorInit
      Src: /src/core/libpromises/lastseen.c:617,1
    - Dst: SeqNew
      Src: /src/core/libpromises/lastseen.c:620,1
    - Dst: MapIteratorNext
      Src: /src/core/libpromises/lastseen.c:621,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/lastseen.c:630,1
    - Dst: xstrdup
      Src: /src/core/libpromises/lastseen.c:630,1
    - Dst: SeqLength
      Src: /src/core/libpromises/lastseen.c:632,1
    - Dst: SeqAt
      Src: /src/core/libpromises/lastseen.c:634,1
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:637,1
    - Dst: StringMapGet
      Src: /src/core/libpromises/lastseen.c:639,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:642,1
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:647,1
    - Dst: StringMapGet
      Src: /src/core/libpromises/lastseen.c:649,1
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:659,1
    - Dst: StringMapGet
      Src: /src/core/libpromises/lastseen.c:661,1
    - Dst: StringMapDestroy
      Src: /src/core/libpromises/lastseen.c:671,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/lastseen.c:672,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - callback
    - ctx
    argTypes:
    - LastSeenQualityCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 610
    functionDepth: 8
    functionLinenumber: 610
    functionLinenumberEnd: 675
    functionName: ScanLastSeenQuality
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 4
    functionsReached:
    - SeqDestroy
    - snprintf
    - LoadDatabaseToStringMap
    - StringMapDestroy
    - StringMapGet
    - MapIteratorNext
    - SeqNew
    - Log
    - MapIteratorInit
    - xstrdup
    - SeqLength
    - SeqAt
    - SeqAppend
    linkageType: ''
    returnType: bool
    signature: bool ScanLastSeenQuality(LastSeenQualityCallback callback, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/lastseen.c:690,1
    - Dst: memset
      Src: /src/core/libpromises/lastseen.c:692,1
    - Dst: NewDBCursor
      Src: /src/core/libpromises/lastseen.c:694,1
    - Dst: NextDB
      Src: /src/core/libpromises/lastseen.c:696,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/lastseen.c:708,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:711,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 715
    functionName: LastSeenHostKeyCount
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 2
    functionsReached:
    - NewDBCursor
    - OpenDB
    - DeleteDBCursor
    - CloseDB
    - NextDB
    - memset
    linkageType: ''
    returnType: int
    signature: int LastSeenHostKeyCount(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IsLastSeenCoherent
      Src: /src/core/libpromises/lastseen.c:735,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:738,1
    - Dst: IsDigestOrHost
      Src: /src/core/libpromises/lastseen.c:744,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:748,1
    - Dst: DeleteDigestFromLastSeen
      Src: /src/core/libpromises/lastseen.c:749,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:751,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:757,1
    - Dst: DeleteIpFromLastSeen
      Src: /src/core/libpromises/lastseen.c:758,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:760,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:765,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - input
    - must_be_coherent
    - equivalent
    - equivalent_size
    argTypes:
    - char*
    - bool
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 728
    functionDepth: 9
    functionLinenumber: 728
    functionLinenumberEnd: 768
    functionName: RemoveKeysFromLastSeen
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 1
    functionsReached:
    - DeleteIpFromLastSeen
    - IsLastSeenCoherent
    - IsDigestOrHost
    - Log
    - DeleteDigestFromLastSeen
    linkageType: ''
    returnType: int
    signature: "int RemoveKeysFromLastSeen(const char *input, bool must_be_coherent,\n
      \                          char *equivalent, size_t equivalent_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/lastseen.c:772,1
    - Dst: assert
      Src: /src/core/libpromises/lastseen.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - entry
    - size_t
    - new
    argTypes:
    - KeyHostSeen*
    - ARG_UNUSED
    - KeyHostSeen*
    assertStmts:
    - condition: (entry != NULL)
      pos:
        line_end: 771
        line_start: 771
        source_file: /src/core/libpromises/lastseen.c
    - condition: (new != NULL)
      pos:
        line_end: 772
        line_start: 772
        source_file: /src/core/libpromises/lastseen.c
    constantsTouched: []
    func_position:
      end: 785
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 785
    functionName: OnlyRewriteIfChanged
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool OnlyRewriteIfChanged(KeyHostSeen *entry, ARG_UNUSED size_t size,
      KeyHostSeen *new)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/lastseen.c:790,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:792,1
    - Dst: snprintf
      Src: /src/core/libpromises/lastseen.c:798,1
    - Dst: assert
      Src: /src/core/libpromises/lastseen.c:799,1
    - Dst: OverwriteDB
      Src: /src/core/libpromises/lastseen.c:803,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:805,1
    - Dst: Log
      Src: /src/core/libpromises/lastseen.c:812,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:813,1
    - Dst: CloseDB
      Src: /src/core/libpromises/lastseen.c:817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - host_key
    - incoming
    argTypes:
    - char*
    - bool
    assertStmts:
    - condition: (ret > 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/core/libpromises/lastseen.c
    constantsTouched: []
    func_position:
      end: 819
      start: 787
    functionDepth: 8
    functionLinenumber: 787
    functionLinenumberEnd: 819
    functionName: LastSeenHostAcknowledge
    functionSourceFile: /src/core/libpromises/lastseen.c
    functionUses: 0
    functionsReached:
    - snprintf
    - assert
    - OpenDB
    - OverwriteDB
    - Log
    - CloseDB
    linkageType: ''
    returnType: bool
    signature: bool LastSeenHostAcknowledge(const char *host_key, bool incoming)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/verify_reports.c:52,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/verify_reports.c:57,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/verify_reports.c:57,1
    - Dst: GetReportsAttributes
      Src: /src/core/libpromises/verify_reports.c:67,1
    - Dst: snprintf
      Src: /src/core/libpromises/verify_reports.c:70,1
    - Dst: AcquireLock
      Src: /src/core/libpromises/verify_reports.c:71,1
    - Dst: strlen
      Src: /src/core/libpromises/verify_reports.c:78,1
    - Dst: snprintf
      Src: /src/core/libpromises/verify_reports.c:80,1
    - Dst: snprintf
      Src: /src/core/libpromises/verify_reports.c:84,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/verify_reports.c:87,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_reports.c:87,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/verify_reports.c:88,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_reports.c:89,1
    - Dst: YieldCurrentLock
      Src: /src/core/libpromises/verify_reports.c:93,1
    - Dst: PromiseBanner
      Src: /src/core/libpromises/verify_reports.c:103,1
    - Dst: cfPS
      Src: /src/core/libpromises/verify_reports.c:107,1
    - Dst: YieldCurrentLock
      Src: /src/core/libpromises/verify_reports.c:108,1
    - Dst: ReportToFile
      Src: /src/core/libpromises/verify_reports.c:114,1
    - Dst: ReportToLog
      Src: /src/core/libpromises/verify_reports.c:118,1
    - Dst: PrintFile
      Src: /src/core/libpromises/verify_reports.c:124,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/verify_reports.c:126,1
    - Dst: YieldCurrentLock
      Src: /src/core/libpromises/verify_reports.c:130,1
    - Dst: ClassAuditLog
      Src: /src/core/libpromises/verify_reports.c:132,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/core/libpromises/verify_reports.c
    constantsTouched: []
    func_position:
      end: 134
      start: 50
    functionDepth: 13
    functionLinenumber: 50
    functionLinenumberEnd: 134
    functionName: VerifyReportPromise
    functionSourceFile: /src/core/libpromises/verify_reports.c
    functionUses: 0
    functionsReached:
    - IsCf3VarString
    - PrintFile
    - VarRefParseFromBundle
    - AcquireLock
    - VarRefDestroy
    - GetReportsAttributes
    - PromiseBanner
    - snprintf
    - strlen
    - ReportToFile
    - YieldCurrentLock
    - PromiseGetBundle
    - ClassAuditLog
    - assert
    - EvalContextVariablePut
    - EvalContextGetPass
    - cfPS
    - ReportToLog
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyReportPromise(EvalContext *ctx, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libpromises/verify_reports.c:139,1
    - Dst: fputs
      Src: /src/core/libpromises/verify_reports.c:141,1
    - Dst: fputc
      Src: /src/core/libpromises/verify_reports.c:142,1
    - Dst: LogToSystemLog
      Src: /src/core/libpromises/verify_reports.c:143,1
    - Dst: free
      Src: /src/core/libpromises/verify_reports.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: ReportToLog
    functionSourceFile: /src/core/libpromises/verify_reports.c
    functionUses: 1
    functionsReached:
    - xasprintf
    - fputs
    - free
    - fputc
    - LogToSystemLog
    linkageType: ''
    returnType: void
    signature: void ReportToLog(const char *message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen_create_perms
      Src: /src/core/libpromises/verify_reports.c:150,1
    - Dst: Log
      Src: /src/core/libpromises/verify_reports.c:153,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/verify_reports.c:153,1
    - Dst: fprintf
      Src: /src/core/libpromises/verify_reports.c:157,1
    - Dst: fclose
      Src: /src/core/libpromises/verify_reports.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - logfile
    - message
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 10
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: ReportToFile
    functionSourceFile: /src/core/libpromises/verify_reports.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - safe_fopen_create_perms
    - Log
    - fclose
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ReportToFile(const char *logfile, const char *message)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/verify_reports.c:166,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/verify_reports.c:171,1
    - Dst: Log
      Src: /src/core/libpromises/verify_reports.c:174,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/verify_reports.c:176,1
    - Dst: xmalloc
      Src: /src/core/libpromises/verify_reports.c:181,1
    - Dst: ABS
      Src: /src/core/libpromises/verify_reports.c:187,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/verify_reports.c:189,1
    - Dst: ferror
      Src: /src/core/libpromises/verify_reports.c:193,1
    - Dst: Log
      Src: /src/core/libpromises/verify_reports.c:195,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/verify_reports.c:197,1
    - Dst: free
      Src: /src/core/libpromises/verify_reports.c:198,1
    - Dst: rewind
      Src: /src/core/libpromises/verify_reports.c:201,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/verify_reports.c:206,1
    - Dst: ferror
      Src: /src/core/libpromises/verify_reports.c:208,1
    - Dst: Log
      Src: /src/core/libpromises/verify_reports.c:210,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/verify_reports.c:212,1
    - Dst: free
      Src: /src/core/libpromises/verify_reports.c:213,1
    - Dst: ReportToLog
      Src: /src/core/libpromises/verify_reports.c:223,1
    - Dst: fclose
      Src: /src/core/libpromises/verify_reports.c:227,1
    - Dst: free
      Src: /src/core/libpromises/verify_reports.c:228,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - filename
    - max_lines
    argTypes:
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 162
    functionDepth: 8
    functionLinenumber: 162
    functionLinenumberEnd: 231
    functionName: PrintFile
    functionSourceFile: /src/core/libpromises/verify_reports.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - rewind
    - ABS
    - ReportToLog
    - safe_fopen
    - xmalloc
    - Log
    - fclose
    - free
    - CfReadLine
    - ferror
    linkageType: ''
    returnType: bool
    signature: bool PrintFile(const char *filename, ssize_t max_lines)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/verify_vars.c:68,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/verify_vars.c:71,1
    - Dst: strchr
      Src: /src/core/libpromises/verify_vars.c:76,1
    - Dst: strchr
      Src: /src/core/libpromises/verify_vars.c:77,1
    - Dst: xstrndup
      Src: /src/core/libpromises/verify_vars.c:82,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_vars.c:83,1
    - Dst: StringEqual
      Src: /src/core/libpromises/verify_vars.c:85,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:87,1
    - Dst: StringSetContains
      Src: /src/core/libpromises/verify_vars.c:90,1
    - Dst: EvalContextGetBundleNames
      Src: /src/core/libpromises/verify_vars.c:90,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:92,1
    - Dst: free
      Src: /src/core/libpromises/verify_vars.c:93,1
    - Dst: EvalContextPushRemoteVarPromise
      Src: /src/core/libpromises/verify_vars.c:98,1
    - Dst: free
      Src: /src/core/libpromises/verify_vars.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 58
    functionDepth: 8
    functionLinenumber: 58
    functionLinenumberEnd: 104
    functionName: IsLegalVariableName
    functionSourceFile: /src/core/libpromises/verify_vars.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - StringSetContains
    - CompileRegex
    - EvalContextGetBundleNames
    - strchr
    - StringMatchFullWithPrecompiledRegex
    - Log
    - EvalContextPushRemoteVarPromise
    - free
    - xstrndup
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool IsLegalVariableName(EvalContext *ctx, const Promise *pp)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/verify_vars.c:112,1
    - Dst: CollectConvergeVariableOptions
      Src: /src/core/libpromises/verify_vars.c:114,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:116,1
    - Dst: LogDebug
      Src: /src/core/libpromises/verify_vars.c:117,1
    - Dst: LogDebug
      Src: /src/core/libpromises/verify_vars.c:123,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/verify_vars.c:141,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/verify_vars.c:143,1
    - Dst: StringEqual
      Src: /src/core/libpromises/verify_vars.c:145,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/verify_vars.c:145,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:147,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/verify_vars.c:150,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/verify_vars.c:151,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/verify_vars.c:153,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:156,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/verify_vars.c:159,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/verify_vars.c:160,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/libpromises/verify_vars.c:164,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/verify_vars.c:166,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_vars.c:166,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:167,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/verify_vars.c:167,1
    - Dst: VarRefSetMeta
      Src: /src/core/libpromises/verify_vars.c:169,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/verify_vars.c:174,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/verify_vars.c:180,1
    - Dst: DataTypeFromString
      Src: /src/core/libpromises/verify_vars.c:188,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/verify_vars.c:192,1
    - Dst: FnCallTypeGet
      Src: /src/core/libpromises/verify_vars.c:193,1
    - Dst: assert
      Src: /src/core/libpromises/verify_vars.c:196,1
    - Dst: FatalError
      Src: /src/core/libpromises/verify_vars.c:197,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_vars.c:198,1
    - Dst: DataTypeFromString
      Src: /src/core/libpromises/verify_vars.c:201,1
    - Dst: FatalError
      Src: /src/core/libpromises/verify_vars.c:203,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_vars.c:204,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/verify_vars.c:205,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:211,1
    - Dst: FnCallEvaluate
      Src: /src/core/libpromises/verify_vars.c:215,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/verify_vars.c:215,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/verify_vars.c:220,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:222,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_vars.c:223,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:225,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:226,1
    - Dst: BufferNew
      Src: /src/core/libpromises/verify_vars.c:236,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:239,1
    - Dst: IntFromString
      Src: /src/core/libpromises/verify_vars.c:241,1
    - Dst: BufferPrintf
      Src: /src/core/libpromises/verify_vars.c:246,1
    - Dst: RvalNew
      Src: /src/core/libpromises/verify_vars.c:252,1
    - Dst: BufferData
      Src: /src/core/libpromises/verify_vars.c:252,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:255,1
    - Dst: DoubleFromString
      Src: /src/core/libpromises/verify_vars.c:258,1
    - Dst: BufferPrintf
      Src: /src/core/libpromises/verify_vars.c:262,1
    - Dst: RvalNew
      Src: /src/core/libpromises/verify_vars.c:268,1
    - Dst: BufferData
      Src: /src/core/libpromises/verify_vars.c:268,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/verify_vars.c:273,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/verify_vars.c:275,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:281,1
    - Dst: UnexpectedError
      Src: /src/core/libpromises/verify_vars.c:288,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:289,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/verify_vars.c:294,1
    - Dst: RlistFlatten
      Src: /src/core/libpromises/verify_vars.c:295,1
    - Dst: Epimenides
      Src: /src/core/libpromises/verify_vars.c:300,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_vars.c:300,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_vars.c:300,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:302,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/verify_vars.c:303,1
    - Dst: EvaluateFinalRval
      Src: /src/core/libpromises/verify_vars.c:309,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/verify_vars.c:309,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:311,1
    - Dst: CompareRval
      Src: /src/core/libpromises/verify_vars.c:322,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/verify_vars.c:322,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:329,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/verify_vars.c:330,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_vars.c:331,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:336,1
    - Dst: StringWriter
      Src: /src/core/libpromises/verify_vars.c:337,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/verify_vars.c:338,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/verify_vars.c:339,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:340,1
    - Dst: free
      Src: /src/core/libpromises/verify_vars.c:341,1
    - Dst: StringWriter
      Src: /src/core/libpromises/verify_vars.c:343,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/verify_vars.c:344,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/verify_vars.c:345,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:346,1
    - Dst: free
      Src: /src/core/libpromises/verify_vars.c:347,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_vars.c:349,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:360,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:361,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/verify_vars.c:365,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:368,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:369,1
    - Dst: IsLegalVariableName
      Src: /src/core/libpromises/verify_vars.c:373,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:375,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_vars.c:376,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:377,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:378,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/verify_vars.c:386,1
    - Dst: IsNakedVar
      Src: /src/core/libpromises/verify_vars.c:391,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_vars.c:391,1
    - Dst: RlistDestroyEntry
      Src: /src/core/libpromises/verify_vars.c:396,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/verify_vars.c:401,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:406,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:407,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/verify_vars.c:417,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:418,1
    - Dst: free
      Src: /src/core/libpromises/verify_vars.c:420,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:421,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:422,1
    - Dst: VarRefCopyIndexless
      Src: /src/core/libpromises/verify_vars.c:428,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/verify_vars.c:429,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/verify_vars.c:431,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/verify_vars.c:432,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:433,1
    - Dst: free
      Src: /src/core/libpromises/verify_vars.c:435,1
    - Dst: free
      Src: /src/core/libpromises/verify_vars.c:436,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:437,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:438,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:439,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:442,1
    - Dst: DataTypeFromString
      Src: /src/core/libpromises/verify_vars.c:447,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/verify_vars.c:448,1
    - Dst: VarRefToString
      Src: /src/core/libpromises/verify_vars.c:450,1
    - Dst: RvalToString
      Src: /src/core/libpromises/verify_vars.c:451,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:452,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/verify_vars.c:453,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_vars.c:454,1
    - Dst: free
      Src: /src/core/libpromises/verify_vars.c:456,1
    - Dst: free
      Src: /src/core/libpromises/verify_vars.c:457,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:458,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:459,1
    - Dst: StringSetNew
      Src: /src/core/libpromises/verify_vars.c:463,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/verify_vars.c:464,1
    - Dst: xstrdup
      Src: /src/core/libpromises/verify_vars.c:464,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/verify_vars.c:466,1
    - Dst: StringSetAdd
      Src: /src/core/libpromises/verify_vars.c:472,1
    - Dst: xstrdup
      Src: /src/core/libpromises/verify_vars.c:472,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_vars.c:472,1
    - Dst: WouldLog
      Src: /src/core/libpromises/verify_vars.c:473,1
    - Dst: StringSetToBuffer
      Src: /src/core/libpromises/verify_vars.c:475,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:476,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/verify_vars.c:478,1
    - Dst: BufferData
      Src: /src/core/libpromises/verify_vars.c:478,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/verify_vars.c:479,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/libpromises/verify_vars.c:484,1
    - Dst: EvalContextVariablePutTagsSetWithComment
      Src: /src/core/libpromises/verify_vars.c:487,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:491,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:497,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_vars.c:500,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:502,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:503,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/verify_vars.c:504,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:512,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:513,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/verify_vars.c:513,1
    - Dst: ClassAuditLog
      Src: /src/core/libpromises/verify_vars.c:526,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/verify_vars.c:528,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:529,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 214
    argCount: 3
    argNames:
    - ctx
    - pp
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - ARG_UNUSED*
    assertStmts:
    - condition: '(false && "Canary: should have been caught before this point")'
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/core/libpromises/verify_vars.c
    - condition: (pp != NULL)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/core/libpromises/verify_vars.c
    constantsTouched: []
    func_position:
      end: 532
      start: 109
    functionDepth: 12
    functionLinenumber: 109
    functionLinenumberEnd: 532
    functionName: VerifyVarPromise
    functionSourceFile: /src/core/libpromises/verify_vars.c
    functionUses: 0
    functionsReached:
    - IsCf3VarString
    - VarRefParseFromBundle
    - BufferDestroy
    - FnCallTypeGet
    - VarRefSetMeta
    - RlistDestroyEntry
    - BufferPrintf
    - VarRefDestroy
    - RvalCopy
    - Log
    - DoubleFromString
    - RlistScalarValue
    - BufferNew
    - free
    - DataTypeToRvalType
    - RvalRlistValue
    - IsLegalVariableName
    - StringSetNew
    - StringEqual
    - RvalDestroy
    - PromiseGetConstraintAsList
    - RvalFnCallValue
    - BufferData
    - StringSetToBuffer
    - VarRefCopyIndexless
    - IsNakedVar
    - WouldLog
    - EvalContextVariablePutTagsSetWithComment
    - PromiseGetPolicy
    - strcmp
    - xstrdup
    - RlistFlatten
    - IntFromString
    - DataTypeFromString
    - RvalNew
    - RlistWrite
    - PromiseGetBundle
    - VarRefToString
    - ClassAuditLog
    - RvalScalarValue
    - PromiseGetPromiseType
    - assert
    - LogDebug
    - IsExpandable
    - FnCallEvaluate
    - Epimenides
    - GetClassDefinitionConstraints
    - PromiseGetConstraintAsRval
    - EvaluateFinalRval
    - EvalContextGetPass
    - StringSetAdd
    - DoCleanupAndExit
    - CollectConvergeVariableOptions
    - PromiseGetConstraintAsInt
    - DataTypeToString
    - CompareRval
    - PromiseRef
    - UnexpectedError
    - StringWriter
    - StringSetDestroy
    - FatalError
    - EvalContextVariableGet
    - RvalToString
    - StringWriterClose
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult VerifyVarPromise(EvalContext *ctx, const Promise *pp,\n
      \                              ARG_UNUSED void *param)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/verify_vars.c:546,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/verify_vars.c:546,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:551,1
    - Dst: RlistEqual
      Src: /src/core/libpromises/verify_vars.c:559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - rval1_item
    - rval1_type
    - rval2_item
    - rval2_type
    argTypes:
    - void*
    - RvalType
    - void*
    - RvalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 569
    functionName: CompareRval
    functionSourceFile: /src/core/libpromises/verify_vars.c
    functionUses: 1
    functionsReached:
    - IsCf3VarString
    - RlistEqual
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool CompareRval(const void *rval1_item, RvalType rval1_type,\n                        const
      void *rval2_item, RvalType rval2_type)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: StringContainsVar
      Src: /src/core/libpromises/verify_vars.c:577,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/verify_vars.c:577,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:579,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/verify_vars.c:579,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/verify_vars.c:583,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/verify_vars.c:583,1
    - Dst: BufferNew
      Src: /src/core/libpromises/verify_vars.c:585,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/verify_vars.c:586,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/verify_vars.c:586,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:588,1
    - Dst: BufferData
      Src: /src/core/libpromises/verify_vars.c:588,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/verify_vars.c:588,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/verify_vars.c:590,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/verify_vars.c:596,1
    - Dst: Epimenides
      Src: /src/core/libpromises/verify_vars.c:600,1
    - Dst: BufferGet
      Src: /src/core/libpromises/verify_vars.c:600,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/verify_vars.c:602,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/verify_vars.c:606,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/verify_vars.c:612,1
    - Dst: Epimenides
      Src: /src/core/libpromises/verify_vars.c:614,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 6
    argNames:
    - ctx
    - ns
    - scope
    - var
    - rval
    - level
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - Rval
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 571
    functionDepth: 8
    functionLinenumber: 571
    functionLinenumberEnd: 628
    functionName: Epimenides
    functionSourceFile: /src/core/libpromises/verify_vars.c
    functionUses: 2
    functionsReached:
    - IsCf3VarString
    - StringContainsVar
    - BufferData
    - BufferDestroy
    - RvalScalarValue
    - ExpandScalar
    - Epimenides
    - Log
    - strcmp
    - BufferNew
    - RvalRlistValue
    - BufferGet
    linkageType: ''
    returnType: bool
    signature: bool Epimenides(EvalContext *ctx, const char *ns, const char *scope,
      const char *var, Rval rval, int level)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_vars.c:644,1
    - Dst: SeqLength
      Src: /src/core/libpromises/verify_vars.c:650,1
    - Dst: SeqAt
      Src: /src/core/libpromises/verify_vars.c:652,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:654,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:665,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:666,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_vars.c:671,1
    - Dst: FnCallEvaluate
      Src: /src/core/libpromises/verify_vars.c:684,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/verify_vars.c:684,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:689,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/verify_vars.c:693,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/verify_vars.c:695,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:705,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:708,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:710,1
    - Dst: strcmp
      Src: /src/core/libpromises/verify_vars.c:714,1
    - Dst: DataTypeFromString
      Src: /src/core/libpromises/verify_vars.c:719,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:728,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_vars.c:730,1
    - Dst: Log
      Src: /src/core/libpromises/verify_vars.c:736,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/verify_vars.c:739,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 633
    functionDepth: 10
    functionLinenumber: 633
    functionLinenumberEnd: 748
    functionName: CollectConvergeVariableOptions
    functionSourceFile: /src/core/libpromises/verify_vars.c
    functionUses: 1
    functionsReached:
    - RvalDestroy
    - DataTypeFromString
    - FnCallEvaluate
    - PromiseRef
    - PromiseGetPolicy
    - IsDefinedClass
    - strcmp
    - Log
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: ConvergeVariableOptions
    signature: ConvergeVariableOptions CollectConvergeVariableOptions(EvalContext
      *ctx, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getprocs64
      Src: /src/core/libpromises/process_aix.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pe
    - pid
    argTypes:
    - struct procentry64*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: FillProcEntry
    functionSourceFile: /src/core/libpromises/process_aix.c
    functionUses: 0
    functionsReached:
    - getprocs64
    linkageType: ''
    returnType: bool
    signature: bool FillProcEntry(struct procentry64* pe, pid_t pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FillProcEntry
      Src: /src/core/libpromises/process_aix.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: GetProcessStartTime
    functionSourceFile: /src/core/libpromises/process_aix.c
    functionUses: 17
    functionsReached:
    - FillProcEntry
    linkageType: ''
    returnType: time_t
    signature: time_t GetProcessStartTime(pid_t pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FillProcEntry
      Src: /src/core/libpromises/process_aix.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: GetProcessState
    functionSourceFile: /src/core/libpromises/process_aix.c
    functionUses: 17
    functionsReached:
    - FillProcEntry
    linkageType: ''
    returnType: ProcessState
    signature: ProcessState GetProcessState(pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringContains
      Src: /src/core/libpromises/var_expressions.h:93,1
    - Dst: StringContains
      Src: /src/core/libpromises/var_expressions.h:94,1
    - Dst: StringContains
      Src: /src/core/libpromises/var_expressions.h:95,1
    - Dst: StringContains
      Src: /src/core/libpromises/var_expressions.h:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: StringContainsUnresolved
    functionSourceFile: /src/core/libpromises/var_expressions.h
    functionUses: 7
    functionsReached:
    - StringContains
    linkageType: ''
    returnType: bool
    signature: bool StringContainsUnresolved(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/var_expressions.h:103,1
    - Dst: strlen
      Src: /src/core/libpromises/var_expressions.h:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/core/libpromises/var_expressions.h
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: StringIsBareNonScalarRef
    functionSourceFile: /src/core/libpromises/var_expressions.h
    functionUses: 1
    functionsReached:
    - assert
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool StringIsBareNonScalarRef(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: BootstrapAllowed
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool BootstrapAllowed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsPrivileged
      Src: /src/core/libpromises/bootstrap.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: BootstrapAllowed
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 0
    functionsReached:
    - IsPrivileged
    linkageType: ''
    returnType: bool
    signature: bool BootstrapAllowed(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libpromises/bootstrap.c:97,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/bootstrap.c:99,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/bootstrap.c:101,1
    - Dst: PolicyServerSet
      Src: /src/core/libpromises/bootstrap.c:106,1
    - Dst: PolicyServerGetIP
      Src: /src/core/libpromises/bootstrap.c:107,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/bootstrap.c:112,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/bootstrap.c:119,1
    - Dst: PolicyServerGetPort
      Src: /src/core/libpromises/bootstrap.c:124,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/bootstrap.c:126,1
    - Dst: PolicyServerGetPort
      Src: /src/core/libpromises/bootstrap.c:127,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/bootstrap.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - new_policy_server
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 139
    functionName: EvalContextSetPolicyServer
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 1
    functionsReached:
    - EvalContextVariableRemoveSpecial
    - PolicyServerGetIP
    - PolicyServerSet
    - EvalContextVariablePutSpecial
    - PolicyServerGetPort
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: void
    signature: void EvalContextSetPolicyServer(EvalContext *ctx, const char *new_policy_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyServerReadFile
      Src: /src/core/libpromises/bootstrap.c:152,1
    - Dst: EvalContextSetPolicyServer
      Src: /src/core/libpromises/bootstrap.c:153,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - workdir
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: EvalContextSetPolicyServerFromFile
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 1
    functionsReached:
    - PolicyServerReadFile
    - EvalContextSetPolicyServer
    - free
    linkageType: ''
    returnType: void
    signature: void EvalContextSetPolicyServerFromFile(EvalContext *ctx, const char
      *workdir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/bootstrap.c:173,1
    - Dst: GetMasterDir
      Src: /src/core/libpromises/bootstrap.c:173,1
    - Dst: MapName
      Src: /src/core/libpromises/bootstrap.c:174,1
    - Dst: stat
      Src: /src/core/libpromises/bootstrap.c:176,1
    - Dst: cf_strtimestamp_local
      Src: /src/core/libpromises/bootstrap.c:183,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/bootstrap.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 167
    functionDepth: 9
    functionLinenumber: 167
    functionLinenumberEnd: 186
    functionName: UpdateLastPolicyUpdateTime
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 2
    functionsReached:
    - stat
    - snprintf
    - MapName
    - cf_strtimestamp_local
    - EvalContextVariablePutSpecial
    - GetMasterDir
    linkageType: ''
    returnType: void
    signature: void UpdateLastPolicyUpdateTime(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/bootstrap.c:194,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/bootstrap.c:194,1
    - Dst: MapName
      Src: /src/core/libpromises/bootstrap.c:195,1
    - Dst: stat
      Src: /src/core/libpromises/bootstrap.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 199
    functionName: GetAmPolicyHub
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 3
    functionsReached:
    - MapName
    - GetStateDir
    - stat
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool GetAmPolicyHub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFormat
      Src: /src/core/libpromises/bootstrap.c:208,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/bootstrap.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: AmPolicyHubFilename
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 0
    functionsReached:
    - StringFormat
    - GetStateDir
    linkageType: ''
    returnType: char
    signature: char *AmPolicyHubFilename(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AmPolicyHubFilename
      Src: /src/core/libpromises/bootstrap.c:213,1
    - Dst: GetAmPolicyHub
      Src: /src/core/libpromises/bootstrap.c:216,1
    - Dst: creat
      Src: /src/core/libpromises/bootstrap.c:218,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:221,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:222,1
    - Dst: close
      Src: /src/core/libpromises/bootstrap.c:225,1
    - Dst: GetAmPolicyHub
      Src: /src/core/libpromises/bootstrap.c:230,1
    - Dst: unlink
      Src: /src/core/libpromises/bootstrap.c:232,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:234,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:235,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - am_policy_hub
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 211
    functionDepth: 8
    functionLinenumber: 211
    functionLinenumberEnd: 242
    functionName: WriteAmPolicyHubFile
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 1
    functionsReached:
    - creat
    - unlink
    - GetAmPolicyHub
    - Log
    - free
    - AmPolicyHubFilename
    - close
    linkageType: ''
    returnType: bool
    signature: bool WriteAmPolicyHubFile(bool am_policy_hub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/bootstrap.c:256,1
    - Dst: MapName
      Src: /src/core/libpromises/bootstrap.c:257,1
    - Dst: WriteBuiltinFailsafePolicyToPath
      Src: /src/core/libpromises/bootstrap.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - inputdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: WriteBuiltinFailsafePolicy
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 1
    functionsReached:
    - MapName
    - WriteBuiltinFailsafePolicyToPath
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool WriteBuiltinFailsafePolicy(const char *inputdir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:272,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/bootstrap.c:274,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:277,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/bootstrap.c:277,1
    - Dst: fputs
      Src: /src/core/libpromises/bootstrap.c:281,1
    - Dst: fclose
      Src: /src/core/libpromises/bootstrap.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 265
    functionDepth: 8
    functionLinenumber: 265
    functionLinenumberEnd: 285
    functionName: WriteBuiltinFailsafePolicyToPath
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 3
    functionsReached:
    - GetErrorStr
    - fputs
    - safe_fopen
    - Log
    - fclose
    linkageType: ''
    returnType: bool
    signature: bool WriteBuiltinFailsafePolicyToPath(const char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:299,1
    - Dst: stat
      Src: /src/core/libpromises/bootstrap.c:302,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:310,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/bootstrap.c:310,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/bootstrap.c:315,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:317,1
    - Dst: DeleteDirectoryTree
      Src: /src/core/libpromises/bootstrap.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - inputs_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 297
    functionDepth: 10
    functionLinenumber: 297
    functionLinenumberEnd: 322
    functionName: RemoveAllExistingPolicyInInputs
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - S_ISDIR
    - DeleteDirectoryTree
    - Log
    linkageType: ''
    returnType: bool
    signature: bool RemoveAllExistingPolicyInInputs(const char *inputs_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/bootstrap.c:330,1
    - Dst: MapName
      Src: /src/core/libpromises/bootstrap.c:331,1
    - Dst: stat
      Src: /src/core/libpromises/bootstrap.c:334,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:342,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/bootstrap.c:342,1
    - Dst: S_ISREG
      Src: /src/core/libpromises/bootstrap.c:347,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - masterdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 327
    functionDepth: 8
    functionLinenumber: 327
    functionLinenumberEnd: 354
    functionName: MasterfileExists
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - snprintf
    - MapName
    - Log
    - S_ISREG
    linkageType: ''
    returnType: bool
    signature: bool MasterfileExists(const char *masterdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/bootstrap.c:358,1
    - Dst: StringFormat
      Src: /src/core/libpromises/bootstrap.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts:
    - condition: (workdir != NULL)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/core/libpromises/bootstrap.c
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: BootstrapIDFilename
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 0
    functionsReached:
    - assert
    - StringFormat
    linkageType: ''
    returnType: char
    signature: char *BootstrapIDFilename(const char *workdir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/bootstrap.c:364,1
    - Dst: BootstrapIDFilename
      Src: /src/core/libpromises/bootstrap.c:365,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libpromises/bootstrap.c:367,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:370,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/bootstrap.c:370,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:371,1
    - Dst: CryptoInitialize
      Src: /src/core/libpromises/bootstrap.c:374,1
    - Dst: RAND_bytes
      Src: /src/core/libpromises/bootstrap.c:378,1
    - Dst: StringEncodeBase64
      Src: /src/core/libpromises/bootstrap.c:379,1
    - Dst: fprintf
      Src: /src/core/libpromises/bootstrap.c:380,1
    - Dst: fclose
      Src: /src/core/libpromises/bootstrap.c:381,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts:
    - condition: (workdir != NULL)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/core/libpromises/bootstrap.c
    constantsTouched: []
    func_position:
      end: 385
      start: 362
    functionDepth: 10
    functionLinenumber: 362
    functionLinenumberEnd: 385
    functionName: CreateBootstrapIDFile
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - RAND_bytes
    - assert
    - safe_fopen_create_perms
    - StringEncodeBase64
    - Log
    - BootstrapIDFilename
    - fclose
    - fprintf
    - free
    - CryptoInitialize
    linkageType: ''
    returnType: char
    signature: char *CreateBootstrapIDFile(const char *workdir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/bootstrap.c:389,1
    - Dst: BootstrapIDFilename
      Src: /src/core/libpromises/bootstrap.c:391,1
    - Dst: FileRead
      Src: /src/core/libpromises/bootstrap.c:392,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:396,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:399,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/bootstrap.c:402,1
    - Dst: strlen
      Src: /src/core/libpromises/bootstrap.c:404,1
    - Dst: assert
      Src: /src/core/libpromises/bootstrap.c:405,1
    - Dst: assert
      Src: /src/core/libpromises/bootstrap.c:406,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:409,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:410,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:411,1
    - Dst: Log
      Src: /src/core/libpromises/bootstrap.c:417,1
    - Dst: free
      Src: /src/core/libpromises/bootstrap.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts:
    - condition: (workdir != NULL)
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/core/libpromises/bootstrap.c
    - condition: (data_length == BASE_64_LENGTH_NO_PADDING + 1)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/core/libpromises/bootstrap.c
    - condition: (data[data_length - 1] == '\n')
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/core/libpromises/bootstrap.c
    constantsTouched: []
    func_position:
      end: 423
      start: 387
    functionDepth: 8
    functionLinenumber: 387
    functionLinenumberEnd: 423
    functionName: ReadBootstrapIDFile
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 1
    functionsReached:
    - strlen
    - assert
    - Log
    - BootstrapIDFilename
    - FileRead
    - StringWriterClose
    - free
    linkageType: ''
    returnType: char
    signature: char *ReadBootstrapIDFile(const char *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/bootstrap.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - bootstrap_id
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 425
    functionDepth: 4
    functionLinenumber: 425
    functionLinenumberEnd: 434
    functionName: EvalContextSetBootstrapID
    functionSourceFile: /src/core/libpromises/bootstrap.c
    functionUses: 1
    functionsReached:
    - EvalContextVariablePutSpecial
    linkageType: ''
    returnType: void
    signature: void EvalContextSetBootstrapID(EvalContext *ctx, char *bootstrap_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/core/libpromises/dbm_tokyocab.c:75,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:79,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_tokyocab.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 8
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: LockCursor
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - Log
    - GetErrorStr
    linkageType: ''
    returnType: bool
    signature: bool LockCursor(DBPriv *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/core/libpromises/dbm_tokyocab.c:87,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:91,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_tokyocab.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: UnlockCursor
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - pthread_mutex_unlock
    - Log
    linkageType: ''
    returnType: void
    signature: void UnlockCursor(DBPriv *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: DBPrivGetFileExtension
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *DBPrivGetFileExtension(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tchdberrmsg
      Src: /src/core/libpromises/dbm_tokyocab.c:103,1
    - Dst: tchdbecode
      Src: /src/core/libpromises/dbm_tokyocab.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hdb
    argTypes:
    - TCHDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: ErrorMessage
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - tchdbecode
    - tchdberrmsg
    linkageType: ''
    returnType: char
    signature: char *ErrorMessage(TCHDB *hdb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tchdbnew
      Src: /src/core/libpromises/dbm_tokyocab.c:108,1
    - Dst: tchdbsetmutex
      Src: /src/core/libpromises/dbm_tokyocab.c:110,1
    - Dst: tchdbopen
      Src: /src/core/libpromises/dbm_tokyocab.c:115,1
    - Dst: getenv
      Src: /src/core/libpromises/dbm_tokyocab.c:128,1
    - Dst: strtol
      Src: /src/core/libpromises/dbm_tokyocab.c:133,1
    - Dst: rand
      Src: /src/core/libpromises/dbm_tokyocab.c:152,1
    - Dst: tchdboptimize
      Src: /src/core/libpromises/dbm_tokyocab.c:154,1
    - Dst: tchdbclose
      Src: /src/core/libpromises/dbm_tokyocab.c:156,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - filename
    - hdb
    argTypes:
    - char*
    - TCHDB**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 162
    functionName: OpenTokyoDatabase
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - tchdboptimize
    - rand
    - getenv
    - tchdbnew
    - strtol
    - tchdbopen
    - tchdbsetmutex
    - tchdbclose
    linkageType: ''
    returnType: bool
    signature: bool OpenTokyoDatabase(const char *filename, TCHDB **hdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_txn
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: DBPrivSetMaximumConcurrentTransactions
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBPrivSetMaximumConcurrentTransactions(ARG_UNUSED int max_txn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_tokyocab.c:170,1
    - Dst: pthread_mutex_init
      Src: /src/core/libpromises/dbm_tokyocab.c:172,1
    - Dst: OpenTokyoDatabase
      Src: /src/core/libpromises/dbm_tokyocab.c:174,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:176,1
    - Dst: ErrorMessage
      Src: /src/core/libpromises/dbm_tokyocab.c:177,1
    - Dst: tchdbecode
      Src: /src/core/libpromises/dbm_tokyocab.c:179,1
    - Dst: tchdbdel
      Src: /src/core/libpromises/dbm_tokyocab.c:186,1
    - Dst: pthread_mutex_destroy
      Src: /src/core/libpromises/dbm_tokyocab.c:194,1
    - Dst: tchdbdel
      Src: /src/core/libpromises/dbm_tokyocab.c:195,1
    - Dst: free
      Src: /src/core/libpromises/dbm_tokyocab.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - dbpath
    - dbid
    argTypes:
    - char*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 168
    functionDepth: 8
    functionLinenumber: 168
    functionLinenumberEnd: 198
    functionName: DBPrivOpenDB
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - OpenTokyoDatabase
    - xcalloc
    - tchdbecode
    - pthread_mutex_init
    - ErrorMessage
    - pthread_mutex_destroy
    - Log
    - tchdbdel
    - free
    linkageType: ''
    returnType: DBPriv
    signature: DBPriv *DBPrivOpenDB(const char *dbpath, ARG_UNUSED dbid id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/core/libpromises/dbm_tokyocab.c:204,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:207,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/dbm_tokyocab.c:208,1
    - Dst: tchdbclose
      Src: /src/core/libpromises/dbm_tokyocab.c:211,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:213,1
    - Dst: ErrorMessage
      Src: /src/core/libpromises/dbm_tokyocab.c:213,1
    - Dst: tchdbdel
      Src: /src/core/libpromises/dbm_tokyocab.c:216,1
    - Dst: free
      Src: /src/core/libpromises/dbm_tokyocab.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 200
    functionDepth: 8
    functionLinenumber: 200
    functionLinenumberEnd: 218
    functionName: DBPrivCloseDB
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - pthread_mutex_destroy
    - ErrorMessage
    - Log
    - tchdbclose
    - tchdbdel
    - free
    linkageType: ''
    returnType: void
    signature: void DBPrivCloseDB(DBPriv *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - db
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: DBPrivCommit
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DBPrivCommit(ARG_UNUSED DBPriv *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivOpenCursor
      Src: /src/core/libpromises/dbm_tokyocab.c:226,1
    - Dst: DBPrivAdvanceCursor
      Src: /src/core/libpromises/dbm_tokyocab.c:238,1
    - Dst: DBPrivDeleteCursorEntry
      Src: /src/core/libpromises/dbm_tokyocab.c:240,1
    - Dst: DBPrivCloseCursor
      Src: /src/core/libpromises/dbm_tokyocab.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 246
    functionName: DBPrivClean
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - DBPrivCloseCursor
    - DBPrivAdvanceCursor
    - DBPrivOpenCursor
    - DBPrivDeleteCursorEntry
    linkageType: ''
    returnType: bool
    signature: bool DBPrivClean(DBPriv *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db_path
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 8
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: DBPrivGetDBUsagePercentage
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: int
    signature: int DBPrivGetDBUsagePercentage(ARG_UNUSED const char *db_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tchdbvsiz
      Src: /src/core/libpromises/dbm_tokyocab.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - key
    - key_size
    argTypes:
    - DBPriv*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: DBPrivHasKey
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - tchdbvsiz
    linkageType: ''
    returnType: bool
    signature: bool DBPrivHasKey(DBPriv *db, const void *key, int key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tchdbvsiz
      Src: /src/core/libpromises/dbm_tokyocab.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - key
    - key_size
    argTypes:
    - DBPriv*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: DBPrivGetValueSize
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - tchdbvsiz
    linkageType: ''
    returnType: int
    signature: int DBPrivGetValueSize(DBPriv *db, const void *key, int key_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tchdbget3
      Src: /src/core/libpromises/dbm_tokyocab.c:268,1
    - Dst: tchdbecode
      Src: /src/core/libpromises/dbm_tokyocab.c:270,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:272,1
    - Dst: ErrorMessage
      Src: /src/core/libpromises/dbm_tokyocab.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - db
    - key
    - key_size
    - dest
    - dest_size
    argTypes:
    - DBPriv*
    - void*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 266
    functionDepth: 8
    functionLinenumber: 266
    functionLinenumberEnd: 278
    functionName: DBPrivRead
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - tchdbecode
    - ErrorMessage
    - tchdbget3
    - Log
    linkageType: ''
    returnType: bool
    signature: bool DBPrivRead(DBPriv *db, const void *key, int key_size, void *dest,
      size_t dest_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tchdbput
      Src: /src/core/libpromises/dbm_tokyocab.c:282,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:284,1
    - Dst: tchdbpath
      Src: /src/core/libpromises/dbm_tokyocab.c:285,1
    - Dst: ErrorMessage
      Src: /src/core/libpromises/dbm_tokyocab.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - hdb
    - key
    - key_size
    - value
    - value_size
    argTypes:
    - TCHDB*
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 8
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: Write
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 106
    functionsReached:
    - tchdbput
    - tchdbpath
    - Log
    - ErrorMessage
    linkageType: ''
    returnType: bool
    signature: bool Write(TCHDB *hdb, const void *key, int key_size, const void *value,
      int value_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tchdbout
      Src: /src/core/libpromises/dbm_tokyocab.c:293,1
    - Dst: tchdbecode
      Src: /src/core/libpromises/dbm_tokyocab.c:293,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:295,1
    - Dst: ErrorMessage
      Src: /src/core/libpromises/dbm_tokyocab.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - hdb
    - key
    - key_size
    argTypes:
    - TCHDB*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 8
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: Delete
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached:
    - tchdbecode
    - tchdbout
    - Log
    - ErrorMessage
    linkageType: ''
    returnType: bool
    signature: bool Delete(TCHDB *hdb, const void *key, int key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Write
      Src: /src/core/libpromises/dbm_tokyocab.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - db
    - key
    - key_size
    - value
    - value_size
    argTypes:
    - DBPriv*
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 9
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: DBPrivWrite
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached:
    - Write
    linkageType: ''
    returnType: bool
    signature: bool DBPrivWrite(DBPriv *db, const void *key, int key_size, const void
      *value, int value_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tchdbvsiz
      Src: /src/core/libpromises/dbm_tokyocab.c:319,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_tokyocab.c:325,1
    - Dst: xmalloc
      Src: /src/core/libpromises/dbm_tokyocab.c:326,1
    - Dst: tchdbget3
      Src: /src/core/libpromises/dbm_tokyocab.c:327,1
    - Dst: assert
      Src: /src/core/libpromises/dbm_tokyocab.c:330,1
    - Dst: tchdbecode
      Src: /src/core/libpromises/dbm_tokyocab.c:330,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_tokyocab.c:332,1
    - Dst: ErrorMessage
      Src: /src/core/libpromises/dbm_tokyocab.c:332,1
    - Dst: free
      Src: /src/core/libpromises/dbm_tokyocab.c:333,1
    - Dst: Condition
      Src: /src/core/libpromises/dbm_tokyocab.c:337,1
    - Dst: free
      Src: /src/core/libpromises/dbm_tokyocab.c:339,1
    - Dst: free
      Src: /src/core/libpromises/dbm_tokyocab.c:342,1
    - Dst: Write
      Src: /src/core/libpromises/dbm_tokyocab.c:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - db
    - key
    - key_size
    - value
    - value_size
    - Condition
    - data
    argTypes:
    - DBPriv*
    - char*
    - int
    - void*
    - size_t
    - OverwriteCondition
    - void*
    assertStmts:
    - condition: (cur_val_size > 0)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/core/libpromises/dbm_tokyocab.c
    - condition: (tchdbecode(db->hdb) != TCENOREC)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/core/libpromises/dbm_tokyocab.c
    constantsTouched: []
    func_position:
      end: 345
      start: 316
    functionDepth: 9
    functionLinenumber: 316
    functionLinenumberEnd: 345
    functionName: DBPrivOverwrite
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - tchdbecode
    - tchdbvsiz
    - assert
    - tchdbget3
    - ErrorMessage
    - Write
    - xmalloc
    - Log
    - free
    - Condition
    linkageType: ''
    returnType: bool
    signature: "bool DBPrivOverwrite(DBPriv *db, const char *key, int key_size, const
      void *value, size_t value_size,\n                     OverwriteCondition Condition,
      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LockCursor
      Src: /src/core/libpromises/dbm_tokyocab.c:353,1
    - Dst: Delete
      Src: /src/core/libpromises/dbm_tokyocab.c:358,1
    - Dst: UnlockCursor
      Src: /src/core/libpromises/dbm_tokyocab.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - db
    - key
    - key_size
    argTypes:
    - DBPriv*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 9
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: DBPrivDelete
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached:
    - Delete
    - UnlockCursor
    - LockCursor
    linkageType: ''
    returnType: bool
    signature: bool DBPrivDelete(DBPriv *db, const void *key, int key_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LockCursor
      Src: /src/core/libpromises/dbm_tokyocab.c:366,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_tokyocab.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - DBPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 376
    functionName: DBPrivOpenCursor
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - LockCursor
    linkageType: ''
    returnType: DBCursorPriv
    signature: DBCursorPriv *DBPrivOpenCursor(DBPriv *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tchdbgetnext3
      Src: /src/core/libpromises/dbm_tokyocab.c:381,1
    - Dst: Delete
      Src: /src/core/libpromises/dbm_tokyocab.c:390,1
    - Dst: free
      Src: /src/core/libpromises/dbm_tokyocab.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - cursor
    - key
    - key_size
    - value
    - value_size
    argTypes:
    - DBCursorPriv*
    - void**
    - int*
    - void**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 9
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: DBPrivAdvanceCursor
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached:
    - tchdbgetnext3
    - free
    - Delete
    linkageType: ''
    returnType: bool
    signature: "bool DBPrivAdvanceCursor(DBCursorPriv *cursor, void **key, int *key_size,\n
      \                    void **value, int *value_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - DBCursorPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: DBPrivDeleteCursorEntry
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DBPrivDeleteCursorEntry(DBCursorPriv *cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Write
      Src: /src/core/libpromises/dbm_tokyocab.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cursor
    - value
    - value_size
    argTypes:
    - DBCursorPriv*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 9
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: DBPrivWriteCursorEntry
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - Write
    linkageType: ''
    returnType: bool
    signature: bool DBPrivWriteCursorEntry(DBCursorPriv *cursor, const void *value,
      int value_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Delete
      Src: /src/core/libpromises/dbm_tokyocab.c:428,1
    - Dst: free
      Src: /src/core/libpromises/dbm_tokyocab.c:431,1
    - Dst: free
      Src: /src/core/libpromises/dbm_tokyocab.c:432,1
    - Dst: UnlockCursor
      Src: /src/core/libpromises/dbm_tokyocab.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - DBCursorPriv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 422
    functionDepth: 9
    functionLinenumber: 422
    functionLinenumberEnd: 436
    functionName: DBPrivCloseCursor
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached:
    - free
    - Delete
    - UnlockCursor
    linkageType: ''
    returnType: void
    signature: void DBPrivCloseCursor(DBCursorPriv *cursor)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/libpromises/dbm_tokyocab.c:455,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_tokyocab.c:458,1
    - Dst: strerror
      Src: /src/core/libpromises/dbm_tokyocab.c:458,1
    - Dst: fseek
      Src: /src/core/libpromises/dbm_tokyocab.c:461,1
    - Dst: fclose
      Src: /src/core/libpromises/dbm_tokyocab.c:463,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_tokyocab.c:464,1
    - Dst: strerror
      Src: /src/core/libpromises/dbm_tokyocab.c:464,1
    - Dst: ftell
      Src: /src/core/libpromises/dbm_tokyocab.c:467,1
    - Dst: fclose
      Src: /src/core/libpromises/dbm_tokyocab.c:470,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_tokyocab.c:471,1
    - Dst: memset
      Src: /src/core/libpromises/dbm_tokyocab.c:475,1
    - Dst: fseek
      Src: /src/core/libpromises/dbm_tokyocab.c:477,1
    - Dst: fclose
      Src: /src/core/libpromises/dbm_tokyocab.c:479,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_tokyocab.c:480,1
    - Dst: strerror
      Src: /src/core/libpromises/dbm_tokyocab.c:480,1
    - Dst: fread
      Src: /src/core/libpromises/dbm_tokyocab.c:483,1
    - Dst: fclose
      Src: /src/core/libpromises/dbm_tokyocab.c:485,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_tokyocab.c:486,1
    - Dst: strerror
      Src: /src/core/libpromises/dbm_tokyocab.c:486,1
    - Dst: fclose
      Src: /src/core/libpromises/dbm_tokyocab.c:488,1
    - Dst: strncmp
      Src: /src/core/libpromises/dbm_tokyocab.c:490,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_tokyocab.c:490,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_tokyocab.c:492,1
    - Dst: memcpy
      Src: /src/core/libpromises/dbm_tokyocab.c:497,1
    - Dst: SWAB64
      Src: /src/core/libpromises/dbm_tokyocab.c:504,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_tokyocab.c:507,1
    - Dst: StringFormat
      Src: /src/core/libpromises/dbm_tokyocab.c:511,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - dbpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 514
    functionName: DBPrivDiagnose
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strncmp
    - ftell
    - fopen
    - strlen
    - strerror
    - SWAB64
    - fread
    - fseek
    - StringFormat
    - fclose
    - memset
    linkageType: ''
    returnType: char
    signature: char *DBPrivDiagnose(const char *dbpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 452
    functionName: SWAB64
    functionSourceFile: /src/core/libpromises/dbm_tokyocab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAB64(num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VarRefIsQualified
      Src: /src/core/libpromises/var_expressions.c:41,1
    - Dst: strlen
      Src: /src/core/libpromises/var_expressions.c:57,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - ref
    argTypes:
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 95
    functionName: VarRefHash
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached:
    - VarRefIsQualified
    - strlen
    linkageType: ''
    returnType: unsigned
    signature: unsigned VarRefHash(const VarRef *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefHash
      Src: /src/core/libpromises/var_expressions.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - ARG_UNUSED
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: VarRefHash_untyped
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached:
    - VarRefHash
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int VarRefHash_untyped(const void *ref,\n                                unsigned
      int seed ARG_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ns
    - scope
    - lval
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: VarRefConst
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: VarRef
    signature: VarRef VarRefConst(const char *ns, const char *scope, const char *lval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/var_expressions.c:118,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:120,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:121,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:122,1
    - Dst: xmalloc
      Src: /src/core/libpromises/var_expressions.c:127,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ref
    argTypes:
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 139
    functionName: VarRefCopy
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 5
    functionsReached:
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: VarRef
    signature: VarRef *VarRefCopy(const VarRef *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/var_expressions.c:143,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:146,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:147,1
    - Dst: xmalloc
      Src: /src/core/libpromises/var_expressions.c:152,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ref
    argTypes:
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: VarRefCopyLocalized
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: VarRef
    signature: VarRef *VarRefCopyLocalized(const VarRef *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/var_expressions.c:168,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:170,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:171,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ref
    argTypes:
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: VarRefCopyIndexless
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 2
    functionsReached:
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: VarRef
    signature: VarRef *VarRefCopyIndexless(const VarRef *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - var_string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 197
    functionName: IndexBracketsBalance
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IndexBracketsBalance(const char *var_string)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - var_string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 222
    functionName: IndexCount
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t IndexCount(const char *var_string)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/var_expressions.c:228,1
    - Dst: strchr
      Src: /src/core/libpromises/var_expressions.c:231,1
    - Dst: strchr
      Src: /src/core/libpromises/var_expressions.c:233,1
    - Dst: xstrndup
      Src: /src/core/libpromises/var_expressions.c:236,1
    - Dst: strchr
      Src: /src/core/libpromises/var_expressions.c:246,1
    - Dst: xstrndup
      Src: /src/core/libpromises/var_expressions.c:251,1
    - Dst: xstrndup
      Src: /src/core/libpromises/var_expressions.c:265,1
    - Dst: IndexBracketsBalance
      Src: /src/core/libpromises/var_expressions.c:267,1
    - Dst: Log
      Src: /src/core/libpromises/var_expressions.c:269,1
    - Dst: IndexCount
      Src: /src/core/libpromises/var_expressions.c:273,1
    - Dst: xmalloc
      Src: /src/core/libpromises/var_expressions.c:274,1
    - Dst: BufferNew
      Src: /src/core/libpromises/var_expressions.c:276,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:294,1
    - Dst: BufferData
      Src: /src/core/libpromises/var_expressions.c:294,1
    - Dst: BufferClear
      Src: /src/core/libpromises/var_expressions.c:295,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/var_expressions.c:300,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/var_expressions.c:302,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:307,1
    - Dst: assert
      Src: /src/core/libpromises/var_expressions.c:310,1
    - Dst: SpecialScopeFromString
      Src: /src/core/libpromises/var_expressions.c:314,1
    - Dst: is_this_not_special
      Src: /src/core/libpromises/var_expressions.c:324,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:325,1
    - Dst: xmalloc
      Src: /src/core/libpromises/var_expressions.c:330,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:332,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:333,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 5
    argNames:
    - qualified_name
    - _ns
    - _scope
    - ns_separator
    - scope_separator
    argTypes:
    - char*
    - char*
    - char*
    - char
    - char
    assertStmts:
    - condition: (qualified_name)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/core/libpromises/var_expressions.c
    - condition: (lval)
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/core/libpromises/var_expressions.c
    constantsTouched: []
    func_position:
      end: 339
      start: 224
    functionDepth: 8
    functionLinenumber: 224
    functionLinenumberEnd: 339
    functionName: VarRefParseFromNamespaceAndScope
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 1
    functionsReached:
    - BufferData
    - BufferAppend
    - BufferDestroy
    - assert
    - IndexCount
    - SpecialScopeFromString
    - strchr
    - xmalloc
    - Log
    - BufferClear
    - xstrdup
    - is_this_not_special
    - BufferNew
    - free
    - xstrndup
    - IndexBracketsBalance
    linkageType: ''
    returnType: VarRef
    signature: "VarRef *VarRefParseFromNamespaceAndScope(const char *qualified_name,\n
      \                                        const char *_ns, const char *_scope,\n
      \                                        char ns_separator, char scope_separator)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SpecialScopeFromString
      Src: /src/core/libpromises/var_expressions.c:353,1
    - Dst: IsStrIn
      Src: /src/core/libpromises/var_expressions.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - scope
    - lval
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 362
    functionName: is_this_not_special
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 1
    functionsReached:
    - IsStrIn
    - SpecialScopeFromString
    linkageType: ''
    returnType: bool
    signature: bool is_this_not_special(const char *scope, const char *lval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/var_expressions.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - var_ref_string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 9
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: VarRefParse
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 46
    functionsReached:
    - VarRefParseFromNamespaceAndScope
    linkageType: ''
    returnType: VarRef
    signature: VarRef *VarRefParse(const char *var_ref_string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/var_expressions.c:373,1
    - Dst: strchr
      Src: /src/core/libpromises/var_expressions.c:376,1
    - Dst: xstrndup
      Src: /src/core/libpromises/var_expressions.c:379,1
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/var_expressions.c:380,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:381,1
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/var_expressions.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - var_ref_string
    - scope
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 369
    functionDepth: 9
    functionLinenumber: 369
    functionLinenumberEnd: 388
    functionName: VarRefParseFromScope
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 10
    functionsReached:
    - strchr
    - VarRefParseFromNamespaceAndScope
    - free
    - xstrndup
    linkageType: ''
    returnType: VarRef
    signature: VarRef *VarRefParseFromScope(const char *var_ref_string, const char
      *scope)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/var_expressions.c:399,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/var_expressions.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - var_ref_string
    - bundle
    argTypes:
    - char*
    - Bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 10
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: VarRefParseFromBundle
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 9
    functionsReached:
    - VarRefParseFromNamespaceAndScope
    - VarRefParse
    linkageType: ''
    returnType: VarRef
    signature: VarRef *VarRefParseFromBundle(const char *var_ref_string, const Bundle
      *bundle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:413,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:414,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:415,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:420,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:422,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ref
    argTypes:
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 428
    functionName: VarRefDestroy
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 69
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void VarRefDestroy(VarRef *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/var_expressions.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: VarRefDestroy_untyped
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached:
    - VarRefDestroy
    linkageType: ''
    returnType: void
    signature: void VarRefDestroy_untyped(void *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/var_expressions.c:437,1
    - Dst: BufferNew
      Src: /src/core/libpromises/var_expressions.c:439,1
    - Dst: VarRefIsQualified
      Src: /src/core/libpromises/var_expressions.c:440,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/var_expressions.c:444,1
    - Dst: strlen
      Src: /src/core/libpromises/var_expressions.c:444,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/var_expressions.c:445,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/var_expressions.c:446,1
    - Dst: strlen
      Src: /src/core/libpromises/var_expressions.c:446,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/var_expressions.c:447,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/var_expressions.c:450,1
    - Dst: strlen
      Src: /src/core/libpromises/var_expressions.c:450,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/var_expressions.c:454,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/var_expressions.c:455,1
    - Dst: strlen
      Src: /src/core/libpromises/var_expressions.c:455,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/var_expressions.c:456,1
    - Dst: BufferClose
      Src: /src/core/libpromises/var_expressions.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ref
    - qualified
    argTypes:
    - VarRef*
    - bool
    assertStmts:
    - condition: (ref->lval)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/core/libpromises/var_expressions.c
    constantsTouched: []
    func_position:
      end: 460
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 460
    functionName: VarRefToString
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 12
    functionsReached:
    - BufferAppend
    - VarRefIsQualified
    - strlen
    - assert
    - BufferClose
    - BufferNew
    linkageType: ''
    returnType: char
    signature: char *VarRefToString(const VarRef *ref, bool qualified)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VarRefToString
      Src: /src/core/libpromises/var_expressions.c:464,1
    - Dst: StringFormat
      Src: /src/core/libpromises/var_expressions.c:474,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:475,1
    - Dst: StringFormat
      Src: /src/core/libpromises/var_expressions.c:480,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ref
    argTypes:
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 462
    functionDepth: 4
    functionLinenumber: 462
    functionLinenumberEnd: 485
    functionName: VarRefMangle
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached:
    - free
    - StringFormat
    - VarRefToString
    linkageType: ''
    returnType: char
    signature: char *VarRefMangle(const VarRef *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/var_expressions.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mangled_var_ref
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 487
    functionDepth: 9
    functionLinenumber: 487
    functionLinenumberEnd: 491
    functionName: VarRefDeMangle
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached:
    - VarRefParseFromNamespaceAndScope
    linkageType: ''
    returnType: VarRef
    signature: VarRef *VarRefDeMangle(const char *mangled_var_ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringEndsWith
      Src: /src/core/libpromises/var_expressions.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: VarRefIsMeta
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached:
    - StringEndsWith
    linkageType: ''
    returnType: bool
    signature: bool VarRefIsMeta(VarRef *ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VarRefIsMeta
      Src: /src/core/libpromises/var_expressions.c:502,1
    - Dst: StringConcatenate
      Src: /src/core/libpromises/var_expressions.c:504,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:505,1
    - Dst: VarRefIsMeta
      Src: /src/core/libpromises/var_expressions.c:511,1
    - Dst: strlen
      Src: /src/core/libpromises/var_expressions.c:514,1
    - Dst: memcpy
      Src: /src/core/libpromises/var_expressions.c:515,1
    - Dst: StringSubstring
      Src: /src/core/libpromises/var_expressions.c:515,1
    - Dst: strlen
      Src: /src/core/libpromises/var_expressions.c:515,1
    - Dst: strlen
      Src: /src/core/libpromises/var_expressions.c:515,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ref
    - enabled
    argTypes:
    - VarRef*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 519
    functionName: VarRefSetMeta
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 2
    functionsReached:
    - memcpy
    - strlen
    - StringSubstring
    - StringConcatenate
    - VarRefIsMeta
    - free
    linkageType: ''
    returnType: void
    signature: void VarRefSetMeta(VarRef *ref, bool enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: VarRefIsQualified
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VarRefIsQualified(const VarRef *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/var_expressions.c:528,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:530,1
    - Dst: free
      Src: /src/core/libpromises/var_expressions.c:533,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:536,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ref
    - ns
    - scope
    argTypes:
    - VarRef*
    - char*
    - char*
    assertStmts:
    - condition: (scope)
      pos:
        line_end: 527
        line_start: 527
        source_file: /src/core/libpromises/var_expressions.c
    constantsTouched: []
    func_position:
      end: 538
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 538
    functionName: VarRefQualify
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 5
    functionsReached:
    - xstrdup
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void VarRefQualify(VarRef *ref, const char *ns, const char *scope)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/var_expressions.c:544,1
    - Dst: xrealloc
      Src: /src/core/libpromises/var_expressions.c:545,1
    - Dst: assert
      Src: /src/core/libpromises/var_expressions.c:549,1
    - Dst: xmalloc
      Src: /src/core/libpromises/var_expressions.c:550,1
    - Dst: xstrdup
      Src: /src/core/libpromises/var_expressions.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ref
    - index
    argTypes:
    - VarRef*
    - char*
    assertStmts:
    - condition: (ref->num_indices > 0)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/core/libpromises/var_expressions.c
    - condition: (ref->num_indices == 0)
      pos:
        line_end: 548
        line_start: 548
        source_file: /src/core/libpromises/var_expressions.c
    constantsTouched: []
    func_position:
      end: 555
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 555
    functionName: VarRefAddIndex
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached:
    - assert
    - xmalloc
    - xrealloc
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void VarRefAddIndex(VarRef *ref, const char *index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/var_expressions.c:559,1
    - Dst: strcmp
      Src: /src/core/libpromises/var_expressions.c:565,1
    - Dst: NULLStringToEmpty
      Src: /src/core/libpromises/var_expressions.c:565,1
    - Dst: NULLStringToEmpty
      Src: /src/core/libpromises/var_expressions.c:565,1
    - Dst: strcmp
      Src: /src/core/libpromises/var_expressions.c:574,1
    - Dst: strcmp
      Src: /src/core/libpromises/var_expressions.c:588,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - VarRef*
    - VarRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 596
    functionName: VarRefCompare
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 1
    functionsReached:
    - strcmp
    - NULLStringToEmpty
    linkageType: ''
    returnType: int
    signature: int VarRefCompare(const VarRef *a, const VarRef *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VarRefCompare
      Src: /src/core/libpromises/var_expressions.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: VarRefEqual_untyped
    functionSourceFile: /src/core/libpromises/var_expressions.c
    functionUses: 0
    functionsReached:
    - VarRefCompare
    linkageType: ''
    returnType: bool
    signature: bool VarRefEqual_untyped(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - destination
    - source
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 12
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: VerifyLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 0
    functionsReached:
    - RecordFailure
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyLink(EvalContext *ctx, char *destination, const
      char *source, const Attributes *attr, const Promise *pp)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_links.c:58,1
    - Dst: assert
      Src: /src/core/libpromises/files_links.c:60,1
    - Dst: memset
      Src: /src/core/libpromises/files_links.c:65,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_links.c:67,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_links.c:71,1
    - Dst: strlcpy
      Src: /src/core/libpromises/files_links.c:75,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:80,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:81,1
    - Dst: AbsLinkPath
      Src: /src/core/libpromises/files_links.c:81,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:82,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:86,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:91,1
    - Dst: PrepareChangesChroot
      Src: /src/core/libpromises/files_links.c:93,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:97,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:99,1
    - Dst: stat
      Src: /src/core/libpromises/files_links.c:104,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:106,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:112,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:113,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:118,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:120,1
    - Dst: KillGhostLink
      Src: /src/core/libpromises/files_links.c:126,1
    - Dst: memset
      Src: /src/core/libpromises/files_links.c:130,1
    - Dst: readlink
      Src: /src/core/libpromises/files_links.c:132,1
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_links.c:134,1
    - Dst: MakeParentDirectoryForPromise
      Src: /src/core/libpromises/files_links.c:140,1
    - Dst: RecordChange
      Src: /src/core/libpromises/files_links.c:146,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:147,1
    - Dst: MoveObstruction
      Src: /src/core/libpromises/files_links.c:149,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:151,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:154,1
    - Dst: MakeLink
      Src: /src/core/libpromises/files_links.c:158,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:160,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:161,1
    - Dst: StringEqual
      Src: /src/core/libpromises/files_links.c:169,1
    - Dst: StringEqual
      Src: /src/core/libpromises/files_links.c:169,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:173,1
    - Dst: StringEqual
      Src: /src/core/libpromises/files_links.c:175,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:175,1
    - Dst: RecordNoChange
      Src: /src/core/libpromises/files_links.c:179,1
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_links.c:185,1
    - Dst: unlink
      Src: /src/core/libpromises/files_links.c:187,1
    - Dst: ToChangesPath
      Src: /src/core/libpromises/files_links.c:187,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:189,1
    - Dst: RecordChange
      Src: /src/core/libpromises/files_links.c:193,1
    - Dst: MakeLink
      Src: /src/core/libpromises/files_links.c:196,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:206,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 85
    argCount: 5
    argNames:
    - ctx
    - destination
    - source
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr->link.link_type != FILE_LINK_TYPE_HARDLINK)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/core/libpromises/files_links.c
    - condition: (attr != NULL)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/libpromises/files_links.c
    constantsTouched: []
    func_position:
      end: 212
      start: 56
    functionDepth: 12
    functionLinenumber: 56
    functionLinenumberEnd: 212
    functionName: VerifyLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 0
    functionsReached:
    - IsAbsoluteFileName
    - Log
    - strlcpy
    - StringEqual
    - snprintf
    - RecordChange
    - unlink
    - MoveObstruction
    - KillGhostLink
    - PrepareChangesChroot
    - RecordNoChange
    - strcpy
    - memset
    - MakeLink
    - readlink
    - assert
    - AbsLinkPath
    - ChrootChanges
    - stat
    - MakeParentDirectoryForPromise
    - RecordFailure
    - ToChangesChroot
    - ToChangesPath
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyLink(EvalContext *ctx, char *destination, const
      char *source, const Attributes *attr, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - destination
    - source
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 12
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: VerifyAbsoluteLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 0
    functionsReached:
    - RecordFailure
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyAbsoluteLink(EvalContext *ctx, char *destination,
      const char *source, const Attributes *attr, const Promise *pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_links.c:227,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:235,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/files_links.c:236,1
    - Dst: JoinPaths
      Src: /src/core/libpromises/files_links.c:237,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:241,1
    - Dst: CompressPath
      Src: /src/core/libpromises/files_links.c:244,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:252,1
    - Dst: lstat
      Src: /src/core/libpromises/files_links.c:252,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:252,1
    - Dst: ExpandLinks
      Src: /src/core/libpromises/files_links.c:256,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:256,1
    - Dst: strlcpy
      Src: /src/core/libpromises/files_links.c:257,1
    - Dst: ToNormalRoot
      Src: /src/core/libpromises/files_links.c:257,1
    - Dst: ExpandLinks
      Src: /src/core/libpromises/files_links.c:261,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:265,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:269,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/files_links.c:270,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:276,1
    - Dst: CompressPath
      Src: /src/core/libpromises/files_links.c:279,1
    - Dst: VerifyLink
      Src: /src/core/libpromises/files_links.c:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 5
    argNames:
    - ctx
    - destination
    - source
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/core/libpromises/files_links.c
    constantsTouched: []
    func_position:
      end: 282
      start: 225
    functionDepth: 13
    functionLinenumber: 225
    functionLinenumberEnd: 282
    functionName: VerifyAbsoluteLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 0
    functionsReached:
    - ChrootChanges
    - ExpandLinks
    - assert
    - CompressPath
    - PromiseRef
    - RecordFailure
    - VerifyLink
    - Log
    - lstat
    - JoinPaths
    - ToChangesChroot
    - strcpy
    - strlcpy
    - ToNormalRoot
    - ChopLastNode
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyAbsoluteLink(EvalContext *ctx, char *destination,
      const char *source, const Attributes *attr, const Promise *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VerifyLink
      Src: /src/core/libpromises/files_links.c:295,1
    - Dst: CompressPath
      Src: /src/core/libpromises/files_links.c:298,1
    - Dst: RecordInterruption
      Src: /src/core/libpromises/files_links.c:300,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_links.c:307,1
    - Dst: RecordInterruption
      Src: /src/core/libpromises/files_links.c:309,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_links.c:320,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_links.c:320,1
    - Dst: IsFileSep
      Src: /src/core/libpromises/files_links.c:330,1
    - Dst: memset
      Src: /src/core/libpromises/files_links.c:336,1
    - Dst: strcat
      Src: /src/core/libpromises/files_links.c:338,1
    - Dst: strcat
      Src: /src/core/libpromises/files_links.c:339,1
    - Dst: PathAppend
      Src: /src/core/libpromises/files_links.c:345,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:347,1
    - Dst: PathAppend
      Src: /src/core/libpromises/files_links.c:355,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:357,1
    - Dst: VerifyLink
      Src: /src/core/libpromises/files_links.c:364,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 5
    argNames:
    - ctx
    - destination
    - source
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 287
    functionDepth: 13
    functionLinenumber: 287
    functionLinenumberEnd: 365
    functionName: VerifyRelativeLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 0
    functionsReached:
    - RecordInterruption
    - IsFileSep
    - CompressPath
    - RecordFailure
    - IsAbsoluteFileName
    - memset
    - strcat
    - strcmp
    - PathAppend
    - VerifyLink
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyRelativeLink(EvalContext *ctx, char *destination,
      const char *source, const Attributes *attr, const Promise *pp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/files_links.c:374,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_links.c:376,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_links.c:380,1
    - Dst: strlcpy
      Src: /src/core/libpromises/files_links.c:384,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:389,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:390,1
    - Dst: AbsLinkPath
      Src: /src/core/libpromises/files_links.c:390,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:391,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:395,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:400,1
    - Dst: PrepareChangesChroot
      Src: /src/core/libpromises/files_links.c:402,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:406,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:408,1
    - Dst: stat
      Src: /src/core/libpromises/files_links.c:411,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:413,1
    - Dst: S_ISREG
      Src: /src/core/libpromises/files_links.c:416,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:418,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:423,1
    - Dst: stat
      Src: /src/core/libpromises/files_links.c:425,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:425,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:425,1
    - Dst: MakeHardLink
      Src: /src/core/libpromises/files_links.c:428,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:438,1
    - Dst: RecordNoChange
      Src: /src/core/libpromises/files_links.c:445,1
    - Dst: RecordNoChange
      Src: /src/core/libpromises/files_links.c:453,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:459,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:463,1
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_links.c:466,1
    - Dst: MoveObstruction
      Src: /src/core/libpromises/files_links.c:471,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:473,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:476,1
    - Dst: MakeHardLink
      Src: /src/core/libpromises/files_links.c:480,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 5
    argNames:
    - ctx
    - destination
    - source
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 369
    functionDepth: 12
    functionLinenumber: 369
    functionLinenumberEnd: 482
    functionName: VerifyHardLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 0
    functionsReached:
    - ChrootChanges
    - stat
    - snprintf
    - MoveObstruction
    - MakeHardLink
    - PromiseResultUpdate
    - RecordFailure
    - IsAbsoluteFileName
    - AbsLinkPath
    - Log
    - S_ISREG
    - PrepareChangesChroot
    - ToChangesChroot
    - RecordNoChange
    - strcpy
    - strlcpy
    - MakingChanges
    - memset
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyHardLink(EvalContext *ctx, char *destination, const
      char *source, const Attributes *attr, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:492,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - name
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 12
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: KillGhostLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 1
    functionsReached:
    - PromiseResultUpdate
    - RecordFailure
    linkageType: ''
    returnType: bool
    signature: bool KillGhostLink(EvalContext *ctx, const char *name, const Attributes
      *attr, const Promise *pp, PromiseResult *result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/files_links.c:506,1
    - Dst: memset
      Src: /src/core/libpromises/files_links.c:507,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:510,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:512,1
    - Dst: readlink
      Src: /src/core/libpromises/files_links.c:515,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:517,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_links.c:521,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:523,1
    - Dst: strlen
      Src: /src/core/libpromises/files_links.c:525,1
    - Dst: strcat
      Src: /src/core/libpromises/files_links.c:531,1
    - Dst: CompressPath
      Src: /src/core/libpromises/files_links.c:532,1
    - Dst: stat
      Src: /src/core/libpromises/files_links.c:534,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:538,1
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_links.c:542,1
    - Dst: unlink
      Src: /src/core/libpromises/files_links.c:544,1
    - Dst: RecordChange
      Src: /src/core/libpromises/files_links.c:545,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:546,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - ctx
    - name
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 499
    functionDepth: 12
    functionLinenumber: 499
    functionLinenumberEnd: 557
    functionName: KillGhostLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 1
    functionsReached:
    - ChrootChanges
    - stat
    - readlink
    - unlink
    - RecordChange
    - strlen
    - CompressPath
    - IsAbsoluteFileName
    - strcat
    - Log
    - ToChangesChroot
    - strcpy
    - PromiseResultUpdate
    - MakingChanges
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool KillGhostLink(EvalContext *ctx, const char *name, const Attributes
      *attr, const Promise *pp,\n                   PromiseResult *result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_links.c:566,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:570,1
    - Dst: xstrdup
      Src: /src/core/libpromises/files_links.c:574,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:574,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:578,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:580,1
    - Dst: symlink
      Src: /src/core/libpromises/files_links.c:583,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:585,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_links.c:586,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:587,1
    - Dst: free
      Src: /src/core/libpromises/files_links.c:588,1
    - Dst: RecordChange
      Src: /src/core/libpromises/files_links.c:593,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:594,1
    - Dst: free
      Src: /src/core/libpromises/files_links.c:595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - ctx
    - from
    - to
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 563
    functionDepth: 12
    functionLinenumber: 563
    functionLinenumberEnd: 603
    functionName: MakeLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ChrootChanges
    - RecordChange
    - RecordFailure
    - xstrdup
    - ToChangesChroot
    - free
    - PromiseResultUpdate
    - MakingChanges
    - symlink
    linkageType: ''
    returnType: bool
    signature: "bool MakeLink(EvalContext *ctx, const char *from, const char *to,
      const Attributes *attr, const Promise *pp,\n                     PromiseResult
      *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:613,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ctx
    - from
    - to
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 610
    functionDepth: 12
    functionLinenumber: 610
    functionLinenumberEnd: 618
    functionName: MakeHardLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 1
    functionsReached:
    - PromiseResultUpdate
    - RecordFailure
    linkageType: ''
    returnType: bool
    signature: "bool MakeHardLink(EvalContext *ctx, const char *from, const char *to,
      const Attributes *attr, const Promise *pp,\n                  PromiseResult
      *result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_links.c:625,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:629,1
    - Dst: xstrdup
      Src: /src/core/libpromises/files_links.c:633,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:633,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_links.c:637,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_links.c:639,1
    - Dst: link
      Src: /src/core/libpromises/files_links.c:642,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_links.c:644,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_links.c:645,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:646,1
    - Dst: RecordChange
      Src: /src/core/libpromises/files_links.c:651,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_links.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - ctx
    - from
    - to
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 622
    functionDepth: 12
    functionLinenumber: 622
    functionLinenumberEnd: 660
    functionName: MakeHardLink
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ChrootChanges
    - RecordChange
    - RecordFailure
    - xstrdup
    - ToChangesChroot
    - link
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool MakeHardLink(EvalContext *ctx, const char *from, const char *to,
      const Attributes *attr, const Promise *pp,\n                  PromiseResult
      *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dest
    - from
    - level
    - max_level
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 671
    functionDepth: 8
    functionLinenumber: 671
    functionLinenumberEnd: 675
    functionName: ExpandLinks
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 2
    functionsReached:
    - Log
    linkageType: ''
    returnType: bool
    signature: bool ExpandLinks(char *dest, const char *from, int level, int max_level)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/files_links.c:686,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:690,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:696,1
    - Dst: sscanf
      Src: /src/core/libpromises/files_links.c:710,1
    - Dst: strlen
      Src: /src/core/libpromises/files_links.c:711,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_links.c:718,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_links.c:723,1
    - Dst: strcat
      Src: /src/core/libpromises/files_links.c:725,1
    - Dst: strcat
      Src: /src/core/libpromises/files_links.c:730,1
    - Dst: strcat
      Src: /src/core/libpromises/files_links.c:733,1
    - Dst: lstat
      Src: /src/core/libpromises/files_links.c:735,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:737,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_links.c:737,1
    - Dst: S_ISLNK
      Src: /src/core/libpromises/files_links.c:741,1
    - Dst: memset
      Src: /src/core/libpromises/files_links.c:743,1
    - Dst: readlink
      Src: /src/core/libpromises/files_links.c:745,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:747,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_links.c:747,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/files_links.c:754,1
    - Dst: AddSlash
      Src: /src/core/libpromises/files_links.c:755,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_links.c:758,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:761,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_links.c:768,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:770,1
    - Dst: DeleteSlash
      Src: /src/core/libpromises/files_links.c:771,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_links.c:773,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:775,1
    - Dst: ExpandLinks
      Src: /src/core/libpromises/files_links.c:779,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/files_links.c:786,1
    - Dst: AddSlash
      Src: /src/core/libpromises/files_links.c:787,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_links.c:790,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:793,1
    - Dst: DeleteSlash
      Src: /src/core/libpromises/files_links.c:799,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_links.c:801,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:803,1
    - Dst: memset
      Src: /src/core/libpromises/files_links.c:807,1
    - Dst: ExpandLinks
      Src: /src/core/libpromises/files_links.c:809,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 4
    argNames:
    - dest
    - from
    - level
    - max_level
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 679
    functionDepth: 8
    functionLinenumber: 679
    functionLinenumberEnd: 819
    functionName: ExpandLinks
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 3
    functionsReached:
    - GetErrorStr
    - ExpandLinks
    - strlcat
    - readlink
    - DeleteSlash
    - S_ISLNK
    - strlen
    - ChopLastNode
    - IsAbsoluteFileName
    - sscanf
    - strcat
    - Log
    - strcmp
    - lstat
    - AddSlash
    - strcpy
    - memset
    linkageType: ''
    returnType: bool
    signature: bool ExpandLinks(char *dest, const char *from, int level, int max_level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IsAbsoluteFileName
      Src: /src/core/libpromises/files_links.c:831,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/files_links.c:833,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:836,1
    - Dst: strncmp
      Src: /src/core/libpromises/files_links.c:841,1
    - Dst: strncmp
      Src: /src/core/libpromises/files_links.c:848,1
    - Dst: ChopLastNode
      Src: /src/core/libpromises/files_links.c:859,1
    - Dst: strlen
      Src: /src/core/libpromises/files_links.c:863,1
    - Dst: strcpy
      Src: /src/core/libpromises/files_links.c:865,1
    - Dst: AddSlash
      Src: /src/core/libpromises/files_links.c:869,1
    - Dst: strcat
      Src: /src/core/libpromises/files_links.c:872,1
    - Dst: Log
      Src: /src/core/libpromises/files_links.c:873,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - from
    - relto
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 824
    functionDepth: 8
    functionLinenumber: 824
    functionLinenumberEnd: 875
    functionName: AbsLinkPath
    functionSourceFile: /src/core/libpromises/files_links.c
    functionUses: 2
    functionsReached:
    - strncmp
    - strlen
    - IsAbsoluteFileName
    - strcat
    - Log
    - ProgrammingError
    - AddSlash
    - strcpy
    - ChopLastNode
    linkageType: ''
    returnType: char
    signature: char *AbsLinkPath(const char *from, const char *relto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/feature.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - feature
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: KnownFeature
    functionSourceFile: /src/core/libpromises/feature.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int KnownFeature(const char *feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libpromises/feature.c:53,1
    - Dst: BufferPrintf
      Src: /src/core/libpromises/feature.c:56,1
    - Dst: CreateHardClassesFromCanonification
      Src: /src/core/libpromises/feature.c:57,1
    - Dst: BufferData
      Src: /src/core/libpromises/feature.c:57,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/feature.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - tags
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: CreateHardClassesFromFeatures
    functionSourceFile: /src/core/libpromises/feature.c
    functionUses: 1
    functionsReached:
    - BufferData
    - BufferDestroy
    - CreateHardClassesFromCanonification
    - BufferPrintf
    - BufferNew
    linkageType: ''
    returnType: void
    signature: void CreateHardClassesFromFeatures(EvalContext *ctx, char *tags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/core/libpromises/crypto.c:72,1
    - Dst: ERR_get_error
      Src: /src/core/libpromises/crypto.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: CryptoLastErrorString
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 2
    functionsReached:
    - ERR_get_error
    - ERR_reason_error_string
    linkageType: ''
    returnType: char
    signature: char *CryptoLastErrorString()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetupOpenSSLThreadLocks
      Src: /src/core/libpromises/crypto.c:80,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/core/libpromises/crypto.c:81,1
    - Dst: OpenSSL_add_all_digests
      Src: /src/core/libpromises/crypto.c:82,1
    - Dst: ERR_load_crypto_strings
      Src: /src/core/libpromises/crypto.c:83,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/core/libpromises/crypto.c:89,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/core/libpromises/crypto.c:90,1
    - Dst: RandomSeed
      Src: /src/core/libpromises/crypto.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 96
    functionName: CryptoInitialize
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 6
    functionsReached:
    - RandomSeed
    - OSSL_PROVIDER_load
    - SetupOpenSSLThreadLocks
    - ERR_load_crypto_strings
    - OpenSSL_add_all_digests
    - OpenSSL_add_all_algorithms
    linkageType: ''
    returnType: void
    signature: void CryptoInitialize()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:103,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/crypto.c:104,1
    - Dst: access
      Src: /src/core/libpromises/crypto.c:110,1
    - Dst: RAND_write_file
      Src: /src/core/libpromises/crypto.c:110,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:112,1
    - Dst: unlink
      Src: /src/core/libpromises/crypto.c:114,1
    - Dst: chmod
      Src: /src/core/libpromises/crypto.c:117,1
    - Dst: EVP_cleanup
      Src: /src/core/libpromises/crypto.c:118,1
    - Dst: CleanupOpenSSLThreadLocks
      Src: /src/core/libpromises/crypto.c:119,1
    - Dst: ERR_free_strings
      Src: /src/core/libpromises/crypto.c:120,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/core/libpromises/crypto.c:125,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/core/libpromises/crypto.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 98
    functionDepth: 8
    functionLinenumber: 98
    functionLinenumberEnd: 137
    functionName: CryptoDeInitialize
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - access
    - CleanupOpenSSLThreadLocks
    - snprintf
    - unlink
    - RAND_write_file
    - ERR_free_strings
    - Log
    - EVP_cleanup
    - chmod
    - GetWorkDir
    - OSSL_PROVIDER_unload
    linkageType: ''
    returnType: void
    signature: void CryptoDeInitialize()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/core/libpromises/crypto.c:144,1
    - Dst: strlen
      Src: /src/core/libpromises/crypto.c:145,1
    - Dst: strlen
      Src: /src/core/libpromises/crypto.c:145,1
    - Dst: time
      Src: /src/core/libpromises/crypto.c:147,1
    - Dst: srand
      Src: /src/core/libpromises/crypto.c:149,1
    - Dst: srand48
      Src: /src/core/libpromises/crypto.c:151,1
    - Dst: RAND_poll
      Src: /src/core/libpromises/crypto.c:157,1
    - Dst: RAND_screen
      Src: /src/core/libpromises/crypto.c:159,1
    - Dst: RAND_status
      Src: /src/core/libpromises/crypto.c:162,1
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:166,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/crypto.c:167,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:168,1
    - Dst: RAND_load_file
      Src: /src/core/libpromises/crypto.c:171,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:173,1
    - Dst: unlink
      Src: /src/core/libpromises/crypto.c:175,1
    - Dst: unlink
      Src: /src/core/libpromises/crypto.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 139
    functionDepth: 8
    functionLinenumber: 139
    functionLinenumberEnd: 181
    functionName: RandomSeed
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - srand48
    - snprintf
    - getpid
    - strlen
    - unlink
    - RAND_status
    - srand
    - Log
    - RAND_screen
    - RAND_poll
    - RAND_load_file
    - GetWorkDir
    - time
    linkageType: ''
    returnType: void
    signature: void RandomSeed(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PrivateKeyFile
      Src: /src/core/libpromises/crypto.c:204,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/crypto.c:204,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/crypto.c:206,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:210,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/crypto.c:212,1
    - Dst: free
      Src: /src/core/libpromises/crypto.c:213,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/libpromises/crypto.c:225,1
    - Dst: PEM_read_RSAPrivateKey
      Src: /src/core/libpromises/crypto.c:229,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:232,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libpromises/crypto.c:234,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:236,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:240,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:241,1
    - Dst: free
      Src: /src/core/libpromises/crypto.c:242,1
    - Dst: PublicKeyFile
      Src: /src/core/libpromises/crypto.c:249,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/crypto.c:249,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/crypto.c:251,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:255,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/crypto.c:257,1
    - Dst: free
      Src: /src/core/libpromises/crypto.c:258,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/libpromises/crypto.c:270,1
    - Dst: PEM_read_RSAPublicKey
      Src: /src/core/libpromises/crypto.c:272,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:275,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libpromises/crypto.c:277,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:278,1
    - Dst: free
      Src: /src/core/libpromises/crypto.c:279,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:283,1
    - Dst: free
      Src: /src/core/libpromises/crypto.c:284,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:285,1
    - Dst: RSA_get0_key
      Src: /src/core/libpromises/crypto.c:291,1
    - Dst: BN_num_bits
      Src: /src/core/libpromises/crypto.c:292,1
    - Dst: BN_is_odd
      Src: /src/core/libpromises/crypto.c:292,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:294,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 4
    argNames:
    - priv_key_path
    - pub_key_path
    - priv_key
    - pub_key
    argTypes:
    - char*
    - char*
    - RSA**
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 196
    functionDepth: 8
    functionLinenumber: 196
    functionLinenumberEnd: 300
    functionName: LoadSecretKeys
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - DESTROY_AND_NULL
    - PEM_read_RSAPrivateKey
    - CryptoLastErrorString
    - PublicKeyFile
    - safe_fopen
    - BN_num_bits
    - RSA_get0_key
    - Log
    - PEM_read_RSAPublicKey
    - free
    - fclose
    - BN_is_odd
    - PrivateKeyFile
    - GetWorkDir
    linkageType: ''
    returnType: bool
    signature: "bool LoadSecretKeys(const char *const priv_key_path,\n                    const
      char *const pub_key_path,\n                    RSA **priv_key, RSA **pub_key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetAmPolicyHub
      Src: /src/core/libpromises/crypto.c:304,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/crypto.c:307,1
    - Dst: HashPubKey
      Src: /src/core/libpromises/crypto.c:312,1
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:313,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/crypto.c:316,1
    - Dst: MapName
      Src: /src/core/libpromises/crypto.c:318,1
    - Dst: stat
      Src: /src/core/libpromises/crypto.c:322,1
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:325,1
    - Dst: MapName
      Src: /src/core/libpromises/crypto.c:326,1
    - Dst: LinkOrCopy
      Src: /src/core/libpromises/crypto.c:329,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:331,1
    - Dst: LastSaw
      Src: /src/core/libpromises/crypto.c:336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - policy_server
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 302
    functionDepth: 10
    functionLinenumber: 302
    functionLinenumberEnd: 340
    functionName: PolicyHubUpdateKeys
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - stat
    - LastSaw
    - snprintf
    - GetAmPolicyHub
    - MapName
    - HashPrintSafe
    - HashPubKey
    - Log
    - LinkOrCopy
    - GetWorkDir
    linkageType: ''
    returnType: void
    signature: void PolicyHubUpdateKeys(const char *policy_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Address2Hostkey
      Src: /src/core/libpromises/crypto.c:354,1
    - Dst: HavePublicKey
      Src: /src/core/libpromises/crypto.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - username
    - ipaddress
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 349
    functionDepth: 10
    functionLinenumber: 349
    functionLinenumberEnd: 360
    functionName: HavePublicKeyByIP
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 0
    functionsReached:
    - HavePublicKey
    - Address2Hostkey
    linkageType: ''
    returnType: RSA
    signature: RSA *HavePublicKeyByIP(const char *username, const char *ipaddress)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetWorkDir
      Src: /src/core/libpromises/crypto.c:375,1
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:377,1
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:379,1
    - Dst: MapName
      Src: /src/core/libpromises/crypto.c:380,1
    - Dst: stat
      Src: /src/core/libpromises/crypto.c:382,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:384,1
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:386,1
    - Dst: MapName
      Src: /src/core/libpromises/crypto.c:388,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:389,1
    - Dst: stat
      Src: /src/core/libpromises/crypto.c:391,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:393,1
    - Dst: strlen
      Src: /src/core/libpromises/crypto.c:397,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:399,1
    - Dst: rename
      Src: /src/core/libpromises/crypto.c:401,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:403,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/crypto.c:403,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:411,1
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:414,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/crypto.c:418,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:421,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/crypto.c:422,1
    - Dst: PEM_read_RSAPublicKey
      Src: /src/core/libpromises/crypto.c:426,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:429,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libpromises/crypto.c:431,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:432,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:436,1
    - Dst: RSA_get0_key
      Src: /src/core/libpromises/crypto.c:440,1
    - Dst: BN_num_bits
      Src: /src/core/libpromises/crypto.c:441,1
    - Dst: BN_is_odd
      Src: /src/core/libpromises/crypto.c:441,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:443,1
    - Dst: RSA_free
      Src: /src/core/libpromises/crypto.c:445,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - username
    - ipaddress
    - digest
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 370
    functionDepth: 8
    functionLinenumber: 370
    functionLinenumberEnd: 451
    functionName: HavePublicKey
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - stat
    - snprintf
    - strlen
    - MapName
    - CryptoLastErrorString
    - safe_fopen
    - BN_num_bits
    - RSA_get0_key
    - Log
    - PEM_read_RSAPublicKey
    - fclose
    - BN_is_odd
    - RSA_free
    - GetWorkDir
    - rename
    linkageType: ''
    returnType: RSA
    signature: RSA *HavePublicKey(const char *username, const char *ipaddress, const
      char *digest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:461,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:464,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/crypto.c:464,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:469,1
    - Dst: snprintf
      Src: /src/core/libpromises/crypto.c:474,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/crypto.c:475,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:478,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/crypto.c:478,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:483,1
    - Dst: MapName
      Src: /src/core/libpromises/crypto.c:487,1
    - Dst: stat
      Src: /src/core/libpromises/crypto.c:488,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:490,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:496,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libpromises/crypto.c:498,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:501,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/crypto.c:501,1
    - Dst: PEM_write_RSAPublicKey
      Src: /src/core/libpromises/crypto.c:505,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:507,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libpromises/crypto.c:509,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:510,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:514,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - user
    - digest
    - key
    argTypes:
    - char*
    - char*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 455
    functionDepth: 10
    functionLinenumber: 455
    functionLinenumberEnd: 516
    functionName: SavePublicKey
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - stat
    - snprintf
    - MapName
    - CryptoLastErrorString
    - safe_fopen_create_perms
    - PEM_write_RSAPublicKey
    - Log
    - fclose
    - GetWorkDir
    linkageType: ''
    returnType: bool
    signature: bool SavePublicKey(const char *user, const char *digest, const RSA
      *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libpromises/crypto.c:524,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:527,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/crypto.c:527,1
    - Dst: PEM_read_RSAPublicKey
      Src: /src/core/libpromises/crypto.c:531,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:534,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libpromises/crypto.c:537,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:538,1
    - Dst: fclose
      Src: /src/core/libpromises/crypto.c:542,1
    - Dst: RSA_get0_key
      Src: /src/core/libpromises/crypto.c:544,1
    - Dst: BN_num_bits
      Src: /src/core/libpromises/crypto.c:546,1
    - Dst: BN_is_odd
      Src: /src/core/libpromises/crypto.c:546,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:548,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/crypto.c:549,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 518
    functionDepth: 8
    functionLinenumber: 518
    functionLinenumberEnd: 554
    functionName: LoadPublicKey
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - CryptoLastErrorString
    - safe_fopen
    - BN_num_bits
    - RSA_get0_key
    - Log
    - PEM_read_RSAPublicKey
    - fclose
    - BN_is_odd
    linkageType: ''
    returnType: RSA
    signature: RSA *LoadPublicKey(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/crypto.c:562,1
    - Dst: LoadPublicKey
      Src: /src/core/libpromises/crypto.c:564,1
    - Dst: HashPubKey
      Src: /src/core/libpromises/crypto.c:570,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/crypto.c:571,1
    - Dst: RSA_free
      Src: /src/core/libpromises/crypto.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 558
    functionDepth: 9
    functionLinenumber: 558
    functionLinenumberEnd: 575
    functionName: LoadPubkeyDigest
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - HashPrintSafe
    - HashPubKey
    - xmalloc
    - RSA_free
    - LoadPublicKey
    linkageType: ''
    returnType: char
    signature: char *LoadPubkeyDigest(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/crypto.c:581,1
    - Dst: HashPubKey
      Src: /src/core/libpromises/crypto.c:583,1
    - Dst: HashPrintSafe
      Src: /src/core/libpromises/crypto.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pubkey
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: GetPubkeyDigest
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 0
    functionsReached:
    - HashPrintSafe
    - xmalloc
    - HashPubKey
    linkageType: ''
    returnType: char
    signature: char *GetPubkeyDigest(RSA *pubkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LoadPublicKey
      Src: /src/core/libpromises/crypto.c:601,1
    - Dst: GetPubkeyDigest
      Src: /src/core/libpromises/crypto.c:607,1
    - Dst: RSA_free
      Src: /src/core/libpromises/crypto.c:610,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:616,1
    - Dst: LastSaw1
      Src: /src/core/libpromises/crypto.c:619,1
    - Dst: SavePublicKey
      Src: /src/core/libpromises/crypto.c:622,1
    - Dst: RSA_free
      Src: /src/core/libpromises/crypto.c:623,1
    - Dst: free
      Src: /src/core/libpromises/crypto.c:624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - filename
    - ipaddress
    - username
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 596
    functionDepth: 11
    functionLinenumber: 596
    functionLinenumberEnd: 627
    functionName: TrustKey
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - SavePublicKey
    - Log
    - RSA_free
    - LastSaw1
    - free
    - GetPubkeyDigest
    - LoadPublicKey
    linkageType: ''
    returnType: bool
    signature: bool TrustKey(const char *filename, const char *ipaddress, const char
      *username)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:637,1
    - Dst: CipherTextSizeMax
      Src: /src/core/libpromises/crypto.c:639,1
    - Dst: CfengineCipher
      Src: /src/core/libpromises/crypto.c:639,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:643,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/core/libpromises/crypto.c:647,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/core/libpromises/crypto.c:648,1
    - Dst: CfengineCipher
      Src: /src/core/libpromises/crypto.c:648,1
    - Dst: EVP_EncryptUpdate
      Src: /src/core/libpromises/crypto.c:650,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libpromises/crypto.c:652,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/core/libpromises/crypto.c:656,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libpromises/crypto.c:658,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:666,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:670,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libpromises/crypto.c:674,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - out
    - out_size
    - in
    - plainlen
    - type
    - key
    argTypes:
    - char*
    - size_t
    - char*
    - int
    - char
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 676
    functionName: EncryptString
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_new
    - CipherTextSizeMax
    - EVP_EncryptInit_ex
    - ProgrammingError
    - EVP_EncryptFinal_ex
    - EVP_EncryptUpdate
    - CfengineCipher
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: "int EncryptString(char *out, size_t out_size, const char *in, int
      plainlen,\n                  char type, unsigned char *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_block_size
      Src: /src/core/libpromises/crypto.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: CipherBlockSizeBytes
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t CipherBlockSizeBytes(const EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CipherBlockSizeBytes
      Src: /src/core/libpromises/crypto.c:686,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cipher
    - plaintext_size
    argTypes:
    - EVP_CIPHER*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 696
    functionName: CipherTextSizeMax
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 2
    functionsReached:
    - CipherBlockSizeBytes
    - ProgrammingError
    linkageType: ''
    returnType: size_t
    signature: size_t CipherTextSizeMax(const EVP_CIPHER* cipher, size_t plaintext_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CipherBlockSizeBytes
      Src: /src/core/libpromises/crypto.c:701,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cipher
    - ciphertext_size
    argTypes:
    - EVP_CIPHER*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 711
    functionName: PlainTextSizeMax
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - CipherBlockSizeBytes
    - ProgrammingError
    linkageType: ''
    returnType: size_t
    signature: size_t PlainTextSizeMax(const EVP_CIPHER* cipher, size_t ciphertext_size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:723,1
    - Dst: PlainTextSizeMax
      Src: /src/core/libpromises/crypto.c:725,1
    - Dst: CfengineCipher
      Src: /src/core/libpromises/crypto.c:725,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:729,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/core/libpromises/crypto.c:733,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/core/libpromises/crypto.c:734,1
    - Dst: CfengineCipher
      Src: /src/core/libpromises/crypto.c:734,1
    - Dst: EVP_DecryptUpdate
      Src: /src/core/libpromises/crypto.c:736,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:738,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libpromises/crypto.c:739,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/core/libpromises/crypto.c:743,1
    - Dst: ERR_get_error
      Src: /src/core/libpromises/crypto.c:745,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:747,1
    - Dst: ERR_error_string
      Src: /src/core/libpromises/crypto.c:747,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libpromises/crypto.c:748,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:756,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/crypto.c:760,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libpromises/crypto.c:764,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - out
    - out_size
    - in
    - cipherlen
    - type
    - key
    argTypes:
    - char*
    - size_t
    - char*
    - int
    - char
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 715
    functionDepth: 8
    functionLinenumber: 715
    functionLinenumberEnd: 766
    functionName: DecryptString
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_new
    - ERR_get_error
    - EVP_DecryptFinal_ex
    - ProgrammingError
    - Log
    - EVP_DecryptUpdate
    - CfengineCipher
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_free
    - ERR_error_string
    - PlainTextSizeMax
    linkageType: ''
    returnType: int
    signature: "int DecryptString(char *out, size_t out_size, const char *in, int
      cipherlen,\n                  char type, unsigned char *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:778,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:782,1
    - Dst: memset
      Src: /src/core/libpromises/crypto.c:786,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/crypto.c:790,1
    - Dst: strcat
      Src: /src/core/libpromises/crypto.c:791,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - buffer
    - len
    - comment
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 770
    functionDepth: 8
    functionLinenumber: 770
    functionLinenumberEnd: 795
    functionName: DebugBinOut
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 0
    functionsReached:
    - strcat
    - Log
    - xsnprintf
    - memset
    linkageType: ''
    returnType: void
    signature: void DebugBinOut(char *buffer, int len, char *comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libpromises/crypto.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 803
    functionName: PublicKeyFile
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 3
    functionsReached:
    - xasprintf
    linkageType: ''
    returnType: char
    signature: char *PublicKeyFile(const char *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libpromises/crypto.c:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 811
    functionName: PrivateKeyFile
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 2
    functionsReached:
    - xasprintf
    linkageType: ''
    returnType: char
    signature: char *PrivateKeyFile(const char *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/core/libpromises/crypto.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: ThreadId_callback
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 0
    functionsReached:
    - pthread_self
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ThreadId_callback(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/core/libpromises/crypto.c:837,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:840,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/crypto.c:842,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libpromises/crypto.c:847,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:850,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/crypto.c:852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - mode
    - index
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 833
    functionDepth: 8
    functionLinenumber: 833
    functionLinenumberEnd: 855
    functionName: OpenSSLLock_callback
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - Log
    - GetErrorStrFromCode
    linkageType: ''
    returnType: void
    signature: void OpenSSLLock_callback(int mode, int index, char *file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_num_locks
      Src: /src/core/libpromises/crypto.c:861,1
    - Dst: assert
      Src: /src/core/libpromises/crypto.c:862,1
    - Dst: xmalloc
      Src: /src/core/libpromises/crypto.c:863,1
    - Dst: pthread_mutexattr_init
      Src: /src/core/libpromises/crypto.c:868,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libpromises/crypto.c:869,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:872,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/crypto.c:875,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libpromises/crypto.c:876,1
    - Dst: pthread_mutex_init
      Src: /src/core/libpromises/crypto.c:878,1
    - Dst: Log
      Src: /src/core/libpromises/crypto.c:881,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libpromises/crypto.c:884,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libpromises/crypto.c:886,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/core/libpromises/crypto.c:891,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/core/libpromises/crypto.c:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (cf_openssl_locks == NULL)
      pos:
        line_end: 861
        line_start: 861
        source_file: /src/core/libpromises/crypto.c
    constantsTouched: []
    func_position:
      end: 897
      start: 859
    functionDepth: 8
    functionLinenumber: 859
    functionLinenumberEnd: 897
    functionName: SetupOpenSSLThreadLocks
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - assert
    - CRYPTO_num_locks
    - pthread_mutex_init
    - GetErrorStrFromCode
    - CRYPTO_set_locking_callback
    - pthread_mutexattr_destroy
    - xmalloc
    - Log
    - pthread_mutexattr_settype
    - CRYPTO_set_id_callback
    - pthread_mutexattr_init
    linkageType: ''
    returnType: void
    signature: void SetupOpenSSLThreadLocks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_num_locks
      Src: /src/core/libpromises/crypto.c:901,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/core/libpromises/crypto.c:902,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/core/libpromises/crypto.c:905,1
    - Dst: pthread_mutex_destroy
      Src: /src/core/libpromises/crypto.c:911,1
    - Dst: free
      Src: /src/core/libpromises/crypto.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 916
    functionName: CleanupOpenSSLThreadLocks
    functionSourceFile: /src/core/libpromises/crypto.c
    functionUses: 1
    functionsReached:
    - CRYPTO_num_locks
    - CRYPTO_set_locking_callback
    - pthread_mutex_destroy
    - free
    - CRYPTO_set_id_callback
    linkageType: ''
    returnType: void
    signature: void CleanupOpenSSLThreadLocks(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/libpromises/storage_tools.c:54,1
    - Dst: statvfs
      Src: /src/core/libpromises/storage_tools.c:57,1
    - Dst: Log
      Src: /src/core/libpromises/storage_tools.c:59,1
    - Dst: statfs
      Src: /src/core/libpromises/storage_tools.c:63,1
    - Dst: Log
      Src: /src/core/libpromises/storage_tools.c:65,1
    - Dst: statfs
      Src: /src/core/libpromises/storage_tools.c:69,1
    - Dst: Log
      Src: /src/core/libpromises/storage_tools.c:71,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/storage_tools.c:71,1
    - Dst: Log
      Src: /src/core/libpromises/storage_tools.c:98,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 33
    argCount: 2
    argNames:
    - file
    - type
    argTypes:
    - char*
    - CfSize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 44
    functionDepth: 8
    functionLinenumber: 44
    functionLinenumberEnd: 118
    functionName: GetDiskUsage
    functionSourceFile: /src/core/libpromises/storage_tools.c
    functionUses: 1
    functionsReached:
    - statvfs
    - GetErrorStr
    - statfs
    - Log
    - memset
    linkageType: ''
    returnType: off_t
    signature: off_t GetDiskUsage(char *file, CfSize type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/scope.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - scope
    argTypes:
    - SpecialScope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: SpecialScopeToString
    functionSourceFile: /src/core/libpromises/scope.c
    functionUses: 6
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *SpecialScopeToString(SpecialScope scope)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/scope.c:73,1
    - Dst: strcmp
      Src: /src/core/libpromises/scope.c:77,1
    - Dst: strcmp
      Src: /src/core/libpromises/scope.c:81,1
    - Dst: strcmp
      Src: /src/core/libpromises/scope.c:85,1
    - Dst: strcmp
      Src: /src/core/libpromises/scope.c:89,1
    - Dst: strcmp
      Src: /src/core/libpromises/scope.c:93,1
    - Dst: strcmp
      Src: /src/core/libpromises/scope.c:97,1
    - Dst: strcmp
      Src: /src/core/libpromises/scope.c:101,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - scope
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 109
    functionName: SpecialScopeFromString
    functionSourceFile: /src/core/libpromises/scope.c
    functionUses: 5
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: SpecialScope
    signature: SpecialScope SpecialScopeFromString(const char *scope)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: RlistLen
      Src: /src/core/libpromises/scope.c:113,1
    - Dst: RlistLen
      Src: /src/core/libpromises/scope.c:113,1
    - Dst: Log
      Src: /src/core/libpromises/scope.c:115,1
    - Dst: fprintf
      Src: /src/core/libpromises/scope.c:116,1
    - Dst: FileWriter
      Src: /src/core/libpromises/scope.c:118,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/scope.c:119,1
    - Dst: FileWriterDetach
      Src: /src/core/libpromises/scope.c:120,1
    - Dst: fprintf
      Src: /src/core/libpromises/scope.c:122,1
    - Dst: FileWriter
      Src: /src/core/libpromises/scope.c:124,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/scope.c:125,1
    - Dst: FileWriterDetach
      Src: /src/core/libpromises/scope.c:126,1
    - Dst: fprintf
      Src: /src/core/libpromises/scope.c:128,1
    - Dst: FatalError
      Src: /src/core/libpromises/scope.c:129,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/scope.c:135,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/scope.c:140,1
    - Dst: Log
      Src: /src/core/libpromises/scope.c:142,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/scope.c:142,1
    - Dst: IsNakedVar
      Src: /src/core/libpromises/scope.c:147,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/scope.c:147,1
    - Dst: GetNaked
      Src: /src/core/libpromises/scope.c:152,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/scope.c:152,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/scope.c:158,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/scope.c:159,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:160,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/scope.c:164,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/scope.c:165,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:166,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/scope.c:175,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/scope.c:176,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:177,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/scope.c:182,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/scope.c:183,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:184,1
    - Dst: Log
      Src: /src/core/libpromises/scope.c:189,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/scope.c:190,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/scope.c:191,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/scope.c:191,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:192,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/scope.c:203,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/scope.c:204,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/scope.c:204,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:205,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/scope.c:211,1
    - Dst: FnCallEvaluate
      Src: /src/core/libpromises/scope.c:212,1
    - Dst: PromiseGetPolicy
      Src: /src/core/libpromises/scope.c:212,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/libpromises/scope.c:215,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/scope.c:216,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/scope.c:216,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:217,1
    - Dst: Log
      Src: /src/core/libpromises/scope.c:221,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/scope.c:223,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/scope.c:227,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 71
    argCount: 4
    argNames:
    - ctx
    - bp
    - pp
    - arguments
    argTypes:
    - EvalContext*
    - Bundle*
    - Promise*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 111
    functionDepth: 11
    functionLinenumber: 111
    functionLinenumberEnd: 235
    functionName: ScopeAugment
    functionSourceFile: /src/core/libpromises/scope.c
    functionUses: 1
    functionsReached:
    - VarRefParseFromBundle
    - VarRefDestroy
    - Log
    - RlistScalarValue
    - FileWriterDetach
    - RlistLen
    - FileWriter
    - RvalDestroy
    - IsNakedVar
    - RlistFnCallValue
    - PromiseGetPolicy
    - RlistWrite
    - PromiseGetBundle
    - RvalScalarValue
    - FnCallEvaluate
    - EvalContextVariablePut
    - ProgrammingError
    - EvalContextGetPass
    - FatalError
    - EvalContextVariableGet
    - fprintf
    - GetNaked
    linkageType: ''
    returnType: void
    signature: void ScopeAugment(EvalContext *ctx, const Bundle *bp, const Promise
      *pp, const Rlist *arguments)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: StringDataType
      Src: /src/core/libpromises/scope.c:249,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/scope.c:249,1
    - Dst: FnCallTypeGet
      Src: /src/core/libpromises/scope.c:254,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/scope.c:254,1
    - Dst: FatalError
      Src: /src/core/libpromises/scope.c:257,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/scope.c:258,1
    - Dst: FatalError
      Src: /src/core/libpromises/scope.c:265,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/scope.c:272,1
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/scope.c:273,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/scope.c:274,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/scope.c:274,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:275,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/scope.c:281,1
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/scope.c:282,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/scope.c:283,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/scope.c:283,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:284,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/scope.c:290,1
    - Dst: FnCallTypeGet
      Src: /src/core/libpromises/scope.c:293,1
    - Dst: FnCallEvaluate
      Src: /src/core/libpromises/scope.c:300,1
    - Dst: Log
      Src: /src/core/libpromises/scope.c:304,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/scope.c:309,1
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/scope.c:312,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/scope.c:313,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/scope.c:314,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/scope.c:317,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/scope.c:324,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - ctx
    - body
    - args
    argTypes:
    - EvalContext*
    - Body*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 238
    functionDepth: 9
    functionLinenumber: 238
    functionLinenumberEnd: 327
    functionName: ScopeMapBodyArgs
    functionSourceFile: /src/core/libpromises/scope.c
    functionUses: 1
    functionsReached:
    - RvalScalarValue
    - FnCallTypeGet
    - VarRefParseFromNamespaceAndScope
    - FnCallEvaluate
    - RlistFnCallValue
    - VarRefDestroy
    - FatalError
    - EvalContextVariablePut
    - Log
    - ProgrammingError
    - RlistScalarValue
    - RvalRlistValue
    - StringDataType
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void ScopeMapBodyArgs(EvalContext *ctx, const Body *body, const Rlist
      *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/scope.c:335,1
    - Dst: snprintf
      Src: /src/core/libpromises/scope.c:339,1
    - Dst: snprintf
      Src: /src/core/libpromises/scope.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ns
    - bundle
    - scope_out
    argTypes:
    - char*
    - char*
    - char[]
    assertStmts:
    - condition: (bundle)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/core/libpromises/scope.c
    constantsTouched: []
    func_position:
      end: 345
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 345
    functionName: JoinScopeName
    functionSourceFile: /src/core/libpromises/scope.c
    functionUses: 1
    functionsReached:
    - assert
    - snprintf
    linkageType: ''
    returnType: void
    signature: void JoinScopeName(const char *ns, const char *bundle, char scope_out[CF_MAXVARSIZE])
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_operators.c:55,1
    - Dst: time
      Src: /src/core/libpromises/files_operators.c:58,1
    - Dst: ChrootChanges
      Src: /src/core/libpromises/files_operators.c:61,1
    - Dst: ToChangesChroot
      Src: /src/core/libpromises/files_operators.c:63,1
    - Dst: lstat
      Src: /src/core/libpromises/files_operators.c:66,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_operators.c:70,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:71,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_operators.c:75,1
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_operators.c:77,1
    - Dst: strlcpy
      Src: /src/core/libpromises/files_operators.c:83,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_operators.c:87,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/files_operators.c:87,1
    - Dst: ctime
      Src: /src/core/libpromises/files_operators.c:87,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_operators.c:88,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_operators.c:91,1
    - Dst: rename
      Src: /src/core/libpromises/files_operators.c:93,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_operators.c:95,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_operators.c:96,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:97,1
    - Dst: RecordChange
      Src: /src/core/libpromises/files_operators.c:100,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:101,1
    - Dst: ArchiveToRepository
      Src: /src/core/libpromises/files_operators.c:103,1
    - Dst: RecordChange
      Src: /src/core/libpromises/files_operators.c:105,1
    - Dst: unlink
      Src: /src/core/libpromises/files_operators.c:106,1
    - Dst: S_ISDIR
      Src: /src/core/libpromises/files_operators.c:112,1
    - Dst: MakingChanges
      Src: /src/core/libpromises/files_operators.c:114,1
    - Dst: strlcpy
      Src: /src/core/libpromises/files_operators.c:120,1
    - Dst: snprintf
      Src: /src/core/libpromises/files_operators.c:122,1
    - Dst: CanonifyName
      Src: /src/core/libpromises/files_operators.c:122,1
    - Dst: ctime
      Src: /src/core/libpromises/files_operators.c:122,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_operators.c:123,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_operators.c:124,1
    - Dst: strlcat
      Src: /src/core/libpromises/files_operators.c:125,1
    - Dst: stat
      Src: /src/core/libpromises/files_operators.c:127,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_operators.c:129,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:132,1
    - Dst: rename
      Src: /src/core/libpromises/files_operators.c:136,1
    - Dst: RecordFailure
      Src: /src/core/libpromises/files_operators.c:138,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_operators.c:139,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:140,1
    - Dst: RecordChange
      Src: /src/core/libpromises/files_operators.c:143,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:144,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 60
    argCount: 5
    argNames:
    - ctx
    - from
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/core/libpromises/files_operators.c
    constantsTouched: []
    func_position:
      end: 149
      start: 53
    functionDepth: 12
    functionLinenumber: 53
    functionLinenumberEnd: 149
    functionName: MoveObstruction
    functionSourceFile: /src/core/libpromises/files_operators.c
    functionUses: 2
    functionsReached:
    - strlcpy
    - time
    - snprintf
    - RecordChange
    - unlink
    - lstat
    - CanonifyName
    - strlcat
    - assert
    - S_ISDIR
    - rename
    - ctime
    - ChrootChanges
    - GetErrorStr
    - stat
    - RecordFailure
    - ArchiveToRepository
    - ToChangesChroot
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: bool MoveObstruction(EvalContext *ctx, char *from, const Attributes
      *attr, const Promise *pp, PromiseResult *result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libpromises/files_operators.c:304,1
    - Dst: Log
      Src: /src/core/libpromises/files_operators.c:308,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_operators.c:309,1
    - Dst: fprintf
      Src: /src/core/libpromises/files_operators.c:315,1
    - Dst: Log
      Src: /src/core/libpromises/files_operators.c:317,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_operators.c:318,1
    - Dst: fclose
      Src: /src/core/libpromises/files_operators.c:319,1
    - Dst: fclose
      Src: /src/core/libpromises/files_operators.c:324,1
    - Dst: Log
      Src: /src/core/libpromises/files_operators.c:326,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/files_operators.c:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - dest_filename
    - param
    - new_line_mode
    argTypes:
    - char*
    - void*
    - NewLineMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 299
    functionDepth: 8
    functionLinenumber: 299
    functionLinenumberEnd: 332
    functionName: SaveItemListCallback
    functionSourceFile: /src/core/libpromises/files_operators.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - safe_fopen
    - Log
    - fclose
    - fprintf
    linkageType: ''
    returnType: bool
    signature: bool SaveItemListCallback(const char *dest_filename, void *param, NewLineMode
      new_line_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_operators.c:338,1
    - Dst: SaveAsFile
      Src: /src/core/libpromises/files_operators.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - liststart
    - file
    - a
    - new_line_mode
    argTypes:
    - EvalContext*
    - Item*
    - char*
    - Attributes*
    - NewLineMode
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/core/libpromises/files_operators.c
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: SaveItemListAsFile
    functionSourceFile: /src/core/libpromises/files_operators.c
    functionUses: 0
    functionsReached:
    - assert
    - SaveAsFile
    linkageType: ''
    returnType: bool
    signature: bool SaveItemListAsFile(EvalContext *ctx, Item *liststart, const char
      *file, const Attributes *a, NewLineMode new_line_mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ip
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 354
    functionName: NextItem
    functionSourceFile: /src/core/libpromises/files_operators.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Item
    signature: Item *NextItem(const Item *ip)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_operators.c:359,1
    - Dst: cfPS
      Src: /src/core/libpromises/files_operators.c:378,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:379,1
    - Dst: cfPS
      Src: /src/core/libpromises/files_operators.c:385,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:387,1
    - Dst: cfPS
      Src: /src/core/libpromises/files_operators.c:392,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:393,1
    - Dst: NextItem
      Src: /src/core/libpromises/files_operators.c:403,1
    - Dst: NextItem
      Src: /src/core/libpromises/files_operators.c:404,1
    - Dst: strcmp
      Src: /src/core/libpromises/files_operators.c:412,1
    - Dst: cfPS
      Src: /src/core/libpromises/files_operators.c:423,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/files_operators.c:424,1
    - Dst: NextItem
      Src: /src/core/libpromises/files_operators.c:429,1
    - Dst: NextItem
      Src: /src/core/libpromises/files_operators.c:430,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 7
    argNames:
    - ctx
    - list1
    - list2
    - warnings
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Item*
    - Item*
    - int
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/core/libpromises/files_operators.c
    constantsTouched: []
    func_position:
      end: 434
      start: 356
    functionDepth: 13
    functionLinenumber: 356
    functionLinenumberEnd: 434
    functionName: ItemListsEqual
    functionSourceFile: /src/core/libpromises/files_operators.c
    functionUses: 0
    functionsReached:
    - assert
    - cfPS
    - NextItem
    - strcmp
    - PromiseResultUpdate
    linkageType: ''
    returnType: bool
    signature: "bool ItemListsEqual(EvalContext *ctx, const Item *list1, const Item
      *list2, int warnings,\n                           const Attributes *a, const
      Promise *pp, PromiseResult *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/files_operators.c:446,1
    - Dst: stat
      Src: /src/core/libpromises/files_operators.c:450,1
    - Dst: LoadFileAsItemList
      Src: /src/core/libpromises/files_operators.c:465,1
    - Dst: ItemListsEqual
      Src: /src/core/libpromises/files_operators.c:470,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/files_operators.c:472,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/files_operators.c:476,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - ctx
    - liststart
    - file
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Item*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/core/libpromises/files_operators.c
    constantsTouched: []
    func_position:
      end: 478
      start: 438
    functionDepth: 14
    functionLinenumber: 438
    functionLinenumberEnd: 478
    functionName: CompareToFile
    functionSourceFile: /src/core/libpromises/files_operators.c
    functionUses: 0
    functionsReached:
    - stat
    - LoadFileAsItemList
    - assert
    - ItemListsEqual
    - DeleteItemList
    linkageType: ''
    returnType: bool
    signature: "bool CompareToFile(\n    EvalContext *ctx,\n    const Item *liststart,\n
      \   const char *file,\n    const Attributes *a,\n    const Promise *pp,\n    PromiseResult
      *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/extensions.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: extension_libraries_disable
    functionSourceFile: /src/core/libpromises/extensions.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void extension_libraries_disable()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/libpromises/extensions.c:84,1
    - Dst: getenv
      Src: /src/core/libpromises/extensions.c:91,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/extensions.c:100,1
    - Dst: strcmp
      Src: /src/core/libpromises/extensions.c:101,1
    - Dst: strlen
      Src: /src/core/libpromises/extensions.c:112,1
    - Dst: strlen
      Src: /src/core/libpromises/extensions.c:112,1
    - Dst: strlen
      Src: /src/core/libpromises/extensions.c:112,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/extensions.c:113,1
    - Dst: Log
      Src: /src/core/libpromises/extensions.c:115,1
    - Dst: shlib_open
      Src: /src/core/libpromises/extensions.c:117,1
    - Dst: Log
      Src: /src/core/libpromises/extensions.c:120,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/extensions.c:132,1
    - Dst: Log
      Src: /src/core/libpromises/extensions.c:134,1
    - Dst: shlib_load
      Src: /src/core/libpromises/extensions.c:144,1
    - Dst: Log
      Src: /src/core/libpromises/extensions.c:147,1
    - Dst: GetExtensionLibraryVersion
      Src: /src/core/libpromises/extensions.c:151,1
    - Dst: sscanf
      Src: /src/core/libpromises/extensions.c:154,1
    - Dst: Log
      Src: /src/core/libpromises/extensions.c:156,1
    - Dst: sscanf
      Src: /src/core/libpromises/extensions.c:159,1
    - Dst: Log
      Src: /src/core/libpromises/extensions.c:161,1
    - Dst: Log
      Src: /src/core/libpromises/extensions.c:167,1
    - Dst: Log
      Src: /src/core/libpromises/extensions.c:173,1
    - Dst: shlib_close
      Src: /src/core/libpromises/extensions.c:178,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 77
    functionDepth: 9
    functionLinenumber: 77
    functionLinenumberEnd: 180
    functionName: extension_library_open
    functionSourceFile: /src/core/libpromises/extensions.c
    functionUses: 0
    functionsReached:
    - shlib_open
    - GetErrorStr
    - getenv
    - strlen
    - GetExtensionLibraryVersion
    - sscanf
    - shlib_close
    - Log
    - xsnprintf
    - strcmp
    - shlib_load
    - GetWorkDir
    linkageType: ''
    returnType: void
    signature: void *extension_library_open(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shlib_close
      Src: /src/core/libpromises/extensions.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: extension_library_close
    functionSourceFile: /src/core/libpromises/extensions.c
    functionUses: 0
    functionsReached:
    - shlib_close
    linkageType: ''
    returnType: void
    signature: void extension_library_close(void *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libpromises/dbm_api.c:159,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/dbm_api.c:159,1
    - Dst: DBPrivGetFileExtension
      Src: /src/core/libpromises/dbm_api.c:160,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/dbm_api.c:162,1
    - Dst: MapNameCopy
      Src: /src/core/libpromises/dbm_api.c:166,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - id
    - subdb_name
    argTypes:
    - dbid
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 170
    functionName: DBIdToSubPath
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - MapNameCopy
    - xasprintf
    - GetStateDir
    - DBPrivGetFileExtension
    - ProgrammingError
    - free
    linkageType: ''
    returnType: char
    signature: char *DBIdToSubPath(dbid id, const char *subdb_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBIdToSubPath
      Src: /src/core/libpromises/dbm_api.c:174,1
    - Dst: GlobFileList
      Src: /src/core/libpromises/dbm_api.c:175,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:176,1
    - Dst: SeqNew
      Src: /src/core/libpromises/dbm_api.c:178,1
    - Dst: StringSetSize
      Src: /src/core/libpromises/dbm_api.c:178,1
    - Dst: StringSetIteratorInit
      Src: /src/core/libpromises/dbm_api.c:179,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_api.c:183,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/dbm_api.c:183,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_api.c:184,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_api.c:187,1
    - Dst: DBPrivGetFileExtension
      Src: /src/core/libpromises/dbm_api.c:187,1
    - Dst: StringSetIteratorNext
      Src: /src/core/libpromises/dbm_api.c:189,1
    - Dst: SafeStringNDuplicate
      Src: /src/core/libpromises/dbm_api.c:191,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_api.c:192,1
    - Dst: SeqAppend
      Src: /src/core/libpromises/dbm_api.c:193,1
    - Dst: StringSetDestroy
      Src: /src/core/libpromises/dbm_api.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - dbid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 172
    functionDepth: 6
    functionLinenumber: 172
    functionLinenumberEnd: 198
    functionName: SearchExistingSubDBNames
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 1
    functionsReached:
    - DBIdToSubPath
    - SafeStringNDuplicate
    - strlen
    - StringSetIteratorNext
    - StringSetSize
    - GetStateDir
    - StringSetDestroy
    - SeqNew
    - DBPrivGetFileExtension
    - StringSetIteratorInit
    - GlobFileList
    - free
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *SearchExistingSubDBNames(const dbid id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_api.c:202,1
    - Dst: xasprintf
      Src: /src/core/libpromises/dbm_api.c:208,1
    - Dst: GetWorkDir
      Src: /src/core/libpromises/dbm_api.c:208,1
    - Dst: DBPrivGetFileExtension
      Src: /src/core/libpromises/dbm_api.c:209,1
    - Dst: stat
      Src: /src/core/libpromises/dbm_api.c:211,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:214,1
    - Dst: xasprintf
      Src: /src/core/libpromises/dbm_api.c:221,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/dbm_api.c:221,1
    - Dst: DBPrivGetFileExtension
      Src: /src/core/libpromises/dbm_api.c:222,1
    - Dst: MapNameCopy
      Src: /src/core/libpromises/dbm_api.c:225,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - id
    argTypes:
    - dbid
    assertStmts:
    - condition: (DB_PATHS_STATEDIR[id] != NULL)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/core/libpromises/dbm_api.c
    constantsTouched: []
    func_position:
      end: 229
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 229
    functionName: DBIdToPath
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 8
    functionsReached:
    - stat
    - MapNameCopy
    - assert
    - xasprintf
    - GetStateDir
    - DBPrivGetFileExtension
    - free
    - GetWorkDir
    linkageType: ''
    returnType: char
    signature: char *DBIdToPath(dbid id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBIdToSubPath
      Src: /src/core/libpromises/dbm_api.c:234,1
    - Dst: StringEqual
      Src: /src/core/libpromises/dbm_api.c:235,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - handle
    - id
    - name
    argTypes:
    - DBHandle*
    - dbid
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: IsSubHandle
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - free
    - DBIdToSubPath
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool IsSubHandle(DBHandle *handle, dbid id, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_api.c:242,1
    - Dst: IsSubHandle
      Src: /src/core/libpromises/dbm_api.c:248,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:250,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_api.c:256,1
    - Dst: DBIdToSubPath
      Src: /src/core/libpromises/dbm_api.c:257,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/dbm_api.c:258,1
    - Dst: pthread_mutexattr_init
      Src: /src/core/libpromises/dbm_api.c:262,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libpromises/dbm_api.c:263,1
    - Dst: pthread_mutex_init
      Src: /src/core/libpromises/dbm_api.c:264,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libpromises/dbm_api.c:265,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_api.c:268,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - id
    - name
    argTypes:
    - dbid
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 240
    functionDepth: 5
    functionLinenumber: 240
    functionLinenumberEnd: 276
    functionName: DBHandleGetSubDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - DBIdToSubPath
    - ThreadLock
    - ThreadUnlock
    - SafeStringDuplicate
    - pthread_mutex_init
    - IsSubHandle
    - pthread_mutexattr_destroy
    - pthread_mutexattr_settype
    - pthread_mutexattr_init
    linkageType: ''
    returnType: DBHandle
    signature: DBHandle *DBHandleGetSubDB(dbid id, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_api.c:280,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_api.c:282,1
    - Dst: DBIdToPath
      Src: /src/core/libpromises/dbm_api.c:285,1
    - Dst: pthread_mutexattr_init
      Src: /src/core/libpromises/dbm_api.c:289,1
    - Dst: pthread_mutexattr_settype
      Src: /src/core/libpromises/dbm_api.c:290,1
    - Dst: pthread_mutex_init
      Src: /src/core/libpromises/dbm_api.c:291,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/core/libpromises/dbm_api.c:292,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts:
    - condition: (id >= 0 && id < dbid_max)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/core/libpromises/dbm_api.c
    constantsTouched: []
    func_position:
      end: 298
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 298
    functionName: DBHandleGet
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - assert
    - ThreadUnlock
    - pthread_mutex_init
    - pthread_mutexattr_destroy
    - pthread_mutexattr_settype
    - pthread_mutexattr_init
    - DBIdToPath
    linkageType: ''
    returnType: DBHandle
    signature: DBHandle *DBHandleGet(int id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_api.c:305,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:309,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:310,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:311,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:316,1
    - Dst: nanosleep
      Src: /src/core/libpromises/dbm_api.c:322,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_api.c:325,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_api.c:332,1
    - Dst: DBPrivCloseDB
      Src: /src/core/libpromises/dbm_api.c:335,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:339,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - handle
    argTypes:
    - DBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 300
    functionDepth: 8
    functionLinenumber: 300
    functionLinenumberEnd: 343
    functionName: CloseDBInstance
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - DBPrivCloseDB
    - ThreadLock
    - nanosleep
    - ThreadUnlock
    - Log
    - free
    linkageType: ''
    returnType: void
    signature: void CloseDBInstance(DBHandle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_api.c:357,1
    - Dst: CloseDBInstance
      Src: /src/core/libpromises/dbm_api.c:363,1
    - Dst: CloseDBInstance
      Src: /src/core/libpromises/dbm_api.c:371,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libpromises/dbm_api.c:376,1
    - Dst: FREE_AND_NULL
      Src: /src/core/libpromises/dbm_api.c:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 355
    functionDepth: 9
    functionLinenumber: 355
    functionLinenumberEnd: 379
    functionName: CloseAllDBExit
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - FREE_AND_NULL
    - CloseDBInstance
    linkageType: ''
    returnType: void
    signature: void CloseAllDBExit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegisterCleanupFunction
      Src: /src/core/libpromises/dbm_api.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: RegisterShutdownHandler
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - RegisterCleanupFunction
    linkageType: ''
    returnType: void
    signature: void RegisterShutdownHandler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivSetMaximumConcurrentTransactions
      Src: /src/core/libpromises/dbm_api.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - max_txn
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: DBSetMaximumConcurrentTransactions
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - DBPrivSetMaximumConcurrentTransactions
    linkageType: ''
    returnType: void
    signature: void DBSetMaximumConcurrentTransactions(int max_txn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_api.c:402,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_api.c:404,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_api.c:407,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:408,1
    - Dst: DBPathLock
      Src: /src/core/libpromises/dbm_api.c:414,1
    - Dst: time
      Src: /src/core/libpromises/dbm_api.c:416,1
    - Dst: DBPrivOpenDB
      Src: /src/core/libpromises/dbm_api.c:417,1
    - Dst: DBPathMoveBroken
      Src: /src/core/libpromises/dbm_api.c:421,1
    - Dst: DBPrivOpenDB
      Src: /src/core/libpromises/dbm_api.c:422,1
    - Dst: DBMigrate
      Src: /src/core/libpromises/dbm_api.c:431,1
    - Dst: DBPrivCloseDB
      Src: /src/core/libpromises/dbm_api.c:435,1
    - Dst: DBPathMoveBroken
      Src: /src/core/libpromises/dbm_api.c:436,1
    - Dst: DBPrivOpenDB
      Src: /src/core/libpromises/dbm_api.c:437,1
    - Dst: DBPathUnLock
      Src: /src/core/libpromises/dbm_api.c:445,1
    - Dst: pthread_once
      Src: /src/core/libpromises/dbm_api.c:459,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:466,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - dbp
    - id
    - handle
    argTypes:
    - DBHandle**
    - dbid
    - DBHandle*
    assertStmts:
    - condition: (handle != NULL)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/core/libpromises/dbm_api.c
    constantsTouched: []
    func_position:
      end: 468
      start: 399
    functionDepth: 8
    functionLinenumber: 399
    functionLinenumberEnd: 468
    functionName: OpenDBInstance
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - DBPrivCloseDB
    - ThreadLock
    - DBPrivOpenDB
    - assert
    - ThreadUnlock
    - DBPathMoveBroken
    - DBPathLock
    - DBPathUnLock
    - pthread_once
    - Log
    - DBMigrate
    - time
    linkageType: ''
    returnType: bool
    signature: bool OpenDBInstance(DBHandle **dbp, dbid id, DBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBHandleGetSubDB
      Src: /src/core/libpromises/dbm_api.c:472,1
    - Dst: OpenDBInstance
      Src: /src/core/libpromises/dbm_api.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dbp
    - id
    - sub_name
    argTypes:
    - DBHandle**
    - dbid
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 9
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: OpenSubDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 1
    functionsReached:
    - DBHandleGetSubDB
    - OpenDBInstance
    linkageType: ''
    returnType: bool
    signature: bool OpenSubDB(DBHandle **dbp, dbid id, const char *sub_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBHandleGet
      Src: /src/core/libpromises/dbm_api.c:478,1
    - Dst: OpenDBInstance
      Src: /src/core/libpromises/dbm_api.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dbp
    - id
    argTypes:
    - DBHandle**
    - dbid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 9
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: OpenDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 48
    functionsReached:
    - DBHandleGet
    - OpenDBInstance
    linkageType: ''
    returnType: bool
    signature: bool OpenDB(DBHandle **dbp, dbid id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_api.c:487,1
    - Dst: StringEqual
      Src: /src/core/libpromises/dbm_api.c:490,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:492,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - db_file_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 485
    functionDepth: 4
    functionLinenumber: 485
    functionLinenumberEnd: 498
    functionName: GetDBHandleFromFilename
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 4
    functionsReached:
    - ThreadUnlock
    - ThreadLock
    - StringEqual
    linkageType: ''
    returnType: DBHandle
    signature: DBHandle *GetDBHandleFromFilename(const char *db_file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_api.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - DBHandle*
    assertStmts:
    - condition: (handle != NULL)
      pos:
        line_end: 502
        line_start: 502
        source_file: /src/core/libpromises/dbm_api.c
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: GetDBOpenTimestamp
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: time_t
    signature: time_t GetDBOpenTimestamp(const DBHandle *handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_api.c:509,1
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_api.c:513,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:517,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:518,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:519,1
    - Dst: DBPrivCommit
      Src: /src/core/libpromises/dbm_api.c:522,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_api.c:526,1
    - Dst: DBPathLock
      Src: /src/core/libpromises/dbm_api.c:536,1
    - Dst: DBPrivCloseDB
      Src: /src/core/libpromises/dbm_api.c:537,1
    - Dst: DBPathUnLock
      Src: /src/core/libpromises/dbm_api.c:541,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - handle
    argTypes:
    - DBHandle*
    assertStmts:
    - condition: (handle != NULL)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/core/libpromises/dbm_api.c
    constantsTouched: []
    func_position:
      end: 547
      start: 507
    functionDepth: 8
    functionLinenumber: 507
    functionLinenumberEnd: 547
    functionName: CloseDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 50
    functionsReached:
    - DBPrivCloseDB
    - ThreadLock
    - ThreadUnlock
    - assert
    - DBPathLock
    - DBPathUnLock
    - Log
    - DBPrivCommit
    - free
    linkageType: ''
    returnType: void
    signature: void CloseDB(DBHandle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libpromises/dbm_api.c:551,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_api.c:554,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:555,1
    - Dst: DBPrivClean
      Src: /src/core/libpromises/dbm_api.c:558,1
    - Dst: ThreadUnlock
      Src: /src/core/libpromises/dbm_api.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - DBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 549
    functionDepth: 8
    functionLinenumber: 549
    functionLinenumberEnd: 562
    functionName: CleanDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - ThreadUnlock
    - ThreadLock
    - Log
    - DBPrivClean
    linkageType: ''
    returnType: bool
    signature: bool CleanDB(DBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_api.c:566,1
    - Dst: DBPrivGetDBUsagePercentage
      Src: /src/core/libpromises/dbm_api.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - DBHandle*
    assertStmts:
    - condition: (handle != NULL)
      pos:
        line_end: 565
        line_start: 565
        source_file: /src/core/libpromises/dbm_api.c
    constantsTouched: []
    func_position:
      end: 568
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 568
    functionName: GetDBUsagePercentage
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 3
    functionsReached:
    - DBPrivGetDBUsagePercentage
    - assert
    linkageType: ''
    returnType: int
    signature: int GetDBUsagePercentage(const DBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/dbm_api.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - DBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 575
    functionDepth: 8
    functionLinenumber: 575
    functionLinenumberEnd: 582
    functionName: FreezeDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 2
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void FreezeDB(DBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivRead
      Src: /src/core/libpromises/dbm_api.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - key
    - key_size
    - dest
    - dest_size
    argTypes:
    - DBHandle*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: ReadComplexKeyDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 2
    functionsReached:
    - DBPrivRead
    linkageType: ''
    returnType: bool
    signature: "bool ReadComplexKeyDB(DBHandle *handle, const char *key, int key_size,\n
      \                     void *dest, int dest_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivWrite
      Src: /src/core/libpromises/dbm_api.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - key
    - key_size
    - value
    - value_size
    argTypes:
    - DBHandle*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 596
    functionName: WriteComplexKeyDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 3
    functionsReached:
    - DBPrivWrite
    linkageType: ''
    returnType: bool
    signature: "bool WriteComplexKeyDB(DBHandle *handle, const char *key, int key_size,\n
      \                      const void *value, int value_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivDelete
      Src: /src/core/libpromises/dbm_api.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - key_size
    argTypes:
    - DBHandle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: DeleteComplexKeyDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 0
    functionsReached:
    - DBPrivDelete
    linkageType: ''
    returnType: bool
    signature: bool DeleteComplexKeyDB(DBHandle *handle, const char *key, int key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivRead
      Src: /src/core/libpromises/dbm_api.c:605,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_api.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - key
    - dest
    - destSz
    argTypes:
    - DBHandle*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 606
    functionName: ReadDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 23
    functionsReached:
    - DBPrivRead
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool ReadDB(DBHandle *handle, const char *key, void *dest, int destSz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivWrite
      Src: /src/core/libpromises/dbm_api.c:610,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_api.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - key
    - src
    - srcSz
    argTypes:
    - DBHandle*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 611
    functionName: WriteDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 21
    functionsReached:
    - strlen
    - DBPrivWrite
    linkageType: ''
    returnType: bool
    signature: bool WriteDB(DBHandle *handle, const char *key, const void *src, int
      srcSz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/dbm_api.c:616,1
    - Dst: DBPrivOverwrite
      Src: /src/core/libpromises/dbm_api.c:617,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_api.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - handle
    - key
    - value
    - value_size
    - Condition
    - data
    argTypes:
    - DBHandle*
    - char*
    - void*
    - size_t
    - OverwriteCondition
    - void*
    assertStmts:
    - condition: (handle != NULL)
      pos:
        line_end: 615
        line_start: 615
        source_file: /src/core/libpromises/dbm_api.c
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: OverwriteDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 2
    functionsReached:
    - assert
    - DBPrivOverwrite
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool OverwriteDB(DBHandle *handle, const char *key, const void *value,
      size_t value_size,\n                 OverwriteCondition Condition, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivHasKey
      Src: /src/core/libpromises/dbm_api.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - key_size
    argTypes:
    - DBHandle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: HasKeyDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 9
    functionsReached:
    - DBPrivHasKey
    linkageType: ''
    returnType: bool
    signature: bool HasKeyDB(DBHandle *handle, const char *key, int key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivGetValueSize
      Src: /src/core/libpromises/dbm_api.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - key_size
    argTypes:
    - DBHandle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 628
    functionName: ValueSizeDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 3
    functionsReached:
    - DBPrivGetValueSize
    linkageType: ''
    returnType: int
    signature: int ValueSizeDB(DBHandle *handle, const char *key, int key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivDelete
      Src: /src/core/libpromises/dbm_api.c:632,1
    - Dst: strlen
      Src: /src/core/libpromises/dbm_api.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - DBHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 633
    functionName: DeleteDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 12
    functionsReached:
    - DBPrivDelete
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool DeleteDB(DBHandle *handle, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivOpenCursor
      Src: /src/core/libpromises/dbm_api.c:637,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_api.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - handle
    - cursor
    argTypes:
    - DBHandle*
    - DBCursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 646
    functionName: NewDBCursor
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 19
    functionsReached:
    - xcalloc
    - DBPrivOpenCursor
    linkageType: ''
    returnType: bool
    signature: bool NewDBCursor(DBHandle *handle, DBCursor **cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivAdvanceCursor
      Src: /src/core/libpromises/dbm_api.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cursor
    - key
    - ksize
    - value
    - vsize
    argTypes:
    - DBCursor*
    - char**
    - int*
    - void**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: NextDB
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 19
    functionsReached:
    - DBPrivAdvanceCursor
    linkageType: ''
    returnType: bool
    signature: "bool NextDB(DBCursor *cursor, char **key, int *ksize,\n            void
      **value, int *vsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivDeleteCursorEntry
      Src: /src/core/libpromises/dbm_api.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - DBCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 657
    functionName: DBCursorDeleteEntry
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 6
    functionsReached:
    - DBPrivDeleteCursorEntry
    linkageType: ''
    returnType: bool
    signature: bool DBCursorDeleteEntry(DBCursor *cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivWriteCursorEntry
      Src: /src/core/libpromises/dbm_api.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cursor
    - value
    - value_size
    argTypes:
    - DBCursor*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: DBCursorWriteEntry
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 2
    functionsReached:
    - DBPrivWriteCursorEntry
    linkageType: ''
    returnType: bool
    signature: bool DBCursorWriteEntry(DBCursor *cursor, const void *value, int value_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBPrivCloseCursor
      Src: /src/core/libpromises/dbm_api.c:666,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - DBCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 669
    functionName: DeleteDBCursor
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 19
    functionsReached:
    - DBPrivCloseCursor
    - free
    linkageType: ''
    returnType: bool
    signature: bool DeleteDBCursor(DBCursor *cursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libpromises/dbm_api.c:674,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/dbm_api.c:676,1
    - Dst: ExclusiveFileLockPath
      Src: /src/core/libpromises/dbm_api.c:679,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_api.c:681,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:682,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - lock
    - filename
    argTypes:
    - FileLock*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 671
    functionDepth: 11
    functionLinenumber: 671
    functionLinenumberEnd: 689
    functionName: DBPathLock
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 2
    functionsReached:
    - ExclusiveFileLockPath
    - xasprintf
    - Log
    - ProgrammingError
    - free
    linkageType: ''
    returnType: bool
    signature: bool DBPathLock(FileLock *lock, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExclusiveFileUnlock
      Src: /src/core/libpromises/dbm_api.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - FileLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 10
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: DBPathUnLock
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 2
    functionsReached:
    - ExclusiveFileUnlock
    linkageType: ''
    returnType: void
    signature: void DBPathUnLock(FileLock *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/libpromises/dbm_api.c:699,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/dbm_api.c:701,1
    - Dst: rename
      Src: /src/core/libpromises/dbm_api.c:704,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_api.c:706,1
    - Dst: free
      Src: /src/core/libpromises/dbm_api.c:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 696
    functionDepth: 8
    functionLinenumber: 696
    functionLinenumberEnd: 710
    functionName: DBPathMoveBroken
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 1
    functionsReached:
    - xasprintf
    - Log
    - ProgrammingError
    - free
    - rename
    linkageType: ''
    returnType: void
    signature: void DBPathMoveBroken(const char *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/libpromises/dbm_api.c:721,1
    - Dst: NewDBCursor
      Src: /src/core/libpromises/dbm_api.c:726,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_api.c:728,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_api.c:729,1
    - Dst: StringMapNew
      Src: /src/core/libpromises/dbm_api.c:733,1
    - Dst: NextDB
      Src: /src/core/libpromises/dbm_api.c:734,1
    - Dst: Log
      Src: /src/core/libpromises/dbm_api.c:743,1
    - Dst: xcalloc
      Src: /src/core/libpromises/dbm_api.c:747,1
    - Dst: memcpy
      Src: /src/core/libpromises/dbm_api.c:748,1
    - Dst: StringMapInsert
      Src: /src/core/libpromises/dbm_api.c:750,1
    - Dst: xstrdup
      Src: /src/core/libpromises/dbm_api.c:750,1
    - Dst: DeleteDBCursor
      Src: /src/core/libpromises/dbm_api.c:753,1
    - Dst: CloseDB
      Src: /src/core/libpromises/dbm_api.c:754,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - database_id
    argTypes:
    - dbid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 712
    functionDepth: 10
    functionLinenumber: 712
    functionLinenumberEnd: 757
    functionName: LoadDatabaseToStringMap
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - memcpy
    - NewDBCursor
    - StringMapInsert
    - OpenDB
    - DeleteDBCursor
    - Log
    - CloseDB
    - xstrdup
    - NextDB
    - StringMapNew
    linkageType: ''
    returnType: StringMap
    signature: StringMap *LoadDatabaseToStringMap(dbid database_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/libpromises/dbm_api.c:772,1
    - Dst: GetStateDir
      Src: /src/core/libpromises/dbm_api.c:773,1
    - Dst: access
      Src: /src/core/libpromises/dbm_api.c:777,1
    - Dst: unlink
      Src: /src/core/libpromises/dbm_api.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 783
    functionName: CheckDBRepairFlagFile
    functionSourceFile: /src/core/libpromises/dbm_api.c
    functionUses: 1
    functionsReached:
    - GetStateDir
    - unlink
    - xsnprintf
    - access
    linkageType: ''
    returnType: bool
    signature: bool CheckDBRepairFlagFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/core/libpromises/granules.c:34,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/granules.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 41
    functionName: GenTimeKey
    functionSourceFile: /src/core/libpromises/granules.c
    functionUses: 1
    functionsReached:
    - gmtime_r
    - xsnprintf
    linkageType: ''
    returnType: char
    signature: char *GenTimeKey(time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - here_and_now
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: GetTimeSlot
    functionSourceFile: /src/core/libpromises/granules.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetTimeSlot(time_t here_and_now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnsignedModulus
      Src: /src/core/libpromises/granules.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: GetShiftSlot
    functionSourceFile: /src/core/libpromises/granules.c
    functionUses: 0
    functionsReached:
    - UnsignedModulus
    linkageType: ''
    returnType: int
    signature: int GetShiftSlot(time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: GetShiftSlotStart
    functionSourceFile: /src/core/libpromises/granules.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t GetShiftSlotStart(time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: MeasurementSlotStart
    functionSourceFile: /src/core/libpromises/granules.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t MeasurementSlotStart(time_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/granules.c:65,1
    - Dst: GetTimeSlot
      Src: /src/core/libpromises/granules.c:67,1
    - Dst: MeasurementSlotStart
      Src: /src/core/libpromises/granules.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - slot
    - num_slots
    - now
    argTypes:
    - size_t
    - size_t
    - time_t
    assertStmts:
    - condition: (slot <= num_slots)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/core/libpromises/granules.c
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: MeasurementSlotTime
    functionSourceFile: /src/core/libpromises/granules.c
    functionUses: 1
    functionsReached:
    - assert
    - GetTimeSlot
    - MeasurementSlotStart
    linkageType: ''
    returnType: time_t
    signature: time_t MeasurementSlotTime(size_t slot, size_t num_slots, time_t now)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - datatype
    argTypes:
    - DataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 77
    functionName: DataTypeToRvalType
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 9
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: RvalType
    signature: RvalType DataTypeToRvalType(DataType datatype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - rlist
    - type
    argTypes:
    - Rlist*
    - RvalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: RlistValueIsType
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RlistValueIsType(const Rlist *rlist, RvalType type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rlist
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: RlistScalarValue
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 193
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *RlistScalarValue(const Rlist *rlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rlist
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: RlistScalarValueSafe
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 19
    functionsReached:
    - RlistScalarValue
    linkageType: ''
    returnType: char
    signature: char *RlistScalarValueSafe(const Rlist *rlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rlist
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: RlistFnCallValue
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 6
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: FnCall
    signature: FnCall *RlistFnCallValue(const Rlist *rlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rlist
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: RlistRlistValue
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistRlistValue(const Rlist *rlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: RvalScalarValue
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 25
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *RvalScalarValue(Rval rval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: RvalFnCallValue
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 10
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: FnCall
    signature: FnCall *RvalFnCallValue(Rval rval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: RvalRlistValue
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 11
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RvalRlistValue(Rval rval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: RvalContainerValue
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 5
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *RvalContainerValue(Rval rval)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - RvalType
    assertStmts:
    - condition: (false && "never reach")
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: RvalTypeToString
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *RvalTypeToString(RvalType type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/rlist.c:203,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - list
    - key
    argTypes:
    - Rlist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 210
    functionName: RlistKeyIn
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 3
    functionsReached:
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistKeyIn(Rlist *list, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:218,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/libpromises/rlist.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - list
    - key
    argTypes:
    - Rlist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 228
    functionName: RlistKeyIn_IgnoreCase
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - StringEqual_IgnoreCase
    - RlistScalarValue
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistKeyIn_IgnoreCase(Rlist *list, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistMatchesRegex
      Src: /src/core/libpromises/rlist.c:242,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - list
    - search
    argTypes:
    - Rlist*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: RlistMatchesRegexRlist
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - RlistScalarValue
    - RlistMatchesRegex
    linkageType: ''
    returnType: bool
    signature: bool RlistMatchesRegexRlist(const Rlist *list, const Rlist *search)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/rlist.c:262,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/rlist.c:271,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:271,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/rlist.c:273,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/rlist.c:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - list
    - regex
    argTypes:
    - Rlist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 280
    functionName: RlistMatchesRegex
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - RlistScalarValue
    - RegexDestroy
    - StringMatchFullWithPrecompiledRegex
    - CompileRegex
    linkageType: ''
    returnType: bool
    signature: bool RlistMatchesRegex(const Rlist *list, const char *regex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: RlistIsNullList
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RlistIsNullList(const Rlist *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchFull
      Src: /src/core/libpromises/rlist.c:301,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - list
    - str
    argTypes:
    - Rlist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 308
    functionName: RlistIsInListOfRegex
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - StringMatchFull
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool RlistIsInListOfRegex(const Rlist *list, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:312,1
    - Dst: StringEqual
      Src: /src/core/libpromises/rlist.c:323,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - Rlist*
    - char*
    assertStmts:
    - condition: (string != NULL)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 329
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 329
    functionName: RlistContainsString
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - assert
    - StringEqual
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool RlistContainsString(const Rlist *list, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:335,1
    - Dst: xstrdup
      Src: /src/core/libpromises/rlist.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts:
    - condition: (rval.type == RVAL_TYPE_SCALAR)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: RvalCopyScalar
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - assert
    - xstrdup
    linkageType: ''
    returnType: Rval
    signature: Rval RvalCopyScalar(Rval rval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/rlist.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - start
    - rval
    argTypes:
    - Rlist**
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 364
    functionName: RlistAppendRval
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistAppendRval(Rlist **start, Rval rval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:369,1
    - Dst: xmemdup
      Src: /src/core/libpromises/rlist.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - node
    - rval
    argTypes:
    - Rlist*
    - Rval
    assertStmts:
    - condition: (node != NULL)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: RlistInsertAfter
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - assert
    - xmemdup
    linkageType: ''
    returnType: void
    signature: void RlistInsertAfter(Rlist *node, Rval rval)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: JsonLength
      Src: /src/core/libpromises/rlist.c:382,1
    - Dst: strstr
      Src: /src/core/libpromises/rlist.c:383,1
    - Dst: strstr
      Src: /src/core/libpromises/rlist.c:383,1
    - Dst: xmalloc
      Src: /src/core/libpromises/rlist.c:389,1
    - Dst: xmalloc
      Src: /src/core/libpromises/rlist.c:390,1
    - Dst: BufferNew
      Src: /src/core/libpromises/rlist.c:392,1
    - Dst: StringCopy
      Src: /src/core/libpromises/rlist.c:393,1
    - Dst: JsonObjectGetAsString
      Src: /src/core/libpromises/rlist.c:425,1
    - Dst: memcpy
      Src: /src/core/libpromises/rlist.c:431,1
    - Dst: strlen
      Src: /src/core/libpromises/rlist.c:434,1
    - Dst: memcpy
      Src: /src/core/libpromises/rlist.c:435,1
    - Dst: strlcpy
      Src: /src/core/libpromises/rlist.c:438,1
    - Dst: StringCopy
      Src: /src/core/libpromises/rlist.c:443,1
    - Dst: xstrdup
      Src: /src/core/libpromises/rlist.c:461,1
    - Dst: xstrdup
      Src: /src/core/libpromises/rlist.c:463,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/rlist.c:466,1
    - Dst: free
      Src: /src/core/libpromises/rlist.c:467,1
    - Dst: free
      Src: /src/core/libpromises/rlist.c:468,1
    - Dst: xstrdup
      Src: /src/core/libpromises/rlist.c:474,1
    - Dst: FnCallCopyRewriter
      Src: /src/core/libpromises/rlist.c:478,1
    - Dst: RlistCopyRewriter
      Src: /src/core/libpromises/rlist.c:481,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/rlist.c:484,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:490,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - item
    - type
    - map
    argTypes:
    - void*
    - RvalType
    - JsonElement*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 492
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 492
    functionName: RvalNewRewriter
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - memcpy
    - JsonLength
    - BufferDestroy
    - strlen
    - strstr
    - JsonCopy
    - StringCopy
    - JsonObjectGetAsString
    - FnCallCopyRewriter
    - assert
    - xmalloc
    - xstrdup
    - BufferNew
    - free
    - strlcpy
    - RlistCopyRewriter
    linkageType: ''
    returnType: Rval
    signature: Rval RvalNewRewriter(const void *item, RvalType type, JsonElement *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RvalNewRewriter
      Src: /src/core/libpromises/rlist.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - type
    argTypes:
    - void*
    - RvalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 5
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: RvalNew
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 9
    functionsReached:
    - RvalNewRewriter
    linkageType: ''
    returnType: Rval
    signature: Rval RvalNew(const void *item, RvalType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: RvalNewSecret
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Rval
    signature: Rval RvalNewSecret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RvalNewRewriter
      Src: /src/core/libpromises/rlist.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rval
    - map
    argTypes:
    - Rval
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 5
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: RvalCopyRewriter
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - RvalNewRewriter
    linkageType: ''
    returnType: Rval
    signature: Rval RvalCopyRewriter(Rval rval, JsonElement *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RvalNew
      Src: /src/core/libpromises/rlist.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 6
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: RvalCopy
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 7
    functionsReached:
    - RvalNew
    linkageType: ''
    returnType: Rval
    signature: Rval RvalCopy(Rval rval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppendRval
      Src: /src/core/libpromises/rlist.c:522,1
    - Dst: RvalCopyRewriter
      Src: /src/core/libpromises/rlist.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - rp
    - map
    argTypes:
    - Rlist*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 516
    functionDepth: 6
    functionLinenumber: 516
    functionLinenumberEnd: 527
    functionName: RlistCopyRewriter
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - RvalCopyRewriter
    - RlistAppendRval
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistCopyRewriter(const Rlist *rp, JsonElement *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistCopyRewriter
      Src: /src/core/libpromises/rlist.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rp
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 7
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: RlistCopy
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 11
    functionsReached:
    - RlistCopyRewriter
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistCopy(const Rlist *rp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RvalDestroy
      Src: /src/core/libpromises/rlist.c:545,1
    - Dst: free
      Src: /src/core/libpromises/rlist.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - rl
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 551
    functionName: RlistDestroy
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 79
    functionsReached:
    - free
    - RvalDestroy
    linkageType: ''
    returnType: void
    signature: void RlistDestroy(Rlist *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistDestroy
      Src: /src/core/libpromises/rlist.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: RlistDestroy_untyped
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void RlistDestroy_untyped(void *rl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistKeyIn
      Src: /src/core/libpromises/rlist.c:562,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - start
    - scalar
    argTypes:
    - Rlist**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 568
    functionName: RlistAppendScalarIdemp
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 6
    functionsReached:
    - RlistKeyIn
    - RlistAppendScalar
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistAppendScalarIdemp(Rlist **start, const char *scalar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistKeyIn
      Src: /src/core/libpromises/rlist.c:572,1
    - Dst: RlistPrepend
      Src: /src/core/libpromises/rlist.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - start
    - scalar
    argTypes:
    - Rlist**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 578
    functionName: RlistPrependScalarIdemp
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 3
    functionsReached:
    - RlistKeyIn
    - RlistPrepend
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistPrependScalarIdemp(Rlist **start, const char *scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppendRval
      Src: /src/core/libpromises/rlist.c:582,1
    - Dst: RvalCopyScalar
      Src: /src/core/libpromises/rlist.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - scalar
    argTypes:
    - Rlist**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: RlistAppendScalar
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 27
    functionsReached:
    - RvalCopyScalar
    - RlistAppendRval
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistAppendScalar(Rlist **start, const char *scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:587,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:589,1
    - Dst: RlistContainsString
      Src: /src/core/libpromises/rlist.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - start
    - string
    argTypes:
    - Rlist**
    - char*
    assertStmts:
    - condition: (RlistContainsString(l, string))
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 592
      start: 585
    functionDepth: 5
    functionLinenumber: 585
    functionLinenumberEnd: 592
    functionName: RlistAppendString
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - assert
    - RlistContainsString
    - RlistAppendScalar
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistAppendString(Rlist **start, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppendAllTypes
      Src: /src/core/libpromises/rlist.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - start
    - item
    - type
    argTypes:
    - Rlist**
    - void*
    - RvalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: RlistAppend
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 8
    functionsReached:
    - RlistAppendAllTypes
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistAppend(Rlist **start, const void *item, RvalType type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:608,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/rlist.c:616,1
    - Dst: RlistLen
      Src: /src/core/libpromises/rlist.c:616,1
    - Dst: JsonArrayAppendElement
      Src: /src/core/libpromises/rlist.c:619,1
    - Dst: RvalToJson
      Src: /src/core/libpromises/rlist.c:619,1
    - Dst: RlistAppendRval
      Src: /src/core/libpromises/rlist.c:622,1
    - Dst: RlistAppendRval
      Src: /src/core/libpromises/rlist.c:627,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/rlist.c:627,1
    - Dst: RlistAppendRval
      Src: /src/core/libpromises/rlist.c:635,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/rlist.c:635,1
    - Dst: Log
      Src: /src/core/libpromises/rlist.c:641,1
    - Dst: xmalloc
      Src: /src/core/libpromises/rlist.c:645,1
    - Dst: RvalNew
      Src: /src/core/libpromises/rlist.c:647,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - start
    - item
    - type
    - allow_all_types
    argTypes:
    - Rlist**
    - void*
    - RvalType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 601
    functionDepth: 8
    functionLinenumber: 601
    functionLinenumberEnd: 664
    functionName: RlistAppendAllTypes
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - RlistAppendScalar
    - RlistAppendRval
    - JsonCopy
    - RvalNew
    - RvalCopy
    - Log
    - RvalToJson
    - JsonArrayAppendElement
    - xmalloc
    - RlistLen
    - JsonArrayCreate
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistAppendAllTypes(Rlist **start, const void *item, RvalType
      type, bool allow_all_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/rlist.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - start
    - rval
    argTypes:
    - Rlist**
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 678
    functionName: RlistPrependRval
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistPrependRval(Rlist **start, Rval rval)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RlistPrependRval
      Src: /src/core/libpromises/rlist.c:689,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/rlist.c:689,1
    - Dst: RlistPrependRval
      Src: /src/core/libpromises/rlist.c:698,1
    - Dst: RvalNew
      Src: /src/core/libpromises/rlist.c:698,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - start
    - item
    - type
    argTypes:
    - Rlist**
    - void*
    - RvalType
    assertStmts:
    - condition: (false)
      pos:
        line_end: 700
        line_start: 700
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 703
      start: 680
    functionDepth: 7
    functionLinenumber: 680
    functionLinenumberEnd: 703
    functionName: RlistPrepend
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 14
    functionsReached:
    - assert
    - RlistPrependRval
    - RvalCopy
    - RvalNew
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistPrepend(Rlist **start, const void *item, RvalType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - start
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 717
    functionName: RlistLen
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RlistLen(const Rlist *start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/rlist.c:727,1
    - Dst: sscanf
      Src: /src/core/libpromises/rlist.c:732,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:732,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:733,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/rlist.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 738
    functionName: RlistParseShown
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - RlistAppendScalar
    - RlistFromSplitString
    - sscanf
    - RlistDestroy
    - RlistScalarValue
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistParseShown(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 757
    functionName: CLASS_BLANK
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_BLANK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 758
    functionName: CLASS_START1
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_START1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 759
    functionName: CLASS_START2
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_START2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 760
    functionName: CLASS_END1
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_END1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: CLASS_END2
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_END2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 762
    functionName: CLASS_BRA1
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_BRA1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 763
    functionName: CLASS_BRA2
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_BRA2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 764
    functionName: CLASS_SEP
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_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: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: CLASS_EOL
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_EOL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 767
    functionName: CLASS_ANY0
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_ANY0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 768
    functionName: CLASS_ANY1
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_ANY1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 769
    functionName: CLASS_ANY2
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_ANY2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 770
    functionName: CLASS_ANY3
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_ANY3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: CLASS_ANY4
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_ANY4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 772
    functionName: CLASS_ANY5
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_ANY5(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: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 773
    functionName: CLASS_ANY6
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_ANY6(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 774
    functionName: CLASS_ANY7
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLASS_ANY7(x)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: BufferNewWithCapacity
      Src: /src/core/libpromises/rlist.c:789,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:791,1
    - Dst: Log
      Src: /src/core/libpromises/rlist.c:798,1
    - Dst: CLASS_BLANK
      Src: /src/core/libpromises/rlist.c:802,1
    - Dst: CLASS_BRA1
      Src: /src/core/libpromises/rlist.c:806,1
    - Dst: CLASS_ANY0
      Src: /src/core/libpromises/rlist.c:810,1
    - Dst: CLASS_BLANK
      Src: /src/core/libpromises/rlist.c:817,1
    - Dst: CLASS_START1
      Src: /src/core/libpromises/rlist.c:821,1
    - Dst: BufferClear
      Src: /src/core/libpromises/rlist.c:823,1
    - Dst: CLASS_START2
      Src: /src/core/libpromises/rlist.c:826,1
    - Dst: BufferClear
      Src: /src/core/libpromises/rlist.c:828,1
    - Dst: CLASS_ANY1
      Src: /src/core/libpromises/rlist.c:831,1
    - Dst: CLASS_END1
      Src: /src/core/libpromises/rlist.c:838,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:840,1
    - Dst: BufferData
      Src: /src/core/libpromises/rlist.c:840,1
    - Dst: BufferClear
      Src: /src/core/libpromises/rlist.c:841,1
    - Dst: CLASS_ANY2
      Src: /src/core/libpromises/rlist.c:844,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/rlist.c:846,1
    - Dst: CLASS_END2
      Src: /src/core/libpromises/rlist.c:852,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:854,1
    - Dst: BufferData
      Src: /src/core/libpromises/rlist.c:854,1
    - Dst: BufferClear
      Src: /src/core/libpromises/rlist.c:855,1
    - Dst: CLASS_ANY3
      Src: /src/core/libpromises/rlist.c:858,1
    - Dst: BufferAppendChar
      Src: /src/core/libpromises/rlist.c:860,1
    - Dst: CLASS_SEP
      Src: /src/core/libpromises/rlist.c:866,1
    - Dst: CLASS_BRA2
      Src: /src/core/libpromises/rlist.c:870,1
    - Dst: CLASS_BLANK
      Src: /src/core/libpromises/rlist.c:874,1
    - Dst: CLASS_ANY4
      Src: /src/core/libpromises/rlist.c:878,1
    - Dst: CLASS_SEP
      Src: /src/core/libpromises/rlist.c:885,1
    - Dst: CLASS_BRA2
      Src: /src/core/libpromises/rlist.c:889,1
    - Dst: CLASS_BLANK
      Src: /src/core/libpromises/rlist.c:893,1
    - Dst: CLASS_ANY5
      Src: /src/core/libpromises/rlist.c:897,1
    - Dst: CLASS_BLANK
      Src: /src/core/libpromises/rlist.c:904,1
    - Dst: CLASS_START1
      Src: /src/core/libpromises/rlist.c:908,1
    - Dst: CLASS_START2
      Src: /src/core/libpromises/rlist.c:912,1
    - Dst: CLASS_ANY6
      Src: /src/core/libpromises/rlist.c:916,1
    - Dst: CLASS_BLANK
      Src: /src/core/libpromises/rlist.c:923,1
    - Dst: CLASS_EOL
      Src: /src/core/libpromises/rlist.c:927,1
    - Dst: CLASS_ANY7
      Src: /src/core/libpromises/rlist.c:931,1
    - Dst: Log
      Src: /src/core/libpromises/rlist.c:938,1
    - Dst: Log
      Src: /src/core/libpromises/rlist.c:947,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/rlist.c:952,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/rlist.c:956,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/rlist.c:957,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:958,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 141
    argCount: 2
    argNames:
    - str
    - newlist
    argTypes:
    - char*
    - Rlist**
    assertStmts:
    - condition: (newlist)
      pos:
        line_end: 790
        line_start: 790
        source_file: /src/core/libpromises/rlist.c
    - condition: (ret != 0)
      pos:
        line_end: 957
        line_start: 957
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 960
      start: 783
    functionDepth: 8
    functionLinenumber: 783
    functionLinenumberEnd: 960
    functionName: LaunchParsingMachine
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - CLASS_ANY5
    - BufferDestroy
    - CLASS_SEP
    - RlistAppendScalar
    - CLASS_ANY0
    - CLASS_ANY3
    - CLASS_BRA2
    - CLASS_END1
    - Log
    - BufferData
    - CLASS_START2
    - CLASS_ANY6
    - CLASS_BRA1
    - CLASS_ANY4
    - CLASS_ANY7
    - CLASS_BLANK
    - BufferAppendChar
    - BufferClear
    - RlistDestroy
    - CLASS_ANY2
    - CLASS_EOL
    - CLASS_START1
    - BufferNewWithCapacity
    - assert
    - CLASS_ANY1
    - CLASS_END2
    linkageType: ''
    returnType: int
    signature: int LaunchParsingMachine(const char *str, Rlist **newlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LaunchParsingMachine
      Src: /src/core/libpromises/rlist.c:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 962
    functionDepth: 9
    functionLinenumber: 962
    functionLinenumberEnd: 971
    functionName: RlistParseString
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 3
    functionsReached:
    - LaunchParsingMachine
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistParseString(const char *string)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/rlist.c:985,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/rlist.c:985,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/rlist.c:989,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/rlist.c:989,1
    - Dst: FnCallDestroy
      Src: /src/core/libpromises/rlist.c:993,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/rlist.c:993,1
    - Dst: JsonDestroy
      Src: /src/core/libpromises/rlist.c:997,1
    - Dst: RvalContainerValue
      Src: /src/core/libpromises/rlist.c:997,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 1003
    functionName: RvalDestroy
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 26
    functionsReached:
    - RvalFnCallValue
    - JsonDestroy
    - RvalScalarValue
    - RvalContainerValue
    - RlistDestroy
    - free
    - RvalRlistValue
    - FnCallDestroy
    linkageType: ''
    returnType: void
    signature: void RvalDestroy(Rval rval)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/rlist.c:1013,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1030,1
    - Dst: free
      Src: /src/core/libpromises/rlist.c:1034,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - liststart
    - entry
    argTypes:
    - Rlist**
    - Rlist*
    assertStmts:
    - condition: (rp && rp->next == entry)
      pos:
        line_end: 1029
        line_start: 1029
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1036
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1036
    functionName: RlistDestroyEntry
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: void RlistDestroyEntry(Rlist **liststart, Rlist *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1051,1
    - Dst: strchr
      Src: /src/core/libpromises/rlist.c:1072,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1073,1
    - Dst: strlen
      Src: /src/core/libpromises/rlist.c:1081,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1082,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1093,1
    - Dst: RlistPrependRval
      Src: /src/core/libpromises/rlist.c:1098,1
    - Dst: RvalCopyScalar
      Src: /src/core/libpromises/rlist.c:1098,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 4
    argNames:
    - to
    - from
    - sep
    - lstrip
    argTypes:
    - Rlist**
    - char*
    - char
    - char
    assertStmts:
    - condition: (from && from[0])
      pos:
        line_end: 1050
        line_start: 1050
        source_file: /src/core/libpromises/rlist.c
    - condition: (consume >= escapes)
      pos:
        line_end: 1081
        line_start: 1081
        source_file: /src/core/libpromises/rlist.c
    - condition: (end == NULL || end[0] == sep)
      pos:
        line_end: 1072
        line_start: 1072
        source_file: /src/core/libpromises/rlist.c
    - condition: (dst + 1 == copy + sizeof(copy))
      pos:
        line_end: 1092
        line_start: 1092
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1100
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1100
    functionName: SubStrnCopyChr
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - strlen
    - assert
    - strchr
    - RvalCopyScalar
    - RlistPrependRval
    linkageType: ''
    returnType: size_t
    signature: size_t SubStrnCopyChr(Rlist **to, const char *from, char sep, char
      lstrip)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SubStrnCopyChr
      Src: /src/core/libpromises/rlist.c:1115,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1116,1
    - Dst: strlen
      Src: /src/core/libpromises/rlist.c:1116,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1119,1
    - Dst: RlistReverse
      Src: /src/core/libpromises/rlist.c:1124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - string
    - sep
    argTypes:
    - char*
    - char
    assertStmts:
    - condition: (*sp == sep && (sp == string || sp[-1] != '\\'))
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/core/libpromises/rlist.c
    - condition: ((size_t) (sp - string) <= strlen(string))
      pos:
        line_end: 1115
        line_start: 1115
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1126
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1126
    functionName: RlistFromSplitString
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 21
    functionsReached:
    - RlistReverse
    - assert
    - SubStrnCopyChr
    - strlen
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistFromSplitString(const char *string, char sep)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/core/libpromises/rlist.c:1147,1
    - Dst: RlistFromSplitString
      Src: /src/core/libpromises/rlist.c:1149,1
    - Dst: SubStrnCopyChr
      Src: /src/core/libpromises/rlist.c:1159,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1160,1
    - Dst: strlen
      Src: /src/core/libpromises/rlist.c:1160,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1163,1
    - Dst: RlistReverse
      Src: /src/core/libpromises/rlist.c:1168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - string
    - detect_crlf
    argTypes:
    - char*
    - bool
    assertStmts:
    - condition: ((size_t) (sp - string) <= strlen(string))
      pos:
        line_end: 1159
        line_start: 1159
        source_file: /src/core/libpromises/rlist.c
    - condition: (*sp == '\r' && (sp == string || sp[-1] != '\\'))
      pos:
        line_end: 1162
        line_start: 1162
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1170
      start: 1140
    functionDepth: 2
    functionLinenumber: 1140
    functionLinenumberEnd: 1170
    functionName: RlistFromStringSplitLines
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - RlistReverse
    - strlen
    - strstr
    - assert
    - RlistFromSplitString
    - SubStrnCopyChr
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistFromStringSplitLines(const char *string, bool detect_crlf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1176,1
    - Dst: BufferNewWithCapacity
      Src: /src/core/libpromises/rlist.c:1187,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/rlist.c:1189,1
    - Dst: StringMatchWithPrecompiledRegex
      Src: /src/core/libpromises/rlist.c:1193,1
    - Dst: BufferClear
      Src: /src/core/libpromises/rlist.c:1200,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/rlist.c:1201,1
    - Dst: BufferSize
      Src: /src/core/libpromises/rlist.c:1203,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:1205,1
    - Dst: BufferData
      Src: /src/core/libpromises/rlist.c:1205,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/rlist.c:1212,1
    - Dst: BufferClear
      Src: /src/core/libpromises/rlist.c:1217,1
    - Dst: strlen
      Src: /src/core/libpromises/rlist.c:1218,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/rlist.c:1219,1
    - Dst: BufferSize
      Src: /src/core/libpromises/rlist.c:1221,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:1223,1
    - Dst: BufferData
      Src: /src/core/libpromises/rlist.c:1223,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/rlist.c:1227,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - string
    - regex
    - max_entries
    - allow_blanks
    argTypes:
    - char*
    - char*
    - size_t
    - bool
    assertStmts:
    - condition: (string)
      pos:
        line_end: 1175
        line_start: 1175
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1230
      start: 1174
    functionDepth: 3
    functionLinenumber: 1174
    functionLinenumberEnd: 1230
    functionName: RlistFromSplitRegex
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 10
    functionsReached:
    - BufferData
    - BufferAppend
    - BufferDestroy
    - BufferNewWithCapacity
    - RlistAppendScalar
    - strlen
    - assert
    - CompileRegex
    - RegexDestroy
    - BufferClear
    - BufferSize
    - StringMatchWithPrecompiledRegex
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistFromSplitRegex(const char *string, const char *regex, size_t
      max_entries, bool allow_blanks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1247,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1248,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/rlist.c:1252,1
    - Dst: Log
      Src: /src/core/libpromises/rlist.c:1256,1
    - Dst: StringMatchWithPrecompiledRegex
      Src: /src/core/libpromises/rlist.c:1261,1
    - Dst: Log
      Src: /src/core/libpromises/rlist.c:1267,1
    - Dst: memcpy
      Src: /src/core/libpromises/rlist.c:1272,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:1274,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1280,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:1281,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/rlist.c:1283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - string
    - regex
    - max
    argTypes:
    - char*
    - char*
    - int
    assertStmts:
    - condition: (max > 0)
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/core/libpromises/rlist.c
    - condition: (string != NULL)
      pos:
        line_end: 1247
        line_start: 1247
        source_file: /src/core/libpromises/rlist.c
    - condition: (count < max)
      pos:
        line_end: 1279
        line_start: 1279
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1286
      start: 1240
    functionDepth: 8
    functionLinenumber: 1240
    functionLinenumberEnd: 1286
    functionName: RlistFromRegexSplitNoOverflow
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 9
    functionsReached:
    - memcpy
    - RlistAppendScalar
    - assert
    - CompileRegex
    - RegexDestroy
    - Log
    - StringMatchWithPrecompiledRegex
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistFromRegexSplitNoOverflow(const char *string, const char
      *regex, int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - start
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1300
    functionName: RlistLast
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistLast(Rlist *start)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1306,1
    - Dst: KeepPredicate
      Src: /src/core/libpromises/rlist.c:1312,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:1312,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1324,1
    - Dst: DestroyItem
      Src: /src/core/libpromises/rlist.c:1330,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/rlist.c:1335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - list
    - predicate_user_data
    argTypes:
    - Rlist**
    - void*
    assertStmts:
    - condition: (KeepPredicate)
      pos:
        line_end: 1305
        line_start: 1305
        source_file: /src/core/libpromises/rlist.c
    - condition: (rp == *list)
      pos:
        line_end: 1323
        line_start: 1323
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1338
      start: 1302
    functionDepth: 2
    functionLinenumber: 1302
    functionLinenumberEnd: 1338
    functionName: RlistFilter
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - DestroyItem
    - assert
    - KeepPredicate
    - RlistDestroy
    - RlistScalarValue
    linkageType: ''
    returnType: void
    signature: "void RlistFilter(Rlist **list,\n                 bool (*KeepPredicate)(void
      *, void *), void *predicate_user_data,\n                 void (*DestroyItem)(void
      *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1351
    functionName: RlistReverse
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RlistReverse(Rlist **list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libpromises/rlist.c:1355,1
    - Dst: RvalWriteQuoted
      Src: /src/core/libpromises/rlist.c:1359,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/rlist.c:1363,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/rlist.c:1367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - list
    argTypes:
    - Writer*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1353
    functionDepth: 5
    functionLinenumber: 1353
    functionLinenumberEnd: 1368
    functionName: RlistWrite
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 6
    functionsReached:
    - WriterWriteChar
    - WriterWrite
    - RvalWriteQuoted
    linkageType: ''
    returnType: void
    signature: void RlistWrite(Writer *writer, const Rlist *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/rlist.c:1374,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/rlist.c:1380,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/rlist.c:1382,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/rlist.c:1386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - writer
    - s
    - quote
    - raw
    argTypes:
    - Writer*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1370
    functionDepth: 4
    functionLinenumber: 1370
    functionLinenumberEnd: 1388
    functionName: ScalarWrite
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - WriterWriteChar
    linkageType: ''
    returnType: void
    signature: void ScalarWrite(Writer *writer, const char *s, bool quote, bool raw)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ScalarWrite
      Src: /src/core/libpromises/rlist.c:1400,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/rlist.c:1404,1
    - Dst: FnCallWrite
      Src: /src/core/libpromises/rlist.c:1408,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/rlist.c:1412,1
    - Dst: JsonWrite
      Src: /src/core/libpromises/rlist.c:1416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - writer
    - item
    - type
    - quote
    - raw
    argTypes:
    - Writer*
    - void*
    - RvalType
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1390
    functionDepth: 7
    functionLinenumber: 1390
    functionLinenumberEnd: 1419
    functionName: RvalWriteParts
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - ScalarWrite
    - WriterWrite
    - JsonWrite
    - FnCallWrite
    - RlistWrite
    linkageType: ''
    returnType: void
    signature: void RvalWriteParts(Writer *writer, const void* item, RvalType type,
      bool quote, bool raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RvalWriteParts
      Src: /src/core/libpromises/rlist.c:1423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - rval
    argTypes:
    - Writer*
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1421
    functionDepth: 8
    functionLinenumber: 1421
    functionLinenumberEnd: 1424
    functionName: RvalWrite
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 6
    functionsReached:
    - RvalWriteParts
    linkageType: ''
    returnType: void
    signature: void RvalWrite(Writer *writer, Rval rval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RvalWriteParts
      Src: /src/core/libpromises/rlist.c:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - rval
    argTypes:
    - Writer*
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1426
    functionDepth: 8
    functionLinenumber: 1426
    functionLinenumberEnd: 1429
    functionName: RvalWriteQuoted
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 3
    functionsReached:
    - RvalWriteParts
    linkageType: ''
    returnType: void
    signature: void RvalWriteQuoted(Writer *writer, Rval rval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RvalWriteParts
      Src: /src/core/libpromises/rlist.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - rval
    argTypes:
    - Writer*
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1431
    functionDepth: 8
    functionLinenumber: 1431
    functionLinenumberEnd: 1434
    functionName: RvalWriteRaw
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - RvalWriteParts
    linkageType: ''
    returnType: void
    signature: void RvalWriteRaw(Writer *writer, Rval rval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libpromises/rlist.c:1438,1
    - Dst: RvalWrite
      Src: /src/core/libpromises/rlist.c:1439,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/rlist.c:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1436
    functionDepth: 9
    functionLinenumber: 1436
    functionLinenumberEnd: 1441
    functionName: RvalToString
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 10
    functionsReached:
    - StringWriterClose
    - RvalWrite
    - StringWriter
    linkageType: ''
    returnType: char
    signature: char *RvalToString(Rval rval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/libpromises/rlist.c:1445,1
    - Dst: RlistWrite
      Src: /src/core/libpromises/rlist.c:1446,1
    - Dst: StringWriterClose
      Src: /src/core/libpromises/rlist.c:1447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rlist
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1443
    functionDepth: 6
    functionLinenumber: 1443
    functionLinenumberEnd: 1448
    functionName: RlistToString
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - StringWriterClose
    - StringWriter
    - RlistWrite
    linkageType: ''
    returnType: char
    signature: char *RlistToString(const Rlist *rlist)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: StringHash
      Src: /src/core/libpromises/rlist.c:1455,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/rlist.c:1455,1
    - Dst: FnCallHash
      Src: /src/core/libpromises/rlist.c:1457,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/rlist.c:1457,1
    - Dst: RlistHash
      Src: /src/core/libpromises/rlist.c:1459,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/rlist.c:1459,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:1464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - rval
    - seed
    argTypes:
    - Rval
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1450
    functionDepth: 2
    functionLinenumber: 1450
    functionLinenumberEnd: 1466
    functionName: RvalHash
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - StringHash
    - RvalFnCallValue
    - RlistHash
    - RvalScalarValue
    - FnCallHash
    - ProgrammingError
    - RvalRlistValue
    linkageType: ''
    returnType: unsigned
    signature: unsigned RvalHash(Rval rval, unsigned seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RvalHash
      Src: /src/core/libpromises/rlist.c:1473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - seed
    argTypes:
    - Rlist*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1468
    functionDepth: 3
    functionLinenumber: 1468
    functionLinenumberEnd: 1476
    functionName: RlistHash
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - RvalHash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int RlistHash(const Rlist *list, unsigned seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistHash
      Src: /src/core/libpromises/rlist.c:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - seed
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1478
    functionDepth: 4
    functionLinenumber: 1478
    functionLinenumberEnd: 1481
    functionName: RlistHash_untyped
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - RlistHash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int RlistHash_untyped(const void *list, unsigned seed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1486,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/rlist.c:1488,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/rlist.c:1490,1
    - Dst: JsonObjectAppendString
      Src: /src/core/libpromises/rlist.c:1491,1
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/rlist.c:1493,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/rlist.c:1500,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:1500,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/rlist.c:1504,1
    - Dst: FnCallToJson
      Src: /src/core/libpromises/rlist.c:1504,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/rlist.c:1504,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1508,1
    - Dst: JsonObjectAppendArray
      Src: /src/core/libpromises/rlist.c:1512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FnCall*
    assertStmts:
    - condition: (fp)
      pos:
        line_end: 1485
        line_start: 1485
        source_file: /src/core/libpromises/rlist.c
    - condition: (false && "Unknown argument type")
      pos:
        line_end: 1507
        line_start: 1507
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1515
      start: 1484
    functionDepth: 2
    functionLinenumber: 1484
    functionLinenumberEnd: 1515
    functionName: FnCallToJson
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - assert
    - RlistFnCallValue
    - JsonArrayAppendString
    - JsonArrayAppendObject
    - JsonObjectAppendArray
    - RlistScalarValue
    - FnCallToJson
    - JsonObjectCreate
    - JsonObjectAppendString
    - JsonArrayCreate
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *FnCallToJson(const FnCall *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonArrayCreate
      Src: /src/core/libpromises/rlist.c:1519,1
    - Dst: RlistLen
      Src: /src/core/libpromises/rlist.c:1519,1
    - Dst: JsonArrayAppendString
      Src: /src/core/libpromises/rlist.c:1526,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:1526,1
    - Dst: JsonArrayAppendArray
      Src: /src/core/libpromises/rlist.c:1530,1
    - Dst: RlistToJson
      Src: /src/core/libpromises/rlist.c:1530,1
    - Dst: RlistRlistValue
      Src: /src/core/libpromises/rlist.c:1530,1
    - Dst: JsonArrayAppendObject
      Src: /src/core/libpromises/rlist.c:1534,1
    - Dst: FnCallToJson
      Src: /src/core/libpromises/rlist.c:1534,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/rlist.c:1534,1
    - Dst: ProgrammingError
      Src: /src/core/libpromises/rlist.c:1538,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1517
    functionDepth: 2
    functionLinenumber: 1517
    functionLinenumberEnd: 1544
    functionName: RlistToJson
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 1
    functionsReached:
    - RlistRlistValue
    - RlistToJson
    - RlistFnCallValue
    - ProgrammingError
    - JsonArrayAppendObject
    - RlistScalarValue
    - JsonArrayAppendArray
    - FnCallToJson
    - JsonArrayCreate
    - JsonArrayAppendString
    - RlistLen
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *RlistToJson(Rlist *list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1549,1
    - Dst: JsonStringCreate
      Src: /src/core/libpromises/rlist.c:1554,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/rlist.c:1554,1
    - Dst: RlistToJson
      Src: /src/core/libpromises/rlist.c:1556,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/rlist.c:1556,1
    - Dst: FnCallToJson
      Src: /src/core/libpromises/rlist.c:1558,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/rlist.c:1558,1
    - Dst: JsonCopy
      Src: /src/core/libpromises/rlist.c:1560,1
    - Dst: RvalContainerValue
      Src: /src/core/libpromises/rlist.c:1560,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1562,1
    - Dst: JsonObjectCreate
      Src: /src/core/libpromises/rlist.c:1563,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts:
    - condition: (rval.item || rval.type == RVAL_TYPE_LIST)
      pos:
        line_end: 1548
        line_start: 1548
        source_file: /src/core/libpromises/rlist.c
    - condition: (false)
      pos:
        line_end: 1561
        line_start: 1561
        source_file: /src/core/libpromises/rlist.c
    - condition: (false)
      pos:
        line_end: 1565
        line_start: 1565
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1568
      start: 1546
    functionDepth: 4
    functionLinenumber: 1546
    functionLinenumberEnd: 1568
    functionName: RvalToJson
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 4
    functionsReached:
    - JsonStringCreate
    - RvalFnCallValue
    - RvalScalarValue
    - JsonCopy
    - assert
    - RlistToJson
    - RvalContainerValue
    - FnCallToJson
    - JsonObjectCreate
    - RvalRlistValue
    linkageType: ''
    returnType: JsonElement
    signature: JsonElement *RvalToJson(Rval rval)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IsNakedVar
      Src: /src/core/libpromises/rlist.c:1582,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:1582,1
    - Dst: GetNaked
      Src: /src/core/libpromises/rlist.c:1585,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:1585,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/rlist.c:1589,1
    - Dst: Log
      Src: /src/core/libpromises/rlist.c:1591,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:1592,1
    - Dst: VarRefParse
      Src: /src/core/libpromises/rlist.c:1594,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/rlist.c:1596,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/rlist.c:1597,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1601,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/rlist.c:1605,1
    - Dst: Log
      Src: /src/core/libpromises/rlist.c:1607,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/rlist.c:1609,1
    - Dst: DataTypeToString
      Src: /src/core/libpromises/rlist.c:1609,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1621,1
    - Dst: RlistInsertAfter
      Src: /src/core/libpromises/rlist.c:1623,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/rlist.c:1623,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1628,1
    - Dst: RlistDestroyEntry
      Src: /src/core/libpromises/rlist.c:1629,1
    - Dst: RlistToString
      Src: /src/core/libpromises/rlist.c:1631,1
    - Dst: Log
      Src: /src/core/libpromises/rlist.c:1632,1
    - Dst: free
      Src: /src/core/libpromises/rlist.c:1633,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - list
    argTypes:
    - EvalContext*
    - Rlist**
    assertStmts:
    - condition: (value == NULL)
      pos:
        line_end: 1600
        line_start: 1600
        source_file: /src/core/libpromises/rlist.c
    - condition: (insert_after->next == next)
      pos:
        line_end: 1627
        line_start: 1627
        source_file: /src/core/libpromises/rlist.c
    - condition: (insert_after != NULL)
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1637
      start: 1574
    functionDepth: 10
    functionLinenumber: 1574
    functionLinenumberEnd: 1637
    functionName: RlistFlatten
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 4
    functionsReached:
    - DataTypeToString
    - IsExpandable
    - IsNakedVar
    - assert
    - RlistDestroyEntry
    - VarRefDestroy
    - RlistInsertAfter
    - EvalContextVariableGet
    - RvalCopy
    - Log
    - VarRefParse
    - RlistToString
    - RlistScalarValue
    - free
    - DataTypeToRvalType
    - GetNaked
    linkageType: ''
    returnType: void
    signature: void RlistFlatten(EvalContext *ctx, Rlist **list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/rlist.c:1668,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/rlist.c:1668,1
    - Dst: strcmp
      Src: /src/core/libpromises/rlist.c:1673,1
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1685,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 2
    argNames:
    - list1
    - list2
    argTypes:
    - Rlist*
    - Rlist*
    assertStmts:
    - condition: (rp1->val.item == NULL && rp2->val.item == NULL)
      pos:
        line_end: 1684
        line_start: 1684
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1690
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1690
    functionName: RlistEqual
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - IsCf3VarString
    - assert
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool RlistEqual(const Rlist *list1, const Rlist *list2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RlistEqual
      Src: /src/core/libpromises/rlist.c:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list1
    - list2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1692
    functionDepth: 2
    functionLinenumber: 1692
    functionLinenumberEnd: 1695
    functionName: RlistEqual_untyped
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - RlistEqual
    linkageType: ''
    returnType: bool
    signature: bool RlistEqual_untyped(const void *list1, const void *list2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/rlist.c:1701,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/rlist.c:1701,1
    - Dst: JsonGetPrimitiveType
      Src: /src/core/libpromises/rlist.c:1703,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:1706,1
    - Dst: JsonPrimitiveGetAsBool
      Src: /src/core/libpromises/rlist.c:1706,1
    - Dst: StringFromLong
      Src: /src/core/libpromises/rlist.c:1710,1
    - Dst: JsonPrimitiveGetAsInteger
      Src: /src/core/libpromises/rlist.c:1710,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:1711,1
    - Dst: free
      Src: /src/core/libpromises/rlist.c:1712,1
    - Dst: StringFromDouble
      Src: /src/core/libpromises/rlist.c:1717,1
    - Dst: JsonPrimitiveGetAsReal
      Src: /src/core/libpromises/rlist.c:1717,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:1718,1
    - Dst: free
      Src: /src/core/libpromises/rlist.c:1719,1
    - Dst: RlistAppendScalar
      Src: /src/core/libpromises/rlist.c:1723,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/rlist.c:1723,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - list
    - primitive
    argTypes:
    - Rlist**
    - JsonElement*
    assertStmts:
    - condition: (JsonGetElementType(primitive) == JSON_ELEMENT_TYPE_PRIMITIVE)
      pos:
        line_end: 1700
        line_start: 1700
        source_file: /src/core/libpromises/rlist.c
    constantsTouched: []
    func_position:
      end: 1729
      start: 1699
    functionDepth: 5
    functionLinenumber: 1699
    functionLinenumberEnd: 1729
    functionName: RlistAppendContainerPrimitive
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 0
    functionsReached:
    - JsonPrimitiveGetAsBool
    - JsonPrimitiveGetAsReal
    - RlistAppendScalar
    - assert
    - JsonGetElementType
    - StringFromDouble
    - JsonPrimitiveGetAsString
    - StringFromLong
    - JsonPrimitiveGetAsInteger
    - free
    - JsonGetPrimitiveType
    linkageType: ''
    returnType: void
    signature: void RlistAppendContainerPrimitive(Rlist **list, const JsonElement
      *primitive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/rlist.c:1735,1
    - Dst: RlistAppendContainerPrimitive
      Src: /src/core/libpromises/rlist.c:1738,1
    - Dst: JsonIteratorInit
      Src: /src/core/libpromises/rlist.c:1743,1
    - Dst: JsonIteratorNextValue
      Src: /src/core/libpromises/rlist.c:1746,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/rlist.c:1748,1
    - Dst: RlistAppendContainerPrimitive
      Src: /src/core/libpromises/rlist.c:1750,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - container
    argTypes:
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1731
    functionDepth: 6
    functionLinenumber: 1731
    functionLinenumberEnd: 1758
    functionName: RlistFromContainer
    functionSourceFile: /src/core/libpromises/rlist.c
    functionUses: 2
    functionsReached:
    - JsonIteratorInit
    - JsonGetElementType
    - JsonIteratorNextValue
    - RlistAppendContainerPrimitive
    linkageType: ''
    returnType: Rlist
    signature: Rlist *RlistFromContainer(const JsonElement *container)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:74,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:80,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:86,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:92,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:102,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:106,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:114,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:120,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:126,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:132,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:138,1
    - Dst: CheckModeState
      Src: /src/core/libpromises/modes.c:151,1
    - Dst: sscanf
      Src: /src/core/libpromises/modes.c:156,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:160,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:176,1
    - Dst: isdigit
      Src: /src/core/libpromises/modes.c:180,1
    - Dst: SetModeMask
      Src: /src/core/libpromises/modes.c:188,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:195,1
    - Dst: strcmp
      Src: /src/core/libpromises/modes.c:210,1
    - Dst: strcmp
      Src: /src/core/libpromises/modes.c:210,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:212,1
    - Dst: SetModeMask
      Src: /src/core/libpromises/modes.c:217,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:224,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:227,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:233,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:240,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 132
    argCount: 3
    argNames:
    - modestring
    - plusmask
    - minusmask
    argTypes:
    - char*
    - mode_t*
    - mode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 51
    functionDepth: 8
    functionLinenumber: 51
    functionLinenumberEnd: 244
    functionName: ParseModeString
    functionSourceFile: /src/core/libpromises/modes.c
    functionUses: 6
    functionsReached:
    - isdigit
    - CheckModeState
    - sscanf
    - Log
    - strcmp
    - SetModeMask
    linkageType: ''
    returnType: bool
    signature: bool ParseModeString(const char *modestring, mode_t *plusmask, mode_t
      *minusmask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/modes.c:253,1
    - Dst: Log
      Src: /src/core/libpromises/modes.c:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 5
    argNames:
    - stateA
    - stateB
    - sortA
    - sortB
    - ch
    argTypes:
    - enum modestate
    - enum modestate
    - enum modesort
    - enum modesort
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 8
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: CheckModeState
    functionSourceFile: /src/core/libpromises/modes.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: bool
    signature: "bool CheckModeState(enum modestate stateA, enum modestate stateB,
      enum modesort sortA, enum modesort sortB,\n                          char ch)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/modes.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 5
    argNames:
    - action
    - value
    - affected
    - p
    - m
    argTypes:
    - char
    - int
    - int
    - mode_t*
    - mode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 268
    functionDepth: 8
    functionLinenumber: 268
    functionLinenumberEnd: 288
    functionName: SetModeMask
    functionSourceFile: /src/core/libpromises/modes.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: bool
    signature: bool SetModeMask(char action, int value, int affected, mode_t *p, mode_t
      *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/core/libpromises/match_scope.c:36,1
    - Dst: pcre2_match
      Src: /src/core/libpromises/match_scope.c:37,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/core/libpromises/match_scope.c:44,1
    - Dst: EvalContextVariableClearMatch
      Src: /src/core/libpromises/match_scope.c:48,1
    - Dst: StringFromLong
      Src: /src/core/libpromises/match_scope.c:58,1
    - Dst: strlcpy
      Src: /src/core/libpromises/match_scope.c:59,1
    - Dst: MIN
      Src: /src/core/libpromises/match_scope.c:59,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/match_scope.c:60,1
    - Dst: free
      Src: /src/core/libpromises/match_scope.c:61,1
    - Dst: pcre2_match_data_free
      Src: /src/core/libpromises/match_scope.c:71,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/match_scope.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - regex
    - teststring
    - start
    - end
    argTypes:
    - EvalContext*
    - Regex*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 74
    functionName: RegExMatchSubString
    functionSourceFile: /src/core/libpromises/match_scope.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_free
    - pcre2_get_ovector_pointer
    - pcre2_match_data_create_from_pattern
    - MIN
    - pcre2_match
    - StringFromLong
    - EvalContextVariableClearMatch
    - RegexDestroy
    - EvalContextVariablePutSpecial
    - free
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool RegExMatchSubString(EvalContext *ctx, Regex *regex, const char
      *teststring, int *start, int *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegExMatchSubString
      Src: /src/core/libpromises/match_scope.c:82,1
    - Dst: strlen
      Src: /src/core/libpromises/match_scope.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - rx
    - teststring
    argTypes:
    - EvalContext*
    - Regex*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: RegExMatchFullString
    functionSourceFile: /src/core/libpromises/match_scope.c
    functionUses: 0
    functionsReached:
    - RegExMatchSubString
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool RegExMatchFullString(EvalContext *ctx, Regex *rx, const char *teststring)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/match_scope.c:94,1
    - Dst: CompileRegex
      Src: /src/core/libpromises/match_scope.c:99,1
    - Dst: RegExMatchFullString
      Src: /src/core/libpromises/match_scope.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - regexp
    - teststring
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 92
    functionDepth: 6
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: FullTextMatch
    functionSourceFile: /src/core/libpromises/match_scope.c
    functionUses: 2
    functionsReached:
    - RegExMatchFullString
    - strcmp
    - CompileRegex
    linkageType: ''
    returnType: bool
    signature: bool FullTextMatch(EvalContext *ctx, const char *regexp, const char
      *teststring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/match_scope.c:117,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/match_scope.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: ValidateRegEx
    functionSourceFile: /src/core/libpromises/match_scope.c
    functionUses: 0
    functionsReached:
    - RegexDestroy
    - CompileRegex
    linkageType: ''
    returnType: bool
    signature: bool ValidateRegEx(const char *regex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/match_scope.c:126,1
    - Dst: RegExMatchSubString
      Src: /src/core/libpromises/match_scope.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - regexp
    - teststring
    - start
    - end
    argTypes:
    - EvalContext*
    - char*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: BlockTextMatch
    functionSourceFile: /src/core/libpromises/match_scope.c
    functionUses: 2
    functionsReached:
    - RegExMatchSubString
    - CompileRegex
    linkageType: ''
    returnType: bool
    signature: bool BlockTextMatch(EvalContext *ctx, const char *regexp, const char
      *teststring, int *start, int *end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: debug_abort_if_reached
      Src: /src/core/libpromises/parser_helpers.h:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - ParserBlock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: ParserBlockString
    functionSourceFile: /src/core/libpromises/parser_helpers.h
    functionUses: 2
    functionsReached:
    - debug_abort_if_reached
    linkageType: ''
    returnType: char
    signature: char *ParserBlockString(ParserBlock b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, Nova_Initialize, EvalContext
      *, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB(void, Nova_InitializeLeech2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: ENTERPRISE_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_0ARG_DEFINE_STUB(const char *, GetConsolePrefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - EvalContext
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, EnterpriseContext,
      ARG_UNUSED EvalContext *, ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/libpromises/enterprise_stubs.c:86,1
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:93,1
    - Dst: snprintf
      Src: /src/core/libpromises/enterprise_stubs.c:96,1
    - Dst: GetLogDir
      Src: /src/core/libpromises/enterprise_stubs.c:96,1
    - Dst: MapName
      Src: /src/core/libpromises/enterprise_stubs.c:97,1
    - Dst: safe_fopen
      Src: /src/core/libpromises/enterprise_stubs.c:99,1
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:102,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/enterprise_stubs.c:102,1
    - Dst: fprintf
      Src: /src/core/libpromises/enterprise_stubs.c:106,1
    - Dst: time
      Src: /src/core/libpromises/enterprise_stubs.c:106,1
    - Dst: fclose
      Src: /src/core/libpromises/enterprise_stubs.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 80
    functionDepth: 8
    functionLinenumber: 80
    functionLinenumberEnd: 109
    functionName: ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - snprintf
    - MapName
    - GetLogDir
    - safe_fopen
    - Log
    - fclose
    - fprintf
    - time
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB(void, LogTotalCompliance,
      const char *, version, int, background_tasks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: ENTERPRISE_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_1ARG_DEFINE_STUB(int, CfSessionKeySize, char,
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: ENTERPRISE_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_0ARG_DEFINE_STUB(char, CfEnterpriseOptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_bf_cbc
      Src: /src/core/libpromises/enterprise_stubs.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: ENTERPRISE_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - EVP_bf_cbc
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_1ARG_DEFINE_STUB(const EVP_CIPHER *, CfengineCipher,
      char, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: ENTERPRISE_FUNC_6ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_FUNC_6ARG_DEFINE_STUB(char *, GetRemoteScalar, EvalContext
      *, ctx, char *, proto, char *, handle,\n                                 const
      char *, server, int, encrypted, char *, rcv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 8
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: ENTERPRISE_VOID_FUNC_3ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_3ARG_DEFINE_STUB(void, CacheUnreliableValue,
      char *, caller, char *, handle, char *, buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 8
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: ENTERPRISE_FUNC_3ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_3ARG_DEFINE_STUB(int, RetrieveUnreliableValue,
      char *, caller, char *, handle, char *, buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: ENTERPRISE_FUNC_4ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_4ARG_DEFINE_STUB(bool, GetRegistryValue, char
      *, key, char *, name, char *, buf, int, bufSz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 8
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: ENTERPRISE_FUNC_6ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_6ARG_DEFINE_STUB(void *, CfLDAPValue, char *,
      uri, char *, dn, char *, filter, char *, name, char *, scope, char *, sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 8
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: ENTERPRISE_FUNC_6ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_6ARG_DEFINE_STUB(void *, CfLDAPList, char *, uri,
      char *, dn, char *, filter, char *, name, char *, scope, char *, sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 8
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: ENTERPRISE_FUNC_8ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_FUNC_8ARG_DEFINE_STUB(void *, CfLDAPArray, EvalContext
      *, ctx, const Bundle *, caller, char *, array, char *, uri, char *, dn,\n                                 char
      *, filter, char *, scope, char *, sec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 8
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: ENTERPRISE_FUNC_8ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_8ARG_DEFINE_STUB(void *, CfRegLDAP, EvalContext
      *, ctx, char *, uri, char *, dn, char *, filter, char *, name, char *, scope,
      char *, regex, char *, sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 8
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: ENTERPRISE_FUNC_5ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_5ARG_DEFINE_STUB(bool, ListHostsWithField, EvalContext
      *, ctx, Rlist **, return_list, char *, field_value, char *, return_format, int,
      function_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringCopy
      Src: /src/core/libpromises/enterprise_stubs.c:191,1
    - Dst: Log
      Src: /src/core/libpromises/enterprise_stubs.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 8
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: ENTERPRISE_FUNC_3ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached:
    - StringCopy
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_3ARG_DEFINE_STUB(bool, TranslatePath, const char
      *, from, char *, to, size_t, to_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - EvalContext
    - Promise
    - PromiseResult
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: ENTERPRISE_VOID_FUNC_3ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_VOID_FUNC_3ARG_DEFINE_STUB(void, EvalContextLogPromiseIterationOutcome,\n
      \                                     ARG_UNUSED EvalContext *, ctx,\n                                      ARG_UNUSED
      const Promise *, pp,\n                                      ARG_UNUSED PromiseResult,
      result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - char
    - EvalContext
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB(void, CheckAndSetHAState,
      ARG_UNUSED const char *, workdir, ARG_UNUSED EvalContext *, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB(void, ReloadHAConfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: ENTERPRISE_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_0ARG_DEFINE_STUB(size_t, EnterpriseGetMaxCfHubProcesses)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - StringSet
    - char
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB(void, Nova_ClassHistoryAddContextName,\n
      \                                     ARG_UNUSED const StringSet *, list,\n
      \                                     ARG_UNUSED const char *, context_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bool
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/libpromises/enterprise_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB(void, Nova_ClassHistoryEnable,\n
      \                                     ARG_UNUSED StringSet **, list,\n                                      ARG_UNUSED
      bool, enable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetHandle
      Src: /src/core/libpromises/expand.c:112,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/expand.c:117,1
    - Dst: CanonifyNameInPlace
      Src: /src/core/libpromises/expand.c:118,1
    - Dst: xstrdup
      Src: /src/core/libpromises/expand.c:122,1
    - Dst: PromiseID
      Src: /src/core/libpromises/expand.c:122,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/expand.c:125,1
    - Dst: free
      Src: /src/core/libpromises/expand.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 129
    functionName: PutHandleVariable
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - ExpandScalar
    - CanonifyNameInPlace
    - EvalContextVariablePutSpecial
    - xstrdup
    - PromiseID
    - free
    - PromiseGetHandle
    linkageType: ''
    returnType: void
    signature: void PutHandleVariable(EvalContext *ctx, const Promise *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PromiseIteratorPrepare
      Src: /src/core/libpromises/expand.c:144,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:144,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/expand.c:148,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/libpromises/expand.c:151,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/expand.c:157,1
    - Dst: PromiseIteratorPrepare
      Src: /src/core/libpromises/expand.c:160,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:171,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:172,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:173,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/expand.c:175,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/libpromises/expand.c:178,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - iterctx
    - rval
    argTypes:
    - EvalContext*
    - PromiseIterator*
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 136
    functionDepth: 11
    functionLinenumber: 136
    functionLinenumberEnd: 188
    functionName: MapIteratorsFromRval
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 5
    functionsReached:
    - RvalFnCallValue
    - RvalScalarValue
    - PromiseIteratorPrepare
    - strcmp
    - MapIteratorsFromRval
    - RvalRlistValue
    linkageType: ''
    returnType: void
    signature: "void MapIteratorsFromRval(EvalContext *ctx,\n                                 PromiseIterator
      *iterctx,\n                                 Rval rval)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PromiseIteratorNext
      Src: /src/core/libpromises/expand.c:205,1
    - Dst: EvalContextStackPushPromiseIterationFrame
      Src: /src/core/libpromises/expand.c:215,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/expand.c:218,1
    - Dst: act_on_promise
      Src: /src/core/libpromises/expand.c:224,1
    - Dst: PromiseResultUpdate
      Src: /src/core/libpromises/expand.c:227,1
    - Dst: NotifyDependantPromises
      Src: /src/core/libpromises/expand.c:233,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:239,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/expand.c:239,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:240,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/expand.c:240,1
    - Dst: VerifyVarPromise
      Src: /src/core/libpromises/expand.c:244,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/libpromises/expand.c:250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - iterctx
    - act_on_promise
    - param
    - actuate_ifelse
    argTypes:
    - EvalContext*
    - PromiseIterator*
    - PromiseActuator*
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 190
    functionDepth: 13
    functionLinenumber: 190
    functionLinenumberEnd: 255
    functionName: ExpandPromiseAndDo
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - EvalContextStackPushPromiseIterationFrame
    - PromiseGetPromiseType
    - EvalContextStackPopFrame
    - NotifyDependantPromises
    - act_on_promise
    - VerifyVarPromise
    - strcmp
    - PromiseIteratorNext
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult ExpandPromiseAndDo(EvalContext *ctx, PromiseIterator
      *iterctx,\n                                        PromiseActuator *act_on_promise,
      void *param,\n                                        bool actuate_ifelse)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/expand.c:260,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/expand.c:262,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:264,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/libpromises/expand.c:266,1
    - Dst: EvalContextGetPass
      Src: /src/core/libpromises/expand.c:269,1
    - Dst: DeRefCopyPromise
      Src: /src/core/libpromises/expand.c:275,1
    - Dst: EvalContextStackPushPromiseFrame
      Src: /src/core/libpromises/expand.c:277,1
    - Dst: PromiseIteratorNew
      Src: /src/core/libpromises/expand.c:278,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/libpromises/expand.c:285,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/libpromises/expand.c:290,1
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:294,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:296,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:298,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/expand.c:298,1
    - Dst: MapIteratorsFromRval
      Src: /src/core/libpromises/expand.c:302,1
    - Dst: PutHandleVariable
      Src: /src/core/libpromises/expand.c:306,1
    - Dst: ExpandPromiseAndDo
      Src: /src/core/libpromises/expand.c:307,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/libpromises/expand.c:310,1
    - Dst: PromiseIteratorDestroy
      Src: /src/core/libpromises/expand.c:311,1
    - Dst: PromiseDestroy
      Src: /src/core/libpromises/expand.c:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - pp
    - act_on_promise
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - PromiseActuator*
    - void*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/core/libpromises/expand.c
    constantsTouched: []
    func_position:
      end: 315
      start: 257
    functionDepth: 14
    functionLinenumber: 257
    functionLinenumberEnd: 315
    functionName: ExpandPromise
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 4
    functionsReached:
    - DeRefCopyPromise
    - RvalFnCallValue
    - PromiseGetPromiseType
    - PutHandleVariable
    - assert
    - PromiseIteratorNew
    - ExpandPromiseAndDo
    - MapIteratorsFromRval
    - EvalContextStackPopFrame
    - IsDefinedClass
    - Log
    - strcmp
    - PromiseDestroy
    - SeqLength
    - EvalContextStackPushPromiseFrame
    - EvalContextGetPass
    - PromiseIteratorDestroy
    - SeqAt
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult ExpandPromise(EvalContext *ctx, const Promise *pp,\n
      \                           PromiseActuator *act_on_promise, void *param)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ExpandScalar
      Src: /src/core/libpromises/expand.c:332,1
    - Dst: ExpandList
      Src: /src/core/libpromises/expand.c:336,1
    - Dst: ExpandFnCall
      Src: /src/core/libpromises/expand.c:341,1
    - Dst: RvalNew
      Src: /src/core/libpromises/expand.c:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - ns
    - scope
    - rval_item
    - rval_type
    argTypes:
    - EvalContext*
    - char*
    - char*
    - void*
    - RvalType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 354
    functionName: ExpandPrivateRval
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 6
    functionsReached:
    - ExpandList
    - RvalNew
    - ExpandFnCall
    - ExpandScalar
    linkageType: ''
    returnType: Rval
    signature: "Rval ExpandPrivateRval(const EvalContext *ctx,\n                       const
      char *ns, const char *scope,\n                       const void *rval_item,
      RvalType rval_type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/expand.c:367,1
    - Dst: strlen
      Src: /src/core/libpromises/expand.c:369,1
    - Dst: isalnum
      Src: /src/core/libpromises/expand.c:391,1
    - Dst: opposite
      Src: /src/core/libpromises/expand.c:401,1
    - Dst: strchr
      Src: /src/core/libpromises/expand.c:402,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/core/libpromises/expand.c
    constantsTouched: []
    func_position:
      end: 412
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 412
    functionName: VariableDataOrListReference
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - strlen
    - assert
    - isalnum
    - strchr
    - opposite
    linkageType: ''
    returnType: bool
    signature: bool VariableDataOrListReference(const char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VariableDataOrListReference
      Src: /src/core/libpromises/expand.c:422,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:424,1
    - Dst: IsNakedVar
      Src: /src/core/libpromises/expand.c:429,1
    - Dst: GetNaked
      Src: /src/core/libpromises/expand.c:434,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/expand.c:436,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/expand.c:438,1
    - Dst: strlcpy
      Src: /src/core/libpromises/expand.c:439,1
    - Dst: free
      Src: /src/core/libpromises/expand.c:440,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/expand.c:444,1
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/expand.c:446,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/expand.c:449,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/expand.c:450,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:454,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/expand.c:455,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/expand.c:456,1
    - Dst: RvalNew
      Src: /src/core/libpromises/expand.c:463,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/expand.c:464,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:469,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/expand.c:470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - ns
    - scope
    - expandnaked
    - entry
    argTypes:
    - EvalContext*
    - char*
    - char*
    - int
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 414
    functionDepth: 10
    functionLinenumber: 414
    functionLinenumberEnd: 472
    functionName: ExpandListEntry
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - RvalDestroy
    - ExpandPrivateRval
    - ExpandScalar
    - IsExpandable
    - IsNakedVar
    - VarRefParseFromScope
    - RvalNew
    - VarRefDestroy
    - EvalContextVariableGet
    - free
    - VariableDataOrListReference
    - DataTypeToRvalType
    - strlcpy
    - GetNaked
    linkageType: ''
    returnType: Rval
    signature: "Rval ExpandListEntry(const EvalContext *ctx,\n                            const
      char *ns, const char *scope,\n                            int expandnaked, Rval
      entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpandListEntry
      Src: /src/core/libpromises/expand.c:482,1
    - Dst: RlistAppend
      Src: /src/core/libpromises/expand.c:483,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/expand.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - ns
    - scope
    - list
    - expandnaked
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Rlist*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 474
    functionDepth: 11
    functionLinenumber: 474
    functionLinenumberEnd: 488
    functionName: ExpandList
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 2
    functionsReached:
    - RlistAppend
    - ExpandListEntry
    - RvalDestroy
    linkageType: ''
    returnType: Rlist
    signature: "Rlist *ExpandList(const EvalContext *ctx,\n                  const
      char *ns, const char *scope,\n                  const Rlist *list, int expandnaked)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ExpandScalar
      Src: /src/core/libpromises/expand.c:500,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:500,1
    - Dst: ExpandFnCall
      Src: /src/core/libpromises/expand.c:504,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/expand.c:504,1
    - Dst: RvalNew
      Src: /src/core/libpromises/expand.c:510,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:513,1
    - Dst: RvalNew
      Src: /src/core/libpromises/expand.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - ns
    - scope
    - rval
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Rval
    assertStmts:
    - condition: (false)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/core/libpromises/expand.c
    constantsTouched: []
    func_position:
      end: 515
      start: 492
    functionDepth: 6
    functionLinenumber: 492
    functionLinenumberEnd: 515
    functionName: ExpandBundleReference
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 1
    functionsReached:
    - RvalFnCallValue
    - RvalScalarValue
    - ExpandScalar
    - assert
    - ExpandFnCall
    - RvalNew
    linkageType: ''
    returnType: Rval
    signature: "Rval ExpandBundleReference(EvalContext *ctx,\n                           const
      char *ns, const char *scope,\n                           Rval rval)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/libpromises/expand.c:531,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:535,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:536,1
    - Dst: BufferNew
      Src: /src/core/libpromises/expand.c:537,1
    - Dst: BufferClear
      Src: /src/core/libpromises/expand.c:541,1
    - Dst: ExtractScalarPrefix
      Src: /src/core/libpromises/expand.c:542,1
    - Dst: strlen
      Src: /src/core/libpromises/expand.c:542,1
    - Dst: BufferAppend
      Src: /src/core/libpromises/expand.c:544,1
    - Dst: BufferData
      Src: /src/core/libpromises/expand.c:544,1
    - Dst: BufferSize
      Src: /src/core/libpromises/expand.c:544,1
    - Dst: BufferSize
      Src: /src/core/libpromises/expand.c:545,1
    - Dst: BufferClear
      Src: /src/core/libpromises/expand.c:551,1
    - Dst: ExtractScalarReference
      Src: /src/core/libpromises/expand.c:553,1
    - Dst: strlen
      Src: /src/core/libpromises/expand.c:553,1
    - Dst: BufferSize
      Src: /src/core/libpromises/expand.c:554,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/expand.c:556,1
    - Dst: BufferData
      Src: /src/core/libpromises/expand.c:556,1
    - Dst: BufferCopy
      Src: /src/core/libpromises/expand.c:558,1
    - Dst: BufferClear
      Src: /src/core/libpromises/expand.c:559,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/expand.c:560,1
    - Dst: BufferData
      Src: /src/core/libpromises/expand.c:560,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/expand.c:561,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/expand.c:564,1
    - Dst: BufferData
      Src: /src/core/libpromises/expand.c:564,1
    - Dst: VarRefParseFromNamespaceAndScope
      Src: /src/core/libpromises/expand.c:566,1
    - Dst: BufferData
      Src: /src/core/libpromises/expand.c:567,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/expand.c:570,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/expand.c:571,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/expand.c:573,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:576,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/expand.c:577,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:583,1
    - Dst: JsonGetElementType
      Src: /src/core/libpromises/expand.c:585,1
    - Dst: BufferAppendString
      Src: /src/core/libpromises/expand.c:587,1
    - Dst: JsonPrimitiveGetAsString
      Src: /src/core/libpromises/expand.c:587,1
    - Dst: BufferAppendF
      Src: /src/core/libpromises/expand.c:600,1
    - Dst: BufferData
      Src: /src/core/libpromises/expand.c:600,1
    - Dst: BufferAppendF
      Src: /src/core/libpromises/expand.c:604,1
    - Dst: BufferData
      Src: /src/core/libpromises/expand.c:604,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/expand.c:608,1
    - Dst: LogDebug
      Src: /src/core/libpromises/expand.c:610,1
    - Dst: BufferData
      Src: /src/core/libpromises/expand.c:612,1
    - Dst: BufferClose
      Src: /src/core/libpromises/expand.c:615,1
    - Dst: BufferGet
      Src: /src/core/libpromises/expand.c:615,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 5
    argNames:
    - ctx
    - ns
    - scope
    - string
    - out
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - Buffer*
    assertStmts:
    - condition: (out != NULL)
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/core/libpromises/expand.c
    - condition: (string != NULL)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/core/libpromises/expand.c
    - condition: (value != NULL)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/core/libpromises/expand.c
    - condition: (value != NULL)
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/core/libpromises/expand.c
    constantsTouched: []
    func_position:
      end: 616
      start: 524
    functionDepth: 10
    functionLinenumber: 524
    functionLinenumberEnd: 616
    functionName: ExpandScalar
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 20
    functionsReached:
    - IsCf3VarString
    - BufferDestroy
    - VarRefDestroy
    - BufferClose
    - BufferNew
    - DataTypeToRvalType
    - BufferData
    - strlen
    - VarRefParseFromNamespaceAndScope
    - JsonGetElementType
    - ExtractScalarReference
    - BufferClear
    - BufferSize
    - JsonPrimitiveGetAsString
    - BufferGet
    - BufferAppendF
    - ExpandScalar
    - assert
    - IsExpandable
    - LogDebug
    - BufferCopy
    - BufferAppend
    - ExtractScalarPrefix
    - EvalContextVariableGet
    - BufferAppendString
    linkageType: ''
    returnType: char
    signature: "char *ExpandScalar(const EvalContext *ctx, const char *ns, const char
      *scope,\n                   const char *string, Buffer *out)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/expand.c:624,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:625,1
    - Dst: IsNakedVar
      Src: /src/core/libpromises/expand.c:629,1
    - Dst: GetNaked
      Src: /src/core/libpromises/expand.c:632,1
    - Dst: IsExpandable
      Src: /src/core/libpromises/expand.c:634,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:636,1
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/expand.c:640,1
    - Dst: EvalContextVariableGet
      Src: /src/core/libpromises/expand.c:642,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/expand.c:643,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/expand.c:645,1
    - Dst: ExpandList
      Src: /src/core/libpromises/expand.c:647,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:652,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:658,1
    - Dst: FnCallIsBuiltIn
      Src: /src/core/libpromises/expand.c:660,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/expand.c:662,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:666,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/expand.c:676,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/expand.c:682,1
    - Dst: FnCallEvaluate
      Src: /src/core/libpromises/expand.c:683,1
    - Dst: FnCallDestroy
      Src: /src/core/libpromises/expand.c:684,1
    - Dst: EvalContextStackCurrentPromise
      Src: /src/core/libpromises/expand.c:688,1
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/expand.c:689,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/expand.c:689,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:692,1
    - Dst: free
      Src: /src/core/libpromises/expand.c:694,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:699,1
    - Dst: FnCallIsBuiltIn
      Src: /src/core/libpromises/expand.c:705,1
    - Dst: RvalFnCallValue
      Src: /src/core/libpromises/expand.c:707,1
    - Dst: FnCallEvaluate
      Src: /src/core/libpromises/expand.c:708,1
    - Dst: FnCallDestroy
      Src: /src/core/libpromises/expand.c:709,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:714,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 7
    argNames:
    - ctx
    - policy
    - ns
    - scope
    - rval
    - forcelist
    - pp
    argTypes:
    - EvalContext*
    - Policy*
    - char*
    - char*
    - Rval
    - bool
    - Promise*
    assertStmts:
    - condition: (policy)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/core/libpromises/expand.c
    - condition: (ctx)
      pos:
        line_end: 623
        line_start: 623
        source_file: /src/core/libpromises/expand.c
    - condition: (!"Bad type for entry in Rlist")
      pos:
        line_end: 698
        line_start: 698
        source_file: /src/core/libpromises/expand.c
    - condition: (returnval.item == NULL)
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/core/libpromises/expand.c
    constantsTouched: []
    func_position:
      end: 721
      start: 620
    functionDepth: 12
    functionLinenumber: 620
    functionLinenumberEnd: 721
    functionName: EvaluateFinalRval
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 7
    functionsReached:
    - IsCf3VarString
    - ExpandPrivateRval
    - VarRefDestroy
    - RvalCopy
    - RlistScalarValue
    - free
    - DataTypeToRvalType
    - EvalContextStackCurrentPromise
    - RvalRlistValue
    - RvalFnCallValue
    - IsNakedVar
    - RlistFnCallValue
    - FnCallDestroy
    - FnCallIsBuiltIn
    - IsExpandable
    - assert
    - FnCallEvaluate
    - VarRefParseFromScope
    - ExpandList
    - EvalContextVariableGet
    - GetNaked
    linkageType: ''
    returnType: Rval
    signature: "Rval EvaluateFinalRval(EvalContext *ctx, const Policy *policy,\n                       const
      char *ns, const char *scope,\n                       Rval rval, bool forcelist,
      const Promise *pp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:727,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:729,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:731,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/libpromises/expand.c:733,1
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:734,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:736,1
    - Dst: ExpandPromise
      Src: /src/core/libpromises/expand.c:737,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/libpromises/expand.c:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - bundle
    - type
    - actuator
    argTypes:
    - EvalContext*
    - Bundle*
    - char*
    - PromiseActuator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 725
    functionDepth: 15
    functionLinenumber: 725
    functionLinenumberEnd: 742
    functionName: BundleResolvePromiseType
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - ExpandPromise
    - EvalContextStackPopFrame
    - EvalContextStackPushBundleSectionFrame
    - strcmp
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void BundleResolvePromiseType(EvalContext *ctx, const Bundle *bundle,
      const char *type, PromiseActuator *actuator)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a
    - b
    - user_data
    argTypes:
    - void*
    - void*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 758
    functionName: PointerCmp
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PointerCmp(const void *a, const void *b, ARG_UNUSED void *user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextGetRemoteVarPromises
      Src: /src/core/libpromises/expand.c:762,1
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:763,1
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:769,1
    - Dst: SeqNew
      Src: /src/core/libpromises/expand.c:770,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:777,1
    - Dst: EvalContextVariableTableIteratorNew
      Src: /src/core/libpromises/expand.c:779,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/expand.c:780,1
    - Dst: VariableGetPromise
      Src: /src/core/libpromises/expand.c:784,1
    - Dst: VariableGetRef
      Src: /src/core/libpromises/expand.c:785,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:788,1
    - Dst: SeqAppendOnce
      Src: /src/core/libpromises/expand.c:792,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/libpromises/expand.c:794,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/libpromises/expand.c:796,1
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:800,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:803,1
    - Dst: VariableGetRef
      Src: /src/core/libpromises/expand.c:804,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/libpromises/expand.c:807,1
    - Dst: SeqDestroy
      Src: /src/core/libpromises/expand.c:810,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - bundle
    argTypes:
    - EvalContext*
    - Bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 760
    functionDepth: 8
    functionLinenumber: 760
    functionLinenumberEnd: 811
    functionName: RemoveRemotelyInjectedVars
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - SeqAppendOnce
    - VariableGetPromise
    - EvalContextVariableRemove
    - SeqDestroy
    - EvalContextGetRemoteVarPromises
    - EvalContextVariableTableIteratorNew
    - SeqNew
    - Log
    - VariableTableIteratorNext
    - VariableTableIteratorDestroy
    - SeqLength
    - VariableGetRef
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void RemoveRemotelyInjectedVars(const EvalContext *ctx, const Bundle
      *bundle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/expand.c:815,1
    - Dst: RemoveRemotelyInjectedVars
      Src: /src/core/libpromises/expand.c:821,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:824,1
    - Dst: BundleResolvePromiseType
      Src: /src/core/libpromises/expand.c:829,1
    - Dst: BundleResolvePromiseType
      Src: /src/core/libpromises/expand.c:831,1
    - Dst: BundleResolvePromiseType
      Src: /src/core/libpromises/expand.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - bundle
    argTypes:
    - EvalContext*
    - Bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 813
    functionDepth: 16
    functionLinenumber: 813
    functionLinenumberEnd: 838
    functionName: BundleResolve
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - BundleResolvePromiseType
    - Log
    - strcmp
    - RemoveRemotelyInjectedVars
    linkageType: ''
    returnType: void
    signature: void BundleResolve(EvalContext *ctx, const Bundle *bundle)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/expand.c:847,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:850,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:857,1
    - Dst: FatalError
      Src: /src/core/libpromises/expand.c:864,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:868,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:868,1
    - Dst: xasprintf
      Src: /src/core/libpromises/expand.c:869,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:871,1
    - Dst: EvalContextStackPushBodyFrame
      Src: /src/core/libpromises/expand.c:873,1
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:875,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:883,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/expand.c:887,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:892,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:894,1
    - Dst: EvaluateFinalRval
      Src: /src/core/libpromises/expand.c:899,1
    - Dst: VarRefParseFromScope
      Src: /src/core/libpromises/expand.c:906,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/libpromises/expand.c:907,1
    - Dst: ConstraintSyntaxGetDataType
      Src: /src/core/libpromises/expand.c:910,1
    - Dst: DataTypeToRvalType
      Src: /src/core/libpromises/expand.c:911,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:913,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/expand.c:916,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/expand.c:917,1
    - Dst: EvalContextVariablePut
      Src: /src/core/libpromises/expand.c:921,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:926,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/expand.c:929,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/expand.c:930,1
    - Dst: VarRefDestroy
      Src: /src/core/libpromises/expand.c:934,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:936,1
    - Dst: strlcpy
      Src: /src/core/libpromises/expand.c:938,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:938,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:942,1
    - Dst: strlcpy
      Src: /src/core/libpromises/expand.c:944,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:944,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:946,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/expand.c:948,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/expand.c:949,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/libpromises/expand.c:952,1
    - Dst: snprintf
      Src: /src/core/libpromises/expand.c:954,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:955,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:958,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/libpromises/expand.c:964,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/libpromises/expand.c:965,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:971,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:973,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:974,1
    - Dst: StringIsBoolean
      Src: /src/core/libpromises/expand.c:975,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:975,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/expand.c:977,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:978,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:982,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:984,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:985,1
    - Dst: StringIsBoolean
      Src: /src/core/libpromises/expand.c:986,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:986,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/expand.c:988,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:989,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:993,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:995,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:996,1
    - Dst: BooleanFromString
      Src: /src/core/libpromises/expand.c:997,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:998,1
    - Dst: EvalContextSetEvalOption
      Src: /src/core/libpromises/expand.c:999,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1003,1
    - Dst: ProtocolVersionParse
      Src: /src/core/libpromises/expand.c:1005,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:1006,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:1007,1
    - Dst: ProtocolVersionString
      Src: /src/core/libpromises/expand.c:1008,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1012,1
    - Dst: AddDefaultInventoryToContext
      Src: /src/core/libpromises/expand.c:1014,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/expand.c:1014,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:1015,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1017,1
    - Dst: AddDefaultPackageModuleToContext
      Src: /src/core/libpromises/expand.c:1019,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:1019,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:1020,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:1021,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1024,1
    - Dst: StringEqual
      Src: /src/core/libpromises/expand.c:1029,1
    - Dst: StringEqual
      Src: /src/core/libpromises/expand.c:1029,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:1032,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:1033,1
    - Dst: StringEqual
      Src: /src/core/libpromises/expand.c:1035,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:1035,1
    - Dst: EvalContextSetCommonEvalOrder
      Src: /src/core/libpromises/expand.c:1037,1
    - Dst: EvalContextSetCommonEvalOrder
      Src: /src/core/libpromises/expand.c:1041,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/expand.c:1045,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/libpromises/expand.c:1048,1
    - Dst: free
      Src: /src/core/libpromises/expand.c:1049,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 101
    argCount: 3
    argNames:
    - ctx
    - config
    - control_body
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    - Body*
    assertStmts:
    - condition: (ret >= 0 && ret < CF_MAXVARSIZE)
      pos:
        line_end: 954
        line_start: 954
        source_file: /src/core/libpromises/expand.c
    - condition: (control_body != NULL)
      pos:
        line_end: 846
        line_start: 846
        source_file: /src/core/libpromises/expand.c
    - condition: (CFG_CONTROLBODY[COMMON_CONTROL_MAX].lval == NULL)
      pos:
        line_end: 849
        line_start: 849
        source_file: /src/core/libpromises/expand.c
    - condition: (strcmp(control_body->name, "control") == 0)
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/core/libpromises/expand.c
    constantsTouched: []
    func_position:
      end: 1050
      start: 844
    functionDepth: 13
    functionLinenumber: 844
    functionLinenumberEnd: 1050
    functionName: ResolveControlBody
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - ExpandPrivateRval
    - EvalContextStackPopFrame
    - ConstraintSyntaxGetDataType
    - ProtocolVersionParse
    - VarRefDestroy
    - Log
    - SeqLength
    - ProtocolVersionString
    - DataTypeToRvalType
    - BooleanFromString
    - RvalRlistValue
    - strlcpy
    - AddDefaultPackageModuleToContext
    - RvalDestroy
    - StringEqual
    - EvalContextSetCommonEvalOrder
    - free
    - EvalContextVariableRemoveSpecial
    - snprintf
    - IsDefinedClass
    - strcmp
    - EvalContextStackPushBodyFrame
    - SeqAt
    - RvalScalarValue
    - assert
    - xasprintf
    - VarRefParseFromScope
    - EvalContextSetEvalOption
    - AddDefaultInventoryToContext
    - EvalContextVariablePut
    - EvaluateFinalRval
    - StringIsBoolean
    - EvalContextVariableRemove
    - EvalContextClassPutHard
    - FatalError
    - EvalContextVariablePutSpecial
    linkageType: ''
    returnType: void
    signature: "void ResolveControlBody(EvalContext *ctx, GenericAgentConfig *config,\n
      \                              const Body *control_body)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/expand.c:1054,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/expand.c:1055,1
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:1057,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:1059,1
    - Dst: IsDefinedClass
      Src: /src/core/libpromises/expand.c:1063,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/expand.c:1065,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:1071,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/expand.c:1074,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1078,1
    - Dst: IntFromString
      Src: /src/core/libpromises/expand.c:1081,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:1081,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1083,1
    - Dst: IntFromString
      Src: /src/core/libpromises/expand.c:1086,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:1086,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1088,1
    - Dst: RlistCopy
      Src: /src/core/libpromises/expand.c:1090,1
    - Dst: RvalRlistValue
      Src: /src/core/libpromises/expand.c:1090,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1092,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:1094,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/expand.c:1095,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:1095,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1097,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:1099,1
    - Dst: SafeStringDuplicate
      Src: /src/core/libpromises/expand.c:1100,1
    - Dst: RvalScalarValue
      Src: /src/core/libpromises/expand.c:1100,1
    - Dst: assert
      Src: /src/core/libpromises/expand.c:1105,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/expand.c:1107,1
    - Dst: AddPackageModuleToContext
      Src: /src/core/libpromises/expand.c:1109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - pm_body
    argTypes:
    - EvalContext*
    - Body*
    assertStmts:
    - condition: (new_manager->interpreter == NULL)
      pos:
        line_end: 1093
        line_start: 1093
        source_file: /src/core/libpromises/expand.c
    - condition: (new_manager->module_path == NULL)
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/core/libpromises/expand.c
    - condition: (0)
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/core/libpromises/expand.c
    constantsTouched: []
    func_position:
      end: 1110
      start: 1052
    functionDepth: 10
    functionLinenumber: 1052
    functionLinenumberEnd: 1110
    functionName: ResolvePackageManagerBody
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - RvalDestroy
    - xcalloc
    - RlistCopy
    - AddPackageModuleToContext
    - ExpandPrivateRval
    - RvalScalarValue
    - SafeStringDuplicate
    - assert
    - IsDefinedClass
    - Log
    - strcmp
    - SeqLength
    - RvalRlistValue
    - IntFromString
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void ResolvePackageManagerBody(EvalContext *ctx, const Body *pm_body)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:1116,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:1118,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1119,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/libpromises/expand.c:1121,1
    - Dst: BundleResolve
      Src: /src/core/libpromises/expand.c:1122,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/libpromises/expand.c:1123,1
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:1134,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:1136,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1137,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/libpromises/expand.c:1139,1
    - Dst: BundleResolve
      Src: /src/core/libpromises/expand.c:1140,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/libpromises/expand.c:1141,1
    - Dst: SeqLength
      Src: /src/core/libpromises/expand.c:1147,1
    - Dst: SeqAt
      Src: /src/core/libpromises/expand.c:1149,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1151,1
    - Dst: ResolveControlBody
      Src: /src/core/libpromises/expand.c:1153,1
    - Dst: strcmp
      Src: /src/core/libpromises/expand.c:1157,1
    - Dst: ResolvePackageManagerBody
      Src: /src/core/libpromises/expand.c:1159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - policy
    - config
    argTypes:
    - EvalContext*
    - Policy*
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1112
    functionDepth: 17
    functionLinenumber: 1112
    functionLinenumberEnd: 1162
    functionName: PolicyResolve
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 4
    functionsReached:
    - EvalContextStackPushBundleFrame
    - EvalContextStackPopFrame
    - ResolvePackageManagerBody
    - BundleResolve
    - strcmp
    - SeqLength
    - ResolveControlBody
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void PolicyResolve(EvalContext *ctx, const Policy *policy,\n                   GenericAgentConfig
      *config)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libpromises/expand.c:1213,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:1219,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1164
    functionDepth: 8
    functionLinenumber: 1164
    functionLinenumberEnd: 1223
    functionName: IsExpandable
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 9
    functionsReached:
    - Log
    linkageType: ''
    returnType: bool
    signature: bool IsExpandable(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/expand.c:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1236
    functionName: opposite
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 3
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char opposite(char c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/expand.c:1247,1
    - Dst: opposite
      Src: /src/core/libpromises/expand.c:1253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - str
    - vtype
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1288
    functionName: IsNakedVar
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 8
    functionsReached:
    - opposite
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool IsNakedVar(const char *str, char vtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/expand.c:1302,1
    - Dst: Log
      Src: /src/core/libpromises/expand.c:1306,1
    - Dst: strlcpy
      Src: /src/core/libpromises/expand.c:1308,1
    - Dst: memcpy
      Src: /src/core/libpromises/expand.c:1312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - s
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1300
    functionDepth: 8
    functionLinenumber: 1300
    functionLinenumberEnd: 1314
    functionName: GetNaked
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 6
    functionsReached:
    - memcpy
    - Log
    - strlcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: void GetNaked(char *dst, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/expand.c:1331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - var
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1336
    functionName: IsVarList
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 3
    functionsReached:
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool IsVarList(const char *var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/expand.c:1341,1
    - Dst: PromiseRecheckAllConstraints
      Src: /src/core/libpromises/expand.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - pp
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - ARG_UNUSED*
    assertStmts:
    - condition: (param == NULL)
      pos:
        line_end: 1340
        line_start: 1340
        source_file: /src/core/libpromises/expand.c
    constantsTouched: []
    func_position:
      end: 1346
      start: 1338
    functionDepth: 10
    functionLinenumber: 1338
    functionLinenumberEnd: 1346
    functionName: CommonEvalPromise
    functionSourceFile: /src/core/libpromises/expand.c
    functionUses: 0
    functionsReached:
    - assert
    - PromiseRecheckAllConstraints
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult CommonEvalPromise(EvalContext *ctx, const Promise *pp,\n
      \                               ARG_UNUSED void *param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lp
    - ','
    - slow
    - ','
    - toggle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: CYCLE_DECLARE
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CYCLE_DECLARE(lp, slow, toggle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lp
    - ','
    - slow
    - ','
    - toggle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: CYCLE_CHECK
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CYCLE_CHECK(lp, slow, toggle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:81,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - Item*
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: ItemIsInList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    linkageType: ''
    returnType: bool
    signature: bool ItemIsInList(const Item *list, const Item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: ReverseItemList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Item
    signature: Item *ReverseItemList(Item *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/item_lib.c:119,1
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:121,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/item_lib.c:127,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/item_lib.c:130,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/item_lib.c:131,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/item_lib.c:132,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:135,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/item_lib.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - list
    - w
    argTypes:
    - Item*
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 139
    functionName: PrintItemList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - CYCLE_CHECK
    - WriterWriteChar
    - CYCLE_DECLARE
    - WriterWrite
    linkageType: ''
    returnType: void
    signature: void PrintItemList(const Item *list, Writer *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:147,1
    - Dst: strlen
      Src: /src/core/libpromises/item_lib.c:153,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - list
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: ItemListSize
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t ItemListSize(const Item *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:172,1
    - Dst: strcmp
      Src: /src/core/libpromises/item_lib.c:175,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - Item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 184
    functionName: ReturnItemIn
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    - strcmp
    linkageType: ''
    returnType: Item
    signature: Item *ReturnItemIn(Item *list, const char *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:196,1
    - Dst: strcmp
      Src: /src/core/libpromises/item_lib.c:199,1
    - Dst: strcmp
      Src: /src/core/libpromises/item_lib.c:200,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - list
    - item
    - classes
    argTypes:
    - Item*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 209
    functionName: ReturnItemInClass
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    - strcmp
    linkageType: ''
    returnType: Item
    signature: Item *ReturnItemInClass(Item *list, const char *item, const char *classes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - list
    - index
    argTypes:
    - Item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: ReturnItemAtIndex
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Item
    signature: Item *ReturnItemAtIndex(Item *list, int index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:234,1
    - Dst: strcmp
      Src: /src/core/libpromises/item_lib.c:237,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - Item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 246
    functionName: IsItemIn
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 14
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool IsItemIn(const Item *list, const char *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ListLen
      Src: /src/core/libpromises/item_lib.c:264,1
    - Dst: ListLen
      Src: /src/core/libpromises/item_lib.c:264,1
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:270,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/item_lib.c:273,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - list1
    - list2
    argTypes:
    - Item*
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: ListsCompare
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 2
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    - IsItemIn
    - ListLen
    linkageType: ''
    returnType: bool
    signature: bool ListsCompare(const Item *list1, const Item *list2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:291,1
    - Dst: IsItemIn
      Src: /src/core/libpromises/item_lib.c:295,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - list1
    - list2
    argTypes:
    - Item*
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 305
    functionName: ListSubsetOfList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    - IsItemIn
    linkageType: ''
    returnType: bool
    signature: bool ListSubsetOfList(const Item *list1, const Item *list2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:313,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ip
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 322
    functionName: EndOfList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    linkageType: ''
    returnType: Item
    signature: Item *EndOfList(Item *ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReturnItemIn
      Src: /src/core/libpromises/item_lib.c:328,1
    - Dst: PrependItem
      Src: /src/core/libpromises/item_lib.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - liststart
    - itemstring
    - classes
    argTypes:
    - Item**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 336
    functionName: IdempPrependItem
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - PrependItem
    - ReturnItemIn
    linkageType: ''
    returnType: Item
    signature: Item *IdempPrependItem(Item **liststart, const char *itemstring, const
      char *classes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReturnItemInClass
      Src: /src/core/libpromises/item_lib.c:342,1
    - Dst: PrependItem
      Src: /src/core/libpromises/item_lib.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - liststart
    - itemstring
    - classes
    argTypes:
    - Item**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: IdempPrependItemClass
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - PrependItem
    - ReturnItemInClass
    linkageType: ''
    returnType: Item
    signature: Item *IdempPrependItemClass(Item **liststart, const char *itemstring,
      const char *classes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReturnItemIn
      Src: /src/core/libpromises/item_lib.c:356,1
    - Dst: PrependItem
      Src: /src/core/libpromises/item_lib.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - liststart
    - itemstring
    - classes
    argTypes:
    - Item**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 368
    functionName: IdempItemCount
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - PrependItem
    - ReturnItemIn
    linkageType: ''
    returnType: void
    signature: void IdempItemCount(Item **liststart, const char *itemstring, const
      char *classes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/item_lib.c:374,1
    - Dst: xstrdup
      Src: /src/core/libpromises/item_lib.c:376,1
    - Dst: xstrdup
      Src: /src/core/libpromises/item_lib.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - liststart
    - itemstring
    - classes
    argTypes:
    - Item**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: PrependItem
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 17
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: Item
    signature: Item *PrependItem(Item **liststart, const char *itemstring, const char
      *classes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/item_lib.c:392,1
    - Dst: xstrdup
      Src: /src/core/libpromises/item_lib.c:394,1
    - Dst: xstrdup
      Src: /src/core/libpromises/item_lib.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - liststart
    - itemstring
    - classes
    - counter
    - t
    argTypes:
    - Item**
    - char*
    - char*
    - int
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 404
    functionName: PrependFullItem
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void PrependFullItem(Item **liststart, const char *itemstring, const
      char *classes, int counter, time_t t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/item_lib.c:417,1
    - Dst: xstrdup
      Src: /src/core/libpromises/item_lib.c:419,1
    - Dst: xstrdup
      Src: /src/core/libpromises/item_lib.c:422,1
    - Dst: EndOfList
      Src: /src/core/libpromises/item_lib.c:431,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - liststart
    - itemstring
    - classes
    argTypes:
    - Item**
    - char*
    - char*
    assertStmts:
    - condition: (lp != CF_UNDEFINED_ITEM)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/core/libpromises/item_lib.c
    constantsTouched: []
    func_position:
      end: 435
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 435
    functionName: AppendItem
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 11
    functionsReached:
    - xcalloc
    - EndOfList
    - assert
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void AppendItem(Item **liststart, const char *itemstring, const char
      *classes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libpromises/item_lib.c:441,1
    - Dst: xstrdup
      Src: /src/core/libpromises/item_lib.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - liststart
    - itemstring
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: PrependItemList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void PrependItemList(Item **liststart, const char *itemstring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:454,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 464
    functionName: ListLen
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 10
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    linkageType: ''
    returnType: size_t
    signature: size_t ListLen(const Item *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/item_lib.c:473,1
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:482,1
    - Dst: PrependFullItem
      Src: /src/core/libpromises/item_lib.c:486,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:489,1
    - Dst: ReverseItemList
      Src: /src/core/libpromises/item_lib.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - Item**
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 492
    functionName: CopyList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 2
    functionsReached:
    - PrependFullItem
    - CYCLE_DECLARE
    - ProgrammingError
    - ReverseItemList
    - CYCLE_CHECK
    linkageType: ''
    returnType: void
    signature: void CopyList(Item **dest, const Item *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libpromises/item_lib.c:502,1
    - Dst: EndOfList
      Src: /src/core/libpromises/item_lib.c:504,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:505,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:506,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:509,1
    - Dst: ItemIsInList
      Src: /src/core/libpromises/item_lib.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - list1
    - list2
    argTypes:
    - Item*
    - Item*
    assertStmts:
    - condition: (!ItemIsInList(list2, tail))
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/core/libpromises/item_lib.c
    - condition: (tail->next == NULL)
      pos:
        line_end: 505
        line_start: 505
        source_file: /src/core/libpromises/item_lib.c
    - condition: (tail != CF_UNDEFINED_ITEM)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/core/libpromises/item_lib.c
    constantsTouched: []
    func_position:
      end: 512
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 512
    functionName: ConcatLists
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - ItemIsInList
    - EndOfList
    - assert
    - ProgrammingError
    linkageType: ''
    returnType: Item
    signature: Item *ConcatLists(Item *list1, Item *list2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AppendItem
      Src: /src/core/libpromises/item_lib.c:518,1
    - Dst: AppendItem
      Src: /src/core/libpromises/item_lib.c:524,1
    - Dst: xcalloc
      Src: /src/core/libpromises/item_lib.c:528,1
    - Dst: xstrdup
      Src: /src/core/libpromises/item_lib.c:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - filestart
    - ptr
    - string
    argTypes:
    - Item**
    - Item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 534
    functionName: InsertAfter
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - xstrdup
    - AppendItem
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void InsertAfter(Item **filestart, Item *ptr, const char *string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/item_lib.c:550,1
    - Dst: xmalloc
      Src: /src/core/libpromises/item_lib.c:554,1
    - Dst: strcspn
      Src: /src/core/libpromises/item_lib.c:561,1
    - Dst: memcpy
      Src: /src/core/libpromises/item_lib.c:563,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:586,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:587,1
    - Dst: PrependItem
      Src: /src/core/libpromises/item_lib.c:593,1
    - Dst: memcpy
      Src: /src/core/libpromises/item_lib.c:602,1
    - Dst: PrependItem
      Src: /src/core/libpromises/item_lib.c:605,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:607,1
    - Dst: ReverseItemList
      Src: /src/core/libpromises/item_lib.c:608,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - string
    - sep
    argTypes:
    - char*
    - char
    assertStmts:
    - condition: (string[z] == sep)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/core/libpromises/item_lib.c
    - condition: "((z == 0) ||\n                   (z > 0 && string[z-1] != '\\\\'))"
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/core/libpromises/item_lib.c
    constantsTouched: []
    func_position:
      end: 609
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 609
    functionName: SplitString
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 34
    functionsReached:
    - memcpy
    - strcspn
    - strlen
    - assert
    - ReverseItemList
    - xmalloc
    - PrependItem
    - free
    linkageType: ''
    returnType: Item
    signature: Item *SplitString(const char *string, char sep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/item_lib.c:622,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:623,1
    - Dst: strlen
      Src: /src/core/libpromises/item_lib.c:623,1
    - Dst: sscanf
      Src: /src/core/libpromises/item_lib.c:627,1
    - Dst: strlen
      Src: /src/core/libpromises/item_lib.c:630,1
    - Dst: PrependItem
      Src: /src/core/libpromises/item_lib.c:631,1
    - Dst: ReverseItemList
      Src: /src/core/libpromises/item_lib.c:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - string
    - sep
    argTypes:
    - char*
    - char
    assertStmts:
    - condition: (strlen(format) + 1 == sizeof(format) || sep == '\0')
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/core/libpromises/item_lib.c
    constantsTouched: []
    func_position:
      end: 636
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 636
    functionName: SplitStringAsItemList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - strlen
    - assert
    - sscanf
    - PrependItem
    - ReverseItemList
    linkageType: ''
    returnType: Item
    signature: Item *SplitStringAsItemList(const char *string, char sep)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ItemListSize
      Src: /src/core/libpromises/item_lib.c:645,1
    - Dst: ListLen
      Src: /src/core/libpromises/item_lib.c:645,1
    - Dst: xmalloc
      Src: /src/core/libpromises/item_lib.c:651,1
    - Dst: strcat
      Src: /src/core/libpromises/item_lib.c:659,1
    - Dst: strcat
      Src: /src/core/libpromises/item_lib.c:664,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:668,1
    - Dst: strlen
      Src: /src/core/libpromises/item_lib.c:668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - list
    argTypes:
    - Item*
    assertStmts:
    - condition: (strlen(s) + 1 == s_size)
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/core/libpromises/item_lib.c
    constantsTouched: []
    func_position:
      end: 671
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 671
    functionName: ItemList2CSV
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - ListLen
    - ItemListSize
    - assert
    - strlen
    - strcat
    - xmalloc
    linkageType: ''
    returnType: char
    signature: char *ItemList2CSV(const Item *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:686,1
    - Dst: strlen
      Src: /src/core/libpromises/item_lib.c:690,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:691,1
    - Dst: memcpy
      Src: /src/core/libpromises/item_lib.c:695,1
    - Dst: memcpy
      Src: /src/core/libpromises/item_lib.c:701,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - list
    - buf
    - buf_size
    - separator
    argTypes:
    - Item*
    - char*
    - size_t
    - char
    assertStmts:
    - condition: (buf + buf_size == tail + space + 1)
      pos:
        line_end: 690
        line_start: 690
        source_file: /src/core/libpromises/item_lib.c
    constantsTouched: []
    func_position:
      end: 728
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 728
    functionName: ItemList2CSV_bound
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - assert
    - CYCLE_DECLARE
    - CYCLE_CHECK
    linkageType: ''
    returnType: size_t
    signature: "size_t ItemList2CSV_bound(const Item *list, char *buf, size_t buf_size,\n
      \                         char separator)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:742,1
    - Dst: strcmp
      Src: /src/core/libpromises/item_lib.c:745,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:751,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - Item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 753
    functionName: IncrementItemListCounter
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    - strcmp
    linkageType: ''
    returnType: void
    signature: void IncrementItemListCounter(Item *list, const char *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:765,1
    - Dst: strcmp
      Src: /src/core/libpromises/item_lib.c:768,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - list
    - item
    - value
    argTypes:
    - Item*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 776
    functionName: SetItemListCounter
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - CYCLE_CHECK
    - CYCLE_DECLARE
    - strcmp
    linkageType: ''
    returnType: void
    signature: void SetItemListCounter(Item *list, const char *item, int value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:789,1
    - Dst: FuzzySetMatch
      Src: /src/core/libpromises/item_lib.c:792,1
    - Dst: IsRegex
      Src: /src/core/libpromises/item_lib.c:793,1
    - Dst: StringMatchFull
      Src: /src/core/libpromises/item_lib.c:794,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - Item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 803
    functionName: IsMatchItemIn
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - FuzzySetMatch
    - StringMatchFull
    - CYCLE_DECLARE
    - IsRegex
    - CYCLE_CHECK
    linkageType: ''
    returnType: bool
    signature: bool IsMatchItemIn(const Item *list, const char *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:815,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:816,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 819
    functionName: DeleteItemList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 35
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void DeleteItemList(Item *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:834,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:838,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:843,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:848,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:849,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:850,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - liststart
    - item
    argTypes:
    - Item**
    - Item*
    assertStmts:
    - condition: (ip->next == item)
      pos:
        line_end: 842
        line_start: 842
        source_file: /src/core/libpromises/item_lib.c
    constantsTouched: []
    func_position:
      end: 852
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 852
    functionName: DeleteItem
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - assert
    - CYCLE_CHECK
    - CYCLE_DECLARE
    - free
    linkageType: ''
    returnType: void
    signature: void DeleteItem(Item **liststart, Item *item)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CompileRegex
      Src: /src/core/libpromises/item_lib.c:882,1
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:890,1
    - Dst: strncmp
      Src: /src/core/libpromises/item_lib.c:902,1
    - Dst: strlen
      Src: /src/core/libpromises/item_lib.c:902,1
    - Dst: strcmp
      Src: /src/core/libpromises/item_lib.c:909,1
    - Dst: strstr
      Src: /src/core/libpromises/item_lib.c:916,1
    - Dst: StringMatchFullWithPrecompiledRegex
      Src: /src/core/libpromises/item_lib.c:923,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:939,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:940,1
    - Dst: assert
      Src: /src/core/libpromises/item_lib.c:941,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:945,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:946,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:947,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/item_lib.c:950,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:958,1
    - Dst: RegexDestroy
      Src: /src/core/libpromises/item_lib.c:963,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 3
    argNames:
    - list
    - string
    - type
    argTypes:
    - Item**
    - char*
    - ItemMatchType
    assertStmts:
    - condition: (ip != NULL)
      pos:
        line_end: 938
        line_start: 938
        source_file: /src/core/libpromises/item_lib.c
    - condition: (last != NULL)
      pos:
        line_end: 939
        line_start: 939
        source_file: /src/core/libpromises/item_lib.c
    - condition: (last->next == ip)
      pos:
        line_end: 940
        line_start: 940
        source_file: /src/core/libpromises/item_lib.c
    constantsTouched: []
    func_position:
      end: 967
      start: 871
    functionDepth: 3
    functionLinenumber: 871
    functionLinenumberEnd: 967
    functionName: DeleteItemGeneral
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - strstr
    - assert
    - CompileRegex
    - RegexDestroy
    - CYCLE_DECLARE
    - StringMatchFullWithPrecompiledRegex
    - strcmp
    - free
    - CYCLE_CHECK
    linkageType: ''
    returnType: bool
    signature: bool DeleteItemGeneral(Item **list, const char *string, ItemMatchType
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemGeneral
      Src: /src/core/libpromises/item_lib.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 971
    functionDepth: 4
    functionLinenumber: 971
    functionLinenumberEnd: 974
    functionName: DeleteItemStarting
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - DeleteItemGeneral
    linkageType: ''
    returnType: bool
    signature: bool DeleteItemStarting(Item **list, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemGeneral
      Src: /src/core/libpromises/item_lib.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 978
    functionDepth: 4
    functionLinenumber: 978
    functionLinenumberEnd: 981
    functionName: DeleteItemNotStarting
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - DeleteItemGeneral
    linkageType: ''
    returnType: bool
    signature: bool DeleteItemNotStarting(Item **list, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemGeneral
      Src: /src/core/libpromises/item_lib.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 985
    functionDepth: 4
    functionLinenumber: 985
    functionLinenumberEnd: 988
    functionName: DeleteItemLiteral
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - DeleteItemGeneral
    linkageType: ''
    returnType: bool
    signature: bool DeleteItemLiteral(Item **list, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemGeneral
      Src: /src/core/libpromises/item_lib.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 992
    functionDepth: 4
    functionLinenumber: 992
    functionLinenumberEnd: 995
    functionName: DeleteItemMatching
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - DeleteItemGeneral
    linkageType: ''
    returnType: bool
    signature: bool DeleteItemMatching(Item **list, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemGeneral
      Src: /src/core/libpromises/item_lib.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 999
    functionDepth: 4
    functionLinenumber: 999
    functionLinenumberEnd: 1002
    functionName: DeleteItemNotMatching
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - DeleteItemGeneral
    linkageType: ''
    returnType: bool
    signature: bool DeleteItemNotMatching(Item **list, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemGeneral
      Src: /src/core/libpromises/item_lib.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1006
    functionDepth: 4
    functionLinenumber: 1006
    functionLinenumberEnd: 1009
    functionName: DeleteItemContaining
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - DeleteItemGeneral
    linkageType: ''
    returnType: bool
    signature: bool DeleteItemContaining(Item **list, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemGeneral
      Src: /src/core/libpromises/item_lib.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1013
    functionDepth: 4
    functionLinenumber: 1013
    functionLinenumberEnd: 1016
    functionName: DeleteItemNotContaining
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - DeleteItemGeneral
    linkageType: ''
    returnType: bool
    signature: bool DeleteItemNotContaining(Item **list, const char *string)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libpromises/item_lib.c:1026,1
    - Dst: Log
      Src: /src/core/libpromises/item_lib.c:1030,1
    - Dst: GetErrorStr::GetErrorStr
      Src: /src/core/libpromises/item_lib.c:1030,1
    - Dst: CYCLE_DECLARE
      Src: /src/core/libpromises/item_lib.c:1035,1
    - Dst: fprintf
      Src: /src/core/libpromises/item_lib.c:1038,1
    - Dst: CYCLE_CHECK
      Src: /src/core/libpromises/item_lib.c:1040,1
    - Dst: fclose
      Src: /src/core/libpromises/item_lib.c:1043,1
    - Dst: Log
      Src: /src/core/libpromises/item_lib.c:1045,1
    - Dst: GetErrorStr::GetErrorStr
      Src: /src/core/libpromises/item_lib.c:1045,1
    - Dst: rename
      Src: /src/core/libpromises/item_lib.c:1049,1
    - Dst: filename::filename
      Src: /src/core/libpromises/item_lib.c:1049,1
    - Dst: Log
      Src: /src/core/libpromises/item_lib.c:1051,1
    - Dst: filename::filename
      Src: /src/core/libpromises/item_lib.c:1051,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/item_lib.c:1051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - liststart
    - filename
    - new_line_mode
    argTypes:
    - Item*
    - char*
    - NewLineMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1020
    functionDepth: 8
    functionLinenumber: 1020
    functionLinenumberEnd: 1056
    functionName: RawSaveItemList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - safe_fopen
    - GetErrorStr::GetErrorStr
    - CYCLE_DECLARE
    - Log
    - filename::filename
    - fclose
    - fprintf
    - CYCLE_CHECK
    - rename
    linkageType: ''
    returnType: bool
    signature: bool RawSaveItemList(const Item *liststart, const char *filename, NewLineMode
      new_line_mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/libpromises/item_lib.c:1060,1
    - Dst: xmalloc
      Src: /src/core/libpromises/item_lib.c:1067,1
    - Dst: CfReadLine
      Src: /src/core/libpromises/item_lib.c:1070,1
    - Dst: PrependItem
      Src: /src/core/libpromises/item_lib.c:1072,1
    - Dst: free
      Src: /src/core/libpromises/item_lib.c:1075,1
    - Dst: feof
      Src: /src/core/libpromises/item_lib.c:1077,1
    - Dst: Log
      Src: /src/core/libpromises/item_lib.c:1079,1
    - Dst: DeleteItemList
      Src: /src/core/libpromises/item_lib.c:1080,1
    - Dst: fclose
      Src: /src/core/libpromises/item_lib.c:1083,1
    - Dst: ReverseItemList
      Src: /src/core/libpromises/item_lib.c:1085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1058
    functionDepth: 8
    functionLinenumber: 1058
    functionLinenumberEnd: 1086
    functionName: RawLoadItemList
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - ReverseItemList
    - feof
    - safe_fopen
    - xmalloc
    - Log
    - PrependItem
    - fclose
    - DeleteItemList
    - free
    - CfReadLine
    linkageType: ''
    returnType: Item
    signature: Item *RawLoadItemList(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/core/libpromises/item_lib.c:1093,1
    - Dst: strlen
      Src: /src/core/libpromises/item_lib.c:1093,1
    - Dst: Log
      Src: /src/core/libpromises/item_lib.c:1095,1
    - Dst: Log
      Src: /src/core/libpromises/item_lib.c:1100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ip_addresses
    - adr
    argTypes:
    - Item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1088
    functionDepth: 8
    functionLinenumber: 1088
    functionLinenumberEnd: 1102
    functionName: IsInterfaceAddress
    functionSourceFile: /src/core/libpromises/item_lib.c
    functionUses: 0
    functionsReached:
    - Log
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool IsInterfaceAddress(const Item *ip_addresses, const char *adr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RlistCopy
      Src: /src/core/libpromises/fncall.c:68,1
    - Dst: FnCallTypeGet
      Src: /src/core/libpromises/fncall.c:71,1
    - Dst: FatalError
      Src: /src/core/libpromises/fncall.c:74,1
    - Dst: RlistLen
      Src: /src/core/libpromises/fncall.c:78,1
    - Dst: FnNumArgs
      Src: /src/core/libpromises/fncall.c:82,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:84,1
    - Dst: FnNumArgs
      Src: /src/core/libpromises/fncall.c:85,1
    - Dst: PromiseRef
      Src: /src/core/libpromises/fncall.c:86,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libpromises/fncall.c:87,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/fncall.c:99,1
    - Dst: FnCallEvaluate
      Src: /src/core/libpromises/fncall.c:100,1
    - Dst: ExpandPrivateRval
      Src: /src/core/libpromises/fncall.c:104,1
    - Dst: assert
      Src: /src/core/libpromises/fncall.c:105,1
    - Dst: RlistAppendAllTypes
      Src: /src/core/libpromises/fncall.c:127,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/fncall.c:129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - fp_type
    argTypes:
    - EvalContext*
    - Policy*
    - FnCall*
    - FnCallType*
    assertStmts:
    - condition: (rval.item)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/core/libpromises/fncall.c
    constantsTouched: []
    func_position:
      end: 133
      start: 63
    functionDepth: 9
    functionLinenumber: 63
    functionLinenumberEnd: 133
    functionName: NewExpArgs
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 2
    functionsReached:
    - DoCleanupAndExit
    - FnNumArgs
    - RlistCopy
    - RvalDestroy
    - ExpandPrivateRval
    - FnCallTypeGet
    - FnCallEvaluate
    - assert
    - PromiseRef
    - RlistFnCallValue
    - FatalError
    - Log
    - RlistAppendAllTypes
    - RlistLen
    linkageType: ''
    returnType: Rlist
    signature: Rlist *NewExpArgs(EvalContext *ctx, const Policy *policy, const FnCall
      *fp, const FnCallType *fp_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FnCallTypeGet
      Src: /src/core/libpromises/fncall.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - rval
    argTypes:
    - Rval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: FnCallIsBuiltIn
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 1
    functionsReached:
    - FnCallTypeGet
    linkageType: ''
    returnType: bool
    signature: bool FnCallIsBuiltIn(Rval rval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libpromises/fncall.c:162,1
    - Dst: xstrdup
      Src: /src/core/libpromises/fncall.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - args
    argTypes:
    - char*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: FnCallNew
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 4
    functionsReached:
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: FnCall
    signature: FnCall *FnCallNew(const char *name, Rlist *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FnCallNew
      Src: /src/core/libpromises/fncall.c:174,1
    - Dst: RlistCopyRewriter
      Src: /src/core/libpromises/fncall.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - map
    argTypes:
    - FnCall*
    - JsonElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 7
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: FnCallCopyRewriter
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 1
    functionsReached:
    - FnCallNew
    - RlistCopyRewriter
    linkageType: ''
    returnType: FnCall
    signature: FnCall *FnCallCopyRewriter(const FnCall *f, JsonElement *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FnCallCopyRewriter
      Src: /src/core/libpromises/fncall.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FnCall*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 8
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: FnCallCopy
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 0
    functionsReached:
    - FnCallCopyRewriter
    linkageType: ''
    returnType: FnCall
    signature: FnCall *FnCallCopy(const FnCall *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libpromises/fncall.c:188,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/fncall.c:189,1
    - Dst: free
      Src: /src/core/libpromises/fncall.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FnCall*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: FnCallDestroy
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 4
    functionsReached:
    - free
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void FnCallDestroy(FnCall *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringHash
      Src: /src/core/libpromises/fncall.c:196,1
    - Dst: RlistHash
      Src: /src/core/libpromises/fncall.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - seed
    argTypes:
    - FnCall*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: FnCallHash
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 1
    functionsReached:
    - StringHash
    - RlistHash
    linkageType: ''
    returnType: unsigned
    signature: unsigned FnCallHash(const FnCall *fp, unsigned seed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsCf3VarString
      Src: /src/core/libpromises/fncall.c:204,1
    - Dst: BufferNewWithCapacity
      Src: /src/core/libpromises/fncall.c:207,1
    - Dst: ExpandScalar
      Src: /src/core/libpromises/fncall.c:208,1
    - Dst: FnCallNew
      Src: /src/core/libpromises/fncall.c:210,1
    - Dst: BufferData
      Src: /src/core/libpromises/fncall.c:210,1
    - Dst: ExpandList
      Src: /src/core/libpromises/fncall.c:210,1
    - Dst: BufferDestroy
      Src: /src/core/libpromises/fncall.c:211,1
    - Dst: FnCallNew
      Src: /src/core/libpromises/fncall.c:215,1
    - Dst: ExpandList
      Src: /src/core/libpromises/fncall.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - ns
    - scope
    - f
    argTypes:
    - EvalContext*
    - char*
    - char*
    - FnCall*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 201
    functionDepth: 12
    functionLinenumber: 201
    functionLinenumberEnd: 219
    functionName: ExpandFnCall
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 2
    functionsReached:
    - IsCf3VarString
    - BufferData
    - BufferDestroy
    - BufferNewWithCapacity
    - ExpandScalar
    - ExpandList
    - FnCallNew
    linkageType: ''
    returnType: FnCall
    signature: FnCall *ExpandFnCall(const EvalContext *ctx, const char *ns, const
      char *scope, const FnCall *f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WriterWrite
      Src: /src/core/libpromises/fncall.c:223,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/fncall.c:224,1
    - Dst: ScalarWrite
      Src: /src/core/libpromises/fncall.c:231,1
    - Dst: RlistScalarValue
      Src: /src/core/libpromises/fncall.c:231,1
    - Dst: FnCallWrite
      Src: /src/core/libpromises/fncall.c:235,1
    - Dst: RlistFnCallValue
      Src: /src/core/libpromises/fncall.c:235,1
    - Dst: WriterWrite
      Src: /src/core/libpromises/fncall.c:239,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/fncall.c:245,1
    - Dst: WriterWriteChar
      Src: /src/core/libpromises/fncall.c:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - writer
    - call
    argTypes:
    - Writer*
    - FnCall*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 250
    functionName: FnCallWrite
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 3
    functionsReached:
    - ScalarWrite
    - WriterWriteChar
    - WriterWrite
    - RlistFnCallValue
    - RlistScalarValue
    - FnCallWrite
    linkageType: ''
    returnType: void
    signature: void FnCallWrite(Writer *writer, const FnCall *call)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FnCallTypeGet
      Src: /src/core/libpromises/fncall.c:257,1
    - Dst: FatalError
      Src: /src/core/libpromises/fncall.c:260,1
    - Dst: CheckConstraintTypeMatch
      Src: /src/core/libpromises/fncall.c:269,1
    - Dst: FatalError
      Src: /src/core/libpromises/fncall.c:274,1
    - Dst: SyntaxTypeMatchToString
      Src: /src/core/libpromises/fncall.c:274,1
    - Dst: RlistLen
      Src: /src/core/libpromises/fncall.c:281,1
    - Dst: RlistToString
      Src: /src/core/libpromises/fncall.c:283,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:284,1
    - Dst: free
      Src: /src/core/libpromises/fncall.c:285,1
    - Dst: RvalToString
      Src: /src/core/libpromises/fncall.c:292,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:293,1
    - Dst: free
      Src: /src/core/libpromises/fncall.c:294,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:298,1
    - Dst: FatalError
      Src: /src/core/libpromises/fncall.c:302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - expargs
    argTypes:
    - EvalContext*
    - Policy*
    - FnCall*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 254
    functionDepth: 10
    functionLinenumber: 254
    functionLinenumberEnd: 306
    functionName: CallFunction
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 0
    functionsReached:
    - FnCallTypeGet
    - CheckConstraintTypeMatch
    - FatalError
    - RlistToString
    - Log
    - RvalToString
    - free
    - RlistLen
    - SyntaxTypeMatchToString
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult CallFunction(EvalContext *ctx, const Policy *policy, const
      FnCall *fp, const Rlist *expargs)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libpromises/fncall.c:310,1
    - Dst: assert
      Src: /src/core/libpromises/fncall.c:311,1
    - Dst: assert
      Src: /src/core/libpromises/fncall.c:312,1
    - Dst: EvalContextGetEvalOption
      Src: /src/core/libpromises/fncall.c:315,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:317,1
    - Dst: FnCallCopy
      Src: /src/core/libpromises/fncall.c:319,1
    - Dst: FnCallTypeGet
      Src: /src/core/libpromises/fncall.c:322,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:328,1
    - Dst: PromiseGetBundle
      Src: /src/core/libpromises/fncall.c:329,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:333,1
    - Dst: FnCallCopy
      Src: /src/core/libpromises/fncall.c:336,1
    - Dst: PromiseGetConstraintAsList
      Src: /src/core/libpromises/fncall.c:343,1
    - Dst: RlistContainsString
      Src: /src/core/libpromises/fncall.c:346,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:348,1
    - Dst: FnCallCopy
      Src: /src/core/libpromises/fncall.c:349,1
    - Dst: NewExpArgs
      Src: /src/core/libpromises/fncall.c:352,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/fncall.c:356,1
    - Dst: StringWriter
      Src: /src/core/libpromises/fncall.c:358,1
    - Dst: FnCallWrite
      Src: /src/core/libpromises/fncall.c:359,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/fncall.c:360,1
    - Dst: RlistIsUnresolved
      Src: /src/core/libpromises/fncall.c:365,1
    - Dst: strcmp
      Src: /src/core/libpromises/fncall.c:369,1
    - Dst: RlistLen
      Src: /src/core/libpromises/fncall.c:371,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:373,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/fncall.c:379,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:381,1
    - Dst: WriterClose
      Src: /src/core/libpromises/fncall.c:384,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/fncall.c:386,1
    - Dst: FnCallCopy
      Src: /src/core/libpromises/fncall.c:387,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/libpromises/fncall.c:393,1
    - Dst: EvalContextFunctionCacheGet
      Src: /src/core/libpromises/fncall.c:397,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/fncall.c:399,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:401,1
    - Dst: WriterClose
      Src: /src/core/libpromises/fncall.c:404,1
    - Dst: StringWriter
      Src: /src/core/libpromises/fncall.c:406,1
    - Dst: FnCallWrite
      Src: /src/core/libpromises/fncall.c:407,1
    - Dst: WriterClose
      Src: /src/core/libpromises/fncall.c:408,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/fncall.c:409,1
    - Dst: RvalCopy
      Src: /src/core/libpromises/fncall.c:411,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/libpromises/fncall.c:415,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:417,1
    - Dst: WriterClose
      Src: /src/core/libpromises/fncall.c:419,1
    - Dst: EvalContextGetProfiling
      Src: /src/core/libpromises/fncall.c:422,1
    - Dst: FunctionToEventFrame
      Src: /src/core/libpromises/fncall.c:422,1
    - Dst: EvalContextGetLastEventFrame
      Src: /src/core/libpromises/fncall.c:422,1
    - Dst: CallFunction
      Src: /src/core/libpromises/fncall.c:423,1
    - Dst: EvalContextAppendEventFrame
      Src: /src/core/libpromises/fncall.c:426,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/fncall.c:431,1
    - Dst: RvalDestroy
      Src: /src/core/libpromises/fncall.c:432,1
    - Dst: FnCallCopy
      Src: /src/core/libpromises/fncall.c:433,1
    - Dst: StringWriter
      Src: /src/core/libpromises/fncall.c:438,1
    - Dst: FnCallWrite
      Src: /src/core/libpromises/fncall.c:439,1
    - Dst: Log
      Src: /src/core/libpromises/fncall.c:440,1
    - Dst: StringWriterData
      Src: /src/core/libpromises/fncall.c:440,1
    - Dst: WriterClose
      Src: /src/core/libpromises/fncall.c:441,1
    - Dst: EvalContextFunctionCachePut
      Src: /src/core/libpromises/fncall.c:443,1
    - Dst: RlistDestroy
      Src: /src/core/libpromises/fncall.c:446,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 4
    argNames:
    - ctx
    - policy
    - fp
    - caller
    argTypes:
    - EvalContext*
    - Policy*
    - FnCall*
    - Promise*
    assertStmts:
    - condition: (policy != NULL)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/core/libpromises/fncall.c
    - condition: (ctx != NULL)
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/core/libpromises/fncall.c
    - condition: (fp != NULL)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/core/libpromises/fncall.c
    constantsTouched: []
    func_position:
      end: 449
      start: 308
    functionDepth: 12
    functionLinenumber: 308
    functionLinenumberEnd: 449
    functionName: FnCallEvaluate
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 7
    functionsReached:
    - FnCallTypeGet
    - FunctionToEventFrame
    - RvalCopy
    - Log
    - FnCallCopy
    - RlistContainsString
    - FnCallWrite
    - PromiseGetConstraintAsList
    - EvalContextFunctionCacheGet
    - RlistLen
    - RvalDestroy
    - EvalContextGetProfiling
    - CallFunction
    - LogGetGlobalLevel
    - strcmp
    - RlistDestroy
    - RlistIsUnresolved
    - EvalContextFunctionCachePut
    - PromiseGetBundle
    - WriterClose
    - NewExpArgs
    - assert
    - EvalContextGetEvalOption
    - PromiseGetConstraintAsInt
    - EvalContextAppendEventFrame
    - StringWriter
    - EvalContextGetLastEventFrame
    - StringWriterData
    linkageType: ''
    returnType: FnCallResult
    signature: FnCallResult FnCallEvaluate(EvalContext *ctx, const Policy *policy,
      FnCall *fp, const Promise *caller)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libpromises/fncall.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 466
    functionName: FnCallTypeGet
    functionSourceFile: /src/core/libpromises/fncall.c
    functionUses: 7
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: FnCallType
    signature: FnCallType *FnCallTypeGet(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - facility
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: SetSyslogFacility
    functionSourceFile: /src/core/libpromises/syslog_client.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSyslogFacility(int facility)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: GetSyslogFacility
    functionSourceFile: /src/core/libpromises/syslog_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetSyslogFacility()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libpromises/syslog_client.c:58,1
    - Dst: strcpy
      Src: /src/core/libpromises/syslog_client.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: SetSyslogHost
    functionSourceFile: /src/core/libpromises/syslog_client.c
    functionUses: 1
    functionsReached:
    - strcpy
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool SetSyslogHost(const char *host)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: SetSyslogPort
    functionSourceFile: /src/core/libpromises/syslog_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSyslogPort(uint16_t port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/libpromises/syslog_client.c:76,1
    - Dst: PRINTSIZE
      Src: /src/core/libpromises/syslog_client.c:79,1
    - Dst: xsnprintf
      Src: /src/core/libpromises/syslog_client.c:80,1
    - Dst: getaddrinfo
      Src: /src/core/libpromises/syslog_client.c:85,1
    - Dst: Log
      Src: /src/core/libpromises/syslog_client.c:88,1
    - Dst: gai_strerror
      Src: /src/core/libpromises/syslog_client.c:90,1
    - Dst: freeaddrinfo
      Src: /src/core/libpromises/syslog_client.c:93,1
    - Dst: getnameinfo
      Src: /src/core/libpromises/syslog_client.c:102,1
    - Dst: Log
      Src: /src/core/libpromises/syslog_client.c:105,1
    - Dst: socket
      Src: /src/core/libpromises/syslog_client.c:109,1
    - Dst: Log
      Src: /src/core/libpromises/syslog_client.c:112,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/syslog_client.c:112,1
    - Dst: getpid
      Src: /src/core/libpromises/syslog_client.c:119,1
    - Dst: snprintf
      Src: /src/core/libpromises/syslog_client.c:121,1
    - Dst: cf_strtimestamp_local
      Src: /src/core/libpromises/syslog_client.c:126,1
    - Dst: sendto
      Src: /src/core/libpromises/syslog_client.c:131,1
    - Dst: strlen
      Src: /src/core/libpromises/syslog_client.c:131,1
    - Dst: Log
      Src: /src/core/libpromises/syslog_client.c:135,1
    - Dst: GetErrorStr
      Src: /src/core/libpromises/syslog_client.c:136,1
    - Dst: Log
      Src: /src/core/libpromises/syslog_client.c:140,1
    - Dst: close
      Src: /src/core/libpromises/syslog_client.c:142,1
    - Dst: freeaddrinfo
      Src: /src/core/libpromises/syslog_client.c:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - log_priority
    - log_string
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 74
    functionDepth: 9
    functionLinenumber: 74
    functionLinenumberEnd: 147
    functionName: RemoteSysLog
    functionSourceFile: /src/core/libpromises/syslog_client.c
    functionUses: 3
    functionsReached:
    - GetErrorStr
    - freeaddrinfo
    - PRINTSIZE
    - snprintf
    - getpid
    - strlen
    - socket
    - getnameinfo
    - sendto
    - cf_strtimestamp_local
    - gai_strerror
    - Log
    - xsnprintf
    - getaddrinfo
    - time
    - close
    linkageType: ''
    returnType: void
    signature: void RemoteSysLog(int log_priority, const char *log_string)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/mon_cpu.c:51,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_cpu.c:54,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_cpu.c:54,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_cpu.c:58,1
    - Dst: feof
      Src: /src/core/cf-monitord/mon_cpu.c:60,1
    - Dst: fgets
      Src: /src/core/cf-monitord/mon_cpu.c:62,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_cpu.c:66,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_cpu.c:67,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_cpu.c:70,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_cpu.c:78,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_cpu.c:80,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_cpu.c:84,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_cpu.c:86,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_cpu.c:101,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_cpu.c:103,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_cpu.c:118,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_cpu.c:122,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 43
    functionDepth: 8
    functionLinenumber: 43
    functionLinenumberEnd: 123
    functionName: MonCPUGatherData
    functionSourceFile: /src/core/cf-monitord/mon_cpu.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - strncmp
    - fgets
    - nt_static_assert
    - feof
    - safe_fopen
    - sscanf
    - Log
    - strcmp
    - fclose
    linkageType: ''
    returnType: void
    signature: void MonCPUGatherData(double *cf_this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckOpts
      Src: /src/core/cf-monitord/cf-monitord.c:133,1
    - Dst: EvalContextNew
      Src: /src/core/cf-monitord/cf-monitord.c:134,1
    - Dst: GenericAgentConfigApply
      Src: /src/core/cf-monitord/cf-monitord.c:135,1
    - Dst: strrchr
      Src: /src/core/cf-monitord/cf-monitord.c:138,1
    - Dst: GenericAgentDiscoverContext
      Src: /src/core/cf-monitord/cf-monitord.c:140,1
    - Dst: LoadPolicy
      Src: /src/core/cf-monitord/cf-monitord.c:142,1
    - Dst: GenericAgentPostLoadInit
      Src: /src/core/cf-monitord/cf-monitord.c:144,1
    - Dst: ThisAgentInit
      Src: /src/core/cf-monitord/cf-monitord.c:145,1
    - Dst: KeepPromises
      Src: /src/core/cf-monitord/cf-monitord.c:147,1
    - Dst: MonitorStartServer
      Src: /src/core/cf-monitord/cf-monitord.c:149,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-monitord/cf-monitord.c:151,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-monitord/cf-monitord.c:152,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-monitord/cf-monitord.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 131
    functionDepth: 17
    functionLinenumber: 131
    functionLinenumberEnd: 155
    functionName: main
    functionSourceFile: /src/core/cf-monitord/cf-monitord.c
    functionUses: 2
    functionsReached:
    - PolicyDestroy
    - GenericAgentConfigApply
    - CheckOpts
    - LoadPolicy
    - GenericAgentPostLoadInit
    - KeepPromises
    - CallCleanupFunctions
    - GenericAgentFinalize
    - EvalContextNew
    - strrchr
    - GenericAgentDiscoverContext
    - MonitorStartServer
    - ThisAgentInit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/cf-monitord/cf-monitord.c:163,1
    - Dst: GetTTYInteractive
      Src: /src/core/cf-monitord/cf-monitord.c:163,1
    - Dst: getopt_long
      Src: /src/core/cf-monitord/cf-monitord.c:166,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-monitord/cf-monitord.c:172,1
    - Dst: GetInputDir
      Src: /src/core/cf-monitord/cf-monitord.c:172,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-monitord/cf-monitord.c:177,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-monitord/cf-monitord.c:186,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-monitord/cf-monitord.c:190,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-monitord/cf-monitord.c:195,1
    - Dst: MonNetworkSnifferEnable
      Src: /src/core/cf-monitord/cf-monitord.c:206,1
    - Dst: FileWriter
      Src: /src/core/cf-monitord/cf-monitord.c:211,1
    - Dst: GenericAgentWriteVersion
      Src: /src/core/cf-monitord/cf-monitord.c:212,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-monitord/cf-monitord.c:213,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-monitord/cf-monitord.c:215,1
    - Dst: FileWriter
      Src: /src/core/cf-monitord/cf-monitord.c:219,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-monitord/cf-monitord.c:220,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-monitord/cf-monitord.c:221,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-monitord/cf-monitord.c:223,1
    - Dst: FileWriter
      Src: /src/core/cf-monitord/cf-monitord.c:227,1
    - Dst: ManPageWrite
      Src: /src/core/cf-monitord/cf-monitord.c:228,1
    - Dst: time
      Src: /src/core/cf-monitord/cf-monitord.c:228,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-monitord/cf-monitord.c:234,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-monitord/cf-monitord.c:235,1
    - Dst: Log
      Src: /src/core/cf-monitord/cf-monitord.c:239,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-monitord/cf-monitord.c:240,1
    - Dst: GenericAgentConfigParseColor
      Src: /src/core/cf-monitord/cf-monitord.c:243,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-monitord/cf-monitord.c:245,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/cf-monitord/cf-monitord.c:250,1
    - Dst: StringEqual
      Src: /src/core/cf-monitord/cf-monitord.c:257,1
    - Dst: FileWriter
      Src: /src/core/cf-monitord/cf-monitord.c:266,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-monitord/cf-monitord.c:267,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-monitord/cf-monitord.c:268,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-monitord/cf-monitord.c:270,1
    - Dst: GenericAgentConfigParseArguments
      Src: /src/core/cf-monitord/cf-monitord.c:274,1
    - Dst: Log
      Src: /src/core/cf-monitord/cf-monitord.c:276,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-monitord/cf-monitord.c:277,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 159
    functionDepth: 9
    functionLinenumber: 159
    functionLinenumberEnd: 281
    functionName: CheckOpts
    functionSourceFile: /src/core/cf-monitord/cf-monitord.c
    functionUses: 7
    functionsReached:
    - GenericAgentConfigParseColor
    - Log
    - GetInputDir
    - FileWriterDetach
    - StringEqual
    - time
    - FileWriter
    - GenericAgentConfigSetInputFile
    - WriterWriteHelp
    - ManPageWrite
    - GenericAgentConfigNewDefault
    - GenericAgentWriteVersion
    - LogSetGlobalLevel
    - GetTTYInteractive
    - GenericAgentConfigParseArguments
    - getopt_long
    - DoCleanupAndExit
    - MonNetworkSnifferEnable
    - LoggingEnableTimestamps
    - LogSetGlobalLevelArgOrExit
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *CheckOpts(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ControlBodyConstraints
      Src: /src/core/cf-monitord/cf-monitord.c:287,1
    - Dst: SeqLength
      Src: /src/core/cf-monitord/cf-monitord.c:290,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/cf-monitord.c:292,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-monitord/cf-monitord.c:294,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-monitord/cf-monitord.c:299,1
    - Dst: EvalContextVariableGet
      Src: /src/core/cf-monitord/cf-monitord.c:300,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-monitord/cf-monitord.c:301,1
    - Dst: Log
      Src: /src/core/cf-monitord/cf-monitord.c:304,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/cf-monitord.c:308,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/cf-monitord.c:314,1
    - Dst: MonNetworkSnifferEnable
      Src: /src/core/cf-monitord/cf-monitord.c:316,1
    - Dst: BooleanFromString
      Src: /src/core/cf-monitord/cf-monitord.c:316,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/cf-monitord.c:320,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/cf-monitord.c:322,1
    - Dst: Log
      Src: /src/core/cf-monitord/cf-monitord.c:323,1
    - Dst: StringEqual
      Src: /src/core/cf-monitord/cf-monitord.c:327,1
    - Dst: SetFacility
      Src: /src/core/cf-monitord/cf-monitord.c:329,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 285
    functionDepth: 10
    functionLinenumber: 285
    functionLinenumberEnd: 334
    functionName: KeepPromises
    functionSourceFile: /src/core/cf-monitord/cf-monitord.c
    functionUses: 1
    functionsReached:
    - ControlBodyConstraints
    - MonNetworkSnifferEnable
    - VarRefParseFromScope
    - VarRefDestroy
    - sscanf
    - EvalContextVariableGet
    - SetFacility
    - IsDefinedClass
    - Log
    - strcmp
    - SeqLength
    - BooleanFromString
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void KeepPromises(EvalContext *ctx, const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/core/cf-monitord/cf-monitord.c:342,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/cf-monitord.c:343,1
    - Dst: SetReferenceTime
      Src: /src/core/cf-monitord/cf-monitord.c:345,1
    - Dst: UpdateTimeClasses
      Src: /src/core/cf-monitord/cf-monitord.c:346,1
    - Dst: signal
      Src: /src/core/cf-monitord/cf-monitord.c:348,1
    - Dst: signal
      Src: /src/core/cf-monitord/cf-monitord.c:349,1
    - Dst: signal
      Src: /src/core/cf-monitord/cf-monitord.c:350,1
    - Dst: signal
      Src: /src/core/cf-monitord/cf-monitord.c:351,1
    - Dst: signal
      Src: /src/core/cf-monitord/cf-monitord.c:352,1
    - Dst: signal
      Src: /src/core/cf-monitord/cf-monitord.c:353,1
    - Dst: signal
      Src: /src/core/cf-monitord/cf-monitord.c:354,1
    - Dst: MonitorInitialize
      Src: /src/core/cf-monitord/cf-monitord.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 340
    functionDepth: 9
    functionLinenumber: 340
    functionLinenumberEnd: 359
    functionName: ThisAgentInit
    functionSourceFile: /src/core/cf-monitord/cf-monitord.c
    functionUses: 3
    functionsReached:
    - MonitorInitialize
    - SetReferenceTime
    - UpdateTimeClasses
    - strcpy
    - umask
    - signal
    linkageType: ''
    returnType: void
    signature: void ThisAgentInit(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/cf-monitord/mon_cumulative.c:55,1
    - Dst: xstrdup
      Src: /src/core/cf-monitord/mon_cumulative.c:57,1
    - Dst: xstrdup
      Src: /src/core/cf-monitord/mon_cumulative.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - name
    - subname
    - timestamp
    argTypes:
    - char*
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: AppendNewValue
    functionSourceFile: /src/core/cf-monitord/mon_cumulative.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: PrevValue
    signature: PrevValue *AppendNewValue(const char *name, const char *subname, time_t
      timestamp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_cumulative.c:71,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_cumulative.c:71,1
    - Dst: AppendNewValue
      Src: /src/core/cf-monitord/mon_cumulative.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - name
    - subname
    - value
    - timestamp
    argTypes:
    - char*
    - char*
    - unsigned
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 103
    functionName: GetInstantUint32Value
    functionSourceFile: /src/core/cf-monitord/mon_cumulative.c
    functionUses: 0
    functionsReached:
    - strcmp
    - AppendNewValue
    linkageType: ''
    returnType: unsigned
    signature: unsigned GetInstantUint32Value(const char *name, const char *subname,
      unsigned value, time_t timestamp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_cumulative.c:112,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_cumulative.c:112,1
    - Dst: AppendNewValue
      Src: /src/core/cf-monitord/mon_cumulative.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - name
    - subname
    - value
    - timestamp
    argTypes:
    - char*
    - char*
    - unsigned long long
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 133
    functionName: GetInstantUint64Value
    functionSourceFile: /src/core/cf-monitord/mon_cumulative.c
    functionUses: 0
    functionsReached:
    - strcmp
    - AppendNewValue
    linkageType: ''
    returnType: unsigned long long
    signature: "unsigned long long GetInstantUint64Value(const char *name, const char
      *subname, unsigned long long value,\n                                         time_t
      timestamp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeTimekey
      Src: /src/core/cf-monitord/history.c:72,1
    - Dst: WriteDB
      Src: /src/core/cf-monitord/history.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - time
    - values
    argTypes:
    - CF_DB*
    - time_t
    - Averages*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: PutRecordForTime
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - MakeTimekey
    - WriteDB
    linkageType: ''
    returnType: void
    signature: void PutRecordForTime(CF_DB *db, time_t time, const Averages *values)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringConcatenate
      Src: /src/core/cf-monitord/history.c:80,1
    - Dst: OpenDB
      Src: /src/core/cf-monitord/history.c:82,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:87,1
    - Dst: WriteDB
      Src: /src/core/cf-monitord/history.c:88,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/history.c:89,1
    - Dst: free
      Src: /src/core/cf-monitord/history.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - name
    - fileptr
    argTypes:
    - char*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 10
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: Nova_SaveFilePosition
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - OpenDB
    - StringConcatenate
    - Log
    - CloseDB
    - WriteDB
    - free
    linkageType: ''
    returnType: void
    signature: void Nova_SaveFilePosition(const char *handle, const char *name, long
      fileptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringConcatenate
      Src: /src/core/cf-monitord/history.c:97,1
    - Dst: OpenDB
      Src: /src/core/cf-monitord/history.c:99,1
    - Dst: ReadDB
      Src: /src/core/cf-monitord/history.c:104,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:105,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/history.c:106,1
    - Dst: free
      Src: /src/core/cf-monitord/history.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - handle
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 10
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: Nova_RestoreFilePosition
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - OpenDB
    - StringConcatenate
    - ReadDB
    - Log
    - CloseDB
    - free
    linkageType: ''
    returnType: long
    signature: long Nova_RestoreFilePosition(const char *handle, const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/cf-monitord/history.c:120,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/history.c:125,1
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/history.c:125,1
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/history.c:128,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:131,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/history.c:131,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/history.c:132,1
    - Dst: NewDBCursor
      Src: /src/core/cf-monitord/history.c:138,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:140,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/history.c:141,1
    - Dst: NextDB
      Src: /src/core/cf-monitord/history.c:145,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/history.c:149,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/history.c:151,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/history.c:155,1
    - Dst: fprintf
      Src: /src/core/cf-monitord/history.c:156,1
    - Dst: DeleteDBCursor
      Src: /src/core/cf-monitord/history.c:160,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/history.c:161,1
    - Dst: fclose
      Src: /src/core/cf-monitord/history.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 111
    functionDepth: 10
    functionLinenumber: 111
    functionLinenumberEnd: 163
    functionName: Nova_DumpSlowlyVaryingObservations
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - snprintf
    - NewDBCursor
    - strncpy
    - OpenDB
    - DeleteDBCursor
    - GetStateDir
    - safe_fopen
    - sscanf
    - Log
    - CloseDB
    - fprintf
    - NextDB
    - fclose
    linkageType: ''
    returnType: void
    signature: void Nova_DumpSlowlyVaryingObservations(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/cf-monitord/history.c:169,1
    - Dst: PutRecordForTime
      Src: /src/core/cf-monitord/history.c:174,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/history.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - time
    - newvals
    argTypes:
    - time_t
    - Averages*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 10
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: Nova_HistoryUpdate
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - OpenDB
    - PutRecordForTime
    - CloseDB
    linkageType: ''
    returnType: void
    signature: void Nova_HistoryUpdate(time_t time, const Averages *newvals)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-monitord/history.c:181,1
    - Dst: assert
      Src: /src/core/cf-monitord/history.c:182,1
    - Dst: PromiseGetHandle
      Src: /src/core/cf-monitord/history.c:190,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:192,1
    - Dst: IsExecutable
      Src: /src/core/cf-monitord/history.c:194,1
    - Dst: CommandArg0
      Src: /src/core/cf-monitord/history.c:194,1
    - Dst: cfPS
      Src: /src/core/cf-monitord/history.c:196,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-monitord/history.c:197,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:202,1
    - Dst: CommandArg0
      Src: /src/core/cf-monitord/history.c:202,1
    - Dst: time
      Src: /src/core/cf-monitord/history.c:210,1
    - Dst: AcquireLock
      Src: /src/core/cf-monitord/history.c:212,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:216,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/history.c:218,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/history.c:232,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:235,1
    - Dst: BeginMeasure
      Src: /src/core/cf-monitord/history.c:238,1
    - Dst: SetTimeOut
      Src: /src/core/cf-monitord/history.c:242,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:247,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:252,1
    - Dst: stat
      Src: /src/core/cf-monitord/history.c:254,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:256,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/history.c:257,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-monitord/history.c:258,1
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/history.c:264,1
    - Dst: Nova_RestoreFilePosition
      Src: /src/core/cf-monitord/history.c:268,1
    - Dst: fseek
      Src: /src/core/cf-monitord/history.c:272,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:276,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:278,1
    - Dst: umask
      Src: /src/core/cf-monitord/history.c:279,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:283,1
    - Dst: cf_popen_powershell_setuid
      Src: /src/core/cf-monitord/history.c:298,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:301,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-monitord/history.c:302,1
    - Dst: cf_popen_shsetuid
      Src: /src/core/cf-monitord/history.c:310,1
    - Dst: cf_popensetuid
      Src: /src/core/cf-monitord/history.c:316,1
    - Dst: cfPS
      Src: /src/core/cf-monitord/history.c:325,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/history.c:326,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-monitord/history.c:327,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-monitord/history.c:328,1
    - Dst: xmalloc
      Src: /src/core/cf-monitord/history.c:334,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/history.c:338,1
    - Dst: feof
      Src: /src/core/cf-monitord/history.c:341,1
    - Dst: cfPS
      Src: /src/core/cf-monitord/history.c:343,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/history.c:344,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-monitord/history.c:345,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-monitord/history.c:346,1
    - Dst: free
      Src: /src/core/cf-monitord/history.c:347,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/history.c:356,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:357,1
    - Dst: free
      Src: /src/core/cf-monitord/history.c:360,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:362,1
    - Dst: ftell
      Src: /src/core/cf-monitord/history.c:364,1
    - Dst: fclose
      Src: /src/core/cf-monitord/history.c:366,1
    - Dst: Nova_SaveFilePosition
      Src: /src/core/cf-monitord/history.c:367,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:369,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/history.c:371,1
    - Dst: alarm
      Src: /src/core/cf-monitord/history.c:377,1
    - Dst: signal
      Src: /src/core/cf-monitord/history.c:378,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:381,1
    - Dst: umask
      Src: /src/core/cf-monitord/history.c:382,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-monitord/history.c:383,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/history.c:386,1
    - Dst: EndMeasure
      Src: /src/core/cf-monitord/history.c:387,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 111
    argCount: 5
    argNames:
    - ctx
    - slot
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - int
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/core/cf-monitord/history.c
    - condition: (pp != NULL)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/core/cf-monitord/history.c
    constantsTouched: []
    func_position:
      end: 389
      start: 179
    functionDepth: 13
    functionLinenumber: 179
    functionLinenumberEnd: 389
    functionName: NovaReSample
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - CommandArg0
    - feof
    - AcquireLock
    - Log
    - Nova_RestoreFilePosition
    - fclose
    - EndMeasure
    - free
    - time
    - PromiseGetHandle
    - snprintf
    - cf_popen_shsetuid
    - YieldCurrentLock
    - cf_pclose
    - strcmp
    - BeginMeasure
    - CfReadLine
    - ftell
    - assert
    - fseek
    - xmalloc
    - signal
    - umask
    - GetErrorStr
    - stat
    - IsExecutable
    - AppendItem
    - alarm
    - cfPS
    - Nova_SaveFilePosition
    - safe_fopen
    - cf_popensetuid
    - SetTimeOut
    - DeleteItemList
    - PromiseResultUpdate
    - cf_popen_powershell_setuid
    linkageType: ''
    returnType: Item
    signature: Item *NovaReSample(EvalContext *ctx, int slot, const Attributes *attr,
      const Promise *pp, PromiseResult *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-monitord/history.c:394,1
    - Dst: Banner
      Src: /src/core/cf-monitord/history.c:398,1
    - Dst: PolicyNew
      Src: /src/core/cf-monitord/history.c:400,1
    - Dst: PolicyAppendBundle
      Src: /src/core/cf-monitord/history.c:403,1
    - Dst: NamespaceDefault
      Src: /src/core/cf-monitord/history.c:403,1
    - Dst: BundleAppendSection
      Src: /src/core/cf-monitord/history.c:404,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/cf-monitord/history.c:406,1
    - Dst: assert
      Src: /src/core/cf-monitord/history.c:408,1
    - Dst: AcquireLock
      Src: /src/core/cf-monitord/history.c:410,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-monitord/history.c:414,1
    - Dst: EvalContextClear
      Src: /src/core/cf-monitord/history.c:420,1
    - Dst: DetectEnvironment
      Src: /src/core/cf-monitord/history.c:422,1
    - Dst: SetReferenceTime
      Src: /src/core/cf-monitord/history.c:423,1
    - Dst: UpdateTimeClasses
      Src: /src/core/cf-monitord/history.c:424,1
    - Dst: EvalContextHeapPersistentLoadAll
      Src: /src/core/cf-monitord/history.c:426,1
    - Dst: LoadSystemConstants
      Src: /src/core/cf-monitord/history.c:427,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-monitord/history.c:429,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-monitord/history.c:430,1
    - Dst: Nova_HistoryUpdate
      Src: /src/core/cf-monitord/history.c:432,1
    - Dst: Nova_DumpSlowlyVaryingObservations
      Src: /src/core/cf-monitord/history.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - newvals
    argTypes:
    - EvalContext*
    - Averages*
    assertStmts:
    - condition: (pp)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/core/cf-monitord/history.c
    constantsTouched: []
    func_position:
      end: 435
      start: 391
    functionDepth: 12
    functionLinenumber: 391
    functionLinenumberEnd: 435
    functionName: HistoryUpdate
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 1
    functionsReached:
    - PolicyDestroy
    - Nova_DumpSlowlyVaryingObservations
    - SetReferenceTime
    - AcquireLock
    - LoadSystemConstants
    - time
    - NamespaceDefault
    - BundleAppendSection
    - PolicyNew
    - EvalContextClear
    - YieldCurrentLock
    - EvalContextHeapPersistentLoadAll
    - UpdateTimeClasses
    - DetectEnvironment
    - PolicyAppendBundle
    - Banner
    - BundleSectionAppendPromise
    - assert
    - Nova_HistoryUpdate
    linkageType: ''
    returnType: void
    signature: void HistoryUpdate(EvalContext *ctx, const Averages *const newvals)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/cf-monitord/history.c:443,1
    - Dst: NovaReSample
      Src: /src/core/cf-monitord/history.c:445,1
    - Dst: assert
      Src: /src/core/cf-monitord/history.c:453,1
    - Dst: xstrdup
      Src: /src/core/cf-monitord/history.c:455,1
    - Dst: NovaReSample
      Src: /src/core/cf-monitord/history.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (ENTERPRISE_DATA[i].path == NULL)
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/core/cf-monitord/history.c
    constantsTouched: []
    func_position:
      end: 463
      start: 437
    functionDepth: 14
    functionLinenumber: 437
    functionLinenumberEnd: 463
    functionName: NovaGetMeasurementStream
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - NovaReSample
    - assert
    - StringEqual
    linkageType: ''
    returnType: Item
    signature: Item *NovaGetMeasurementStream(EvalContext *ctx, const Attributes *a,
      const Promise *pp, PromiseResult *result)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchFull
      Src: /src/core/cf-monitord/history.c:484,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:486,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/history.c:498,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-monitord/history.c:498,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:500,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:503,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:510,1
    - Dst: DoubleFromString
      Src: /src/core/cf-monitord/history.c:515,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:521,1
    - Dst: DoubleFromString
      Src: /src/core/cf-monitord/history.c:527,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:529,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:545,1
    - Dst: cfPS
      Src: /src/core/cf-monitord/history.c:561,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:577,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:591,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:603,1
    - Dst: cfPS
      Src: /src/core/cf-monitord/history.c:608,1
    - Dst: PromiseRef
      Src: /src/core/cf-monitord/history.c:609,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:614,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 90
    argCount: 6
    argNames:
    - ctx
    - handle
    - stream
    - a
    - pp
    - value_out
    argTypes:
    - EvalContext*
    - char*
    - Item*
    - Attributes*
    - Promise*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 465
    functionDepth: 13
    functionLinenumber: 465
    functionLinenumberEnd: 617
    functionName: NovaExtractValueFromStream
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - ExtractFirstReference
    - strncpy
    - cfPS
    - PromiseRef
    - StringMatchFull
    - Log
    - strcmp
    - DoubleFromString
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult NovaExtractValueFromStream(EvalContext *ctx, const char
      *handle,\n                                                Item *stream, const
      Attributes *a,\n                                                const Promise
      *pp, double *value_out)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-monitord/history.c:625,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:629,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:633,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:644,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:651,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/history.c:652,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-monitord/history.c:652,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:653,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/history.c:654,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:658,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/history.c:659,1
    - Dst: StringMatchFull
      Src: /src/core/cf-monitord/history.c:664,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:666,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:673,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/history.c:674,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-monitord/history.c:674,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:675,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/history.c:676,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:680,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/history.c:681,1
    - Dst: cfPS
      Src: /src/core/cf-monitord/history.c:690,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-monitord/history.c:691,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:697,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:704,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/history.c:705,1
    - Dst: ItemList2CSV_bound
      Src: /src/core/cf-monitord/history.c:709,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/history.c:713,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/history.c:716,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:718,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/history.c:720,1
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/history.c:720,1
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/history.c:722,1
    - Dst: cfPS
      Src: /src/core/cf-monitord/history.c:725,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-monitord/history.c:726,1
    - Dst: PromiseRef
      Src: /src/core/cf-monitord/history.c:727,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/history.c:731,1
    - Dst: ctime
      Src: /src/core/cf-monitord/history.c:731,1
    - Dst: Chop
      Src: /src/core/cf-monitord/history.c:732,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:734,1
    - Dst: fprintf
      Src: /src/core/cf-monitord/history.c:737,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:738,1
    - Dst: fclose
      Src: /src/core/cf-monitord/history.c:740,1
    - Dst: OpenDB
      Src: /src/core/cf-monitord/history.c:747,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/history.c:752,1
    - Dst: WriteDB
      Src: /src/core/cf-monitord/history.c:753,1
    - Dst: strlen
      Src: /src/core/cf-monitord/history.c:753,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/history.c:754,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 86
    argCount: 6
    argNames:
    - ctx
    - handle
    - stream
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Item*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 619
    functionDepth: 13
    functionLinenumber: 619
    functionLinenumberEnd: 756
    functionName: NovaLogSymbolicValue
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - Log
    - fclose
    - time
    - snprintf
    - strlen
    - StringMatchFull
    - strcmp
    - CloseDB
    - Chop
    - ExtractFirstReference
    - strncpy
    - ItemList2CSV_bound
    - OpenDB
    - WriteDB
    - ctime
    - AppendItem
    - cfPS
    - GetStateDir
    - PromiseRef
    - safe_fopen
    - fprintf
    - DeleteItemList
    - PromiseResultUpdate
    linkageType: ''
    returnType: void
    signature: "void NovaLogSymbolicValue(EvalContext *ctx, const char *handle, Item
      *stream,\n                                 const Attributes *a, const Promise
      *pp, PromiseResult *result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetHandle
      Src: /src/core/cf-monitord/history.c:761,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:768,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:773,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:784,1
    - Dst: NovaGetMeasurementStream
      Src: /src/core/cf-monitord/history.c:786,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:788,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/history.c:790,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-monitord/history.c:796,1
    - Dst: NovaExtractValueFromStream
      Src: /src/core/cf-monitord/history.c:796,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:797,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/history.c:799,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:801,1
    - Dst: NovaLogSymbolicValue
      Src: /src/core/cf-monitord/history.c:802,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:806,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-monitord/history.c:807,1
    - Dst: NovaExtractValueFromStream
      Src: /src/core/cf-monitord/history.c:807,1
    - Dst: NovaNamedEvent
      Src: /src/core/cf-monitord/history.c:808,1
    - Dst: Log
      Src: /src/core/cf-monitord/history.c:814,1
    - Dst: NovaGetMeasurementStream
      Src: /src/core/cf-monitord/history.c:815,1
    - Dst: NovaLogSymbolicValue
      Src: /src/core/cf-monitord/history.c:816,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - this
    - a
    - pp
    argTypes:
    - EvalContext*
    - double*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 758
    functionDepth: 15
    functionLinenumber: 758
    functionLinenumberEnd: 823
    functionName: VerifyMeasurement
    functionSourceFile: /src/core/cf-monitord/history.c
    functionUses: 0
    functionsReached:
    - NovaNamedEvent
    - NovaExtractValueFromStream
    - NovaLogSymbolicValue
    - NovaGetMeasurementStream
    - Log
    - strcmp
    - NovaRegisterSlot
    - PromiseResultUpdate
    - PromiseGetHandle
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult VerifyMeasurement(EvalContext *ctx, double *this,\n
      \                               const Attributes *a, const Promise *pp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GatherProcessUsers
      Src: /src/core/cf-monitord/mon_processes.c:52,1
    - Dst: xsnprintf
      Src: /src/core/cf-monitord/mon_processes.c:62,1
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/mon_processes.c:62,1
    - Dst: MapName
      Src: /src/core/cf-monitord/mon_processes.c:63,1
    - Dst: SetUmask
      Src: /src/core/cf-monitord/mon_processes.c:65,1
    - Dst: RawSaveItemList
      Src: /src/core/cf-monitord/mon_processes.c:66,1
    - Dst: RestoreUmask
      Src: /src/core/cf-monitord/mon_processes.c:67,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_processes.c:68,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_processes.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 9
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: MonProcessesGatherData
    functionSourceFile: /src/core/cf-monitord/mon_processes.c
    functionUses: 1
    functionsReached:
    - GatherProcessUsers
    - SetUmask
    - MapName
    - RawSaveItemList
    - RestoreUmask
    - GetStateDir
    - Log
    - xsnprintf
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void MonProcessesGatherData(double *cf_this)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/cf-monitord/mon_processes.c:80,1
    - Dst: cf_popen
      Src: /src/core/cf-monitord/mon_processes.c:84,1
    - Dst: xmalloc
      Src: /src/core/cf-monitord/mon_processes.c:91,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/mon_processes.c:94,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/mon_processes.c:98,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_processes.c:99,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/mon_processes.c:105,1
    - Dst: feof
      Src: /src/core/cf-monitord/mon_processes.c:108,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/mon_processes.c:111,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_processes.c:112,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_processes.c:122,1
    - Dst: isdigit
      Src: /src/core/cf-monitord/mon_processes.c:127,1
    - Dst: IsItemIn
      Src: /src/core/cf-monitord/mon_processes.c:132,1
    - Dst: PrependItem
      Src: /src/core/cf-monitord/mon_processes.c:134,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_processes.c:138,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-monitord/mon_processes.c:148,1
    - Dst: ItemList2CSV
      Src: /src/core/cf-monitord/mon_processes.c:150,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_processes.c:151,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_processes.c:152,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/mon_processes.c:154,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_processes.c:155,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - userList
    - userListSz
    - numRootProcs
    - numOtherProcs
    argTypes:
    - Item**
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 77
    functionDepth: 11
    functionLinenumber: 77
    functionLinenumberEnd: 157
    functionName: GatherProcessUsers
    functionSourceFile: /src/core/cf-monitord/mon_processes.c
    functionUses: 1
    functionsReached:
    - IsItemIn
    - cf_popen
    - ItemList2CSV
    - isdigit
    - feof
    - sscanf
    - cf_pclose
    - xmalloc
    - LogGetGlobalLevel
    - xsnprintf
    - PrependItem
    - strcmp
    - Log
    - free
    - CfReadLine
    linkageType: ''
    returnType: bool
    signature: bool GatherProcessUsers(Item **userList, int *userListSz, int *numRootProcs,
      int *numOtherProcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/env_monitor.c:125,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:127,1
    - Dst: MapName
      Src: /src/core/cf-monitord/env_monitor.c:128,1
    - Dst: CreateEmptyFile
      Src: /src/core/cf-monitord/env_monitor.c:129,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:131,1
    - Dst: MapName
      Src: /src/core/cf-monitord/env_monitor.c:132,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:134,1
    - Dst: MapName
      Src: /src/core/cf-monitord/env_monitor.c:135,1
    - Dst: MonEntropyClassesInit
      Src: /src/core/cf-monitord/env_monitor.c:137,1
    - Dst: GetDatabaseAge
      Src: /src/core/cf-monitord/env_monitor.c:139,1
    - Dst: QDefinite
      Src: /src/core/cf-monitord/env_monitor.c:143,1
    - Dst: srand
      Src: /src/core/cf-monitord/env_monitor.c:165,1
    - Dst: time
      Src: /src/core/cf-monitord/env_monitor.c:165,1
    - Dst: LoadHistogram
      Src: /src/core/cf-monitord/env_monitor.c:166,1
    - Dst: MonNetworkInit
      Src: /src/core/cf-monitord/env_monitor.c:170,1
    - Dst: MonTempInit
      Src: /src/core/cf-monitord/env_monitor.c:171,1
    - Dst: MonOtherInit
      Src: /src/core/cf-monitord/env_monitor.c:172,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 121
    functionDepth: 9
    functionLinenumber: 121
    functionLinenumberEnd: 175
    functionName: MonitorInitialize
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - LoadHistogram
    - GetDatabaseAge
    - snprintf
    - MapName
    - MonOtherInit
    - MonEntropyClassesInit
    - GetStateDir
    - CreateEmptyFile
    - MonNetworkInit
    - srand
    - Log
    - MonTempInit
    - QDefinite
    - time
    linkageType: ''
    returnType: void
    signature: void MonitorInitialize(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/cf-monitord/env_monitor.c:185,1
    - Dst: ReadDB
      Src: /src/core/cf-monitord/env_monitor.c:190,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:193,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:197,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/env_monitor.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 10
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: GetDatabaseAge
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - Log
    - OpenDB
    - ReadDB
    - CloseDB
    linkageType: ''
    returnType: void
    signature: void GetDatabaseAge()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:213,1
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/env_monitor.c:213,1
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/env_monitor.c:215,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:218,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/env_monitor.c:220,1
    - Dst: fscanf
      Src: /src/core/cf-monitord/env_monitor.c:231,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:233,1
    - Dst: fscanf
      Src: /src/core/cf-monitord/env_monitor.c:241,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:243,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/env_monitor.c:243,1
    - Dst: fclose
      Src: /src/core/cf-monitord/env_monitor.c:262,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 206
    functionDepth: 8
    functionLinenumber: 206
    functionLinenumberEnd: 263
    functionName: LoadHistogram
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - fscanf
    - snprintf
    - GetStateDir
    - safe_fopen
    - Log
    - fclose
    linkageType: ''
    returnType: void
    signature: void LoadHistogram(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PolicyNew
      Src: /src/core/cf-monitord/env_monitor.c:272,1
    - Dst: PolicyAppendBundle
      Src: /src/core/cf-monitord/env_monitor.c:275,1
    - Dst: NamespaceDefault
      Src: /src/core/cf-monitord/env_monitor.c:275,1
    - Dst: BundleAppendSection
      Src: /src/core/cf-monitord/env_monitor.c:276,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/cf-monitord/env_monitor.c:278,1
    - Dst: assert
      Src: /src/core/cf-monitord/env_monitor.c:280,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:288,1
    - Dst: fork
      Src: /src/core/cf-monitord/env_monitor.c:293,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:295,1
    - Dst: _exit
      Src: /src/core/cf-monitord/env_monitor.c:296,1
    - Dst: ActAsDaemon
      Src: /src/core/cf-monitord/env_monitor.c:301,1
    - Dst: AcquireLock
      Src: /src/core/cf-monitord/env_monitor.c:306,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-monitord/env_monitor.c:309,1
    - Dst: WritePID
      Src: /src/core/cf-monitord/env_monitor.c:313,1
    - Dst: MonNetworkSnifferOpen
      Src: /src/core/cf-monitord/env_monitor.c:315,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-monitord/env_monitor.c:317,1
    - Dst: GetQ
      Src: /src/core/cf-monitord/env_monitor.c:319,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:320,1
    - Dst: GenTimeKey
      Src: /src/core/cf-monitord/env_monitor.c:320,1
    - Dst: time
      Src: /src/core/cf-monitord/env_monitor.c:320,1
    - Dst: EvalAvQ
      Src: /src/core/cf-monitord/env_monitor.c:321,1
    - Dst: LeapDetection
      Src: /src/core/cf-monitord/env_monitor.c:322,1
    - Dst: ArmClasses
      Src: /src/core/cf-monitord/env_monitor.c:323,1
    - Dst: ZeroArrivals
      Src: /src/core/cf-monitord/env_monitor.c:325,1
    - Dst: MonNetworkSnifferSniff
      Src: /src/core/cf-monitord/env_monitor.c:327,1
    - Dst: EvalContextGetIpAddresses
      Src: /src/core/cf-monitord/env_monitor.c:327,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-monitord/env_monitor.c:332,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-monitord/env_monitor.c:333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts:
    - condition: (pp)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/core/cf-monitord/env_monitor.c
    constantsTouched: []
    func_position:
      end: 334
      start: 267
    functionDepth: 12
    functionLinenumber: 267
    functionLinenumberEnd: 334
    functionName: MonitorStartServer
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - PolicyDestroy
    - GenTimeKey
    - AcquireLock
    - Log
    - time
    - NamespaceDefault
    - BundleAppendSection
    - ActAsDaemon
    - snprintf
    - PolicyNew
    - YieldCurrentLock
    - PolicyAppendBundle
    - LeapDetection
    - EvalAvQ
    - BundleSectionAppendPromise
    - assert
    - GetQ
    - ArmClasses
    - MonNetworkSnifferOpen
    - _exit
    - fork
    - WritePID
    - MonNetworkSnifferSniff
    - IsPendingTermination
    - EvalContextGetIpAddresses
    - ZeroArrivals
    linkageType: ''
    returnType: void
    signature: void MonitorStartServer(EvalContext *ctx, const Policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MonEntropyClassesReset
      Src: /src/core/cf-monitord/env_monitor.c:340,1
    - Dst: ZeroArrivals
      Src: /src/core/cf-monitord/env_monitor.c:342,1
    - Dst: MonProcessesGatherData
      Src: /src/core/cf-monitord/env_monitor.c:344,1
    - Dst: MonDiskGatherData
      Src: /src/core/cf-monitord/env_monitor.c:345,1
    - Dst: MonCPUGatherData
      Src: /src/core/cf-monitord/env_monitor.c:347,1
    - Dst: MonLoadGatherData
      Src: /src/core/cf-monitord/env_monitor.c:348,1
    - Dst: MonNetworkGatherData
      Src: /src/core/cf-monitord/env_monitor.c:349,1
    - Dst: MonNetworkSnifferGatherData
      Src: /src/core/cf-monitord/env_monitor.c:350,1
    - Dst: MonTempGatherData
      Src: /src/core/cf-monitord/env_monitor.c:351,1
    - Dst: MonOtherGatherData
      Src: /src/core/cf-monitord/env_monitor.c:353,1
    - Dst: GatherPromisedMeasures
      Src: /src/core/cf-monitord/env_monitor.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 338
    functionDepth: 10
    functionLinenumber: 338
    functionLinenumberEnd: 355
    functionName: GetQ
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - MonLoadGatherData
    - MonTempGatherData
    - GatherPromisedMeasures
    - MonNetworkSnifferGatherData
    - MonCPUGatherData
    - MonProcessesGatherData
    - MonOtherGatherData
    - MonEntropyClassesReset
    - MonDiskGatherData
    - MonNetworkGatherData
    - ZeroArrivals
    linkageType: ''
    returnType: void
    signature: void GetQ(EvalContext *ctx, const Policy *policy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-monitord/env_monitor.c:364,1
    - Dst: Banner
      Src: /src/core/cf-monitord/env_monitor.c:372,1
    - Dst: GetCurrentAverages
      Src: /src/core/cf-monitord/env_monitor.c:374,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:376,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-monitord/env_monitor.c:377,1
    - Dst: GetObservable
      Src: /src/core/cf-monitord/env_monitor.c:388,1
    - Dst: RejectAnomaly
      Src: /src/core/cf-monitord/env_monitor.c:410,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:418,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:419,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:420,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:422,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:423,1
    - Dst: WAverage
      Src: /src/core/cf-monitord/env_monitor.c:425,1
    - Dst: WAverage
      Src: /src/core/cf-monitord/env_monitor.c:426,1
    - Dst: WAverage
      Src: /src/core/cf-monitord/env_monitor.c:448,1
    - Dst: WAverage
      Src: /src/core/cf-monitord/env_monitor.c:452,1
    - Dst: WAverage
      Src: /src/core/cf-monitord/env_monitor.c:453,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:456,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:459,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:460,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:460,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:464,1
    - Dst: UpdateAverages
      Src: /src/core/cf-monitord/env_monitor.c:468,1
    - Dst: UpdateDistributions
      Src: /src/core/cf-monitord/env_monitor.c:469,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 57
    argCount: 2
    argNames:
    - ctx
    - t
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 359
    functionDepth: 9
    functionLinenumber: 359
    functionLinenumberEnd: 472
    functionName: EvalAvQ
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - DoCleanupAndExit
    - UpdateAverages
    - RejectAnomaly
    - Banner
    - sqrt
    - GetCurrentAverages
    - WAverage
    - Log
    - UpdateDistributions
    - GetObservable
    - time
    linkageType: ''
    returnType: Averages
    signature: Averages EvalAvQ(EvalContext *ctx, char *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:488,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:518,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:537,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 476
    functionDepth: 8
    functionLinenumber: 476
    functionLinenumberEnd: 544
    functionName: LeapDetection
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - sqrt
    - Log
    linkageType: ''
    returnType: void
    signature: void LeapDetection(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/core/cf-monitord/env_monitor.c:550,1
    - Dst: SetUmask
      Src: /src/core/cf-monitord/env_monitor.c:552,1
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/env_monitor.c:553,1
    - Dst: RestoreUmask
      Src: /src/core/cf-monitord/env_monitor.c:554,1
    - Dst: fprintf
      Src: /src/core/cf-monitord/env_monitor.c:562,1
    - Dst: MonEntropyClassesPublish
      Src: /src/core/cf-monitord/env_monitor.c:565,1
    - Dst: fclose
      Src: /src/core/cf-monitord/env_monitor.c:567,1
    - Dst: rename
      Src: /src/core/cf-monitord/env_monitor.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - classes
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 548
    functionDepth: 9
    functionLinenumber: 548
    functionLinenumberEnd: 570
    functionName: PublishEnvironment
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 0
    functionsReached:
    - unlink
    - SetUmask
    - MonEntropyClassesPublish
    - RestoreUmask
    - safe_fopen
    - fclose
    - fprintf
    - rename
    linkageType: ''
    returnType: void
    signature: void PublishEnvironment(Item *classes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringWriter
      Src: /src/core/cf-monitord/env_monitor.c:576,1
    - Dst: WriterWriteF
      Src: /src/core/cf-monitord/env_monitor.c:577,1
    - Dst: PrintItemList
      Src: /src/core/cf-monitord/env_monitor.c:578,1
    - Dst: StringWriterLength
      Src: /src/core/cf-monitord/env_monitor.c:579,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:581,1
    - Dst: StringWriterData
      Src: /src/core/cf-monitord/env_monitor.c:581,1
    - Dst: WriterClose
      Src: /src/core/cf-monitord/env_monitor.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - name
    - value
    - mon_data
    argTypes:
    - char*
    - Item*
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 574
    functionDepth: 6
    functionLinenumber: 574
    functionLinenumberEnd: 584
    functionName: AddOpenPorts
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - PrintItemList
    - WriterClose
    - StringWriter
    - StringWriterData
    - WriterWriteF
    - StringWriterLength
    linkageType: ''
    returnType: void
    signature: void AddOpenPorts(const char *name, const Item *value, Item **mon_data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-monitord/env_monitor.c:588,1
    - Dst: GetObservable
      Src: /src/core/cf-monitord/env_monitor.c:602,1
    - Dst: SetClasses
      Src: /src/core/cf-monitord/env_monitor.c:603,1
    - Dst: SetVariable
      Src: /src/core/cf-monitord/env_monitor.c:604,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:621,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:634,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:638,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:641,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:646,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:650,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:653,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/cf-monitord/env_monitor.c:654,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/cf-monitord/env_monitor.c:655,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:668,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:672,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:674,1
    - Dst: SetMeasurementPromises
      Src: /src/core/cf-monitord/env_monitor.c:679,1
    - Dst: AddOpenPorts
      Src: /src/core/cf-monitord/env_monitor.c:683,1
    - Dst: AddOpenPorts
      Src: /src/core/cf-monitord/env_monitor.c:684,1
    - Dst: AddOpenPorts
      Src: /src/core/cf-monitord/env_monitor.c:685,1
    - Dst: AddOpenPorts
      Src: /src/core/cf-monitord/env_monitor.c:686,1
    - Dst: AddOpenPorts
      Src: /src/core/cf-monitord/env_monitor.c:687,1
    - Dst: ListLen
      Src: /src/core/cf-monitord/env_monitor.c:691,1
    - Dst: ListLen
      Src: /src/core/cf-monitord/env_monitor.c:691,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:693,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:699,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:700,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:705,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:706,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:712,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:713,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:718,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:719,1
    - Dst: PublishEnvironment
      Src: /src/core/cf-monitord/env_monitor.c:722,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/env_monitor.c:724,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 75
    argCount: 2
    argNames:
    - ctx
    - av
    argTypes:
    - EvalContext*
    - Averages*
    assertStmts:
    - condition: (av != NULL)
      pos:
        line_end: 587
        line_start: 587
        source_file: /src/core/cf-monitord/env_monitor.c
    constantsTouched: []
    func_position:
      end: 725
      start: 586
    functionDepth: 10
    functionLinenumber: 586
    functionLinenumberEnd: 725
    functionName: ArmClasses
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - AppendItem
    - SetMeasurementPromises
    - snprintf
    - ListLen
    - assert
    - EvalContextClassPutSoft
    - AddOpenPorts
    - PublishEnvironment
    - strcat
    - SetVariable
    - Log
    - SetClasses
    - DeleteItemList
    - EvalContextHeapPersistentSave
    - GetObservable
    linkageType: ''
    returnType: void
    signature: void ArmClasses(EvalContext *ctx, const Averages *const av)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/cf-monitord/env_monitor.c:734,1
    - Dst: memset
      Src: /src/core/cf-monitord/env_monitor.c:739,1
    - Dst: ReadDB
      Src: /src/core/cf-monitord/env_monitor.c:744,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:750,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:755,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/env_monitor.c:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - timekey
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 729
    functionDepth: 10
    functionLinenumber: 729
    functionLinenumberEnd: 760
    functionName: GetCurrentAverages
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - OpenDB
    - Log
    - ReadDB
    - CloseDB
    - memset
    linkageType: ''
    returnType: Averages
    signature: Averages *GetCurrentAverages(char *timekey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-monitord/env_monitor.c:766,1
    - Dst: OpenDB
      Src: /src/core/cf-monitord/env_monitor.c:769,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:774,1
    - Dst: WriteDB
      Src: /src/core/cf-monitord/env_monitor.c:776,1
    - Dst: WriteDB
      Src: /src/core/cf-monitord/env_monitor.c:777,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/env_monitor.c:779,1
    - Dst: HistoryUpdate
      Src: /src/core/cf-monitord/env_monitor.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - timekey
    - newvals
    argTypes:
    - EvalContext*
    - char*
    - Averages*
    assertStmts:
    - condition: (newvals != NULL)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/core/cf-monitord/env_monitor.c
    constantsTouched: []
    func_position:
      end: 781
      start: 764
    functionDepth: 13
    functionLinenumber: 764
    functionLinenumberEnd: 781
    functionName: UpdateAverages
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - HistoryUpdate
    - assert
    - OpenDB
    - Log
    - CloseDB
    - WriteDB
    linkageType: ''
    returnType: void
    signature: void UpdateAverages(EvalContext *ctx, char *timekey, const Averages
      *const newvals)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/cf-monitord/env_monitor.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - datestring
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 796
    functionName: Day2Number
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int Day2Number(const char *datestring)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsDefinedClass
      Src: /src/core/cf-monitord/env_monitor.c:808,1
    - Dst: Day2Number
      Src: /src/core/cf-monitord/env_monitor.c:810,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:815,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:823,1
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/env_monitor.c:823,1
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/env_monitor.c:825,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:828,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/env_monitor.c:828,1
    - Dst: fprintf
      Src: /src/core/cf-monitord/env_monitor.c:834,1
    - Dst: fprintf
      Src: /src/core/cf-monitord/env_monitor.c:840,1
    - Dst: fprintf
      Src: /src/core/cf-monitord/env_monitor.c:843,1
    - Dst: fclose
      Src: /src/core/cf-monitord/env_monitor.c:846,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - timekey
    - av
    argTypes:
    - EvalContext*
    - char*
    - Averages*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 798
    functionDepth: 10
    functionLinenumber: 798
    functionLinenumberEnd: 848
    functionName: UpdateDistributions
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - snprintf
    - sqrt
    - GetStateDir
    - safe_fopen
    - IsDefinedClass
    - Log
    - fclose
    - fprintf
    - Day2Number
    linkageType: ''
    returnType: void
    signature: void UpdateDistributions(EvalContext *ctx, char *timekey, Averages
      *av)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - new_val
    - old_val
    - age
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 921
    functionName: WAverage
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double WAverage(double new_val, double old_val, double age)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:932,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:934,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:935,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:937,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:941,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:943,1
    - Dst: MonEntropyPurgeUnused
      Src: /src/core/cf-monitord/env_monitor.c:944,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:949,1
    - Dst: fabs
      Src: /src/core/cf-monitord/env_monitor.c:951,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:953,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/env_monitor.c:956,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:960,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:964,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:968,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:971,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:973,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:975,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/env_monitor.c:977,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:978,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:979,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/cf-monitord/env_monitor.c:980,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/cf-monitord/env_monitor.c:981,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/env_monitor.c:989,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:993,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:997,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:1001,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:1004,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:1006,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/env_monitor.c:1008,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:1009,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:1010,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/env_monitor.c:1014,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:1015,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:1016,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:1023,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/env_monitor.c:1025,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:1026,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:1027,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/cf-monitord/env_monitor.c:1028,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/cf-monitord/env_monitor.c:1029,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:1032,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/env_monitor.c:1034,1
    - Dst: strcat
      Src: /src/core/cf-monitord/env_monitor.c:1035,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:1036,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/cf-monitord/env_monitor.c:1037,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/cf-monitord/env_monitor.c:1038,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 73
    argCount: 8
    argNames:
    - ctx
    - name
    - variable
    - av_expect
    - av_var
    - localav_expect
    - localav_var
    - classlist
    argTypes:
    - EvalContext*
    - char*
    - double
    - double
    - double
    - double
    - double
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 925
    functionDepth: 9
    functionLinenumber: 925
    functionLinenumberEnd: 1043
    functionName: SetClasses
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - AppendItem
    - snprintf
    - fabs
    - sqrt
    - EvalContextClassPutSoft
    - MonEntropyPurgeUnused
    - strcat
    - Log
    - EvalContextHeapPersistentSave
    - strcpy
    linkageType: ''
    returnType: double
    signature: "double SetClasses(EvalContext *ctx, char *name, double variable, double
      av_expect, double av_var, double localav_expect,\n                         double
      localav_var, Item **classlist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:1051,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:1052,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:1054,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:1055,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/env_monitor.c:1057,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/env_monitor.c:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - name
    - value
    - average
    - stddev
    - classlist
    argTypes:
    - char*
    - double
    - double
    - double
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1047
    functionDepth: 3
    functionLinenumber: 1047
    functionLinenumberEnd: 1059
    functionName: SetVariable
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 2
    functionsReached:
    - AppendItem
    - snprintf
    linkageType: ''
    returnType: void
    signature: void SetVariable(char *name, double value, double average, double stddev,
      Item **classlist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/cf-monitord/env_monitor.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1066
    functionName: ZeroArrivals
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ZeroArrivals()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:1072,1
    - Dst: MON_THRESHOLD_HIGH::MON_THRESHOLD_HIGH
      Src: /src/core/cf-monitord/env_monitor.c:1081,1
    - Dst: MON_THRESHOLD_HIGH::MON_THRESHOLD_HIGH
      Src: /src/core/cf-monitord/env_monitor.c:1086,1
    - Dst: average::average
      Src: /src/core/cf-monitord/env_monitor.c:1091,1
    - Dst: average::average
      Src: /src/core/cf-monitord/env_monitor.c:1091,1
    - Dst: average::average
      Src: /src/core/cf-monitord/env_monitor.c:1096,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/env_monitor.c:1108,1
    - Dst: average::average
      Src: /src/core/cf-monitord/env_monitor.c:1108,1
    - Dst: average::average
      Src: /src/core/cf-monitord/env_monitor.c:1108,1
    - Dst: localav::localav
      Src: /src/core/cf-monitord/env_monitor.c:1108,1
    - Dst: localav::localav
      Src: /src/core/cf-monitord/env_monitor.c:1108,1
    - Dst: srand48
      Src: /src/core/cf-monitord/env_monitor.c:1112,1
    - Dst: time
      Src: /src/core/cf-monitord/env_monitor.c:1112,1
    - Dst: drand48
      Src: /src/core/cf-monitord/env_monitor.c:1114,1
    - Dst: Log
      Src: /src/core/cf-monitord/env_monitor.c:1132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 5
    argNames:
    - new
    - average
    - variance
    - localav
    - localvar
    argTypes:
    - double
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1070
    functionDepth: 8
    functionLinenumber: 1070
    functionLinenumberEnd: 1135
    functionName: RejectAnomaly
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - srand48
    - sqrt
    - drand48
    - localav::localav
    - Log
    - average::average
    - time
    - MON_THRESHOLD_HIGH::MON_THRESHOLD_HIGH
    linkageType: ''
    returnType: double
    signature: double RejectAnomaly(double new, double average, double variance, double
      localav, double localvar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/cf-monitord/env_monitor.c:1143,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/env_monitor.c:1145,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/cf-monitord/env_monitor.c:1146,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/env_monitor.c:1148,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/env_monitor.c:1148,1
    - Dst: SeqLength
      Src: /src/core/cf-monitord/env_monitor.c:1150,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/env_monitor.c:1152,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/cf-monitord/env_monitor.c:1154,1
    - Dst: SeqLength
      Src: /src/core/cf-monitord/env_monitor.c:1155,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/env_monitor.c:1157,1
    - Dst: ExpandPromise
      Src: /src/core/cf-monitord/env_monitor.c:1158,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-monitord/env_monitor.c:1160,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-monitord/env_monitor.c:1164,1
    - Dst: EvalContextClear
      Src: /src/core/cf-monitord/env_monitor.c:1167,1
    - Dst: DetectEnvironment
      Src: /src/core/cf-monitord/env_monitor.c:1168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1141
    functionDepth: 15
    functionLinenumber: 1141
    functionLinenumberEnd: 1169
    functionName: GatherPromisedMeasures
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 1
    functionsReached:
    - EvalContextStackPushBundleFrame
    - ExpandPromise
    - EvalContextStackPopFrame
    - EvalContextClear
    - DetectEnvironment
    - EvalContextStackPushBundleSectionFrame
    - strcmp
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void GatherPromisedMeasures(EvalContext *ctx, const Policy *policy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-monitord/env_monitor.c:1177,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/env_monitor.c:1179,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-monitord/env_monitor.c:1179,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/env_monitor.c:1183,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-monitord/env_monitor.c:1183,1
    - Dst: VerifyClassPromise
      Src: /src/core/cf-monitord/env_monitor.c:1185,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/env_monitor.c:1187,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-monitord/env_monitor.c:1187,1
    - Dst: VerifyMeasurementPromise
      Src: /src/core/cf-monitord/env_monitor.c:1189,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/env_monitor.c:1192,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-monitord/env_monitor.c:1192,1
    - Dst: assert
      Src: /src/core/cf-monitord/env_monitor.c:1197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - pp
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - ARG_UNUSED*
    assertStmts:
    - condition: (param == NULL)
      pos:
        line_end: 1176
        line_start: 1176
        source_file: /src/core/cf-monitord/env_monitor.c
    - condition: (false && "Unknown promise type")
      pos:
        line_end: 1196
        line_start: 1196
        source_file: /src/core/cf-monitord/env_monitor.c
    constantsTouched: []
    func_position:
      end: 1199
      start: 1175
    functionDepth: 14
    functionLinenumber: 1175
    functionLinenumberEnd: 1199
    functionName: KeepMonitorPromise
    functionSourceFile: /src/core/cf-monitord/env_monitor.c
    functionUses: 0
    functionsReached:
    - PromiseGetPromiseType
    - assert
    - VerifyClassPromise
    - strcmp
    - VerifyMeasurementPromise
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult KeepMonitorPromise(EvalContext *ctx, const Promise *pp,
      ARG_UNUSED void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-monitord/mon_disk.c:47,1
    - Dst: GetDiskUsage
      Src: /src/core/cf-monitord/mon_disk.c:48,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_disk.c:49,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/mon_disk.c:53,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/mon_disk.c:54,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/mon_disk.c:55,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/mon_disk.c:56,1
    - Dst: GetFileGrowth
      Src: /src/core/cf-monitord/mon_disk.c:58,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_disk.c:59,1
    - Dst: GetFileGrowth
      Src: /src/core/cf-monitord/mon_disk.c:60,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_disk.c:61,1
    - Dst: GetFileGrowth
      Src: /src/core/cf-monitord/mon_disk.c:62,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_disk.c:63,1
    - Dst: GetFileGrowth
      Src: /src/core/cf-monitord/mon_disk.c:64,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_disk.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 40
    functionDepth: 9
    functionLinenumber: 40
    functionLinenumberEnd: 66
    functionName: MonDiskGatherData
    functionSourceFile: /src/core/cf-monitord/mon_disk.c
    functionUses: 1
    functionsReached:
    - GetFileGrowth
    - Log
    - strcpy
    - GetDiskUsage
    linkageType: ''
    returnType: void
    signature: void MonDiskGatherData(double *cf_this)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/cf-monitord/mon_disk.c:76,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_disk.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - filename
    - index
    argTypes:
    - char*
    - enum observables
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 70
    functionDepth: 8
    functionLinenumber: 70
    functionLinenumberEnd: 95
    functionName: GetFileGrowth
    functionSourceFile: /src/core/cf-monitord/mon_disk.c
    functionUses: 1
    functionsReached:
    - stat
    - Log
    linkageType: ''
    returnType: int
    signature: int GetFileGrowth(const char *filename, enum observables index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_mem_solaris.c:43,1
    - Dst: sysconf
      Src: /src/core/cf-monitord/mon_mem_solaris.c:48,1
    - Dst: sysconf
      Src: /src/core/cf-monitord/mon_mem_solaris.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: GetTotalMemory
    functionSourceFile: /src/core/cf-monitord/mon_mem_solaris.c
    functionUses: 0
    functionsReached:
    - NovaRegisterSlot
    - sysconf
    linkageType: ''
    returnType: void
    signature: void GetTotalMemory(double *cf_this)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GetKstatHandle
      Src: /src/core/cf-monitord/mon_mem_solaris.c:58,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_mem_solaris.c:60,1
    - Dst: kstat_lookup
      Src: /src/core/cf-monitord/mon_mem_solaris.c:70,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_mem_solaris.c:72,1
    - Dst: kstat_read
      Src: /src/core/cf-monitord/mon_mem_solaris.c:76,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_mem_solaris.c:78,1
    - Dst: kstat_lookup
      Src: /src/core/cf-monitord/mon_mem_solaris.c:82,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_mem_solaris.c:84,1
    - Dst: kstat_read
      Src: /src/core/cf-monitord/mon_mem_solaris.c:88,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_mem_solaris.c:90,1
    - Dst: GetInstantUint64Value
      Src: /src/core/cf-monitord/mon_mem_solaris.c:94,1
    - Dst: sysconf
      Src: /src/core/cf-monitord/mon_mem_solaris.c:100,1
    - Dst: GetInstantUint64Value
      Src: /src/core/cf-monitord/mon_mem_solaris.c:104,1
    - Dst: GetInstantUint64Value
      Src: /src/core/cf-monitord/mon_mem_solaris.c:105,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_mem_solaris.c:109,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_mem_solaris.c:111,1
    - Dst: sysconf
      Src: /src/core/cf-monitord/mon_mem_solaris.c:116,1
    - Dst: sysconf
      Src: /src/core/cf-monitord/mon_mem_solaris.c:120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 56
    functionDepth: 8
    functionLinenumber: 56
    functionLinenumberEnd: 123
    functionName: GetKstatInfo
    functionSourceFile: /src/core/cf-monitord/mon_mem_solaris.c
    functionUses: 0
    functionsReached:
    - kstat_read
    - GetKstatHandle
    - sysconf
    - kstat_lookup
    - Log
    - GetInstantUint64Value
    - NovaRegisterSlot
    linkageType: ''
    returnType: void
    signature: void GetKstatInfo(double *cf_this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetTotalMemory
      Src: /src/core/cf-monitord/mon_mem_solaris.c:129,1
    - Dst: GetKstatInfo
      Src: /src/core/cf-monitord/mon_mem_solaris.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 9
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: MonMemoryGatherData
    functionSourceFile: /src/core/cf-monitord/mon_mem_solaris.c
    functionUses: 0
    functionsReached:
    - GetTotalMemory
    - GetKstatInfo
    linkageType: ''
    returnType: void
    signature: void MonMemoryGatherData(double *cf_this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - error
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: MonMemoryInit
    functionSourceFile: /src/core/cf-monitord/mon_mem_solaris.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ProbeGatherData
    signature: ProbeGatherData MonMemoryInit(const char **name, const char **error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetAcpi
      Src: /src/core/cf-monitord/mon_temp.c:59,1
    - Dst: GetSysThermal
      Src: /src/core/cf-monitord/mon_temp.c:64,1
    - Dst: GetLMSensors
      Src: /src/core/cf-monitord/mon_temp.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: MonTempGatherData
    functionSourceFile: /src/core/cf-monitord/mon_temp.c
    functionUses: 1
    functionsReached:
    - GetSysThermal
    - GetLMSensors
    - GetAcpi
    linkageType: ''
    returnType: void
    signature: void MonTempGatherData(double *cf_this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: MonTempGatherData
    functionSourceFile: /src/core/cf-monitord/mon_temp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MonTempGatherData(ARG_UNUSED double *cf_this)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/cf-monitord/mon_temp.c:92,1
    - Dst: stat
      Src: /src/core/cf-monitord/mon_temp.c:95,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:97,1
    - Dst: stat
      Src: /src/core/cf-monitord/mon_temp.c:102,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:104,1
    - Dst: stat
      Src: /src/core/cf-monitord/mon_temp.c:108,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 116
    functionName: MonTempInit
    functionSourceFile: /src/core/cf-monitord/mon_temp.c
    functionUses: 1
    functionsReached:
    - stat
    - Log
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void MonTempInit(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DirOpen
      Src: /src/core/cf-monitord/mon_temp.c:130,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:132,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_temp.c:132,1
    - Dst: DirRead
      Src: /src/core/cf-monitord/mon_temp.c:136,1
    - Dst: DirRead
      Src: /src/core/cf-monitord/mon_temp.c:136,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_temp.c:138,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_temp.c:138,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_temp.c:143,1
    - Dst: fopen
      Src: /src/core/cf-monitord/mon_temp.c:145,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:147,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_temp.c:147,1
    - Dst: fgets
      Src: /src/core/cf-monitord/mon_temp.c:151,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:153,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_temp.c:154,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_temp.c:159,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_temp.c:163,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_temp.c:165,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:183,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_temp.c:186,1
    - Dst: DirClose
      Src: /src/core/cf-monitord/mon_temp.c:189,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 121
    functionDepth: 8
    functionLinenumber: 121
    functionLinenumberEnd: 191
    functionName: GetAcpi
    functionSourceFile: /src/core/cf-monitord/mon_temp.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - fopen
    - snprintf
    - fgets
    - strstr
    - DirRead
    - DirOpen
    - sscanf
    - Log
    - strcmp
    - fclose
    - DirClose
    linkageType: ''
    returnType: bool
    signature: bool GetAcpi(double *cf_this)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/core/cf-monitord/mon_temp.c:206,1
    - Dst: fopen
      Src: /src/core/cf-monitord/mon_temp.c:209,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:211,1
    - Dst: fgets
      Src: /src/core/cf-monitord/mon_temp.c:216,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:218,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_temp.c:219,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_temp.c:223,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:242,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:247,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_temp.c:250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 195
    functionDepth: 8
    functionLinenumber: 195
    functionLinenumberEnd: 254
    functionName: GetSysThermal
    functionSourceFile: /src/core/cf-monitord/mon_temp.c
    functionUses: 1
    functionsReached:
    - fgets
    - fopen
    - sscanf
    - Log
    - xsnprintf
    - fclose
    linkageType: ''
    returnType: bool
    signature: bool GetSysThermal(double *cf_this)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: cf_popen
      Src: /src/core/cf-monitord/mon_temp.c:271,1
    - Dst: xmalloc
      Src: /src/core/cf-monitord/mon_temp.c:279,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/mon_temp.c:281,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/mon_temp.c:285,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_temp.c:286,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/mon_temp.c:292,1
    - Dst: feof
      Src: /src/core/cf-monitord/mon_temp.c:295,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/mon_temp.c:298,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_temp.c:299,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_temp.c:308,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_temp.c:308,1
    - Dst: PrependItem
      Src: /src/core/cf-monitord/mon_temp.c:310,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/mon_temp.c:314,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_temp.c:315,1
    - Dst: ListLen
      Src: /src/core/cf-monitord/mon_temp.c:318,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:320,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_temp.c:333,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_temp.c:335,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_temp.c:335,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_temp.c:337,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:355,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_temp.c:372,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_temp.c:374,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_temp.c:374,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_temp.c:376,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:394,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_temp.c:407,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_temp.c:407,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_temp.c:409,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:410,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_temp.c:414,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_temp.c:414,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_temp.c:416,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:417,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_temp.c:421,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_temp.c:421,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_temp.c:423,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:424,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_temp.c:428,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_temp.c:428,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_temp.c:430,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:431,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_temp.c:448,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_temp.c:450,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_temp.c:450,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_temp.c:452,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_temp.c:470,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_temp.c:476,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 138
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 258
    functionDepth: 11
    functionLinenumber: 258
    functionLinenumberEnd: 478
    functionName: GetLMSensors
    functionSourceFile: /src/core/cf-monitord/mon_temp.c
    functionUses: 1
    functionsReached:
    - strncmp
    - snprintf
    - cf_popen
    - ListLen
    - strstr
    - strlen
    - feof
    - sscanf
    - cf_pclose
    - xmalloc
    - Log
    - PrependItem
    - DeleteItemList
    - free
    - CfReadLine
    linkageType: ''
    returnType: bool
    signature: bool GetLMSensors(double *cf_this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - error
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: MonMemoryInit
    functionSourceFile: /src/core/cf-monitord/mon_mem_stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ProbeGatherData
    signature: ProbeGatherData MonMemoryInit(const char **name, const char **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: MonEntropyClassesInit
    functionSourceFile: /src/core/cf-monitord/mon_entropy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MonEntropyClassesInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: MonEntropyClassesReset
    functionSourceFile: /src/core/cf-monitord/mon_entropy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MonEntropyClassesReset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/core/cf-monitord/mon_entropy.c:90,1
    - Dst: log
      Src: /src/core/cf-monitord/mon_entropy.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - items
    argTypes:
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 94
    functionName: MonEntropyCalculate
    functionSourceFile: /src/core/cf-monitord/mon_entropy.c
    functionUses: 0
    functionsReached:
    - log
    linkageType: ''
    returnType: double
    signature: double MonEntropyCalculate(const Item *items)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_entropy.c:114,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/mon_entropy.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - service
    - direction
    - entropy
    argTypes:
    - char*
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: MonEntropyClassesSet
    functionSourceFile: /src/core/cf-monitord/mon_entropy.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - snprintf
    linkageType: ''
    returnType: void
    signature: void MonEntropyClassesSet(const char *service, const char *direction,
      double entropy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemMatching
      Src: /src/core/cf-monitord/mon_entropy.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: MonEntropyPurgeUnused
    functionSourceFile: /src/core/cf-monitord/mon_entropy.c
    functionUses: 1
    functionsReached:
    - DeleteItemMatching
    linkageType: ''
    returnType: void
    signature: void MonEntropyPurgeUnused(char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/cf-monitord/mon_entropy.c:132,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_entropy.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: MonEntropyClassesPublish
    functionSourceFile: /src/core/cf-monitord/mon_entropy.c
    functionUses: 1
    functionsReached:
    - DeleteItemList
    - fprintf
    linkageType: ''
    returnType: void
    signature: void MonEntropyClassesPublish(FILE *fp)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/cf-monitord/get_socket_info.c:37,1
    - Dst: xmalloc
      Src: /src/core/cf-monitord/get_socket_info.c:40,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/get_socket_info.c:43,1
    - Dst: Log
      Src: /src/core/cf-monitord/get_socket_info.c:46,1
    - Dst: free
      Src: /src/core/cf-monitord/get_socket_info.c:47,1
    - Dst: SeqNew
      Src: /src/core/cf-monitord/get_socket_info.c:52,1
    - Dst: CfReadLines
      Src: /src/core/cf-monitord/get_socket_info.c:53,1
    - Dst: Log
      Src: /src/core/cf-monitord/get_socket_info.c:56,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/get_socket_info.c:57,1
    - Dst: free
      Src: /src/core/cf-monitord/get_socket_info.c:58,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/get_socket_info.c:69,1
    - Dst: ParseIPv4SocketInfo
      Src: /src/core/cf-monitord/get_socket_info.c:70,1
    - Dst: printf
      Src: /src/core/cf-monitord/get_socket_info.c:72,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/get_socket_info.c:78,1
    - Dst: fopen
      Src: /src/core/cf-monitord/get_socket_info.c:82,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/get_socket_info.c:85,1
    - Dst: Log
      Src: /src/core/cf-monitord/get_socket_info.c:88,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/get_socket_info.c:89,1
    - Dst: free
      Src: /src/core/cf-monitord/get_socket_info.c:90,1
    - Dst: CfReadLines
      Src: /src/core/cf-monitord/get_socket_info.c:95,1
    - Dst: Log
      Src: /src/core/cf-monitord/get_socket_info.c:98,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/get_socket_info.c:99,1
    - Dst: free
      Src: /src/core/cf-monitord/get_socket_info.c:100,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/get_socket_info.c:107,1
    - Dst: ParseIPv6SocketInfo
      Src: /src/core/cf-monitord/get_socket_info.c:108,1
    - Dst: printf
      Src: /src/core/cf-monitord/get_socket_info.c:110,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/get_socket_info.c:116,1
    - Dst: fopen
      Src: /src/core/cf-monitord/get_socket_info.c:119,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/get_socket_info.c:120,1
    - Dst: Log
      Src: /src/core/cf-monitord/get_socket_info.c:123,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/get_socket_info.c:124,1
    - Dst: free
      Src: /src/core/cf-monitord/get_socket_info.c:125,1
    - Dst: CfReadLines
      Src: /src/core/cf-monitord/get_socket_info.c:130,1
    - Dst: Log
      Src: /src/core/cf-monitord/get_socket_info.c:133,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/get_socket_info.c:134,1
    - Dst: free
      Src: /src/core/cf-monitord/get_socket_info.c:135,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/get_socket_info.c:142,1
    - Dst: ParseIPv4SocketInfo
      Src: /src/core/cf-monitord/get_socket_info.c:143,1
    - Dst: printf
      Src: /src/core/cf-monitord/get_socket_info.c:145,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/get_socket_info.c:150,1
    - Dst: fopen
      Src: /src/core/cf-monitord/get_socket_info.c:152,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/get_socket_info.c:155,1
    - Dst: Log
      Src: /src/core/cf-monitord/get_socket_info.c:158,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/get_socket_info.c:159,1
    - Dst: free
      Src: /src/core/cf-monitord/get_socket_info.c:160,1
    - Dst: CfReadLines
      Src: /src/core/cf-monitord/get_socket_info.c:165,1
    - Dst: Log
      Src: /src/core/cf-monitord/get_socket_info.c:168,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/get_socket_info.c:169,1
    - Dst: free
      Src: /src/core/cf-monitord/get_socket_info.c:170,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/get_socket_info.c:177,1
    - Dst: ParseIPv6SocketInfo
      Src: /src/core/cf-monitord/get_socket_info.c:178,1
    - Dst: printf
      Src: /src/core/cf-monitord/get_socket_info.c:180,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/get_socket_info.c:186,1
    - Dst: free
      Src: /src/core/cf-monitord/get_socket_info.c:187,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 35
    functionDepth: 8
    functionLinenumber: 35
    functionLinenumberEnd: 189
    functionName: main
    functionSourceFile: /src/core/cf-monitord/get_socket_info.c
    functionUses: 2
    functionsReached:
    - CfReadLines
    - fopen
    - SeqDestroy
    - printf
    - SeqNew
    - SeqClear
    - xmalloc
    - Log
    - ParseIPv4SocketInfo
    - free
    - CfReadLine
    - ParseIPv6SocketInfo
    - SeqAt
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-monitord/probes.c:52,1
    - Dst: Log
      Src: /src/core/cf-monitord/probes.c:62,1
    - Dst: Log
      Src: /src/core/cf-monitord/probes.c:66,1
    - Dst: Log
      Src: /src/core/cf-monitord/probes.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 8
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: MonOtherInit
    functionSourceFile: /src/core/cf-monitord/probes.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void MonOtherInit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-monitord/probes.c:77,1
    - Dst: Log
      Src: /src/core/cf-monitord/probes.c:86,1
    - Dst: Log
      Src: /src/core/cf-monitord/probes.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 8
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: MonOtherGatherData
    functionSourceFile: /src/core/cf-monitord/probes.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void MonOtherGatherData(double *cf_this)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/cf-monitord/proc_net_parsing.c:41,1
    - Dst: strchr
      Src: /src/core/cf-monitord/proc_net_parsing.c:47,1
    - Dst: strchr
      Src: /src/core/cf-monitord/proc_net_parsing.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - line
    - local
    - remote
    - state
    argTypes:
    - char*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: SplitProcNetLine
    functionSourceFile: /src/core/cf-monitord/proc_net_parsing.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: bool
    signature: bool SplitProcNetLine(const char *line, char **local, char **remote,
      char **state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SplitProcNetLine
      Src: /src/core/cf-monitord/proc_net_parsing.c:68,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/proc_net_parsing.c:75,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:77,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/proc_net_parsing.c:81,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:83,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/proc_net_parsing.c:87,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:89,1
    - Dst: inet_ntop
      Src: /src/core/cf-monitord/proc_net_parsing.c:93,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:95,1
    - Dst: inet_ntop
      Src: /src/core/cf-monitord/proc_net_parsing.c:98,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - line
    - local_addr
    - local_port
    - remote_addr
    - remote_port
    - state
    argTypes:
    - char*
    - char[]
    - uint32_t*
    - char[]
    - uint32_t*
    - SocketState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 62
    functionDepth: 8
    functionLinenumber: 62
    functionLinenumberEnd: 104
    functionName: ParseIPv4SocketInfo
    functionSourceFile: /src/core/cf-monitord/proc_net_parsing.c
    functionUses: 1
    functionsReached:
    - sscanf
    - SplitProcNetLine
    - Log
    - inet_ntop
    linkageType: ''
    returnType: bool
    signature: "bool ParseIPv4SocketInfo(const char *line,\n                         char
      local_addr[INET_ADDRSTRLEN], uint32_t *local_port,\n                         char
      remote_addr[INET_ADDRSTRLEN], uint32_t *remote_port,\n                         SocketState
      *state)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SplitProcNetLine
      Src: /src/core/cf-monitord/proc_net_parsing.c:112,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/proc_net_parsing.c:120,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:124,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/proc_net_parsing.c:129,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:133,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/proc_net_parsing.c:137,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:139,1
    - Dst: inet_ntop
      Src: /src/core/cf-monitord/proc_net_parsing.c:143,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:145,1
    - Dst: inet_ntop
      Src: /src/core/cf-monitord/proc_net_parsing.c:148,1
    - Dst: Log
      Src: /src/core/cf-monitord/proc_net_parsing.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - line
    - local_addr
    - local_port
    - remote_addr
    - remote_port
    - state
    argTypes:
    - char*
    - char[]
    - uint32_t*
    - char[]
    - uint32_t*
    - SocketState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 106
    functionDepth: 8
    functionLinenumber: 106
    functionLinenumberEnd: 154
    functionName: ParseIPv6SocketInfo
    functionSourceFile: /src/core/cf-monitord/proc_net_parsing.c
    functionUses: 1
    functionsReached:
    - sscanf
    - SplitProcNetLine
    - Log
    - inet_ntop
    linkageType: ''
    returnType: bool
    signature: "bool ParseIPv6SocketInfo(const char *line,\n                         char
      local_addr[INET6_ADDRSTRLEN], uint32_t *local_port,\n                         char
      remote_addr[INET6_ADDRSTRLEN], uint32_t *remote_port,\n                         SocketState
      *state)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_mem_linux.c:57,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_mem_linux.c:61,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_mem_linux.c:65,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_mem_linux.c:69,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_mem_linux.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - field
    - value
    - param
    argTypes:
    - char*
    - off_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 79
    functionName: AcceptMemoryField
    functionSourceFile: /src/core/cf-monitord/mon_mem_linux.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool AcceptMemoryField(const char *field, off_t value, void *param)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/mon_mem_linux.c:87,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_mem_linux.c:90,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_mem_linux.c:90,1
    - Dst: ParseKeyNumericValue
      Src: /src/core/cf-monitord/mon_mem_linux.c:94,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_mem_linux.c:96,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_mem_linux.c:98,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_mem_linux.c:100,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_mem_linux.c:102,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_mem_linux.c:104,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_mem_linux.c:130,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_mem_linux.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 83
    functionDepth: 8
    functionLinenumber: 83
    functionLinenumberEnd: 134
    functionName: MonMeminfoGatherData
    functionSourceFile: /src/core/cf-monitord/mon_mem_linux.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ParseKeyNumericValue
    - safe_fopen
    - Log
    - fclose
    - NovaRegisterSlot
    linkageType: ''
    returnType: void
    signature: void MonMeminfoGatherData(double *cf_this)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/core/cf-monitord/mon_mem_linux.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - name
    - error
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: MonMemoryInit
    functionSourceFile: /src/core/cf-monitord/mon_mem_linux.c
    functionUses: 0
    functionsReached:
    - access
    linkageType: ''
    returnType: ProbeGatherData
    signature: ProbeGatherData MonMemoryInit(const char **name, const char **error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kstat_open
      Src: /src/core/cf-monitord/shared_kstat.c:38,1
    - Dst: Log
      Src: /src/core/cf-monitord/shared_kstat.c:41,1
    - Dst: kstat_chain_update
      Src: /src/core/cf-monitord/shared_kstat.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 8
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: GetKstatHandle
    functionSourceFile: /src/core/cf-monitord/shared_kstat.c
    functionUses: 1
    functionsReached:
    - kstat_open
    - Log
    - kstat_chain_update
    linkageType: ''
    returnType: kstat_ctl_t
    signature: kstat_ctl_t *GetKstatHandle(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-monitord/monitoring.c:53,1
    - Dst: OpenDB
      Src: /src/core/cf-monitord/monitoring.c:56,1
    - Dst: ReadDB
      Src: /src/core/cf-monitord/monitoring.c:63,1
    - Dst: isnan
      Src: /src/core/cf-monitord/monitoring.c:65,1
    - Dst: isnan
      Src: /src/core/cf-monitord/monitoring.c:70,1
    - Dst: QAverage
      Src: /src/core/cf-monitord/monitoring.c:75,1
    - Dst: QDefinite
      Src: /src/core/cf-monitord/monitoring.c:79,1
    - Dst: Log
      Src: /src/core/cf-monitord/monitoring.c:82,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/monitoring.c:83,1
    - Dst: WriteDB
      Src: /src/core/cf-monitord/monitoring.c:84,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/monitoring.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - eventname
    - value
    argTypes:
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 50
    functionDepth: 10
    functionLinenumber: 50
    functionLinenumberEnd: 87
    functionName: NovaNamedEvent
    functionSourceFile: /src/core/cf-monitord/monitoring.c
    functionUses: 1
    functionsReached:
    - sqrt
    - QAverage
    - OpenDB
    - WriteDB
    - ReadDB
    - Log
    - CloseDB
    - isnan
    - QDefinite
    - time
    linkageType: ''
    returnType: void
    signature: void NovaNamedEvent(const char *eventname, double value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-monitord/monitoring.c:101,1
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/monitoring.c:101,1
    - Dst: NovaHasSlot
      Src: /src/core/cf-monitord/monitoring.c:109,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/monitoring.c:111,1
    - Dst: NULLStringToEmpty
      Src: /src/core/cf-monitord/monitoring.c:113,1
    - Dst: NovaGetSlotName
      Src: /src/core/cf-monitord/monitoring.c:113,1
    - Dst: NULLStringToEmpty
      Src: /src/core/cf-monitord/monitoring.c:114,1
    - Dst: NovaGetSlotDescription
      Src: /src/core/cf-monitord/monitoring.c:114,1
    - Dst: NULLStringToEmpty
      Src: /src/core/cf-monitord/monitoring.c:115,1
    - Dst: NovaGetSlotUnits
      Src: /src/core/cf-monitord/monitoring.c:115,1
    - Dst: NovaGetSlotExpectedMinimum
      Src: /src/core/cf-monitord/monitoring.c:116,1
    - Dst: NovaGetSlotExpectedMaximum
      Src: /src/core/cf-monitord/monitoring.c:116,1
    - Dst: NovaIsSlotConsolidable
      Src: /src/core/cf-monitord/monitoring.c:116,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/monitoring.c:120,1
    - Dst: strlcat
      Src: /src/core/cf-monitord/monitoring.c:123,1
    - Dst: FileRead
      Src: /src/core/cf-monitord/monitoring.c:128,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/monitoring.c:131,1
    - Dst: StringWriterData
      Src: /src/core/cf-monitord/monitoring.c:131,1
    - Dst: WriterClose
      Src: /src/core/cf-monitord/monitoring.c:135,1
    - Dst: Log
      Src: /src/core/cf-monitord/monitoring.c:140,1
    - Dst: FileWriteOver
      Src: /src/core/cf-monitord/monitoring.c:142,1
    - Dst: Log
      Src: /src/core/cf-monitord/monitoring.c:144,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/monitoring.c:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 94
    functionDepth: 11
    functionLinenumber: 94
    functionLinenumberEnd: 148
    functionName: Nova_DumpSlots
    functionSourceFile: /src/core/cf-monitord/monitoring.c
    functionUses: 0
    functionsReached:
    - NovaGetSlotExpectedMaximum
    - NovaIsSlotConsolidable
    - GetErrorStr
    - strlcat
    - WriterClose
    - snprintf
    - NovaGetSlotExpectedMinimum
    - NovaGetSlotName
    - GetStateDir
    - NovaGetSlotDescription
    - StringWriterData
    - NovaHasSlot
    - NULLStringToEmpty
    - FileRead
    - strcmp
    - NovaGetSlotUnits
    - Log
    - FileWriteOver
    linkageType: ''
    returnType: void
    signature: void Nova_DumpSlots(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Nova_LoadSlots
      Src: /src/core/cf-monitord/monitoring.c:152,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/monitoring.c:156,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/monitoring.c:157,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/monitoring.c:163,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/monitoring.c:164,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/monitoring.c:168,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/monitoring.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - i
    - name
    - name_size
    - desc
    - desc_size
    argTypes:
    - int
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 150
    functionDepth: 9
    functionLinenumber: 150
    functionLinenumberEnd: 172
    functionName: GetObservable
    functionSourceFile: /src/core/cf-monitord/monitoring.c
    functionUses: 2
    functionsReached:
    - Nova_LoadSlots
    - strncpy
    linkageType: ''
    returnType: void
    signature: void GetObservable(int i, char *name, size_t name_size, char *desc,
      size_t desc_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/cf-monitord/monitoring.c:184,1
    - Dst: NewDBCursor
      Src: /src/core/cf-monitord/monitoring.c:189,1
    - Dst: Log
      Src: /src/core/cf-monitord/monitoring.c:191,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/monitoring.c:192,1
    - Dst: memset
      Src: /src/core/cf-monitord/monitoring.c:196,1
    - Dst: NextDB
      Src: /src/core/cf-monitord/monitoring.c:198,1
    - Dst: Log
      Src: /src/core/cf-monitord/monitoring.c:204,1
    - Dst: strcpy
      Src: /src/core/cf-monitord/monitoring.c:208,1
    - Dst: memcpy
      Src: /src/core/cf-monitord/monitoring.c:209,1
    - Dst: MIN
      Src: /src/core/cf-monitord/monitoring.c:209,1
    - Dst: Log
      Src: /src/core/cf-monitord/monitoring.c:211,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/monitoring.c:217,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/monitoring.c:221,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/monitoring.c:224,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/monitoring.c:226,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/monitoring.c:227,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/monitoring.c:228,1
    - Dst: sqrt
      Src: /src/core/cf-monitord/monitoring.c:228,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/monitoring.c:229,1
    - Dst: DeleteDBCursor
      Src: /src/core/cf-monitord/monitoring.c:233,1
    - Dst: CloseDB
      Src: /src/core/cf-monitord/monitoring.c:234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - classlist
    argTypes:
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 174
    functionDepth: 10
    functionLinenumber: 174
    functionLinenumberEnd: 235
    functionName: SetMeasurementPromises
    functionSourceFile: /src/core/cf-monitord/monitoring.c
    functionUses: 1
    functionsReached:
    - memcpy
    - AppendItem
    - snprintf
    - NewDBCursor
    - sqrt
    - OpenDB
    - MIN
    - DeleteDBCursor
    - Log
    - CloseDB
    - NextDB
    - strcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void SetMeasurementPromises(Item ** classlist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Nova_LoadSlots
      Src: /src/core/cf-monitord/monitoring.c:281,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/monitoring.c:286,1
    - Dst: Log
      Src: /src/core/cf-monitord/monitoring.c:288,1
    - Dst: Log
      Src: /src/core/cf-monitord/monitoring.c:298,1
    - Dst: Log
      Src: /src/core/cf-monitord/monitoring.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 277
    functionDepth: 9
    functionLinenumber: 277
    functionLinenumberEnd: 307
    functionName: NovaGetSlot
    functionSourceFile: /src/core/cf-monitord/monitoring.c
    functionUses: 0
    functionsReached:
    - strcmp
    - Log
    - Nova_LoadSlots
    linkageType: ''
    returnType: int
    signature: int NovaGetSlot(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NovaGetSlot
      Src: /src/core/cf-monitord/monitoring.c:315,1
    - Dst: Nova_FreeSlot
      Src: /src/core/cf-monitord/monitoring.c:322,1
    - Dst: Nova_MakeSlot
      Src: /src/core/cf-monitord/monitoring.c:323,1
    - Dst: Nova_DumpSlots
      Src: /src/core/cf-monitord/monitoring.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - name
    - description
    - units
    - expected_minimum
    - expected_maximum
    - consolidable
    argTypes:
    - char*
    - char*
    - char*
    - double
    - double
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 311
    functionDepth: 12
    functionLinenumber: 311
    functionLinenumberEnd: 327
    functionName: NovaRegisterSlot
    functionSourceFile: /src/core/cf-monitord/monitoring.c
    functionUses: 4
    functionsReached:
    - Nova_MakeSlot
    - NovaGetSlot
    - Nova_FreeSlot
    - Nova_DumpSlots
    linkageType: ''
    returnType: int
    signature: "int NovaRegisterSlot(const char *name, const char *description,\n
      \                    const char *units, double expected_minimum,\n                     double
      expected_maximum, bool consolidable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getloadavg
      Src: /src/core/cf-monitord/mon_load.c:46,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_load.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 8
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: MonLoadGatherData
    functionSourceFile: /src/core/cf-monitord/mon_load.c
    functionUses: 2
    functionsReached:
    - Log
    - getloadavg
    linkageType: ''
    returnType: void
    signature: void MonLoadGatherData(double *cf_this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-monitord/mon_load.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: MonLoadGatherData
    functionSourceFile: /src/core/cf-monitord/mon_load.c
    functionUses: 2
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void MonLoadGatherData(double *cf_this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:122,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:123,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:124,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:125,1
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/mon_network.c:130,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network.c:139,1
    - Dst: MapName
      Src: /src/core/cf-monitord/mon_network.c:142,1
    - Dst: CreateEmptyFile
      Src: /src/core/cf-monitord/mon_network.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 119
    functionDepth: 9
    functionLinenumber: 119
    functionLinenumberEnd: 146
    functionName: MonNetworkInit
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 1
    functionsReached:
    - snprintf
    - MapName
    - GetStateDir
    - CreateEmptyFile
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void MonNetworkInit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_network.c:158,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network.c:165,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network.c:167,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network.c:171,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/mon_network.c:174,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_network.c:177,1
    - Dst: isdigit
      Src: /src/core/cf-monitord/mon_network.c:177,1
    - Dst: IsItemIn
      Src: /src/core/cf-monitord/mon_network.c:183,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/mon_network.c:185,1
    - Dst: IncrementItemListCounter
      Src: /src/core/cf-monitord/mon_network.c:188,1
    - Dst: MonEntropyCalculate
      Src: /src/core/cf-monitord/mon_network.c:192,1
    - Dst: MonEntropyClassesSet
      Src: /src/core/cf-monitord/mon_network.c:193,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - service
    - direction
    - list
    argTypes:
    - char*
    - char*
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 195
    functionName: SetNetworkEntropyClasses
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - strncmp
    - IsItemIn
    - MonEntropyCalculate
    - strncpy
    - strlen
    - IncrementItemListCounter
    - isdigit
    - sscanf
    - DeleteItemList
    - MonEntropyClassesSet
    linkageType: ''
    returnType: void
    signature: void SetNetworkEntropyClasses(const char *service, const char *direction,
      const Item *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:207,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:210,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:211,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:212,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: ResetNetworkData
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 0
    functionsReached:
    - DeleteItemList
    linkageType: ''
    returnType: void
    signature: void ResetNetworkData()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ResetNetworkData
      Src: /src/core/cf-monitord/mon_network.c:219,1
    - Dst: access
      Src: /src/core/cf-monitord/mon_network.c:227,1
    - Dst: GetNetworkDataFromProcNet
      Src: /src/core/cf-monitord/mon_network.c:227,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/mon_network.c:231,1
    - Dst: FileCanOpen
      Src: /src/core/cf-monitord/mon_network.c:233,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:235,1
    - Dst: strncat
      Src: /src/core/cf-monitord/mon_network.c:241,1
    - Dst: cf_popen
      Src: /src/core/cf-monitord/mon_network.c:244,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:246,1
    - Dst: GetNetworkDataFromNetstat
      Src: /src/core/cf-monitord/mon_network.c:252,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/mon_network.c:253,1
    - Dst: SaveNetworkData
      Src: /src/core/cf-monitord/mon_network.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 217
    functionDepth: 11
    functionLinenumber: 217
    functionLinenumberEnd: 260
    functionName: MonNetworkGatherData
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 1
    functionsReached:
    - access
    - GetNetworkDataFromNetstat
    - cf_popen
    - strncpy
    - strncat
    - SaveNetworkData
    - GetNetworkDataFromProcNet
    - cf_pclose
    - Log
    - ResetNetworkData
    - FileCanOpen
    linkageType: ''
    returnType: void
    signature: void MonNetworkGatherData(double *cf_this)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:272,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network.c:278,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:280,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:285,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:288,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:291,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:294,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-monitord/mon_network.c:297,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/mon_network.c:306,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/mon_network.c:313,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 9
    argNames:
    - local_addr
    - local_port
    - remote_port
    - state
    - type
    - socket_info
    - cf_this
    - in
    - out
    argTypes:
    - char*
    - uint32_t
    - uint32_t
    - SocketState
    - SocketType
    - char*
    - double*
    - Item**
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 263
    functionDepth: 8
    functionLinenumber: 263
    functionLinenumberEnd: 317
    functionName: SaveSocketInfo
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 0
    functionsReached:
    - IdempPrependItem
    - AppendItem
    - snprintf
    - Log
    - debug_abort_if_reached
    linkageType: ''
    returnType: void
    signature: "void SaveSocketInfo(const char *local_addr,\n                                  uint32_t
      local_port,\n                                  uint32_t remote_port,\n                                  SocketState
      state,\n                                  SocketType type,\n                                  const
      char *socket_info,\n                                  double *cf_this,\n                                  Item
      **in, Item **out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/cf-monitord/mon_network.c:324,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:327,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/mon_network.c:331,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:334,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:335,1
    - Dst: CfReadLines
      Src: /src/core/cf-monitord/mon_network.c:340,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:343,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:344,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:347,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/mon_network.c:353,1
    - Dst: ParseIPv4SocketInfo
      Src: /src/core/cf-monitord/mon_network.c:354,1
    - Dst: SaveSocketInfo
      Src: /src/core/cf-monitord/mon_network.c:356,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:361,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/mon_network.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 8
    argNames:
    - local_addr
    - remote_addr
    - buff
    - buff_size
    - lines
    - cf_this
    - in
    - out
    argTypes:
    - char[]
    - char[]
    - char**
    - size_t*
    - Seq*
    - double*
    - Item**
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 319
    functionDepth: 9
    functionLinenumber: 319
    functionLinenumberEnd: 364
    functionName: GetNetworkDataFromProcNetTCP
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 0
    functionsReached:
    - CfReadLines
    - fopen
    - SeqClear
    - SaveSocketInfo
    - Log
    - fclose
    - ParseIPv4SocketInfo
    - CfReadLine
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: "bool GetNetworkDataFromProcNetTCP(char local_addr[INET_ADDRSTRLEN],\n
      \                                               char remote_addr[INET_ADDRSTRLEN],\n
      \                                               char **buff, size_t *buff_size,
      Seq *lines,\n                                                double *cf_this,
      Item **in, Item **out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/cf-monitord/mon_network.c:371,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:375,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/mon_network.c:378,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:381,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:382,1
    - Dst: CfReadLines
      Src: /src/core/cf-monitord/mon_network.c:387,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:390,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:391,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:394,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/mon_network.c:400,1
    - Dst: ParseIPv6SocketInfo
      Src: /src/core/cf-monitord/mon_network.c:401,1
    - Dst: SaveSocketInfo
      Src: /src/core/cf-monitord/mon_network.c:403,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:408,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/mon_network.c:409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 8
    argNames:
    - local_addr6
    - remote_addr6
    - buff
    - buff_size
    - lines
    - cf_this
    - in
    - out
    argTypes:
    - char[]
    - char[]
    - char**
    - size_t*
    - Seq*
    - double*
    - Item**
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 366
    functionDepth: 9
    functionLinenumber: 366
    functionLinenumberEnd: 411
    functionName: GetNetworkDataFromProcNetTCP6
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 0
    functionsReached:
    - CfReadLines
    - fopen
    - SeqClear
    - SaveSocketInfo
    - Log
    - fclose
    - CfReadLine
    - ParseIPv6SocketInfo
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: "bool GetNetworkDataFromProcNetTCP6(char local_addr6[INET6_ADDRSTRLEN],\n
      \                                                char remote_addr6[INET6_ADDRSTRLEN],\n
      \                                                char **buff, size_t *buff_size,
      Seq *lines,\n                                                 double *cf_this,
      Item **in, Item **out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/cf-monitord/mon_network.c:418,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:421,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/mon_network.c:425,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:428,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:429,1
    - Dst: CfReadLines
      Src: /src/core/cf-monitord/mon_network.c:434,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:437,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:438,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:441,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/mon_network.c:447,1
    - Dst: ParseIPv4SocketInfo
      Src: /src/core/cf-monitord/mon_network.c:448,1
    - Dst: SaveSocketInfo
      Src: /src/core/cf-monitord/mon_network.c:450,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:455,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/mon_network.c:456,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 8
    argNames:
    - local_addr
    - remote_addr
    - buff
    - buff_size
    - lines
    - cf_this
    - in
    - out
    argTypes:
    - char[]
    - char[]
    - char**
    - size_t*
    - Seq*
    - double*
    - Item**
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 413
    functionDepth: 9
    functionLinenumber: 413
    functionLinenumberEnd: 458
    functionName: GetNetworkDataFromProcNetUDP
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 0
    functionsReached:
    - CfReadLines
    - fopen
    - SeqClear
    - SaveSocketInfo
    - Log
    - fclose
    - ParseIPv4SocketInfo
    - CfReadLine
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: "bool GetNetworkDataFromProcNetUDP(char local_addr[INET_ADDRSTRLEN],\n
      \                                               char remote_addr[INET_ADDRSTRLEN],\n
      \                                               char **buff, size_t *buff_size,
      Seq *lines,\n                                                double *cf_this,
      Item **in, Item **out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/cf-monitord/mon_network.c:465,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:469,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/mon_network.c:472,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:475,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:476,1
    - Dst: CfReadLines
      Src: /src/core/cf-monitord/mon_network.c:481,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:484,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:485,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:488,1
    - Dst: SeqAt
      Src: /src/core/cf-monitord/mon_network.c:494,1
    - Dst: ParseIPv6SocketInfo
      Src: /src/core/cf-monitord/mon_network.c:495,1
    - Dst: SaveSocketInfo
      Src: /src/core/cf-monitord/mon_network.c:497,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network.c:502,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/mon_network.c:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 8
    argNames:
    - local_addr6
    - remote_addr6
    - buff
    - buff_size
    - lines
    - cf_this
    - in
    - out
    argTypes:
    - char[]
    - char[]
    - char**
    - size_t*
    - Seq*
    - double*
    - Item**
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 460
    functionDepth: 9
    functionLinenumber: 460
    functionLinenumberEnd: 505
    functionName: GetNetworkDataFromProcNetUDP6
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 0
    functionsReached:
    - CfReadLines
    - fopen
    - SeqClear
    - SaveSocketInfo
    - Log
    - fclose
    - CfReadLine
    - ParseIPv6SocketInfo
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: "bool GetNetworkDataFromProcNetUDP6(char local_addr6[INET6_ADDRSTRLEN],\n
      \                                                char remote_addr6[INET6_ADDRSTRLEN],\n
      \                                                char **buff, size_t *buff_size,
      Seq *lines,\n                                                 double *cf_this,
      Item **in, Item **out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/cf-monitord/mon_network.c:510,1
    - Dst: xmalloc
      Src: /src/core/cf-monitord/mon_network.c:513,1
    - Dst: GetNetworkDataFromProcNetTCP
      Src: /src/core/cf-monitord/mon_network.c:518,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/mon_network.c:522,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_network.c:523,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/mon_network.c:526,1
    - Dst: GetNetworkDataFromProcNetUDP
      Src: /src/core/cf-monitord/mon_network.c:527,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/mon_network.c:531,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_network.c:532,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/mon_network.c:535,1
    - Dst: GetNetworkDataFromProcNetTCP6
      Src: /src/core/cf-monitord/mon_network.c:541,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:545,1
    - Dst: SeqClear
      Src: /src/core/cf-monitord/mon_network.c:547,1
    - Dst: GetNetworkDataFromProcNetUDP6
      Src: /src/core/cf-monitord/mon_network.c:548,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:552,1
    - Dst: SeqDestroy
      Src: /src/core/cf-monitord/mon_network.c:556,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_network.c:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - cf_this
    - in
    - out
    argTypes:
    - double*
    - Item**
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 507
    functionDepth: 10
    functionLinenumber: 507
    functionLinenumberEnd: 559
    functionName: GetNetworkDataFromProcNet
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 1
    functionsReached:
    - SeqDestroy
    - GetNetworkDataFromProcNetUDP
    - GetNetworkDataFromProcNetTCP6
    - SeqNew
    - SeqClear
    - xmalloc
    - Log
    - free
    - GetNetworkDataFromProcNetTCP
    - GetNetworkDataFromProcNetUDP6
    linkageType: ''
    returnType: bool
    signature: bool GetNetworkDataFromProcNet(double *cf_this, Item **in, Item **out)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/cf-monitord/mon_network.c:568,1
    - Dst: CfReadLine
      Src: /src/core/cf-monitord/mon_network.c:574,1
    - Dst: feof
      Src: /src/core/cf-monitord/mon_network.c:577,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:579,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_network.c:582,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network.c:591,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network.c:596,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network.c:596,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network.c:605,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network.c:605,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network.c:611,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network.c:611,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network.c:617,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network.c:617,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network.c:623,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network.c:623,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network.c:632,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network.c:637,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network.c:642,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network.c:647,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network.c:657,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network.c:661,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_network.c:665,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_network.c:673,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network.c:682,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:686,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:693,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:696,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:699,1
    - Dst: IdempPrependItem
      Src: /src/core/cf-monitord/mon_network.c:702,1
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_network.c:712,1
    - Dst: isdigit
      Src: /src/core/cf-monitord/mon_network.c:712,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_network.c:723,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/mon_network.c:726,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_network.c:730,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/mon_network.c:733,1
    - Dst: free
      Src: /src/core/cf-monitord/mon_network.c:738,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 102
    argCount: 4
    argNames:
    - fp
    - cf_this
    - in
    - out
    argTypes:
    - FILE*
    - double*
    - Item**
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 562
    functionDepth: 8
    functionLinenumber: 562
    functionLinenumberEnd: 739
    functionName: GetNetworkDataFromNetstat
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 1
    functionsReached:
    - IdempPrependItem
    - AppendItem
    - strncmp
    - strlen
    - strstr
    - isdigit
    - feof
    - sscanf
    - xmalloc
    - Log
    - strcmp
    - free
    - CfReadLine
    linkageType: ''
    returnType: void
    signature: void GetNetworkDataFromNetstat(FILE *fp, double *cf_this, Item **in,
      Item **out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/mon_network.c:743,1
    - Dst: time
      Src: /src/core/cf-monitord/mon_network.c:749,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:751,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network.c:753,1
    - Dst: stat
      Src: /src/core/cf-monitord/mon_network.c:755,1
    - Dst: ItemListSize
      Src: /src/core/cf-monitord/mon_network.c:757,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:760,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:761,1
    - Dst: SetNetworkEntropyClasses
      Src: /src/core/cf-monitord/mon_network.c:766,1
    - Dst: CanonifyName
      Src: /src/core/cf-monitord/mon_network.c:766,1
    - Dst: SetUmask
      Src: /src/core/cf-monitord/mon_network.c:767,1
    - Dst: RawSaveItemList
      Src: /src/core/cf-monitord/mon_network.c:768,1
    - Dst: RestoreUmask
      Src: /src/core/cf-monitord/mon_network.c:769,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:770,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:771,1
    - Dst: time
      Src: /src/core/cf-monitord/mon_network.c:777,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:779,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network.c:780,1
    - Dst: stat
      Src: /src/core/cf-monitord/mon_network.c:782,1
    - Dst: ItemListSize
      Src: /src/core/cf-monitord/mon_network.c:784,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:787,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:788,1
    - Dst: SetNetworkEntropyClasses
      Src: /src/core/cf-monitord/mon_network.c:793,1
    - Dst: CanonifyName
      Src: /src/core/cf-monitord/mon_network.c:793,1
    - Dst: SetUmask
      Src: /src/core/cf-monitord/mon_network.c:794,1
    - Dst: RawSaveItemList
      Src: /src/core/cf-monitord/mon_network.c:795,1
    - Dst: RestoreUmask
      Src: /src/core/cf-monitord/mon_network.c:796,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network.c:797,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network.c:798,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Item**
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 741
    functionDepth: 9
    functionLinenumber: 741
    functionLinenumberEnd: 800
    functionName: SaveNetworkData
    functionSourceFile: /src/core/cf-monitord/mon_network.c
    functionUses: 1
    functionsReached:
    - stat
    - snprintf
    - SetUmask
    - ItemListSize
    - RawSaveItemList
    - SetNetworkEntropyClasses
    - RestoreUmask
    - GetStateDir
    - Log
    - DeleteItemList
    - CanonifyName
    - time
    linkageType: ''
    returnType: void
    signature: void SaveNetworkData(Item * const *in, Item * const *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Sniff
      Src: /src/core/cf-monitord/mon_network_sniffer.c:87,1
    - Dst: sleep
      Src: /src/core/cf-monitord/mon_network_sniffer.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ip_addresses
    - iteration
    - cf_this
    argTypes:
    - Item*
    - long
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: MonNetworkSnifferSniff
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 1
    functionsReached:
    - sleep
    - Sniff
    linkageType: ''
    returnType: void
    signature: void MonNetworkSnifferSniff(Item *ip_addresses, long iteration, double
      *cf_this)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:106,1
    - Dst: stat
      Src: /src/core/cf-monitord/mon_network_sniffer.c:108,1
    - Dst: cf_popen
      Src: /src/core/cf-monitord/mon_network_sniffer.c:110,1
    - Dst: fgets
      Src: /src/core/cf-monitord/mon_network_sniffer.c:116,1
    - Dst: UnexpectedError
      Src: /src/core/cf-monitord/mon_network_sniffer.c:118,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/mon_network_sniffer.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 97
    functionDepth: 11
    functionLinenumber: 97
    functionLinenumberEnd: 129
    functionName: MonNetworkSnifferOpen
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 1
    functionsReached:
    - stat
    - fgets
    - cf_popen
    - UnexpectedError
    - sscanf
    - cf_pclose
    linkageType: ''
    returnType: void
    signature: void MonNetworkSnifferOpen(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 8
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: MonNetworkSnifferEnable
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 2
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void MonNetworkSnifferEnable(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/core/cf-monitord/mon_network_sniffer.c:143,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - signum
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 8
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: CfenvTimeOut
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 0
    functionsReached:
    - alarm
    - Log
    linkageType: ''
    returnType: void
    signature: void CfenvTimeOut(ARG_UNUSED int signum)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:154,1
    - Dst: memset
      Src: /src/core/cf-monitord/mon_network_sniffer.c:155,1
    - Dst: signal
      Src: /src/core/cf-monitord/mon_network_sniffer.c:156,1
    - Dst: alarm
      Src: /src/core/cf-monitord/mon_network_sniffer.c:157,1
    - Dst: feof
      Src: /src/core/cf-monitord/mon_network_sniffer.c:160,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-monitord/mon_network_sniffer.c:160,1
    - Dst: fgets
      Src: /src/core/cf-monitord/mon_network_sniffer.c:167,1
    - Dst: UnexpectedError
      Src: /src/core/cf-monitord/mon_network_sniffer.c:169,1
    - Dst: cf_pclose
      Src: /src/core/cf-monitord/mon_network_sniffer.c:170,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:181,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:183,1
    - Dst: alarm
      Src: /src/core/cf-monitord/mon_network_sniffer.c:184,1
    - Dst: AnalyzeArrival
      Src: /src/core/cf-monitord/mon_network_sniffer.c:189,1
    - Dst: signal
      Src: /src/core/cf-monitord/mon_network_sniffer.c:192,1
    - Dst: fflush
      Src: /src/core/cf-monitord/mon_network_sniffer.c:194,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - ip_addresses
    - iteration
    - cf_this
    argTypes:
    - Item*
    - long
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 150
    functionDepth: 10
    functionLinenumber: 150
    functionLinenumberEnd: 195
    functionName: Sniff
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 2
    functionsReached:
    - fflush
    - fgets
    - strstr
    - alarm
    - UnexpectedError
    - feof
    - IsPendingTermination
    - AnalyzeArrival
    - cf_pclose
    - Log
    - signal
    - memset
    linkageType: ''
    returnType: void
    signature: void Sniff(Item *ip_addresses, long iteration, double *cf_this)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsItemIn
      Src: /src/core/cf-monitord/mon_network_sniffer.c:201,1
    - Dst: AppendItem
      Src: /src/core/cf-monitord/mon_network_sniffer.c:203,1
    - Dst: IncrementItemListCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - name
    argTypes:
    - Item**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: IncrementCounter
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - IsItemIn
    - IncrementItemListCounter
    linkageType: ''
    returnType: void
    signature: void IncrementCounter(Item **list, char *name)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:220,1
    - Dst: Chop
      Src: /src/core/cf-monitord/mon_network_sniffer.c:225,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:227,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:244,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:256,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:256,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:258,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:259,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:260,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:261,1
    - Dst: DePort
      Src: /src/core/cf-monitord/mon_network_sniffer.c:262,1
    - Dst: DePort
      Src: /src/core/cf-monitord/mon_network_sniffer.c:263,1
    - Dst: IsInterfaceAddress
      Src: /src/core/cf-monitord/mon_network_sniffer.c:264,1
    - Dst: IsInterfaceAddress
      Src: /src/core/cf-monitord/mon_network_sniffer.c:265,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:270,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:274,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:279,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:284,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:288,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:293,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:298,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:303,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:308,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:313,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:315,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:316,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:317,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:318,1
    - Dst: DePort
      Src: /src/core/cf-monitord/mon_network_sniffer.c:319,1
    - Dst: DePort
      Src: /src/core/cf-monitord/mon_network_sniffer.c:320,1
    - Dst: IsInterfaceAddress
      Src: /src/core/cf-monitord/mon_network_sniffer.c:321,1
    - Dst: IsInterfaceAddress
      Src: /src/core/cf-monitord/mon_network_sniffer.c:322,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:324,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:328,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:333,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:336,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:338,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:339,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:340,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:341,1
    - Dst: DePort
      Src: /src/core/cf-monitord/mon_network_sniffer.c:342,1
    - Dst: DePort
      Src: /src/core/cf-monitord/mon_network_sniffer.c:343,1
    - Dst: IsInterfaceAddress
      Src: /src/core/cf-monitord/mon_network_sniffer.c:344,1
    - Dst: IsInterfaceAddress
      Src: /src/core/cf-monitord/mon_network_sniffer.c:345,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:347,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:351,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:356,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:359,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:361,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:362,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:363,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:364,1
    - Dst: DePort
      Src: /src/core/cf-monitord/mon_network_sniffer.c:365,1
    - Dst: DePort
      Src: /src/core/cf-monitord/mon_network_sniffer.c:366,1
    - Dst: IsInterfaceAddress
      Src: /src/core/cf-monitord/mon_network_sniffer.c:367,1
    - Dst: IsInterfaceAddress
      Src: /src/core/cf-monitord/mon_network_sniffer.c:368,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:370,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:375,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:380,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:385,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:390,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:391,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:392,1
    - Dst: isdigit
      Src: /src/core/cf-monitord/mon_network_sniffer.c:394,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:396,1
    - Dst: DePort
      Src: /src/core/cf-monitord/mon_network_sniffer.c:400,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:402,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:404,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:405,1
    - Dst: strstr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:407,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:409,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:410,1
    - Dst: nt_static_assert
      Src: /src/core/cf-monitord/mon_network_sniffer.c:414,1
    - Dst: strncpy
      Src: /src/core/cf-monitord/mon_network_sniffer.c:415,1
    - Dst: IncrementCounter
      Src: /src/core/cf-monitord/mon_network_sniffer.c:418,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 141
    argCount: 4
    argNames:
    - ip_addresses
    - iteration
    - arrival
    - cf_this
    argTypes:
    - Item*
    - long
    - char*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 211
    functionDepth: 9
    functionLinenumber: 211
    functionLinenumberEnd: 420
    functionName: AnalyzeArrival
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 1
    functionsReached:
    - nt_static_assert
    - snprintf
    - strncpy
    - strstr
    - isdigit
    - sscanf
    - Log
    - DePort
    - Chop
    - IncrementCounter
    - IsInterfaceAddress
    linkageType: ''
    returnType: void
    signature: void AnalyzeArrival(Item *ip_addresses, long iteration, char *arrival,
      double *cf_this)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:429,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:433,1
    - Dst: strncmp
      Src: /src/core/cf-monitord/mon_network_sniffer.c:437,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:439,1
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/mon_network_sniffer.c:439,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:443,1
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/mon_network_sniffer.c:443,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:446,1
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/mon_network_sniffer.c:448,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:451,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_network_sniffer.c:451,1
    - Dst: fprintf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:457,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_network_sniffer.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - list
    - i
    - inout
    argTypes:
    - Item*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 424
    functionDepth: 8
    functionLinenumber: 424
    functionLinenumberEnd: 461
    functionName: SaveTCPEntropyData
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - strncmp
    - snprintf
    - GetStateDir
    - safe_fopen
    - Log
    - fclose
    - fprintf
    linkageType: ''
    returnType: void
    signature: void SaveTCPEntropyData(Item *list, int i, char *inout)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetStateDir
      Src: /src/core/cf-monitord/mon_network_sniffer.c:470,1
    - Dst: time
      Src: /src/core/cf-monitord/mon_network_sniffer.c:476,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:478,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:479,1
    - Dst: stat
      Src: /src/core/cf-monitord/mon_network_sniffer.c:481,1
    - Dst: ItemListSize
      Src: /src/core/cf-monitord/mon_network_sniffer.c:483,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:486,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network_sniffer.c:487,1
    - Dst: SaveTCPEntropyData
      Src: /src/core/cf-monitord/mon_network_sniffer.c:493,1
    - Dst: MonEntropyCalculate
      Src: /src/core/cf-monitord/mon_network_sniffer.c:495,1
    - Dst: MonEntropyClassesSet
      Src: /src/core/cf-monitord/mon_network_sniffer.c:496,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network_sniffer.c:497,1
    - Dst: time
      Src: /src/core/cf-monitord/mon_network_sniffer.c:505,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:507,1
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_network_sniffer.c:508,1
    - Dst: stat
      Src: /src/core/cf-monitord/mon_network_sniffer.c:510,1
    - Dst: ItemListSize
      Src: /src/core/cf-monitord/mon_network_sniffer.c:512,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_network_sniffer.c:515,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network_sniffer.c:516,1
    - Dst: SaveTCPEntropyData
      Src: /src/core/cf-monitord/mon_network_sniffer.c:522,1
    - Dst: MonEntropyCalculate
      Src: /src/core/cf-monitord/mon_network_sniffer.c:524,1
    - Dst: MonEntropyClassesSet
      Src: /src/core/cf-monitord/mon_network_sniffer.c:525,1
    - Dst: DeleteItemList
      Src: /src/core/cf-monitord/mon_network_sniffer.c:526,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 465
    functionDepth: 9
    functionLinenumber: 465
    functionLinenumberEnd: 529
    functionName: MonNetworkSnifferGatherData
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 1
    functionsReached:
    - stat
    - MonEntropyClassesSet
    - snprintf
    - MonEntropyCalculate
    - ItemListSize
    - GetStateDir
    - Log
    - DeleteItemList
    - SaveTCPEntropyData
    - time
    linkageType: ''
    returnType: void
    signature: void MonNetworkSnifferGatherData(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-monitord/mon_network_sniffer.c:586,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - address
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 592
    functionName: DePort
    functionSourceFile: /src/core/cf-monitord/mon_network_sniffer.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void DePort(char *address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/cf-monitord/mon_io_linux.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: SysfsizeDeviceName
    functionSourceFile: /src/core/cf-monitord/mon_io_linux.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: void
    signature: void SysfsizeDeviceName(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_io_linux.c:55,1
    - Dst: safe_fopen
      Src: /src/core/cf-monitord/mon_io_linux.c:61,1
    - Dst: fscanf
      Src: /src/core/cf-monitord/mon_io_linux.c:71,1
    - Dst: ferror
      Src: /src/core/cf-monitord/mon_io_linux.c:73,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_io_linux.c:75,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_io_linux.c:76,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_io_linux.c:80,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_io_linux.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - sysfsname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 50
    functionDepth: 8
    functionLinenumber: 50
    functionLinenumberEnd: 87
    functionName: DiskSectorSize
    functionSourceFile: /src/core/cf-monitord/mon_io_linux.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fscanf
    - snprintf
    - safe_fopen
    - Log
    - fclose
    - ferror
    linkageType: ''
    returnType: int
    signature: int DiskSectorSize(const char *sysfsname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_io_linux.c:93,1
    - Dst: access
      Src: /src/core/cf-monitord/mon_io_linux.c:99,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_io_linux.c:106,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_io_linux.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - sysfsname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 8
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: IsPartition
    functionSourceFile: /src/core/cf-monitord/mon_io_linux.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - access
    - Log
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool IsPartition(const char *sysfsname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-monitord/mon_io_linux.c:120,1
    - Dst: opendir
      Src: /src/core/cf-monitord/mon_io_linux.c:126,1
    - Dst: readdir
      Src: /src/core/cf-monitord/mon_io_linux.c:133,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_io_linux.c:135,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/mon_io_linux.c:135,1
    - Dst: closedir
      Src: /src/core/cf-monitord/mon_io_linux.c:138,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_io_linux.c:145,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_io_linux.c:146,1
    - Dst: closedir
      Src: /src/core/cf-monitord/mon_io_linux.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - sysfsname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 113
    functionDepth: 8
    functionLinenumber: 113
    functionLinenumberEnd: 151
    functionName: IsStackedDevice
    functionSourceFile: /src/core/cf-monitord/mon_io_linux.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - closedir
    - readdir
    - snprintf
    - opendir
    - Log
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool IsStackedDevice(const char *sysfsname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsPartition
      Src: /src/core/cf-monitord/mon_io_linux.c:155,1
    - Dst: IsStackedDevice
      Src: /src/core/cf-monitord/mon_io_linux.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sysfsname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 9
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: IsPhysicalDevice
    functionSourceFile: /src/core/cf-monitord/mon_io_linux.c
    functionUses: 0
    functionsReached:
    - IsPartition
    - IsStackedDevice
    linkageType: ''
    returnType: bool
    signature: bool IsPhysicalDevice(const char *sysfsname)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-monitord/mon_io_linux.c:164,1
    - Dst: fopen
      Src: /src/core/cf-monitord/mon_io_linux.c:169,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_io_linux.c:171,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_io_linux.c:171,1
    - Dst: fgets
      Src: /src/core/cf-monitord/mon_io_linux.c:177,1
    - Dst: strchr
      Src: /src/core/cf-monitord/mon_io_linux.c:182,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_io_linux.c:184,1
    - Dst: TO_STRING
      Src: /src/core/cf-monitord/mon_io_linux.c:185,1
    - Dst: StripTrailingNewline
      Src: /src/core/cf-monitord/mon_io_linux.c:189,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_io_linux.c:191,1
    - Dst: sscanf
      Src: /src/core/cf-monitord/mon_io_linux.c:195,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_io_linux.c:198,1
    - Dst: SysfsizeDeviceName
      Src: /src/core/cf-monitord/mon_io_linux.c:202,1
    - Dst: IsPhysicalDevice
      Src: /src/core/cf-monitord/mon_io_linux.c:210,1
    - Dst: GetInstantUint32Value
      Src: /src/core/cf-monitord/mon_io_linux.c:215,1
    - Dst: GetInstantUint32Value
      Src: /src/core/cf-monitord/mon_io_linux.c:216,1
    - Dst: GetInstantUint32Value
      Src: /src/core/cf-monitord/mon_io_linux.c:217,1
    - Dst: GetInstantUint32Value
      Src: /src/core/cf-monitord/mon_io_linux.c:218,1
    - Dst: DiskSectorSize
      Src: /src/core/cf-monitord/mon_io_linux.c:222,1
    - Dst: ferror
      Src: /src/core/cf-monitord/mon_io_linux.c:231,1
    - Dst: Log
      Src: /src/core/cf-monitord/mon_io_linux.c:233,1
    - Dst: GetErrorStr
      Src: /src/core/cf-monitord/mon_io_linux.c:233,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_io_linux.c:238,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_io_linux.c:240,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_io_linux.c:242,1
    - Dst: NovaRegisterSlot
      Src: /src/core/cf-monitord/mon_io_linux.c:244,1
    - Dst: fclose
      Src: /src/core/cf-monitord/mon_io_linux.c:265,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 160
    functionDepth: 13
    functionLinenumber: 160
    functionLinenumberEnd: 266
    functionName: MonIoDiskstatsGatherData
    functionSourceFile: /src/core/cf-monitord/mon_io_linux.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fgets
    - fopen
    - StripTrailingNewline
    - GetInstantUint32Value
    - sscanf
    - strchr
    - DiskSectorSize
    - Log
    - TO_STRING
    - IsPhysicalDevice
    - fclose
    - SysfsizeDeviceName
    - NovaRegisterSlot
    - ferror
    - time
    linkageType: ''
    returnType: void
    signature: void MonIoDiskstatsGatherData(double *cf_this)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cf_this
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: MonIoPartitionsGatherData
    functionSourceFile: /src/core/cf-monitord/mon_io_linux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MonIoPartitionsGatherData(ARG_UNUSED double *cf_this)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/core/cf-monitord/mon_io_linux.c:279,1
    - Dst: access
      Src: /src/core/cf-monitord/mon_io_linux.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - name
    - error
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 297
    functionName: MonIoInit
    functionSourceFile: /src/core/cf-monitord/mon_io_linux.c
    functionUses: 0
    functionsReached:
    - access
    linkageType: ''
    returnType: ProbeGatherData
    signature: ProbeGatherData MonIoInit(const char **name, const char **error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - error
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: MonIoInit
    functionSourceFile: /src/core/cf-monitord/mon_io_stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ProbeGatherData
    signature: ProbeGatherData MonIoInit(const char **name, const char **error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBanner
      Src: /src/core/cf-monitord/verify_measurements.c:44,1
    - Dst: GetMeasurementAttributes
      Src: /src/core/cf-monitord/verify_measurements.c:46,1
    - Dst: CheckMeasureSanity
      Src: /src/core/cf-monitord/verify_measurements.c:48,1
    - Dst: cfPS
      Src: /src/core/cf-monitord/verify_measurements.c:50,1
    - Dst: VerifyMeasurement
      Src: /src/core/cf-monitord/verify_measurements.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - measurement
    - pp
    argTypes:
    - EvalContext*
    - double*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 16
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: VerifyMeasurementPromise
    functionSourceFile: /src/core/cf-monitord/verify_measurements.c
    functionUses: 1
    functionsReached:
    - PromiseBanner
    - cfPS
    - CheckMeasureSanity
    - GetMeasurementAttributes
    - VerifyMeasurement
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyMeasurementPromise(EvalContext *ctx, double *measurement,
      const Promise *pp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: IsAbsPath
      Src: /src/core/cf-monitord/verify_measurements.c:63,1
    - Dst: Log
      Src: /src/core/cf-monitord/verify_measurements.c:65,1
    - Dst: PromiseRef
      Src: /src/core/cf-monitord/verify_measurements.c:67,1
    - Dst: Log
      Src: /src/core/cf-monitord/verify_measurements.c:73,1
    - Dst: PromiseRef
      Src: /src/core/cf-monitord/verify_measurements.c:74,1
    - Dst: strcmp
      Src: /src/core/cf-monitord/verify_measurements.c:79,1
    - Dst: Log
      Src: /src/core/cf-monitord/verify_measurements.c:90,1
    - Dst: PromiseRef
      Src: /src/core/cf-monitord/verify_measurements.c:91,1
    - Dst: Log
      Src: /src/core/cf-monitord/verify_measurements.c:100,1
    - Dst: PromiseRef
      Src: /src/core/cf-monitord/verify_measurements.c:101,1
    - Dst: Log
      Src: /src/core/cf-monitord/verify_measurements.c:107,1
    - Dst: strchr
      Src: /src/core/cf-monitord/verify_measurements.c:111,1
    - Dst: strchr
      Src: /src/core/cf-monitord/verify_measurements.c:111,1
    - Dst: Log
      Src: /src/core/cf-monitord/verify_measurements.c:113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - m
    - pp
    argTypes:
    - Measurement
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 59
    functionDepth: 9
    functionLinenumber: 59
    functionLinenumberEnd: 119
    functionName: CheckMeasureSanity
    functionSourceFile: /src/core/cf-monitord/verify_measurements.c
    functionUses: 1
    functionsReached:
    - IsAbsPath
    - PromiseRef
    - strchr
    - Log
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool CheckMeasureSanity(Measurement m, const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - f1
    - f2
    argTypes:
    - ConnectionFlags*
    - ConnectionFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: ConnectionFlagsEqual
    functionSourceFile: /src/core/libcfnet/cfnet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool ConnectionFlagsEqual(const ConnectionFlags *f1,\n                                        const
      ConnectionFlags *f2)"
  - 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: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: SET_DEFAULT_TLS_TIMEOUT
    functionSourceFile: /src/core/libcfnet/cfnet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DEFAULT_TLS_TIMEOUT(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libcfnet/protocol_version.c:8,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 16
    functionName: ParseProtocolVersionNetwork
    functionSourceFile: /src/core/libcfnet/protocol_version.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: ProtocolVersion
    signature: ProtocolVersion ParseProtocolVersionNetwork(const char *const s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:20,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:20,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:24,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:24,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:28,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:28,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:32,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:32,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:36,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:36,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:40,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:40,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/protocol_version.c:44,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 52
    functionName: ParseProtocolVersionPolicy
    functionSourceFile: /src/core/libcfnet/protocol_version.c
    functionUses: 2
    functionsReached:
    - StringEqual
    linkageType: ''
    returnType: ProtocolVersion
    signature: ProtocolVersion ParseProtocolVersionPolicy(const char *const s)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: ProtocolVersionString
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ProtocolVersionString(const ProtocolVersion p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: ProtocolIsKnown
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ProtocolIsKnown(const ProtocolVersion p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: ProtocolIsTLS
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ProtocolIsTLS(const ProtocolVersion p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: ProtocolIsTooNew
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ProtocolIsTooNew(const ProtocolVersion p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: ProtocolIsUndefined
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ProtocolIsUndefined(const ProtocolVersion p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: ProtocolIsClassic
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ProtocolIsClassic(const ProtocolVersion p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: ProtocolSupportsFileStream
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ProtocolSupportsFileStream(const ProtocolVersion p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: ProtocolSupportsLeech2
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ProtocolSupportsLeech2(const ProtocolVersion p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: ProtocolTerminateCSV
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ProtocolTerminateCSV(const ProtocolVersion p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ProtocolIsTLS
      Src: /src/core/libcfnet/protocol_version.h:115,1
    - Dst: ProtocolIsClassic
      Src: /src/core/libcfnet/protocol_version.h:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: ProtocolClassicOrTLS
    functionSourceFile: /src/core/libcfnet/protocol_version.h
    functionUses: 0
    functionsReached:
    - ProtocolIsClassic
    - ProtocolIsTLS
    linkageType: ''
    returnType: ProtocolVersion
    signature: ProtocolVersion ProtocolClassicOrTLS(const ProtocolVersion p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/core/libcfnet/tls_generic.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: TLSErrorString
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - ERR_reason_error_string
    linkageType: ''
    returnType: char
    signature: char *TLSErrorString(intmax_t errcode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/core/libcfnet/tls_generic.c:104,1
    - Dst: SSL_load_error_strings
      Src: /src/core/libcfnet/tls_generic.c:105,1
    - Dst: SSL_get_ex_new_index
      Src: /src/core/libcfnet/tls_generic.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: TLSGenericInitialize
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - SSL_library_init
    - SSL_get_ex_new_index
    - SSL_load_error_strings
    linkageType: ''
    returnType: bool
    signature: bool TLSGenericInitialize()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_pubkey
      Src: /src/core/libcfnet/tls_generic.c:126,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:129,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:130,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:130,1
    - Dst: EVP_PKEY_base_id
      Src: /src/core/libcfnet/tls_generic.c:133,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:135,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/core/libcfnet/tls_generic.c:140,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:143,1
    - Dst: EVP_PKEY_new
      Src: /src/core/libcfnet/tls_generic.c:147,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:150,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/core/libcfnet/tls_generic.c:154,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:157,1
    - Dst: EVP_PKEY_cmp
      Src: /src/core/libcfnet/tls_generic.c:161,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:164,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:170,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:176,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:177,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:177,1
    - Dst: EVP_PKEY_free
      Src: /src/core/libcfnet/tls_generic.c:181,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/tls_generic.c:183,1
    - Dst: EVP_PKEY_free
      Src: /src/core/libcfnet/tls_generic.c:185,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - cert
    - rsa_key
    argTypes:
    - X509*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 121
    functionDepth: 8
    functionLinenumber: 121
    functionLinenumberEnd: 189
    functionName: CompareCertToRSA
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - TLSErrorString
    - EVP_PKEY_free
    - EVP_PKEY_get1_RSA
    - EVP_PKEY_cmp
    - EVP_PKEY_new
    - Log
    - RSA_free
    - X509_get_pubkey
    - ERR_get_error
    - EVP_PKEY_set1_RSA
    - EVP_PKEY_base_id
    linkageType: ''
    returnType: int
    signature: int CompareCertToRSA(X509 *cert, RSA *rsa_key)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/core/libcfnet/tls_generic.c:206,1
    - Dst: X509_STORE_CTX_get_ex_data
      Src: /src/core/libcfnet/tls_generic.c:207,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/tls_generic.c:210,1
    - Dst: SSL_get_ex_data
      Src: /src/core/libcfnet/tls_generic.c:215,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/tls_generic.c:218,1
    - Dst: KeyRSA
      Src: /src/core/libcfnet/tls_generic.c:223,1
    - Dst: SSL_get_peer_certificate
      Src: /src/core/libcfnet/tls_generic.c:225,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:229,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:232,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:233,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/tls_generic.c:239,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:247,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:248,1
    - Dst: X509_free
      Src: /src/core/libcfnet/tls_generic.c:250,1
    - Dst: CompareCertToRSA
      Src: /src/core/libcfnet/tls_generic.c:256,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/tls_generic.c:259,1
    - Dst: X509_free
      Src: /src/core/libcfnet/tls_generic.c:260,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:270,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:271,1
    - Dst: X509_free
      Src: /src/core/libcfnet/tls_generic.c:275,1
    - Dst: STACK_OF
      Src: /src/core/libcfnet/tls_generic.c:281,1
    - Dst: X509_STORE_CTX_get_chain
      Src: /src/core/libcfnet/tls_generic.c:281,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:284,1
    - Dst: sk_X509_num
      Src: /src/core/libcfnet/tls_generic.c:289,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:292,1
    - Dst: sk_X509_value
      Src: /src/core/libcfnet/tls_generic.c:297,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/tls_generic.c:300,1
    - Dst: CompareCertToRSA
      Src: /src/core/libcfnet/tls_generic.c:304,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:306,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:311,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 2
    argNames:
    - store_ctx
    - ARG_UNUSED
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts:
    - condition: (already_negotiated_key != NULL)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/core/libcfnet/tls_generic.c
    - condition: (previous_tls_cert != NULL)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/core/libcfnet/tls_generic.c
    constantsTouched: []
    func_position:
      end: 314
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 314
    functionName: TLSVerifyCallback
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - KeyRSA
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - X509_free
    - CompareCertToRSA
    - assert
    - STACK_OF
    - UnexpectedError
    - X509_STORE_CTX_get_chain
    - Log
    - sk_X509_num
    - sk_X509_value
    - X509_STORE_CTX_get_ex_data
    - SSL_get_ex_data
    - SSL_get_peer_certificate
    linkageType: ''
    returnType: int
    signature: "int TLSVerifyCallback(X509_STORE_CTX *store_ctx,\n                      void
      *arg ARG_UNUSED)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_peer_certificate
      Src: /src/core/libcfnet/tls_generic.c:329,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:332,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:334,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:334,1
    - Dst: X509_get_pubkey
      Src: /src/core/libcfnet/tls_generic.c:339,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:342,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:343,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:343,1
    - Dst: EVP_PKEY_base_id
      Src: /src/core/libcfnet/tls_generic.c:347,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:349,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/core/libcfnet/tls_generic.c:355,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:358,1
    - Dst: KeyNew
      Src: /src/core/libcfnet/tls_generic.c:363,1
    - Dst: KeyPrintableHash
      Src: /src/core/libcfnet/tls_generic.c:369,1
    - Dst: HavePublicKey
      Src: /src/core/libcfnet/tls_generic.c:370,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:375,1
    - Dst: EVP_PKEY_new
      Src: /src/core/libcfnet/tls_generic.c:381,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:384,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/core/libcfnet/tls_generic.c:389,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:392,1
    - Dst: EVP_PKEY_cmp
      Src: /src/core/libcfnet/tls_generic.c:397,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:400,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:407,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:415,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:416,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:416,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/tls_generic.c:421,1
    - Dst: EVP_PKEY_free
      Src: /src/core/libcfnet/tls_generic.c:425,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/tls_generic.c:427,1
    - Dst: KeyDestroy
      Src: /src/core/libcfnet/tls_generic.c:432,1
    - Dst: EVP_PKEY_free
      Src: /src/core/libcfnet/tls_generic.c:436,1
    - Dst: X509_free
      Src: /src/core/libcfnet/tls_generic.c:438,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 86
    argCount: 3
    argNames:
    - conn_info
    - remoteip
    - username
    argTypes:
    - ConnectionInfo*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 325
    functionDepth: 9
    functionLinenumber: 325
    functionLinenumberEnd: 441
    functionName: TLSVerifyPeer
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - TLSErrorString
    - X509_free
    - EVP_PKEY_free
    - KeyDestroy
    - EVP_PKEY_get1_RSA
    - HavePublicKey
    - EVP_PKEY_cmp
    - KeyPrintableHash
    - EVP_PKEY_new
    - UnexpectedError
    - Log
    - RSA_free
    - X509_get_pubkey
    - ERR_get_error
    - EVP_PKEY_set1_RSA
    - KeyNew
    - EVP_PKEY_base_id
    - SSL_get_peer_certificate
    linkageType: ''
    returnType: int
    signature: int TLSVerifyPeer(ConnectionInfo *conn_info, const char *remoteip,
      const char *username)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/core/libcfnet/tls_generic.c:450,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:453,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:454,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:454,1
    - Dst: X509_gmtime_adj
      Src: /src/core/libcfnet/tls_generic.c:458,1
    - Dst: X509_get_notBefore
      Src: /src/core/libcfnet/tls_generic.c:458,1
    - Dst: X509_gmtime_adj
      Src: /src/core/libcfnet/tls_generic.c:459,1
    - Dst: X509_get_notAfter
      Src: /src/core/libcfnet/tls_generic.c:459,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:462,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:463,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:463,1
    - Dst: EVP_PKEY_new
      Src: /src/core/libcfnet/tls_generic.c:467,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:470,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:471,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:471,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/core/libcfnet/tls_generic.c:475,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:478,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:479,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:479,1
    - Dst: X509_get_subject_name
      Src: /src/core/libcfnet/tls_generic.c:483,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:486,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:487,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:487,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/core/libcfnet/tls_generic.c:492,1
    - Dst: X509_set_issuer_name
      Src: /src/core/libcfnet/tls_generic.c:495,1
    - Dst: X509_set_pubkey
      Src: /src/core/libcfnet/tls_generic.c:496,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:499,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:500,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:500,1
    - Dst: EVP_get_digestbyname
      Src: /src/core/libcfnet/tls_generic.c:504,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:507,1
    - Dst: getenv
      Src: /src/core/libcfnet/tls_generic.c:512,1
    - Dst: RSA_blinding_off
      Src: /src/core/libcfnet/tls_generic.c:514,1
    - Dst: X509_sign
      Src: /src/core/libcfnet/tls_generic.c:519,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:523,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_generic.c:524,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:524,1
    - Dst: EVP_PKEY_free
      Src: /src/core/libcfnet/tls_generic.c:528,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:530,1
    - Dst: EVP_PKEY_free
      Src: /src/core/libcfnet/tls_generic.c:535,1
    - Dst: X509_free
      Src: /src/core/libcfnet/tls_generic.c:537,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 1
    argNames:
    - privkey
    argTypes:
    - RSA*
    assertStmts:
    - condition: (x509 != NULL)
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/core/libcfnet/tls_generic.c
    constantsTouched: []
    func_position:
      end: 540
      start: 447
    functionDepth: 8
    functionLinenumber: 447
    functionLinenumberEnd: 540
    functionName: TLSGenerateCertFromPrivKey
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - X509_new
    - getenv
    - Log
    - X509_sign
    - X509_set_pubkey
    - X509_gmtime_adj
    - EVP_PKEY_set1_RSA
    - X509_get_notBefore
    - assert
    - RSA_blinding_off
    - ERR_get_error
    - TLSErrorString
    - X509_get_subject_name
    - X509_set_issuer_name
    - EVP_PKEY_free
    - X509_free
    - EVP_PKEY_new
    - X509_get_notAfter
    - X509_NAME_add_entry_by_txt
    - EVP_get_digestbyname
    linkageType: ''
    returnType: X509
    signature: X509 *TLSGenerateCertFromPrivKey(RSA *privkey)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 566
    functionName: TLSPrimarySSLError
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *TLSPrimarySSLError(int code)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:579,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/tls_generic.c:582,1
    - Dst: SSL_get_error
      Src: /src/core/libcfnet/tls_generic.c:583,1
    - Dst: TLSPrimarySSLError
      Src: /src/core/libcfnet/tls_generic.c:584,1
    - Dst: ERR_reason_error_string
      Src: /src/core/libcfnet/tls_generic.c:587,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_generic.c:587,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:596,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:600,1
    - Dst: SSL_get_shutdown
      Src: /src/core/libcfnet/tls_generic.c:608,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:610,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:616,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:621,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:626,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - ssl
    - level
    - prepend
    - retcode
    argTypes:
    - SSL*
    - LogLevel
    - char*
    - int
    assertStmts:
    - condition: (prepend != NULL)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/core/libcfnet/tls_generic.c
    constantsTouched: []
    func_position:
      end: 633
      start: 577
    functionDepth: 8
    functionLinenumber: 577
    functionLinenumberEnd: 633
    functionName: TLSLogError
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ERR_reason_error_string
    - SSL_get_shutdown
    - assert
    - Log
    - TLSPrimarySSLError
    - SSL_get_error
    - ERR_get_error
    linkageType: ''
    returnType: int
    signature: int TLSLogError(SSL *ssl, LogLevel level, const char *prepend, int
      retcode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_fd
      Src: /src/core/libcfnet/tls_generic.c:638,1
    - Dst: fcntl
      Src: /src/core/libcfnet/tls_generic.c:641,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/tls_generic.c:644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 650
    functionName: assert_SSLIsBlocking
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - fcntl
    - SSL_get_fd
    - ProgrammingError
    linkageType: ''
    returnType: void
    signature: void assert_SSLIsBlocking(const SSL *ssl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:671,1
    - Dst: assert_SSLIsBlocking
      Src: /src/core/libcfnet/tls_generic.c:672,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/tls_generic.c:676,1
    - Dst: EnforceBwLimit
      Src: /src/core/libcfnet/tls_generic.c:680,1
    - Dst: SSL_write
      Src: /src/core/libcfnet/tls_generic.c:687,1
    - Dst: SSL_get_shutdown
      Src: /src/core/libcfnet/tls_generic.c:690,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:692,1
    - Dst: TLSLogError
      Src: /src/core/libcfnet/tls_generic.c:698,1
    - Dst: sleep
      Src: /src/core/libcfnet/tls_generic.c:706,1
    - Dst: TLSLogError
      Src: /src/core/libcfnet/tls_generic.c:712,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - ssl
    - buffer
    - length
    argTypes:
    - SSL*
    - char*
    - int
    assertStmts:
    - condition: (length >= 0)
      pos:
        line_end: 670
        line_start: 670
        source_file: /src/core/libcfnet/tls_generic.c
    constantsTouched: []
    func_position:
      end: 717
      start: 669
    functionDepth: 9
    functionLinenumber: 669
    functionLinenumberEnd: 717
    functionName: TLSSend
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - SSL_get_shutdown
    - assert
    - sleep
    - assert_SSLIsBlocking
    - UnexpectedError
    - EnforceBwLimit
    - SSL_write
    - Log
    - TLSLogError
    linkageType: ''
    returnType: int
    signature: int TLSSend(SSL *ssl, const char *buffer, int length)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:739,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:740,1
    - Dst: assert_SSLIsBlocking
      Src: /src/core/libcfnet/tls_generic.c:741,1
    - Dst: SSL_read
      Src: /src/core/libcfnet/tls_generic.c:748,1
    - Dst: TLSLogError
      Src: /src/core/libcfnet/tls_generic.c:751,1
    - Dst: sleep
      Src: /src/core/libcfnet/tls_generic.c:762,1
    - Dst: TLSLogError
      Src: /src/core/libcfnet/tls_generic.c:769,1
    - Dst: SSL_shutdown
      Src: /src/core/libcfnet/tls_generic.c:775,1
    - Dst: shutdown
      Src: /src/core/libcfnet/tls_generic.c:776,1
    - Dst: SSL_get_fd
      Src: /src/core/libcfnet/tls_generic.c:776,1
    - Dst: SSL_pending
      Src: /src/core/libcfnet/tls_generic.c:780,1
    - Dst: SSL_read
      Src: /src/core/libcfnet/tls_generic.c:784,1
    - Dst: SSL_get_shutdown
      Src: /src/core/libcfnet/tls_generic.c:793,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:795,1
    - Dst: TLSLogError
      Src: /src/core/libcfnet/tls_generic.c:800,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:806,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - ssl
    - buffer
    - toget
    argTypes:
    - SSL*
    - char*
    - int
    assertStmts:
    - condition: (toget > 0)
      pos:
        line_end: 738
        line_start: 738
        source_file: /src/core/libcfnet/tls_generic.c
    - condition: (toget < CF_BUFSIZE)
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/core/libcfnet/tls_generic.c
    - condition: (received < CF_BUFSIZE)
      pos:
        line_end: 805
        line_start: 805
        source_file: /src/core/libcfnet/tls_generic.c
    constantsTouched: []
    func_position:
      end: 810
      start: 737
    functionDepth: 9
    functionLinenumber: 737
    functionLinenumberEnd: 810
    functionName: TLSRecv
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - SSL_shutdown
    - SSL_pending
    - SSL_get_shutdown
    - SSL_read
    - assert
    - sleep
    - assert_SSLIsBlocking
    - SSL_get_fd
    - Log
    - shutdown
    - TLSLogError
    linkageType: ''
    returnType: int
    signature: int TLSRecv(SSL *ssl, char *buffer, int toget)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TLSRecv
      Src: /src/core/libcfnet/tls_generic.c:834,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:837,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:844,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:851,1
    - Dst: LogRaw
      Src: /src/core/libcfnet/tls_generic.c:857,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - ssl
    - buf
    - buf_size
    argTypes:
    - SSL*
    - char*
    - size_t
    assertStmts:
    - condition: (got <= buf_size)
      pos:
        line_end: 843
        line_start: 843
        source_file: /src/core/libcfnet/tls_generic.c
    constantsTouched: []
    func_position:
      end: 860
      start: 824
    functionDepth: 10
    functionLinenumber: 824
    functionLinenumberEnd: 860
    functionName: TLSRecvLines
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - assert
    - TLSRecv
    - Log
    - LogRaw
    linkageType: ''
    returnType: int
    signature: int TLSRecvLines(SSL *ssl, char *buf, size_t buf_size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_clear_options
      Src: /src/core/libcfnet/tls_generic.c:874,1
    - Dst: SSL_CTX_get_options
      Src: /src/core/libcfnet/tls_generic.c:874,1
    - Dst: SSL_CTX_get_options
      Src: /src/core/libcfnet/tls_generic.c:882,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:884,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:889,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:897,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libcfnet/tls_generic.c:899,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/tls_generic.c:904,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:909,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:917,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:924,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:938,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:946,1
    - Dst: SSL_CTX_set_options
      Src: /src/core/libcfnet/tls_generic.c:963,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/core/libcfnet/tls_generic.c:969,1
    - Dst: SSL_CTX_set_mode
      Src: /src/core/libcfnet/tls_generic.c:974,1
    - Dst: SSL_CTX_set_verify
      Src: /src/core/libcfnet/tls_generic.c:978,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/core/libcfnet/tls_generic.c:984,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - ssl_ctx
    - min_version
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts:
    - condition: (TLS_LOWEST_RECOMMENDED >= TLS_LOWEST_REQUIRED)
      pos:
        line_end: 896
        line_start: 896
        source_file: /src/core/libcfnet/tls_generic.c
    constantsTouched: []
    func_position:
      end: 985
      start: 869
    functionDepth: 8
    functionLinenumber: 869
    functionLinenumberEnd: 985
    functionName: TLSSetDefaultOptions
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_session_cache_mode
    - assert
    - SSL_CTX_get_options
    - SSL_CTX_set_options
    - SSL_CTX_set_verify
    - Log
    - SSL_CTX_clear_options
    - SSL_CTX_set_cert_verify_callback
    - SSL_CTX_set_mode
    - NULL_OR_EMPTY
    - StringEqual
    linkageType: ''
    returnType: void
    signature: void TLSSetDefaultOptions(SSL_CTX *ssl_ctx, const char *min_version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/tls_generic.c:989,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libcfnet/tls_generic.c:991,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:993,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:998,1
    - Dst: strlen
      Src: /src/core/libcfnet/tls_generic.c:1001,1
    - Dst: StringCountTokens
      Src: /src/core/libcfnet/tls_generic.c:1002,1
    - Dst: StringGetToken
      Src: /src/core/libcfnet/tls_generic.c:1015,1
    - Dst: StringStartsWith
      Src: /src/core/libcfnet/tls_generic.c:1016,1
    - Dst: StrCat
      Src: /src/core/libcfnet/tls_generic.c:1018,1
    - Dst: StrCat
      Src: /src/core/libcfnet/tls_generic.c:1022,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:1041,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/core/libcfnet/tls_generic.c:1042,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:1045,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:1053,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/core/libcfnet/tls_generic.c:1054,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:1057,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:1067,1
    - Dst: SSL_CTX_set_options
      Src: /src/core/libcfnet/tls_generic.c:1070,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_generic.c:1075,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - ssl_ctx
    - cipher_list
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts:
    - condition: (ssl_ctx)
      pos:
        line_end: 988
        line_start: 988
        source_file: /src/core/libcfnet/tls_generic.c
    constantsTouched: []
    func_position:
      end: 1082
      start: 987
    functionDepth: 8
    functionLinenumber: 987
    functionLinenumberEnd: 1082
    functionName: TLSSetCipherList
    functionSourceFile: /src/core/libcfnet/tls_generic.c
    functionUses: 0
    functionsReached:
    - StrCat
    - StringCountTokens
    - strlen
    - assert
    - SSL_CTX_set_cipher_list
    - SSL_CTX_set_ciphersuites
    - SSL_CTX_set_options
    - StringGetToken
    - Log
    - NULL_OR_EMPTY
    - StringStartsWith
    linkageType: ''
    returnType: bool
    signature: bool TLSSetCipherList(SSL_CTX *ssl_ctx, const char *cipher_list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/core/libcfnet/misc.c:36,1
    - Dst: Log
      Src: /src/core/libcfnet/misc.c:39,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libcfnet/misc.c:41,1
    - Dst: WSAGetLastError
      Src: /src/core/libcfnet/misc.c:41,1
    - Dst: close
      Src: /src/core/libcfnet/misc.c:44,1
    - Dst: Log
      Src: /src/core/libcfnet/misc.c:47,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/misc.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 8
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: cf_closesocket
    functionSourceFile: /src/core/libcfnet/misc.c
    functionUses: 11
    functionsReached:
    - GetErrorStr
    - WSAGetLastError
    - Log
    - closesocket
    - GetErrorStrFromCode
    - close
    linkageType: ''
    returnType: int
    signature: int cf_closesocket(int sd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:38,1
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:39,1
    - Dst: snprintf
      Src: /src/core/libcfnet/protocol.c:42,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/protocol.c:48,1
    - Dst: SeqNew
      Src: /src/core/libcfnet/protocol.c:54,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/protocol.c:59,1
    - Dst: BadProtoReply
      Src: /src/core/libcfnet/protocol.c:65,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:67,1
    - Dst: SeqDestroy
      Src: /src/core/libcfnet/protocol.c:68,1
    - Dst: strlen
      Src: /src/core/libcfnet/protocol.c:77,1
    - Dst: StringEqualN
      Src: /src/core/libcfnet/protocol.c:79,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/protocol.c:86,1
    - Dst: SeqAppend
      Src: /src/core/libcfnet/protocol.c:87,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - conn
    - path
    argTypes:
    - AgentConnection*
    - char*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/core/libcfnet/protocol.c
    - condition: (path != NULL)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/core/libcfnet/protocol.c
    constantsTouched: []
    func_position:
      end: 92
      start: 36
    functionDepth: 8
    functionLinenumber: 36
    functionLinenumberEnd: 92
    functionName: ProtocolOpenDir
    functionSourceFile: /src/core/libcfnet/protocol.c
    functionUses: 3
    functionsReached:
    - SeqDestroy
    - snprintf
    - BadProtoReply
    - strlen
    - assert
    - SeqNew
    - SendTransaction
    - StringEqualN
    - Log
    - ReceiveTransaction
    - xstrdup
    - SeqAppend
    linkageType: ''
    returnType: Seq
    signature: Seq *ProtocolOpenDir(AgentConnection *conn, const char *path)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:98,1
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:99,1
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:100,1
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:101,1
    - Dst: snprintf
      Src: /src/core/libcfnet/protocol.c:106,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:109,1
    - Dst: snprintf
      Src: /src/core/libcfnet/protocol.c:114,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/protocol.c:118,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:121,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/libcfnet/protocol.c:128,1
    - Dst: ProtocolSupportsFileStream
      Src: /src/core/libcfnet/protocol.c:129,1
    - Dst: FileStreamFetch
      Src: /src/core/libcfnet/protocol.c:132,1
    - Dst: unlink
      Src: /src/core/libcfnet/protocol.c:141,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libcfnet/protocol.c:142,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:145,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/protocol.c:146,1
    - Dst: TLSRecv
      Src: /src/core/libcfnet/protocol.c:155,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:158,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:165,1
    - Dst: BadProtoReply
      Src: /src/core/libcfnet/protocol.c:173,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:175,1
    - Dst: StringEqualN
      Src: /src/core/libcfnet/protocol.c:182,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:184,1
    - Dst: fwrite
      Src: /src/core/libcfnet/protocol.c:191,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:194,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/protocol.c:196,1
    - Dst: fclose
      Src: /src/core/libcfnet/protocol.c:204,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:209,1
    - Dst: unlink
      Src: /src/core/libcfnet/protocol.c:210,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:214,1
    - Dst: rename
      Src: /src/core/libcfnet/protocol.c:215,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:217,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/protocol.c:217,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 6
    argNames:
    - conn
    - remote_path
    - local_path
    - file_size
    - perms
    - print_stats
    argTypes:
    - AgentConnection*
    - char*
    - char*
    - uint32_t
    - int
    - bool
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/core/libcfnet/protocol.c
    - condition: (file_size != 0)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/core/libcfnet/protocol.c
    - condition: (local_path != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/core/libcfnet/protocol.c
    - condition: (remote_path != NULL)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/core/libcfnet/protocol.c
    constantsTouched: []
    func_position:
      end: 222
      start: 94
    functionDepth: 10
    functionLinenumber: 94
    functionLinenumberEnd: 222
    functionName: ProtocolGet
    functionSourceFile: /src/core/libcfnet/protocol.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - snprintf
    - unlink
    - BadProtoReply
    - assert
    - safe_fopen_create_perms
    - ConnectionInfoProtocolVersion
    - SendTransaction
    - ProtocolSupportsFileStream
    - Log
    - StringEqualN
    - fwrite
    - fclose
    - TLSRecv
    - FileStreamFetch
    - rename
    linkageType: ''
    returnType: bool
    signature: "bool ProtocolGet(AgentConnection *conn, const char *remote_path,\n
      \                const char *local_path, const uint32_t file_size, int perms,\n
      \                bool print_stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:227,1
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:228,1
    - Dst: ProtocolStat
      Src: /src/core/libcfnet/protocol.c:231,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:234,1
    - Dst: ProtocolGet
      Src: /src/core/libcfnet/protocol.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - conn
    - remote_path
    - local_path
    - perms
    - print_stats
    argTypes:
    - AgentConnection*
    - char*
    - char*
    - int
    - bool
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/core/libcfnet/protocol.c
    - condition: (remote_path != NULL)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/core/libcfnet/protocol.c
    constantsTouched: []
    func_position:
      end: 241
      start: 224
    functionDepth: 11
    functionLinenumber: 224
    functionLinenumberEnd: 241
    functionName: ProtocolStatGet
    functionSourceFile: /src/core/libcfnet/protocol.c
    functionUses: 1
    functionsReached:
    - assert
    - ProtocolStat
    - ProtocolGet
    - Log
    linkageType: ''
    returnType: bool
    signature: "bool ProtocolStatGet(AgentConnection *conn, const char *remote_path,\n
      \                    const char *local_path, int perms, bool print_stats)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:246,1
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:247,1
    - Dst: assert
      Src: /src/core/libcfnet/protocol.c:248,1
    - Dst: time
      Src: /src/core/libcfnet/protocol.c:250,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:253,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/protocol.c:256,1
    - Dst: snprintf
      Src: /src/core/libcfnet/protocol.c:261,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/protocol.c:264,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:267,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/protocol.c:273,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:276,1
    - Dst: BadProtoReply
      Src: /src/core/libcfnet/protocol.c:282,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:284,1
    - Dst: OKProtoReply
      Src: /src/core/libcfnet/protocol.c:290,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:292,1
    - Dst: StatParseResponse
      Src: /src/core/libcfnet/protocol.c:299,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:302,1
    - Dst: FileTypeToMode
      Src: /src/core/libcfnet/protocol.c:309,1
    - Dst: Log
      Src: /src/core/libcfnet/protocol.c:312,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/protocol.c:330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 3
    argNames:
    - conn
    - remote_path
    - stat_buf
    argTypes:
    - AgentConnection*
    - char*
    - struct stat*
    assertStmts:
    - condition: (remote_path != NULL)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/core/libcfnet/protocol.c
    - condition: (stat_buf != NULL)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/core/libcfnet/protocol.c
    - condition: (conn != NULL)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/core/libcfnet/protocol.c
    constantsTouched: []
    func_position:
      end: 333
      start: 243
    functionDepth: 8
    functionLinenumber: 243
    functionLinenumberEnd: 333
    functionName: ProtocolStat
    functionSourceFile: /src/core/libcfnet/protocol.c
    functionUses: 5
    functionsReached:
    - GetErrorStr
    - FileTypeToMode
    - snprintf
    - OKProtoReply
    - BadProtoReply
    - assert
    - StatParseResponse
    - SendTransaction
    - Log
    - ReceiveTransaction
    - time
    linkageType: ''
    returnType: bool
    signature: "bool ProtocolStat(AgentConnection *const conn, const char *const remote_path,\n
      \                 struct stat *const stat_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libcfnet/conn_cache.c:62,1
    - Dst: assert
      Src: /src/core/libcfnet/conn_cache.c:64,1
    - Dst: SeqNew
      Src: /src/core/libcfnet/conn_cache.c:65,1
    - Dst: ThreadUnlock
      Src: /src/core/libcfnet/conn_cache.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (conn_cache == NULL)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/core/libcfnet/conn_cache.c
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: ConnCache_Init
    functionSourceFile: /src/core/libcfnet/conn_cache.c
    functionUses: 0
    functionsReached:
    - assert
    - ThreadLock
    - ThreadUnlock
    - SeqNew
    linkageType: ''
    returnType: void
    signature: void ConnCache_Init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libcfnet/conn_cache.c:72,1
    - Dst: SeqLength
      Src: /src/core/libcfnet/conn_cache.c:74,1
    - Dst: SeqAt
      Src: /src/core/libcfnet/conn_cache.c:76,1
    - Dst: CF_ASSERT
      Src: /src/core/libcfnet/conn_cache.c:78,1
    - Dst: CF_ASSERT
      Src: /src/core/libcfnet/conn_cache.c:80,1
    - Dst: DisconnectServer
      Src: /src/core/libcfnet/conn_cache.c:83,1
    - Dst: SeqDestroy
      Src: /src/core/libcfnet/conn_cache.c:86,1
    - Dst: ThreadUnlock
      Src: /src/core/libcfnet/conn_cache.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 90
    functionName: ConnCache_Destroy
    functionSourceFile: /src/core/libcfnet/conn_cache.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - SeqDestroy
    - ThreadUnlock
    - DisconnectServer
    - CF_ASSERT
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void ConnCache_Destroy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionFlagsEqual
      Src: /src/core/libcfnet/conn_cache.c:97,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/conn_cache.c:98,1
    - Dst: StringEqual
      Src: /src/core/libcfnet/conn_cache.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - entry
    - server
    - port
    - flags
    argTypes:
    - ConnCache_entry*
    - char*
    - char*
    - ConnectionFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: ConnCacheEntryMatchesConnection
    functionSourceFile: /src/core/libcfnet/conn_cache.c
    functionUses: 0
    functionsReached:
    - StringEqual
    - ConnectionFlagsEqual
    linkageType: ''
    returnType: bool
    signature: "bool ConnCacheEntryMatchesConnection(ConnCache_entry *entry,\n                                            const
      char *server,\n                                            const char *port,\n
      \                                           ConnectionFlags flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/libcfnet/conn_cache.c:106,1
    - Dst: SeqLength
      Src: /src/core/libcfnet/conn_cache.c:109,1
    - Dst: SeqAt
      Src: /src/core/libcfnet/conn_cache.c:111,1
    - Dst: CF_ASSERT
      Src: /src/core/libcfnet/conn_cache.c:113,1
    - Dst: CF_ASSERT
      Src: /src/core/libcfnet/conn_cache.c:115,1
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:121,1
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:127,1
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:133,1
    - Dst: ConnCacheEntryMatchesConnection
      Src: /src/core/libcfnet/conn_cache.c:137,1
    - Dst: assert
      Src: /src/core/libcfnet/conn_cache.c:141,1
    - Dst: getsockopt
      Src: /src/core/libcfnet/conn_cache.c:146,1
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:148,1
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:155,1
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:161,1
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:171,1
    - Dst: ThreadUnlock
      Src: /src/core/libcfnet/conn_cache.c:179,1
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:183,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - server
    - port
    - flags
    argTypes:
    - char*
    - char*
    - ConnectionFlags
    assertStmts:
    - condition: (svp->status == CONNCACHE_STATUS_IDLE)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/core/libcfnet/conn_cache.c
    constantsTouched: []
    func_position:
      end: 188
      start: 102
    functionDepth: 8
    functionLinenumber: 102
    functionLinenumberEnd: 188
    functionName: ConnCache_FindIdleMarkBusy
    functionSourceFile: /src/core/libcfnet/conn_cache.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - ConnCacheEntryMatchesConnection
    - assert
    - ThreadUnlock
    - Log
    - getsockopt
    - CF_ASSERT
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: AgentConnection
    signature: "AgentConnection *ConnCache_FindIdleMarkBusy(const char *server,\n
      \                                           const char *port,\n                                            ConnectionFlags
      flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:192,1
    - Dst: ThreadLock
      Src: /src/core/libcfnet/conn_cache.c:195,1
    - Dst: SeqLength
      Src: /src/core/libcfnet/conn_cache.c:198,1
    - Dst: SeqAt
      Src: /src/core/libcfnet/conn_cache.c:200,1
    - Dst: CF_ASSERT
      Src: /src/core/libcfnet/conn_cache.c:202,1
    - Dst: CF_ASSERT
      Src: /src/core/libcfnet/conn_cache.c:204,1
    - Dst: CF_ASSERT
      Src: /src/core/libcfnet/conn_cache.c:212,1
    - Dst: ThreadUnlock
      Src: /src/core/libcfnet/conn_cache.c:222,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/conn_cache.c:226,1
    - Dst: Log
      Src: /src/core/libcfnet/conn_cache.c:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 190
    functionDepth: 8
    functionLinenumber: 190
    functionLinenumberEnd: 230
    functionName: ConnCache_MarkNotBusy
    functionSourceFile: /src/core/libcfnet/conn_cache.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - ThreadUnlock
    - Log
    - CF_ASSERT
    - ProgrammingError
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void ConnCache_MarkNotBusy(AgentConnection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libcfnet/conn_cache.c:235,1
    - Dst: ThreadLock
      Src: /src/core/libcfnet/conn_cache.c:239,1
    - Dst: SeqAppend
      Src: /src/core/libcfnet/conn_cache.c:240,1
    - Dst: ThreadUnlock
      Src: /src/core/libcfnet/conn_cache.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - status
    argTypes:
    - AgentConnection*
    - enum ConnCacheStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: ConnCache_Add
    functionSourceFile: /src/core/libcfnet/conn_cache.c
    functionUses: 0
    functionsReached:
    - ThreadUnlock
    - xmalloc
    - ThreadLock
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void ConnCache_Add(AgentConnection *conn, enum ConnCacheStatus status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptoInitialize
      Src: /src/core/libcfnet/client_code.c:59,1
    - Dst: TLSClientInitialize
      Src: /src/core/libcfnet/client_code.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tls_min_version
    - ciphers
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: cfnet_init
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 2
    functionsReached:
    - CryptoInitialize
    - TLSClientInitialize
    linkageType: ''
    returnType: bool
    signature: bool cfnet_init(const char *tls_min_version, const char *ciphers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLSDeInitialize
      Src: /src/core/libcfnet/client_code.c:65,1
    - Dst: CryptoDeInitialize
      Src: /src/core/libcfnet/client_code.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 9
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: cfnet_shut
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 1
    functionsReached:
    - TLSDeInitialize
    - CryptoDeInitialize
    linkageType: ''
    returnType: void
    signature: void cfnet_shut()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLSClientIsInitialized
      Src: /src/core/libcfnet/client_code.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: cfnet_IsInitialized
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 0
    functionsReached:
    - TLSClientIsInitialized
    linkageType: ''
    returnType: bool
    signature: bool cfnet_IsInitialized()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nt_static_assert
      Src: /src/core/libcfnet/client_code.c:82,1
    - Dst: PRINTSIZE
      Src: /src/core/libcfnet/client_code.c:82,1
    - Dst: getservbyname
      Src: /src/core/libcfnet/client_code.c:86,1
    - Dst: ntohs
      Src: /src/core/libcfnet/client_code.c:89,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:90,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:95,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:100,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_code.c:102,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 8
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: DetermineCfenginePort
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - ntohs
    - PRINTSIZE
    - snprintf
    - nt_static_assert
    - getservbyname
    - Log
    linkageType: ''
    returnType: void
    signature: void DetermineCfenginePort()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringToLong
      Src: /src/core/libcfnet/client_code.c:113,1
    - Dst: LogStringToLongError
      Src: /src/core/libcfnet/client_code.c:116,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:121,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:126,1
    - Dst: xsnprintf
      Src: /src/core/libcfnet/client_code.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - port_str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 107
    functionDepth: 8
    functionLinenumber: 107
    functionLinenumberEnd: 131
    functionName: SetCfenginePort
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 0
    functionsReached:
    - StringToLong
    - LogStringToLongError
    - Log
    - xsnprintf
    linkageType: ''
    returnType: bool
    signature: bool SetCfenginePort(const char *port_str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TLSTry
      Src: /src/core/libcfnet/client_code.c:141,1
    - Dst: TLSVerifyPeer
      Src: /src/core/libcfnet/client_code.c:148,1
    - Dst: KeyPrintableHash
      Src: /src/core/libcfnet/client_code.c:155,1
    - Dst: RlistContainsString
      Src: /src/core/libcfnet/client_code.c:160,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:162,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:166,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:174,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:182,1
    - Dst: SavePublicKey
      Src: /src/core/libcfnet/client_code.c:183,1
    - Dst: KeyPrintableHash
      Src: /src/core/libcfnet/client_code.c:183,1
    - Dst: KeyRSA
      Src: /src/core/libcfnet/client_code.c:184,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:188,1
    - Dst: TLSClientIdentificationDialog
      Src: /src/core/libcfnet/client_code.c:196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - conn_info
    - trust_server
    - restrict_keys
    - ipaddr
    - username
    argTypes:
    - ConnectionInfo*
    - bool
    - Rlist*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 136
    functionDepth: 11
    functionLinenumber: 136
    functionLinenumberEnd: 199
    functionName: TLSConnect
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 0
    functionsReached:
    - KeyRSA
    - SavePublicKey
    - KeyPrintableHash
    - TLSTry
    - TLSClientIdentificationDialog
    - Log
    - RlistContainsString
    - TLSVerifyPeer
    linkageType: ''
    returnType: int
    signature: "int TLSConnect(ConnectionInfo *conn_info, bool trust_server, const
      Rlist *restrict_keys,\n               const char *ipaddr, const char *username)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NewAgentConn
      Src: /src/core/libcfnet/client_code.c:213,1
    - Dst: signal
      Src: /src/core/libcfnet/client_code.c:216,1
    - Dst: sigemptyset
      Src: /src/core/libcfnet/client_code.c:219,1
    - Dst: sigaddset
      Src: /src/core/libcfnet/client_code.c:220,1
    - Dst: pthread_sigmask
      Src: /src/core/libcfnet/client_code.c:221,1
    - Dst: GetCurrentUserName
      Src: /src/core/libcfnet/client_code.c:224,1
    - Dst: strlcpy
      Src: /src/core/libcfnet/client_code.c:227,1
    - Dst: SocketConnect
      Src: /src/core/libcfnet/client_code.c:236,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:241,1
    - Dst: DisconnectServer
      Src: /src/core/libcfnet/client_code.c:243,1
    - Dst: nt_static_assert
      Src: /src/core/libcfnet/client_code.c:248,1
    - Dst: strcpy
      Src: /src/core/libcfnet/client_code.c:249,1
    - Dst: ProtocolIsUndefined
      Src: /src/core/libcfnet/client_code.c:252,1
    - Dst: ProtocolIsTLS
      Src: /src/core/libcfnet/client_code.c:257,1
    - Dst: TLSConnect
      Src: /src/core/libcfnet/client_code.c:263,1
    - Dst: DisconnectServer
      Src: /src/core/libcfnet/client_code.c:268,1
    - Dst: DisconnectServer
      Src: /src/core/libcfnet/client_code.c:274,1
    - Dst: assert
      Src: /src/core/libcfnet/client_code.c:279,1
    - Dst: LastSaw1
      Src: /src/core/libcfnet/client_code.c:284,1
    - Dst: KeyPrintableHash
      Src: /src/core/libcfnet/client_code.c:284,1
    - Dst: ProtocolIsClassic
      Src: /src/core/libcfnet/client_code.c:288,1
    - Dst: CfEnterpriseOptions
      Src: /src/core/libcfnet/client_code.c:291,1
    - Dst: IdentifyAgent
      Src: /src/core/libcfnet/client_code.c:293,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:295,1
    - Dst: DisconnectServer
      Src: /src/core/libcfnet/client_code.c:297,1
    - Dst: AuthenticateAgent
      Src: /src/core/libcfnet/client_code.c:302,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:304,1
    - Dst: DisconnectServer
      Src: /src/core/libcfnet/client_code.c:306,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/client_code.c:314,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 6
    argNames:
    - server
    - port
    - restrict_keys
    - connect_timeout
    - flags
    - err
    argTypes:
    - char*
    - char*
    - Rlist*
    - unsigned int
    - ConnectionFlags
    - int*
    assertStmts:
    - condition: (ret == 1)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/core/libcfnet/client_code.c
    constantsTouched: []
    func_position:
      end: 320
      start: 205
    functionDepth: 14
    functionLinenumber: 205
    functionLinenumberEnd: 320
    functionName: ServerConnection
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 2
    functionsReached:
    - SocketConnect
    - pthread_sigmask
    - KeyPrintableHash
    - NewAgentConn
    - Log
    - DisconnectServer
    - strlcpy
    - nt_static_assert
    - TLSConnect
    - strcpy
    - sigaddset
    - assert
    - ProtocolIsClassic
    - LastSaw1
    - signal
    - IdentifyAgent
    - AuthenticateAgent
    - GetCurrentUserName
    - sigemptyset
    - CfEnterpriseOptions
    - ProtocolIsTLS
    - ProgrammingError
    - ProtocolIsUndefined
    linkageType: ''
    returnType: AgentConnection
    signature: "AgentConnection *ServerConnection(const char *server, const char *port,
      const Rlist *restrict_keys,\n                                  unsigned int
      connect_timeout,\n                                  ConnectionFlags flags, int
      *err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_shutdown
      Src: /src/core/libcfnet/client_code.c:332,1
    - Dst: cf_closesocket
      Src: /src/core/libcfnet/client_code.c:335,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:337,1
    - Dst: DeleteAgentConn
      Src: /src/core/libcfnet/client_code.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 324
    functionDepth: 9
    functionLinenumber: 324
    functionLinenumberEnd: 340
    functionName: DisconnectServer
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 5
    functionsReached:
    - cf_closesocket
    - SSL_shutdown
    - Log
    - DeleteAgentConn
    linkageType: ''
    returnType: void
    signature: void DisconnectServer(AgentConnection *conn)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:354,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:356,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:368,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:372,1
    - Dst: EncryptString
      Src: /src/core/libcfnet/client_code.c:373,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:373,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/client_code.c:379,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/client_code.c:383,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:387,1
    - Dst: memcpy
      Src: /src/core/libcfnet/client_code.c:388,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:392,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:393,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_code.c:396,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/client_code.c:405,1
    - Dst: memcpy
      Src: /src/core/libcfnet/client_code.c:416,1
    - Dst: DecryptString
      Src: /src/core/libcfnet/client_code.c:417,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:423,1
    - Dst: FailedProtoReply
      Src: /src/core/libcfnet/client_code.c:430,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:432,1
    - Dst: BadProtoReply
      Src: /src/core/libcfnet/client_code.c:436,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:438,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:438,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:443,1
    - Dst: strcmp
      Src: /src/core/libcfnet/client_code.c:445,1
    - Dst: xcalloc
      Src: /src/core/libcfnet/client_code.c:450,1
    - Dst: AllocateDirentForFilename
      Src: /src/core/libcfnet/client_code.c:451,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:472,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:473,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 3
    argNames:
    - dirname
    - encrypt
    - conn
    argTypes:
    - char*
    - bool
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 346
    functionDepth: 9
    functionLinenumber: 346
    functionLinenumberEnd: 477
    functionName: RemoteDirList
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 0
    functionsReached:
    - memcpy
    - xcalloc
    - AllocateDirentForFilename
    - snprintf
    - strlen
    - BadProtoReply
    - FailedProtoReply
    - SendTransaction
    - Log
    - strcmp
    - ReceiveTransaction
    - ProgrammingError
    - free
    - EncryptString
    - DecryptString
    linkageType: ''
    returnType: Item
    signature: Item *RemoteDirList(const char *dirname, bool encrypt, AgentConnection
      *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HashFile
      Src: /src/core/libcfnet/client_code.c:489,1
    - Dst: memset
      Src: /src/core/libcfnet/client_code.c:491,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:501,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:503,1
    - Dst: EncryptString
      Src: /src/core/libcfnet/client_code.c:511,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:512,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/client_code.c:519,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/client_code.c:523,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:527,1
    - Dst: memcpy
      Src: /src/core/libcfnet/client_code.c:528,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:532,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:533,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:540,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_code.c:543,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:545,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_code.c:545,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:546,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/client_code.c:550,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:553,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_code.c:553,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:554,1
    - Dst: strcmp
      Src: /src/core/libcfnet/client_code.c:558,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 4
    argNames:
    - file1
    - file2
    - encrypt
    - conn
    argTypes:
    - char*
    - char*
    - bool
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 481
    functionDepth: 8
    functionLinenumber: 481
    functionLinenumberEnd: 568
    functionName: CompareHashNet
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - memcpy
    - snprintf
    - strlen
    - SendTransaction
    - Log
    - strcmp
    - ReceiveTransaction
    - ProgrammingError
    - HashFile
    - EncryptString
    - memset
    linkageType: ''
    returnType: bool
    signature: bool CompareHashNet(const char *file1, const char *file2, bool encrypt,
      AgentConnection *conn)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:582,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:584,1
    - Dst: unlink
      Src: /src/core/libcfnet/client_code.c:588,1
    - Dst: safe_open_create_perms
      Src: /src/core/libcfnet/client_code.c:590,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:593,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_code.c:595,1
    - Dst: unlink
      Src: /src/core/libcfnet/client_code.c:596,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:603,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:609,1
    - Dst: EncryptString
      Src: /src/core/libcfnet/client_code.c:610,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:610,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/client_code.c:616,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/client_code.c:620,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:624,1
    - Dst: memcpy
      Src: /src/core/libcfnet/client_code.c:625,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_code.c:629,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:631,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_code.c:631,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:632,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/core/libcfnet/client_code.c:636,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:639,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/client_code.c:640,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/client_code.c:640,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:641,1
    - Dst: xmalloc
      Src: /src/core/libcfnet/client_code.c:645,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/client_code.c:652,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:654,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:655,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libcfnet/client_code.c:656,1
    - Dst: strncmp
      Src: /src/core/libcfnet/client_code.c:664,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:664,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:666,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:667,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:668,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libcfnet/client_code.c:669,1
    - Dst: strncmp
      Src: /src/core/libcfnet/client_code.c:673,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:673,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:675,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:676,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:677,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libcfnet/client_code.c:678,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/core/libcfnet/client_code.c:682,1
    - Dst: CfengineCipher
      Src: /src/core/libcfnet/client_code.c:682,1
    - Dst: CfEnterpriseOptions
      Src: /src/core/libcfnet/client_code.c:682,1
    - Dst: EVP_DecryptUpdate
      Src: /src/core/libcfnet/client_code.c:684,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:686,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:687,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libcfnet/client_code.c:688,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/core/libcfnet/client_code.c:692,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:694,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:695,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libcfnet/client_code.c:696,1
    - Dst: FileSparseWrite
      Src: /src/core/libcfnet/client_code.c:702,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:706,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:709,1
    - Dst: unlink
      Src: /src/core/libcfnet/client_code.c:710,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:711,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libcfnet/client_code.c:713,1
    - Dst: FileSparseClose
      Src: /src/core/libcfnet/client_code.c:722,1
    - Dst: unlink
      Src: /src/core/libcfnet/client_code.c:726,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:727,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libcfnet/client_code.c:728,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:732,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/libcfnet/client_code.c:733,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 93
    argCount: 4
    argNames:
    - source
    - dest
    - size
    - conn
    argTypes:
    - char*
    - char*
    - off_t
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 573
    functionDepth: 9
    functionLinenumber: 573
    functionLinenumberEnd: 735
    functionName: EncryptCopyRegularFileNet
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 0
    functionsReached:
    - strncmp
    - FileSparseWrite
    - Log
    - free
    - close
    - unlink
    - snprintf
    - strlen
    - SendTransaction
    - ReceiveTransaction
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_free
    - EVP_DecryptFinal_ex
    - safe_open_create_perms
    - xmalloc
    - ERR_get_error
    - GetErrorStr
    - memcpy
    - EVP_CIPHER_CTX_new
    - TLSErrorString
    - FileSparseClose
    - CfengineCipher
    - CfEnterpriseOptions
    - EVP_DecryptUpdate
    - ProgrammingError
    - EncryptString
    linkageType: ''
    returnType: bool
    signature: bool EncryptCopyRegularFileNet(const char *source, const char *dest,
      off_t size, AgentConnection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:742,1
    - Dst: recv
      Src: /src/core/libcfnet/client_code.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sd
    - toget
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 737
    functionDepth: 8
    functionLinenumber: 737
    functionLinenumberEnd: 748
    functionName: FlushFileStream
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 0
    functionsReached:
    - recv
    - Log
    linkageType: ''
    returnType: void
    signature: void FlushFileStream(int sd, int toget)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/client_code.c:755,1
    - Dst: EncryptCopyRegularFileNet
      Src: /src/core/libcfnet/client_code.c:767,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:770,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:772,1
    - Dst: unlink
      Src: /src/core/libcfnet/client_code.c:776,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_code.c:779,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:782,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_code.c:789,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:791,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/libcfnet/client_code.c:795,1
    - Dst: ProtocolSupportsFileStream
      Src: /src/core/libcfnet/client_code.c:796,1
    - Dst: FileStreamFetch
      Src: /src/core/libcfnet/client_code.c:797,1
    - Dst: safe_open_create_perms
      Src: /src/core/libcfnet/client_code.c:800,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:803,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_code.c:805,1
    - Dst: unlink
      Src: /src/core/libcfnet/client_code.c:806,1
    - Dst: xmalloc
      Src: /src/core/libcfnet/client_code.c:810,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:812,1
    - Dst: MIN
      Src: /src/core/libcfnet/client_code.c:819,1
    - Dst: assert
      Src: /src/core/libcfnet/client_code.c:821,1
    - Dst: ProtocolIsClassic
      Src: /src/core/libcfnet/client_code.c:828,1
    - Dst: RecvSocketStream
      Src: /src/core/libcfnet/client_code.c:830,1
    - Dst: ProtocolIsTLS
      Src: /src/core/libcfnet/client_code.c:832,1
    - Dst: TLSRecv
      Src: /src/core/libcfnet/client_code.c:834,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/client_code.c:838,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:850,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:854,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:855,1
    - Dst: strncmp
      Src: /src/core/libcfnet/client_code.c:862,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:862,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:864,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:866,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:867,1
    - Dst: strncmp
      Src: /src/core/libcfnet/client_code.c:871,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_code.c:871,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:873,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:875,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:876,1
    - Dst: sscanf
      Src: /src/core/libcfnet/client_code.c:883,1
    - Dst: strncmp
      Src: /src/core/libcfnet/client_code.c:885,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:887,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:889,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:890,1
    - Dst: FileSparseWrite
      Src: /src/core/libcfnet/client_code.c:894,1
    - Dst: Log
      Src: /src/core/libcfnet/client_code.c:898,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:901,1
    - Dst: unlink
      Src: /src/core/libcfnet/client_code.c:902,1
    - Dst: close
      Src: /src/core/libcfnet/client_code.c:903,1
    - Dst: FlushFileStream
      Src: /src/core/libcfnet/client_code.c:904,1
    - Dst: FileSparseClose
      Src: /src/core/libcfnet/client_code.c:914,1
    - Dst: unlink
      Src: /src/core/libcfnet/client_code.c:918,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:919,1
    - Dst: FlushFileStream
      Src: /src/core/libcfnet/client_code.c:920,1
    - Dst: free
      Src: /src/core/libcfnet/client_code.c:924,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 85
    argCount: 7
    argNames:
    - source
    - basis
    - dest
    - size
    - encrypt
    - conn
    - mode
    argTypes:
    - char*
    - char*
    - char*
    - off_t
    - bool
    - AgentConnection*
    - mode_t
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 754
        line_start: 754
        source_file: /src/core/libcfnet/client_code.c
    - condition: (toget > 0)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/core/libcfnet/client_code.c
    constantsTouched: []
    func_position:
      end: 926
      start: 752
    functionDepth: 10
    functionLinenumber: 752
    functionLinenumberEnd: 926
    functionName: CopyRegularFileNet
    functionSourceFile: /src/core/libcfnet/client_code.c
    functionUses: 1
    functionsReached:
    - strncmp
    - FileSparseWrite
    - MIN
    - ProtocolSupportsFileStream
    - Log
    - free
    - close
    - unlink
    - snprintf
    - strlen
    - RecvSocketStream
    - sscanf
    - SendTransaction
    - assert
    - FlushFileStream
    - safe_open_create_perms
    - ProtocolIsClassic
    - xmalloc
    - FileStreamFetch
    - GetErrorStr
    - FileSparseClose
    - UnexpectedError
    - ConnectionInfoProtocolVersion
    - ProtocolIsTLS
    - TLSRecv
    - EncryptCopyRegularFileNet
    linkageType: ''
    returnType: bool
    signature: "bool CopyRegularFileNet(const char *source, const char *basis, const
      char *dest, off_t size,\n                        bool encrypt, AgentConnection
      *conn, mode_t mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:56,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:57,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:58,1
    - Dst: memmove
      Src: /src/core/libcfnet/file_stream.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bufs
    - in_buf
    argTypes:
    - rs_buffers_t*
    - char*
    assertStmts:
    - condition: (bufs != NULL)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (in_buf != NULL)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (bufs->next_in >= in_buf)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: MoveLeftoversToFrontOfInputBuffer
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: void MoveLeftoversToFrontOfInputBuffer(rs_buffers_t *bufs, char *in_buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:78,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:79,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:80,1
    - Dst: MoveLeftoversToFrontOfInputBuffer
      Src: /src/core/libcfnet/file_stream.c:82,1
    - Dst: ProtocolRecvMessage
      Src: /src/core/libcfnet/file_stream.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - bufs
    - in_buf
    - conn
    argTypes:
    - rs_buffers_t*
    - char*
    - SSL*
    assertStmts:
    - condition: (bufs != NULL)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (conn != NULL)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (in_buf != NULL)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 107
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 107
    functionName: FillInputBufferFromHost
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - assert
    - MoveLeftoversToFrontOfInputBuffer
    - ProtocolRecvMessage
    linkageType: ''
    returnType: bool
    signature: "bool FillInputBufferFromHost(\n    rs_buffers_t *bufs, char *in_buf,
      SSL *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:120,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:121,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:122,1
    - Dst: MoveLeftoversToFrontOfInputBuffer
      Src: /src/core/libcfnet/file_stream.c:124,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:132,1
    - Dst: fread
      Src: /src/core/libcfnet/file_stream.c:141,1
    - Dst: ferror
      Src: /src/core/libcfnet/file_stream.c:142,1
    - Dst: feof
      Src: /src/core/libcfnet/file_stream.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - bufs
    - in_buf
    - file
    argTypes:
    - rs_buffers_t*
    - char*
    - FILE*
    assertStmts:
    - condition: (bufs != NULL)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (file != NULL)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (bufs->avail_in <= PROTOCOL_MESSAGE_SIZE)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (in_buf != NULL)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 151
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 151
    functionName: FillInputBufferFromFile
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - MoveLeftoversToFrontOfInputBuffer
    - assert
    - fread
    - feof
    - ferror
    linkageType: ''
    returnType: bool
    signature: "bool FillInputBufferFromFile(\n    rs_buffers_t *bufs, char *in_buf,
      FILE *file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:165,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:166,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:167,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:170,1
    - Dst: ProtocolSendMessage
      Src: /src/core/libcfnet/file_stream.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - bufs
    - out_buf
    - is_done
    - conn
    argTypes:
    - rs_buffers_t*
    - char*
    - bool
    - SSL*
    assertStmts:
    - condition: (bufs != NULL)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (conn != NULL)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (num_bytes <= PROTOCOL_MESSAGE_SIZE)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (out_buf != NULL)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 186
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 186
    functionName: DrainOutputBufferToHost
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - assert
    - ProtocolSendMessage
    linkageType: ''
    returnType: bool
    signature: "bool DrainOutputBufferToHost(\n    rs_buffers_t *bufs, char *out_buf,
      bool is_done, SSL *conn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:201,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:202,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:203,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:207,1
    - Dst: FileSparseWrite
      Src: /src/core/libcfnet/file_stream.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - bufs
    - out_buf
    - fd
    - last_write_made_hole
    argTypes:
    - rs_buffers_t*
    - char*
    - int
    - bool*
    assertStmts:
    - condition: (bufs != NULL)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (last_write_made_hole != NULL)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (num_bytes <= PROTOCOL_MESSAGE_SIZE)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (out_buf != NULL)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 223
      start: 198
    functionDepth: 9
    functionLinenumber: 198
    functionLinenumberEnd: 223
    functionName: DrainOutputBufferToFile
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - assert
    - FileSparseWrite
    linkageType: ''
    returnType: bool
    signature: "bool DrainOutputBufferToFile(\n    rs_buffers_t *bufs, char *out_buf,
      int fd, bool *last_write_made_hole)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: FileStreamRefuse
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - ProtocolSendError
    linkageType: ''
    returnType: bool
    signature: bool FileStreamRefuse(SSL *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:244,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:245,1
    - Dst: rs_loadsig_begin
      Src: /src/core/libcfnet/file_stream.c:252,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:255,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:256,1
    - Dst: FillInputBufferFromHost
      Src: /src/core/libcfnet/file_stream.c:267,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:270,1
    - Dst: rs_job_iter
      Src: /src/core/libcfnet/file_stream.c:275,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:278,1
    - Dst: rs_strerror
      Src: /src/core/libcfnet/file_stream.c:280,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:281,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:283,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - conn
    - sig
    argTypes:
    - SSL*
    - rs_signature_t**
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (sig != NULL)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 293
      start: 242
    functionDepth: 8
    functionLinenumber: 242
    functionLinenumberEnd: 293
    functionName: RecvSignature
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - ProtocolSendError
    - assert
    - FillInputBufferFromHost
    - rs_job_free
    - rs_job_iter
    - Log
    - rs_loadsig_begin
    - rs_strerror
    linkageType: ''
    returnType: bool
    signature: bool RecvSignature(SSL *conn, rs_signature_t **sig)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:306,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:307,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:308,1
    - Dst: safe_fopen
      Src: /src/core/libcfnet/file_stream.c:315,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:318,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/file_stream.c:321,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:322,1
    - Dst: rs_build_hash_table
      Src: /src/core/libcfnet/file_stream.c:327,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:330,1
    - Dst: rs_strerror
      Src: /src/core/libcfnet/file_stream.c:330,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:331,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:332,1
    - Dst: rs_delta_begin
      Src: /src/core/libcfnet/file_stream.c:337,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:340,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:341,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:342,1
    - Dst: FillInputBufferFromFile
      Src: /src/core/libcfnet/file_stream.c:355,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:357,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/file_stream.c:360,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:361,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:363,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:364,1
    - Dst: rs_job_iter
      Src: /src/core/libcfnet/file_stream.c:369,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:372,1
    - Dst: rs_strerror
      Src: /src/core/libcfnet/file_stream.c:374,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:375,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:377,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:378,1
    - Dst: DrainOutputBufferToHost
      Src: /src/core/libcfnet/file_stream.c:382,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:385,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:386,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:391,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:392,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 49
    argCount: 3
    argNames:
    - conn
    - sig
    - filename
    argTypes:
    - SSL*
    - rs_signature_t*
    - char*
    assertStmts:
    - condition: (filename != NULL)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (sig != NULL)
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (conn != NULL)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 395
      start: 304
    functionDepth: 8
    functionLinenumber: 304
    functionLinenumberEnd: 395
    functionName: SendDelta
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ProtocolSendError
    - DrainOutputBufferToHost
    - assert
    - FillInputBufferFromFile
    - rs_job_free
    - safe_fopen
    - rs_build_hash_table
    - rs_job_iter
    - Log
    - fclose
    - rs_strerror
    - rs_delta_begin
    linkageType: ''
    returnType: bool
    signature: bool SendDelta(SSL *conn, rs_signature_t *sig, const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:399,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:400,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:402,1
    - Dst: RecvSignature
      Src: /src/core/libcfnet/file_stream.c:406,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:412,1
    - Dst: SendDelta
      Src: /src/core/libcfnet/file_stream.c:415,1
    - Dst: rs_free_sumset
      Src: /src/core/libcfnet/file_stream.c:418,1
    - Dst: rs_free_sumset
      Src: /src/core/libcfnet/file_stream.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - filename
    argTypes:
    - SSL*
    - char*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (filename != NULL)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 424
      start: 397
    functionDepth: 9
    functionLinenumber: 397
    functionLinenumberEnd: 424
    functionName: FileStreamServe
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - RecvSignature
    - assert
    - SendDelta
    - Log
    - rs_free_sumset
    linkageType: ''
    returnType: bool
    signature: bool FileStreamServe(SSL *conn, const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/core/libcfnet/file_stream.c:447,1
    - Dst: fstat
      Src: /src/core/libcfnet/file_stream.c:454,1
    - Dst: S_ISREG
      Src: /src/core/libcfnet/file_stream.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 460
    functionName: GetSizeOfFile
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - fstat
    - fileno
    - S_ISREG
    linkageType: ''
    returnType: rs_long_t
    signature: rs_long_t GetSizeOfFile(FILE *file)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:472,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:473,1
    - Dst: safe_fopen
      Src: /src/core/libcfnet/file_stream.c:484,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:487,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/file_stream.c:490,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:491,1
    - Dst: GetSizeOfFile
      Src: /src/core/libcfnet/file_stream.c:496,1
    - Dst: rs_sig_args
      Src: /src/core/libcfnet/file_stream.c:501,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:504,1
    - Dst: rs_strerror
      Src: /src/core/libcfnet/file_stream.c:506,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:507,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:508,1
    - Dst: rs_sig_begin
      Src: /src/core/libcfnet/file_stream.c:513,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:516,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:517,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:518,1
    - Dst: FillInputBufferFromFile
      Src: /src/core/libcfnet/file_stream.c:531,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:533,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/file_stream.c:536,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:537,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:539,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:540,1
    - Dst: rs_job_iter
      Src: /src/core/libcfnet/file_stream.c:547,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:550,1
    - Dst: rs_strerror
      Src: /src/core/libcfnet/file_stream.c:552,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/file_stream.c:553,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:555,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:556,1
    - Dst: DrainOutputBufferToHost
      Src: /src/core/libcfnet/file_stream.c:563,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:566,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:567,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:572,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:573,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:579,1
    - Dst: fprintf
      Src: /src/core/libcfnet/file_stream.c:582,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 3
    argNames:
    - conn
    - filename
    - print_stats
    argTypes:
    - SSL*
    - char*
    - bool
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (filename != NULL)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 586
      start: 470
    functionDepth: 8
    functionLinenumber: 470
    functionLinenumberEnd: 586
    functionName: SendSignature
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ProtocolSendError
    - DrainOutputBufferToHost
    - assert
    - GetSizeOfFile
    - FillInputBufferFromFile
    - fprintf
    - rs_job_free
    - safe_fopen
    - rs_job_iter
    - Log
    - fclose
    - rs_sig_args
    - rs_strerror
    - rs_sig_begin
    linkageType: ''
    returnType: bool
    signature: bool SendSignature(SSL *conn, const char *filename, bool print_stats)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:605,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:606,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:607,1
    - Dst: unlink
      Src: /src/core/libcfnet/file_stream.c:618,1
    - Dst: safe_open_create_perms
      Src: /src/core/libcfnet/file_stream.c:619,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:623,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/file_stream.c:626,1
    - Dst: ProtocolFlushStream
      Src: /src/core/libcfnet/file_stream.c:632,1
    - Dst: safe_fopen
      Src: /src/core/libcfnet/file_stream.c:637,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:640,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/file_stream.c:643,1
    - Dst: ProtocolFlushStream
      Src: /src/core/libcfnet/file_stream.c:644,1
    - Dst: close
      Src: /src/core/libcfnet/file_stream.c:645,1
    - Dst: unlink
      Src: /src/core/libcfnet/file_stream.c:646,1
    - Dst: rs_patch_begin
      Src: /src/core/libcfnet/file_stream.c:651,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:654,1
    - Dst: ProtocolFlushStream
      Src: /src/core/libcfnet/file_stream.c:655,1
    - Dst: close
      Src: /src/core/libcfnet/file_stream.c:656,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:657,1
    - Dst: unlink
      Src: /src/core/libcfnet/file_stream.c:658,1
    - Dst: FillInputBufferFromHost
      Src: /src/core/libcfnet/file_stream.c:674,1
    - Dst: close
      Src: /src/core/libcfnet/file_stream.c:677,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:678,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:679,1
    - Dst: unlink
      Src: /src/core/libcfnet/file_stream.c:680,1
    - Dst: rs_job_iter
      Src: /src/core/libcfnet/file_stream.c:687,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:690,1
    - Dst: rs_strerror
      Src: /src/core/libcfnet/file_stream.c:692,1
    - Dst: ProtocolFlushStream
      Src: /src/core/libcfnet/file_stream.c:695,1
    - Dst: close
      Src: /src/core/libcfnet/file_stream.c:698,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:699,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:700,1
    - Dst: unlink
      Src: /src/core/libcfnet/file_stream.c:701,1
    - Dst: DrainOutputBufferToFile
      Src: /src/core/libcfnet/file_stream.c:709,1
    - Dst: close
      Src: /src/core/libcfnet/file_stream.c:713,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:714,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:715,1
    - Dst: unlink
      Src: /src/core/libcfnet/file_stream.c:716,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:721,1
    - Dst: rs_job_free
      Src: /src/core/libcfnet/file_stream.c:722,1
    - Dst: FileSparseClose
      Src: /src/core/libcfnet/file_stream.c:724,1
    - Dst: unlink
      Src: /src/core/libcfnet/file_stream.c:727,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:735,1
    - Dst: fprintf
      Src: /src/core/libcfnet/file_stream.c:738,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 5
    argNames:
    - conn
    - basis
    - dest
    - perms
    - print_stats
    argTypes:
    - SSL*
    - char*
    - char*
    - mode_t
    - bool
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (dest != NULL)
      pos:
        line_end: 606
        line_start: 606
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (basis != NULL)
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 742
      start: 598
    functionDepth: 10
    functionLinenumber: 598
    functionLinenumberEnd: 742
    functionName: RecvDelta
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - unlink
    - FileSparseClose
    - assert
    - FillInputBufferFromHost
    - safe_open_create_perms
    - ProtocolFlushStream
    - safe_fopen
    - rs_job_free
    - rs_job_iter
    - rs_patch_begin
    - Log
    - DrainOutputBufferToFile
    - fclose
    - fprintf
    - rs_strerror
    - close
    linkageType: ''
    returnType: bool
    signature: "bool RecvDelta(\n    SSL *conn,\n    const char *basis,\n    const
      char *dest,\n    mode_t perms,\n    bool print_stats)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:751,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:752,1
    - Dst: assert
      Src: /src/core/libcfnet/file_stream.c:753,1
    - Dst: safe_fopen_create_perms
      Src: /src/core/libcfnet/file_stream.c:756,1
    - Dst: fclose
      Src: /src/core/libcfnet/file_stream.c:759,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:762,1
    - Dst: SendSignature
      Src: /src/core/libcfnet/file_stream.c:765,1
    - Dst: Log
      Src: /src/core/libcfnet/file_stream.c:771,1
    - Dst: RecvDelta
      Src: /src/core/libcfnet/file_stream.c:774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - conn
    - basis
    - dest
    - perms
    - print_stats
    argTypes:
    - SSL*
    - char*
    - char*
    - mode_t
    - bool
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 750
        line_start: 750
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (basis != NULL)
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/core/libcfnet/file_stream.c
    - condition: (dest != NULL)
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/core/libcfnet/file_stream.c
    constantsTouched: []
    func_position:
      end: 781
      start: 744
    functionDepth: 11
    functionLinenumber: 744
    functionLinenumberEnd: 781
    functionName: FileStreamFetch
    functionSourceFile: /src/core/libcfnet/file_stream.c
    functionUses: 2
    functionsReached:
    - assert
    - safe_fopen_create_perms
    - Log
    - fclose
    - SendSignature
    - RecvDelta
    linkageType: ''
    returnType: bool
    signature: "bool FileStreamFetch(\n    SSL *conn,\n    const char *basis,\n    const
      char *dest,\n    mode_t perms,\n    bool print_stats)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libcfnet/addr_lib.c:46,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:51,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:56,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:61,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:66,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:71,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:76,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:89,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:95,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:101,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:101,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:103,1
    - Dst: strncmp
      Src: /src/core/libcfnet/addr_lib.c:109,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:109,1
    - Dst: inet_pton
      Src: /src/core/libcfnet/addr_lib.c:121,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:122,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:127,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:130,1
    - Dst: inet_pton
      Src: /src/core/libcfnet/addr_lib.c:138,1
    - Dst: htonl
      Src: /src/core/libcfnet/addr_lib.c:140,1
    - Dst: htonl
      Src: /src/core/libcfnet/addr_lib.c:141,1
    - Dst: assert
      Src: /src/core/libcfnet/addr_lib.c:144,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:169,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:172,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:177,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:184,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:187,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:193,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:199,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:201,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:202,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:206,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:212,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:218,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:219,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:223,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:228,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:231,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:247,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:250,1
    - Dst: inet_pton
      Src: /src/core/libcfnet/addr_lib.c:257,1
    - Dst: inet_pton
      Src: /src/core/libcfnet/addr_lib.c:262,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:298,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:301,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:308,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:311,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:317,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:319,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:320,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:329,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:335,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:336,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 175
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (shift < 32)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/core/libcfnet/addr_lib.c
    constantsTouched: []
    func_position:
      end: 350
      start: 41
    functionDepth: 8
    functionLinenumber: 41
    functionLinenumberEnd: 350
    functionName: FuzzySetMatch
    functionSourceFile: /src/core/libcfnet/addr_lib.c
    functionUses: 4
    functionsReached:
    - strncmp
    - strlen
    - strstr
    - assert
    - sscanf
    - Log
    - strcmp
    - htonl
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int FuzzySetMatch(const char *s1, const char *s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:357,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg2
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 352
    functionDepth: 8
    functionLinenumber: 352
    functionLinenumberEnd: 367
    functionName: FuzzyHostParse
    functionSourceFile: /src/core/libcfnet/addr_lib.c
    functionUses: 1
    functionsReached:
    - sscanf
    - Log
    linkageType: ''
    returnType: bool
    signature: bool FuzzyHostParse(const char *arg2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libcfnet/addr_lib.c:375,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:376,1
    - Dst: isdigit
      Src: /src/core/libcfnet/addr_lib.c:378,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:384,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:392,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:397,1
    - Dst: strlcpy
      Src: /src/core/libcfnet/addr_lib.c:404,1
    - Dst: strlcpy
      Src: /src/core/libcfnet/addr_lib.c:405,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libcfnet/addr_lib.c:407,1
    - Dst: ToLowerStrInplace
      Src: /src/core/libcfnet/addr_lib.c:408,1
    - Dst: strcmp
      Src: /src/core/libcfnet/addr_lib.c:410,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - arg0
    - arg1
    - refhost
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 416
    functionName: FuzzyHostMatch
    functionSourceFile: /src/core/libcfnet/addr_lib.c
    functionUses: 1
    functionsReached:
    - ToLowerStrInplace
    - strlen
    - isdigit
    - sscanf
    - strcmp
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int FuzzyHostMatch(const char *arg0, const char *arg1, const char *refhost)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/core/libcfnet/addr_lib.c:426,1
    - Dst: isdigit
      Src: /src/core/libcfnet/addr_lib.c:438,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:458,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:463,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:468,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:473,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:480,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:486,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:492,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:494,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:500,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:504,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:510,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:525,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:528,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:533,1
    - Dst: strstr
      Src: /src/core/libcfnet/addr_lib.c:539,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:541,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:545,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:551,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:564,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:566,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:570,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:572,1
    - Dst: sscanf
      Src: /src/core/libcfnet/addr_lib.c:578,1
    - Dst: Log
      Src: /src/core/libcfnet/addr_lib.c:582,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 103
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 418
    functionDepth: 8
    functionLinenumber: 418
    functionLinenumberEnd: 588
    functionName: FuzzyMatchParse
    functionSourceFile: /src/core/libcfnet/addr_lib.c
    functionUses: 3
    functionsReached:
    - strlen
    - strstr
    - isxdigit
    - isdigit
    - sscanf
    - Log
    linkageType: ''
    returnType: bool
    signature: bool FuzzyMatchParse(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libcfnet/addr_lib.c:597,1
    - Dst: strlen
      Src: /src/core/libcfnet/addr_lib.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - address_type
    argTypes:
    - char*
    - AddressType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 606
    functionName: AddressTypeCheckValidity
    functionSourceFile: /src/core/libcfnet/addr_lib.c
    functionUses: 0
    functionsReached:
    - NULL_OR_EMPTY
    - strlen
    linkageType: ''
    returnType: AddressType
    signature: AddressType AddressTypeCheckValidity(char *s, AddressType address_type)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TrimWhitespace
      Src: /src/core/libcfnet/addr_lib.c:618,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libcfnet/addr_lib.c:619,1
    - Dst: strchr
      Src: /src/core/libcfnet/addr_lib.c:632,1
    - Dst: strchr
      Src: /src/core/libcfnet/addr_lib.c:633,1
    - Dst: strchr
      Src: /src/core/libcfnet/addr_lib.c:638,1
    - Dst: isdigit
      Src: /src/core/libcfnet/addr_lib.c:645,1
    - Dst: isdigit
      Src: /src/core/libcfnet/addr_lib.c:659,1
    - Dst: strchr
      Src: /src/core/libcfnet/addr_lib.c:667,1
    - Dst: strchr
      Src: /src/core/libcfnet/addr_lib.c:679,1
    - Dst: isdigit
      Src: /src/core/libcfnet/addr_lib.c:685,1
    - Dst: AddressTypeCheckValidity
      Src: /src/core/libcfnet/addr_lib.c:694,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 3
    argNames:
    - s
    - hostname
    - port
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 695
    functionName: ParseHostPort
    functionSourceFile: /src/core/libcfnet/addr_lib.c
    functionUses: 4
    functionsReached:
    - isdigit
    - TrimWhitespace
    - strchr
    - AddressTypeCheckValidity
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: AddressType
    signature: AddressType ParseHostPort(char *s, char **hostname, char **port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmemdup
      Src: /src/core/libcfnet/stat_cache.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - conn
    argTypes:
    - Stat*
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: NewStatCache
    functionSourceFile: /src/core/libcfnet/stat_cache.c
    functionUses: 0
    functionsReached:
    - xmemdup
    linkageType: ''
    returnType: void
    signature: void NewStatCache(Stat *data, AgentConnection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libcfnet/stat_cache.c:48,1
    - Dst: free
      Src: /src/core/libcfnet/stat_cache.c:49,1
    - Dst: free
      Src: /src/core/libcfnet/stat_cache.c:50,1
    - Dst: free
      Src: /src/core/libcfnet/stat_cache.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - Stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: DestroyStatCache
    functionSourceFile: /src/core/libcfnet/stat_cache.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void DestroyStatCache(Stat *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libcfnet/stat_cache.c:67,1
    - Dst: strcmp
      Src: /src/core/libcfnet/stat_cache.c:68,1
    - Dst: strcmp
      Src: /src/core/libcfnet/stat_cache.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - conn
    - file
    - statbuf
    - stattype
    argTypes:
    - AgentConnection*
    - char*
    - struct stat*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 100
    functionName: StatFromCache
    functionSourceFile: /src/core/libcfnet/stat_cache.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int StatFromCache(AgentConnection *conn, const char *file,\n                         struct
      stat *statbuf, const char *stattype)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/stat_cache.c:111,1
    - Dst: assert
      Src: /src/core/libcfnet/stat_cache.c:112,1
    - Dst: assert
      Src: /src/core/libcfnet/stat_cache.c:113,1
    - Dst: assert
      Src: /src/core/libcfnet/stat_cache.c:114,1
    - Dst: strcmp
      Src: /src/core/libcfnet/stat_cache.c:114,1
    - Dst: strcmp
      Src: /src/core/libcfnet/stat_cache.c:115,1
    - Dst: strlen
      Src: /src/core/libcfnet/stat_cache.c:121,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:123,1
    - Dst: StatFromCache
      Src: /src/core/libcfnet/stat_cache.c:127,1
    - Dst: memset
      Src: /src/core/libcfnet/stat_cache.c:136,1
    - Dst: time
      Src: /src/core/libcfnet/stat_cache.c:138,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:141,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/stat_cache.c:142,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:154,1
    - Dst: snprintf
      Src: /src/core/libcfnet/stat_cache.c:161,1
    - Dst: EncryptString
      Src: /src/core/libcfnet/stat_cache.c:163,1
    - Dst: strlen
      Src: /src/core/libcfnet/stat_cache.c:163,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/stat_cache.c:170,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/stat_cache.c:174,1
    - Dst: snprintf
      Src: /src/core/libcfnet/stat_cache.c:178,1
    - Dst: memcpy
      Src: /src/core/libcfnet/stat_cache.c:179,1
    - Dst: snprintf
      Src: /src/core/libcfnet/stat_cache.c:183,1
    - Dst: strlen
      Src: /src/core/libcfnet/stat_cache.c:185,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/stat_cache.c:188,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:190,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/stat_cache.c:192,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/stat_cache.c:196,1
    - Dst: strstr
      Src: /src/core/libcfnet/stat_cache.c:202,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:204,1
    - Dst: strlen
      Src: /src/core/libcfnet/stat_cache.c:206,1
    - Dst: BadProtoReply
      Src: /src/core/libcfnet/stat_cache.c:210,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:212,1
    - Dst: strlen
      Src: /src/core/libcfnet/stat_cache.c:213,1
    - Dst: OKProtoReply
      Src: /src/core/libcfnet/stat_cache.c:218,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:220,1
    - Dst: StatParseResponse
      Src: /src/core/libcfnet/stat_cache.c:229,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:232,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/stat_cache.c:238,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/stat_cache.c:251,1
    - Dst: FileTypeToMode
      Src: /src/core/libcfnet/stat_cache.c:258,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:261,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/stat_cache.c:268,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/stat_cache.c:269,1
    - Dst: NewStatCache
      Src: /src/core/libcfnet/stat_cache.c:277,1
    - Dst: strcmp
      Src: /src/core/libcfnet/stat_cache.c:279,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 99
    argCount: 5
    argNames:
    - conn
    - encrypt
    - file
    - statbuf
    - stattype
    argTypes:
    - AgentConnection*
    - bool
    - char*
    - struct stat*
    - char*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/core/libcfnet/stat_cache.c
    - condition: "(strcmp(stattype, \"file\") == 0 ||\n           strcmp(stattype,
        \"link\") == 0)"
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/core/libcfnet/stat_cache.c
    - condition: (statbuf != NULL)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/core/libcfnet/stat_cache.c
    - condition: (file != NULL)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/core/libcfnet/stat_cache.c
    constantsTouched: []
    func_position:
      end: 299
      start: 108
    functionDepth: 8
    functionLinenumber: 108
    functionLinenumberEnd: 299
    functionName: cf_remote_stat
    functionSourceFile: /src/core/libcfnet/stat_cache.c
    functionUses: 1
    functionsReached:
    - StatFromCache
    - Log
    - NewStatCache
    - time
    - FileTypeToMode
    - snprintf
    - strlen
    - SendTransaction
    - strcmp
    - ReceiveTransaction
    - xstrdup
    - memset
    - BadProtoReply
    - assert
    - StatParseResponse
    - GetErrorStr
    - memcpy
    - OKProtoReply
    - strstr
    - ProgrammingError
    - EncryptString
    linkageType: ''
    returnType: int
    signature: "int cf_remote_stat(AgentConnection *conn, bool encrypt, const char
      *file,\n                   struct stat *statbuf, const char *stattype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/libcfnet/stat_cache.c:309,1
    - Dst: strcmp
      Src: /src/core/libcfnet/stat_cache.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - conn
    - file_name
    - server_name
    argTypes:
    - AgentConnection*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: StatCacheLookup
    functionSourceFile: /src/core/libcfnet/stat_cache.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: Stat
    signature: "Stat *StatCacheLookup(const AgentConnection *conn, const char *file_name,\n
      \                           const char *server_name)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - type
    argTypes:
    - FileType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 352
    functionName: FileTypeToMode
    functionSourceFile: /src/core/libcfnet/stat_cache.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t FileTypeToMode(const FileType type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/stat_cache.c:358,1
    - Dst: assert
      Src: /src/core/libcfnet/stat_cache.c:359,1
    - Dst: sscanf
      Src: /src/core/libcfnet/stat_cache.c:363,1
    - Dst: Log
      Src: /src/core/libcfnet/stat_cache.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - statbuf
    argTypes:
    - char*
    - Stat*
    assertStmts:
    - condition: (buf != NULL)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/core/libcfnet/stat_cache.c
    - condition: (statbuf != NULL)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/core/libcfnet/stat_cache.c
    constantsTouched: []
    func_position:
      end: 406
      start: 356
    functionDepth: 8
    functionLinenumber: 356
    functionLinenumberEnd: 406
    functionName: StatParseResponse
    functionSourceFile: /src/core/libcfnet/stat_cache.c
    functionUses: 2
    functionsReached:
    - sscanf
    - assert
    - Log
    linkageType: ''
    returnType: bool
    signature: bool StatParseResponse(const char *const buf, Stat *const statbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/libcfnet/key.c:43,1
    - Dst: HashNewFromKey
      Src: /src/core/libcfnet/key.c:46,1
    - Dst: free
      Src: /src/core/libcfnet/key.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - rsa
    - method
    argTypes:
    - RSA*
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: KeyNew
    functionSourceFile: /src/core/libcfnet/key.c
    functionUses: 3
    functionsReached:
    - HashNewFromKey
    - xmalloc
    - free
    linkageType: ''
    returnType: Key
    signature: Key *KeyNew(RSA *rsa, HashMethod method)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/core/libcfnet/key.c:63,1
    - Dst: HashDestroy
      Src: /src/core/libcfnet/key.c:65,1
    - Dst: free
      Src: /src/core/libcfnet/key.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: KeyDestroy
    functionSourceFile: /src/core/libcfnet/key.c
    functionUses: 5
    functionsReached:
    - HashDestroy
    - free
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void KeyDestroy(Key **key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: KeyRSA
    functionSourceFile: /src/core/libcfnet/key.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: RSA
    signature: RSA *KeyRSA(const Key *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HashData
      Src: /src/core/libcfnet/key.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - key
    - length
    argTypes:
    - Key*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: KeyBinaryHash
    functionSourceFile: /src/core/libcfnet/key.c
    functionUses: 1
    functionsReached:
    - HashData
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *KeyBinaryHash(const Key *key, unsigned int *length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashPrintable
      Src: /src/core/libcfnet/key.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: KeyPrintableHash
    functionSourceFile: /src/core/libcfnet/key.c
    functionUses: 5
    functionsReached:
    - HashPrintable
    linkageType: ''
    returnType: char
    signature: char *KeyPrintableHash(const Key *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashType
      Src: /src/core/libcfnet/key.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: KeyHashMethod
    functionSourceFile: /src/core/libcfnet/key.c
    functionUses: 2
    functionsReached:
    - HashType
    linkageType: ''
    returnType: HashMethod
    signature: HashMethod KeyHashMethod(const Key *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HashNewFromKey
      Src: /src/core/libcfnet/key.c:102,1
    - Dst: HashDestroy
      Src: /src/core/libcfnet/key.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - key
    - method
    argTypes:
    - Key*
    - HashMethod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: KeySetHashMethod
    functionSourceFile: /src/core/libcfnet/key.c
    functionUses: 1
    functionsReached:
    - HashDestroy
    - HashNewFromKey
    linkageType: ''
    returnType: int
    signature: int KeySetHashMethod(Key *key, HashMethod method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: KeyData
    functionSourceFile: /src/core/libcfnet/key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Hash
    signature: Hash *KeyData(Key *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libcfnet/policy_server.c:51,1
    - Dst: isspace
      Src: /src/core/libcfnet/policy_server.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: is_whitespace_empty
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 0
    functionsReached:
    - NULL_OR_EMPTY
    - isspace
    linkageType: ''
    returnType: bool
    signature: bool is_whitespace_empty(const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:72,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:73,1
    - Dst: is_whitespace_empty
      Src: /src/core/libcfnet/policy_server.c:80,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/policy_server.c:86,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/policy_server.c:91,1
    - Dst: ParseHostPort
      Src: /src/core/libcfnet/policy_server.c:93,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/policy_server.c:97,1
    - Dst: assert
      Src: /src/core/libcfnet/policy_server.c:101,1
    - Dst: strlen
      Src: /src/core/libcfnet/policy_server.c:101,1
    - Dst: StringCopy
      Src: /src/core/libcfnet/policy_server.c:102,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libcfnet/policy_server.c:105,1
    - Dst: strlen
      Src: /src/core/libcfnet/policy_server.c:107,1
    - Dst: strcpy
      Src: /src/core/libcfnet/policy_server.c:109,1
    - Dst: Log
      Src: /src/core/libcfnet/policy_server.c:113,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - new_policy_server
    argTypes:
    - char*
    assertStmts:
    - condition: (strlen(host_or_ip) < sizeof(POLICY_SERVER_IP))
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/core/libcfnet/policy_server.c
    constantsTouched: []
    func_position:
      end: 120
      start: 69
    functionDepth: 8
    functionLinenumber: 69
    functionLinenumberEnd: 120
    functionName: PolicyServerSet
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 1
    functionsReached:
    - strlen
    - assert
    - StringCopy
    - ParseHostPort
    - is_whitespace_empty
    - Log
    - xstrdup
    - free
    - NULL_OR_EMPTY
    - strcpy
    linkageType: ''
    returnType: void
    signature: void PolicyServerSet(const char *new_policy_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/libcfnet/policy_server.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: CheckEmptyReturn
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 0
    functionsReached:
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: char
    signature: char *CheckEmptyReturn(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: PolicyServerGet
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *PolicyServerGet()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CheckEmptyReturn
      Src: /src/core/libcfnet/policy_server.c:151,1
    - Dst: assert
      Src: /src/core/libcfnet/policy_server.c:153,1
    - Dst: Hostname2IPString
      Src: /src/core/libcfnet/policy_server.c:154,1
    - Dst: CheckEmptyReturn
      Src: /src/core/libcfnet/policy_server.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (POLICY_SERVER_HOST[0] != '\0')
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/core/libcfnet/policy_server.c
    constantsTouched: []
    func_position:
      end: 161
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: PolicyServerGetIP
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 2
    functionsReached:
    - assert
    - CheckEmptyReturn
    - Hostname2IPString
    linkageType: ''
    returnType: char
    signature: char *PolicyServerGetIP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: PolicyServerGetHost
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *PolicyServerGetHost()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckEmptyReturn
      Src: /src/core/libcfnet/policy_server.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: PolicyServerGetPort
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 1
    functionsReached:
    - CheckEmptyReturn
    linkageType: ''
    returnType: char
    signature: char *PolicyServerGetPort()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringFormat
      Src: /src/core/libcfnet/policy_server.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: PolicyServerFilename
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 0
    functionsReached:
    - StringFormat
    linkageType: ''
    returnType: char
    signature: char *PolicyServerFilename(const char *workdir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PolicyServerFilename
      Src: /src/core/libcfnet/policy_server.c:201,1
    - Dst: safe_fopen
      Src: /src/core/libcfnet/policy_server.c:202,1
    - Dst: Log
      Src: /src/core/libcfnet/policy_server.c:205,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/policy_server.c:206,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:207,1
    - Dst: fgets
      Src: /src/core/libcfnet/policy_server.c:211,1
    - Dst: Log
      Src: /src/core/libcfnet/policy_server.c:213,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/policy_server.c:214,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:215,1
    - Dst: fclose
      Src: /src/core/libcfnet/policy_server.c:216,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:220,1
    - Dst: fclose
      Src: /src/core/libcfnet/policy_server.c:221,1
    - Dst: TrimWhitespace
      Src: /src/core/libcfnet/policy_server.c:222,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/policy_server.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 197
    functionDepth: 8
    functionLinenumber: 197
    functionLinenumberEnd: 224
    functionName: PolicyServerReadFile
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 4
    functionsReached:
    - GetErrorStr
    - fgets
    - safe_fopen
    - Log
    - fclose
    - xstrdup
    - free
    - TrimWhitespace
    - PolicyServerFilename
    linkageType: ''
    returnType: char
    signature: char *PolicyServerReadFile(const char *workdir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PolicyServerReadFile
      Src: /src/core/libcfnet/policy_server.c:246,1
    - Dst: ParseHostPort
      Src: /src/core/libcfnet/policy_server.c:254,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/policy_server.c:262,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/policy_server.c:265,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - workdir
    - host
    - port
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 244
    functionDepth: 9
    functionLinenumber: 244
    functionLinenumberEnd: 269
    functionName: PolicyServerParseFile
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 0
    functionsReached:
    - PolicyServerReadFile
    - free
    - ParseHostPort
    - xstrdup
    linkageType: ''
    returnType: bool
    signature: bool PolicyServerParseFile(const char *workdir, char **host, char **port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PolicyServerParseFile
      Src: /src/core/libcfnet/policy_server.c:284,1
    - Dst: Hostname2IPString
      Src: /src/core/libcfnet/policy_server.c:290,1
    - Dst: Log
      Src: /src/core/libcfnet/policy_server.c:292,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:294,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:295,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/policy_server.c:299,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - workdir
    - ipaddr
    - port
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 281
    functionDepth: 10
    functionLinenumber: 281
    functionLinenumberEnd: 302
    functionName: PolicyServerLookUpFile
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 1
    functionsReached:
    - Hostname2IPString
    - Log
    - xstrdup
    - PolicyServerParseFile
    - free
    linkageType: ''
    returnType: bool
    signature: bool PolicyServerLookUpFile(const char *workdir, char **ipaddr, char
      **port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PolicyServerFilename
      Src: /src/core/libcfnet/policy_server.c:312,1
    - Dst: safe_fopen
      Src: /src/core/libcfnet/policy_server.c:314,1
    - Dst: Log
      Src: /src/core/libcfnet/policy_server.c:317,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/policy_server.c:317,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:318,1
    - Dst: fprintf
      Src: /src/core/libcfnet/policy_server.c:322,1
    - Dst: fclose
      Src: /src/core/libcfnet/policy_server.c:323,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - workdir
    - new_policy_server
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 310
    functionDepth: 8
    functionLinenumber: 310
    functionLinenumberEnd: 327
    functionName: PolicyServerWriteFile
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - safe_fopen
    - Log
    - fclose
    - fprintf
    - free
    - PolicyServerFilename
    linkageType: ''
    returnType: bool
    signature: bool PolicyServerWriteFile(const char *workdir, const char *new_policy_server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PolicyServerFilename
      Src: /src/core/libcfnet/policy_server.c:336,1
    - Dst: unlink
      Src: /src/core/libcfnet/policy_server.c:338,1
    - Dst: Log
      Src: /src/core/libcfnet/policy_server.c:340,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/policy_server.c:340,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:341,1
    - Dst: free
      Src: /src/core/libcfnet/policy_server.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 334
    functionDepth: 8
    functionLinenumber: 334
    functionLinenumberEnd: 347
    functionName: PolicyServerRemoveFile
    functionSourceFile: /src/core/libcfnet/policy_server.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - unlink
    - Log
    - free
    - PolicyServerFilename
    linkageType: ''
    returnType: bool
    signature: bool PolicyServerRemoveFile(const char *workdir)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:53,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:54,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:55,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:58,1
    - Dst: htons
      Src: /src/core/libcfnet/stream_protocol.c:75,1
    - Dst: TLSSend
      Src: /src/core/libcfnet/stream_protocol.c:76,1
    - Dst: Log
      Src: /src/core/libcfnet/stream_protocol.c:79,1
    - Dst: TLSSend
      Src: /src/core/libcfnet/stream_protocol.c:90,1
    - Dst: Log
      Src: /src/core/libcfnet/stream_protocol.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - conn
    - msg
    - len
    - eof
    - err
    argTypes:
    - SSL*
    - char*
    - size_t
    - bool
    - bool
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (sizeof(len) >= 3)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (msg != NULL || len == 0)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (len <= PROTOCOL_MESSAGE_SIZE)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/core/libcfnet/stream_protocol.c
    constantsTouched: []
    func_position:
      end: 103
      start: 50
    functionDepth: 10
    functionLinenumber: 50
    functionLinenumberEnd: 103
    functionName: __ProtocolSendMessage
    functionSourceFile: /src/core/libcfnet/stream_protocol.c
    functionUses: 0
    functionsReached:
    - assert
    - TLSSend
    - Log
    - htons
    linkageType: ''
    returnType: bool
    signature: "bool __ProtocolSendMessage(\n    SSL *conn, const char *msg, size_t
      len, bool eof, bool err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:107,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:108,1
    - Dst: __ProtocolSendMessage
      Src: /src/core/libcfnet/stream_protocol.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - conn
    - msg
    - len
    - eof
    argTypes:
    - SSL*
    - char*
    - size_t
    - bool
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (msg != NULL || len == 0)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/core/libcfnet/stream_protocol.c
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 11
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: ProtocolSendMessage
    functionSourceFile: /src/core/libcfnet/stream_protocol.c
    functionUses: 2
    functionsReached:
    - assert
    - __ProtocolSendMessage
    linkageType: ''
    returnType: bool
    signature: bool ProtocolSendMessage(SSL *conn, const char *msg, size_t len, bool
      eof)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:115,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:116,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:117,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:118,1
    - Dst: TLSRecv
      Src: /src/core/libcfnet/stream_protocol.c:124,1
    - Dst: Log
      Src: /src/core/libcfnet/stream_protocol.c:127,1
    - Dst: memcpy
      Src: /src/core/libcfnet/stream_protocol.c:139,1
    - Dst: ntohs
      Src: /src/core/libcfnet/stream_protocol.c:140,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:149,1
    - Dst: TLSRecv
      Src: /src/core/libcfnet/stream_protocol.c:164,1
    - Dst: Log
      Src: /src/core/libcfnet/stream_protocol.c:167,1
    - Dst: memcpy
      Src: /src/core/libcfnet/stream_protocol.c:174,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:180,1
    - Dst: Log
      Src: /src/core/libcfnet/stream_protocol.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - conn
    - msg
    - len
    - eof
    argTypes:
    - SSL*
    - char*
    - size_t*
    - bool*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (eof != NULL)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (len != NULL)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (msg != NULL)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (sizeof(*len) >= 2)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (*len < sizeof(recv_buffer))
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/core/libcfnet/stream_protocol.c
    constantsTouched: []
    func_position:
      end: 187
      start: 113
    functionDepth: 10
    functionLinenumber: 113
    functionLinenumberEnd: 187
    functionName: ProtocolRecvMessage
    functionSourceFile: /src/core/libcfnet/stream_protocol.c
    functionUses: 1
    functionsReached:
    - ntohs
    - memcpy
    - assert
    - Log
    - TLSRecv
    linkageType: ''
    returnType: bool
    signature: bool ProtocolRecvMessage(SSL *conn, char *msg, size_t *len, bool *eof)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:191,1
    - Dst: ProtocolRecvMessage
      Src: /src/core/libcfnet/stream_protocol.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - SSL*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/core/libcfnet/stream_protocol.c
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 11
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: ProtocolFlushStream
    functionSourceFile: /src/core/libcfnet/stream_protocol.c
    functionUses: 1
    functionsReached:
    - assert
    - ProtocolRecvMessage
    linkageType: ''
    returnType: bool
    signature: bool ProtocolFlushStream(SSL *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:210,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:211,1
    - Dst: va_start
      Src: /src/core/libcfnet/stream_protocol.c:216,1
    - Dst: vsnprintf
      Src: /src/core/libcfnet/stream_protocol.c:217,1
    - Dst: va_end
      Src: /src/core/libcfnet/stream_protocol.c:218,1
    - Dst: assert
      Src: /src/core/libcfnet/stream_protocol.c:220,1
    - Dst: Log
      Src: /src/core/libcfnet/stream_protocol.c:223,1
    - Dst: Log
      Src: /src/core/libcfnet/stream_protocol.c:228,1
    - Dst: ProtocolFlushStream
      Src: /src/core/libcfnet/stream_protocol.c:244,1
    - Dst: __ProtocolSendMessage
      Src: /src/core/libcfnet/stream_protocol.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - conn
    - flush
    - fmt
    argTypes:
    - SSL*
    - bool
    - char*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (fmt != NULL)
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/core/libcfnet/stream_protocol.c
    - condition: (len >= 0)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/core/libcfnet/stream_protocol.c
    constantsTouched: []
    func_position:
      end: 248
      start: 208
    functionDepth: 12
    functionLinenumber: 208
    functionLinenumberEnd: 248
    functionName: ProtocolSendError
    functionSourceFile: /src/core/libcfnet/stream_protocol.c
    functionUses: 4
    functionsReached:
    - va_start
    - assert
    - va_end
    - ProtocolFlushStream
    - Log
    - vsnprintf
    - __ProtocolSendMessage
    linkageType: ''
    returnType: bool
    signature: bool ProtocolSendError(SSL *conn, bool flush, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:27,1
    - Dst: GetSignalPipe
      Src: /src/core/libcfnet/server_code.c:29,1
    - Dst: FD_ZERO
      Src: /src/core/libcfnet/server_code.c:31,1
    - Dst: FD_SET
      Src: /src/core/libcfnet/server_code.c:32,1
    - Dst: FD_SET
      Src: /src/core/libcfnet/server_code.c:38,1
    - Dst: select
      Src: /src/core/libcfnet/server_code.c:41,1
    - Dst: MAX
      Src: /src/core/libcfnet/server_code.c:41,1
    - Dst: assert
      Src: /src/core/libcfnet/server_code.c:47,1
    - Dst: recv
      Src: /src/core/libcfnet/server_code.c:53,1
    - Dst: FD_ISSET
      Src: /src/core/libcfnet/server_code.c:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - sd
    - tm_sec
    argTypes:
    - int
    - time_t
    assertStmts:
    - condition: (result >= 0)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/core/libcfnet/server_code.c
    constantsTouched: []
    func_position:
      end: 64
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 64
    functionName: WaitForIncoming
    functionSourceFile: /src/core/libcfnet/server_code.c
    functionUses: 0
    functionsReached:
    - GetSignalPipe
    - MAX
    - recv
    - assert
    - FD_ISSET
    - FD_SET
    - FD_ZERO
    - Log
    - select
    linkageType: ''
    returnType: int
    signature: int WaitForIncoming(int sd, time_t tm_sec)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - first_response
    argTypes:
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 108
    functionName: OrderAddrInfoResponsesByAIfamily
    functionSourceFile: /src/core/libcfnet/server_code.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OrderAddrInfoResponsesByAIfamily(struct addrinfo **first_response)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/core/libcfnet/server_code.c:140,1
    - Dst: getaddrinfo
      Src: /src/core/libcfnet/server_code.c:149,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:152,1
    - Dst: gai_strerror
      Src: /src/core/libcfnet/server_code.c:153,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/server_code.c:156,1
    - Dst: OrderAddrInfoResponsesByAIfamily
      Src: /src/core/libcfnet/server_code.c:164,1
    - Dst: socket
      Src: /src/core/libcfnet/server_code.c:169,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:174,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:178,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:182,1
    - Dst: setsockopt
      Src: /src/core/libcfnet/server_code.c:198,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:201,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/server_code.c:204,1
    - Dst: setsockopt
      Src: /src/core/libcfnet/server_code.c:210,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:213,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/server_code.c:215,1
    - Dst: setsockopt
      Src: /src/core/libcfnet/server_code.c:222,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:225,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/server_code.c:227,1
    - Dst: bind
      Src: /src/core/libcfnet/server_code.c:230,1
    - Dst: WouldLog
      Src: /src/core/libcfnet/server_code.c:232,1
    - Dst: getnameinfo
      Src: /src/core/libcfnet/server_code.c:236,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:239,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:244,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/server_code.c:244,1
    - Dst: cf_closesocket
      Src: /src/core/libcfnet/server_code.c:245,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:251,1
    - Dst: assert
      Src: /src/core/libcfnet/server_code.c:256,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/server_code.c:257,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 1
    argNames:
    - bind_address
    argTypes:
    - char*
    assertStmts:
    - condition: (response != NULL)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/core/libcfnet/server_code.c
    constantsTouched: []
    func_position:
      end: 259
      start: 113
    functionDepth: 9
    functionLinenumber: 113
    functionLinenumberEnd: 259
    functionName: OpenReceiverChannel
    functionSourceFile: /src/core/libcfnet/server_code.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - freeaddrinfo
    - cf_closesocket
    - bind
    - socket
    - assert
    - isdigit
    - WouldLog
    - getnameinfo
    - OrderAddrInfoResponsesByAIfamily
    - gai_strerror
    - Log
    - getaddrinfo
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int OpenReceiverChannel(char *bind_address)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sd_listen_fds
      Src: /src/core/libcfnet/server_code.c:268,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:271,1
    - Dst: OpenReceiverChannel
      Src: /src/core/libcfnet/server_code.c:282,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:288,1
    - Dst: listen
      Src: /src/core/libcfnet/server_code.c:290,1
    - Dst: Log
      Src: /src/core/libcfnet/server_code.c:292,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/server_code.c:293,1
    - Dst: cf_closesocket
      Src: /src/core/libcfnet/server_code.c:294,1
    - Dst: DoCleanupAndExit
      Src: /src/core/libcfnet/server_code.c:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - queue_size
    - bind_address
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 265
    functionDepth: 10
    functionLinenumber: 265
    functionLinenumberEnd: 303
    functionName: InitServer
    functionSourceFile: /src/core/libcfnet/server_code.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - OpenReceiverChannel
    - cf_closesocket
    - DoCleanupAndExit
    - Log
    - sd_listen_fds
    - listen
    linkageType: ''
    returnType: int
    signature: int InitServer(size_t queue_size, char *bind_address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/patch_stream.c:35,1
    - Dst: ProtocolSendError
      Src: /src/core/libcfnet/patch_stream.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - SSL*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/core/libcfnet/patch_stream.c
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 13
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: PatchStreamRefuse
    functionSourceFile: /src/core/libcfnet/patch_stream.c
    functionUses: 0
    functionsReached:
    - assert
    - ProtocolSendError
    linkageType: ''
    returnType: bool
    signature: bool PatchStreamRefuse(SSL *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/patch_stream.c:44,1
    - Dst: assert
      Src: /src/core/libcfnet/patch_stream.c:45,1
    - Dst: ProtocolSendMessage
      Src: /src/core/libcfnet/patch_stream.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - conn
    - data
    - len
    argTypes:
    - SSL*
    - void*
    - size_t
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/core/libcfnet/patch_stream.c
    - condition: (data != NULL || len == 0)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/core/libcfnet/patch_stream.c
    constantsTouched: []
    func_position:
      end: 69
      start: 42
    functionDepth: 12
    functionLinenumber: 42
    functionLinenumberEnd: 69
    functionName: PatchStreamServe
    functionSourceFile: /src/core/libcfnet/patch_stream.c
    functionUses: 0
    functionsReached:
    - assert
    - ProtocolSendMessage
    linkageType: ''
    returnType: bool
    signature: bool PatchStreamServe(SSL *conn, const void *data, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/patch_stream.c:73,1
    - Dst: assert
      Src: /src/core/libcfnet/patch_stream.c:74,1
    - Dst: assert
      Src: /src/core/libcfnet/patch_stream.c:75,1
    - Dst: ProtocolRecvMessage
      Src: /src/core/libcfnet/patch_stream.c:86,1
    - Dst: free
      Src: /src/core/libcfnet/patch_stream.c:89,1
    - Dst: Log
      Src: /src/core/libcfnet/patch_stream.c:99,1
    - Dst: free
      Src: /src/core/libcfnet/patch_stream.c:102,1
    - Dst: xrealloc
      Src: /src/core/libcfnet/patch_stream.c:106,1
    - Dst: memcpy
      Src: /src/core/libcfnet/patch_stream.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - conn
    - data
    - len
    argTypes:
    - SSL*
    - char**
    - size_t*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/core/libcfnet/patch_stream.c
    - condition: (data != NULL)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/core/libcfnet/patch_stream.c
    - condition: (len != NULL)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/core/libcfnet/patch_stream.c
    constantsTouched: []
    func_position:
      end: 115
      start: 71
    functionDepth: 11
    functionLinenumber: 71
    functionLinenumberEnd: 115
    functionName: PatchStreamFetch
    functionSourceFile: /src/core/libcfnet/patch_stream.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - xrealloc
    - Log
    - free
    - ProtocolRecvMessage
    linkageType: ''
    returnType: bool
    signature: bool PatchStreamFetch(SSL *conn, char **data, size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libcfnet/connection_info.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: ConnectionInfoNew
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 1
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: ConnectionInfo
    signature: ConnectionInfo *ConnectionInfoNew(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/core/libcfnet/connection_info.c:48,1
    - Dst: KeyDestroy
      Src: /src/core/libcfnet/connection_info.c:50,1
    - Dst: free
      Src: /src/core/libcfnet/connection_info.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - info
    argTypes:
    - ConnectionInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: ConnectionInfoDestroy
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 1
    functionsReached:
    - free
    - SSL_free
    - KeyDestroy
    linkageType: ''
    returnType: void
    signature: void ConnectionInfoDestroy(ConnectionInfo **info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - ConnectionInfo*
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: ConnectionInfoProtocolVersion
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: ProtocolVersion
    signature: ProtocolVersion ConnectionInfoProtocolVersion(const ConnectionInfo
      *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - info
    - version
    argTypes:
    - ConnectionInfo*
    - ProtocolVersion
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: ConnectionInfoSetProtocolVersion
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ConnectionInfoSetProtocolVersion(ConnectionInfo *info, ProtocolVersion
      version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - ConnectionInfo*
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: ConnectionInfoSocket
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int ConnectionInfoSocket(const ConnectionInfo *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - info
    - s
    argTypes:
    - ConnectionInfo*
    - int
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: ConnectionInfoSetSocket
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ConnectionInfoSetSocket(ConnectionInfo *info, int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - ConnectionInfo*
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: ConnectionInfoSSL
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SSL
    signature: SSL *ConnectionInfoSSL(const ConnectionInfo *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - info
    - ssl
    argTypes:
    - ConnectionInfo*
    - SSL*
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: ConnectionInfoSetSSL
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ConnectionInfoSetSSL(ConnectionInfo *info, SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - ConnectionInfo*
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: ConnectionInfoKey
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Key
    signature: Key *ConnectionInfoKey(const ConnectionInfo *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - info
    - key
    argTypes:
    - ConnectionInfo*
    - Key*
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: ConnectionInfoSetKey
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ConnectionInfoSetKey(ConnectionInfo *info, Key *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:148,1
    - Dst: KeyBinaryHash
      Src: /src/core/libcfnet/connection_info.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - info
    - length
    argTypes:
    - ConnectionInfo*
    - unsigned int*
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 162
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 162
    functionName: ConnectionInfoBinaryKeyHash
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 0
    functionsReached:
    - assert
    - KeyBinaryHash
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ConnectionInfoBinaryKeyHash(ConnectionInfo *info, unsigned
      int *length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/connection_info.c:166,1
    - Dst: KeyPrintableHash
      Src: /src/core/libcfnet/connection_info.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - ConnectionInfo*
    assertStmts:
    - condition: (info != NULL)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/core/libcfnet/connection_info.c
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: ConnectionInfoPrintableKeyHash
    functionSourceFile: /src/core/libcfnet/connection_info.c
    functionUses: 0
    functionsReached:
    - assert
    - KeyPrintableHash
    linkageType: ''
    returnType: char
    signature: char *ConnectionInfoPrintableKeyHash(ConnectionInfo *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: SetSkipIdentify
    functionSourceFile: /src/core/libcfnet/client_protocol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSkipIdentify(bool enabled)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/client_protocol.c:65,1
    - Dst: strcmp
      Src: /src/core/libcfnet/client_protocol.c:71,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:73,1
    - Dst: getsockname
      Src: /src/core/libcfnet/client_protocol.c:87,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:89,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_protocol.c:89,1
    - Dst: getnameinfo
      Src: /src/core/libcfnet/client_protocol.c:94,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:99,1
    - Dst: gai_strerror
      Src: /src/core/libcfnet/client_protocol.c:101,1
    - Dst: getnameinfo
      Src: /src/core/libcfnet/client_protocol.c:106,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:112,1
    - Dst: gai_strerror
      Src: /src/core/libcfnet/client_protocol.c:114,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_protocol.c:124,1
    - Dst: IsIPV6Address
      Src: /src/core/libcfnet/client_protocol.c:125,1
    - Dst: strchr
      Src: /src/core/libcfnet/client_protocol.c:125,1
    - Dst: strcmp
      Src: /src/core/libcfnet/client_protocol.c:126,1
    - Dst: strcat
      Src: /src/core/libcfnet/client_protocol.c:128,1
    - Dst: strlcat
      Src: /src/core/libcfnet/client_protocol.c:129,1
    - Dst: strncmp
      Src: /src/core/libcfnet/client_protocol.c:134,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_protocol.c:134,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_protocol.c:135,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_protocol.c:137,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:138,1
    - Dst: nt_static_assert
      Src: /src/core/libcfnet/client_protocol.c:144,1
    - Dst: strcpy
      Src: /src/core/libcfnet/client_protocol.c:145,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:147,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_protocol.c:149,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_protocol.c:150,1
    - Dst: strcpy
      Src: /src/core/libcfnet/client_protocol.c:152,1
    - Dst: strcpy
      Src: /src/core/libcfnet/client_protocol.c:156,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_protocol.c:162,1
    - Dst: GetCurrentUserName
      Src: /src/core/libcfnet/client_protocol.c:164,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_protocol.c:167,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_protocol.c:170,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:172,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_protocol.c:173,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - conn_info
    argTypes:
    - ConnectionInfo*
    assertStmts:
    - condition: (conn_info != NULL)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/core/libcfnet/client_protocol.c
    constantsTouched: []
    func_position:
      end: 178
      start: 63
    functionDepth: 14
    functionLinenumber: 63
    functionLinenumberEnd: 178
    functionName: IdentifyAgent
    functionSourceFile: /src/core/libcfnet/client_protocol.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - IsIPV6Address
    - strncmp
    - strlcat
    - GetCurrentUserName
    - nt_static_assert
    - snprintf
    - getsockname
    - strlen
    - assert
    - getnameinfo
    - strchr
    - gai_strerror
    - strcat
    - Log
    - strcmp
    - SendTransaction
    - strcpy
    linkageType: ''
    returnType: bool
    signature: bool IdentifyAgent(ConnectionInfo *conn_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CfSessionKeySize
      Src: /src/core/libcfnet/client_protocol.c:185,1
    - Dst: BN_new
      Src: /src/core/libcfnet/client_protocol.c:187,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:191,1
    - Dst: BN_rand
      Src: /src/core/libcfnet/client_protocol.c:196,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:198,1
    - Dst: BN_clear_free
      Src: /src/core/libcfnet/client_protocol.c:199,1
    - Dst: xmalloc
      Src: /src/core/libcfnet/client_protocol.c:203,1
    - Dst: BN_num_bytes
      Src: /src/core/libcfnet/client_protocol.c:203,1
    - Dst: BN_bn2bin
      Src: /src/core/libcfnet/client_protocol.c:204,1
    - Dst: BN_clear_free
      Src: /src/core/libcfnet/client_protocol.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 182
    functionDepth: 8
    functionLinenumber: 182
    functionLinenumberEnd: 208
    functionName: SetSessionKey
    functionSourceFile: /src/core/libcfnet/client_protocol.c
    functionUses: 0
    functionsReached:
    - CfSessionKeySize
    - BN_new
    - BN_bn2bin
    - xmalloc
    - Log
    - BN_clear_free
    - BN_rand
    - BN_num_bytes
    linkageType: ''
    returnType: bool
    signature: bool SetSessionKey(AgentConnection *conn)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:224,1
    - Dst: CfEnterpriseOptions
      Src: /src/core/libcfnet/client_protocol.c:229,1
    - Dst: CfSessionKeySize
      Src: /src/core/libcfnet/client_protocol.c:230,1
    - Dst: BN_new
      Src: /src/core/libcfnet/client_protocol.c:234,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:237,1
    - Dst: BN_rand
      Src: /src/core/libcfnet/client_protocol.c:241,1
    - Dst: BN_bn2mpi
      Src: /src/core/libcfnet/client_protocol.c:242,1
    - Dst: HashString
      Src: /src/core/libcfnet/client_protocol.c:246,1
    - Dst: HashString
      Src: /src/core/libcfnet/client_protocol.c:250,1
    - Dst: HavePublicKeyByIP
      Src: /src/core/libcfnet/client_protocol.c:256,1
    - Dst: RSA_size
      Src: /src/core/libcfnet/client_protocol.c:260,1
    - Dst: snprintf
      Src: /src/core/libcfnet/client_protocol.c:270,1
    - Dst: xmalloc
      Src: /src/core/libcfnet/client_protocol.c:274,1
    - Dst: RSA_public_encrypt
      Src: /src/core/libcfnet/client_protocol.c:278,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:280,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libcfnet/client_protocol.c:282,1
    - Dst: free
      Src: /src/core/libcfnet/client_protocol.c:283,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:284,1
    - Dst: memcpy
      Src: /src/core/libcfnet/client_protocol.c:288,1
    - Dst: memcpy
      Src: /src/core/libcfnet/client_protocol.c:292,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_protocol.c:297,1
    - Dst: BN_free
      Src: /src/core/libcfnet/client_protocol.c:299,1
    - Dst: BN_free
      Src: /src/core/libcfnet/client_protocol.c:300,1
    - Dst: free
      Src: /src/core/libcfnet/client_protocol.c:301,1
    - Dst: RSA_get0_key
      Src: /src/core/libcfnet/client_protocol.c:307,1
    - Dst: memset
      Src: /src/core/libcfnet/client_protocol.c:309,1
    - Dst: BN_bn2mpi
      Src: /src/core/libcfnet/client_protocol.c:310,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_protocol.c:311,1
    - Dst: memset
      Src: /src/core/libcfnet/client_protocol.c:314,1
    - Dst: BN_bn2mpi
      Src: /src/core/libcfnet/client_protocol.c:315,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_protocol.c:316,1
    - Dst: memset
      Src: /src/core/libcfnet/client_protocol.c:321,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/client_protocol.c:323,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:325,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_protocol.c:325,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:326,1
    - Dst: BadProtoReply
      Src: /src/core/libcfnet/client_protocol.c:330,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:332,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:333,1
    - Dst: memset
      Src: /src/core/libcfnet/client_protocol.c:340,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/client_protocol.c:342,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:344,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/client_protocol.c:344,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:345,1
    - Dst: HashesMatch
      Src: /src/core/libcfnet/client_protocol.c:350,1
    - Dst: HashesMatch
      Src: /src/core/libcfnet/client_protocol.c:351,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:356,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:358,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:366,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:372,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:375,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:382,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:384,1
    - Dst: memset
      Src: /src/core/libcfnet/client_protocol.c:391,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/client_protocol.c:392,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:396,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:397,1
    - Dst: xmalloc
      Src: /src/core/libcfnet/client_protocol.c:401,1
    - Dst: RSA_private_decrypt
      Src: /src/core/libcfnet/client_protocol.c:403,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:405,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libcfnet/client_protocol.c:407,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:408,1
    - Dst: HashString
      Src: /src/core/libcfnet/client_protocol.c:415,1
    - Dst: HashString
      Src: /src/core/libcfnet/client_protocol.c:419,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_protocol.c:424,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_protocol.c:428,1
    - Dst: free
      Src: /src/core/libcfnet/client_protocol.c:431,1
    - Dst: RSA_new
      Src: /src/core/libcfnet/client_protocol.c:437,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:439,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/client_protocol.c:442,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:444,1
    - Dst: BN_mpi2bn
      Src: /src/core/libcfnet/client_protocol.c:449,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:451,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libcfnet/client_protocol.c:453,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:454,1
    - Dst: ReceiveTransaction
      Src: /src/core/libcfnet/client_protocol.c:460,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:462,1
    - Dst: BN_clear_free
      Src: /src/core/libcfnet/client_protocol.c:464,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:465,1
    - Dst: BN_mpi2bn
      Src: /src/core/libcfnet/client_protocol.c:469,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:471,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libcfnet/client_protocol.c:473,1
    - Dst: BN_clear_free
      Src: /src/core/libcfnet/client_protocol.c:474,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:475,1
    - Dst: RSA_set0_key
      Src: /src/core/libcfnet/client_protocol.c:479,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:481,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/client_protocol.c:482,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/client_protocol.c:482,1
    - Dst: BN_clear_free
      Src: /src/core/libcfnet/client_protocol.c:483,1
    - Dst: BN_clear_free
      Src: /src/core/libcfnet/client_protocol.c:484,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:485,1
    - Dst: RSAPublicKey_dup
      Src: /src/core/libcfnet/client_protocol.c:489,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:490,1
    - Dst: assert
      Src: /src/core/libcfnet/client_protocol.c:492,1
    - Dst: SetSessionKey
      Src: /src/core/libcfnet/client_protocol.c:496,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:498,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:504,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:505,1
    - Dst: RSA_size
      Src: /src/core/libcfnet/client_protocol.c:509,1
    - Dst: xmalloc
      Src: /src/core/libcfnet/client_protocol.c:511,1
    - Dst: RSA_public_encrypt
      Src: /src/core/libcfnet/client_protocol.c:513,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:515,1
    - Dst: CryptoLastErrorString
      Src: /src/core/libcfnet/client_protocol.c:517,1
    - Dst: free
      Src: /src/core/libcfnet/client_protocol.c:518,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/client_protocol.c:519,1
    - Dst: SendTransaction
      Src: /src/core/libcfnet/client_protocol.c:523,1
    - Dst: KeyNew
      Src: /src/core/libcfnet/client_protocol.c:525,1
    - Dst: Log
      Src: /src/core/libcfnet/client_protocol.c:528,1
    - Dst: KeyPrintableHash
      Src: /src/core/libcfnet/client_protocol.c:529,1
    - Dst: SavePublicKey
      Src: /src/core/libcfnet/client_protocol.c:531,1
    - Dst: KeyPrintableHash
      Src: /src/core/libcfnet/client_protocol.c:531,1
    - Dst: LastSaw
      Src: /src/core/libcfnet/client_protocol.c:534,1
    - Dst: KeyBinaryHash
      Src: /src/core/libcfnet/client_protocol.c:534,1
    - Dst: free
      Src: /src/core/libcfnet/client_protocol.c:536,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 167
    argCount: 2
    argNames:
    - conn
    - trust_key
    argTypes:
    - AgentConnection*
    - bool
    assertStmts:
    - condition: (server_pubkey != NULL)
      pos:
        line_end: 491
        line_start: 491
        source_file: /src/core/libcfnet/client_protocol.c
    constantsTouched: []
    func_position:
      end: 539
      start: 210
    functionDepth: 11
    functionLinenumber: 210
    functionLinenumberEnd: 539
    functionName: AuthenticateAgent
    functionSourceFile: /src/core/libcfnet/client_protocol.c
    functionUses: 1
    functionsReached:
    - KeyPrintableHash
    - BN_new
    - HashesMatch
    - RSA_get0_key
    - Log
    - RSA_free
    - free
    - HashString
    - RSA_set0_key
    - BN_bn2mpi
    - RSA_size
    - snprintf
    - SavePublicKey
    - RSA_public_encrypt
    - CfSessionKeySize
    - CryptoLastErrorString
    - RSA_new
    - SendTransaction
    - ReceiveTransaction
    - RSA_private_decrypt
    - memset
    - BN_mpi2bn
    - BadProtoReply
    - assert
    - xmalloc
    - ERR_get_error
    - RSAPublicKey_dup
    - KeyNew
    - GetErrorStr
    - memcpy
    - TLSErrorString
    - LastSaw
    - BN_free
    - KeyBinaryHash
    - SetSessionKey
    - CfEnterpriseOptions
    - BN_rand
    - BN_clear_free
    - HavePublicKeyByIP
    linkageType: ''
    returnType: bool
    signature: bool AuthenticateAgent(AgentConnection *conn, bool trust_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/libcfnet/client_protocol.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: BadProtoReply
    functionSourceFile: /src/core/libcfnet/client_protocol.c
    functionUses: 6
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool BadProtoReply(const char *const buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/libcfnet/client_protocol.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: OKProtoReply
    functionSourceFile: /src/core/libcfnet/client_protocol.c
    functionUses: 2
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool OKProtoReply(const char *const buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/libcfnet/client_protocol.c:560,1
    - Dst: strlen
      Src: /src/core/libcfnet/client_protocol.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: FailedProtoReply
    functionSourceFile: /src/core/libcfnet/client_protocol.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool FailedProtoReply(const char *const buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/libcfnet/net.c:42,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ip
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 8
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: SetBindInterface
    functionSourceFile: /src/core/libcfnet/net.c
    functionUses: 0
    functionsReached:
    - Log
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void SetBindInterface(const char *ip)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/net.c:64,1
    - Dst: strlen
      Src: /src/core/libcfnet/net.c:71,1
    - Dst: assert
      Src: /src/core/libcfnet/net.c:75,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:79,1
    - Dst: snprintf
      Src: /src/core/libcfnet/net.c:84,1
    - Dst: memcpy
      Src: /src/core/libcfnet/net.c:86,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:88,1
    - Dst: LogRaw
      Src: /src/core/libcfnet/net.c:89,1
    - Dst: ProtocolClassicOrTLS
      Src: /src/core/libcfnet/net.c:92,1
    - Dst: SendSocketStream
      Src: /src/core/libcfnet/net.c:96,1
    - Dst: TLSSend
      Src: /src/core/libcfnet/net.c:101,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/net.c:109,1
    - Dst: assert
      Src: /src/core/libcfnet/net.c:128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - conn_info
    - buffer
    - len
    - status
    argTypes:
    - ConnectionInfo*
    - char*
    - int
    - char
    assertStmts:
    - condition: (status == CF_MORE || status == CF_DONE)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/core/libcfnet/net.c
    - condition: (len > 0)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/core/libcfnet/net.c
    - condition: (ret == len + CF_INBAND_OFFSET)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/core/libcfnet/net.c
    constantsTouched: []
    func_position:
      end: 132
      start: 61
    functionDepth: 10
    functionLinenumber: 61
    functionLinenumberEnd: 132
    functionName: SendTransaction
    functionSourceFile: /src/core/libcfnet/net.c
    functionUses: 13
    functionsReached:
    - memcpy
    - snprintf
    - strlen
    - LogRaw
    - assert
    - SendSocketStream
    - UnexpectedError
    - ProtocolClassicOrTLS
    - Log
    - TLSSend
    linkageType: ''
    returnType: int
    signature: "int SendTransaction(ConnectionInfo *conn_info,\n                    const
      char *buffer, int len, char status)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ProtocolClassicOrTLS
      Src: /src/core/libcfnet/net.c:155,1
    - Dst: RecvSocketStream
      Src: /src/core/libcfnet/net.c:158,1
    - Dst: TLSRecv
      Src: /src/core/libcfnet/net.c:161,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/net.c:164,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:186,1
    - Dst: LogRaw
      Src: /src/core/libcfnet/net.c:193,1
    - Dst: sscanf
      Src: /src/core/libcfnet/net.c:198,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:201,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:209,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:216,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:225,1
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/net.c:242,1
    - Dst: ProtocolClassicOrTLS
      Src: /src/core/libcfnet/net.c:248,1
    - Dst: RecvSocketStream
      Src: /src/core/libcfnet/net.c:251,1
    - Dst: TLSRecv
      Src: /src/core/libcfnet/net.c:254,1
    - Dst: UnexpectedError
      Src: /src/core/libcfnet/net.c:257,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:274,1
    - Dst: LogRaw
      Src: /src/core/libcfnet/net.c:281,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 73
    argCount: 3
    argNames:
    - conn_info
    - buffer
    - more
    argTypes:
    - ConnectionInfo*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 149
    functionDepth: 10
    functionLinenumber: 149
    functionLinenumberEnd: 284
    functionName: ReceiveTransaction
    functionSourceFile: /src/core/libcfnet/net.c
    functionUses: 8
    functionsReached:
    - LogRaw
    - RecvSocketStream
    - UnexpectedError
    - sscanf
    - ProtocolClassicOrTLS
    - Log
    - ProgrammingError
    - TLSRecv
    linkageType: ''
    returnType: int
    signature: int ReceiveTransaction(ConnectionInfo *conn_info, char *buffer, int
      *more)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libcfnet/net.c:328,1
    - Dst: pthread_mutex_lock
      Src: /src/core/libcfnet/net.c:337,1
    - Dst: clock_gettime
      Src: /src/core/libcfnet/net.c:339,1
    - Dst: pthread_mutex_unlock
      Src: /src/core/libcfnet/net.c:384,1
    - Dst: nanosleep
      Src: /src/core/libcfnet/net.c:395,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - tosend
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 319
    functionDepth: 8
    functionLinenumber: 319
    functionLinenumberEnd: 398
    functionName: EnforceBwLimit
    functionSourceFile: /src/core/libcfnet/net.c
    functionUses: 1
    functionsReached:
    - nanosleep
    - clock_gettime
    - Log
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void EnforceBwLimit(int tosend)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getaddrinfo
      Src: /src/core/libcfnet/net.c:426,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:429,1
    - Dst: gai_strerror
      Src: /src/core/libcfnet/net.c:431,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/net.c:434,1
    - Dst: getnameinfo
      Src: /src/core/libcfnet/net.c:442,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:445,1
    - Dst: socket
      Src: /src/core/libcfnet/net.c:449,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:452,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/net.c:453,1
    - Dst: getaddrinfo
      Src: /src/core/libcfnet/net.c:468,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:471,1
    - Dst: gai_strerror
      Src: /src/core/libcfnet/net.c:473,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/net.c:477,1
    - Dst: assert
      Src: /src/core/libcfnet/net.c:479,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/net.c:480,1
    - Dst: cf_closesocket
      Src: /src/core/libcfnet/net.c:481,1
    - Dst: bind
      Src: /src/core/libcfnet/net.c:487,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:494,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/net.c:496,1
    - Dst: assert
      Src: /src/core/libcfnet/net.c:498,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/net.c:499,1
    - Dst: TryConnect
      Src: /src/core/libcfnet/net.c:502,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:506,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/net.c:507,1
    - Dst: cf_closesocket
      Src: /src/core/libcfnet/net.c:508,1
    - Dst: assert
      Src: /src/core/libcfnet/net.c:514,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/net.c:515,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:519,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:525,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 6
    argNames:
    - host
    - port
    - connect_timeout
    - force_ipv4
    - txtaddr
    - txtaddr_size
    argTypes:
    - char*
    - char*
    - unsigned int
    - bool
    - char*
    - size_t
    assertStmts:
    - condition: (response)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/core/libcfnet/net.c
    - condition: (response2)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/core/libcfnet/net.c
    - condition: (response != NULL)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/core/libcfnet/net.c
    constantsTouched: []
    func_position:
      end: 531
      start: 413
    functionDepth: 9
    functionLinenumber: 413
    functionLinenumberEnd: 531
    functionName: SocketConnect
    functionSourceFile: /src/core/libcfnet/net.c
    functionUses: 5
    functionsReached:
    - GetErrorStr
    - freeaddrinfo
    - cf_closesocket
    - bind
    - TryConnect
    - socket
    - assert
    - getnameinfo
    - gai_strerror
    - Log
    - getaddrinfo
    linkageType: ''
    returnType: int
    signature: "int SocketConnect(const char *host, const char *port,\n                  unsigned
      int connect_timeout, bool force_ipv4,\n                  char *txtaddr, size_t
      txtaddr_size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/net.c:564,1
    - Dst: assert
      Src: /src/core/libcfnet/net.c:565,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:569,1
    - Dst: fcntl
      Src: /src/core/libcfnet/net.c:576,1
    - Dst: fcntl
      Src: /src/core/libcfnet/net.c:577,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:580,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/net.c:582,1
    - Dst: connect
      Src: /src/core/libcfnet/net.c:585,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:590,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/net.c:591,1
    - Dst: FD_ZERO
      Src: /src/core/libcfnet/net.c:598,1
    - Dst: FD_SET
      Src: /src/core/libcfnet/net.c:599,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:601,1
    - Dst: select
      Src: /src/core/libcfnet/net.c:615,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:618,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:625,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:630,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/net.c:632,1
    - Dst: getsockopt
      Src: /src/core/libcfnet/net.c:637,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:641,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/net.c:643,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:649,1
    - Dst: GetErrorStrFromCode
      Src: /src/core/libcfnet/net.c:650,1
    - Dst: fcntl
      Src: /src/core/libcfnet/net.c:656,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:659,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/net.c:661,1
    - Dst: SetReceiveTimeout
      Src: /src/core/libcfnet/net.c:666,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 4
    argNames:
    - sd
    - timeout_ms
    - sa
    - sa_len
    argTypes:
    - int
    - unsigned long
    - struct sockaddr*
    - socklen_t
    assertStmts:
    - condition: (sd != -1)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/core/libcfnet/net.c
    - condition: (sa != NULL)
      pos:
        line_end: 564
        line_start: 564
        source_file: /src/core/libcfnet/net.c
    constantsTouched: []
    func_position:
      end: 670
      start: 561
    functionDepth: 8
    functionLinenumber: 561
    functionLinenumberEnd: 670
    functionName: TryConnect
    functionSourceFile: /src/core/libcfnet/net.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - assert
    - fcntl
    - FD_SET
    - FD_ZERO
    - Log
    - select
    - getsockopt
    - GetErrorStrFromCode
    - SetReceiveTimeout
    - connect
    linkageType: ''
    returnType: bool
    signature: "bool TryConnect(int sd, unsigned long timeout_ms,\n                const
      struct sockaddr *sa, socklen_t sa_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/net.c:686,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:688,1
    - Dst: setsockopt
      Src: /src/core/libcfnet/net.c:698,1
    - Dst: setsockopt
      Src: /src/core/libcfnet/net.c:700,1
    - Dst: Log
      Src: /src/core/libcfnet/net.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fd
    - ms
    argTypes:
    - int
    - unsigned long
    assertStmts:
    - condition: (ms > 0)
      pos:
        line_end: 685
        line_start: 685
        source_file: /src/core/libcfnet/net.c
    constantsTouched: []
    func_position:
      end: 711
      start: 684
    functionDepth: 8
    functionLinenumber: 684
    functionLinenumberEnd: 711
    functionName: SetReceiveTimeout
    functionSourceFile: /src/core/libcfnet/net.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int SetReceiveTimeout(int fd, unsigned long ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/libcfnet/communication.c:41,1
    - Dst: ConnectionInfoNew
      Src: /src/core/libcfnet/communication.c:42,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/communication.c:43,1
    - Dst: xstrdup
      Src: /src/core/libcfnet/communication.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - server
    - port
    - flags
    argTypes:
    - char*
    - char*
    - ConnectionFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: NewAgentConn
    functionSourceFile: /src/core/libcfnet/communication.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - ConnectionInfoNew
    - xstrdup
    linkageType: ''
    returnType: AgentConnection
    signature: "AgentConnection *NewAgentConn(const char *server, const char *port,\n
      \                             ConnectionFlags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DestroyStatCache
      Src: /src/core/libcfnet/communication.c:59,1
    - Dst: ConnectionInfoDestroy
      Src: /src/core/libcfnet/communication.c:62,1
    - Dst: free
      Src: /src/core/libcfnet/communication.c:63,1
    - Dst: free
      Src: /src/core/libcfnet/communication.c:64,1
    - Dst: free
      Src: /src/core/libcfnet/communication.c:65,1
    - Dst: free
      Src: /src/core/libcfnet/communication.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: DeleteAgentConn
    functionSourceFile: /src/core/libcfnet/communication.c
    functionUses: 1
    functionsReached:
    - ConnectionInfoDestroy
    - free
    - DestroyStatCache
    linkageType: ''
    returnType: void
    signature: void DeleteAgentConn(AgentConnection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BufferNewFrom
      Src: /src/core/libcfnet/communication.c:76,1
    - Dst: strlen
      Src: /src/core/libcfnet/communication.c:76,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libcfnet/communication.c:83,1
    - Dst: BufferDestroy
      Src: /src/core/libcfnet/communication.c:86,1
    - Dst: IPAddressType
      Src: /src/core/libcfnet/communication.c:89,1
    - Dst: BufferDestroy
      Src: /src/core/libcfnet/communication.c:91,1
    - Dst: IPAddressDestroy
      Src: /src/core/libcfnet/communication.c:92,1
    - Dst: BufferDestroy
      Src: /src/core/libcfnet/communication.c:95,1
    - Dst: IPAddressDestroy
      Src: /src/core/libcfnet/communication.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 98
    functionName: IsIPV6Address
    functionSourceFile: /src/core/libcfnet/communication.c
    functionUses: 2
    functionsReached:
    - BufferDestroy
    - IPAddressType
    - BufferNewFrom
    - strlen
    - IPAddressDestroy
    - IPAddressIsIPAddress
    linkageType: ''
    returnType: bool
    signature: bool IsIPV6Address(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BufferNewFrom
      Src: /src/core/libcfnet/communication.c:108,1
    - Dst: strlen
      Src: /src/core/libcfnet/communication.c:108,1
    - Dst: IPAddressIsIPAddress
      Src: /src/core/libcfnet/communication.c:115,1
    - Dst: BufferDestroy
      Src: /src/core/libcfnet/communication.c:118,1
    - Dst: IPAddressType
      Src: /src/core/libcfnet/communication.c:121,1
    - Dst: BufferDestroy
      Src: /src/core/libcfnet/communication.c:123,1
    - Dst: IPAddressDestroy
      Src: /src/core/libcfnet/communication.c:124,1
    - Dst: BufferDestroy
      Src: /src/core/libcfnet/communication.c:127,1
    - Dst: IPAddressDestroy
      Src: /src/core/libcfnet/communication.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: IsIPV4Address
    functionSourceFile: /src/core/libcfnet/communication.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - IPAddressType
    - BufferNewFrom
    - strlen
    - IPAddressDestroy
    - IPAddressIsIPAddress
    linkageType: ''
    returnType: bool
    signature: bool IsIPV4Address(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/libcfnet/communication.c:150,1
    - Dst: getaddrinfo
      Src: /src/core/libcfnet/communication.c:155,1
    - Dst: Log
      Src: /src/core/libcfnet/communication.c:158,1
    - Dst: gai_strerror
      Src: /src/core/libcfnet/communication.c:160,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/communication.c:163,1
    - Dst: getnameinfo
      Src: /src/core/libcfnet/communication.c:171,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/communication.c:175,1
    - Dst: assert
      Src: /src/core/libcfnet/communication.c:180,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/communication.c:181,1
    - Dst: Log
      Src: /src/core/libcfnet/communication.c:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - dst
    - hostname
    - dst_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts:
    - condition: (response != NULL)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/core/libcfnet/communication.c
    constantsTouched: []
    func_position:
      end: 186
      start: 139
    functionDepth: 8
    functionLinenumber: 139
    functionLinenumberEnd: 186
    functionName: Hostname2IPString
    functionSourceFile: /src/core/libcfnet/communication.c
    functionUses: 4
    functionsReached:
    - freeaddrinfo
    - assert
    - getnameinfo
    - gai_strerror
    - Log
    - ProgrammingError
    - getaddrinfo
    linkageType: ''
    returnType: int
    signature: int Hostname2IPString(char *dst, const char *hostname, size_t dst_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getaddrinfo
      Src: /src/core/libcfnet/communication.c:205,1
    - Dst: Log
      Src: /src/core/libcfnet/communication.c:208,1
    - Dst: gai_strerror
      Src: /src/core/libcfnet/communication.c:210,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/communication.c:213,1
    - Dst: getnameinfo
      Src: /src/core/libcfnet/communication.c:222,1
    - Dst: Log
      Src: /src/core/libcfnet/communication.c:226,1
    - Dst: gai_strerror
      Src: /src/core/libcfnet/communication.c:228,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/communication.c:229,1
    - Dst: assert
      Src: /src/core/libcfnet/communication.c:233,1
    - Dst: freeaddrinfo
      Src: /src/core/libcfnet/communication.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - dst
    - ipaddr
    - dst_size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts:
    - condition: (response != NULL)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/core/libcfnet/communication.c
    constantsTouched: []
    func_position:
      end: 236
      start: 195
    functionDepth: 8
    functionLinenumber: 195
    functionLinenumberEnd: 236
    functionName: IPString2Hostname
    functionSourceFile: /src/core/libcfnet/communication.c
    functionUses: 3
    functionsReached:
    - freeaddrinfo
    - assert
    - getnameinfo
    - gai_strerror
    - Log
    - getaddrinfo
    linkageType: ''
    returnType: int
    signature: int IPString2Hostname(char *dst, const char *ipaddr, size_t dst_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/core/libcfnet/communication.c:245,1
    - Dst: Log
      Src: /src/core/libcfnet/communication.c:247,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/communication.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 240
    functionDepth: 8
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: SocketFamily
    functionSourceFile: /src/core/libcfnet/communication.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - Log
    - getsockname
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short SocketFamily(int sd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: TLSClientIsInitialized
    functionSourceFile: /src/core/libcfnet/tls_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool TLSClientIsInitialized()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:88,1
    - Dst: TLSGenericInitialize
      Src: /src/core/libcfnet/tls_client.c:92,1
    - Dst: SSL_CTX_new
      Src: /src/core/libcfnet/tls_client.c:97,1
    - Dst: SSLv23_client_method
      Src: /src/core/libcfnet/tls_client.c:97,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:100,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_client.c:101,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_client.c:101,1
    - Dst: TLSSetDefaultOptions
      Src: /src/core/libcfnet/tls_client.c:105,1
    - Dst: TLSSetCipherList
      Src: /src/core/libcfnet/tls_client.c:107,1
    - Dst: TLSGenerateCertFromPrivKey
      Src: /src/core/libcfnet/tls_client.c:113,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:116,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/core/libcfnet/tls_client.c:121,1
    - Dst: SSL_CTX_use_RSAPrivateKey
      Src: /src/core/libcfnet/tls_client.c:123,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:126,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_client.c:127,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_client.c:127,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/core/libcfnet/tls_client.c:132,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:135,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_client.c:136,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_client.c:136,1
    - Dst: X509_free
      Src: /src/core/libcfnet/tls_client.c:144,1
    - Dst: SSL_CTX_free
      Src: /src/core/libcfnet/tls_client.c:147,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 2
    argNames:
    - tls_min_version
    - ciphers
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 74
    functionDepth: 9
    functionLinenumber: 74
    functionLinenumberEnd: 151
    functionName: TLSClientInitialize
    functionSourceFile: /src/core/libcfnet/tls_client.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_new
    - SSLv23_client_method
    - TLSErrorString
    - TLSSetDefaultOptions
    - TLSGenerateCertFromPrivKey
    - X509_free
    - TLSGenericInitialize
    - SSL_CTX_use_certificate
    - Log
    - SSL_CTX_use_RSAPrivateKey
    - ERR_get_error
    - SSL_CTX_free
    - TLSSetCipherList
    - SSL_CTX_check_private_key
    linkageType: ''
    returnType: bool
    signature: "bool TLSClientInitialize(const char *tls_min_version,\n                         const
      char *ciphers)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/core/libcfnet/tls_client.c:157,1
    - Dst: RSA_free
      Src: /src/core/libcfnet/tls_client.c:163,1
    - Dst: X509_free
      Src: /src/core/libcfnet/tls_client.c:169,1
    - Dst: SSL_CTX_free
      Src: /src/core/libcfnet/tls_client.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 178
    functionName: TLSDeInitialize
    functionSourceFile: /src/core/libcfnet/tls_client.c
    functionUses: 1
    functionsReached:
    - X509_free
    - SSL_CTX_free
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void TLSDeInitialize()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TLSRecvLines
      Src: /src/core/libcfnet/tls_client.c:199,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:202,1
    - Dst: ParseProtocolVersionNetwork
      Src: /src/core/libcfnet/tls_client.c:216,1
    - Dst: ProtocolIsTLS
      Src: /src/core/libcfnet/tls_client.c:218,1
    - Dst: ProtocolIsUndefined
      Src: /src/core/libcfnet/tls_client.c:223,1
    - Dst: ProtocolIsClassic
      Src: /src/core/libcfnet/tls_client.c:224,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:226,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_client.c:230,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_client.c:231,1
    - Dst: ProtocolIsTLS
      Src: /src/core/libcfnet/tls_client.c:231,1
    - Dst: snprintf
      Src: /src/core/libcfnet/tls_client.c:235,1
    - Dst: TLSSend
      Src: /src/core/libcfnet/tls_client.c:239,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:242,1
    - Dst: strcpy
      Src: /src/core/libcfnet/tls_client.c:246,1
    - Dst: strlen
      Src: /src/core/libcfnet/tls_client.c:247,1
    - Dst: snprintf
      Src: /src/core/libcfnet/tls_client.c:251,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:255,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/tls_client.c:255,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:260,1
    - Dst: TLSSend
      Src: /src/core/libcfnet/tls_client.c:270,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:273,1
    - Dst: TLSRecvLines
      Src: /src/core/libcfnet/tls_client.c:282,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:285,1
    - Dst: strncmp
      Src: /src/core/libcfnet/tls_client.c:289,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:291,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - conn_info
    - username
    argTypes:
    - ConnectionInfo*
    - char*
    assertStmts:
    - condition: (ProtocolIsTLS(wanted_version))
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/core/libcfnet/tls_client.c
    - condition: (wanted_version <= received_version)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/core/libcfnet/tls_client.c
    constantsTouched: []
    func_position:
      end: 302
      start: 192
    functionDepth: 11
    functionLinenumber: 192
    functionLinenumberEnd: 302
    functionName: TLSClientIdentificationDialog
    functionSourceFile: /src/core/libcfnet/tls_client.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - strncmp
    - ParseProtocolVersionNetwork
    - TLSRecvLines
    - snprintf
    - strlen
    - assert
    - ProtocolIsClassic
    - ProtocolIsTLS
    - Log
    - strcpy
    - ProtocolIsUndefined
    - TLSSend
    linkageType: ''
    returnType: int
    signature: "int TLSClientIdentificationDialog(ConnectionInfo *conn_info,\n                                  const
      char *username)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/libcfnet/tls_client.c:313,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:317,1
    - Dst: assert
      Src: /src/core/libcfnet/tls_client.c:321,1
    - Dst: SSL_new
      Src: /src/core/libcfnet/tls_client.c:323,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:326,1
    - Dst: TLSErrorString
      Src: /src/core/libcfnet/tls_client.c:327,1
    - Dst: ERR_get_error
      Src: /src/core/libcfnet/tls_client.c:327,1
    - Dst: SSL_set_ex_data
      Src: /src/core/libcfnet/tls_client.c:332,1
    - Dst: SSL_set_fd
      Src: /src/core/libcfnet/tls_client.c:335,1
    - Dst: SSL_connect
      Src: /src/core/libcfnet/tls_client.c:343,1
    - Dst: TLSLogError
      Src: /src/core/libcfnet/tls_client.c:353,1
    - Dst: sleep
      Src: /src/core/libcfnet/tls_client.c:361,1
    - Dst: TLSLogError
      Src: /src/core/libcfnet/tls_client.c:367,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:372,1
    - Dst: SSL_get_version
      Src: /src/core/libcfnet/tls_client.c:373,1
    - Dst: SSL_get_cipher_name
      Src: /src/core/libcfnet/tls_client.c:374,1
    - Dst: SSL_get_cipher_version
      Src: /src/core/libcfnet/tls_client.c:375,1
    - Dst: Log
      Src: /src/core/libcfnet/tls_client.c:376,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - conn_info
    argTypes:
    - ConnectionInfo*
    assertStmts:
    - condition: (conn_info != NULL)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/core/libcfnet/tls_client.c
    - condition: (SSLCLIENTCONTEXT != NULL)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/core/libcfnet/tls_client.c
    constantsTouched: []
    func_position:
      end: 379
      start: 311
    functionDepth: 9
    functionLinenumber: 311
    functionLinenumberEnd: 379
    functionName: TLSTry
    functionSourceFile: /src/core/libcfnet/tls_client.c
    functionUses: 1
    functionsReached:
    - TLSErrorString
    - SSL_get_version
    - SSL_get_cipher_version
    - assert
    - SSL_connect
    - sleep
    - SSL_set_ex_data
    - Log
    - SSL_set_fd
    - SSL_get_cipher_name
    - ERR_get_error
    - SSL_new
    - TLSLogError
    linkageType: ''
    returnType: int
    signature: int TLSTry(ConnectionInfo *conn_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/core/libcfnet/classic.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: LastRecvTimedOut
    functionSourceFile: /src/core/libcfnet/classic.c
    functionUses: 0
    functionsReached:
    - GetLastError
    linkageType: ''
    returnType: bool
    signature: bool LastRecvTimedOut(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libcfnet/classic.c:73,1
    - Dst: recv
      Src: /src/core/libcfnet/classic.c:80,1
    - Dst: LastRecvTimedOut
      Src: /src/core/libcfnet/classic.c:86,1
    - Dst: Log
      Src: /src/core/libcfnet/classic.c:88,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/classic.c:90,1
    - Dst: Log
      Src: /src/core/libcfnet/classic.c:91,1
    - Dst: shutdown
      Src: /src/core/libcfnet/classic.c:98,1
    - Dst: Log
      Src: /src/core/libcfnet/classic.c:102,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/classic.c:103,1
    - Dst: Log
      Src: /src/core/libcfnet/classic.c:110,1
    - Dst: assert
      Src: /src/core/libcfnet/classic.c:115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - sd
    - buffer
    - toget
    argTypes:
    - int
    - char*
    - int
    assertStmts:
    - condition: (already == toget)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/core/libcfnet/classic.c
    constantsTouched: []
    func_position:
      end: 119
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 119
    functionName: RecvSocketStream
    functionSourceFile: /src/core/libcfnet/classic.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - recv
    - assert
    - LastRecvTimedOut
    - Log
    - shutdown
    linkageType: ''
    returnType: int
    signature: int RecvSocketStream(int sd, char *buffer, int toget)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/libcfnet/classic.c:141,1
    - Dst: EnforceBwLimit
      Src: /src/core/libcfnet/classic.c:146,1
    - Dst: send
      Src: /src/core/libcfnet/classic.c:150,1
    - Dst: Log
      Src: /src/core/libcfnet/classic.c:159,1
    - Dst: GetErrorStr
      Src: /src/core/libcfnet/classic.c:159,1
    - Dst: assert
      Src: /src/core/libcfnet/classic.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - sd
    - buffer
    - tosend
    argTypes:
    - int
    - char[]
    - int
    assertStmts:
    - condition: (already == tosend)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/core/libcfnet/classic.c
    constantsTouched: []
    func_position:
      end: 168
      start: 135
    functionDepth: 9
    functionLinenumber: 135
    functionLinenumberEnd: 168
    functionName: SendSocketStream
    functionSourceFile: /src/core/libcfnet/classic.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - send
    - assert
    - EnforceBwLimit
    - Log
    linkageType: ''
    returnType: int
    signature: int SendSocketStream(int sd, const char buffer[CF_BUFSIZE], int tosend)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/ext/rpmvercmp.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: rstreq
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int rstreq(const char *s1, const char *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: rislower
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rislower(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: risupper
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int risupper(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rislower
      Src: /src/core/ext/rpmvercmp.c:43,1
    - Dst: risupper
      Src: /src/core/ext/rpmvercmp.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: risalpha
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 0
    functionsReached:
    - risupper
    - rislower
    linkageType: ''
    returnType: int
    signature: int risalpha(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: risdigit
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int risdigit(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: risalpha
      Src: /src/core/ext/rpmvercmp.c:51,1
    - Dst: risdigit
      Src: /src/core/ext/rpmvercmp.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: risalnum
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 0
    functionsReached:
    - risalpha
    - risdigit
    linkageType: ''
    returnType: int
    signature: int risalnum(int c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rstreq
      Src: /src/core/ext/rpmvercmp.c:57,1
    - Dst: strlen
      Src: /src/core/ext/rpmvercmp.c:60,1
    - Dst: strlen
      Src: /src/core/ext/rpmvercmp.c:60,1
    - Dst: strcpy
      Src: /src/core/ext/rpmvercmp.c:66,1
    - Dst: strcpy
      Src: /src/core/ext/rpmvercmp.c:67,1
    - Dst: risalnum
      Src: /src/core/ext/rpmvercmp.c:74,1
    - Dst: risalnum
      Src: /src/core/ext/rpmvercmp.c:75,1
    - Dst: risdigit
      Src: /src/core/ext/rpmvercmp.c:95,1
    - Dst: risdigit
      Src: /src/core/ext/rpmvercmp.c:96,1
    - Dst: risdigit
      Src: /src/core/ext/rpmvercmp.c:97,1
    - Dst: risalpha
      Src: /src/core/ext/rpmvercmp.c:100,1
    - Dst: risalpha
      Src: /src/core/ext/rpmvercmp.c:101,1
    - Dst: strlen
      Src: /src/core/ext/rpmvercmp.c:133,1
    - Dst: strlen
      Src: /src/core/ext/rpmvercmp.c:134,1
    - Dst: strcmp
      Src: /src/core/ext/rpmvercmp.c:143,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 71
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 160
    functionName: rpmvercmp
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 0
    functionsReached:
    - risalnum
    - strlen
    - rstreq
    - risalpha
    - strcmp
    - risdigit
    - strcpy
    linkageType: ''
    returnType: int
    signature: int rpmvercmp(const char * a, const char * b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: risdigit
      Src: /src/core/ext/rpmvercmp.c:174,1
    - Dst: strrchr
      Src: /src/core/ext/rpmvercmp.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - evr
    - evr_parsed
    argTypes:
    - char*
    - EVR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 192
    functionName: parseEVR
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 0
    functionsReached:
    - strrchr
    - risdigit
    linkageType: ''
    returnType: void
    signature: void parseEVR(char * evr, EVR *evr_parsed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/core/ext/rpmvercmp.c:196,1
    - Dst: atoi
      Src: /src/core/ext/rpmvercmp.c:197,1
    - Dst: rpmvercmp
      Src: /src/core/ext/rpmvercmp.c:206,1
    - Dst: rpmvercmp
      Src: /src/core/ext/rpmvercmp.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - EVR*
    - EVR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 212
    functionName: rpmVersionCompare
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 0
    functionsReached:
    - atoi
    - rpmvercmp
    linkageType: ''
    returnType: int
    signature: int rpmVersionCompare(EVR *first, EVR *second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/ext/rpmvercmp.c:216,1
    - Dst: fprintf
      Src: /src/core/ext/rpmvercmp.c:217,1
    - Dst: fprintf
      Src: /src/core/ext/rpmvercmp.c:218,1
    - Dst: fprintf
      Src: /src/core/ext/rpmvercmp.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: usage
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 6
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/core/ext/rpmvercmp.c:226,1
    - Dst: exit
      Src: /src/core/ext/rpmvercmp.c:227,1
    - Dst: rstreq
      Src: /src/core/ext/rpmvercmp.c:230,1
    - Dst: rstreq
      Src: /src/core/ext/rpmvercmp.c:230,1
    - Dst: usage
      Src: /src/core/ext/rpmvercmp.c:232,1
    - Dst: exit
      Src: /src/core/ext/rpmvercmp.c:233,1
    - Dst: parseEVR
      Src: /src/core/ext/rpmvercmp.c:238,1
    - Dst: parseEVR
      Src: /src/core/ext/rpmvercmp.c:239,1
    - Dst: rpmVersionCompare
      Src: /src/core/ext/rpmvercmp.c:241,1
    - Dst: rstreq
      Src: /src/core/ext/rpmvercmp.c:243,1
    - Dst: exit
      Src: /src/core/ext/rpmvercmp.c:245,1
    - Dst: exit
      Src: /src/core/ext/rpmvercmp.c:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 251
    functionName: main
    functionSourceFile: /src/core/ext/rpmvercmp.c
    functionUses: 2
    functionsReached:
    - exit
    - parseEVR
    - rpmVersionCompare
    - rstreq
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:135,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/nfs.c:135,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/nfs.c:136,1
    - Dst: strchr
      Src: /src/core/cf-agent/nfs.c:137,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/nfs.c:143,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/nfs.c:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - host
    - source
    argTypes:
    - char*
    - char*
    - char*
    assertStmts:
    - condition: "(StringStartsWith(buf, \"panfs://\")\n           || StringStartsWith(buf,
        \"//\")\n           || strchr(buf, ':') != NULL)"
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/core/cf-agent/nfs.c
    constantsTouched: []
    func_position:
      end: 175
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 175
    functionName: GetHostAndSource
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 0
    functionsReached:
    - assert
    - strchr
    - StringStartsWith
    linkageType: ''
    returnType: void
    signature: void GetHostAndSource(const char *buf, char *host, char *source)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SetTimeOut
      Src: /src/core/cf-agent/nfs.c:194,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/nfs.c:196,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:198,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/nfs.c:198,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/nfs.c:203,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/nfs.c:210,1
    - Dst: feof
      Src: /src/core/cf-agent/nfs.c:213,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:215,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/nfs.c:215,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:216,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:217,1
    - Dst: SeqStringFromString
      Src: /src/core/cf-agent/nfs.c:226,1
    - Dst: SeqStringContains
      Src: /src/core/cf-agent/nfs.c:228,1
    - Dst: SeqStringContains
      Src: /src/core/cf-agent/nfs.c:232,1
    - Dst: SeqStringContains
      Src: /src/core/cf-agent/nfs.c:236,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/nfs.c:241,1
    - Dst: sscanf
      Src: /src/core/cf-agent/nfs.c:244,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:251,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:253,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:256,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:258,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:261,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:261,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:261,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:266,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:266,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:271,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:273,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:274,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:275,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:276,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:277,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-agent/nfs.c:288,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:290,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:291,1
    - Dst: GetHostAndSource
      Src: /src/core/cf-agent/nfs.c:297,1
    - Dst: sscanf
      Src: /src/core/cf-agent/nfs.c:301,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:303,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-agent/nfs.c:308,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:310,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:311,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:315,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:316,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:317,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:320,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:321,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:323,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-agent/nfs.c:325,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:327,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:330,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:331,1
    - Dst: GetHostAndSource
      Src: /src/core/cf-agent/nfs.c:337,1
    - Dst: sscanf
      Src: /src/core/cf-agent/nfs.c:341,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:343,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:347,1
    - Dst: AugmentMountInfo
      Src: /src/core/cf-agent/nfs.c:351,1
    - Dst: AugmentMountInfo
      Src: /src/core/cf-agent/nfs.c:355,1
    - Dst: AugmentMountInfo
      Src: /src/core/cf-agent/nfs.c:359,1
    - Dst: AugmentMountInfo
      Src: /src/core/cf-agent/nfs.c:363,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:367,1
    - Dst: alarm
      Src: /src/core/cf-agent/nfs.c:368,1
    - Dst: signal
      Src: /src/core/cf-agent/nfs.c:369,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:370,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 110
    argCount: 1
    argNames:
    - list
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 177
    functionDepth: 11
    functionLinenumber: 177
    functionLinenumberEnd: 372
    functionName: LoadMountInfo
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 0
    functionsReached:
    - AugmentMountInfo
    - feof
    - IsAbsoluteFileName
    - Log
    - free
    - SeqStringFromString
    - strlcpy
    - SeqDestroy
    - cf_popen
    - sscanf
    - cf_pclose
    - SeqStringContains
    - CfReadLine
    - GetHostAndSource
    - xmalloc
    - signal
    - GetErrorStr
    - strstr
    - alarm
    - SetTimeOut
    linkageType: ''
    returnType: bool
    signature: bool LoadMountInfo(Seq *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-agent/nfs.c:378,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/nfs.c:382,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/nfs.c:387,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/nfs.c:392,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/nfs.c:397,1
    - Dst: SeqAppend
      Src: /src/core/cf-agent/nfs.c:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - list
    - host
    - source
    - mounton
    - options
    argTypes:
    - Seq*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 401
    functionName: AugmentMountInfo
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - xstrdup
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void AugmentMountInfo(Seq *list, char *host, char *source, char *mounton,
      char *options)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/cf-agent/nfs.c:407,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/nfs.c:409,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:413,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:418,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:423,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:428,1
    - Dst: SeqClear
      Src: /src/core/cf-agent/nfs.c:432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - list
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 433
    functionName: DeleteMountInfo
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - free
    - SeqClear
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void DeleteMountInfo(Seq *list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:440,1
    - Dst: LoadFileAsItemList
      Src: /src/core/cf-agent/nfs.c:446,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:448,1
    - Dst: Rlist2String
      Src: /src/core/cf-agent/nfs.c:459,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/nfs.c:463,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/nfs.c:472,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/nfs.c:472,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:474,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:475,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:479,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:480,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:487,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:488,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/nfs.c:491,1
    - Dst: ToUpperStrInplace
      Src: /src/core/cf-agent/nfs.c:492,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:494,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:495,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:501,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:502,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:505,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:508,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:510,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:511,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:515,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:516,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:521,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:522,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:525,1
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:526,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:531,1
    - Dst: MatchFSInFstab
      Src: /src/core/cf-agent/nfs.c:535,1
    - Dst: AppendItem
      Src: /src/core/cf-agent/nfs.c:537,1
    - Dst: cfPS
      Src: /src/core/cf-agent/nfs.c:539,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/nfs.c:541,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:545,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 45
    argCount: 5
    argNames:
    - ctx
    - name
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/core/cf-agent/nfs.c
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 510
        line_start: 510
        source_file: /src/core/cf-agent/nfs.c
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/core/cf-agent/nfs.c
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/core/cf-agent/nfs.c
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 507
        line_start: 507
        source_file: /src/core/cf-agent/nfs.c
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/core/cf-agent/nfs.c
    - condition: (a != NULL)
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/core/cf-agent/nfs.c
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/core/cf-agent/nfs.c
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/core/cf-agent/nfs.c
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 521
        line_start: 521
        source_file: /src/core/cf-agent/nfs.c
    - condition: (ret >= 0 && ret < CF_BUFSIZE)
      pos:
        line_end: 525
        line_start: 525
        source_file: /src/core/cf-agent/nfs.c
    constantsTouched: []
    func_position:
      end: 547
      start: 437
    functionDepth: 13
    functionLinenumber: 437
    functionLinenumberEnd: 547
    functionName: VerifyInFstab
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - Rlist2String
    - snprintf
    - LoadFileAsItemList
    - assert
    - cfPS
    - PromiseResultUpdate
    - MatchFSInFstab
    - Log
    - xstrdup
    - free
    - ToUpperStrInplace
    - strlcpy
    - StringEqual
    linkageType: ''
    returnType: int
    signature: int VerifyInFstab(EvalContext *ctx, char *name, const Attributes *a,
      const Promise *pp, PromiseResult *result)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: LoadFileAsItemList
      Src: /src/core/cf-agent/nfs.c:560,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:562,1
    - Dst: MatchFSInFstab
      Src: /src/core/cf-agent/nfs.c:574,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:582,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/nfs.c:584,1
    - Dst: cfPS
      Src: /src/core/cf-agent/nfs.c:586,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/nfs.c:587,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/nfs.c:592,1
    - Dst: getline
      Src: /src/core/cf-agent/nfs.c:596,1
    - Dst: feof
      Src: /src/core/cf-agent/nfs.c:600,1
    - Dst: cfPS
      Src: /src/core/cf-agent/nfs.c:602,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/nfs.c:603,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:604,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:605,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:619,1
    - Dst: cfPS
      Src: /src/core/cf-agent/nfs.c:621,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/nfs.c:623,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:624,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:629,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:630,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:635,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/nfs.c:640,1
    - Dst: cfPS
      Src: /src/core/cf-agent/nfs.c:642,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/nfs.c:643,1
    - Dst: DeleteThisItem
      Src: /src/core/cf-agent/nfs.c:645,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 5
    argNames:
    - ctx
    - name
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 551
    functionDepth: 13
    functionLinenumber: 551
    functionLinenumberEnd: 655
    functionName: VerifyNotInFstab
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 0
    functionsReached:
    - DeleteThisItem
    - snprintf
    - cf_popen
    - LoadFileAsItemList
    - strstr
    - cfPS
    - feof
    - cf_pclose
    - MatchFSInFstab
    - Log
    - xmalloc
    - FullTextMatch
    - getline
    - free
    - PromiseResultUpdate
    linkageType: ''
    returnType: int
    signature: int VerifyNotInFstab(EvalContext *ctx, char *name, const Attributes
      *a, const Promise *pp, PromiseResult *result)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/nfs.c:661,1
    - Dst: Rlist2String
      Src: /src/core/cf-agent/nfs.c:674,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/nfs.c:678,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/nfs.c:684,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:686,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/nfs.c:686,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/nfs.c:688,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:690,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/nfs.c:690,1
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:694,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/nfs.c:694,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/nfs.c:697,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:699,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/nfs.c:699,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/nfs.c:704,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/nfs.c:706,1
    - Dst: feof
      Src: /src/core/cf-agent/nfs.c:710,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:712,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/nfs.c:712,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:713,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:714,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:718,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:718,1
    - Dst: cfPS
      Src: /src/core/cf-agent/nfs.c:720,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/nfs.c:721,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:722,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:723,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:727,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:728,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:732,1
    - Dst: cfPS
      Src: /src/core/cf-agent/nfs.c:734,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/nfs.c:735,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 4
    argNames:
    - ctx
    - name
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 660
        line_start: 660
        source_file: /src/core/cf-agent/nfs.c
    constantsTouched: []
    func_position:
      end: 738
      start: 659
    functionDepth: 13
    functionLinenumber: 659
    functionLinenumberEnd: 738
    functionName: VerifyMount
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - Rlist2String
    - CommandArg0
    - snprintf
    - cf_popen
    - strstr
    - assert
    - cfPS
    - feof
    - cf_pclose
    - xmalloc
    - Log
    - xstrdup
    - free
    - CfReadLine
    - PromiseResultUpdate
    - StringEqual
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyMount(EvalContext *ctx, char *name, const Attributes
      *a, const Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-agent/nfs.c:753,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/nfs.c:755,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:757,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/nfs.c:762,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/nfs.c:764,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:767,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:768,1
    - Dst: feof
      Src: /src/core/cf-agent/nfs.c:770,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:772,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/nfs.c:772,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:776,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:776,1
    - Dst: cfPS
      Src: /src/core/cf-agent/nfs.c:778,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/nfs.c:779,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:780,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:781,1
    - Dst: cfPS
      Src: /src/core/cf-agent/nfs.c:786,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/nfs.c:787,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - ctx
    - name
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 742
    functionDepth: 13
    functionLinenumber: 742
    functionLinenumberEnd: 789
    functionName: VerifyUnmount
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - snprintf
    - cf_popen
    - strstr
    - cfPS
    - feof
    - cf_pclose
    - xmalloc
    - Log
    - free
    - CfReadLine
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyUnmount(EvalContext *ctx, char *name, const Attributes
      *a, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/cf-agent/nfs.c:801,1
    - Dst: strncmp
      Src: /src/core/cf-agent/nfs.c:802,1
    - Dst: strtok
      Src: /src/core/cf-agent/nfs.c:804,1
    - Dst: strcmp
      Src: /src/core/cf-agent/nfs.c:807,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:809,1
    - Dst: strtok
      Src: /src/core/cf-agent/nfs.c:812,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - match
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 819
    functionName: MatchFSInFstab
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 3
    functionsReached:
    - strncmp
    - strtok
    - strcmp
    - xstrdup
    - free
    linkageType: ''
    returnType: bool
    signature: bool MatchFSInFstab(char *match)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:829,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:834,1
    - Dst: stat
      Src: /src/core/cf-agent/nfs.c:842,1
    - Dst: creat
      Src: /src/core/cf-agent/nfs.c:845,1
    - Dst: write
      Src: /src/core/cf-agent/nfs.c:847,1
    - Dst: UnexpectedError
      Src: /src/core/cf-agent/nfs.c:849,1
    - Dst: close
      Src: /src/core/cf-agent/nfs.c:851,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:857,1
    - Dst: SetTimeOut
      Src: /src/core/cf-agent/nfs.c:864,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/nfs.c:868,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:870,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/nfs.c:871,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/nfs.c:876,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/nfs.c:880,1
    - Dst: feof
      Src: /src/core/cf-agent/nfs.c:883,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:885,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/nfs.c:887,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:892,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:892,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:892,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:897,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:902,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:902,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:904,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:910,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:910,1
    - Dst: strstr
      Src: /src/core/cf-agent/nfs.c:910,1
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:912,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:919,1
    - Dst: alarm
      Src: /src/core/cf-agent/nfs.c:920,1
    - Dst: signal
      Src: /src/core/cf-agent/nfs.c:921,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/nfs.c:922,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 823
    functionDepth: 11
    functionLinenumber: 823
    functionLinenumberEnd: 923
    functionName: MountAll
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 0
    functionsReached:
    - creat
    - stat
    - GetErrorStr
    - cf_popen
    - write
    - strstr
    - alarm
    - UnexpectedError
    - feof
    - cf_pclose
    - xmalloc
    - Log
    - SetTimeOut
    - free
    - CfReadLine
    - close
    - signal
    linkageType: ''
    returnType: void
    signature: void MountAll()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:937,1
    - Dst: free
      Src: /src/core/cf-agent/nfs.c:955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - liststart
    - entry
    argTypes:
    - Item**
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 957
    functionName: DeleteThisItem
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void DeleteThisItem(Item **liststart, Item *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/nfs.c:961,1
    - Dst: RawSaveItemList
      Src: /src/core/cf-agent/nfs.c:965,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/nfs.c:966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 959
    functionDepth: 9
    functionLinenumber: 959
    functionLinenumberEnd: 970
    functionName: CleanupNFS
    functionSourceFile: /src/core/cf-agent/nfs.c
    functionUses: 0
    functionsReached:
    - DeleteItemList
    - RawSaveItemList
    - Log
    linkageType: ''
    returnType: void
    signature: void CleanupNFS(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetMethodAttributes
      Src: /src/core/cf-agent/verify_methods.c:58,1
    - Dst: PromiseGetConstraint
      Src: /src/core/cf-agent/verify_methods.c:64,1
    - Dst: RvalNew
      Src: /src/core/cf-agent/verify_methods.c:71,1
    - Dst: VerifyMethod
      Src: /src/core/cf-agent/verify_methods.c:75,1
    - Dst: RvalDestroy
      Src: /src/core/cf-agent/verify_methods.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 56
    functionDepth: 11
    functionLinenumber: 56
    functionLinenumberEnd: 83
    functionName: VerifyMethodsPromise
    functionSourceFile: /src/core/cf-agent/verify_methods.c
    functionUses: 0
    functionsReached:
    - GetMethodAttributes
    - PromiseGetConstraint
    - RvalNew
    - VerifyMethod
    - RvalDestroy
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyMethodsPromise(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/cf-agent/verify_methods.c:90,1
    - Dst: RvalFnCallValue
      Src: /src/core/cf-agent/verify_methods.c:95,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_methods.c:96,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_methods.c:96,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_methods.c:96,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_methods.c:108,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_methods.c:108,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_methods.c:108,1
    - Dst: RvalScalarValue
      Src: /src/core/cf-agent/verify_methods.c:109,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_methods.c:115,1
    - Dst: GetLockName
      Src: /src/core/cf-agent/verify_methods.c:120,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_methods.c:122,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_methods.c:125,1
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_methods.c:129,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/cf-agent/verify_methods.c:131,1
    - Dst: PromiseGetPolicy
      Src: /src/core/cf-agent/verify_methods.c:131,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_methods.c:131,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/cf-agent/verify_methods.c:135,1
    - Dst: PromiseGetPolicy
      Src: /src/core/cf-agent/verify_methods.c:135,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_methods.c:135,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_methods.c:145,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_methods.c:145,1
    - Dst: BundleBanner
      Src: /src/core/cf-agent/verify_methods.c:149,1
    - Dst: EvalContextSetBundleArgs
      Src: /src/core/cf-agent/verify_methods.c:150,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/cf-agent/verify_methods.c:151,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_methods.c:151,1
    - Dst: EvalContextVariableTableIteratorNew
      Src: /src/core/cf-agent/verify_methods.c:157,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/cf-agent/verify_methods.c:159,1
    - Dst: VariableGetRef
      Src: /src/core/cf-agent/verify_methods.c:161,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_methods.c:166,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/cf-agent/verify_methods.c:168,1
    - Dst: BundleResolve
      Src: /src/core/cf-agent/verify_methods.c:170,1
    - Dst: ScheduleAgentOperations
      Src: /src/core/cf-agent/verify_methods.c:172,1
    - Dst: GetReturnValue
      Src: /src/core/cf-agent/verify_methods.c:174,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_methods.c:176,1
    - Dst: EvalContextSetBundleArgs
      Src: /src/core/cf-agent/verify_methods.c:177,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_methods.c:187,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_methods.c:191,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_methods.c:195,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_methods.c:200,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_methods.c:204,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_methods.c:211,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/cf-agent/verify_methods.c:212,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_methods.c:213,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_methods.c:214,1
    - Dst: IsCf3VarString
      Src: /src/core/cf-agent/verify_methods.c:219,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_methods.c:219,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_methods.c:221,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_methods.c:225,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_methods.c:227,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_methods.c:228,1
    - Dst: EvalContextGetConfig
      Src: /src/core/cf-agent/verify_methods.c:229,1
    - Dst: FatalError
      Src: /src/core/cf-agent/verify_methods.c:231,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_methods.c:231,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_methods.c:235,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_methods.c:236,1
    - Dst: EndBundleBanner
      Src: /src/core/cf-agent/verify_methods.c:237,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 88
    argCount: 4
    argNames:
    - ctx
    - call
    - a
    - pp
    argTypes:
    - EvalContext*
    - Rval
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 87
    functionDepth: 17
    functionLinenumber: 87
    functionLinenumberEnd: 240
    functionName: VerifyMethod
    functionSourceFile: /src/core/cf-agent/verify_methods.c
    functionUses: 1
    functionsReached:
    - IsCf3VarString
    - BundleBanner
    - BufferDestroy
    - VarRefParseFromBundle
    - EvalContextStackPopFrame
    - AcquireLock
    - VarRefDestroy
    - Log
    - RlistScalarValue
    - BufferNew
    - VariableGetRef
    - RvalFnCallValue
    - BufferData
    - PromiseBanner
    - EvalContextSetBundleArgs
    - EvalContextStackPushBundleFrame
    - EvalContextVariableTableIteratorNew
    - YieldCurrentLock
    - BundleResolve
    - PromiseGetPolicy
    - VariableTableIteratorNext
    - GetLockName
    - PromiseGetBundle
    - RvalScalarValue
    - ExpandScalar
    - GetReturnValue
    - EvalContextResolveBundleExpression
    - ScheduleAgentOperations
    - EndBundleBanner
    - EvalContextGetConfig
    - EvalContextVariableRemove
    - cfPS
    - FatalError
    - VariableTableIteratorDestroy
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyMethod(EvalContext *ctx, const Rval call, const
      Attributes *a, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_methods.c:246,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/cf-agent/verify_methods.c:250,1
    - Dst: EvalContextVariableTableIteratorNew
      Src: /src/core/cf-agent/verify_methods.c:251,1
    - Dst: VariableTableIteratorNext
      Src: /src/core/cf-agent/verify_methods.c:253,1
    - Dst: VariableGetRef
      Src: /src/core/cf-agent/verify_methods.c:255,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_methods.c:256,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/cf-agent/verify_methods.c:262,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_methods.c:262,1
    - Dst: VarRefAddIndex
      Src: /src/core/cf-agent/verify_methods.c:263,1
    - Dst: VariableGetRval
      Src: /src/core/cf-agent/verify_methods.c:265,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_methods.c:266,1
    - Dst: VariableGetType
      Src: /src/core/cf-agent/verify_methods.c:266,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_methods.c:268,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_methods.c:271,1
    - Dst: VariableTableIteratorDestroy
      Src: /src/core/cf-agent/verify_methods.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - callee
    - caller
    argTypes:
    - EvalContext*
    - Bundle*
    - Promise*
    assertStmts:
    - condition: (result_var_ref->num_indices == 1)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/core/cf-agent/verify_methods.c
    constantsTouched: []
    func_position:
      end: 275
      start: 244
    functionDepth: 11
    functionLinenumber: 244
    functionLinenumberEnd: 275
    functionName: GetReturnValue
    functionSourceFile: /src/core/cf-agent/verify_methods.c
    functionUses: 1
    functionsReached:
    - PromiseGetBundle
    - VarRefParseFromBundle
    - EvalContextVariableTableIteratorNew
    - assert
    - VarRefDestroy
    - VariableGetRval
    - EvalContextVariablePut
    - VarRefAddIndex
    - VariableTableIteratorNext
    - PromiseGetConstraintAsRval
    - VariableGetType
    - VariableTableIteratorDestroy
    - VariableGetRef
    linkageType: ''
    returnType: void
    signature: void GetReturnValue(EvalContext *ctx, const Bundle *callee, const Promise
      *caller)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GetUserAttributes
      Src: /src/core/cf-agent/verify_users.c:41,1
    - Dst: UserSanityCheck
      Src: /src/core/cf-agent/verify_users.c:43,1
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_users.c:48,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_users.c:50,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_users.c:52,1
    - Dst: VerifyOneUsersPromise
      Src: /src/core/cf-agent/verify_users.c:60,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_users.c:64,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_users.c:71,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_users.c:74,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_users.c:77,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_users.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 36
    functionDepth: 13
    functionLinenumber: 36
    functionLinenumberEnd: 84
    functionName: VerifyUsersPromise
    functionSourceFile: /src/core/cf-agent/verify_users.c
    functionUses: 0
    functionsReached:
    - PromiseBanner
    - snprintf
    - UserSanityCheck
    - GetUserAttributes
    - YieldCurrentLock
    - cfPS
    - AcquireLock
    - ProgrammingError
    - VerifyOneUsersPromise
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyUsersPromise(EvalContext *ctx, const Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users.c:90,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users.c:99,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_users.c:100,1
    - Dst: SafeStringLength
      Src: /src/core/cf-agent/verify_users.c:104,1
    - Dst: SafeStringLength
      Src: /src/core/cf-agent/verify_users.c:105,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users.c:107,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_users.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/core/cf-agent/verify_users.c
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 9
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: UserSanityCheck
    functionSourceFile: /src/core/cf-agent/verify_users.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - PromiseRef
    - SafeStringLength
    linkageType: ''
    returnType: bool
    signature: bool UserSanityCheck(const Attributes *a, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - auto_define_list
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: SetFileAutoDefineList
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetFileAutoDefineList(const Rlist *auto_define_list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:139,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:143,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/cf-agent/verify_files_utils.c:147,1
    - Dst: GetFilesAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:148,1
    - Dst: GetExpandedAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:149,1
    - Dst: TransformFile
      Src: /src/core/cf-agent/verify_files_utils.c:153,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:162,1
    - Dst: VerifyName
      Src: /src/core/cf-agent/verify_files_utils.c:162,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:167,1
    - Dst: VerifyDelete
      Src: /src/core/cf-agent/verify_files_utils.c:167,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:172,1
    - Dst: TouchFile
      Src: /src/core/cf-agent/verify_files_utils.c:172,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:178,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:179,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:181,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:185,1
    - Dst: VerifyFileAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:185,1
    - Dst: ClearExpandedAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 6
    argNames:
    - ctx
    - path
    - sb
    - Attributes *attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - ARG_UNUSED
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 189
      start: 136
    functionDepth: 11
    functionLinenumber: 136
    functionLinenumberEnd: 189
    functionName: VerifyFileLeaf
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - TransformFile
    - VerifyDelete
    - TouchFile
    - assert
    - GetFilesAttributes
    - S_ISDIR
    - ClearExpandedAttributes
    - Log
    - strcmp
    - VerifyFileAttributes
    - EvalContextVariablePutSpecial
    - VerifyName
    - PromiseResultUpdate
    - GetExpandedAttributes
    linkageType: ''
    returnType: void
    signature: void VerifyFileLeaf(EvalContext *ctx, char *path, const struct stat
      *sb, ARG_UNUSED const Attributes *attr, const Promise *pp, PromiseResult *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:198,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_utils.c:198,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_files_utils.c:205,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_utils.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - listofregex
    - teststring
    argTypes:
    - EvalContext*
    - Rlist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 212
    functionName: MatchRlistItem
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - FullTextMatch
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool MatchRlistItem(EvalContext *ctx, const Rlist *listofregex, const
      char *teststring)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:221,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:239,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:248,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:249,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:251,1
    - Dst: SelectLeaf
      Src: /src/core/cf-agent/verify_files_utils.c:257,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:259,1
    - Dst: StringSetContains
      Src: /src/core/cf-agent/verify_files_utils.c:263,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:265,1
    - Dst: ReadLastNode
      Src: /src/core/cf-agent/verify_files_utils.c:271,1
    - Dst: MatchRlistItem
      Src: /src/core/cf-agent/verify_files_utils.c:273,1
    - Dst: MatchRlistItem
      Src: /src/core/cf-agent/verify_files_utils.c:275,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:277,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:285,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:288,1
    - Dst: LinkCopy
      Src: /src/core/cf-agent/verify_files_utils.c:292,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:300,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:302,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:306,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:309,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:310,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:310,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:312,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:316,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files_utils.c:319,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:323,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:331,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:333,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:335,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:338,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:341,1
    - Dst: MakeParentDirectoryForPromise
      Src: /src/core/cf-agent/verify_files_utils.c:349,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:356,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:357,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:366,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/verify_files_utils.c:375,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:376,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:378,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:383,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:387,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:389,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:390,1
    - Dst: LinkCopy
      Src: /src/core/cf-agent/verify_files_utils.c:391,1
    - Dst: CopyRegularFile
      Src: /src/core/cf-agent/verify_files_utils.c:394,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:397,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:397,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:399,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:401,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:405,1
    - Dst: VerifyCopiedFileAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:406,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:411,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:413,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_files_utils.c:417,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files_utils.c:417,1
    - Dst: MatchRlistItem
      Src: /src/core/cf-agent/verify_files_utils.c:420,1
    - Dst: FileAutoDefine
      Src: /src/core/cf-agent/verify_files_utils.c:422,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:427,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:429,1
    - Dst: S_ISFIFO
      Src: /src/core/cf-agent/verify_files_utils.c:435,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:438,1
    - Dst: mkfifo
      Src: /src/core/cf-agent/verify_files_utils.c:442,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:442,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:444,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:445,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:446,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:450,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:451,1
    - Dst: RecordWarning
      Src: /src/core/cf-agent/verify_files_utils.c:453,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:455,1
    - Dst: S_ISBLK
      Src: /src/core/cf-agent/verify_files_utils.c:462,1
    - Dst: S_ISCHR
      Src: /src/core/cf-agent/verify_files_utils.c:462,1
    - Dst: S_ISSOCK
      Src: /src/core/cf-agent/verify_files_utils.c:462,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:464,1
    - Dst: mknod
      Src: /src/core/cf-agent/verify_files_utils.c:468,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:468,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:471,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:472,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:473,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:476,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:477,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:482,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:484,1
    - Dst: LinkCopy
      Src: /src/core/cf-agent/verify_files_utils.c:485,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:491,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:496,1
    - Dst: CompareForFileCopy
      Src: /src/core/cf-agent/verify_files_utils.c:501,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:510,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:513,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:518,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/verify_files_utils.c:520,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:523,1
    - Dst: MatchRlistItem
      Src: /src/core/cf-agent/verify_files_utils.c:529,1
    - Dst: FileAutoDefine
      Src: /src/core/cf-agent/verify_files_utils.c:531,1
    - Dst: CopyRegularFile
      Src: /src/core/cf-agent/verify_files_utils.c:534,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:537,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:537,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:539,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:541,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:542,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:546,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:548,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:549,1
    - Dst: VerifyCopiedFileAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:550,1
    - Dst: RlistIsInListOfRegex
      Src: /src/core/cf-agent/verify_files_utils.c:555,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_files_utils.c:557,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files_utils.c:557,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:562,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:564,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:569,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:571,1
    - Dst: LinkCopy
      Src: /src/core/cf-agent/verify_files_utils.c:572,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:578,1
    - Dst: VerifyCopiedFileAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:579,1
    - Dst: RlistIsInListOfRegex
      Src: /src/core/cf-agent/verify_files_utils.c:586,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_files_utils.c:588,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files_utils.c:588,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:591,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 185
    argCount: 8
    argNames:
    - ctx
    - sourcefile
    - destfile
    - ssb
    - a
    - pp
    - inode_cache
    - conn
    argTypes:
    - EvalContext*
    - char*
    - char*
    - struct stat*
    - Attributes*
    - Promise*
    - CompressedArray**
    - AgentConnection*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 597
      start: 215
    functionDepth: 12
    functionLinenumber: 215
    functionLinenumberEnd: 597
    functionName: CfCopyFile
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - S_ISSOCK
    - VerifyCopiedFileAttributes
    - S_ISFIFO
    - RecordWarning
    - Log
    - S_ISREG
    - CopyRegularFile
    - S_ISBLK
    - RlistIsInListOfRegex
    - RecordInterruption
    - unlink
    - RecordChange
    - SelectLeaf
    - S_ISCHR
    - mkfifo
    - mknod
    - strcmp
    - LinkCopy
    - RecordNoChange
    - lstat
    - xstrdup
    - ReadLastNode
    - S_ISLNK
    - assert
    - StringSetContains
    - MatchRlistItem
    - StringSetAdd
    - GetErrorStr
    - ChrootChanges
    - stat
    - CompareForFileCopy
    - FileAutoDefine
    - MakeParentDirectoryForPromise
    - PromiseRef
    - RecordFailure
    - ToChangesChroot
    - ToChangesPath
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult CfCopyFile(EvalContext *ctx, char *sourcefile,\n                                char
      *destfile, const struct stat *ssb,\n                                const Attributes
      *a, const Promise *pp,\n                                CompressedArray **inode_cache,\n
      \                               AgentConnection *conn)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:602,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_files_utils.c:608,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:610,1
    - Dst: RecordDenial
      Src: /src/core/cf-agent/verify_files_utils.c:618,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:626,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:635,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:637,1
    - Dst: safe_chdir
      Src: /src/core/cf-agent/verify_files_utils.c:640,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:642,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:644,1
    - Dst: DirOpen
      Src: /src/core/cf-agent/verify_files_utils.c:648,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:650,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:652,1
    - Dst: DirRead
      Src: /src/core/cf-agent/verify_files_utils.c:657,1
    - Dst: DirRead
      Src: /src/core/cf-agent/verify_files_utils.c:657,1
    - Dst: ConsiderLocalFile
      Src: /src/core/cf-agent/verify_files_utils.c:659,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:661,1
    - Dst: IsItemIn
      Src: /src/core/cf-agent/verify_files_utils.c:665,1
    - Dst: strncpy
      Src: /src/core/cf-agent/verify_files_utils.c:667,1
    - Dst: AddSlash
      Src: /src/core/cf-agent/verify_files_utils.c:669,1
    - Dst: strlcat
      Src: /src/core/cf-agent/verify_files_utils.c:671,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:673,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:680,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:682,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:684,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:687,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:689,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:691,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:692,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:694,1
    - Dst: DeleteDirectoryTree
      Src: /src/core/cf-agent/verify_files_utils.c:696,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:698,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:700,1
    - Dst: rmdir
      Src: /src/core/cf-agent/verify_files_utils.c:702,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:706,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:708,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:713,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:715,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:718,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:720,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:721,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:725,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:726,1
    - Dst: DirClose
      Src: /src/core/cf-agent/verify_files_utils.c:732,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 6
    argNames:
    - ctx
    - filelist
    - localdir
    - attr
    - pp
    - conn
    argTypes:
    - EvalContext*
    - Item*
    - char*
    - Attributes*
    - Promise*
    - AgentConnection*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 601
        line_start: 601
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 735
      start: 599
    functionDepth: 12
    functionLinenumber: 599
    functionLinenumberEnd: 735
    functionName: PurgeLocalFiles
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - Log
    - RecordInterruption
    - RecordChange
    - unlink
    - strlen
    - DirOpen
    - ConsiderLocalFile
    - lstat
    - RecordNoChange
    - safe_chdir
    - strlcat
    - strncpy
    - rmdir
    - assert
    - DirRead
    - S_ISDIR
    - RecordDenial
    - GetErrorStr
    - ChrootChanges
    - IsItemIn
    - RecordFailure
    - DeleteDirectoryTree
    - DirClose
    - ToChangesChroot
    - AddSlash
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult PurgeLocalFiles(EvalContext *ctx, Item *filelist, const
      char *localdir, const Attributes *attr,\n                                     const
      Promise *pp, AgentConnection *conn)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:745,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_files_utils.c:749,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:757,1
    - Dst: AddSlash
      Src: /src/core/cf-agent/verify_files_utils.c:758,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_files_utils.c:759,1
    - Dst: MakeParentDirectoryForPromise
      Src: /src/core/cf-agent/verify_files_utils.c:765,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:773,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:774,1
    - Dst: ChopLastNode
      Src: /src/core/cf-agent/verify_files_utils.c:777,1
    - Dst: DeleteSlash
      Src: /src/core/cf-agent/verify_files_utils.c:780,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:783,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:785,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:789,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:791,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:792,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:793,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:797,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:804,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:807,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:811,1
    - Dst: DeleteSlash
      Src: /src/core/cf-agent/verify_files_utils.c:812,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_files_utils.c:813,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:815,1
    - Dst: rename
      Src: /src/core/cf-agent/verify_files_utils.c:817,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:819,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:820,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:824,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:825,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:829,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:831,1
    - Dst: mkdir
      Src: /src/core/cf-agent/verify_files_utils.c:832,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:834,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:835,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:836,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:837,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:842,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:843,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:845,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:852,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:854,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:856,1
    - Dst: AbstractDirOpen
      Src: /src/core/cf-agent/verify_files_utils.c:865,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:867,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:868,1
    - Dst: AbstractDirRead
      Src: /src/core/cf-agent/verify_files_utils.c:878,1
    - Dst: AbstractDirRead
      Src: /src/core/cf-agent/verify_files_utils.c:878,1
    - Dst: ConsiderAbstractFile
      Src: /src/core/cf-agent/verify_files_utils.c:881,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:886,1
    - Dst: AbstractDirClose
      Src: /src/core/cf-agent/verify_files_utils.c:888,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:889,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:894,1
    - Dst: AppendItem
      Src: /src/core/cf-agent/verify_files_utils.c:902,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:906,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:907,1
    - Dst: PathAppend
      Src: /src/core/cf-agent/verify_files_utils.c:909,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:911,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:914,1
    - Dst: AbstractDirClose
      Src: /src/core/cf-agent/verify_files_utils.c:915,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:920,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:922,1
    - Dst: cf_stat
      Src: /src/core/cf-agent/verify_files_utils.c:932,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:934,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:934,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:938,1
    - Dst: AbstractDirClose
      Src: /src/core/cf-agent/verify_files_utils.c:939,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:940,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:945,1
    - Dst: cf_lstat
      Src: /src/core/cf-agent/verify_files_utils.c:952,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:954,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:954,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:958,1
    - Dst: AbstractDirClose
      Src: /src/core/cf-agent/verify_files_utils.c:959,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:960,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:965,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:975,1
    - Dst: PathAppend
      Src: /src/core/cf-agent/verify_files_utils.c:977,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:980,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:984,1
    - Dst: AbstractDirClose
      Src: /src/core/cf-agent/verify_files_utils.c:985,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:989,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:995,1
    - Dst: DeviceBoundary
      Src: /src/core/cf-agent/verify_files_utils.c:998,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1000,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:1004,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1008,1
    - Dst: SkipDirLinks
      Src: /src/core/cf-agent/verify_files_utils.c:1012,1
    - Dst: memset
      Src: /src/core/cf-agent/verify_files_utils.c:1017,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:1021,1
    - Dst: mkdir
      Src: /src/core/cf-agent/verify_files_utils.c:1023,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:1025,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1026,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1027,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1033,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1034,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:1037,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:1039,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1041,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1042,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1048,1
    - Dst: VerifyCopiedFileAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:1052,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1055,1
    - Dst: SourceSearchAndCopy
      Src: /src/core/cf-agent/verify_files_utils.c:1055,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1060,1
    - Dst: VerifyCopy
      Src: /src/core/cf-agent/verify_files_utils.c:1060,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:1066,1
    - Dst: AbstractDirClose
      Src: /src/core/cf-agent/verify_files_utils.c:1067,1
    - Dst: PurgeLocalFiles
      Src: /src/core/cf-agent/verify_files_utils.c:1074,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/verify_files_utils.c:1075,1
    - Dst: AbstractDirClose
      Src: /src/core/cf-agent/verify_files_utils.c:1078,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 183
    argCount: 9
    argNames:
    - ctx
    - from
    - to
    - maxrecurse
    - attr
    - pp
    - rootdevice
    - inode_cache
    - conn
    argTypes:
    - EvalContext*
    - char*
    - char*
    - int
    - Attributes*
    - Promise*
    - dev_t
    - CompressedArray**
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 737
    functionDepth: 13
    functionLinenumber: 737
    functionLinenumberEnd: 1081
    functionName: SourceSearchAndCopy
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - SourceSearchAndCopy
    - VerifyCopiedFileAttributes
    - VerifyCopy
    - AbstractDirOpen
    - Log
    - strlcpy
    - mkdir
    - RecordInterruption
    - AbstractDirRead
    - cf_stat
    - RecordChange
    - unlink
    - strlen
    - cf_lstat
    - strcat
    - lstat
    - strcpy
    - PathAppend
    - memset
    - AbstractDirClose
    - S_ISLNK
    - DeviceBoundary
    - PurgeLocalFiles
    - SkipDirLinks
    - S_ISDIR
    - DeleteItemList
    - ConsiderAbstractFile
    - rename
    - ChopLastNode
    - GetErrorStr
    - ChrootChanges
    - umask
    - AppendItem
    - stat
    - DeleteSlash
    - MakeParentDirectoryForPromise
    - RecordFailure
    - ToChangesChroot
    - AddSlash
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult SourceSearchAndCopy(EvalContext *ctx, const char *from,
      char *to, int maxrecurse, const Attributes *attr,\n                                         const
      Promise *pp, dev_t rootdevice, CompressedArray **inode_cache, AgentConnection
      *conn)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:1089,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:1094,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:1096,1
    - Dst: access
      Src: /src/core/cf-agent/verify_files_utils.c:1097,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1109,1
    - Dst: cf_stat
      Src: /src/core/cf-agent/verify_files_utils.c:1110,1
    - Dst: cf_lstat
      Src: /src/core/cf-agent/verify_files_utils.c:1114,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1119,1
    - Dst: RegisterAHardLink
      Src: /src/core/cf-agent/verify_files_utils.c:1126,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:1126,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:1130,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:1133,1
    - Dst: AddSlash
      Src: /src/core/cf-agent/verify_files_utils.c:1134,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:1139,1
    - Dst: AbstractDirOpen
      Src: /src/core/cf-agent/verify_files_utils.c:1143,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1145,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1146,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1147,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:1154,1
    - Dst: AddSlash
      Src: /src/core/cf-agent/verify_files_utils.c:1155,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:1158,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:1160,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:1164,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1166,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1167,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1168,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1172,1
    - Dst: VerifyCopiedFileAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:1173,1
    - Dst: AbstractDirRead
      Src: /src/core/cf-agent/verify_files_utils.c:1180,1
    - Dst: AbstractDirRead
      Src: /src/core/cf-agent/verify_files_utils.c:1182,1
    - Dst: ConsiderAbstractFile
      Src: /src/core/cf-agent/verify_files_utils.c:1184,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:1190,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1192,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1197,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:1202,1
    - Dst: PathAppend
      Src: /src/core/cf-agent/verify_files_utils.c:1204,1
    - Dst: FatalError
      Src: /src/core/cf-agent/verify_files_utils.c:1208,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:1212,1
    - Dst: PathAppend
      Src: /src/core/cf-agent/verify_files_utils.c:1214,1
    - Dst: FatalError
      Src: /src/core/cf-agent/verify_files_utils.c:1218,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:1224,1
    - Dst: cf_stat
      Src: /src/core/cf-agent/verify_files_utils.c:1228,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1230,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1232,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1233,1
    - Dst: cf_lstat
      Src: /src/core/cf-agent/verify_files_utils.c:1239,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1241,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1242,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1243,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1248,1
    - Dst: CfCopyFile
      Src: /src/core/cf-agent/verify_files_utils.c:1248,1
    - Dst: AbstractDirClose
      Src: /src/core/cf-agent/verify_files_utils.c:1252,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:1260,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:1261,1
    - Dst: CfCopyFile
      Src: /src/core/cf-agent/verify_files_utils.c:1263,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 86
    argCount: 7
    argNames:
    - ctx
    - source
    - destination
    - attr
    - pp
    - inode_cache
    - conn
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    - CompressedArray**
    - AgentConnection*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 1088
        line_start: 1088
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 1266
      start: 1083
    functionDepth: 13
    functionLinenumber: 1083
    functionLinenumberEnd: 1266
    functionName: VerifyCopy
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - RegisterAHardLink
    - VerifyCopiedFileAttributes
    - AbstractDirOpen
    - Log
    - access
    - RecordInterruption
    - cf_stat
    - cf_lstat
    - strcpy
    - PathAppend
    - AbstractDirClose
    - assert
    - S_ISDIR
    - ConsiderAbstractFile
    - GetErrorStr
    - ChrootChanges
    - stat
    - RecordFailure
    - FatalError
    - CfCopyFile
    - ToChangesChroot
    - AddSlash
    - ToChangesPath
    - PromiseResultUpdate
    - AbstractDirRead
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult VerifyCopy(EvalContext *ctx,\n                                const
      char *source, char *destination,\n                                const Attributes
      *attr, const Promise *pp,\n                                CompressedArray **inode_cache,\n
      \                               AgentConnection *conn)"
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:1457,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:1458,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:1482,1
    - Dst: CompressedArrayValue
      Src: /src/core/cf-agent/verify_files_utils.c:1489,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:1493,1
    - Dst: PrepareChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:1495,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:1500,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:1502,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:1502,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1504,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1505,1
    - Dst: MakeHardLink
      Src: /src/core/cf-agent/verify_files_utils.c:1507,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:1514,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:1514,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_utils.c:1514,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1515,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_utils.c:1515,1
    - Dst: strstr
      Src: /src/core/cf-agent/verify_files_utils.c:1520,1
    - Dst: xstrndup
      Src: /src/core/cf-agent/verify_files_utils.c:1522,1
    - Dst: strstr
      Src: /src/core/cf-agent/verify_files_utils.c:1526,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1531,1
    - Dst: JoinSuffix
      Src: /src/core/cf-agent/verify_files_utils.c:1538,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1540,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:1546,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:1546,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1553,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1555,1
    - Dst: CopyRegularFileNet
      Src: /src/core/cf-agent/verify_files_utils.c:1583,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:1583,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1586,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1588,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1591,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1593,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:1599,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files_utils.c:1603,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:1603,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:1605,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/cf-agent/verify_files_utils.c:1613,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:1613,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1615,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1616,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1619,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1621,1
    - Dst: CopyRegularFileDiskPerms
      Src: /src/core/cf-agent/verify_files_utils.c:1627,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:1628,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1631,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1632,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1635,1
    - Dst: mode::mode
      Src: /src/core/cf-agent/verify_files_utils.c:1636,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1637,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1639,1
    - Dst: utime
      Src: /src/core/cf-agent/verify_files_utils.c:1646,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1651,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1669,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:1671,1
    - Dst: time
      Src: /src/core/cf-agent/verify_files_utils.c:1674,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:1675,1
    - Dst: CanonifyName
      Src: /src/core/cf-agent/verify_files_utils.c:1676,1
    - Dst: ctime
      Src: /src/core/cf-agent/verify_files_utils.c:1676,1
    - Dst: JoinSuffix
      Src: /src/core/cf-agent/verify_files_utils.c:1678,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1680,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1683,1
    - Dst: JoinSuffix
      Src: /src/core/cf-agent/verify_files_utils.c:1688,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1690,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1693,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:1697,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:1699,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:1699,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1703,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:1708,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:1711,1
    - Dst: PurgeLocalFiles
      Src: /src/core/cf-agent/verify_files_utils.c:1717,1
    - Dst: rmdir
      Src: /src/core/cf-agent/verify_files_utils.c:1718,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1720,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1721,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1725,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1727,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:1731,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1733,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1734,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1738,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1740,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/cf-agent/verify_files_utils.c:1744,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1746,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1747,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1751,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1752,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:1756,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:1763,1
    - Dst: PurgeLocalFiles
      Src: /src/core/cf-agent/verify_files_utils.c:1766,1
    - Dst: rmdir
      Src: /src/core/cf-agent/verify_files_utils.c:1768,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:1768,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1770,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1771,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1775,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1777,1
    - Dst: char::char
      Src: /src/core/cf-agent/verify_files_utils.c:1783,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:1785,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files_utils.c:1787,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:1787,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:1791,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:1793,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:1797,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1799,1
    - Dst: GetErrorStr::GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1801,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1802,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1803,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/verify_files_utils.c:1807,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1809,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1813,1
    - Dst: rename
      Src: /src/core/cf-agent/verify_files_utils.c:1815,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1817,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1818,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1822,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1823,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1826,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1832,1
    - Dst: CompareFileHashes
      Src: /src/core/cf-agent/verify_files_utils.c:1834,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1836,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1838,1
    - Dst: rename
      Src: /src/core/cf-agent/verify_files_utils.c:1840,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1842,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1843,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1847,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1848,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1851,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1856,1
    - Dst: safe_open
      Src: /src/core/cf-agent/verify_files_utils.c:1863,1
    - Dst: safe_open
      Src: /src/core/cf-agent/verify_files_utils.c:1864,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1868,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1868,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:1869,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:1870,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1871,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_files_utils.c:1875,1
    - Dst: read
      Src: /src/core/cf-agent/verify_files_utils.c:1881,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1891,1
    - Dst: GetErrorStr::GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1893,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1894,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:1895,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:1896,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1897,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1898,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:1906,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:1907,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1908,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:1910,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1912,1
    - Dst: dest::dest
      Src: /src/core/cf-agent/verify_files_utils.c:1912,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1913,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1917,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1918,1
    - Dst: write
      Src: /src/core/cf-agent/verify_files_utils.c:1929,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1939,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1941,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1942,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:1943,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:1944,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1945,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1946,1
    - Dst: EvalContextOverrideImmutableGet
      Src: /src/core/cf-agent/verify_files_utils.c:1957,1
    - Dst: OverrideImmutableRename
      Src: /src/core/cf-agent/verify_files_utils.c:1958,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1960,1
    - Dst: dest::dest
      Src: /src/core/cf-agent/verify_files_utils.c:1960,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1961,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1965,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:1967,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1968,1
    - Dst: OverrideImmutableRename
      Src: /src/core/cf-agent/verify_files_utils.c:1970,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1972,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1973,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1977,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1978,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1981,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:1985,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:1989,1
    - Dst: ArchiveToRepository
      Src: /src/core/cf-agent/verify_files_utils.c:1991,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:1993,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1994,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:1996,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:1998,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:1999,1
    - Dst: utime
      Src: /src/core/cf-agent/verify_files_utils.c:2008,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 302
    argCount: 9
    argNames:
    - ctx
    - source
    - dest
    - sstat
    - attr
    - pp
    - inode_cache
    - conn
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - struct stat*
    - Attributes*
    - Promise*
    - CompressedArray**
    - AgentConnection*
    - PromiseResult*
    assertStmts:
    - condition: (sstat != NULL)
      pos:
        line_end: 1457
        line_start: 1457
        source_file: /src/core/cf-agent/verify_files_utils.c
    - condition: (attr->copy.servers && strcmp(RlistScalarValue(attr->copy.servers),
        "localhost"))
      pos:
        line_end: 1513
        line_start: 1513
        source_file: /src/core/cf-agent/verify_files_utils.c
    - condition: (attr != NULL)
      pos:
        line_end: 1456
        line_start: 1456
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 2013
      start: 1453
    functionDepth: 13
    functionLinenumber: 1453
    functionLinenumberEnd: 2013
    functionName: CopyRegularFile
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - EvalContextOverrideImmutableGet
    - CopyRegularFileDisk
    - mode::mode
    - OverrideImmutableRename
    - CompareFileHashes
    - dest::dest
    - GetErrorStr::GetErrorStr
    - Log
    - S_ISREG
    - RlistScalarValue
    - free
    - xstrndup
    - utime
    - strlcpy
    - time
    - close
    - unlink
    - RecordChange
    - snprintf
    - CopyRegularFileNet
    - MakeHardLink
    - CompressedArrayValue
    - strcmp
    - xstrdup
    - PrepareChangesChroot
    - lstat
    - CanonifyName
    - read
    - rmdir
    - assert
    - PurgeLocalFiles
    - S_ISDIR
    - xmalloc
    - rename
    - ctime
    - ChrootChanges
    - stat
    - GetErrorStr
    - safe_open
    - strstr
    - write
    - RecordFailure
    - CopyRegularFileDiskPerms
    - ArchiveToRepository
    - char::char
    - ToChangesChroot
    - ToChangesPath
    - PromiseResultUpdate
    - MakingChanges
    - JoinSuffix
    linkageType: ''
    returnType: bool
    signature: "bool CopyRegularFile(EvalContext *ctx, const char *source, const char
      *dest, const struct stat *sstat,\n                     const Attributes *attr,
      const Promise *pp, CompressedArray **inode_cache,\n                     AgentConnection
      *conn, PromiseResult *result)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:2017,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/verify_files_utils.c:2026,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_files_utils.c:2027,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_files_utils.c:2027,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_files_utils.c:2027,1
    - Dst: IsExecutable
      Src: /src/core/cf-agent/verify_files_utils.c:2029,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/verify_files_utils.c:2029,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_files_utils.c:2029,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2031,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2032,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:2033,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_files_utils.c:2037,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2038,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_files_utils.c:2040,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:2044,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2050,1
    - Dst: BufferSize
      Src: /src/core/cf-agent/verify_files_utils.c:2052,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_files_utils.c:2053,1
    - Dst: strncpy
      Src: /src/core/cf-agent/verify_files_utils.c:2054,1
    - Dst: StringReplace
      Src: /src/core/cf-agent/verify_files_utils.c:2055,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:2056,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2059,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2062,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_files_utils.c:2063,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:2064,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2065,1
    - Dst: EvalContextOverrideImmutableGet
      Src: /src/core/cf-agent/verify_files_utils.c:2074,1
    - Dst: TemporarilyClearImmutableBit
      Src: /src/core/cf-agent/verify_files_utils.c:2076,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2078,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/verify_files_utils.c:2079,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2081,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2082,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_files_utils.c:2083,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:2084,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2085,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2088,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_files_utils.c:2091,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/verify_files_utils.c:2095,1
    - Dst: feof
      Src: /src/core/cf-agent/verify_files_utils.c:2098,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_files_utils.c:2100,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2101,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2102,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_files_utils.c:2103,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2104,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:2105,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2114,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2116,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2117,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_files_utils.c:2119,1
    - Dst: ResetTemporarilyClearedImmutableBit
      Src: /src/core/cf-agent/verify_files_utils.c:2121,1
    - Dst: VerifyCommandRetcode
      Src: /src/core/cf-agent/verify_files_utils.c:2123,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2125,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2129,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_files_utils.c:2132,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:2135,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 70
    argCount: 5
    argNames:
    - ctx
    - file
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 2016
        line_start: 2016
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 2137
      start: 2015
    functionDepth: 12
    functionLinenumber: 2015
    functionLinenumberEnd: 2137
    functionName: TransformFile
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - EvalContextOverrideImmutableGet
    - CommandArg0
    - BufferDestroy
    - feof
    - AcquireLock
    - Log
    - BufferNew
    - free
    - BufferData
    - RecordChange
    - cf_popen
    - YieldCurrentLock
    - cf_pclose
    - BufferSize
    - CfReadLine
    - PromiseGetBundle
    - ExpandScalar
    - strncpy
    - assert
    - xmalloc
    - StringReplace
    - ChrootChanges
    - IsExecutable
    - VerifyCommandRetcode
    - RecordFailure
    - ResetTemporarilyClearedImmutableBit
    - TemporarilyClearImmutableBit
    - ToChangesChroot
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: bool TransformFile(EvalContext *ctx, char *file, const Attributes *attr,
      const Promise *pp, PromiseResult *result)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:2141,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2147,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files_utils.c:2149,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:2149,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:2153,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:2155,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2156,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2164,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-agent/verify_files_utils.c:2172,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:2174,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2177,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2180,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2181,1
    - Dst: strncpy
      Src: /src/core/cf-agent/verify_files_utils.c:2187,1
    - Dst: ChopLastNode
      Src: /src/core/cf-agent/verify_files_utils.c:2188,1
    - Dst: PathAppend
      Src: /src/core/cf-agent/verify_files_utils.c:2190,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2193,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2196,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2197,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2203,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:2205,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2208,1
    - Dst: FileInRepository
      Src: /src/core/cf-agent/verify_files_utils.c:2211,1
    - Dst: EvalContextOverrideImmutableGet
      Src: /src/core/cf-agent/verify_files_utils.c:2213,1
    - Dst: OverrideImmutableRename
      Src: /src/core/cf-agent/verify_files_utils.c:2214,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2216,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2217,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2221,1
    - Dst: RecordFileRenamedInChroot
      Src: /src/core/cf-agent/verify_files_utils.c:2223,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2225,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2226,1
    - Dst: RecordWarning
      Src: /src/core/cf-agent/verify_files_utils.c:2231,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2234,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2238,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:2242,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2246,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:2248,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2250,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2251,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2252,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2256,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2257,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2261,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2272,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:2273,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2275,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_files_utils.c:2279,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-agent/verify_files_utils.c:2281,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:2283,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:2287,1
    - Dst: ChopLastNode
      Src: /src/core/cf-agent/verify_files_utils.c:2288,1
    - Dst: PathAppend
      Src: /src/core/cf-agent/verify_files_utils.c:2290,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2293,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2296,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2297,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:2304,1
    - Dst: JoinSuffix
      Src: /src/core/cf-agent/verify_files_utils.c:2308,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2310,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2313,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2314,1
    - Dst: JoinSuffix
      Src: /src/core/cf-agent/verify_files_utils.c:2320,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2322,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2325,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2326,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2333,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:2335,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2349,1
    - Dst: EvalContextOverrideImmutableGet
      Src: /src/core/cf-agent/verify_files_utils.c:2351,1
    - Dst: OverrideImmutableChmod
      Src: /src/core/cf-agent/verify_files_utils.c:2352,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2354,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2356,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2360,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2361,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2362,1
    - Dst: FileInRepository
      Src: /src/core/cf-agent/verify_files_utils.c:2365,1
    - Dst: OverrideImmutableRename
      Src: /src/core/cf-agent/verify_files_utils.c:2367,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2369,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2370,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2371,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2376,1
    - Dst: RecordFileRenamedInChroot
      Src: /src/core/cf-agent/verify_files_utils.c:2378,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2380,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2382,1
    - Dst: ArchiveToRepository
      Src: /src/core/cf-agent/verify_files_utils.c:2385,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:2391,1
    - Dst: RecordWarning
      Src: /src/core/cf-agent/verify_files_utils.c:2396,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2398,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2402,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2408,1
    - Dst: TruncateFile
      Src: /src/core/cf-agent/verify_files_utils.c:2410,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2411,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2412,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2414,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2420,1
    - Dst: RotateFiles
      Src: /src/core/cf-agent/verify_files_utils.c:2422,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2423,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2424,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2427,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:2431,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 169
    argCount: 5
    argNames:
    - ctx
    - path
    - sb
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 2140
        line_start: 2140
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 2433
      start: 2139
    functionDepth: 12
    functionLinenumber: 2139
    functionLinenumberEnd: 2433
    functionName: VerifyName
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - EvalContextOverrideImmutableGet
    - OverrideImmutableRename
    - IsAbsoluteFileName
    - RecordWarning
    - Log
    - RecordFileRenamedInChroot
    - free
    - strlcpy
    - RecordChange
    - unlink
    - strlen
    - OverrideImmutableChmod
    - FileInRepository
    - lstat
    - xstrdup
    - RecordNoChange
    - strcpy
    - PathAppend
    - S_ISLNK
    - strncpy
    - assert
    - S_ISDIR
    - ChopLastNode
    - GetErrorStr
    - ChrootChanges
    - RecordFailure
    - TruncateFile
    - ArchiveToRepository
    - ToChangesChroot
    - RotateFiles
    - PromiseResultUpdate
    - MakingChanges
    - JoinSuffix
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyName(EvalContext *ctx, char *path, const struct
      stat *sb, const Attributes *attr, const Promise *pp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:2439,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2440,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2443,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:2445,1
    - Dst: ReadLastNode
      Src: /src/core/cf-agent/verify_files_utils.c:2448,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2451,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:2452,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:2454,1
    - Dst: EvalContextOverrideImmutableGet
      Src: /src/core/cf-agent/verify_files_utils.c:2456,1
    - Dst: OverrideImmutableDelete
      Src: /src/core/cf-agent/verify_files_utils.c:2457,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2459,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2460,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2465,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:2473,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:2479,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2481,1
    - Dst: rmdir
      Src: /src/core/cf-agent/verify_files_utils.c:2488,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2491,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2492,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2500,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:2506,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2507,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 5
    argNames:
    - ctx
    - path
    - sb
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 2438
        line_start: 2438
        source_file: /src/core/cf-agent/verify_files_utils.c
    - condition: (ret != -1)
      pos:
        line_end: 2505
        line_start: 2505
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 2514
      start: 2435
    functionDepth: 12
    functionLinenumber: 2435
    functionLinenumberEnd: 2514
    functionName: VerifyDelete
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ChrootChanges
    - EvalContextOverrideImmutableGet
    - RecordChange
    - rmdir
    - assert
    - S_ISDIR
    - RecordFailure
    - OverrideImmutableDelete
    - Log
    - strcmp
    - RecordNoChange
    - ToChangesChroot
    - ReadLastNode
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult VerifyDelete(EvalContext *ctx,\n                                  const
      char *path, const struct stat *sb,\n                                  const
      Attributes *attr, const Promise *pp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2519,1
    - Dst: EvalContextOverrideImmutableGet
      Src: /src/core/cf-agent/verify_files_utils.c:2521,1
    - Dst: OverrideImmutableUtime
      Src: /src/core/cf-agent/verify_files_utils.c:2522,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:2522,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2524,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2525,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2529,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - path
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2516
    functionDepth: 12
    functionLinenumber: 2516
    functionLinenumberEnd: 2536
    functionName: TouchFile
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - OverrideImmutableUtime
    - EvalContextOverrideImmutableGet
    - RecordChange
    - RecordFailure
    - ToChangesPath
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult TouchFile(EvalContext *ctx, char *path, const Attributes
      *attr, const Promise *pp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:2544,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:2544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - stat_buf
    - filename
    argTypes:
    - struct stat*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2538
    functionDepth: 1
    functionLinenumber: 2538
    functionLinenumberEnd: 2570
    functionName: GetFileTypeDescription
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - lstat
    - S_ISLNK
    linkageType: ''
    returnType: char
    signature: "char *GetFileTypeDescription(const struct stat *const stat_buf,\n
      \                                          const char *const filename)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:2783,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:2784,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/verify_files_utils.c:2790,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2794,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:2797,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2800,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2802,1
    - Dst: rename
      Src: /src/core/cf-agent/verify_files_utils.c:2806,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2808,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2809,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2810,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:2815,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2816,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:2821,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2823,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2824,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - ctx
    - path
    - sb
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (sb != NULL)
      pos:
        line_end: 2782
        line_start: 2782
        source_file: /src/core/cf-agent/verify_files_utils.c
    - condition: (attr != NULL)
      pos:
        line_end: 2783
        line_start: 2783
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 2829
      start: 2780
    functionDepth: 12
    functionLinenumber: 2780
    functionLinenumberEnd: 2829
    functionName: HandleFileObstruction
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - snprintf
    - RecordChange
    - S_ISLNK
    - assert
    - rename
    - RecordFailure
    - S_ISREG
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: bool HandleFileObstruction(EvalContext *ctx, const char *path, const
      struct stat *sb, const Attributes *attr, const Promise *pp, PromiseResult *result)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:2834,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2847,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:2848,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:2848,1
    - Dst: ChopLastNode
      Src: /src/core/cf-agent/verify_files_utils.c:2849,1
    - Dst: safe_chdir
      Src: /src/core/cf-agent/verify_files_utils.c:2850,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2852,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2852,1
    - Dst: SelectLeaf
      Src: /src/core/cf-agent/verify_files_utils.c:2855,1
    - Dst: RecordFileEvaluatedInChroot
      Src: /src/core/cf-agent/verify_files_utils.c:2860,1
    - Dst: VerifyFileLeaf
      Src: /src/core/cf-agent/verify_files_utils.c:2863,1
    - Dst: RecordWarning
      Src: /src/core/cf-agent/verify_files_utils.c:2874,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2877,1
    - Dst: PushDirState
      Src: /src/core/cf-agent/verify_files_utils.c:2881,1
    - Dst: DirOpen
      Src: /src/core/cf-agent/verify_files_utils.c:2887,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2889,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2889,1
    - Dst: SeqNew
      Src: /src/core/cf-agent/verify_files_utils.c:2895,1
    - Dst: FileChangesGetDirectoryList
      Src: /src/core/cf-agent/verify_files_utils.c:2896,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2898,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2900,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:2901,1
    - Dst: SeqNew
      Src: /src/core/cf-agent/verify_files_utils.c:2904,1
    - Dst: DirRead
      Src: /src/core/cf-agent/verify_files_utils.c:2908,1
    - Dst: DirRead
      Src: /src/core/cf-agent/verify_files_utils.c:2908,1
    - Dst: ConsiderLocalFile
      Src: /src/core/cf-agent/verify_files_utils.c:2910,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:2915,1
    - Dst: JoinPaths
      Src: /src/core/cf-agent/verify_files_utils.c:2916,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2918,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2921,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:2926,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2928,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2928,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:2932,1
    - Dst: KillGhostLink
      Src: /src/core/cf-agent/verify_files_utils.c:2934,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:2936,1
    - Dst: RecordFileChangedInChroot
      Src: /src/core/cf-agent/verify_files_utils.c:2938,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:2946,1
    - Dst: getuid
      Src: /src/core/cf-agent/verify_files_utils.c:2948,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2950,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:2957,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:2959,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2961,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:2962,1
    - Dst: DeviceBoundary
      Src: /src/core/cf-agent/verify_files_utils.c:2967,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2969,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:2969,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:2973,1
    - Dst: SkipDirLinks
      Src: /src/core/cf-agent/verify_files_utils.c:2975,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:2982,1
    - Dst: DepthSearch
      Src: /src/core/cf-agent/verify_files_utils.c:2983,1
    - Dst: PopDirState
      Src: /src/core/cf-agent/verify_files_utils.c:2984,1
    - Dst: FatalError
      Src: /src/core/cf-agent/verify_files_utils.c:2986,1
    - Dst: SelectLeaf
      Src: /src/core/cf-agent/verify_files_utils.c:2991,1
    - Dst: SeqBinaryLookup
      Src: /src/core/cf-agent/verify_files_utils.c:2995,1
    - Dst: FileChangesLogNewFile
      Src: /src/core/cf-agent/verify_files_utils.c:2999,1
    - Dst: SeqAppend
      Src: /src/core/cf-agent/verify_files_utils.c:3001,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files_utils.c:3001,1
    - Dst: VerifyFileLeaf
      Src: /src/core/cf-agent/verify_files_utils.c:3004,1
    - Dst: RecordFileEvaluatedInChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3009,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3011,1
    - Dst: RecordFileChangedInChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3013,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3018,1
    - Dst: FileChangesCheckAndUpdateDirectory
      Src: /src/core/cf-agent/verify_files_utils.c:3024,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:3029,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:3030,1
    - Dst: DirClose
      Src: /src/core/cf-agent/verify_files_utils.c:3031,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 119
    argCount: 8
    argNames:
    - ctx
    - name
    - sb
    - rlevel
    - attr
    - pp
    - rootdevice
    - result
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - int
    - Attributes*
    - Promise*
    - dev_t
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 2833
        line_start: 2833
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 3033
      start: 2831
    functionDepth: 13
    functionLinenumber: 2831
    functionLinenumberEnd: 3033
    functionName: DepthSearch
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - Log
    - strlcpy
    - SeqAppend
    - PopDirState
    - SeqDestroy
    - SelectLeaf
    - KillGhostLink
    - DirOpen
    - FileChangesLogNewFile
    - RecordFileChangedInChroot
    - ConsiderLocalFile
    - lstat
    - RecordFileEvaluatedInChroot
    - xstrdup
    - safe_chdir
    - S_ISLNK
    - DeviceBoundary
    - FileChangesCheckAndUpdateDirectory
    - assert
    - DirRead
    - SkipDirLinks
    - getuid
    - S_ISDIR
    - SeqNew
    - DepthSearch
    - VerifyFileLeaf
    - FileChangesGetDirectoryList
    - SeqBinaryLookup
    - ChopLastNode
    - GetErrorStr
    - ChrootChanges
    - stat
    - PushDirState
    - RecordFailure
    - FatalError
    - JoinPaths
    - DirClose
    - ToChangesPath
    - PromiseResultUpdate
    - RecordWarning
    linkageType: ''
    returnType: bool
    signature: "bool DepthSearch(EvalContext *ctx, char *name, const struct stat *sb,
      int rlevel, const Attributes *attr,\n                const Promise *pp, dev_t
      rootdevice, PromiseResult *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:3037,1
    - Dst: safe_chdir
      Src: /src/core/cf-agent/verify_files_utils.c:3038,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3040,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:3041,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3042,1
    - Dst: CheckLinkSecurity
      Src: /src/core/cf-agent/verify_files_utils.c:3046,1
    - Dst: FatalError
      Src: /src/core/cf-agent/verify_files_utils.c:3048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - ctx
    - pp
    - attr
    - name
    - sb
    - result
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - char*
    - struct stat*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3051
      start: 3035
    functionDepth: 12
    functionLinenumber: 3035
    functionLinenumberEnd: 3051
    functionName: PushDirState
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - CheckLinkSecurity
    - RecordFailure
    - FatalError
    - safe_chdir
    - ToChangesPath
    - PromiseResultUpdate
    linkageType: ''
    returnType: bool
    signature: bool PushDirState(EvalContext *ctx, const Promise *pp, const Attributes
      *attr, char *name, const struct stat *sb, PromiseResult *result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:3060,1
    - Dst: safe_chdir
      Src: /src/core/cf-agent/verify_files_utils.c:3063,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3065,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:3067,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3068,1
    - Dst: CheckLinkSecurity
      Src: /src/core/cf-agent/verify_files_utils.c:3072,1
    - Dst: safe_chdir
      Src: /src/core/cf-agent/verify_files_utils.c:3079,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3081,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:3083,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3084,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 8
    argNames:
    - ctx
    - pp
    - attr
    - goback
    - name
    - sb
    - r
    - result
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - int
    - char*
    - struct stat*
    - DirectoryRecursion
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3056
    functionDepth: 12
    functionLinenumber: 3056
    functionLinenumberEnd: 3090
    functionName: PopDirState
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - CheckLinkSecurity
    - RecordFailure
    - safe_chdir
    - ToChangesPath
    - PromiseResultUpdate
    linkageType: ''
    returnType: bool
    signature: "bool PopDirState(EvalContext *ctx, const Promise *pp, const Attributes
      *attr,\n                        int goback, char *name, const struct stat *sb,
      DirectoryRecursion r,\n                        PromiseResult *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3099,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:3101,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3103,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:3104,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sb
    - name
    argTypes:
    - struct stat*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3095
    functionDepth: 8
    functionLinenumber: 3095
    functionLinenumberEnd: 3117
    functionName: CheckLinkSecurity
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - stat
    - Log
    linkageType: ''
    returnType: bool
    signature: bool CheckLinkSecurity(const struct stat *sb, const char *name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:3122,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3136,1
    - Dst: VerifyFileAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:3177,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3186,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files_utils.c:3190,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3190,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3194,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3196,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:3201,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_utils.c:3201,1
    - Dst: CopyFileExtendedAttributesDisk
      Src: /src/core/cf-agent/verify_files_utils.c:3204,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3206,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3210,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:3214,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3217,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:3220,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 7
    argNames:
    - ctx
    - src
    - dest
    - sstat
    - dstat
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - struct stat*
    - struct stat*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 3121
        line_start: 3121
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 3223
      start: 3119
    functionDepth: 12
    functionLinenumber: 3119
    functionLinenumberEnd: 3223
    functionName: VerifyCopiedFileAttributes
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 3
    functionsReached:
    - RlistScalarValue
    - ChrootChanges
    - CopyFileExtendedAttributesDisk
    - RecordChange
    - assert
    - RecordFailure
    - VerifyFileAttributes
    - Log
    - xstrdup
    - strcmp
    - ToChangesChroot
    - free
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult VerifyCopiedFileAttributes(EvalContext *ctx, const char
      *src, const char *dest, const struct stat *sstat,\n                                                const
      struct stat *dstat, const Attributes *a, const Promise *pp)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:3227,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/verify_files_utils.c:3228,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_files_utils.c:3230,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_files_utils.c:3231,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_files_utils.c:3231,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_files_utils.c:3237,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3239,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3241,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3245,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:3247,1
    - Dst: cf_stat
      Src: /src/core/cf-agent/verify_files_utils.c:3251,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:3255,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:3259,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3264,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:3267,1
    - Dst: BeginMeasure
      Src: /src/core/cf-agent/verify_files_utils.c:3272,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:3274,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:3276,1
    - Dst: AddSlash
      Src: /src/core/cf-agent/verify_files_utils.c:3278,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_files_utils.c:3279,1
    - Dst: MakeParentDirectoryForPromise
      Src: /src/core/cf-agent/verify_files_utils.c:3284,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:3288,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:3293,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3294,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:3298,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3302,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3305,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3307,1
    - Dst: SourceSearchAndCopy
      Src: /src/core/cf-agent/verify_files_utils.c:3308,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:3312,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:3312,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3316,1
    - Dst: VerifyCopiedFileAttributes
      Src: /src/core/cf-agent/verify_files_utils.c:3317,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3325,1
    - Dst: VerifyCopy
      Src: /src/core/cf-agent/verify_files_utils.c:3326,1
    - Dst: DeleteCompressedArray
      Src: /src/core/cf-agent/verify_files_utils.c:3330,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_files_utils.c:3332,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:3336,1
    - Dst: EndMeasure
      Src: /src/core/cf-agent/verify_files_utils.c:3340,1
    - Dst: EndMeasure
      Src: /src/core/cf-agent/verify_files_utils.c:3344,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files_utils.c:3347,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 5
    argNames:
    - ctx
    - destination
    - attr
    - pp
    - conn
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - AgentConnection*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 3226
        line_start: 3226
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 3349
      start: 3225
    functionDepth: 14
    functionLinenumber: 3225
    functionLinenumberEnd: 3349
    functionName: CopyFileSources
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - SourceSearchAndCopy
    - BufferDestroy
    - VerifyCopiedFileAttributes
    - VerifyCopy
    - Log
    - BufferNew
    - EndMeasure
    - strlcpy
    - DeleteCompressedArray
    - BufferData
    - cf_stat
    - RecordChange
    - snprintf
    - strcat
    - RecordNoChange
    - BeginMeasure
    - PromiseGetBundle
    - ExpandScalar
    - assert
    - S_ISDIR
    - PromiseGetConstraintAsRval
    - ChrootChanges
    - stat
    - MakeParentDirectoryForPromise
    - RecordFailure
    - ToChangesChroot
    - AddSlash
    - ToChangesPath
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult CopyFileSources(EvalContext *ctx, char *destination,
      const Attributes *attr, const Promise *pp, AgentConnection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-agent/verify_files_utils.c:3362,1
    - Dst: ProtocolVersionParse
      Src: /src/core/cf-agent/verify_files_utils.c:3364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - copyfrom_setting
    argTypes:
    - EvalContext*
    - ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3371
      start: 3354
    functionDepth: 2
    functionLinenumber: 3354
    functionLinenumberEnd: 3371
    functionName: DecideProtocol
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - ProtocolVersionParse
    - EvalContextVariableControlCommonGet
    linkageType: ''
    returnType: ProtocolVersion
    signature: "ProtocolVersion DecideProtocol(const EvalContext *ctx,\n                                      ProtocolVersion
      copyfrom_setting)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DecideProtocol
      Src: /src/core/cf-agent/verify_files_utils.c:3378,1
    - Dst: ConnCache_FindIdleMarkBusy
      Src: /src/core/cf-agent/verify_files_utils.c:3396,1
    - Dst: ServerConnection
      Src: /src/core/cf-agent/verify_files_utils.c:3405,1
    - Dst: EvalContextGetRestrictKeys
      Src: /src/core/cf-agent/verify_files_utils.c:3405,1
    - Dst: NewAgentConn
      Src: /src/core/cf-agent/verify_files_utils.c:3414,1
    - Dst: ConnCache_Add
      Src: /src/core/cf-agent/verify_files_utils.c:3417,1
    - Dst: ConnCache_Add
      Src: /src/core/cf-agent/verify_files_utils.c:3424,1
    - Dst: ServerConnection
      Src: /src/core/cf-agent/verify_files_utils.c:3432,1
    - Dst: EvalContextGetRestrictKeys
      Src: /src/core/cf-agent/verify_files_utils.c:3432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - servername
    - fc
    - background
    argTypes:
    - EvalContext*
    - char*
    - FileCopy*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3436
      start: 3373
    functionDepth: 15
    functionLinenumber: 3373
    functionLinenumberEnd: 3436
    functionName: FileCopyConnectionOpen
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - EvalContextGetRestrictKeys
    - ConnCache_FindIdleMarkBusy
    - ConnCache_Add
    - DecideProtocol
    - NewAgentConn
    - ServerConnection
    linkageType: ''
    returnType: AgentConnection
    signature: "AgentConnection *FileCopyConnectionOpen(const EvalContext *ctx,\n
      \                                              const char *servername,\n                                               const
      FileCopy *fc, bool background)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConnCache_MarkNotBusy
      Src: /src/core/cf-agent/verify_files_utils.c:3443,1
    - Dst: DisconnectServer
      Src: /src/core/cf-agent/verify_files_utils.c:3447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3449
      start: 3438
    functionDepth: 10
    functionLinenumber: 3438
    functionLinenumberEnd: 3449
    functionName: FileCopyConnectionClose
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - DisconnectServer
    - ConnCache_MarkNotBusy
    linkageType: ''
    returnType: void
    signature: void FileCopyConnectionClose(AgentConnection *conn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:3453,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3459,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3463,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_utils.c:3474,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:3476,1
    - Dst: FileCopyConnectionOpen
      Src: /src/core/cf-agent/verify_files_utils.c:3482,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3486,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3495,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files_utils.c:3496,1
    - Dst: CopyFileSources
      Src: /src/core/cf-agent/verify_files_utils.c:3501,1
    - Dst: FileCopyConnectionClose
      Src: /src/core/cf-agent/verify_files_utils.c:3505,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - ctx
    - destination
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 3452
        line_start: 3452
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 3509
      start: 3451
    functionDepth: 16
    functionLinenumber: 3451
    functionLinenumberEnd: 3509
    functionName: ScheduleCopyOperation
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - FileCopyConnectionClose
    - assert
    - CopyFileSources
    - PromiseRef
    - RecordFailure
    - Log
    - strcmp
    - FileCopyConnectionOpen
    - RlistScalarValue
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult ScheduleCopyOperation(EvalContext *ctx, char *destination,
      const Attributes *attr, const Promise *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:3513,1
    - Dst: ReadLastNode
      Src: /src/core/cf-agent/verify_files_utils.c:3516,1
    - Dst: MatchRlistItem
      Src: /src/core/cf-agent/verify_files_utils.c:3519,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3521,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3523,1
    - Dst: VerifyCopy
      Src: /src/core/cf-agent/verify_files_utils.c:3523,1
    - Dst: DeleteCompressedArray
      Src: /src/core/cf-agent/verify_files_utils.c:3524,1
    - Dst: VerifyLink
      Src: /src/core/cf-agent/verify_files_utils.c:3531,1
    - Dst: VerifyHardLink
      Src: /src/core/cf-agent/verify_files_utils.c:3534,1
    - Dst: VerifyRelativeLink
      Src: /src/core/cf-agent/verify_files_utils.c:3537,1
    - Dst: VerifyAbsoluteLink
      Src: /src/core/cf-agent/verify_files_utils.c:3540,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:3543,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3544,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - ctx
    - destination
    - source
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 3512
        line_start: 3512
        source_file: /src/core/cf-agent/verify_files_utils.c
    - condition: (false)
      pos:
        line_end: 3542
        line_start: 3542
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 3549
      start: 3511
    functionDepth: 14
    functionLinenumber: 3511
    functionLinenumberEnd: 3549
    functionName: ScheduleLinkOperation
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - DeleteCompressedArray
    - assert
    - VerifyRelativeLink
    - VerifyCopy
    - VerifyHardLink
    - Log
    - VerifyAbsoluteLink
    - MatchRlistItem
    - ReadLastNode
    - PromiseResultUpdate
    - VerifyLink
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult ScheduleLinkOperation(EvalContext *ctx, char *destination,
      char *source, const Attributes *attr, const Promise *pp)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:3554,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3563,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3565,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:3569,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:3571,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:3573,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:3575,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3576,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3580,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3581,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:3584,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3586,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3589,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:3594,1
    - Dst: CfCreateFile
      Src: /src/core/cf-agent/verify_files_utils.c:3596,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3598,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3601,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3605,1
    - Dst: PrepareChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3609,1
    - Dst: DirOpen
      Src: /src/core/cf-agent/verify_files_utils.c:3612,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:3612,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3614,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:3616,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3617,1
    - Dst: DirRead
      Src: /src/core/cf-agent/verify_files_utils.c:3621,1
    - Dst: DirRead
      Src: /src/core/cf-agent/verify_files_utils.c:3621,1
    - Dst: ConsiderLocalFile
      Src: /src/core/cf-agent/verify_files_utils.c:3623,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3625,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:3631,1
    - Dst: JoinPaths
      Src: /src/core/cf-agent/verify_files_utils.c:3632,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:3634,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3638,1
    - Dst: DirClose
      Src: /src/core/cf-agent/verify_files_utils.c:3639,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files_utils.c:3643,1
    - Dst: JoinPaths
      Src: /src/core/cf-agent/verify_files_utils.c:3644,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/verify_files_utils.c:3646,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3650,1
    - Dst: DirClose
      Src: /src/core/cf-agent/verify_files_utils.c:3651,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:3655,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:3655,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:3655,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:3655,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3663,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:3668,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files_utils.c:3668,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:3668,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3670,1
    - Dst: ScheduleLinkChildrenOperation
      Src: /src/core/cf-agent/verify_files_utils.c:3671,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3676,1
    - Dst: ScheduleLinkOperation
      Src: /src/core/cf-agent/verify_files_utils.c:3676,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3679,1
    - Dst: RecordFileChangedInChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3681,1
    - Dst: DirClose
      Src: /src/core/cf-agent/verify_files_utils.c:3685,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 6
    argNames:
    - ctx
    - destination
    - source
    - recurse
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - int
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 3553
        line_start: 3553
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 3687
      start: 3551
    functionDepth: 15
    functionLinenumber: 3551
    functionLinenumberEnd: 3687
    functionName: ScheduleLinkChildrenOperation
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - CfCreateFile
    - Log
    - strlcpy
    - ScheduleLinkChildrenOperation
    - RecordInterruption
    - unlink
    - RecordChange
    - snprintf
    - DirOpen
    - RecordFileChangedInChroot
    - ConsiderLocalFile
    - lstat
    - PrepareChangesChroot
    - S_ISLNK
    - assert
    - DirRead
    - S_ISDIR
    - ScheduleLinkOperation
    - GetErrorStr
    - ChrootChanges
    - RecordFailure
    - JoinPaths
    - DirClose
    - ToChangesChroot
    - ToChangesPath
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult ScheduleLinkChildrenOperation(EvalContext *ctx, char
      *destination, char *source, int recurse, const Attributes *a,\n                                            const
      Promise *pp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:3691,1
    - Dst: memset
      Src: /src/core/cf-agent/verify_files_utils.c:3700,1
    - Dst: memset
      Src: /src/core/cf-agent/verify_files_utils.c:3701,1
    - Dst: HashFile
      Src: /src/core/cf-agent/verify_files_utils.c:3707,1
    - Dst: HashFile
      Src: /src/core/cf-agent/verify_files_utils.c:3708,1
    - Dst: FileChangesCheckAndUpdateHash
      Src: /src/core/cf-agent/verify_files_utils.c:3711,1
    - Dst: FileChangesCheckAndUpdateHash
      Src: /src/core/cf-agent/verify_files_utils.c:3713,1
    - Dst: HashFile
      Src: /src/core/cf-agent/verify_files_utils.c:3717,1
    - Dst: FileChangesCheckAndUpdateHash
      Src: /src/core/cf-agent/verify_files_utils.c:3720,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3723,1
    - Dst: EvalContextHeapPersistentSave
      Src: /src/core/cf-agent/verify_files_utils.c:3725,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/cf-agent/verify_files_utils.c:3726,1
    - Dst: FileChangesLogChange
      Src: /src/core/cf-agent/verify_files_utils.c:3727,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:3729,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3730,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:3734,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3735,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3739,1
    - Dst: GetRepositoryPath
      Src: /src/core/cf-agent/verify_files_utils.c:3742,1
    - Dst: LogFileChange
      Src: /src/core/cf-agent/verify_files_utils.c:3746,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - file
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 3690
        line_start: 3690
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 3750
      start: 3689
    functionDepth: 12
    functionLinenumber: 3689
    functionLinenumberEnd: 3750
    functionName: VerifyFileIntegrity
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - RecordChange
    - MakingInternalChanges
    - assert
    - EvalContextClassPutSoft
    - GetRepositoryPath
    - RecordFailure
    - FileChangesCheckAndUpdateHash
    - LogFileChange
    - FileChangesLogChange
    - EvalContextHeapPersistentSave
    - HashFile
    - PromiseResultUpdate
    - memset
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyFileIntegrity(EvalContext *ctx, const char *file,
      const Attributes *attr, const Promise *pp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3759,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files_utils.c:3763,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3763,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files_utils.c:3765,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3771,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:3773,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/verify_files_utils.c:3781,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/verify_files_utils.c:3781,1
    - Dst: CompareFileHashes
      Src: /src/core/cf-agent/verify_files_utils.c:3783,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3787,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3793,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:3795,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/verify_files_utils.c:3802,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/verify_files_utils.c:3802,1
    - Dst: CompareBinaryFiles
      Src: /src/core/cf-agent/verify_files_utils.c:3804,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3808,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3814,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:3816,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3827,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:3828,1
    - Dst: CompareBinaryFiles
      Src: /src/core/cf-agent/verify_files_utils.c:3836,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3840,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:3841,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3851,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:3852,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files_utils.c:3858,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 6
    argNames:
    - sourcefile
    - destfile
    - ssb
    - dsb
    - fc
    - conn
    argTypes:
    - char*
    - char*
    - struct stat*
    - struct stat*
    - FileCopy*
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3860
      start: 3752
    functionDepth: 8
    functionLinenumber: 3752
    functionLinenumberEnd: 3860
    functionName: CompareForFileCopy
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - ChrootChanges
    - CompareBinaryFiles
    - CompareFileHashes
    - S_ISREG
    - lstat
    - xstrdup
    - Log
    - ToChangesChroot
    - free
    linkageType: ''
    returnType: bool
    signature: bool CompareForFileCopy(char *sourcefile, char *destfile, const struct
      stat *ssb, const struct stat *dsb, const FileCopy *fc, AgentConnection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:3866,1
    - Dst: CanonifyName
      Src: /src/core/cf-agent/verify_files_utils.c:3866,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/cf-agent/verify_files_utils.c:3867,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - destfile
    argTypes:
    - EvalContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3869
      start: 3862
    functionDepth: 8
    functionLinenumber: 3862
    functionLinenumberEnd: 3869
    functionName: FileAutoDefine
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - CanonifyName
    - Log
    - snprintf
    - EvalContextClassPutSoft
    linkageType: ''
    returnType: void
    signature: void FileAutoDefine(EvalContext *ctx, char *destfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:3874,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:3877,1
    - Dst: GetLogDir
      Src: /src/core/cf-agent/verify_files_utils.c:3877,1
    - Dst: ToLowerStrInplace
      Src: /src/core/cf-agent/verify_files_utils.c:3878,1
    - Dst: MapName
      Src: /src/core/cf-agent/verify_files_utils.c:3879,1
    - Dst: RawLoadItemList
      Src: /src/core/cf-agent/verify_files_utils.c:3881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!VSETXIDLIST)
      pos:
        line_end: 3873
        line_start: 3873
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 3882
      start: 3872
    functionDepth: 9
    functionLinenumber: 3872
    functionLinenumberEnd: 3882
    functionName: LoadSetxid
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - snprintf
    - ToLowerStrInplace
    - MapName
    - assert
    - GetLogDir
    - RawLoadItemList
    linkageType: ''
    returnType: void
    signature: void LoadSetxid(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:3894,1
    - Dst: GetLogDir
      Src: /src/core/cf-agent/verify_files_utils.c:3894,1
    - Dst: ToLowerStrInplace
      Src: /src/core/cf-agent/verify_files_utils.c:3895,1
    - Dst: MapName
      Src: /src/core/cf-agent/verify_files_utils.c:3896,1
    - Dst: PurgeItemList
      Src: /src/core/cf-agent/verify_files_utils.c:3898,1
    - Dst: RawLoadItemList
      Src: /src/core/cf-agent/verify_files_utils.c:3900,1
    - Dst: ListsCompare
      Src: /src/core/cf-agent/verify_files_utils.c:3901,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:3903,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3904,1
    - Dst: RawSaveItemList
      Src: /src/core/cf-agent/verify_files_utils.c:3908,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:3909,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3910,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/verify_files_utils.c:3912,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/verify_files_utils.c:3915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - modified
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3884
    functionDepth: 9
    functionLinenumber: 3884
    functionLinenumberEnd: 3917
    functionName: SaveSetxid
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - snprintf
    - ToLowerStrInplace
    - MapName
    - RawSaveItemList
    - GetLogDir
    - PurgeItemList
    - ListsCompare
    - Log
    - DeleteItemList
    - RawLoadItemList
    - umask
    linkageType: ''
    returnType: void
    signature: void SaveSetxid(bool modified)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LoadSetxid
      Src: /src/core/cf-agent/verify_files_utils.c:3923,1
    - Dst: IsItemIn
      Src: /src/core/cf-agent/verify_files_utils.c:3926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3919
    functionDepth: 10
    functionLinenumber: 3919
    functionLinenumberEnd: 3927
    functionName: IsInSetxidList
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - IsItemIn
    - LoadSetxid
    linkageType: ''
    returnType: bool
    signature: bool IsInSetxidList(const char *file)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:3932,1
    - Dst: IsPrivileged
      Src: /src/core/cf-agent/verify_files_utils.c:3938,1
    - Dst: IsInSetxidList
      Src: /src/core/cf-agent/verify_files_utils.c:3947,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3951,1
    - Dst: PrependItem
      Src: /src/core/cf-agent/verify_files_utils.c:3954,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3958,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:3960,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3961,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files_utils.c:3969,1
    - Dst: IsInSetxidList
      Src: /src/core/cf-agent/verify_files_utils.c:3973,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:3977,1
    - Dst: PrependItem
      Src: /src/core/cf-agent/verify_files_utils.c:3980,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:3984,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:3986,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:3987,1
    - Dst: SaveSetxid
      Src: /src/core/cf-agent/verify_files_utils.c:3991,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 6
    argNames:
    - ctx
    - file
    - dstat
    - newperm
    - pp
    - attr
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - mode_t
    - Promise*
    - Attributes*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 3931
        line_start: 3931
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 3994
      start: 3929
    functionDepth: 12
    functionLinenumber: 3929
    functionLinenumberEnd: 3994
    functionName: VerifySetUidGid
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - IsPrivileged
    - RecordChange
    - assert
    - S_ISDIR
    - Log
    - PrependItem
    - SaveSetxid
    - IsInSetxidList
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult VerifySetUidGid(EvalContext *ctx, const char *file,
      const struct stat *dstat, mode_t newperm,\n                                     const
      Promise *pp, const Attributes *attr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:4001,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4033,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:4035,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4043,1
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_files_utils.c:4045,1
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_files_utils.c:4045,1
    - Dst: memset
      Src: /src/core/cf-agent/verify_files_utils.c:4058,1
    - Dst: getattrlist
      Src: /src/core/cf-agent/verify_files_utils.c:4060,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4066,1
    - Dst: setattrlist
      Src: /src/core/cf-agent/verify_files_utils.c:4070,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4072,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4076,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4077,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:4081,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4083,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:4095,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4096,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 5
    argNames:
    - ctx
    - file
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 4000
        line_start: 4000
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 4099
      start: 3999
    functionDepth: 12
    functionLinenumber: 3999
    functionLinenumberEnd: 4099
    functionName: VerifyFinderType
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - ChrootChanges
    - strncmp
    - RecordChange
    - assert
    - RecordFailure
    - setattrlist
    - Log
    - RecordNoChange
    - ToChangesChroot
    - getattrlist
    - PromiseResultUpdate
    - MakingChanges
    - memset
    linkageType: ''
    returnType: int
    signature: int VerifyFinderType(EvalContext *ctx, const char *file, const Attributes
      *a, const Promise *pp, PromiseResult *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:4108,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4110,1
    - Dst: safe_creat
      Src: /src/core/cf-agent/verify_files_utils.c:4114,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4116,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:4116,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:4120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4123
      start: 4103
    functionDepth: 10
    functionLinenumber: 4103
    functionLinenumberEnd: 4123
    functionName: TruncateFile
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - safe_creat
    - Log
    - close
    linkageType: ''
    returnType: void
    signature: void TruncateFile(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FixCompressedArrayValue
      Src: /src/core/cf-agent/verify_files_utils.c:4129,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4132,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4135,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_files_utils.c:4136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - i
    - value
    - ctx
    - pp
    - attr
    - result
    - inode_cache
    argTypes:
    - int
    - char*
    - EvalContext*
    - Promise*
    - Attributes*
    - PromiseResult*
    - CompressedArray**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4139
      start: 4125
    functionDepth: 12
    functionLinenumber: 4125
    functionLinenumberEnd: 4139
    functionName: RegisterAHardLink
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - unlink
    - RecordChange
    - MakingChanges
    - FixCompressedArrayValue
    linkageType: ''
    returnType: void
    signature: "void RegisterAHardLink(int i, const char *value, EvalContext *ctx,
      const Promise *pp,\n                              const Attributes *attr, PromiseResult
      *result,\n                              CompressedArray **inode_cache)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/cf-agent/verify_files_utils.c:4150,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:4154,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:4155,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_utils.c:4155,1
    - Dst: cf_remote_stat
      Src: /src/core/cf-agent/verify_files_utils.c:4157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - file
    - buf
    - fc
    - conn
    argTypes:
    - char*
    - struct stat*
    - FileCopy*
    - AgentConnection*
    assertStmts:
    - condition: "(fc->servers != NULL &&\n               strcmp(RlistScalarValue(fc->servers),
        \"localhost\") != 0)"
      pos:
        line_end: 4154
        line_start: 4153
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 4159
      start: 4141
    functionDepth: 9
    functionLinenumber: 4141
    functionLinenumberEnd: 4159
    functionName: cf_stat
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 3
    functionsReached:
    - stat
    - cf_remote_stat
    - assert
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: int
    signature: int cf_stat(const char *file, struct stat *buf, const FileCopy *fc,
      AgentConnection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:4167,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:4168,1
    - Dst: memset
      Src: /src/core/cf-agent/verify_files_utils.c:4169,1
    - Dst: readlink
      Src: /src/core/cf-agent/verify_files_utils.c:4173,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:4175,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:4176,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_utils.c:4176,1
    - Dst: StatCacheLookup
      Src: /src/core/cf-agent/verify_files_utils.c:4178,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_utils.c:4179,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_files_utils.c:4185,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_files_utils.c:4187,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4188,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4189,1
    - Dst: memset
      Src: /src/core/cf-agent/verify_files_utils.c:4194,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_files_utils.c:4195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 8
    argNames:
    - ctx
    - sourcefile
    - linkbuf
    - buffsize
    - attr
    - pp
    - conn
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - size_t
    - Attributes*
    - Promise*
    - AgentConnection*
    - PromiseResult*
    assertStmts:
    - condition: (buffsize > 0)
      pos:
        line_end: 4166
        line_start: 4166
        source_file: /src/core/cf-agent/verify_files_utils.c
    - condition: (attr != NULL)
      pos:
        line_end: 4167
        line_start: 4167
        source_file: /src/core/cf-agent/verify_files_utils.c
    - condition: "(attr->copy.servers &&\n           strcmp(RlistScalarValue(attr->copy.servers),
        \"localhost\"))"
      pos:
        line_end: 4175
        line_start: 4174
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 4202
      start: 4163
    functionDepth: 13
    functionLinenumber: 4163
    functionLinenumberEnd: 4202
    functionName: cf_readlink
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - readlink
    - strlen
    - StatCacheLookup
    - assert
    - cfPS
    - Log
    - strcmp
    - RlistScalarValue
    - strcpy
    - PromiseResultUpdate
    - memset
    linkageType: ''
    returnType: int
    signature: "int cf_readlink(EvalContext *ctx, const char *sourcefile, char *linkbuf,
      size_t buffsize,\n                       const Attributes *attr, const Promise
      *pp, AgentConnection *conn, PromiseResult *result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MatchRlistItem
      Src: /src/core/cf-agent/verify_files_utils.c:4210,1
    - Dst: MatchRlistItem
      Src: /src/core/cf-agent/verify_files_utils.c:4210,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4212,1
    - Dst: MatchRlistItem
      Src: /src/core/cf-agent/verify_files_utils.c:4219,1
    - Dst: MatchRlistItem
      Src: /src/core/cf-agent/verify_files_utils.c:4219,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - path
    - lastnode
    - r
    argTypes:
    - EvalContext*
    - char*
    - char*
    - DirectoryRecursion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4227
      start: 4206
    functionDepth: 8
    functionLinenumber: 4206
    functionLinenumberEnd: 4227
    functionName: SkipDirLinks
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 2
    functionsReached:
    - MatchRlistItem
    - Log
    linkageType: ''
    returnType: bool
    signature: bool SkipDirLinks(EvalContext *ctx, const char *path, const char *lastnode,
      DirectoryRecursion r)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:4233,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:4252,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:4271,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4274,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:4278,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files_utils.c:4290,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:4309,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4312,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:4316,1
    - Dst: GetUserName
      Src: /src/core/cf-agent/verify_files_utils.c:4326,1
    - Dst: RecordWarning
      Src: /src/core/cf-agent/verify_files_utils.c:4328,1
    - Dst: GetGroupName
      Src: /src/core/cf-agent/verify_files_utils.c:4333,1
    - Dst: RecordWarning
      Src: /src/core/cf-agent/verify_files_utils.c:4335,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4341,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4347,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4352,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4358,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4364,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4371,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:4373,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files_utils.c:4376,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4379,1
    - Dst: safe_lchown
      Src: /src/core/cf-agent/verify_files_utils.c:4380,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:4382,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:4383,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4389,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4391,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4396,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4398,1
    - Dst: safe_chown
      Src: /src/core/cf-agent/verify_files_utils.c:4405,1
    - Dst: RecordDenial
      Src: /src/core/cf-agent/verify_files_utils.c:4407,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:4408,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4409,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4415,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4417,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4422,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4424,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 109
    argCount: 6
    argNames:
    - ctx
    - file
    - pp
    - attr
    - sb
    - result
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    - Attributes*
    - struct stat*
    - PromiseResult*
    assertStmts:
    - condition: (uid != CF_UNKNOWN_OWNER)
      pos:
        line_end: 4277
        line_start: 4277
        source_file: /src/core/cf-agent/verify_files_utils.c
    - condition: (sb != NULL)
      pos:
        line_end: 4232
        line_start: 4232
        source_file: /src/core/cf-agent/verify_files_utils.c
    - condition: (gid != CF_UNKNOWN_GROUP)
      pos:
        line_end: 4315
        line_start: 4315
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 4429
      start: 4231
    functionDepth: 13
    functionLinenumber: 4231
    functionLinenumberEnd: 4429
    functionName: VerifyOwner
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ChrootChanges
    - RecordChange
    - GetGroupName
    - S_ISLNK
    - RecordDenial
    - assert
    - MakingChanges
    - RecordFailure
    - safe_chown
    - Log
    - safe_lchown
    - RecordNoChange
    - ToChangesChroot
    - PromiseResultUpdate
    - RecordWarning
    - GetUserName
    linkageType: ''
    returnType: bool
    signature: bool VerifyOwner(EvalContext *ctx, const char *file, const Promise
      *pp, const Attributes *attr, const struct stat *sb, PromiseResult *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FileChangesCheckAndUpdateStats
      Src: /src/core/cf-agent/verify_files_utils.c:4441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - file
    - sb
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4442
      start: 4433
    functionDepth: 1
    functionLinenumber: 4433
    functionLinenumberEnd: 4442
    functionName: VerifyFileChanges
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 0
    functionsReached:
    - FileChangesCheckAndUpdateStats
    linkageType: ''
    returnType: void
    signature: "void VerifyFileChanges(EvalContext *ctx, const char *file, const struct
      stat *sb,\n                              const Attributes *attr, const Promise
      *pp, PromiseResult *result)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_utils.c:4446,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-agent/verify_files_utils.c:4447,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:4449,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:4451,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4452,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4457,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files_utils.c:4459,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_utils.c:4463,1
    - Dst: ReadLastNode
      Src: /src/core/cf-agent/verify_files_utils.c:4463,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4466,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4468,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_files_utils.c:4471,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4473,1
    - Dst: MakeParentDirectoryForPromise
      Src: /src/core/cf-agent/verify_files_utils.c:4483,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4491,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4494,1
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_files_utils.c:4502,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_files_utils.c:4506,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4508,1
    - Dst: MakeParentDirectoryForPromise
      Src: /src/core/cf-agent/verify_files_utils.c:4516,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4524,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4525,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4528,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:4531,1
    - Dst: mkfifo
      Src: /src/core/cf-agent/verify_files_utils.c:4533,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:4535,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:4535,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:4536,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:4538,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4541,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4542,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:4544,1
    - Dst: RecordWarning
      Src: /src/core/cf-agent/verify_files_utils.c:4552,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4553,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_files_utils.c:4560,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4562,1
    - Dst: MakeParentDirectoryForPromise
      Src: /src/core/cf-agent/verify_files_utils.c:4570,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4578,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4579,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files_utils.c:4582,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:4585,1
    - Dst: safe_open_create_perms
      Src: /src/core/cf-agent/verify_files_utils.c:4587,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:4593,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:4596,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files_utils.c:4600,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files_utils.c:4600,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files_utils.c:4602,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4604,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:4605,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files_utils.c:4610,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files_utils.c:4611,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_utils.c:4612,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_files_utils.c:4613,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 95
    argCount: 5
    argNames:
    - ctx
    - file
    - pp
    - attr
    - result
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    - Attributes*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 4445
        line_start: 4445
        source_file: /src/core/cf-agent/verify_files_utils.c
    constantsTouched: []
    func_position:
      end: 4624
      start: 4444
    functionDepth: 12
    functionLinenumber: 4444
    functionLinenumberEnd: 4624
    functionName: CfCreateFile
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 1
    functionsReached:
    - strncmp
    - IsAbsoluteFileName
    - Log
    - close
    - RecordChange
    - snprintf
    - mkfifo
    - strcmp
    - ReadLastNode
    - assert
    - MakingChanges
    - safe_open_create_perms
    - PromiseGetConstraintAsRval
    - umask
    - GetErrorStr
    - ChrootChanges
    - MakeParentDirectoryForPromise
    - RecordFailure
    - ToChangesChroot
    - PromiseResultUpdate
    - RecordWarning
    linkageType: ''
    returnType: bool
    signature: bool CfCreateFile(EvalContext *ctx, char *file, const Promise *pp,
      const Attributes *attr, PromiseResult *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_utils.c:4634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sb
    - rootdevice
    argTypes:
    - struct stat*
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4637
      start: 4626
    functionDepth: 8
    functionLinenumber: 4626
    functionLinenumberEnd: 4637
    functionName: DeviceBoundary
    functionSourceFile: /src/core/cf-agent/verify_files_utils.c
    functionUses: 2
    functionsReached:
    - Log
    linkageType: ''
    returnType: bool
    signature: bool DeviceBoundary(const struct stat *sb, dev_t rootdevice)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/acl_posix.c:71,1
    - Dst: CheckPosixLinuxAccessACEs
      Src: /src/core/cf-agent/acl_posix.c:74,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/acl_posix.c:76,1
    - Dst: IsDir
      Src: /src/core/cf-agent/acl_posix.c:80,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/acl_posix.c:80,1
    - Dst: CheckPosixLinuxDefaultACEs
      Src: /src/core/cf-agent/acl_posix.c:82,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/acl_posix.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - file_path
    - acl
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Acl
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/core/cf-agent/acl_posix.c
    constantsTouched: []
    func_position:
      end: 90
      start: 69
    functionDepth: 9
    functionLinenumber: 69
    functionLinenumberEnd: 90
    functionName: CheckPosixLinuxACL
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 0
    functionsReached:
    - assert
    - CheckPosixLinuxDefaultACEs
    - IsDir
    - PromiseRef
    - CheckPosixLinuxAccessACEs
    - ToChangesPath
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult CheckPosixLinuxACL(EvalContext *ctx, const char *file_path,
      Acl acl, const Attributes *a, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/acl_posix.c:95,1
    - Dst: CheckPosixLinuxACEs
      Src: /src/core/cf-agent/acl_posix.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ctx
    - aces
    - method
    - file_path
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Rlist*
    - AclMethod
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/core/cf-agent/acl_posix.c
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: CheckPosixLinuxAccessACEs
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 1
    functionsReached:
    - assert
    - CheckPosixLinuxACEs
    linkageType: ''
    returnType: bool
    signature: "bool CheckPosixLinuxAccessACEs(EvalContext *ctx, Rlist *aces, AclMethod
      method, const char *file_path,\n                                      const
      Attributes *a, const Promise *pp, PromiseResult *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/acl_posix.c:102,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/acl_posix.c:109,1
    - Dst: CheckPosixLinuxACEs
      Src: /src/core/cf-agent/acl_posix.c:116,1
    - Dst: CheckDefaultEqualsAccessACL
      Src: /src/core/cf-agent/acl_posix.c:121,1
    - Dst: CheckDefaultClearACL
      Src: /src/core/cf-agent/acl_posix.c:126,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:130,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-agent/acl_posix.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 8
    argNames:
    - ctx
    - aces
    - method
    - acl_default
    - file_path
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Rlist*
    - AclMethod
    - AclDefault
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/core/cf-agent/acl_posix.c
    constantsTouched: []
    func_position:
      end: 137
      start: 99
    functionDepth: 12
    functionLinenumber: 99
    functionLinenumberEnd: 137
    functionName: CheckPosixLinuxDefaultACEs
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 1
    functionsReached:
    - CheckPosixLinuxACEs
    - assert
    - CheckDefaultClearACL
    - Log
    - RecordNoChange
    - debug_abort_if_reached
    - CheckDefaultEqualsAccessACL
    linkageType: ''
    returnType: bool
    signature: "bool CheckPosixLinuxDefaultACEs(EvalContext *ctx, Rlist *aces, AclMethod
      method, AclDefault acl_default,\n                                       const
      char *file_path, const Attributes *a, const Promise *pp, PromiseResult *result)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/acl_posix.c:147,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/acl_posix.c:169,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/acl_posix.c:171,1
    - Dst: acl_get_file
      Src: /src/core/cf-agent/acl_posix.c:176,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:178,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:180,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:181,1
    - Dst: acl_init
      Src: /src/core/cf-agent/acl_posix.c:187,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:189,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:191,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:192,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:193,1
    - Dst: acl_create_entry
      Src: /src/core/cf-agent/acl_posix.c:197,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:199,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:200,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:201,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:202,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:203,1
    - Dst: acl_dup
      Src: /src/core/cf-agent/acl_posix.c:212,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:214,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:215,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:216,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:217,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:218,1
    - Dst: acl_init
      Src: /src/core/cf-agent/acl_posix.c:224,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:226,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:227,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:228,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:229,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:230,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/acl_posix.c:237,1
    - Dst: ParseEntityPosixLinux
      Src: /src/core/cf-agent/acl_posix.c:239,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:241,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:242,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:243,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:244,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:245,1
    - Dst: FindACE
      Src: /src/core/cf-agent/acl_posix.c:251,1
    - Dst: acl_create_entry
      Src: /src/core/cf-agent/acl_posix.c:257,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:259,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:260,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:261,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:262,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:263,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:264,1
    - Dst: acl_copy_entry
      Src: /src/core/cf-agent/acl_posix.c:270,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:272,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:274,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:275,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:276,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:277,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:278,1
    - Dst: acl_get_permset
      Src: /src/core/cf-agent/acl_posix.c:284,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:286,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:288,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:289,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:290,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:291,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:292,1
    - Dst: acl_clear_perms
      Src: /src/core/cf-agent/acl_posix.c:296,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:298,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:300,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:301,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:302,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:303,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:304,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:313,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:314,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:315,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:316,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:317,1
    - Dst: acl_get_permset
      Src: /src/core/cf-agent/acl_posix.c:323,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:325,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:327,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:328,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:329,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:330,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:331,1
    - Dst: ParseModePosixLinux
      Src: /src/core/cf-agent/acl_posix.c:335,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:337,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:338,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:339,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:340,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:341,1
    - Dst: acl_calc_mask
      Src: /src/core/cf-agent/acl_posix.c:352,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:354,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:355,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:356,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:357,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:358,1
    - Dst: ACLEquals
      Src: /src/core/cf-agent/acl_posix.c:363,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:365,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:366,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:367,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:368,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:369,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/acl_posix.c:375,1
    - Dst: acl_to_any_text
      Src: /src/core/cf-agent/acl_posix.c:378,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:379,1
    - Dst: acl_check
      Src: /src/core/cf-agent/acl_posix.c:381,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:383,1
    - Dst: acl_error
      Src: /src/core/cf-agent/acl_posix.c:386,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:387,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:388,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:389,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:390,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:391,1
    - Dst: EvalContextOverrideImmutableGet
      Src: /src/core/cf-agent/acl_posix.c:396,1
    - Dst: TemporarilyClearImmutableBit
      Src: /src/core/cf-agent/acl_posix.c:397,1
    - Dst: acl_set_file
      Src: /src/core/cf-agent/acl_posix.c:399,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:401,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:406,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:407,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:408,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:409,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:410,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:411,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:414,1
    - Dst: ResetTemporarilyClearedImmutableBit
      Src: /src/core/cf-agent/acl_posix.c:416,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/acl_posix.c:418,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:419,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/acl_posix.c:424,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:427,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:428,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:429,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 168
    argCount: 8
    argNames:
    - ctx
    - aces
    - method
    - file_path
    - acl_type
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Rlist*
    - AclMethod
    - char*
    - acl_type_t
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/core/cf-agent/acl_posix.c
    constantsTouched: []
    func_position:
      end: 431
      start: 144
    functionDepth: 12
    functionLinenumber: 144
    functionLinenumberEnd: 431
    functionName: CheckPosixLinuxACEs
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 2
    functionsReached:
    - acl_error
    - EvalContextOverrideImmutableGet
    - acl_free
    - acl_set_file
    - acl_dup
    - Log
    - RlistScalarValue
    - acl_get_file
    - acl_copy_entry
    - ACLEquals
    - RecordChange
    - acl_calc_mask
    - acl_create_entry
    - RecordNoChange
    - acl_clear_perms
    - ParseModePosixLinux
    - ParseEntityPosixLinux
    - assert
    - acl_to_any_text
    - acl_get_permset
    - acl_init
    - GetErrorStr
    - ChrootChanges
    - RecordFailure
    - ResetTemporarilyClearedImmutableBit
    - TemporarilyClearImmutableBit
    - ToChangesChroot
    - FindACE
    - acl_check
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool CheckPosixLinuxACEs(EvalContext *ctx, Rlist *aces, AclMethod
      method, const char *file_path, acl_type_t acl_type,\n                                const
      Attributes *a, const Promise *pp, PromiseResult *result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/acl_posix.c:441,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/acl_posix.c:448,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/acl_posix.c:450,1
    - Dst: acl_get_file
      Src: /src/core/cf-agent/acl_posix.c:456,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:458,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:459,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:460,1
    - Dst: acl_get_file
      Src: /src/core/cf-agent/acl_posix.c:464,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:468,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:469,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:470,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:471,1
    - Dst: ACLEquals
      Src: /src/core/cf-agent/acl_posix.c:475,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/acl_posix.c:480,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/acl_posix.c:486,1
    - Dst: acl_set_file
      Src: /src/core/cf-agent/acl_posix.c:488,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:490,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:492,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:493,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:494,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:495,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/acl_posix.c:498,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:501,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:508,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:509,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:513,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:514,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 5
    argNames:
    - ctx
    - file_path
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/core/cf-agent/acl_posix.c
    constantsTouched: []
    func_position:
      end: 516
      start: 439
    functionDepth: 12
    functionLinenumber: 439
    functionLinenumberEnd: 516
    functionName: CheckDefaultEqualsAccessACL
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ChrootChanges
    - acl_free
    - RecordChange
    - acl_set_file
    - assert
    - RecordFailure
    - RecordNoChange
    - ToChangesChroot
    - acl_get_file
    - ACLEquals
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: bool CheckDefaultEqualsAccessACL(EvalContext *ctx, const char *file_path,
      const Attributes *a, const Promise *pp, PromiseResult *result)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/acl_posix.c:531,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/acl_posix.c:533,1
    - Dst: acl_get_file
      Src: /src/core/cf-agent/acl_posix.c:539,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:541,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:541,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:542,1
    - Dst: acl_get_entry
      Src: /src/core/cf-agent/acl_posix.c:546,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:551,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:552,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:553,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/acl_posix.c:558,1
    - Dst: acl_init
      Src: /src/core/cf-agent/acl_posix.c:564,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:566,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:567,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:568,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/acl_posix.c:573,1
    - Dst: acl_set_file
      Src: /src/core/cf-agent/acl_posix.c:575,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/acl_posix.c:577,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:578,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:579,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/acl_posix.c:583,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/acl_posix.c:584,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:594,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:595,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 5
    argNames:
    - ctx
    - file_path
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 522
    functionDepth: 12
    functionLinenumber: 522
    functionLinenumberEnd: 597
    functionName: CheckDefaultClearACL
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ChrootChanges
    - acl_free
    - RecordChange
    - acl_set_file
    - RecordFailure
    - acl_get_entry
    - acl_init
    - RecordNoChange
    - ToChangesChroot
    - acl_get_file
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: bool CheckDefaultClearACL(EvalContext *ctx, const char *file_path,
      const Attributes *a, const Promise *pp, PromiseResult *result)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: acl_get_entry
      Src: /src/core/cf-agent/acl_posix.c:618,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:622,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:622,1
    - Dst: acl_get_tag_type
      Src: /src/core/cf-agent/acl_posix.c:632,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:634,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:634,1
    - Dst: acl_get_qualifier
      Src: /src/core/cf-agent/acl_posix.c:640,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:644,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:644,1
    - Dst: acl_get_tag_type
      Src: /src/core/cf-agent/acl_posix.c:653,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:655,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:655,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:656,1
    - Dst: acl_get_qualifier
      Src: /src/core/cf-agent/acl_posix.c:667,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:671,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:671,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:677,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:678,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:682,1
    - Dst: acl_get_entry
      Src: /src/core/cf-agent/acl_posix.c:685,1
    - Dst: acl_free
      Src: /src/core/cf-agent/acl_posix.c:690,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 2
    argNames:
    - acl
    - ace_find
    argTypes:
    - acl_t
    - acl_entry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 606
    functionDepth: 8
    functionLinenumber: 606
    functionLinenumberEnd: 694
    functionName: FindACE
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - acl_free
    - acl_get_entry
    - Log
    - acl_get_tag_type
    - acl_get_qualifier
    linkageType: ''
    returnType: acl_entry_t
    signature: acl_entry_t FindACE(acl_t acl, acl_entry_t ace_find)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ACECount
      Src: /src/core/cf-agent/acl_posix.c:713,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:715,1
    - Dst: ACECount
      Src: /src/core/cf-agent/acl_posix.c:719,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:721,1
    - Dst: acl_get_entry
      Src: /src/core/cf-agent/acl_posix.c:737,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:741,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:741,1
    - Dst: FindACE
      Src: /src/core/cf-agent/acl_posix.c:749,1
    - Dst: acl_get_permset
      Src: /src/core/cf-agent/acl_posix.c:756,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:758,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:758,1
    - Dst: acl_get_permset
      Src: /src/core/cf-agent/acl_posix.c:762,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:764,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:764,1
    - Dst: PermsetEquals
      Src: /src/core/cf-agent/acl_posix.c:768,1
    - Dst: acl_get_entry
      Src: /src/core/cf-agent/acl_posix.c:779,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - acl_t
    - acl_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 702
    functionDepth: 9
    functionLinenumber: 702
    functionLinenumberEnd: 783
    functionName: ACLEquals
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - ACECount
    - acl_get_permset
    - acl_get_entry
    - Log
    - FindACE
    - PermsetEquals
    linkageType: ''
    returnType: int
    signature: int ACLEquals(acl_t first, acl_t second)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acl_get_entry
      Src: /src/core/cf-agent/acl_posix.c:793,1
    - Dst: acl_get_entry
      Src: /src/core/cf-agent/acl_posix.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - acl
    argTypes:
    - acl_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 807
    functionName: ACECount
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 1
    functionsReached:
    - acl_get_entry
    linkageType: ''
    returnType: int
    signature: int ACECount(acl_t acl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: acl_get_perm
      Src: /src/core/cf-agent/acl_posix.c:818,1
    - Dst: acl_get_perm
      Src: /src/core/cf-agent/acl_posix.c:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - acl_permset_t
    - acl_permset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 839
    functionName: PermsetEquals
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 1
    functionsReached:
    - acl_get_perm
    linkageType: ''
    returnType: int
    signature: int PermsetEquals(acl_permset_t first, acl_permset_t second)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/cf-agent/acl_posix.c:863,1
    - Dst: strchr
      Src: /src/core/cf-agent/acl_posix.c:868,1
    - Dst: strlen
      Src: /src/core/cf-agent/acl_posix.c:872,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/acl_posix.c:879,1
    - Dst: strncmp
      Src: /src/core/cf-agent/acl_posix.c:888,1
    - Dst: GetUserID
      Src: /src/core/cf-agent/acl_posix.c:896,1
    - Dst: free
      Src: /src/core/cf-agent/acl_posix.c:899,1
    - Dst: strncmp
      Src: /src/core/cf-agent/acl_posix.c:904,1
    - Dst: strchr
      Src: /src/core/cf-agent/acl_posix.c:909,1
    - Dst: strlen
      Src: /src/core/cf-agent/acl_posix.c:913,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/acl_posix.c:920,1
    - Dst: strncmp
      Src: /src/core/cf-agent/acl_posix.c:928,1
    - Dst: GetGroupID
      Src: /src/core/cf-agent/acl_posix.c:936,1
    - Dst: free
      Src: /src/core/cf-agent/acl_posix.c:939,1
    - Dst: strncmp
      Src: /src/core/cf-agent/acl_posix.c:945,1
    - Dst: strncmp
      Src: /src/core/cf-agent/acl_posix.c:950,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:958,1
    - Dst: acl_set_tag_type
      Src: /src/core/cf-agent/acl_posix.c:962,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:964,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:964,1
    - Dst: acl_set_qualifier
      Src: /src/core/cf-agent/acl_posix.c:969,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:971,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:971,1
    - Dst: free
      Src: /src/core/cf-agent/acl_posix.c:978,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 76
    argCount: 3
    argNames:
    - str
    - ace
    - is_mask
    argTypes:
    - char**
    - acl_entry_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 847
    functionDepth: 13
    functionLinenumber: 847
    functionLinenumberEnd: 982
    functionName: ParseEntityPosixLinux
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - strncmp
    - acl_set_tag_type
    - GetUserID
    - strlen
    - strchr
    - acl_set_qualifier
    - xmalloc
    - Log
    - free
    - GetGroupID
    linkageType: ''
    returnType: bool
    signature: bool ParseEntityPosixLinux(char **str, acl_entry_t ace, int *is_mask)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: acl_clear_perms
      Src: /src/core/cf-agent/acl_posix.c:1002,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:1004,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:1004,1
    - Dst: acl_clear_perms
      Src: /src/core/cf-agent/acl_posix.c:1037,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:1039,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:1039,1
    - Dst: strchr
      Src: /src/core/cf-agent/acl_posix.c:1046,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:1067,1
    - Dst: acl_add_perm
      Src: /src/core/cf-agent/acl_posix.c:1073,1
    - Dst: acl_delete_perm
      Src: /src/core/cf-agent/acl_posix.c:1077,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:1082,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:1082,1
    - Dst: strchr
      Src: /src/core/cf-agent/acl_posix.c:1094,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:1111,1
    - Dst: acl_add_perm
      Src: /src/core/cf-agent/acl_posix.c:1117,1
    - Dst: acl_delete_perm
      Src: /src/core/cf-agent/acl_posix.c:1121,1
    - Dst: Log
      Src: /src/core/cf-agent/acl_posix.c:1126,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/acl_posix.c:1126,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 97
    argCount: 2
    argNames:
    - mode
    - perms
    argTypes:
    - char*
    - acl_permset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 991
    functionDepth: 8
    functionLinenumber: 991
    functionLinenumberEnd: 1148
    functionName: ParseModePosixLinux
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - acl_delete_perm
    - strchr
    - acl_add_perm
    - Log
    - acl_clear_perms
    linkageType: ''
    returnType: bool
    signature: bool ParseModePosixLinux(char *mode, acl_permset_t perms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfPS
      Src: /src/core/cf-agent/acl_posix.c:1154,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/acl_posix.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - file_path
    - Acl
    - a
    - pp
    argTypes:
    - EvalContext*
    - ARG_UNUSED*
    - ARG_UNUSED
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1152
    functionDepth: 13
    functionLinenumber: 1152
    functionLinenumberEnd: 1158
    functionName: CheckPosixLinuxACL
    functionSourceFile: /src/core/cf-agent/acl_posix.c
    functionUses: 0
    functionsReached:
    - PromiseRef
    - cfPS
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult CheckPosixLinuxACL(EvalContext *ctx, ARG_UNUSED const
      char *file_path, ARG_UNUSED Acl acl, const Attributes *a, const Promise *pp)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/cf-agent/files_select.c:63,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:68,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:74,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:80,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:86,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:86,1
    - Dst: SelectNameRegexMatch
      Src: /src/core/cf-agent/files_select.c:91,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:91,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:93,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:93,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:100,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:100,1
    - Dst: SelectPathRegexMatch
      Src: /src/core/cf-agent/files_select.c:105,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:105,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:107,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:107,1
    - Dst: SelectTypeMatch
      Src: /src/core/cf-agent/files_select.c:112,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:114,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:114,1
    - Dst: SelectOwnerMatch
      Src: /src/core/cf-agent/files_select.c:117,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:119,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:119,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:124,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:124,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:128,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:128,1
    - Dst: SelectGroupMatch
      Src: /src/core/cf-agent/files_select.c:131,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:133,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:133,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:138,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:138,1
    - Dst: SelectModeMatch
      Src: /src/core/cf-agent/files_select.c:142,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:144,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:144,1
    - Dst: SelectBSDMatch
      Src: /src/core/cf-agent/files_select.c:148,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:150,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:150,1
    - Dst: SelectTimeMatch
      Src: /src/core/cf-agent/files_select.c:154,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:156,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:156,1
    - Dst: SelectTimeMatch
      Src: /src/core/cf-agent/files_select.c:159,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:161,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:161,1
    - Dst: SelectSizeMatch
      Src: /src/core/cf-agent/files_select.c:164,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:166,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:166,1
    - Dst: SelectTimeMatch
      Src: /src/core/cf-agent/files_select.c:169,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:171,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:171,1
    - Dst: SelectIsSymLinkTo
      Src: /src/core/cf-agent/files_select.c:174,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:176,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:176,1
    - Dst: SelectExecRegexMatch
      Src: /src/core/cf-agent/files_select.c:179,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:181,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:181,1
    - Dst: SelectExecProgram
      Src: /src/core/cf-agent/files_select.c:184,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:186,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:186,1
    - Dst: EvalFileResult
      Src: /src/core/cf-agent/files_select.c:189,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:191,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:195,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 4
    argNames:
    - ctx
    - path
    - sb
    - fs
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - FileSelect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 198
    functionName: SelectLeaf
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 2
    functionsReached:
    - SelectModeMatch
    - SelectGroupMatch
    - Log
    - RlistScalarValue
    - StringSetNew
    - SelectPathRegexMatch
    - SelectTimeMatch
    - SelectBSDMatch
    - SelectExecRegexMatch
    - xstrdup
    - SelectIsSymLinkTo
    - SelectTypeMatch
    - SelectOwnerMatch
    - SelectExecProgram
    - StringSetAdd
    - SelectNameRegexMatch
    - EvalFileResult
    - StringSetDestroy
    - SelectSizeMatch
    linkageType: ''
    returnType: bool
    signature: bool SelectLeaf(EvalContext *ctx, char *path, const struct stat *sb,
      const FileSelect *fs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - size
    - min
    - max
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: SelectSizeMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SelectSizeMatch(size_t size, size_t min, size_t max)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/cf-agent/files_select.c:220,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/files_select.c:222,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:224,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:224,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:225,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:225,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/files_select.c:228,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:230,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:230,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/files_select.c:234,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:236,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:236,1
    - Dst: S_ISFIFO
      Src: /src/core/cf-agent/files_select.c:239,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:241,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:241,1
    - Dst: S_ISSOCK
      Src: /src/core/cf-agent/files_select.c:244,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:246,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:246,1
    - Dst: S_ISCHR
      Src: /src/core/cf-agent/files_select.c:249,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:251,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:251,1
    - Dst: S_ISBLK
      Src: /src/core/cf-agent/files_select.c:254,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:256,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:256,1
    - Dst: S_ISDOOR
      Src: /src/core/cf-agent/files_select.c:261,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:263,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:263,1
    - Dst: EvalFileResult
      Src: /src/core/cf-agent/files_select.c:269,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:269,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:271,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - lstatptr
    - crit
    argTypes:
    - struct stat*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 216
    functionDepth: 10
    functionLinenumber: 216
    functionLinenumberEnd: 278
    functionName: SelectTypeMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - RlistScalarValue
    - S_ISLNK
    - S_ISDIR
    - S_ISFIFO
    - S_ISCHR
    - EvalFileResult
    - StringSetDestroy
    - S_ISREG
    - xstrdup
    - S_ISDOOR
    - S_ISBLK
    - StringSetNew
    - S_ISSOCK
    - StringSetAdd
    linkageType: ''
    returnType: bool
    signature: bool SelectTypeMatch(const struct stat *lstatptr, Rlist *crit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/cf-agent/files_select.c:285,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_select.c:289,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:290,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:290,1
    - Dst: GetOwnerName
      Src: /src/core/cf-agent/files_select.c:293,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:297,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:297,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:301,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:301,1
    - Dst: EvalFileResult
      Src: /src/core/cf-agent/files_select.c:306,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:306,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:308,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:309,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_select.c:313,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:313,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:315,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:316,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_select.c:321,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:321,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:323,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:324,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - ctx
    - path
    - lstatptr
    - crit
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 280
    functionDepth: 10
    functionLinenumber: 280
    functionLinenumberEnd: 332
    functionName: SelectOwnerMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - snprintf
    - GetOwnerName
    - EvalFileResult
    - StringSetDestroy
    - FullTextMatch
    - Log
    - xstrdup
    - RlistScalarValue
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: bool
    signature: bool SelectOwnerMatch(EvalContext *ctx, char *path, const struct stat
      *lstatptr, Rlist *crit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ParseModeString
      Src: /src/core/cf-agent/files_select.c:346,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:346,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:348,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - lstatptr
    - list
    argTypes:
    - struct stat*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 336
    functionDepth: 9
    functionLinenumber: 336
    functionLinenumberEnd: 363
    functionName: SelectModeMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - ParseModeString
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool SelectModeMatch(const struct stat *lstatptr, Rlist *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ParseFlagString
      Src: /src/core/cf-agent/files_select.c:372,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - lstatptr
    - bsdflags
    argTypes:
    - struct stat*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 368
    functionDepth: 9
    functionLinenumber: 368
    functionLinenumberEnd: 387
    functionName: SelectBSDMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - Log
    - ParseFlagString
    linkageType: ''
    returnType: bool
    signature: bool SelectBSDMatch(const struct stat *lstatptr, Rlist *bsdflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - stattime
    - fromtime
    - totime
    argTypes:
    - time_t
    - time_t
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: SelectTimeMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SelectTimeMatch(time_t stattime, time_t fromtime, time_t totime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_select.c:400,1
    - Dst: ReadLastNode
      Src: /src/core/cf-agent/files_select.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - filename
    - crit
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 406
    functionName: SelectNameRegexMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - FullTextMatch
    - ReadLastNode
    linkageType: ''
    returnType: bool
    signature: bool SelectNameRegexMatch(EvalContext *ctx, const char *filename, char
      *crit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_select.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - filename
    - crit
    argTypes:
    - EvalContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: SelectPathRegexMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - FullTextMatch
    linkageType: ''
    returnType: bool
    signature: bool SelectPathRegexMatch(EvalContext *ctx, char *filename, char *crit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SearchAndReplace
      Src: /src/core/cf-agent/files_select.c:426,1
    - Dst: SearchAndReplace
      Src: /src/core/cf-agent/files_select.c:427,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:428,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/files_select.c:430,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:433,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_select.c:433,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:434,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/files_select.c:439,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/files_select.c:443,1
    - Dst: feof
      Src: /src/core/cf-agent/files_select.c:446,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:448,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_select.c:448,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/files_select.c:450,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:451,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:452,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_select.c:456,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/files_select.c:458,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:459,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:460,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/files_select.c:465,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:466,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - filename
    - crit
    - prog
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 422
    functionDepth: 11
    functionLinenumber: 422
    functionLinenumberEnd: 469
    functionName: SelectExecRegexMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - cf_popen
    - feof
    - CfReadLine
    - xmalloc
    - Log
    - cf_pclose
    - FullTextMatch
    - free
    - SearchAndReplace
    linkageType: ''
    returnType: bool
    signature: bool SelectExecRegexMatch(EvalContext *ctx, char *filename, char *crit,
      char *prog)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/cf-agent/files_select.c:481,1
    - Dst: lstat
      Src: /src/core/cf-agent/files_select.c:489,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/files_select.c:493,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:495,1
    - Dst: readlink
      Src: /src/core/cf-agent/files_select.c:499,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:501,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_select.c:502,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_select.c:506,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - filename
    - crit
    argTypes:
    - EvalContext*
    - char*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 473
    functionDepth: 8
    functionLinenumber: 473
    functionLinenumberEnd: 513
    functionName: SelectIsSymLinkTo
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - readlink
    - S_ISLNK
    - FullTextMatch
    - Log
    - lstat
    - RlistScalarValue
    - memset
    linkageType: ''
    returnType: bool
    signature: bool SelectIsSymLinkTo(EvalContext *ctx, char *filename, Rlist *crit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SearchAndReplace
      Src: /src/core/cf-agent/files_select.c:522,1
    - Dst: SearchAndReplace
      Src: /src/core/cf-agent/files_select.c:523,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:524,1
    - Dst: ShellCommandReturnsZero
      Src: /src/core/cf-agent/files_select.c:526,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:530,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:531,1
    - Dst: free
      Src: /src/core/cf-agent/files_select.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - filename
    - command
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 517
    functionDepth: 10
    functionLinenumber: 517
    functionLinenumberEnd: 539
    functionName: SelectExecProgram
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - free
    - SearchAndReplace
    - ShellCommandReturnsZero
    - Log
    linkageType: ''
    returnType: bool
    signature: bool SelectExecProgram(char *filename, char *command)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/cf-agent/files_select.c:549,1
    - Dst: GetUserName
      Src: /src/core/cf-agent/files_select.c:550,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - path
    - lstatptr
    - owner
    - ownerSz
    argTypes:
    - char*
    - struct stat*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 547
    functionDepth: 13
    functionLinenumber: 547
    functionLinenumberEnd: 558
    functionName: GetOwnerName
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - GetUserName
    - Log
    - memset
    linkageType: ''
    returnType: bool
    signature: bool GetOwnerName(char *path, const struct stat *lstatptr, char *owner,
      int ownerSz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/cf-agent/files_select.c:567,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_select.c:569,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:570,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:570,1
    - Dst: GetGroupName
      Src: /src/core/cf-agent/files_select.c:572,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:575,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:575,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/files_select.c:579,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_select.c:579,1
    - Dst: EvalFileResult
      Src: /src/core/cf-agent/files_select.c:584,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:584,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:586,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:587,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_select.c:591,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:591,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:593,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:594,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_select.c:598,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_select.c:598,1
    - Dst: Log
      Src: /src/core/cf-agent/files_select.c:600,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:601,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/files_select.c:606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - lstatptr
    - crit
    argTypes:
    - EvalContext*
    - struct stat*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 562
    functionDepth: 13
    functionLinenumber: 562
    functionLinenumberEnd: 608
    functionName: SelectGroupMatch
    functionSourceFile: /src/core/cf-agent/files_select.c
    functionUses: 1
    functionsReached:
    - snprintf
    - GetGroupName
    - EvalFileResult
    - StringSetDestroy
    - FullTextMatch
    - Log
    - xstrdup
    - RlistScalarValue
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: bool
    signature: bool SelectGroupMatch(EvalContext *ctx, const struct stat *lstatptr,
      Rlist *crit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-agent/abstract_dir.c:44,1
    - Dst: DirOpen
      Src: /src/core/cf-agent/abstract_dir.c:47,1
    - Dst: free
      Src: /src/core/cf-agent/abstract_dir.c:50,1
    - Dst: assert
      Src: /src/core/cf-agent/abstract_dir.c:56,1
    - Dst: strcmp
      Src: /src/core/cf-agent/abstract_dir.c:56,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/abstract_dir.c:56,1
    - Dst: RemoteDirList
      Src: /src/core/cf-agent/abstract_dir.c:57,1
    - Dst: free
      Src: /src/core/cf-agent/abstract_dir.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - dirname
    - fc
    - conn
    argTypes:
    - char*
    - FileCopy*
    - AgentConnection*
    assertStmts:
    - condition: (fc->servers && strcmp(RlistScalarValue(fc->servers), "localhost"))
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/core/cf-agent/abstract_dir.c
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 10
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: AbstractDirOpen
    functionSourceFile: /src/core/cf-agent/abstract_dir.c
    functionUses: 2
    functionsReached:
    - xcalloc
    - RemoteDirList
    - assert
    - DirOpen
    - strcmp
    - RlistScalarValue
    - free
    linkageType: ''
    returnType: AbstractDir
    signature: AbstractDir *AbstractDirOpen(const char *dirname, const FileCopy *fc,
      AgentConnection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dir
    argTypes:
    - AbstractDir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: RemoteDirRead
    functionSourceFile: /src/core/cf-agent/abstract_dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct dirent
    signature: struct dirent *RemoteDirRead(AbstractDir *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DirRead
      Src: /src/core/cf-agent/abstract_dir.c:85,1
    - Dst: RemoteDirRead
      Src: /src/core/cf-agent/abstract_dir.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dir
    argTypes:
    - AbstractDir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: AbstractDirRead
    functionSourceFile: /src/core/cf-agent/abstract_dir.c
    functionUses: 2
    functionsReached:
    - RemoteDirRead
    - DirRead
    linkageType: ''
    returnType: struct dirent
    signature: struct dirent *AbstractDirRead(AbstractDir *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/abstract_dir.c:97,1
    - Dst: free
      Src: /src/core/cf-agent/abstract_dir.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dir
    argTypes:
    - AbstractDir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: RemoteDirClose
    functionSourceFile: /src/core/cf-agent/abstract_dir.c
    functionUses: 0
    functionsReached:
    - DeleteItemList
    - free
    linkageType: ''
    returnType: void
    signature: void RemoteDirClose(AbstractDir *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DirClose
      Src: /src/core/cf-agent/abstract_dir.c:106,1
    - Dst: free
      Src: /src/core/cf-agent/abstract_dir.c:107,1
    - Dst: RemoteDirClose
      Src: /src/core/cf-agent/abstract_dir.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dir
    argTypes:
    - AbstractDir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: AbstractDirClose
    functionSourceFile: /src/core/cf-agent/abstract_dir.c
    functionUses: 2
    functionsReached:
    - free
    - DirClose
    - RemoteDirClose
    linkageType: ''
    returnType: void
    signature: void AbstractDirClose(AbstractDir *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - success
    - message
    argTypes:
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: AgentDiagnosticsResultNew
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsResultNew(bool success, char
      *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/agent-diagnostics.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - AgentDiagnosticsResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: AgentDiagnosticsResultDestroy
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void AgentDiagnosticsResultDestroy(AgentDiagnosticsResult result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-agent/agent-diagnostics.c:55,1
    - Dst: MapName
      Src: /src/core/cf-agent/agent-diagnostics.c:56,1
    - Dst: stat
      Src: /src/core/cf-agent/agent-diagnostics.c:59,1
    - Dst: mkdir
      Src: /src/core/cf-agent/agent-diagnostics.c:61,1
    - Dst: WriterWriteF
      Src: /src/core/cf-agent/agent-diagnostics.c:63,1
    - Dst: check
      Src: /src/core/cf-agent/agent-diagnostics.c:72,1
    - Dst: WriterWriteF
      Src: /src/core/cf-agent/agent-diagnostics.c:73,1
    - Dst: AgentDiagnosticsResultDestroy
      Src: /src/core/cf-agent/agent-diagnostics.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - workdir
    - checks
    - output
    argTypes:
    - char*
    - AgentDiagnosticCheck[]
    - Writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 79
    functionName: AgentDiagnosticsRun
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - stat
    - AgentDiagnosticsResultDestroy
    - snprintf
    - MapName
    - WriterWriteF
    - check
    - mkdir
    linkageType: ''
    returnType: void
    signature: void AgentDiagnosticsRun(const char *workdir, const AgentDiagnosticCheck
      checks[], Writer *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyServerReadFile
      Src: /src/core/cf-agent/agent-diagnostics.c:83,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:84,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/agent-diagnostics.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 9
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: AgentDiagnosticsCheckIsBootstrapped
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - PolicyServerReadFile
    - AgentDiagnosticsResultNew
    - xstrdup
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckIsBootstrapped(const char
      *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetAmPolicyHub
      Src: /src/core/cf-agent/agent-diagnostics.c:90,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:91,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/agent-diagnostics.c:92,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/agent-diagnostics.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: AgentDiagnosticsCheckAmPolicyServer
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - AgentDiagnosticsResultNew
    - GetAmPolicyHub
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckAmPolicyServer(ARG_UNUSED
      const char *workdir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PrivateKeyFile
      Src: /src/core/cf-agent/agent-diagnostics.c:97,1
    - Dst: stat
      Src: /src/core/cf-agent/agent-diagnostics.c:101,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:103,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/agent-diagnostics.c:103,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:107,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/agent-diagnostics.c:107,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:111,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/agent-diagnostics.c:111,1
    - Dst: free
      Src: /src/core/cf-agent/agent-diagnostics.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 116
    functionName: AgentDiagnosticsCheckPrivateKey
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - stat
    - StringFormat
    - AgentDiagnosticsResultNew
    - free
    - PrivateKeyFile
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckPrivateKey(const char *workdir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PublicKeyFile
      Src: /src/core/cf-agent/agent-diagnostics.c:120,1
    - Dst: stat
      Src: /src/core/cf-agent/agent-diagnostics.c:124,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:126,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/agent-diagnostics.c:126,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:130,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/agent-diagnostics.c:130,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:134,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/agent-diagnostics.c:134,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:138,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/agent-diagnostics.c:138,1
    - Dst: free
      Src: /src/core/cf-agent/agent-diagnostics.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 143
    functionName: AgentDiagnosticsCheckPublicKey
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - stat
    - PublicKeyFile
    - StringFormat
    - AgentDiagnosticsResultNew
    - free
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckPublicKey(const char *workdir)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DBIdToPath
      Src: /src/core/cf-agent/agent-diagnostics.c:147,1
    - Dst: DBPrivDiagnose
      Src: /src/core/cf-agent/agent-diagnostics.c:148,1
    - Dst: free
      Src: /src/core/cf-agent/agent-diagnostics.c:152,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:153,1
    - Dst: CheckTokyoDBCoherence
      Src: /src/core/cf-agent/agent-diagnostics.c:157,1
    - Dst: free
      Src: /src/core/cf-agent/agent-diagnostics.c:158,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:161,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/agent-diagnostics.c:161,1
    - Dst: IsLastSeenCoherent
      Src: /src/core/cf-agent/agent-diagnostics.c:167,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:169,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/agent-diagnostics.c:169,1
    - Dst: AgentDiagnosticsResultNew
      Src: /src/core/cf-agent/agent-diagnostics.c:172,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/agent-diagnostics.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - workdir
    - id
    argTypes:
    - ARG_UNUSED*
    - dbid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 145
    functionDepth: 9
    functionLinenumber: 145
    functionLinenumberEnd: 176
    functionName: AgentDiagnosticsCheckDB
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - IsLastSeenCoherent
    - DBPrivDiagnose
    - AgentDiagnosticsResultNew
    - xstrdup
    - free
    - CheckTokyoDBCoherence
    - DBIdToPath
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckDB(ARG_UNUSED const char
      *workdir, dbid id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AgentDiagnosticsCheckDB
      Src: /src/core/cf-agent/agent-diagnostics.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 10
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: AgentDiagnosticsCheckDBPersistentClasses
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - AgentDiagnosticsCheckDB
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckDBPersistentClasses(const
      char *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AgentDiagnosticsCheckDB
      Src: /src/core/cf-agent/agent-diagnostics.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 10
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: AgentDiagnosticsCheckDBChecksums
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - AgentDiagnosticsCheckDB
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckDBChecksums(const char
      *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AgentDiagnosticsCheckDB
      Src: /src/core/cf-agent/agent-diagnostics.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 10
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: AgentDiagnosticsCheckDBLastSeen
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - AgentDiagnosticsCheckDB
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckDBLastSeen(const char *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AgentDiagnosticsCheckDB
      Src: /src/core/cf-agent/agent-diagnostics.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 10
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: AgentDiagnosticsCheckDBObservations
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - AgentDiagnosticsCheckDB
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckDBObservations(const char
      *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AgentDiagnosticsCheckDB
      Src: /src/core/cf-agent/agent-diagnostics.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 10
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: AgentDiagnosticsCheckDBFileStats
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - AgentDiagnosticsCheckDB
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckDBFileStats(const char
      *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AgentDiagnosticsCheckDB
      Src: /src/core/cf-agent/agent-diagnostics.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 10
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: AgentDiagnosticsCheckDBLocks
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - AgentDiagnosticsCheckDB
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckDBLocks(const char *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AgentDiagnosticsCheckDB
      Src: /src/core/cf-agent/agent-diagnostics.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 10
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: AgentDiagnosticsCheckDBPerformance
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached:
    - AgentDiagnosticsCheckDB
    linkageType: ''
    returnType: AgentDiagnosticsResult
    signature: AgentDiagnosticsResult AgentDiagnosticsCheckDBPerformance(const char
      *workdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 233
    functionName: AgentDiagnosticsAllChecks
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AgentDiagnosticCheck
    signature: AgentDiagnosticCheck *AgentDiagnosticsAllChecks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - char
    - Writer
    - AgentDiagnosticsRunFunction
    - AgentDiagnosticsResultNewFunction
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: ENTERPRISE_VOID_FUNC_4ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-agent/agent-diagnostics.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_VOID_FUNC_4ARG_DEFINE_STUB(void, AgentDiagnosticsRunAllChecksNova,\n
      \                                     ARG_UNUSED const char *, workdir, ARG_UNUSED
      Writer *, output,\n                                      ARG_UNUSED AgentDiagnosticsRunFunction,
      AgentDiagnosticsRunPtr,\n                                      ARG_UNUSED AgentDiagnosticsResultNewFunction,
      AgentDiagnosticsResultNewPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __pp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: REPORT_THIS_PROMISE
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPORT_THIS_PROMISE(__pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - __ctx
    - ','
    - __log_level
    - ','
    - __result
    - ','
    - __pp
    - ','
    - __a
    - ','
    - __str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: cfPS_HELPER_0ARG
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cfPS_HELPER_0ARG(__ctx, __log_level, __result, __pp, __a, __str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - __ctx
    - ','
    - __log_level
    - ','
    - __result
    - ','
    - __pp
    - ','
    - __a
    - ','
    - __str
    - ','
    - __arg1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: cfPS_HELPER_1ARG
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cfPS_HELPER_1ARG(__ctx, __log_level, __result, __pp, __a, __str, __arg1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - __ctx
    - ','
    - __log_level
    - ','
    - __result
    - ','
    - __pp
    - ','
    - __a
    - ','
    - __str
    - ','
    - __arg1
    - ','
    - __arg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: cfPS_HELPER_2ARG
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cfPS_HELPER_2ARG(__ctx, __log_level, __result, __pp, __a, __str, __arg1,
      __arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - __ctx
    - ','
    - __log_level
    - ','
    - __result
    - ','
    - __pp
    - ','
    - __a
    - ','
    - __str
    - ','
    - __arg1
    - ','
    - __arg2
    - ','
    - __arg3
    - )
    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: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: cfPS_HELPER_3ARG
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cfPS_HELPER_3ARG(__ctx, __log_level, __result, __pp, __a, __str, __arg1,
      __arg2, __arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __pp
    - ','
    - __prior
    - ','
    - __evidence
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: PromiseResultUpdate_HELPER
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PromiseResultUpdate_HELPER(__pp, __prior, __evidence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - PackageManager
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, ReportPatches, ARG_UNUSED
      PackageManager *, list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:153,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - packages
    - new_packages
    argTypes:
    - Packages*
    - NewPackages*
    assertStmts:
    - condition: (packages != NULL)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (new_packages != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 178
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 178
    functionName: GetPackagePromiseVersion
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PackagePromiseType
    signature: "PackagePromiseType GetPackagePromiseVersion(const Packages *packages,\n
      \       const NewPackages *new_packages)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:182,1
    - Dst: GetPackageAttributes
      Src: /src/core/cf-agent/verify_packages.c:186,1
    - Dst: GetPackagePromiseVersion
      Src: /src/core/cf-agent/verify_packages.c:188,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:193,1
    - Dst: HandleNewPackagePromiseType
      Src: /src/core/cf-agent/verify_packages.c:195,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:199,1
    - Dst: HandleOldPackagePromiseType
      Src: /src/core/cf-agent/verify_packages.c:201,1
    - Dst: UpdatePackagesCache
      Src: /src/core/cf-agent/verify_packages.c:207,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:211,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:215,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:219,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (0)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 227
      start: 180
    functionDepth: 8
    functionLinenumber: 180
    functionLinenumberEnd: 227
    functionName: VerifyPackagesPromise
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - GetPackageAttributes
    - assert
    - GetPackagePromiseVersion
    - UpdatePackagesCache
    - Log
    - HandleNewPackagePromiseType
    - cfPS_HELPER_0ARG
    - HandleOldPackagePromiseType
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyPackagesPromise(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:254,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:255,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:266,1
    - Dst: EvalContextVariableGet
      Src: /src/core/cf-agent/verify_packages.c:267,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:269,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:272,1
    - Dst: PackageSanityCheck
      Src: /src/core/cf-agent/verify_packages.c:284,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:286,1
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_packages.c:291,1
    - Dst: AcquireGlobalPackagePromiseLock
      Src: /src/core/cf-agent/verify_packages.c:295,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:298,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_packages.c:305,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_packages.c:307,1
    - Dst: YieldGlobalPackagePromiseLock
      Src: /src/core/cf-agent/verify_packages.c:311,1
    - Dst: safe_chdir
      Src: /src/core/cf-agent/verify_packages.c:318,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:320,1
    - Dst: GetDefaultArch
      Src: /src/core/cf-agent/verify_packages.c:323,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:327,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_packages.c:328,1
    - Dst: YieldGlobalPackagePromiseLock
      Src: /src/core/cf-agent/verify_packages.c:329,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:334,1
    - Dst: VerifyInstalledPackages
      Src: /src/core/cf-agent/verify_packages.c:335,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:337,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:338,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_packages.c:339,1
    - Dst: YieldGlobalPackagePromiseLock
      Src: /src/core/cf-agent/verify_packages.c:340,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:345,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:349,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:350,1
    - Dst: VerifyPromisedPatch
      Src: /src/core/cf-agent/verify_packages.c:350,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:354,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:355,1
    - Dst: VerifyPromisedPackage
      Src: /src/core/cf-agent/verify_packages.c:355,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_packages.c:358,1
    - Dst: YieldGlobalPackagePromiseLock
      Src: /src/core/cf-agent/verify_packages.c:359,1
    - Dst: REPORT_THIS_PROMISE
      Src: /src/core/cf-agent/verify_packages.c:362,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_packages.c:366,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 3
    argNames:
    - ctx
    - pp
    - attr
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (attr != NULL)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 370
      start: 252
    functionDepth: 13
    functionLinenumber: 252
    functionLinenumberEnd: 370
    functionName: HandleOldPackagePromiseType
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - VerifyPromisedPatch
    - PackageSanityCheck
    - VarRefDestroy
    - AcquireLock
    - Log
    - AcquireGlobalPackagePromiseLock
    - free
    - PromiseResultUpdate_HELPER
    - PromiseBanner
    - snprintf
    - VerifyPromisedPackage
    - YieldCurrentLock
    - safe_chdir
    - YieldGlobalPackagePromiseLock
    - REPORT_THIS_PROMISE
    - assert
    - VarRefParseFromScope
    - VerifyInstalledPackages
    - cfPS
    - EvalContextVariableGet
    - GetDefaultArch
    - cfPS_HELPER_0ARG
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult HandleOldPackagePromiseType(EvalContext *ctx, const Promise
      *pp, const Attributes *attr)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:386,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:387,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:394,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:401,1
    - Dst: IsExecutable
      Src: /src/core/cf-agent/verify_packages.c:406,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/verify_packages.c:406,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:408,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:420,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_packages.c:431,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:431,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:433,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:433,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:443,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:450,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:459,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:467,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:474,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:482,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:490,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:496,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:504,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:514,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:523,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:529,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:535,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:541,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:550,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:556,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:562,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:571,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:580,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:586,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 125
    argCount: 3
    argNames:
    - ctx
    - a
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (pp != NULL)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 592
      start: 384
    functionDepth: 9
    functionLinenumber: 384
    functionLinenumberEnd: 592
    functionName: PackageSanityCheck
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - IsExecutable
    - CommandArg0
    - strlen
    - assert
    - RlistScalarValue
    - cfPS_HELPER_1ARG
    - cfPS_HELPER_0ARG
    linkageType: ''
    returnType: bool
    signature: bool PackageSanityCheck(EvalContext *ctx, const Attributes *a, const
      Promise *pp)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:620,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:626,1
    - Dst: time
      Src: /src/core/cf-agent/verify_packages.c:631,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_packages.c:636,1
    - Dst: GetStateDir
      Src: /src/core/cf-agent/verify_packages.c:637,1
    - Dst: ReadLastNode
      Src: /src/core/cf-agent/verify_packages.c:638,1
    - Dst: RealPackageManager
      Src: /src/core/cf-agent/verify_packages.c:638,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_packages.c:640,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:659,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:664,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:669,1
    - Dst: ExecPackageCommand
      Src: /src/core/cf-agent/verify_packages.c:670,1
    - Dst: utime
      Src: /src/core/cf-agent/verify_packages.c:673,1
    - Dst: open
      Src: /src/core/cf-agent/verify_packages.c:678,1
    - Dst: close
      Src: /src/core/cf-agent/verify_packages.c:681,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:685,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:686,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:691,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:692,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:698,1
    - Dst: cf_popen_sh
      Src: /src/core/cf-agent/verify_packages.c:704,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:706,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:707,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/verify_packages.c:711,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:713,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:714,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_packages.c:721,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/verify_packages.c:725,1
    - Dst: feof
      Src: /src/core/cf-agent/verify_packages.c:728,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:730,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:731,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_packages.c:732,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:733,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_packages.c:744,1
    - Dst: PrependMultiLinePackageItem
      Src: /src/core/cf-agent/verify_packages.c:746,1
    - Dst: PrependMultiLinePackageItem
      Src: /src/core/cf-agent/verify_packages.c:750,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_packages.c:755,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:757,1
    - Dst: PrependListPackageItem
      Src: /src/core/cf-agent/verify_packages.c:761,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:763,1
    - Dst: PrependMultiLinePackageItem
      Src: /src/core/cf-agent/verify_packages.c:772,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:775,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_packages.c:776,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 6
    argNames:
    - ctx
    - installed_list
    - default_arch
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - PackageItem**
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 619
        line_start: 619
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 777
      start: 614
    functionDepth: 11
    functionLinenumber: 614
    functionLinenumberEnd: 777
    functionName: PackageListInstalledFromCommand
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - feof
    - PrependMultiLinePackageItem
    - ExecPackageCommand
    - FullTextMatch
    - Log
    - open
    - free
    - utime
    - time
    - close
    - snprintf
    - cf_popen
    - cf_pclose
    - RealPackageManager
    - PrependListPackageItem
    - ReadLastNode
    - CfReadLine
    - assert
    - cf_popen_sh
    - xmalloc
    - GetErrorStr
    - stat
    - GetStateDir
    linkageType: ''
    returnType: bool
    signature: "bool PackageListInstalledFromCommand(EvalContext *ctx,\n                                            PackageItem
      **installed_list,\n                                            const char *default_arch,\n
      \                                           const Attributes *a, const Promise
      *pp,\n                                            PromiseResult *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSoftwareCacheFilename
      Src: /src/core/cf-agent/verify_packages.c:798,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/verify_packages.c:800,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:803,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:805,1
    - Dst: FileWriter
      Src: /src/core/cf-agent/verify_packages.c:809,1
    - Dst: CsvWriterOpen
      Src: /src/core/cf-agent/verify_packages.c:811,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/verify_packages.c:818,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/verify_packages.c:819,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/verify_packages.c:820,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/verify_packages.c:821,1
    - Dst: ReadLastNode
      Src: /src/core/cf-agent/verify_packages.c:821,1
    - Dst: RealPackageManager
      Src: /src/core/cf-agent/verify_packages.c:821,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/cf-agent/verify_packages.c:822,1
    - Dst: CsvWriterClose
      Src: /src/core/cf-agent/verify_packages.c:826,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:830,1
    - Dst: WriterClose
      Src: /src/core/cf-agent/verify_packages.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - list
    argTypes:
    - PackageManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 792
    functionDepth: 8
    functionLinenumber: 792
    functionLinenumberEnd: 834
    functionName: ReportSoftware
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - GetErrorStr
    - WriterClose
    - CsvWriterClose
    - safe_fopen
    - CsvWriterOpen
    - Log
    - CsvWriterField
    - RealPackageManager
    - ReadLastNode
    - CsvWriterNewRecord
    - GetSoftwareCacheFilename
    linkageType: ''
    returnType: void
    signature: void ReportSoftware(PackageManager *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSoftwareCacheFilename
      Src: /src/core/cf-agent/verify_packages.c:849,1
    - Dst: utime
      Src: /src/core/cf-agent/verify_packages.c:851,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:855,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 844
    functionDepth: 8
    functionLinenumber: 844
    functionLinenumberEnd: 858
    functionName: InvalidateSoftwareCache
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - utime
    - Log
    - GetSoftwareCacheFilename
    linkageType: ''
    returnType: void
    signature: void InvalidateSoftwareCache(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:882,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:883,1
    - Dst: time
      Src: /src/core/cf-agent/verify_packages.c:889,1
    - Dst: GetSoftwareCacheFilename
      Src: /src/core/cf-agent/verify_packages.c:892,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_packages.c:894,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:906,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:911,1
    - Dst: fopen
      Src: /src/core/cf-agent/verify_packages.c:915,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:917,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:918,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_packages.c:924,1
    - Dst: ReadLastNode
      Src: /src/core/cf-agent/verify_packages.c:924,1
    - Dst: RealPackageManager
      Src: /src/core/cf-agent/verify_packages.c:924,1
    - Dst: fgets
      Src: /src/core/cf-agent/verify_packages.c:929,1
    - Dst: ferror
      Src: /src/core/cf-agent/verify_packages.c:931,1
    - Dst: UnexpectedError
      Src: /src/core/cf-agent/verify_packages.c:933,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:942,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:945,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:956,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:958,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:961,1
    - Dst: PrependPackageItem
      Src: /src/core/cf-agent/verify_packages.c:963,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_packages.c:967,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 5
    argNames:
    - ctx
    - manager
    - default_arch
    - a
    - pp
    argTypes:
    - EvalContext*
    - PackageManager*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (manager != NULL)
      pos:
        line_end: 882
        line_start: 882
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (a != NULL)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 969
      start: 879
    functionDepth: 8
    functionLinenumber: 879
    functionLinenumberEnd: 969
    functionName: GetCachedPackageList
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - stat
    - fopen
    - snprintf
    - fgets
    - PrependPackageItem
    - assert
    - UnexpectedError
    - sscanf
    - Log
    - RealPackageManager
    - strcmp
    - fclose
    - ReadLastNode
    - ferror
    - strlcpy
    - GetSoftwareCacheFilename
    - time
    linkageType: ''
    returnType: PackageItem
    signature: "PackageItem *GetCachedPackageList(EvalContext *ctx, PackageManager
      *manager, const char *default_arch, const Attributes *a,\n                                         const
      Promise *pp)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1000,1
    - Dst: GetPackageManager
      Src: /src/core/cf-agent/verify_packages.c:1002,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1006,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1012,1
    - Dst: GetCachedPackageList
      Src: /src/core/cf-agent/verify_packages.c:1016,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1020,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:1029,1
    - Dst: NovaWin_PackageListInstalledFromAPI
      Src: /src/core/cf-agent/verify_packages.c:1031,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1033,1
    - Dst: if
      Src: /src/core/cf-agent/verify_packages.c:1040,1
    - Dst: PackageListInstalledFromCommand
      Src: /src/core/cf-agent/verify_packages.c:1040,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1042,1
    - Dst: ReportSoftware
      Src: /src/core/cf-agent/verify_packages.c:1047,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1053,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/verify_packages.c:1053,1
    - Dst: IsExecutable
      Src: /src/core/cf-agent/verify_packages.c:1055,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/verify_packages.c:1055,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1057,1
    - Dst: cf_popen_sh
      Src: /src/core/cf-agent/verify_packages.c:1066,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1068,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:1069,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/verify_packages.c:1073,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1075,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:1076,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_packages.c:1081,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/verify_packages.c:1085,1
    - Dst: feof
      Src: /src/core/cf-agent/verify_packages.c:1088,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1090,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:1091,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_packages.c:1092,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:1093,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_packages.c:1104,1
    - Dst: PrependPatchItem
      Src: /src/core/cf-agent/verify_packages.c:1106,1
    - Dst: PrependPatchItem
      Src: /src/core/cf-agent/verify_packages.c:1110,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_packages.c:1116,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:1117,1
    - Dst: ReportPatches
      Src: /src/core/cf-agent/verify_packages.c:1122,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1125,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 6
    argNames:
    - ctx
    - all_mgrs
    - default_arch
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - PackageManager**
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 999
        line_start: 999
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 1128
      start: 992
    functionDepth: 12
    functionLinenumber: 992
    functionLinenumberEnd: 1128
    functionName: VerifyInstalledPackages
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - CommandArg0
    - feof
    - FullTextMatch
    - Log
    - NovaWin_PackageListInstalledFromAPI
    - free
    - GetPackageManager
    - cf_popen
    - cf_pclose
    - strcmp
    - CfReadLine
    - ReportSoftware
    - ReportPatches
    - assert
    - cf_popen_sh
    - xmalloc
    - if
    - PrependPatchItem
    - GetErrorStr
    - IsExecutable
    - PackageListInstalledFromCommand
    - GetCachedPackageList
    linkageType: ''
    returnType: bool
    signature: "bool VerifyInstalledPackages(\n    EvalContext *ctx,\n    PackageManager
      **all_mgrs,\n    const char *default_arch,\n    const Attributes *a,\n    const
      Promise *pp,\n    PromiseResult *result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:1162,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1168,1
    - Dst: DirOpen
      Src: /src/core/cf-agent/verify_packages.c:1173,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:1173,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1176,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:1177,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:1177,1
    - Dst: DirRead
      Src: /src/core/cf-agent/verify_packages.c:1182,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_packages.c:1184,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:1186,1
    - Dst: CompareVersions
      Src: /src/core/cf-agent/verify_packages.c:1189,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1191,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1192,1
    - Dst: DirClose
      Src: /src/core/cf-agent/verify_packages.c:1198,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 9
    argNames:
    - ctx
    - matchName
    - matchVers
    - refAnyVer
    - ver
    - repositories
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - char*
    - Rlist*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1155
    functionDepth: 8
    functionLinenumber: 1155
    functionLinenumberEnd: 1205
    functionName: FindLargestVersionAvail
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - ExtractFirstReference
    - CompareVersions
    - DirRead
    - DirOpen
    - FullTextMatch
    - Log
    - strcmp
    - DirClose
    - RlistScalarValue
    - strlcpy
    linkageType: ''
    returnType: int
    signature: "int FindLargestVersionAvail(EvalContext *ctx, char *matchName, char
      *matchVers, const char *refAnyVer, const char *ver,\n                            Rlist
      *repositories, const Attributes *a, const Promise *pp, PromiseResult *result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1243,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:1247,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1256,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1261,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:1265,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:1266,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:1266,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1268,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1272,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1273,1
    - Dst: CompareVersions
      Src: /src/core/cf-agent/verify_packages.c:1279,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 9
    argNames:
    - ctx
    - n
    - v
    - a
    - instV
    - instA
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - char*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 1242
        line_start: 1242
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 1285
      start: 1232
    functionDepth: 8
    functionLinenumber: 1232
    functionLinenumberEnd: 1285
    functionName: IsNewerThanInstalled
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - CompareVersions
    - assert
    - Log
    - strcmp
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool IsNewerThanInstalled(\n    EvalContext *ctx,\n    const char
      *n,\n    const char *v,\n    const char *a,\n    char *instV,\n    char *instA,\n
      \   const Attributes *attr,\n    const Promise *pp,\n    PromiseResult *result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - pa
    argTypes:
    - PackageAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1314
    functionName: PackageAction2String
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char *PackageAction2String(PackageAction pa)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1339,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1340,1
    - Dst: cfPS_HELPER_3ARG
      Src: /src/core/cf-agent/verify_packages.c:1346,1
    - Dst: PackageAction2String
      Src: /src/core/cf-agent/verify_packages.c:1347,1
    - Dst: GetPackageManager
      Src: /src/core/cf-agent/verify_packages.c:1352,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:1356,1
    - Dst: PrependPackageItem
      Src: /src/core/cf-agent/verify_packages.c:1359,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:1363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - ctx
    - a
    - mgr
    - pa
    - name
    - version
    - arch
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - char*
    - PackageAction
    - char*
    - char*
    - char*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (pp != NULL)
      pos:
        line_end: 1339
        line_start: 1339
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 1365
      start: 1335
    functionDepth: 2
    functionLinenumber: 1335
    functionLinenumberEnd: 1365
    functionName: AddPackageToSchedule
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - PrependPackageItem
    - cfPS_HELPER_3ARG
    - assert
    - ProgrammingError
    - PackageAction2String
    - GetPackageManager
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult AddPackageToSchedule(EvalContext *ctx, const Attributes
      *a, char *mgr, PackageAction pa,\n                                          const
      char *name, const char *version, const char *arch,\n                                          const
      Promise *pp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1390,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1391,1
    - Dst: cfPS_HELPER_3ARG
      Src: /src/core/cf-agent/verify_packages.c:1397,1
    - Dst: PackageAction2String
      Src: /src/core/cf-agent/verify_packages.c:1398,1
    - Dst: GetPackageManager
      Src: /src/core/cf-agent/verify_packages.c:1403,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:1407,1
    - Dst: PrependPackageItem
      Src: /src/core/cf-agent/verify_packages.c:1410,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:1414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - ctx
    - a
    - mgr
    - pa
    - name
    - version
    - arch
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - char*
    - PackageAction
    - char*
    - char*
    - char*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1389
        line_start: 1389
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (pp != NULL)
      pos:
        line_end: 1390
        line_start: 1390
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 1416
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1416
    functionName: AddPatchToSchedule
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - PrependPackageItem
    - cfPS_HELPER_3ARG
    - assert
    - ProgrammingError
    - PackageAction2String
    - GetPackageManager
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult AddPatchToSchedule(EvalContext *ctx, const Attributes
      *a, char *mgr, PackageAction pa,\n                                        const
      char *name, const char *version, const char *arch,\n                                        const
      Promise *pp)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1485,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1486,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1493,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/verify_packages.c:1500,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1503,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1504,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1506,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1507,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1509,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1510,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_packages.c:1514,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1515,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:1515,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_packages.c:1519,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1520,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:1520,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1524,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1527,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1528,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1530,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1531,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1533,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1534,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1538,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1541,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_packages.c:1543,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1545,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1557,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1588,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1591,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1592,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1594,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1595,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1597,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1598,1
    - Dst: BufferClear
      Src: /src/core/cf-agent/verify_packages.c:1600,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_packages.c:1603,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1606,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1607,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1609,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1610,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1612,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1613,1
    - Dst: EscapeSpecialChars
      Src: /src/core/cf-agent/verify_packages.c:1616,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:1616,1
    - Dst: FindLargestVersionAvail
      Src: /src/core/cf-agent/verify_packages.c:1618,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1621,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1622,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1626,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1632,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1635,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:1639,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:1640,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1643,1
    - Dst: AddPackageToSchedule
      Src: /src/core/cf-agent/verify_packages.c:1644,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:1649,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1660,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:1664,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:1665,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1671,1
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_packages.c:1675,1
    - Dst: PrefixLocalRepository
      Src: /src/core/cf-agent/verify_packages.c:1680,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1684,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1685,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1690,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1697,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1700,1
    - Dst: AddPackageToSchedule
      Src: /src/core/cf-agent/verify_packages.c:1701,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:1706,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:1713,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:1714,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1720,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:1723,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:1724,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1732,1
    - Dst: AddPackageToSchedule
      Src: /src/core/cf-agent/verify_packages.c:1733,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1737,1
    - Dst: AddPackageToSchedule
      Src: /src/core/cf-agent/verify_packages.c:1738,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:1743,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:1745,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1759,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1762,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1763,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1765,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1766,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1768,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1769,1
    - Dst: BufferClear
      Src: /src/core/cf-agent/verify_packages.c:1771,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_packages.c:1772,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1774,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1775,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1777,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1778,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1780,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1781,1
    - Dst: EscapeSpecialChars
      Src: /src/core/cf-agent/verify_packages.c:1785,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:1785,1
    - Dst: FindLargestVersionAvail
      Src: /src/core/cf-agent/verify_packages.c:1787,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1790,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1791,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1795,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1801,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:1802,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1807,1
    - Dst: IsNewerThanInstalled
      Src: /src/core/cf-agent/verify_packages.c:1808,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1810,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:1816,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1827,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1845,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1846,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1848,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1849,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/verify_packages.c:1851,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/verify_packages.c:1852,1
    - Dst: BufferClear
      Src: /src/core/cf-agent/verify_packages.c:1854,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_packages.c:1855,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:1856,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1858,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1859,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1861,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1862,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/verify_packages.c:1864,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/verify_packages.c:1865,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1868,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:1872,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:1873,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:1878,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:1879,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1882,1
    - Dst: AddPackageToSchedule
      Src: /src/core/cf-agent/verify_packages.c:1883,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1886,1
    - Dst: AddPackageToSchedule
      Src: /src/core/cf-agent/verify_packages.c:1887,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1892,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1893,1
    - Dst: AddPackageToSchedule
      Src: /src/core/cf-agent/verify_packages.c:1894,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:1900,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1902,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1910,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1911,1
    - Dst: AddPatchToSchedule
      Src: /src/core/cf-agent/verify_packages.c:1912,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:1917,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1927,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:1928,1
    - Dst: AddPackageToSchedule
      Src: /src/core/cf-agent/verify_packages.c:1929,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:1934,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:1935,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:1945,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 249
    argCount: 9
    argNames:
    - ctx
    - name
    - version
    - arch
    - installed
    - matched
    - no_version_specified
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 1485
        line_start: 1485
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (a != NULL)
      pos:
        line_end: 1484
        line_start: 1484
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 1947
      start: 1482
    functionDepth: 11
    functionLinenumber: 1482
    functionLinenumberEnd: 1947
    functionName: SchedulePackageOp
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - strncmp
    - BufferDestroy
    - EscapeSpecialChars
    - VarRefDestroy
    - Log
    - BufferNew
    - PrefixLocalRepository
    - strlcpy
    - PromiseResultUpdate_HELPER
    - BufferData
    - strchr
    - BufferClear
    - cfPS_HELPER_1ARG
    - ExpandScalar
    - assert
    - VarRefParseFromScope
    - EvalContextVariablePut
    - AddPackageToSchedule
    - FindLargestVersionAvail
    - EvalContextVariableRemove
    - AddPatchToSchedule
    - IsNewerThanInstalled
    - cfPS_HELPER_0ARG
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult SchedulePackageOp(EvalContext *ctx, const char *name,
      const char *version, const char *arch, int installed, int matched,\n                                       int
      no_version_specified, const Attributes *a, const Promise *pp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1975,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:1976,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1978,1
    - Dst: PackageVersionComparatorToString
      Src: /src/core/cf-agent/verify_packages.c:1980,1
    - Dst: CompareCSVName
      Src: /src/core/cf-agent/verify_packages.c:1982,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1987,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:1989,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:1991,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:1996,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2000,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:2003,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2005,1
    - Dst: CompareVersions
      Src: /src/core/cf-agent/verify_packages.c:2009,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2010,1
    - Dst: PackageVersionComparatorToString
      Src: /src/core/cf-agent/verify_packages.c:2016,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 9
    argNames:
    - ctx
    - n
    - v
    - arch
    - pi
    - a
    - pp
    - mode
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - PackageItem*
    - Attributes*
    - Promise*
    - char*
    - PromiseResult*
    assertStmts:
    - condition: (pi != NULL)
      pos:
        line_end: 1974
        line_start: 1974
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (a != NULL)
      pos:
        line_end: 1975
        line_start: 1975
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 2021
      start: 1968
    functionDepth: 8
    functionLinenumber: 1968
    functionLinenumberEnd: 2021
    functionName: ComparePackages
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 4
    functionsReached:
    - CompareCSVName
    - CompareVersions
    - assert
    - PackageVersionComparatorToString
    - Log
    - strcmp
    linkageType: ''
    returnType: VersionCmpResult
    signature: "VersionCmpResult ComparePackages(EvalContext *ctx,\n                                 const
      char *n, const char *v, const char *arch,\n                                 PackageItem
      *pi, const Attributes *a,\n                                 const Promise *pp,\n
      \                                const char *mode,\n                                 PromiseResult
      *result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2049,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:2056,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2062,1
    - Dst: PackageVersionComparatorToString
      Src: /src/core/cf-agent/verify_packages.c:2063,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_packages.c:2067,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2069,1
    - Dst: ComparePackages
      Src: /src/core/cf-agent/verify_packages.c:2074,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2077,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2083,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 8
    argNames:
    - ctx
    - n
    - v
    - a
    - attr
    - pp
    - mode
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - Attributes*
    - Promise*
    - char*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 2085
      start: 2043
    functionDepth: 9
    functionLinenumber: 2043
    functionLinenumberEnd: 2085
    functionName: PatchMatch
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - ComparePackages
    - assert
    - PackageVersionComparatorToString
    - FullTextMatch
    - Log
    - strcmp
    linkageType: ''
    returnType: VersionCmpResult
    signature: "VersionCmpResult PatchMatch(EvalContext *ctx,\n                                   const
      char *n, const char *v, const char *a,\n                                   const
      Attributes *attr, const Promise *pp,\n                                   const
      char* mode,\n                                   PromiseResult *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2118,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:2125,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2131,1
    - Dst: ComparePackages
      Src: /src/core/cf-agent/verify_packages.c:2135,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2139,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 8
    argNames:
    - ctx
    - n
    - v
    - a
    - attr
    - pp
    - mode
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - Attributes*
    - Promise*
    - char*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 2117
        line_start: 2117
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 2146
      start: 2107
    functionDepth: 9
    functionLinenumber: 2107
    functionLinenumberEnd: 2146
    functionName: PackageMatch
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - assert
    - Log
    - strcmp
    - ComparePackages
    linkageType: ''
    returnType: VersionCmpResult
    signature: "VersionCmpResult PackageMatch(EvalContext *ctx,\n                                     const
      char *n, const char *v, const char *a,\n                                     const
      Attributes *attr,\n                                     const Promise *pp,\n
      \                                    const char* mode,\n                                     PromiseResult
      *result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2169,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2170,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2174,1
    - Dst: PackageAction2String
      Src: /src/core/cf-agent/verify_packages.c:2175,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2182,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2187,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:2188,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2196,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2201,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:2202,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2218,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:2219,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - a
    - pp
    - matches
    - installed
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - int
    - int
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 2168
        line_start: 2168
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (pp != NULL)
      pos:
        line_end: 2169
        line_start: 2169
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 2226
      start: 2167
    functionDepth: 8
    functionLinenumber: 2167
    functionLinenumberEnd: 2226
    functionName: WillSchedulePackageOperation
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - assert
    - PackageAction2String
    - Log
    - cfPS_HELPER_1ARG
    linkageType: ''
    returnType: bool
    signature: bool WillSchedulePackageOperation(EvalContext *ctx, const Attributes
      *a, const Promise *pp, int matches, int installed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2252,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2253,1
    - Dst: PackageMatch
      Src: /src/core/cf-agent/verify_packages.c:2261,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2262,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:2267,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2268,1
    - Dst: PackageMatch
      Src: /src/core/cf-agent/verify_packages.c:2272,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2273,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:2278,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2279,1
    - Dst: WillSchedulePackageOperation
      Src: /src/core/cf-agent/verify_packages.c:2283,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2285,1
    - Dst: SchedulePackageOp
      Src: /src/core/cf-agent/verify_packages.c:2286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 7
    argNames:
    - ctx
    - a
    - pp
    - name
    - version
    - arch
    - no_version
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - char*
    - char*
    - char*
    - bool
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 2251
        line_start: 2251
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (pp != NULL)
      pos:
        line_end: 2252
        line_start: 2252
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 2290
      start: 2249
    functionDepth: 12
    functionLinenumber: 2249
    functionLinenumberEnd: 2290
    functionName: CheckPackageState
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - SchedulePackageOp
    - PromiseResultUpdate_HELPER
    - WillSchedulePackageOperation
    - assert
    - PackageMatch
    - Log
    - cfPS_HELPER_0ARG
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult CheckPackageState(EvalContext *ctx, const Attributes
      *a, const Promise *pp, const char *name, const char *version,\n                                       const
      char *arch, bool no_version)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2329,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2330,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2349,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2350,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2351,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:2352,1
    - Dst: PatchMatch
      Src: /src/core/cf-agent/verify_packages.c:2354,1
    - Dst: PatchMatch
      Src: /src/core/cf-agent/verify_packages.c:2355,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:2359,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2360,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2373,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:2373,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2374,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:2374,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2375,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:2375,1
    - Dst: PatchMatch
      Src: /src/core/cf-agent/verify_packages.c:2376,1
    - Dst: PatchMatch
      Src: /src/core/cf-agent/verify_packages.c:2377,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:2381,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2382,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2393,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2394,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2395,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:2396,1
    - Dst: PatchMatch
      Src: /src/core/cf-agent/verify_packages.c:2398,1
    - Dst: PatchMatch
      Src: /src/core/cf-agent/verify_packages.c:2399,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:2403,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2404,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2415,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2416,1
    - Dst: SchedulePackageOp
      Src: /src/core/cf-agent/verify_packages.c:2418,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 3
    argNames:
    - ctx
    - a
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 2329
        line_start: 2329
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (a != NULL)
      pos:
        line_end: 2328
        line_start: 2328
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 2421
      start: 2327
    functionDepth: 12
    functionLinenumber: 2327
    functionLinenumberEnd: 2421
    functionName: VerifyPromisedPatch
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - SchedulePackageOp
    - PromiseResultUpdate_HELPER
    - ExtractFirstReference
    - assert
    - PatchMatch
    - Log
    - RlistScalarValue
    - cfPS_HELPER_0ARG
    - strlcpy
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyPromisedPatch(EvalContext *ctx, const Attributes
      *a, const Promise *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2448,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:2449,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2458,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2462,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2463,1
    - Dst: CheckPackageState
      Src: /src/core/cf-agent/verify_packages.c:2463,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2469,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:2469,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2470,1
    - Dst: CheckPackageState
      Src: /src/core/cf-agent/verify_packages.c:2471,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:2472,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2479,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2484,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:2484,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2485,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:2485,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2486,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:2486,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2490,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:2493,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:2495,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2498,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2499,1
    - Dst: CheckPackageState
      Src: /src/core/cf-agent/verify_packages.c:2499,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2503,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2507,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2508,1
    - Dst: CheckPackageState
      Src: /src/core/cf-agent/verify_packages.c:2508,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2514,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:2514,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:2515,1
    - Dst: CheckPackageState
      Src: /src/core/cf-agent/verify_packages.c:2515,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:2515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - a
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 2447
        line_start: 2447
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (pp != NULL)
      pos:
        line_end: 2448
        line_start: 2448
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 2521
      start: 2446
    functionDepth: 13
    functionLinenumber: 2446
    functionLinenumberEnd: 2521
    functionName: VerifyPromisedPackage
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - PromiseResultUpdate_HELPER
    - CheckPackageState
    - ExtractFirstReference
    - assert
    - Log
    - strcmp
    - RlistScalarValue
    - strlcpy
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyPromisedPackage(EvalContext *ctx, const Attributes
      *a, const Promise *pp)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: GetPackageAttributes
      Src: /src/core/cf-agent/verify_packages.c:2583,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/verify_packages.c:2584,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2590,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:2594,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:2595,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2599,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/verify_packages.c:2600,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2605,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:2609,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:2610,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2614,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/verify_packages.c:2615,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2620,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:2624,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:2625,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2629,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/verify_packages.c:2630,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2635,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:2639,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:2640,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/verify_packages.c:2644,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:2650,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:2651,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:2656,1
    - Dst: BufferSize
      Src: /src/core/cf-agent/verify_packages.c:2656,1
    - Dst: BufferTrimToMaxLength
      Src: /src/core/cf-agent/verify_packages.c:2658,1
    - Dst: BufferSize
      Src: /src/core/cf-agent/verify_packages.c:2658,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2659,1
    - Dst: EvalContextStackPushPromiseFrame
      Src: /src/core/cf-agent/verify_packages.c:2662,1
    - Dst: EvalContextStackPushPromiseIterationFrame
      Src: /src/core/cf-agent/verify_packages.c:2663,1
    - Dst: ExecPackageCommand
      Src: /src/core/cf-agent/verify_packages.c:2665,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:2665,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2667,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2671,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2674,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2676,1
    - Dst: EvalContextLogPromiseIterationOutcome
      Src: /src/core/cf-agent/verify_packages.c:2678,1
    - Dst: BufferAppendChar
      Src: /src/core/cf-agent/verify_packages.c:2682,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2684,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:2684,1
    - Dst: GetPackageAttributes
      Src: /src/core/cf-agent/verify_packages.c:2692,1
    - Dst: BufferSize
      Src: /src/core/cf-agent/verify_packages.c:2694,1
    - Dst: PrefixLocalRepository
      Src: /src/core/cf-agent/verify_packages.c:2698,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/verify_packages.c:2701,1
    - Dst: EscapeCharCopy
      Src: /src/core/cf-agent/verify_packages.c:2715,1
    - Dst: BufferAppendF
      Src: /src/core/cf-agent/verify_packages.c:2716,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:2717,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/verify_packages.c:2721,1
    - Dst: EvalContextStackPushPromiseFrame
      Src: /src/core/cf-agent/verify_packages.c:2726,1
    - Dst: EvalContextStackPushPromiseIterationFrame
      Src: /src/core/cf-agent/verify_packages.c:2727,1
    - Dst: ExecPackageCommand
      Src: /src/core/cf-agent/verify_packages.c:2729,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:2729,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_packages.c:2731,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2733,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2737,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2743,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2746,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2748,1
    - Dst: EvalContextLogPromiseIterationOutcome
      Src: /src/core/cf-agent/verify_packages.c:2750,1
    - Dst: BufferTrimToMaxLength
      Src: /src/core/cf-agent/verify_packages.c:2752,1
    - Dst: PrefixLocalRepository
      Src: /src/core/cf-agent/verify_packages.c:2765,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/verify_packages.c:2768,1
    - Dst: EscapeCharCopy
      Src: /src/core/cf-agent/verify_packages.c:2782,1
    - Dst: BufferAppendF
      Src: /src/core/cf-agent/verify_packages.c:2783,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:2784,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/verify_packages.c:2788,1
    - Dst: BufferAppendChar
      Src: /src/core/cf-agent/verify_packages.c:2791,1
    - Dst: EvalContextStackPushPromiseFrame
      Src: /src/core/cf-agent/verify_packages.c:2796,1
    - Dst: EvalContextStackPushPromiseIterationFrame
      Src: /src/core/cf-agent/verify_packages.c:2797,1
    - Dst: ExecPackageCommand
      Src: /src/core/cf-agent/verify_packages.c:2799,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_packages.c:2799,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_packages.c:2803,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2805,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2809,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2815,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2820,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2822,1
    - Dst: EvalContextLogPromiseIterationOutcome
      Src: /src/core/cf-agent/verify_packages.c:2823,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_packages.c:2827,1
    - Dst: InvalidateSoftwareCache
      Src: /src/core/cf-agent/verify_packages.c:2833,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 148
    argCount: 3
    argNames:
    - ctx
    - schedule
    - action
    argTypes:
    - EvalContext*
    - PackageManager*
    - PackageAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2837
      start: 2566
    functionDepth: 11
    functionLinenumber: 2566
    functionLinenumberEnd: 2837
    functionName: ExecuteSchedule
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - EvalContextStackPopFrame
    - BufferTrimToMaxLength
    - ExecPackageCommand
    - Log
    - EscapeCharCopy
    - BufferNew
    - free
    - StringEqual
    - BufferData
    - InvalidateSoftwareCache
    - BufferAppendChar
    - BufferSize
    - BufferAppendF
    - EvalContextStackPushPromiseFrame
    - EvalContextLogPromiseIterationOutcome
    - GetPackageAttributes
    - EvalContextStackPushPromiseIterationFrame
    - ProgrammingError
    - PrefixLocalRepository
    - BufferAppendString
    linkageType: ''
    returnType: bool
    signature: bool ExecuteSchedule(EvalContext *ctx, const PackageManager *schedule,
      PackageAction action)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/verify_packages.c:2891,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_packages.c:2891,1
    - Dst: GetPackageAttributes
      Src: /src/core/cf-agent/verify_packages.c:2913,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2917,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:2921,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_packages.c:2925,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_packages.c:2925,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_packages.c:2926,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:2930,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_packages.c:2936,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_packages.c:2938,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2939,1
    - Dst: EvalContextStackPushPromiseFrame
      Src: /src/core/cf-agent/verify_packages.c:2942,1
    - Dst: EvalContextStackPushPromiseIterationFrame
      Src: /src/core/cf-agent/verify_packages.c:2943,1
    - Dst: ExecPackageCommand
      Src: /src/core/cf-agent/verify_packages.c:2945,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2947,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2951,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2954,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2956,1
    - Dst: EvalContextLogPromiseIterationOutcome
      Src: /src/core/cf-agent/verify_packages.c:2957,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_packages.c:2961,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2963,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_packages.c:2970,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_packages.c:2972,1
    - Dst: EvalContextStackPushPromiseFrame
      Src: /src/core/cf-agent/verify_packages.c:2975,1
    - Dst: EvalContextStackPushPromiseIterationFrame
      Src: /src/core/cf-agent/verify_packages.c:2976,1
    - Dst: ExecPackageCommand
      Src: /src/core/cf-agent/verify_packages.c:2978,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_packages.c:2980,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2982,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2986,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:2992,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2995,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:2997,1
    - Dst: EvalContextLogPromiseIterationOutcome
      Src: /src/core/cf-agent/verify_packages.c:2998,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_packages.c:3010,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_packages.c:3011,1
    - Dst: EvalContextStackPushPromiseFrame
      Src: /src/core/cf-agent/verify_packages.c:3016,1
    - Dst: EvalContextStackPushPromiseIterationFrame
      Src: /src/core/cf-agent/verify_packages.c:3017,1
    - Dst: ExecPackageCommand
      Src: /src/core/cf-agent/verify_packages.c:3019,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_packages.c:3023,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3025,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3029,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3035,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:3040,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_packages.c:3042,1
    - Dst: EvalContextLogPromiseIterationOutcome
      Src: /src/core/cf-agent/verify_packages.c:3043,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3054,1
    - Dst: InvalidateSoftwareCache
      Src: /src/core/cf-agent/verify_packages.c:3059,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 106
    argCount: 3
    argNames:
    - ctx
    - schedule
    - action
    argTypes:
    - EvalContext*
    - PackageManager*
    - PackageAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 2873
    functionDepth: 11
    functionLinenumber: 2873
    functionLinenumberEnd: 3062
    functionName: ExecutePatch
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - GetPackageAttributes
    - strlen
    - EvalContextStackPushPromiseIterationFrame
    - EvalContextStackPopFrame
    - InvalidateSoftwareCache
    - ExecPackageCommand
    - xmalloc
    - Log
    - strcat
    - free
    - ProgrammingError
    - EvalContextStackPushPromiseFrame
    - strcpy
    - StringEqual
    - EvalContextLogPromiseIterationOutcome
    linkageType: ''
    returnType: bool
    signature: bool ExecutePatch(EvalContext *ctx, const PackageManager *schedule,
      PackageAction action)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3080,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3084,1
    - Dst: ExecuteSchedule
      Src: /src/core/cf-agent/verify_packages.c:3085,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3087,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3091,1
    - Dst: ExecuteSchedule
      Src: /src/core/cf-agent/verify_packages.c:3092,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3097,1
    - Dst: ExecuteSchedule
      Src: /src/core/cf-agent/verify_packages.c:3098,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3103,1
    - Dst: ExecutePatch
      Src: /src/core/cf-agent/verify_packages.c:3104,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3109,1
    - Dst: ExecuteSchedule
      Src: /src/core/cf-agent/verify_packages.c:3110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ctx
    - schedule
    argTypes:
    - EvalContext*
    - PackageManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3078
    functionDepth: 12
    functionLinenumber: 3078
    functionLinenumberEnd: 3114
    functionName: ExecutePackageSchedule
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - ExecutePatch
    - Log
    - ExecuteSchedule
    linkageType: ''
    returnType: void
    signature: void ExecutePackageSchedule(EvalContext *ctx, PackageManager *schedule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExecutePackageSchedule
      Src: /src/core/cf-agent/verify_packages.c:3126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3122
    functionDepth: 13
    functionLinenumber: 3122
    functionLinenumberEnd: 3128
    functionName: ExecuteScheduledPackages
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - ExecutePackageSchedule
    linkageType: ''
    returnType: void
    signature: void ExecuteScheduledPackages(EvalContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeletePackageManagers
      Src: /src/core/cf-agent/verify_packages.c:3140,1
    - Dst: DeletePackageManagers
      Src: /src/core/cf-agent/verify_packages.c:3142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3138
    functionDepth: 1
    functionLinenumber: 3138
    functionLinenumberEnd: 3144
    functionName: CleanScheduledPackages
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - DeletePackageManagers
    linkageType: ''
    returnType: void
    signature: void CleanScheduledPackages(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3154,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3158,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3164,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/verify_packages.c:3170,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_packages.c:3172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - lists
    - mgr
    - pa
    - policy
    argTypes:
    - PackageManager**
    - char*
    - PackageAction
    - PackageActionPolicy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3178
      start: 3148
    functionDepth: 8
    functionLinenumber: 3148
    functionLinenumberEnd: 3178
    functionName: GetPackageManager
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 3
    functionsReached:
    - xcalloc
    - Log
    - strcmp
    - xstrdup
    linkageType: ''
    returnType: PackageManager
    signature: "PackageManager *GetPackageManager(PackageManager **lists, char *mgr,\n
      \                                        PackageAction pa,\n                                         PackageActionPolicy
      policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3185,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3186,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3187,1
    - Dst: PromiseDestroy
      Src: /src/core/cf-agent/verify_packages.c:3188,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PackageItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3192
      start: 3180
    functionDepth: 3
    functionLinenumber: 3180
    functionLinenumberEnd: 3192
    functionName: DeletePackageItems
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - free
    - PromiseDestroy
    linkageType: ''
    returnType: void
    signature: void DeletePackageItems(PackageItem * pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeletePackageItems
      Src: /src/core/cf-agent/verify_packages.c:3199,1
    - Dst: DeletePackageItems
      Src: /src/core/cf-agent/verify_packages.c:3200,1
    - Dst: DeletePackageItems
      Src: /src/core/cf-agent/verify_packages.c:3201,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3202,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - np
    argTypes:
    - PackageManager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3206
      start: 3194
    functionDepth: 4
    functionLinenumber: 3194
    functionLinenumberEnd: 3206
    functionName: DeletePackageManagers
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - free
    - DeletePackageItems
    linkageType: ''
    returnType: void
    signature: void DeletePackageManagers(PackageManager *np)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3216,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_packages.c:3216,1
    - Dst: AddSlash
      Src: /src/core/cf-agent/verify_packages.c:3218,1
    - Dst: strlcat
      Src: /src/core/cf-agent/verify_packages.c:3220,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_packages.c:3221,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_packages.c:3223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - repositories
    - package
    argTypes:
    - Rlist*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3208
    functionDepth: 2
    functionLinenumber: 3208
    functionLinenumberEnd: 3230
    functionName: PrefixLocalRepository
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 2
    functionsReached:
    - stat
    - strlcat
    - snprintf
    - RlistScalarValue
    - AddSlash
    - strlcpy
    linkageType: ''
    returnType: char
    signature: char *PrefixLocalRepository(const Rlist *repositories, const char *package)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:3235,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:3236,1
    - Dst: IsExecutable
      Src: /src/core/cf-agent/verify_packages.c:3243,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/verify_packages.c:3243,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:3245,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:3246,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3259,1
    - Dst: cf_popen_sh
      Src: /src/core/cf-agent/verify_packages.c:3260,1
    - Dst: cfPS_HELPER_2ARG
      Src: /src/core/cf-agent/verify_packages.c:3262,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:3263,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:3264,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/verify_packages.c:3270,1
    - Dst: cfPS_HELPER_2ARG
      Src: /src/core/cf-agent/verify_packages.c:3272,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:3273,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:3274,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3279,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_packages.c:3292,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/verify_packages.c:3296,1
    - Dst: feof
      Src: /src/core/cf-agent/verify_packages.c:3299,1
    - Dst: cfPS_HELPER_2ARG
      Src: /src/core/cf-agent/verify_packages.c:3301,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_packages.c:3302,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:3303,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_packages.c:3304,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3305,1
    - Dst: memcpy
      Src: /src/core/cf-agent/verify_packages.c:3316,1
    - Dst: StringReplace
      Src: /src/core/cf-agent/verify_packages.c:3319,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_packages.c:3322,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3327,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_packages.c:3333,1
    - Dst: cfPS_HELPER_2ARG
      Src: /src/core/cf-agent/verify_packages.c:3335,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:3336,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3343,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_packages.c:3345,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:3351,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:3352,1
    - Dst: cfPS_HELPER_1ARG
      Src: /src/core/cf-agent/verify_packages.c:3357,1
    - Dst: PromiseResultUpdate_HELPER
      Src: /src/core/cf-agent/verify_packages.c:3358,1
    - Dst: cfPS_HELPER_0ARG
      Src: /src/core/cf-agent/verify_packages.c:3365,1
    - Dst: REPORT_THIS_PROMISE
      Src: /src/core/cf-agent/verify_packages.c:3371,1
    - Dst: VerifyCommandRetcode
      Src: /src/core/cf-agent/verify_packages.c:3373,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 82
    argCount: 7
    argNames:
    - ctx
    - command
    - verify
    - setCmdClasses
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - int
    - int
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 3234
        line_start: 3234
        source_file: /src/core/cf-agent/verify_packages.c
    - condition: (pp != NULL)
      pos:
        line_end: 3235
        line_start: 3235
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 3378
      start: 3232
    functionDepth: 11
    functionLinenumber: 3232
    functionLinenumberEnd: 3378
    functionName: ExecPackageCommand
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 3
    functionsReached:
    - cfPS_HELPER_2ARG
    - CommandArg0
    - feof
    - FullTextMatch
    - Log
    - free
    - PromiseResultUpdate_HELPER
    - cf_popen
    - cf_pclose
    - cfPS_HELPER_1ARG
    - CfReadLine
    - REPORT_THIS_PROMISE
    - assert
    - cf_popen_sh
    - xmalloc
    - StringReplace
    - GetErrorStr
    - memcpy
    - IsExecutable
    - VerifyCommandRetcode
    - ProgrammingError
    - cfPS_HELPER_0ARG
    linkageType: ''
    returnType: bool
    signature: "bool ExecPackageCommand(EvalContext *ctx, const char *command, int
      verify, int setCmdClasses, const Attributes *a,\n                        const
      Promise *pp, PromiseResult *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3393,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_packages.c:3397,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_packages.c:3400,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_packages.c:3401,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_packages.c:3402,1
    - Dst: DeRefCopyPromise
      Src: /src/core/cf-agent/verify_packages.c:3407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - ctx
    - list
    - name
    - version
    - arch
    - pp
    argTypes:
    - EvalContext*
    - PackageItem**
    - char*
    - char*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3409
      start: 3380
    functionDepth: 10
    functionLinenumber: 3380
    functionLinenumberEnd: 3409
    functionName: PrependPackageItem
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 3
    functionsReached:
    - DeRefCopyPromise
    - xmalloc
    - Log
    - xstrdup
    linkageType: ''
    returnType: bool
    signature: "bool PrependPackageItem(\n    EvalContext *ctx,\n    PackageItem **
      list,\n    const char *name,\n    const char *version,\n    const char *arch,\n
      \   const Promise *pp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3421,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3422,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - list
    - name
    - version
    - arch
    argTypes:
    - PackageItem*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3430
      start: 3411
    functionDepth: 0
    functionLinenumber: 3411
    functionLinenumberEnd: 3430
    functionName: PackageInItemList
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool PackageInItemList(\n    PackageItem * list, char *name, char
      *version, char *arch)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:3441,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3447,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:3447,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:3448,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3449,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:3449,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:3450,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3454,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:3454,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:3455,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3459,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3462,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3462,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3462,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3467,1
    - Dst: PackageInItemList
      Src: /src/core/cf-agent/verify_packages.c:3469,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3471,1
    - Dst: PrependPackageItem
      Src: /src/core/cf-agent/verify_packages.c:3476,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 7
    argNames:
    - ctx
    - list
    - item
    - chklist
    - default_arch
    - a
    - pp
    argTypes:
    - EvalContext*
    - PackageItem**
    - char*
    - PackageItem*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 3440
        line_start: 3440
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 3477
      start: 3432
    functionDepth: 11
    functionLinenumber: 3432
    functionLinenumberEnd: 3477
    functionName: PrependPatchItem
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - PackageInItemList
    - ExtractFirstReference
    - PrependPackageItem
    - assert
    - sscanf
    - Log
    - strcmp
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool PrependPatchItem(\n    EvalContext *ctx,\n    PackageItem **
      list,\n    char *item,\n    PackageItem * chklist,\n    const char *default_arch,\n
      \   const Attributes *a,\n    const Promise *pp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:3488,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3496,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3496,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3501,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3501,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3503,1
    - Dst: PrependPackageItem
      Src: /src/core/cf-agent/verify_packages.c:3504,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_packages.c:3507,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_packages.c:3508,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_packages.c:3509,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_packages.c:3512,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3514,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:3514,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:3515,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_packages.c:3518,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3520,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:3520,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:3521,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/verify_packages.c:3524,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3528,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:3528,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:3529,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 7
    argNames:
    - ctx
    - list
    - item
    - reset
    - default_arch
    - a
    - pp
    argTypes:
    - EvalContext*
    - PackageItem**
    - char*
    - int
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 3487
        line_start: 3487
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 3534
      start: 3479
    functionDepth: 11
    functionLinenumber: 3479
    functionLinenumberEnd: 3534
    functionName: PrependMultiLinePackageItem
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - PrependPackageItem
    - ExtractFirstReference
    - assert
    - sscanf
    - FullTextMatch
    - Log
    - strcmp
    - strcpy
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool PrependMultiLinePackageItem(\n    EvalContext *ctx,\n    PackageItem
      ** list,\n    char *item,\n    int reset,\n    const char *default_arch,\n    const
      Attributes *a,\n    const Promise *pp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_packages.c:3544,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3550,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:3550,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:3551,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3553,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:3553,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:3554,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3558,1
    - Dst: ExtractFirstReference
      Src: /src/core/cf-agent/verify_packages.c:3558,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_packages.c:3559,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_packages.c:3563,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3566,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3566,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_packages.c:3566,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3571,1
    - Dst: PrependPackageItem
      Src: /src/core/cf-agent/verify_packages.c:3573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - ctx
    - list
    - item
    - default_arch
    - a
    - pp
    argTypes:
    - EvalContext*
    - PackageItem**
    - char*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 3543
        line_start: 3543
        source_file: /src/core/cf-agent/verify_packages.c
    constantsTouched: []
    func_position:
      end: 3574
      start: 3536
    functionDepth: 11
    functionLinenumber: 3536
    functionLinenumberEnd: 3574
    functionName: PrependListPackageItem
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - ExtractFirstReference
    - PrependPackageItem
    - assert
    - sscanf
    - Log
    - strcmp
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool PrependListPackageItem(\n    EvalContext *ctx,\n    PackageItem
      **list,\n    char *item,\n    const char *default_arch,\n    const Attributes
      *a,\n    const Promise *pp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_packages.c:3580,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3583,1
    - Dst: cf_popen_sh
      Src: /src/core/cf-agent/verify_packages.c:3585,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_packages.c:3592,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/verify_packages.c:3594,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_packages.c:3597,1
    - Dst: free
      Src: /src/core/cf-agent/verify_packages.c:3598,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_packages.c:3602,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_packages.c:3604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3606
      start: 3576
    functionDepth: 11
    functionLinenumber: 3576
    functionLinenumberEnd: 3606
    functionName: GetDefaultArch
    functionSourceFile: /src/core/cf-agent/verify_packages.c
    functionUses: 1
    functionsReached:
    - cf_popen_sh
    - xmalloc
    - Log
    - cf_pclose
    - xstrdup
    - free
    - CfReadLine
    linkageType: ''
    returnType: char
    signature: char *GetDefaultArch(const char *command)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:78,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:81,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:83,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:93,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:94,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:100,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:102,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:108,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:109,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:115,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:116,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:122,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:124,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:130,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:133,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:139,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:140,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:146,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:147,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:153,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:156,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:161,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:162,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:168,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:170,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:176,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:177,1
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_files.c:181,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:183,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_files.c:184,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 72
    argCount: 3
    argNames:
    - path
    - a
    - pp
    argTypes:
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 189
      start: 76
    functionDepth: 9
    functionLinenumber: 76
    functionLinenumberEnd: 189
    functionName: FileSanityChecks
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - assert
    - strncmp
    - Log
    - PromiseRef
    linkageType: ''
    returnType: bool
    signature: bool FileSanityChecks(char *path, const Attributes *a, const Promise
      *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:193,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 7
    argCount: 1
    argNames:
    - attr
    argTypes:
    - Attributes*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 208
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 208
    functionName: AttrHasNoAction
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool AttrHasNoAction(const Attributes *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/cf-agent/verify_files.c:219,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/verify_files.c:220,1
    - Dst: strdup
      Src: /src/core/cf-agent/verify_files.c:221,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_files.c:221,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - ns
    - scope
    - source
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 11
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: ExpandThisPromiserScalar
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - BufferData
    - BufferDestroy
    - ExpandScalar
    - BufferNew
    - strdup
    linkageType: ''
    returnType: char
    signature: char *ExpandThisPromiserScalar(EvalContext *ctx, const char *ns, const
      char *scope, const char *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_files.c:231,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_files.c:232,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:236,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:237,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:238,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:239,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:240,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:242,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:243,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:244,1
    - Dst: ExpandThisPromiserScalar
      Src: /src/core/cf-agent/verify_files.c:246,1
    - Dst: ExpandThisPromiserScalar
      Src: /src/core/cf-agent/verify_files.c:247,1
    - Dst: ExpandThisPromiserScalar
      Src: /src/core/cf-agent/verify_files.c:248,1
    - Dst: ExpandThisPromiserScalar
      Src: /src/core/cf-agent/verify_files.c:249,1
    - Dst: ExpandThisPromiserScalar
      Src: /src/core/cf-agent/verify_files.c:250,1
    - Dst: ExpandThisPromiserScalar
      Src: /src/core/cf-agent/verify_files.c:253,1
    - Dst: ExpandThisPromiserScalar
      Src: /src/core/cf-agent/verify_files.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - pp
    - attr
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 229
    functionDepth: 12
    functionLinenumber: 229
    functionLinenumberEnd: 257
    functionName: GetExpandedAttributes
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 1
    functionsReached:
    - ExpandList
    - ExpandThisPromiserScalar
    - PromiseGetBundle
    linkageType: ''
    returnType: Attributes
    signature: Attributes GetExpandedAttributes(EvalContext *ctx, const Promise *pp,
      const Attributes *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:261,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:262,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:263,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:264,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:265,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:266,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:267,1
    - Dst: DESTROY_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:268,1
    - Dst: FREE_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:270,1
    - Dst: FREE_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:271,1
    - Dst: FREE_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:272,1
    - Dst: FREE_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:273,1
    - Dst: FREE_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:274,1
    - Dst: FREE_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:276,1
    - Dst: FREE_AND_NULL
      Src: /src/core/cf-agent/verify_files.c:277,1
    - Dst: ClearFilesAttributes
      Src: /src/core/cf-agent/verify_files.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 280
    functionName: ClearExpandedAttributes
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 1
    functionsReached:
    - DESTROY_AND_NULL
    - FREE_AND_NULL
    - ClearFilesAttributes
    linkageType: ''
    returnType: void
    signature: void ClearExpandedAttributes(Attributes *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:284,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/verify_files.c:285,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/verify_files.c:288,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_files.c:289,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_files.c:290,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_files.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 297
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 297
    functionName: CreateFalseWasSpecified
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - assert
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool CreateFalseWasSpecified(const Promise *pp)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: GetFilesAttributes
      Src: /src/core/cf-agent/verify_files.c:306,1
    - Dst: FileSanityChecks
      Src: /src/core/cf-agent/verify_files.c:308,1
    - Dst: ClearFilesAttributes
      Src: /src/core/cf-agent/verify_files.c:310,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_files.c:314,1
    - Dst: ClearFilesAttributes
      Src: /src/core/cf-agent/verify_files.c:317,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/cf-agent/verify_files.c:321,1
    - Dst: GetExpandedAttributes
      Src: /src/core/cf-agent/verify_files.c:322,1
    - Dst: PromiseGetConstraint
      Src: /src/core/cf-agent/verify_files.c:331,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_files.c:335,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:337,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files.c:341,1
    - Dst: PrepareChangesChroot
      Src: /src/core/cf-agent/verify_files.c:343,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files.c:347,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files.c:349,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files.c:349,1
    - Dst: FSAttrsGetImmutableFlag
      Src: /src/core/cf-agent/verify_files.c:354,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:357,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/cf-agent/verify_files.c:359,1
    - Dst: FSAttrsUpdateImmutableFlag
      Src: /src/core/cf-agent/verify_files.c:368,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files.c:372,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:375,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:378,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/cf-agent/verify_files.c:380,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:381,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:388,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/cf-agent/verify_files.c:390,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:395,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/cf-agent/verify_files.c:397,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files.c:403,1
    - Dst: EvalContextOverrideImmutableSet
      Src: /src/core/cf-agent/verify_files.c:412,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files.c:414,1
    - Dst: CfCreateFile
      Src: /src/core/cf-agent/verify_files.c:418,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files.c:424,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files.c:434,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files.c:442,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:448,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files.c:451,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_files.c:453,1
    - Dst: ReadLastNode
      Src: /src/core/cf-agent/verify_files.c:453,1
    - Dst: ChopLastNode
      Src: /src/core/cf-agent/verify_files.c:456,1
    - Dst: ChopLastNode
      Src: /src/core/cf-agent/verify_files.c:457,1
    - Dst: ChopLastNode
      Src: /src/core/cf-agent/verify_files.c:460,1
    - Dst: safe_chdir
      Src: /src/core/cf-agent/verify_files.c:461,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_files.c:461,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files.c:465,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files.c:466,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:469,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:474,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:478,1
    - Dst: SelectLeaf
      Src: /src/core/cf-agent/verify_files.c:487,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files.c:488,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files.c:493,1
    - Dst: CfCreateFile
      Src: /src/core/cf-agent/verify_files.c:497,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files.c:513,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:515,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files.c:526,1
    - Dst: PrepareChangesChroot
      Src: /src/core/cf-agent/verify_files.c:529,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files.c:530,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_files.c:533,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_files.c:535,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:538,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files.c:553,1
    - Dst: DepthSearch
      Src: /src/core/cf-agent/verify_files.c:555,1
    - Dst: DepthSearch
      Src: /src/core/cf-agent/verify_files.c:566,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:574,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:583,1
    - Dst: ScheduleCopyOperation
      Src: /src/core/cf-agent/verify_files.c:583,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:590,1
    - Dst: ScheduleLinkChildrenOperation
      Src: /src/core/cf-agent/verify_files.c:590,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:594,1
    - Dst: ScheduleLinkOperation
      Src: /src/core/cf-agent/verify_files.c:594,1
    - Dst: HandleFileObstruction
      Src: /src/core/cf-agent/verify_files.c:601,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files.c:606,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:618,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:619,1
    - Dst: CreateFalseWasSpecified
      Src: /src/core/cf-agent/verify_files.c:625,1
    - Dst: CfCreateFile
      Src: /src/core/cf-agent/verify_files.c:627,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:632,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:638,1
    - Dst: WriteContentFromString
      Src: /src/core/cf-agent/verify_files.c:641,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:642,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_files.c:652,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_files.c:653,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_files.c:654,1
    - Dst: CreateFalseWasSpecified
      Src: /src/core/cf-agent/verify_files.c:655,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:657,1
    - Dst: ScheduleEditOperation
      Src: /src/core/cf-agent/verify_files.c:657,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:665,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/verify_files.c:677,1
    - Dst: FSAttrsUpdateImmutableFlag
      Src: /src/core/cf-agent/verify_files.c:683,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files.c:687,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:693,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/cf-agent/verify_files.c:695,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:702,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/cf-agent/verify_files.c:704,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:709,1
    - Dst: FSAttrsErrorCodeToString
      Src: /src/core/cf-agent/verify_files.c:711,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_files.c:719,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/verify_files.c:721,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_files.c:721,1
    - Dst: SelectLeaf
      Src: /src/core/cf-agent/verify_files.c:722,1
    - Dst: VerifyFileLeaf
      Src: /src/core/cf-agent/verify_files.c:724,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:729,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:730,1
    - Dst: EvalContextOverrideImmutableSet
      Src: /src/core/cf-agent/verify_files.c:735,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files.c:737,1
    - Dst: AttrHasNoAction
      Src: /src/core/cf-agent/verify_files.c:738,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:740,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_files.c:748,1
    - Dst: RecordFileEvaluatedInChroot
      Src: /src/core/cf-agent/verify_files.c:753,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_files.c:758,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files.c:761,1
    - Dst: RecordFileChangedInChroot
      Src: /src/core/cf-agent/verify_files.c:766,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_files.c:771,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_files.c:775,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_files.c:781,1
    - Dst: ClearExpandedAttributes
      Src: /src/core/cf-agent/verify_files.c:783,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/cf-agent/verify_files.c:784,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 248
    argCount: 3
    argNames:
    - ctx
    - path
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 299
    functionDepth: 17
    functionLinenumber: 299
    functionLinenumberEnd: 787
    functionName: VerifyFilePromise
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - ClearFilesAttributes
    - CfCreateFile
    - AcquireLock
    - Log
    - S_ISREG
    - HandleFileObstruction
    - free
    - WriteContentFromString
    - strlcpy
    - StringEqual
    - ScheduleLinkChildrenOperation
    - EvalContextVariableRemoveSpecial
    - RecordChange
    - snprintf
    - PromiseGetConstraint
    - CreateFalseWasSpecified
    - SelectLeaf
    - YieldCurrentLock
    - EvalContextVariablePutSpecial
    - RecordFileChangedInChroot
    - AttrHasNoAction
    - lstat
    - xstrdup
    - PrepareChangesChroot
    - RecordNoChange
    - RecordFileEvaluatedInChroot
    - safe_chdir
    - ReadLastNode
    - EvalContextOverrideImmutableSet
    - S_ISLNK
    - FSAttrsErrorCodeToString
    - ScheduleEditOperation
    - S_ISDIR
    - DepthSearch
    - VerifyFileLeaf
    - FSAttrsUpdateImmutableFlag
    - FSAttrsGetImmutableFlag
    - ClearExpandedAttributes
    - ScheduleLinkOperation
    - ChopLastNode
    - GetErrorStr
    - ChrootChanges
    - stat
    - GetFilesAttributes
    - cfPS
    - RecordFailure
    - FileSanityChecks
    - ScheduleCopyOperation
    - ToChangesChroot
    - ToChangesPath
    - PromiseResultUpdate
    - GetExpandedAttributes
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyFilePromise(EvalContext *ctx, char *path, const
      Promise *pp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:794,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:795,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:796,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/verify_files.c:799,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/verify_files.c:801,1
    - Dst: access
      Src: /src/core/cf-agent/verify_files.c:807,1
    - Dst: HashFile
      Src: /src/core/cf-agent/verify_files.c:809,1
    - Dst: FileNewLineMode
      Src: /src/core/cf-agent/verify_files.c:810,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_files.c:813,1
    - Dst: HashString
      Src: /src/core/cf-agent/verify_files.c:815,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_files.c:815,1
    - Dst: HashesMatch
      Src: /src/core/cf-agent/verify_files.c:818,1
    - Dst: EvalContextOverrideImmutableGet
      Src: /src/core/cf-agent/verify_files.c:820,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files.c:821,1
    - Dst: OverrideImmutableBegin
      Src: /src/core/cf-agent/verify_files.c:829,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:831,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:832,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/verify_files.c:835,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:838,1
    - Dst: OverrideImmutableCommit
      Src: /src/core/cf-agent/verify_files.c:839,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:840,1
    - Dst: FileWriter
      Src: /src/core/cf-agent/verify_files.c:845,1
    - Dst: WriterWriteLen
      Src: /src/core/cf-agent/verify_files.c:846,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files.c:848,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:852,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:856,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:860,1
    - Dst: WriterClose
      Src: /src/core/cf-agent/verify_files.c:862,1
    - Dst: OverrideImmutableCommit
      Src: /src/core/cf-agent/verify_files.c:864,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:866,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:867,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - path
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr->content != NULL)
      pos:
        line_end: 795
        line_start: 795
        source_file: /src/core/cf-agent/verify_files.c
    - condition: (path != NULL)
      pos:
        line_end: 793
        line_start: 793
        source_file: /src/core/cf-agent/verify_files.c
    - condition: (attr != NULL)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 872
      start: 791
    functionDepth: 12
    functionLinenumber: 791
    functionLinenumberEnd: 872
    functionName: WriteContentFromString
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 1
    functionsReached:
    - EvalContextOverrideImmutableGet
    - WriterWriteLen
    - HashesMatch
    - HashString
    - OverrideImmutableBegin
    - FileWriter
    - access
    - RecordChange
    - strlen
    - WriterClose
    - OverrideImmutableCommit
    - assert
    - FileNewLineMode
    - HashFile
    - ChrootChanges
    - RecordFailure
    - safe_fopen
    - ToChangesChroot
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult WriteContentFromString(EvalContext *ctx, const char
      *path, const Attributes *attr,\n                                            const
      Promise *pp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:884,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:885,1
    - Dst: PolicyNew
      Src: /src/core/cf-agent/verify_files.c:889,1
    - Dst: MakeTemporaryBundleFromTemplate
      Src: /src/core/cf-agent/verify_files.c:891,1
    - Dst: CfCreateFile
      Src: /src/core/cf-agent/verify_files.c:893,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:896,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:899,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/cf-agent/verify_files.c:904,1
    - Dst: BundleResolve
      Src: /src/core/cf-agent/verify_files.c:905,1
    - Dst: ScheduleEditLineOperations
      Src: /src/core/cf-agent/verify_files.c:907,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_files.c:909,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-agent/verify_files.c:917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - ctx
    - pp
    - bundle_args
    - attr
    - edcontext
    - file_exists
    - save_file
    argTypes:
    - EvalContext*
    - Promise*
    - Rlist*
    - Attributes*
    - EditContext*
    - bool
    - bool*
    assertStmts:
    - condition: (edcontext != NULL)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/core/cf-agent/verify_files.c
    - condition: (attr != NULL)
      pos:
        line_end: 884
        line_start: 884
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 920
      start: 876
    functionDepth: 17
    functionLinenumber: 876
    functionLinenumberEnd: 920
    functionName: RenderTemplateCFEngine
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - ScheduleEditLineOperations
    - EvalContextStackPushBundleFrame
    - PolicyNew
    - EvalContextStackPopFrame
    - MakeTemporaryBundleFromTemplate
    - assert
    - CfCreateFile
    - RecordFailure
    - BundleResolve
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult RenderTemplateCFEngine(EvalContext *ctx,\n                                            const
      Promise *pp,\n                                            const Rlist *bundle_args,\n
      \                                           const Attributes *attr,\n                                            EditContext
      *edcontext,\n                                            bool file_exists,\n
      \                                           bool *save_file)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-agent/verify_files.c:924,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:928,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files.c:929,1
    - Dst: fwrite
      Src: /src/core/cf-agent/verify_files.c:935,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_files.c:935,1
    - Dst: BufferSize
      Src: /src/core/cf-agent/verify_files.c:935,1
    - Dst: BufferSize
      Src: /src/core/cf-agent/verify_files.c:936,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:938,1
    - Dst: BufferSize
      Src: /src/core/cf-agent/verify_files.c:940,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files.c:940,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_files.c:941,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_files.c:945,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:947,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_files.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - dest_filename
    - param
    - new_line_mode
    argTypes:
    - char*
    - void*
    - NewLineMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 922
    functionDepth: 8
    functionLinenumber: 922
    functionLinenumberEnd: 953
    functionName: SaveBufferCallback
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - BufferData
    - safe_fopen
    - fwrite
    - Log
    - fclose
    - BufferSize
    linkageType: ''
    returnType: bool
    signature: bool SaveBufferCallback(const char *dest_filename, void *param, NewLineMode
      new_line_mode)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:962,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:963,1
    - Dst: DefaultTemplateData
      Src: /src/core/cf-agent/verify_files.c:971,1
    - Dst: access
      Src: /src/core/cf-agent/verify_files.c:976,1
    - Dst: HashFile
      Src: /src/core/cf-agent/verify_files.c:978,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/verify_files.c:982,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files.c:985,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files.c:987,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_files.c:991,1
    - Dst: MustacheRender
      Src: /src/core/cf-agent/verify_files.c:994,1
    - Dst: HashString
      Src: /src/core/cf-agent/verify_files.c:997,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_files.c:997,1
    - Dst: BufferSize
      Src: /src/core/cf-agent/verify_files.c:997,1
    - Dst: HashesMatch
      Src: /src/core/cf-agent/verify_files.c:998,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/verify_files.c:1000,1
    - Dst: CfCreateFile
      Src: /src/core/cf-agent/verify_files.c:1004,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1008,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1011,1
    - Dst: SaveAsFile
      Src: /src/core/cf-agent/verify_files.c:1013,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/verify_files.c:1017,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1020,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1024,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1027,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_files.c:1038,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1040,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1042,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_files.c:1044,1
    - Dst: JsonDestroy
      Src: /src/core/cf-agent/verify_files.c:1045,1
    - Dst: free
      Src: /src/core/cf-agent/verify_files.c:1046,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - pp
    - attr
    - edcontext
    - file_exists
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - EditContext*
    - bool
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 961
        line_start: 961
        source_file: /src/core/cf-agent/verify_files.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 962
        line_start: 962
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 1048
      start: 955
    functionDepth: 13
    functionLinenumber: 955
    functionLinenumberEnd: 1048
    functionName: RenderTemplateMustache
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - BufferDestroy
    - CfCreateFile
    - HashesMatch
    - BufferNew
    - free
    - HashString
    - StringEqual
    - access
    - BufferData
    - SaveAsFile
    - RecordChange
    - strcmp
    - xstrdup
    - BufferSize
    - assert
    - MustacheRender
    - DefaultTemplateData
    - HashFile
    - JsonDestroy
    - RecordFailure
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult RenderTemplateMustache(EvalContext *ctx,\n                                            const
      Promise *pp,\n                                            const Attributes *attr,\n
      \                                           EditContext *edcontext,\n                                            const
      char *template,\n                                            bool file_exists)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:1056,1
    - Dst: FileCanOpen
      Src: /src/core/cf-agent/verify_files.c:1059,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1061,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1062,1
    - Dst: safe_open
      Src: /src/core/cf-agent/verify_files.c:1066,1
    - Dst: FileReadFromFd
      Src: /src/core/cf-agent/verify_files.c:1070,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files.c:1071,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1075,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1076,1
    - Dst: RenderTemplateMustache
      Src: /src/core/cf-agent/verify_files.c:1079,1
    - Dst: StringWriterData
      Src: /src/core/cf-agent/verify_files.c:1080,1
    - Dst: WriterClose
      Src: /src/core/cf-agent/verify_files.c:1083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - pp
    - a
    - edcontext
    - file_exists
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - EditContext*
    - bool
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1055
        line_start: 1055
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 1086
      start: 1050
    functionDepth: 14
    functionLinenumber: 1050
    functionLinenumberEnd: 1086
    functionName: RenderTemplateMustacheFromFile
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - WriterClose
    - RenderTemplateMustache
    - safe_open
    - assert
    - FileCanOpen
    - FileReadFromFd
    - RecordFailure
    - StringWriterData
    - PromiseResultUpdate
    - close
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult RenderTemplateMustacheFromFile(EvalContext *ctx,\n                                                    const
      Promise *pp,\n                                                    const Attributes
      *a,\n                                                    EditContext *edcontext,\n
      \                                                   bool file_exists)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:1094,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1099,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1100,1
    - Dst: RenderTemplateMustache
      Src: /src/core/cf-agent/verify_files.c:1103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - pp
    - a
    - edcontext
    - file_exists
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - EditContext*
    - bool
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1093
        line_start: 1093
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 1106
      start: 1088
    functionDepth: 14
    functionLinenumber: 1088
    functionLinenumberEnd: 1106
    functionName: RenderTemplateMustacheFromString
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - assert
    - RenderTemplateMustache
    - PromiseResultUpdate
    - RecordFailure
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult RenderTemplateMustacheFromString(EvalContext *ctx,\n
      \                                                     const Promise *pp,\n                                                      const
      Attributes *a,\n                                                      EditContext
      *edcontext,\n                                                      bool file_exists)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:1112,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_files.c:1120,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_files.c:1121,1
    - Dst: NewEditContext
      Src: /src/core/cf-agent/verify_files.c:1128,1
    - Dst: StartLoggingIntoBuffer
      Src: /src/core/cf-agent/verify_files.c:1129,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1134,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1135,1
    - Dst: PolicyFromPromise
      Src: /src/core/cf-agent/verify_files.c:1139,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_files.c:1143,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files.c:1146,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1149,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1152,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_files.c:1157,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files.c:1159,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1162,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1165,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:1175,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/cf-agent/verify_files.c:1177,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/cf-agent/verify_files.c:1180,1
    - Dst: BundleResolve
      Src: /src/core/cf-agent/verify_files.c:1182,1
    - Dst: ScheduleEditLineOperations
      Src: /src/core/cf-agent/verify_files.c:1184,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_files.c:1186,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:1190,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_files.c:1197,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files.c:1200,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1203,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1206,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_files.c:1211,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_files.c:1213,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_files.c:1216,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1219,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:1229,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/cf-agent/verify_files.c:1231,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/cf-agent/verify_files.c:1234,1
    - Dst: BundleResolve
      Src: /src/core/cf-agent/verify_files.c:1235,1
    - Dst: ScheduleEditXmlOperations
      Src: /src/core/cf-agent/verify_files.c:1237,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/verify_files.c:1239,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files.c:1243,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:1247,1
    - Dst: RenderTemplateCFEngine
      Src: /src/core/cf-agent/verify_files.c:1250,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1255,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files.c:1258,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:1262,1
    - Dst: RenderTemplateMustacheFromFile
      Src: /src/core/cf-agent/verify_files.c:1266,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1268,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files.c:1271,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files.c:1275,1
    - Dst: RenderTemplateMustacheFromString
      Src: /src/core/cf-agent/verify_files.c:1279,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1281,1
    - Dst: FinishEditContext
      Src: /src/core/cf-agent/verify_files.c:1286,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_files.c:1287,1
    - Dst: CommitLogBuffer
      Src: /src/core/cf-agent/verify_files.c:1290,1
    - Dst: DiscardLogBuffer
      Src: /src/core/cf-agent/verify_files.c:1294,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 106
    argCount: 5
    argNames:
    - ctx
    - filename
    - file_exists
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - bool
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1111
        line_start: 1111
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 1297
      start: 1108
    functionDepth: 18
    functionLinenumber: 1108
    functionLinenumberEnd: 1297
    functionName: ScheduleEditOperation
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 1
    functionsReached:
    - EvalContextStackPopFrame
    - AcquireLock
    - RenderTemplateCFEngine
    - Log
    - strlcpy
    - DiscardLogBuffer
    - EvalContextStackPushBundleFrame
    - snprintf
    - YieldCurrentLock
    - BundleResolve
    - strcmp
    - ScheduleEditLineOperations
    - RenderTemplateMustacheFromString
    - StartLoggingIntoBuffer
    - assert
    - RenderTemplateMustacheFromFile
    - ScheduleEditXmlOperations
    - EvalContextResolveBundleExpression
    - PromiseGetConstraintAsRval
    - PolicyFromPromise
    - NewEditContext
    - RecordFailure
    - FinishEditContext
    - CommitLogBuffer
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult ScheduleEditOperation(EvalContext *ctx, char *filename,\n
      \                                   bool file_exists, const Attributes *a,\n
      \                                   const Promise *pp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_files.c:1303,1
    - Dst: FindFilePromiserObjects
      Src: /src/core/cf-agent/verify_files.c:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1301
    functionDepth: 9
    functionLinenumber: 1301
    functionLinenumberEnd: 1305
    functionName: FindAndVerifyFilesPromises
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - PromiseBanner
    - FindFilePromiserObjects
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult FindAndVerifyFilesPromises(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_files.c:1311,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_files.c:1312,1
    - Dst: GetClassDefinitionConstraints
      Src: /src/core/cf-agent/verify_files.c:1315,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:1320,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:1321,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:1322,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:1323,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:1324,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:1325,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:1326,1
    - Dst: ExpandList
      Src: /src/core/cf-agent/verify_files.c:1327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1309
    functionDepth: 12
    functionLinenumber: 1309
    functionLinenumberEnd: 1330
    functionName: GetExpandedClassDefinitionConstraints
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - ExpandList
    - PromiseGetBundle
    - GetClassDefinitionConstraints
    linkageType: ''
    returnType: DefineClasses
    signature: DefineClasses GetExpandedClassDefinitionConstraints(const EvalContext
      *ctx, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:1334,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_files.c:1335,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_files.c:1336,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_files.c:1337,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_files.c:1338,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_files.c:1339,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_files.c:1340,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_files.c:1341,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_files.c:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - DefineClasses*
    assertStmts:
    - condition: (c != NULL)
      pos:
        line_end: 1333
        line_start: 1333
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 1343
      start: 1332
    functionDepth: 2
    functionLinenumber: 1332
    functionLinenumberEnd: 1343
    functionName: ClearExpandedClassDefinitionConstraints
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 0
    functionsReached:
    - assert
    - RlistDestroy
    linkageType: ''
    returnType: void
    signature: void ClearExpandedClassDefinitionConstraints(DefineClasses *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_files.c:1347,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/verify_files.c:1349,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/cf-agent/verify_files.c:1350,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files.c:1350,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1358,1
    - Dst: VerifyFilePromise
      Src: /src/core/cf-agent/verify_files.c:1358,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_files.c:1362,1
    - Dst: LocateFilePromiserGroup
      Src: /src/core/cf-agent/verify_files.c:1362,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/cf-agent/verify_files.c:1367,1
    - Dst: GetExpandedClassDefinitionConstraints
      Src: /src/core/cf-agent/verify_files.c:1369,1
    - Dst: SetPromiseOutcomeClasses
      Src: /src/core/cf-agent/verify_files.c:1370,1
    - Dst: ClearExpandedClassDefinitionConstraints
      Src: /src/core/cf-agent/verify_files.c:1371,1
    - Dst: EvalContextVariableRemoveSpecial
      Src: /src/core/cf-agent/verify_files.c:1372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 1346
        line_start: 1346
        source_file: /src/core/cf-agent/verify_files.c
    constantsTouched: []
    func_position:
      end: 1377
      start: 1345
    functionDepth: 18
    functionLinenumber: 1345
    functionLinenumberEnd: 1377
    functionName: FindFilePromiserObjects
    functionSourceFile: /src/core/cf-agent/verify_files.c
    functionUses: 1
    functionsReached:
    - VerifyFilePromise
    - EvalContextVariableRemoveSpecial
    - assert
    - LocateFilePromiserGroup
    - ClearExpandedClassDefinitionConstraints
    - GetExpandedClassDefinitionConstraints
    - strcmp
    - PromiseGetConstraintAsRval
    - SetPromiseOutcomeClasses
    - EvalContextVariablePutSpecial
    - PromiseGetConstraintAsBoolean
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult FindFilePromiserObjects(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ManifestFile
      Src: /src/core/cf-agent/manifest_file.c:36,1
    - Dst: ManifestFile
      Src: /src/core/cf-agent/manifest_file.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/core/cf-agent/manifest_file.c
    functionUses: 2
    functionsReached:
    - ManifestFile
    linkageType: ''
    returnType: int
    signature: int main (int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:109,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:110,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:111,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:118,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:118,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:120,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editline.c:121,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/cf-agent/files_editline.c:128,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/cf-agent/files_editline.c:129,1
    - Dst: BundleGetSection
      Src: /src/core/cf-agent/files_editline.c:138,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/cf-agent/files_editline.c:144,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/files_editline.c:145,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/files_editline.c:148,1
    - Dst: ExpandPromise
      Src: /src/core/cf-agent/files_editline.c:150,1
    - Dst: BundleAbort
      Src: /src/core/cf-agent/files_editline.c:152,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editline.c:154,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/files_editline.c:155,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/files_editline.c:159,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editline.c:163,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - ctx
    - bp
    - a
    - parentp
    - edcontext
    argTypes:
    - EvalContext*
    - Bundle*
    - Attributes*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (edcontext != NULL)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (a != NULL)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (StringEqual(bp->type, "edit_line"))
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (bp != NULL)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 165
      start: 107
    functionDepth: 15
    functionLinenumber: 107
    functionLinenumberEnd: 165
    functionName: ScheduleEditLineOperations
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 2
    functionsReached:
    - ExpandPromise
    - snprintf
    - BundleAbort
    - EvalContextStackPopFrame
    - assert
    - YieldCurrentLock
    - AcquireLock
    - BundleGetSection
    - EvalContextStackPushBundleSectionFrame
    - EvalContextVariablePutSpecial
    - SeqLength
    - StringEqual
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool ScheduleEditLineOperations(EvalContext *ctx, const Bundle *bp,
      const Attributes *a, const Promise *parentp, EditContext *edcontext)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:171,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:172,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/files_editline.c:175,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:177,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:178,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:185,1
    - Dst: CanonifyName
      Src: /src/core/cf-agent/files_editline.c:185,1
    - Dst: PolicyAppendBundle
      Src: /src/core/cf-agent/files_editline.c:187,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:189,1
    - Dst: BundleAppendSection
      Src: /src/core/cf-agent/files_editline.c:192,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/files_editline.c:201,1
    - Dst: getline
      Src: /src/core/cf-agent/files_editline.c:205,1
    - Dst: feof
      Src: /src/core/cf-agent/files_editline.c:207,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:209,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_editline.c:210,1
    - Dst: StringEqualN
      Src: /src/core/cf-agent/files_editline.c:224,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:224,1
    - Dst: sscanf
      Src: /src/core/cf-agent/files_editline.c:229,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:229,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:231,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:233,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:234,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:238,1
    - Dst: PrependItem
      Src: /src/core/cf-agent/files_editline.c:240,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:243,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:244,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:251,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editline.c:256,1
    - Dst: DeleteItem
      Src: /src/core/cf-agent/files_editline.c:257,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:261,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:261,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:263,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editline.c:264,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:271,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/files_editline.c:275,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:279,1
    - Dst: memcpy
      Src: /src/core/cf-agent/files_editline.c:280,1
    - Dst: StripTrailingNewline
      Src: /src/core/cf-agent/files_editline.c:284,1
    - Dst: CF_ASSERT
      Src: /src/core/cf-agent/files_editline.c:285,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/cf-agent/files_editline.c:287,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/cf-agent/files_editline.c:289,1
    - Dst: RvalNew
      Src: /src/core/cf-agent/files_editline.c:289,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/files_editline.c:291,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:292,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-agent/files_editline.c:297,1
    - Dst: AppendItem
      Src: /src/core/cf-agent/files_editline.c:301,1
    - Dst: StripTrailingNewline
      Src: /src/core/cf-agent/files_editline.c:306,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/cf-agent/files_editline.c:307,1
    - Dst: PromiseAppendConstraint
      Src: /src/core/cf-agent/files_editline.c:309,1
    - Dst: RvalNew
      Src: /src/core/cf-agent/files_editline.c:309,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:315,1
    - Dst: fclose
      Src: /src/core/cf-agent/files_editline.c:318,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 81
    argCount: 5
    argNames:
    - ctx
    - policy
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Policy*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (bp)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (pp != NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 321
      start: 169
    functionDepth: 13
    functionLinenumber: 169
    functionLinenumberEnd: 321
    functionName: MakeTemporaryBundleFromTemplate
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - feof
    - Log
    - fclose
    - free
    - StringEqual
    - BundleAppendSection
    - snprintf
    - strlen
    - sscanf
    - IsDefinedClass
    - CF_ASSERT
    - PolicyAppendBundle
    - CanonifyName
    - strcpy
    - RvalNew
    - BundleSectionAppendPromise
    - assert
    - xmalloc
    - getline
    - GetErrorStr
    - xcalloc
    - memcpy
    - AppendItem
    - StripTrailingNewline
    - PromiseAppendConstraint
    - cfPS
    - safe_fopen
    - StringEqualN
    - PrependItem
    - DeleteItemList
    - PromiseResultUpdate
    - DeleteItem
    linkageType: ''
    returnType: Bundle
    signature: Bundle *MakeTemporaryBundleFromTemplate(EvalContext *ctx, Policy *policy,
      const Attributes *a, const Promise *pp, PromiseResult *result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/files_editline.c:331,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:333,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editline.c:333,1
    - Dst: VerifyClassPromise
      Src: /src/core/cf-agent/files_editline.c:335,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:337,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editline.c:337,1
    - Dst: VerifyLineDeletions
      Src: /src/core/cf-agent/files_editline.c:339,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:341,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editline.c:341,1
    - Dst: VerifyColumnEdits
      Src: /src/core/cf-agent/files_editline.c:343,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:345,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editline.c:345,1
    - Dst: VerifyLineInsertions
      Src: /src/core/cf-agent/files_editline.c:347,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:349,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editline.c:349,1
    - Dst: VerifyPatterns
      Src: /src/core/cf-agent/files_editline.c:351,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:353,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editline.c:353,1
    - Dst: VerifyReportPromise
      Src: /src/core/cf-agent/files_editline.c:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - pp
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 327
    functionDepth: 14
    functionLinenumber: 327
    functionLinenumberEnd: 359
    functionName: KeepEditLinePromise
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 0
    functionsReached:
    - VerifyReportPromise
    - PromiseBanner
    - PromiseGetPromiseType
    - VerifyColumnEdits
    - VerifyClassPromise
    - VerifyPatterns
    - VerifyLineInsertions
    - VerifyLineDeletions
    - StringEqual
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult KeepEditLinePromise(EvalContext *ctx, const Promise *pp,
      void *param)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:367,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:368,1
    - Dst: GetDeletionAttributes
      Src: /src/core/cf-agent/files_editline.c:375,1
    - Dst: SanityCheckDeletions
      Src: /src/core/cf-agent/files_editline.c:378,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:380,1
    - Dst: SelectRegion
      Src: /src/core/cf-agent/files_editline.c:393,1
    - Dst: HandleSelectRegionFailure
      Src: /src/core/cf-agent/files_editline.c:395,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:399,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:402,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:406,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editline.c:407,1
    - Dst: DeletePromisedLinesMatching
      Src: /src/core/cf-agent/files_editline.c:414,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:421,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:425,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:429,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:433,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editline.c:438,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - ctx
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 441
      start: 365
    functionDepth: 13
    functionLinenumber: 365
    functionLinenumberEnd: 441
    functionName: VerifyLineDeletions
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - snprintf
    - assert
    - SanityCheckDeletions
    - GetDeletionAttributes
    - SelectRegion
    - cfPS
    - DeletePromisedLinesMatching
    - HandleSelectRegionFailure
    - AcquireLock
    - YieldCurrentLock
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyLineDeletions(EvalContext *ctx, const Promise *pp,
      EditContext *edcontext)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:447,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:448,1
    - Dst: GetColumnAttributes
      Src: /src/core/cf-agent/files_editline.c:455,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:460,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/files_editline.c:462,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:468,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/files_editline.c:470,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:476,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/files_editline.c:478,1
    - Dst: SelectRegion
      Src: /src/core/cf-agent/files_editline.c:490,1
    - Dst: HandleSelectRegionFailure
      Src: /src/core/cf-agent/files_editline.c:492,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:497,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editline.c:498,1
    - Dst: EditColumns
      Src: /src/core/cf-agent/files_editline.c:504,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:511,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:515,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:519,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:523,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editline.c:528,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - ctx
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 446
        line_start: 446
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 531
      start: 445
    functionDepth: 13
    functionLinenumber: 445
    functionLinenumberEnd: 531
    functionName: VerifyColumnEdits
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - GetColumnAttributes
    - snprintf
    - assert
    - SelectRegion
    - YieldCurrentLock
    - cfPS
    - PromiseRef
    - HandleSelectRegionFailure
    - AcquireLock
    - EditColumns
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyColumnEdits(EvalContext *ctx, const Promise *pp,
      EditContext *edcontext)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:537,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:538,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:545,1
    - Dst: GetReplaceAttributes
      Src: /src/core/cf-agent/files_editline.c:549,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:554,1
    - Dst: SelectRegion
      Src: /src/core/cf-agent/files_editline.c:565,1
    - Dst: HandleSelectRegionFailure
      Src: /src/core/cf-agent/files_editline.c:567,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:570,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editline.c:571,1
    - Dst: ReplacePatterns
      Src: /src/core/cf-agent/files_editline.c:580,1
    - Dst: EvalContextVariableClearMatch
      Src: /src/core/cf-agent/files_editline.c:585,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:590,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:594,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:598,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:602,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editline.c:607,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 610
      start: 535
    functionDepth: 13
    functionLinenumber: 535
    functionLinenumberEnd: 610
    functionName: VerifyPatterns
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - ReplacePatterns
    - snprintf
    - assert
    - SelectRegion
    - YieldCurrentLock
    - cfPS
    - HandleSelectRegionFailure
    - AcquireLock
    - EvalContextVariableClearMatch
    - Log
    - GetReplaceAttributes
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyPatterns(EvalContext *ctx, const Promise *pp, EditContext
      *edcontext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_editline.c:628,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - ctx
    - regexp
    - begin
    - end
    - match
    - prev
    argTypes:
    - EvalContext*
    - char*
    - Item*
    - Item*
    - Item**
    - Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 639
    functionName: SelectNextItemMatching
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 0
    functionsReached:
    - FullTextMatch
    linkageType: ''
    returnType: bool
    signature: bool SelectNextItemMatching(EvalContext *ctx, const char *regexp, Item
      *begin, Item *end, Item **match, Item **prev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:645,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:646,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_editline.c:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - ctx
    - regexp
    - begin
    - end
    - match
    - prev
    argTypes:
    - EvalContext*
    - char*
    - Item*
    - Item*
    - Item**
    - Item**
    assertStmts:
    - condition: (match != NULL)
      pos:
        line_end: 644
        line_start: 644
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (prev != NULL)
      pos:
        line_end: 645
        line_start: 645
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 676
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 676
    functionName: SelectLastItemMatching
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 3
    functionsReached:
    - assert
    - FullTextMatch
    linkageType: ''
    returnType: bool
    signature: bool SelectLastItemMatching(EvalContext *ctx, const char *regexp, Item
      *begin, Item *end, Item **match, Item **prev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:682,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:683,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:696,1
    - Dst: SelectNextItemMatching
      Src: /src/core/cf-agent/files_editline.c:698,1
    - Dst: SelectLastItemMatching
      Src: /src/core/cf-agent/files_editline.c:705,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 8
    argNames:
    - ctx
    - start
    - regex
    - begin_ptr
    - end_ptr
    - match
    - prev
    - fl
    argTypes:
    - EvalContext*
    - Item*
    - char*
    - Item*
    - Item*
    - Item**
    - Item**
    - char*
    assertStmts:
    - condition: (match != NULL)
      pos:
        line_end: 681
        line_start: 681
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (prev != NULL)
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 720
      start: 680
    functionDepth: 4
    functionLinenumber: 680
    functionLinenumberEnd: 720
    functionName: SelectItemMatching
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 0
    functionsReached:
    - assert
    - SelectLastItemMatching
    - StringEqual
    - SelectNextItemMatching
    linkageType: ''
    returnType: bool
    signature: bool SelectItemMatching(EvalContext *ctx, Item *start, char *regex,
      Item *begin_ptr, Item *end_ptr, Item **match, Item **prev, char *fl)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:726,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:727,1
    - Dst: GetInsertionAttributes
      Src: /src/core/cf-agent/files_editline.c:734,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:735,1
    - Dst: SanityCheckInsertions
      Src: /src/core/cf-agent/files_editline.c:738,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:740,1
    - Dst: SelectRegion
      Src: /src/core/cf-agent/files_editline.c:754,1
    - Dst: HandleSelectRegionFailure
      Src: /src/core/cf-agent/files_editline.c:756,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:761,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:764,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:771,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:775,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editline.c:778,1
    - Dst: InsertMultipleLinesToRegion
      Src: /src/core/cf-agent/files_editline.c:788,1
    - Dst: SelectItemMatching
      Src: /src/core/cf-agent/files_editline.c:795,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:797,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:800,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editline.c:801,1
    - Dst: InsertMultipleLinesAtLocation
      Src: /src/core/cf-agent/files_editline.c:805,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:814,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:818,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:822,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:826,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editline.c:831,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - ctx
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 726
        line_start: 726
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 834
      start: 724
    functionDepth: 13
    functionLinenumber: 724
    functionLinenumberEnd: 834
    functionName: VerifyLineInsertions
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - snprintf
    - InsertMultipleLinesToRegion
    - assert
    - GetInsertionAttributes
    - SelectRegion
    - SelectItemMatching
    - cfPS
    - YieldCurrentLock
    - HandleSelectRegionFailure
    - AcquireLock
    - SanityCheckInsertions
    - InsertMultipleLinesAtLocation
    - PromiseResultUpdate
    - StringEqual
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyLineInsertions(EvalContext *ctx, const Promise
      *pp, EditContext *edcontext)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:853,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:854,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:855,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:856,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_editline.c:868,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:880,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_editline.c:894,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:909,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 6
    argNames:
    - ctx
    - start
    - begin_ptr
    - end_ptr
    - a
    - edcontext
    argTypes:
    - EvalContext*
    - Item*
    - Item**
    - Item**
    - Attributes*
    - EditContext*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 852
        line_start: 852
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (end_ptr != NULL)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (begin_ptr != NULL)
      pos:
        line_end: 854
        line_start: 854
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 919
      start: 840
    functionDepth: 8
    functionLinenumber: 840
    functionLinenumberEnd: 919
    functionName: SelectRegion
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 4
    functionsReached:
    - assert
    - FullTextMatch
    - Log
    linkageType: ''
    returnType: bool
    signature: "bool SelectRegion(EvalContext *ctx, Item *start,\n                         Item
      **begin_ptr, Item **end_ptr,\n                         const Attributes *a,
      EditContext *edcontext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:932,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:933,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:934,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:935,1
    - Dst: EDIT_CONTEXT_IS_FINAL_PASS
      Src: /src/core/cf-agent/files_editline.c:937,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:940,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:949,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:953,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:960,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editline.c:969,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - pp
    - a
    - edcontext
    - operation_type
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - EditContext*
    - char*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 931
        line_start: 931
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (operation_type != NULL)
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 933
        line_start: 933
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (a != NULL)
      pos:
        line_end: 932
        line_start: 932
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 973
      start: 923
    functionDepth: 13
    functionLinenumber: 923
    functionLinenumberEnd: 973
    functionName: HandleSelectRegionFailure
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 4
    functionsReached:
    - assert
    - cfPS
    - Log
    - EDIT_CONTEXT_IS_FINAL_PASS
    - StringEqual
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult HandleSelectRegionFailure(EvalContext *ctx, const Promise
      *pp, \n                                                const Attributes *a,
      EditContext *edcontext,\n                                                const
      char *operation_type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:985,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/files_editline.c:987,1
    - Dst: sscanf
      Src: /src/core/cf-agent/files_editline.c:993,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:994,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:1002,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_editline.c:1007,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1042,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 5
    argNames:
    - ctx
    - chunk
    - begin
    - end
    - regex
    argTypes:
    - EvalContext*
    - char*
    - Item*
    - Item*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 977
    functionDepth: 4
    functionLinenumber: 977
    functionLinenumberEnd: 1044
    functionName: MatchRegion
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - strlen
    - sscanf
    - FullTextMatch
    - xmalloc
    - free
    - StringEqual
    linkageType: ''
    returnType: int
    signature: int MatchRegion(EvalContext *ctx, const char *chunk, const Item *begin,
      const Item *end, bool regex)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1051,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1052,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:1055,1
    - Dst: InsertMultipleLinesAtLocation
      Src: /src/core/cf-agent/files_editline.c:1061,1
    - Dst: InsertMultipleLinesAtLocation
      Src: /src/core/cf-agent/files_editline.c:1075,1
    - Dst: MatchRegion
      Src: /src/core/cf-agent/files_editline.c:1094,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:1096,1
    - Dst: InsertMultipleLinesAtLocation
      Src: /src/core/cf-agent/files_editline.c:1103,1
    - Dst: InsertMultipleLinesAtLocation
      Src: /src/core/cf-agent/files_editline.c:1108,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 8
    argNames:
    - ctx
    - start
    - begin_ptr
    - end_ptr
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - Item**
    - Item*
    - Item*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1050
        line_start: 1050
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 1051
        line_start: 1051
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 1116
      start: 1048
    functionDepth: 12
    functionLinenumber: 1048
    functionLinenumberEnd: 1116
    functionName: InsertMultipleLinesToRegion
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - assert
    - RecordNoChange
    - MatchRegion
    - InsertMultipleLinesAtLocation
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: "bool InsertMultipleLinesToRegion(EvalContext *ctx, Item **start, Item
      *begin_ptr, Item *end_ptr, const Attributes *a,\n                                       const
      Promise *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1127,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1128,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:1131,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:1131,1
    - Dst: InsertFileAtLocation
      Src: /src/core/cf-agent/files_editline.c:1135,1
    - Dst: InsertCompoundLineAtLocation
      Src: /src/core/cf-agent/files_editline.c:1139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 10
    argNames:
    - ctx
    - start
    - begin_ptr
    - end_ptr
    - location
    - prev
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - Item**
    - Item*
    - Item*
    - Item*
    - Item*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 1126
        line_start: 1126
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (a != NULL)
      pos:
        line_end: 1127
        line_start: 1127
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 1142
      start: 1120
    functionDepth: 4
    functionLinenumber: 1120
    functionLinenumberEnd: 1142
    functionName: InsertMultipleLinesAtLocation
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 2
    functionsReached:
    - assert
    - InsertFileAtLocation
    - StringEqual
    - InsertCompoundLineAtLocation
    linkageType: ''
    returnType: bool
    signature: "bool InsertMultipleLinesAtLocation(EvalContext *ctx, Item **start,
      Item *begin_ptr, Item *end_ptr, Item *location,\n                                         Item
      *prev, const Attributes *a, const Promise *pp, EditContext *edcontext, PromiseResult
      *result)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1149,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1150,1
    - Dst: MatchRegion
      Src: /src/core/cf-agent/files_editline.c:1201,1
    - Dst: MatchRegion
      Src: /src/core/cf-agent/files_editline.c:1205,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1210,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1214,1
    - Dst: SelectLine
      Src: /src/core/cf-agent/files_editline.c:1217,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1225,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editline.c:1227,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:1237,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1239,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1245,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1271,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:1287,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 80
    argCount: 8
    argNames:
    - ctx
    - start
    - begin
    - end
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - Item**
    - Item*
    - Item*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 1148
        line_start: 1148
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 1149
        line_start: 1149
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 1291
      start: 1146
    functionDepth: 12
    functionLinenumber: 1146
    functionLinenumberEnd: 1291
    functionName: DeletePromisedLinesMatching
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - RecordChange
    - assert
    - Log
    - SelectLine
    - RecordNoChange
    - free
    - MatchRegion
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool DeletePromisedLinesMatching(EvalContext *ctx, Item **start, Item
      *begin, Item *end, const Attributes *a,\n                                       const
      Promise *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/cf-agent/files_editline.c:1300,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:1305,1
    - Dst: BufferData
      Src: /src/core/cf-agent/files_editline.c:1306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - line_buff
    - after
    - replace
    - start_off
    - end_off
    - after_size
    - line_buff_size
    argTypes:
    - char*
    - char*
    - Buffer*
    - int
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1312
    functionName: ReplaceBufferSafeWrite
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 0
    functionsReached:
    - BufferData
    - snprintf
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool ReplaceBufferSafeWrite(char *line_buff, char *after, Buffer *replace,
      int start_off, int end_off,\n    size_t after_size, size_t line_buff_size)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1317,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1318,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1319,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/cf-agent/files_editline.c:1320,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:1331,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1333,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/files_editline.c:1337,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/files_editline.c:1346,1
    - Dst: BlockTextMatch
      Src: /src/core/cf-agent/files_editline.c:1350,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:1352,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1354,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1360,1
    - Dst: BufferClear
      Src: /src/core/cf-agent/files_editline.c:1365,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/files_editline.c:1366,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/files_editline.c:1366,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/files_editline.c:1366,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1368,1
    - Dst: BufferData
      Src: /src/core/cf-agent/files_editline.c:1368,1
    - Dst: ReplaceBufferSafeWrite
      Src: /src/core/cf-agent/files_editline.c:1371,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1373,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1375,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1383,1
    - Dst: NotAnchored
      Src: /src/core/cf-agent/files_editline.c:1388,1
    - Dst: BlockTextMatch
      Src: /src/core/cf-agent/files_editline.c:1388,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/files_editline.c:1390,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1393,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1395,1
    - Dst: ReplaceBufferSafeWrite
      Src: /src/core/cf-agent/files_editline.c:1399,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1401,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1406,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:1410,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:1410,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1412,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1417,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/files_editline.c:1418,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editline.c:1423,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1430,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_editline.c:1431,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:1432,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1433,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1437,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1438,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1442,1
    - Dst: BlockTextMatch
      Src: /src/core/cf-agent/files_editline.c:1446,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:1447,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:1447,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/files_editline.c:1449,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1452,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1454,1
    - Dst: ReplaceBufferSafeWrite
      Src: /src/core/cf-agent/files_editline.c:1458,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1459,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1461,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1465,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1470,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/files_editline.c:1471,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/files_editline.c:1476,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:1480,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 97
    argCount: 7
    argNames:
    - ctx
    - file_start
    - file_end
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - Item*
    - Item*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (edcontext != NULL)
      pos:
        line_end: 1318
        line_start: 1318
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (a != NULL)
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (pp != NULL)
      pos:
        line_end: 1317
        line_start: 1317
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 1484
      start: 1314
    functionDepth: 12
    functionLinenumber: 1314
    functionLinenumberEnd: 1484
    functionName: ReplacePatterns
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - BufferDestroy
    - BlockTextMatch
    - Log
    - BufferNew
    - free
    - ReplaceBufferSafeWrite
    - strlcpy
    - StringEqual
    - BufferData
    - RecordInterruption
    - RecordChange
    - strlen
    - NotAnchored
    - BufferClear
    - xstrdup
    - RecordNoChange
    - PromiseGetConstraintAsBoolean
    - PromiseGetBundle
    - ExpandScalar
    - assert
    - PromiseRef
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool ReplacePatterns(EvalContext *ctx, Item *file_start, Item *file_end,
      const Attributes *a,\n                            const Promise *pp, EditContext
      *edcontext, PromiseResult *result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1491,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1492,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1493,1
    - Dst: ValidateRegEx
      Src: /src/core/cf-agent/files_editline.c:1501,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_editline.c:1514,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1521,1
    - Dst: BlockTextMatch
      Src: /src/core/cf-agent/files_editline.c:1524,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1526,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1528,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1534,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/files_editline.c:1538,1
    - Dst: RlistFromSplitRegex
      Src: /src/core/cf-agent/files_editline.c:1540,1
    - Dst: EditLineByColumn
      Src: /src/core/cf-agent/files_editline.c:1541,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1545,1
    - Dst: Rlist2String
      Src: /src/core/cf-agent/files_editline.c:1546,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/files_editline.c:1549,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editline.c:1554,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1557,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 7
    argNames:
    - ctx
    - file_start
    - file_end
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - Item*
    - Item*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1490
        line_start: 1490
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 1492
        line_start: 1492
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (pp != NULL)
      pos:
        line_end: 1491
        line_start: 1491
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 1561
      start: 1488
    functionDepth: 12
    functionLinenumber: 1488
    functionLinenumberEnd: 1561
    functionName: EditColumns
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - RlistFromSplitRegex
    - RecordInterruption
    - Rlist2String
    - BlockTextMatch
    - ValidateRegEx
    - assert
    - RecordFailure
    - FullTextMatch
    - Log
    - EditLineByColumn
    - RlistDestroy
    - free
    - PromiseResultUpdate
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: "bool EditColumns(EvalContext *ctx, Item *file_start, Item *file_end,
      const Attributes *a,\n                        const Promise *pp, EditContext
      *edcontext, PromiseResult *result)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1567,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:1575,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1610,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1617,1
    - Dst: InsertMatchTypeFromString
      Src: /src/core/cf-agent/files_editline.c:1624,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:1624,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1635,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1643,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 1649
      start: 1565
    functionDepth: 8
    functionLinenumber: 1565
    functionLinenumberEnd: 1649
    functionName: SanityCheckInsertions
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - assert
    - InsertMatchTypeFromString
    - Log
    - RlistScalarValue
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckInsertions(const Attributes *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1655,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1656,1
    - Dst: MultiLineString
      Src: /src/core/cf-agent/files_editline.c:1658,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1654
        line_start: 1654
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (pp != NULL)
      pos:
        line_end: 1655
        line_start: 1655
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 1669
      start: 1653
    functionDepth: 8
    functionLinenumber: 1653
    functionLinenumberEnd: 1669
    functionName: SanityCheckDeletions
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - assert
    - MultiLineString
    - Log
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckDeletions(const Attributes *a, const Promise *pp)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: SplitString
      Src: /src/core/cf-agent/files_editline.c:1679,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:1685,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_editline.c:1687,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:1688,1
    - Dst: InsertMatchTypeFromString
      Src: /src/core/cf-agent/files_editline.c:1700,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:1700,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1708,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/files_editline.c:1709,1
    - Dst: EscapeRegexCharsLen
      Src: /src/core/cf-agent/files_editline.c:1720,1
    - Dst: xrealloc
      Src: /src/core/cf-agent/files_editline.c:1723,1
    - Dst: EscapeRegexChars
      Src: /src/core/cf-agent/files_editline.c:1727,1
    - Dst: isspace
      Src: /src/core/cf-agent/files_editline.c:1735,1
    - Dst: isspace
      Src: /src/core/cf-agent/files_editline.c:1736,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/files_editline.c:1741,1
    - Dst: isspace
      Src: /src/core/cf-agent/files_editline.c:1752,1
    - Dst: isspace
      Src: /src/core/cf-agent/files_editline.c:1754,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editline.c:1760,1
    - Dst: xrealloc
      Src: /src/core/cf-agent/files_editline.c:1781,1
    - Dst: strlcat
      Src: /src/core/cf-agent/files_editline.c:1784,1
    - Dst: UnexpectedError
      Src: /src/core/cf-agent/files_editline.c:1786,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/files_editline.c:1792,1
    - Dst: xrealloc
      Src: /src/core/cf-agent/files_editline.c:1794,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/files_editline.c:1796,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1799,1
    - Dst: StringEqualN
      Src: /src/core/cf-agent/files_editline.c:1803,1
    - Dst: isspace
      Src: /src/core/cf-agent/files_editline.c:1806,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/files_editline.c:1809,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editline.c:1810,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:1812,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1816,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_editline.c:1819,1
    - Dst: xrealloc
      Src: /src/core/cf-agent/files_editline.c:1824,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:1826,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1830,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_editline.c:1833,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1838,1
    - Dst: StringEqualN
      Src: /src/core/cf-agent/files_editline.c:1843,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/files_editline.c:1846,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editline.c:1847,1
    - Dst: isspace
      Src: /src/core/cf-agent/files_editline.c:1850,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:1852,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1855,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_editline.c:1858,1
    - Dst: xrealloc
      Src: /src/core/cf-agent/files_editline.c:1863,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editline.c:1865,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:1868,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_editline.c:1871,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1876,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_editline.c:1880,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1883,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:1883,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1884,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1892,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/files_editline.c:1893,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 118
    argCount: 5
    argNames:
    - ctx
    - camel
    - haystack
    - insert_match
    - pp
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Rlist*
    - Promise*
    assertStmts:
    - condition: (final_size > strlen(final))
      pos:
        line_end: 1882
        line_start: 1882
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 1895
      start: 1674
    functionDepth: 9
    functionLinenumber: 1674
    functionLinenumberEnd: 1895
    functionName: MatchPolicy
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 0
    functionsReached:
    - SplitString
    - FullTextMatch
    - Log
    - RlistScalarValue
    - free
    - strlcpy
    - StringEqual
    - snprintf
    - strlen
    - InsertMatchTypeFromString
    - xstrdup
    - strcpy
    - strlcat
    - EscapeRegexChars
    - assert
    - isspace
    - EscapeRegexCharsLen
    - GetErrorStr
    - xcalloc
    - xrealloc
    - PromiseRef
    - UnexpectedError
    - StringEqualN
    - DeleteItemList
    linkageType: ''
    returnType: bool
    signature: bool MatchPolicy(EvalContext *ctx, const char *camel, const char *haystack,
      Rlist *insert_match, const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MatchPolicy
      Src: /src/core/cf-agent/files_editline.c:1901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 6
    argNames:
    - ctx
    - item
    - begin_ptr
    - end_ptr
    - insert_match
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Item*
    - Item*
    - Rlist*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1897
    functionDepth: 10
    functionLinenumber: 1897
    functionLinenumberEnd: 1908
    functionName: IsItemInRegion
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 0
    functionsReached:
    - MatchPolicy
    linkageType: ''
    returnType: bool
    signature: bool IsItemInRegion(EvalContext *ctx, const char *item, const Item
      *begin_ptr, const Item *end_ptr, Rlist *insert_match, const Promise *pp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1915,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1916,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1917,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:1918,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:1923,1
    - Dst: stat
      Src: /src/core/cf-agent/files_editline.c:1926,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/files_editline.c:1926,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1928,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1929,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/files_editline.c:1933,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:1935,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_editline.c:1936,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:1937,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/files_editline.c:1942,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/files_editline.c:1944,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/files_editline.c:1946,1
    - Dst: BufferClear
      Src: /src/core/cf-agent/files_editline.c:1948,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/files_editline.c:1951,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/files_editline.c:1951,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/files_editline.c:1951,1
    - Dst: BufferAppend
      Src: /src/core/cf-agent/files_editline.c:1955,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:1955,1
    - Dst: SelectLine
      Src: /src/core/cf-agent/files_editline.c:1958,1
    - Dst: BufferData
      Src: /src/core/cf-agent/files_editline.c:1958,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1960,1
    - Dst: IsItemInRegion
      Src: /src/core/cf-agent/files_editline.c:1965,1
    - Dst: BufferData
      Src: /src/core/cf-agent/files_editline.c:1965,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:1967,1
    - Dst: BufferData
      Src: /src/core/cf-agent/files_editline.c:1968,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:1969,1
    - Dst: InsertCompoundLineAtLocation
      Src: /src/core/cf-agent/files_editline.c:1976,1
    - Dst: BufferGet
      Src: /src/core/cf-agent/files_editline.c:1976,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:2003,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:2009,1
    - Dst: ferror
      Src: /src/core/cf-agent/files_editline.c:2012,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:2016,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2017,1
    - Dst: UnexpectedError
      Src: /src/core/cf-agent/files_editline.c:2021,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editline.c:2022,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2023,1
    - Dst: fclose
      Src: /src/core/cf-agent/files_editline.c:2027,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/files_editline.c:2028,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 10
    argNames:
    - ctx
    - start
    - begin_ptr
    - end_ptr
    - location
    - prev
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - Item**
    - Item*
    - Item*
    - Item*
    - Item*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (result != NULL)
      pos:
        line_end: 1917
        line_start: 1917
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (a != NULL)
      pos:
        line_end: 1914
        line_start: 1914
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 1916
        line_start: 1916
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (pp != NULL)
      pos:
        line_end: 1915
        line_start: 1915
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 2030
      start: 1912
    functionDepth: 12
    functionLinenumber: 1912
    functionLinenumberEnd: 2030
    functionName: InsertFileAtLocation
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - BufferDestroy
    - SelectLine
    - fclose
    - BufferNew
    - free
    - StringEqual
    - InsertCompoundLineAtLocation
    - RecordInterruption
    - BufferData
    - strlen
    - BufferClear
    - RecordNoChange
    - CfReadLine
    - BufferGet
    - PromiseGetBundle
    - ExpandScalar
    - assert
    - S_ISDIR
    - xmalloc
    - IsItemInRegion
    - GetErrorStr
    - stat
    - BufferAppend
    - UnexpectedError
    - RecordFailure
    - safe_fopen
    - ferror
    - PromiseResultUpdate
    linkageType: ''
    returnType: bool
    signature: "bool InsertFileAtLocation(EvalContext *ctx, Item **start, Item *begin_ptr,
      Item *end_ptr, Item *location,\n                                Item *prev,
      const Attributes *a, const Promise *pp, EditContext *edcontext, PromiseResult
      *result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2038,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2039,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2040,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2041,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2045,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2046,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2046,1
    - Dst: MatchRegion
      Src: /src/core/cf-agent/files_editline.c:2048,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2050,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:2057,1
    - Dst: xrealloc
      Src: /src/core/cf-agent/files_editline.c:2065,1
    - Dst: memset
      Src: /src/core/cf-agent/files_editline.c:2068,1
    - Dst: StringNotMatchingSetCapped
      Src: /src/core/cf-agent/files_editline.c:2069,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:2070,1
    - Dst: SelectLine
      Src: /src/core/cf-agent/files_editline.c:2072,1
    - Dst: IsItemInRegion
      Src: /src/core/cf-agent/files_editline.c:2077,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2079,1
    - Dst: InsertLineAtLocation
      Src: /src/core/cf-agent/files_editline.c:2085,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:2117,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 11
    argNames:
    - ctx
    - chunk
    - start
    - begin_ptr
    - end_ptr
    - location
    - prev
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - Item**
    - Item*
    - Item*
    - Item*
    - Item*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 2038
        line_start: 2038
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (start != NULL)
      pos:
        line_end: 2040
        line_start: 2040
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 2039
        line_start: 2039
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (a != NULL)
      pos:
        line_end: 2037
        line_start: 2037
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 2119
      start: 2034
    functionDepth: 12
    functionLinenumber: 2034
    functionLinenumberEnd: 2119
    functionName: InsertCompoundLineAtLocation
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 2
    functionsReached:
    - InsertLineAtLocation
    - strlen
    - assert
    - StringNotMatchingSetCapped
    - xrealloc
    - SelectLine
    - RecordNoChange
    - free
    - MatchRegion
    - IsItemInRegion
    - StringEqual
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool InsertCompoundLineAtLocation(EvalContext *ctx, const char *chunk,
      Item **start, Item *begin_ptr, Item *end_ptr,\n                                        Item
      *location, Item *prev, const Attributes *a, const Promise *pp, EditContext *edcontext,\n
      \                                       PromiseResult *result)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MatchPolicy
      Src: /src/core/cf-agent/files_editline.c:2136,1
    - Dst: MatchPolicy
      Src: /src/core/cf-agent/files_editline.c:2143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 7
    argNames:
    - ctx
    - file_start
    - location
    - string
    - pos
    - insert_match
    - pp
    argTypes:
    - EvalContext*
    - Item*
    - Item*
    - char*
    - EditOrder
    - Rlist*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2124
    functionDepth: 10
    functionLinenumber: 2124
    functionLinenumberEnd: 2148
    functionName: NeighbourItemMatches
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 0
    functionsReached:
    - MatchPolicy
    linkageType: ''
    returnType: bool
    signature: "bool NeighbourItemMatches(EvalContext *ctx, const Item *file_start,
      const Item *location,\n                                 const char *string,
      EditOrder pos, Rlist *insert_match,\n                                 const
      Promise *pp)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2156,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2157,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2158,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2160,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2161,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2162,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editline.c:2170,1
    - Dst: PrependItemList
      Src: /src/core/cf-agent/files_editline.c:2177,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2179,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2181,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2186,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editline.c:2188,1
    - Dst: PrependItemList
      Src: /src/core/cf-agent/files_editline.c:2195,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2197,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2199,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2205,1
    - Dst: NeighbourItemMatches
      Src: /src/core/cf-agent/files_editline.c:2214,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2216,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editline.c:2222,1
    - Dst: InsertAfter
      Src: /src/core/cf-agent/files_editline.c:2229,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2231,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2233,1
    - Dst: NeighbourItemMatches
      Src: /src/core/cf-agent/files_editline.c:2240,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2242,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editline.c:2248,1
    - Dst: InsertAfter
      Src: /src/core/cf-agent/files_editline.c:2255,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2256,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 9
    argNames:
    - ctx
    - newline
    - start
    - location
    - prev
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - Item**
    - Item*
    - Item*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (start != NULL)
      pos:
        line_end: 2155
        line_start: 2155
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 2157
        line_start: 2157
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (a != NULL)
      pos:
        line_end: 2156
        line_start: 2156
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 2264
      start: 2150
    functionDepth: 12
    functionLinenumber: 2150
    functionLinenumberEnd: 2264
    functionName: InsertLineAtLocation
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - RecordChange
    - StringEqual
    - assert
    - InsertAfter
    - PrependItemList
    - NeighbourItemMatches
    - RecordNoChange
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool InsertLineAtLocation(EvalContext *ctx, char *newline, Item **start,
      Item *location, Item *prev, const Attributes *a,\n                                const
      Promise *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2271,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2272,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:2287,1
    - Dst: RecordInterruption
      Src: /src/core/cf-agent/files_editline.c:2296,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2299,1
    - Dst: RlistAppendScalar
      Src: /src/core/cf-agent/files_editline.c:2306,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editline.c:2316,1
    - Dst: strstr
      Src: /src/core/cf-agent/files_editline.c:2327,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2327,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2327,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2327,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editline.c:2329,1
    - Dst: RlistFromSplitString
      Src: /src/core/cf-agent/files_editline.c:2336,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2336,1
    - Dst: DoEditColumn
      Src: /src/core/cf-agent/files_editline.c:2337,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:2341,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2341,1
    - Dst: Rlist2String
      Src: /src/core/cf-agent/files_editline.c:2344,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/files_editline.c:2352,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2359,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editline.c:2361,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2362,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:2368,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_editline.c:2369,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2370,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2371,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2372,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editline.c:2379,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2380,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2386,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2387,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2388,1
    - Dst: free
      Src: /src/core/cf-agent/files_editline.c:2389,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_editline.c:2390,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2397,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 76
    argCount: 6
    argNames:
    - ctx
    - columns
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - Rlist**
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (edcontext != NULL)
      pos:
        line_end: 2271
        line_start: 2271
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (a != NULL)
      pos:
        line_end: 2270
        line_start: 2270
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 2401
      start: 2268
    functionDepth: 12
    functionLinenumber: 2268
    functionLinenumberEnd: 2401
    functionName: EditLineByColumn
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - RecordInterruption
    - Rlist2String
    - RecordChange
    - RlistAppendScalar
    - strstr
    - assert
    - MakingChanges
    - RlistFromSplitString
    - DoEditColumn
    - RecordNoChange
    - Log
    - RlistDestroy
    - xstrdup
    - RlistScalarValue
    - free
    - PromiseResultUpdate
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: "bool EditLineByColumn(EvalContext *ctx, Rlist **columns, const Attributes
      *a,\n                             const Promise *pp, EditContext *edcontext,
      PromiseResult *result)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2407,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2418,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/files_editline.c:2420,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2433,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/files_editline.c:2435,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2448,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_editline.c:2450,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2463,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/files_editline.c:2465,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2478,1
    - Dst: BlockTextMatch
      Src: /src/core/cf-agent/files_editline.c:2480,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2493,1
    - Dst: BlockTextMatch
      Src: /src/core/cf-agent/files_editline.c:2495,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 3
    argNames:
    - ctx
    - line
    - a
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 2406
        line_start: 2406
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 2505
      start: 2405
    functionDepth: 2
    functionLinenumber: 2405
    functionLinenumberEnd: 2505
    functionName: SelectLine
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 3
    functionsReached:
    - BlockTextMatch
    - assert
    - FullTextMatch
    - RlistScalarValue
    - StringStartsWith
    linkageType: ''
    returnType: bool
    signature: bool SelectLine(EvalContext *ctx, const char *line, const Attributes
      *a)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2515,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2516,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2524,1
    - Dst: RlistKeyIn
      Src: /src/core/cf-agent/files_editline.c:2526,1
    - Dst: RlistDestroyEntry
      Src: /src/core/cf-agent/files_editline.c:2528,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2529,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2531,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2538,1
    - Dst: RlistLen
      Src: /src/core/cf-agent/files_editline.c:2540,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2541,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/files_editline.c:2541,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2543,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2546,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2548,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2552,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2553,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/files_editline.c:2554,1
    - Dst: RlistPrependScalarIdemp
      Src: /src/core/cf-agent/files_editline.c:2556,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2561,1
    - Dst: RlistPrependScalarIdemp
      Src: /src/core/cf-agent/files_editline.c:2563,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2565,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2567,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2572,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/files_editline.c:2578,1
    - Dst: RlistPrependScalarIdemp
      Src: /src/core/cf-agent/files_editline.c:2580,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2582,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2584,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2589,1
    - Dst: AlphaSortRListNames
      Src: /src/core/cf-agent/files_editline.c:2594,1
    - Dst: RlistAppendScalarIdemp
      Src: /src/core/cf-agent/files_editline.c:2601,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editline.c:2603,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editline.c:2605,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editline.c:2610,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 6
    argNames:
    - columns
    - edcontext
    - ctx
    - pp
    - a
    - result
    argTypes:
    - Rlist**
    - EditContext*
    - EvalContext*
    - Promise*
    - Attributes*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 2514
        line_start: 2514
        source_file: /src/core/cf-agent/files_editline.c
    - condition: (edcontext != NULL)
      pos:
        line_end: 2515
        line_start: 2515
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 2616
      start: 2511
    functionDepth: 12
    functionLinenumber: 2511
    functionLinenumberEnd: 2616
    functionName: DoEditColumn
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - AlphaSortRListNames
    - RlistPrependScalarIdemp
    - RecordChange
    - assert
    - RlistAppendScalarIdemp
    - RlistDestroyEntry
    - RlistDestroy
    - RlistScalarValue
    - RecordNoChange
    - RlistKeyIn
    - PromiseResultUpdate
    - StringEqual
    - RlistLen
    linkageType: ''
    returnType: bool
    signature: "bool DoEditColumn(Rlist **columns, EditContext *edcontext,\n                         EvalContext
      *ctx, const Promise *pp, const Attributes *a,\n                         PromiseResult
      *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2622,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editline.c:2629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 2621
        line_start: 2621
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 2635
      start: 2620
    functionDepth: 1
    functionLinenumber: 2620
    functionLinenumberEnd: 2635
    functionName: NotAnchored
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - assert
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool NotAnchored(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editline.c:2641,1
    - Dst: strchr
      Src: /src/core/cf-agent/files_editline.c:2643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 2640
        line_start: 2640
        source_file: /src/core/cf-agent/files_editline.c
    constantsTouched: []
    func_position:
      end: 2644
      start: 2639
    functionDepth: 0
    functionLinenumber: 2639
    functionLinenumberEnd: 2644
    functionName: MultiLineString
    functionSourceFile: /src/core/cf-agent/files_editline.c
    functionUses: 1
    functionsReached:
    - assert
    - strchr
    linkageType: ''
    returnType: bool
    signature: bool MultiLineString(char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_exec.c:65,1
    - Dst: StringWriter
      Src: /src/core/cf-agent/verify_exec.c:66,1
    - Dst: WriterWriteF
      Src: /src/core/cf-agent/verify_exec.c:67,1
    - Dst: WriterWrite
      Src: /src/core/cf-agent/verify_exec.c:71,1
    - Dst: WriterWrite
      Src: /src/core/cf-agent/verify_exec.c:72,1
    - Dst: WriterWrite
      Src: /src/core/cf-agent/verify_exec.c:81,1
    - Dst: WriterWrite
      Src: /src/core/cf-agent/verify_exec.c:82,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_exec.c:82,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:86,1
    - Dst: StringWriterClose
      Src: /src/core/cf-agent/verify_exec.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/core/cf-agent/verify_exec.c
    constantsTouched: []
    func_position:
      end: 92
      start: 63
    functionDepth: 8
    functionLinenumber: 63
    functionLinenumberEnd: 92
    functionName: BuildCommandLine
    functionSourceFile: /src/core/cf-agent/verify_exec.c
    functionUses: 0
    functionsReached:
    - assert
    - WriterWrite
    - StringWriter
    - Log
    - RlistScalarValue
    - StringWriterClose
    - WriterWriteF
    linkageType: ''
    returnType: char
    signature: char * BuildCommandLine(const Attributes *a, const Promise *pp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetExecAttributes
      Src: /src/core/cf-agent/verify_exec.c:96,1
    - Dst: SyntaxCheckExec
      Src: /src/core/cf-agent/verify_exec.c:98,1
    - Dst: PromiseKeptExec
      Src: /src/core/cf-agent/verify_exec.c:103,1
    - Dst: GetLockNameExec
      Src: /src/core/cf-agent/verify_exec.c:108,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_exec.c:109,1
    - Dst: free
      Src: /src/core/cf-agent/verify_exec.c:110,1
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_exec.c:116,1
    - Dst: RepairExec
      Src: /src/core/cf-agent/verify_exec.c:123,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_exec.c:126,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_exec.c:130,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_exec.c:134,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_exec.c:138,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_exec.c:141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 94
    functionDepth: 12
    functionLinenumber: 94
    functionLinenumberEnd: 144
    functionName: VerifyExecPromise
    functionSourceFile: /src/core/cf-agent/verify_exec.c
    functionUses: 0
    functionsReached:
    - PromiseBanner
    - RepairExec
    - PromiseKeptExec
    - SyntaxCheckExec
    - YieldCurrentLock
    - GetExecAttributes
    - GetLockNameExec
    - AcquireLock
    - ProgrammingError
    - free
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyExecPromise(EvalContext *ctx, const Promise *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_exec.c:152,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:157,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_exec.c:158,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:165,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:170,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:175,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - attr
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/core/cf-agent/verify_exec.c
    constantsTouched: []
    func_position:
      end: 191
      start: 150
    functionDepth: 9
    functionLinenumber: 150
    functionLinenumberEnd: 191
    functionName: SyntaxCheckExec
    functionSourceFile: /src/core/cf-agent/verify_exec.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - PromiseRef
    linkageType: ''
    returnType: bool
    signature: bool SyntaxCheckExec(const Attributes *attr, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Attributes *a
    - pp
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: PromiseKeptExec
    functionSourceFile: /src/core/cf-agent/verify_exec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool PromiseKeptExec(ARG_UNUSED const Attributes *a, ARG_UNUSED const
      Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BuildCommandLine
      Src: /src/core/cf-agent/verify_exec.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 9
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: GetLockNameExec
    functionSourceFile: /src/core/cf-agent/verify_exec.c
    functionUses: 1
    functionsReached:
    - BuildCommandLine
    linkageType: ''
    returnType: char
    signature: char *GetLockNameExec(const Attributes *a, const Promise *pp)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_exec.c:208,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_exec.c:209,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-agent/verify_exec.c:224,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/verify_exec.c:224,1
    - Dst: IsExecutable
      Src: /src/core/cf-agent/verify_exec.c:226,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/verify_exec.c:226,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_exec.c:228,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_exec.c:229,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_exec.c:231,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:233,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:240,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/verify_exec.c:240,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_exec.c:247,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_exec.c:251,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_exec.c:257,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_exec.c:263,1
    - Dst: BuildCommandLine
      Src: /src/core/cf-agent/verify_exec.c:266,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_exec.c:267,1
    - Dst: free
      Src: /src/core/cf-agent/verify_exec.c:268,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:271,1
    - Dst: BeginMeasure
      Src: /src/core/cf-agent/verify_exec.c:273,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_exec.c:277,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_exec.c:278,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_exec.c:284,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_exec.c:285,1
    - Dst: CommandPrefix
      Src: /src/core/cf-agent/verify_exec.c:289,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:296,1
    - Dst: fork
      Src: /src/core/cf-agent/verify_exec.c:297,1
    - Dst: SetTimeOut
      Src: /src/core/cf-agent/verify_exec.c:305,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:309,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_exec.c:310,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:314,1
    - Dst: cf_popen_powershell_setuid
      Src: /src/core/cf-agent/verify_exec.c:323,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:326,1
    - Dst: cf_popen_shsetuid
      Src: /src/core/cf-agent/verify_exec.c:333,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_exec.c:339,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/verify_exec.c:340,1
    - Dst: SeqNew
      Src: /src/core/cf-agent/verify_exec.c:345,1
    - Dst: SeqAppend
      Src: /src/core/cf-agent/verify_exec.c:350,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_exec.c:350,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:354,1
    - Dst: cf_popensetuid
      Src: /src/core/cf-agent/verify_exec.c:360,1
    - Dst: free
      Src: /src/core/cf-agent/verify_exec.c:364,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/verify_exec.c:365,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:370,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_exec.c:370,1
    - Dst: StringSetNew
      Src: /src/core/cf-agent/verify_exec.c:374,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_exec.c:378,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/verify_exec.c:382,1
    - Dst: feof
      Src: /src/core/cf-agent/verify_exec.c:385,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:387,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_exec.c:387,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_exec.c:388,1
    - Dst: free
      Src: /src/core/cf-agent/verify_exec.c:389,1
    - Dst: strstr
      Src: /src/core/cf-agent/verify_exec.c:398,1
    - Dst: PreviewProtocolLine
      Src: /src/core/cf-agent/verify_exec.c:405,1
    - Dst: ModuleProtocol
      Src: /src/core/cf-agent/verify_exec.c:410,1
    - Dst: EmptyString
      Src: /src/core/cf-agent/verify_exec.c:413,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_exec.c:415,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_exec.c:415,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:420,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:426,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_exec.c:429,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/verify_exec.c:438,1
    - Dst: free
      Src: /src/core/cf-agent/verify_exec.c:439,1
    - Dst: cf_pclose_nowait
      Src: /src/core/cf-agent/verify_exec.c:444,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_exec.c:449,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_exec.c:453,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_exec.c:454,1
    - Dst: VerifyCommandRetcode
      Src: /src/core/cf-agent/verify_exec.c:458,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:467,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:470,1
    - Dst: alarm
      Src: /src/core/cf-agent/verify_exec.c:475,1
    - Dst: signal
      Src: /src/core/cf-agent/verify_exec.c:476,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:479,1
    - Dst: umask
      Src: /src/core/cf-agent/verify_exec.c:482,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:488,1
    - Dst: _exit
      Src: /src/core/cf-agent/verify_exec.c:491,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 146
    argCount: 4
    argNames:
    - ctx
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/core/cf-agent/verify_exec.c
    - condition: (a != NULL)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/core/cf-agent/verify_exec.c
    constantsTouched: []
    func_position:
      end: 496
      start: 205
    functionDepth: 13
    functionLinenumber: 205
    functionLinenumberEnd: 496
    functionName: RepairExec
    functionSourceFile: /src/core/cf-agent/verify_exec.c
    functionUses: 1
    functionsReached:
    - CommandArg0
    - IsAbsoluteFileName
    - feof
    - Log
    - RlistScalarValue
    - free
    - StringSetNew
    - ModuleProtocol
    - SeqAppend
    - SeqDestroy
    - snprintf
    - strlen
    - cf_popen_shsetuid
    - strchr
    - cf_pclose
    - StringFormat
    - xstrdup
    - BeginMeasure
    - CfReadLine
    - cf_pclose_nowait
    - assert
    - EmptyString
    - SeqNew
    - xmalloc
    - signal
    - umask
    - CommandPrefix
    - GetErrorStr
    - fork
    - IsExecutable
    - _exit
    - VerifyCommandRetcode
    - strstr
    - alarm
    - BuildCommandLine
    - cfPS
    - StringSetDestroy
    - cf_popensetuid
    - SetTimeOut
    - PreviewProtocolLine
    - PromiseResultUpdate
    - cf_popen_powershell_setuid
    linkageType: ''
    returnType: ActionResult
    signature: "ActionResult RepairExec(EvalContext *ctx, const Attributes *a,\n                               const
      Promise *pp, PromiseResult *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/verify_exec.c:533,1
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_exec.c:535,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_exec.c:548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - line
    - comm
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 502
    functionDepth: 8
    functionLinenumber: 502
    functionLinenumberEnd: 549
    functionName: PreviewProtocolLine
    functionSourceFile: /src/core/cf-agent/verify_exec.c
    functionUses: 1
    functionsReached:
    - strncmp
    - Log
    - strlen
    linkageType: ''
    returnType: void
    signature: void PreviewProtocolLine(char *line, char *comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getavahipath
      Src: /src/core/cf-agent/load_avahi.c:42,1
    - Dst: dlopen
      Src: /src/core/cf-agent/load_avahi.c:44,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:51,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:52,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:53,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:54,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:55,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:56,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:57,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:58,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:59,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:60,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:61,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:62,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:63,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:64,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:65,1
    - Dst: dlsym
      Src: /src/core/cf-agent/load_avahi.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 69
    functionName: loadavahi
    functionSourceFile: /src/core/cf-agent/load_avahi.c
    functionUses: 0
    functionsReached:
    - dlsym
    - dlopen
    - getavahipath
    linkageType: ''
    returnType: int
    signature: int loadavahi()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/cf-agent/load_avahi.c:73,1
    - Dst: stat
      Src: /src/core/cf-agent/load_avahi.c:76,1
    - Dst: stat
      Src: /src/core/cf-agent/load_avahi.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: getavahipath
    functionSourceFile: /src/core/cf-agent/load_avahi.c
    functionUses: 1
    functionsReached:
    - stat
    - getenv
    linkageType: ''
    returnType: char
    signature: char *getavahipath()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/retcode.c:34,1
    - Dst: assert
      Src: /src/core/cf-agent/retcode.c:35,1
    - Dst: PRINTSIZE
      Src: /src/core/cf-agent/retcode.c:43,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/retcode.c:44,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/retcode.c:51,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/retcode.c:51,1
    - Dst: RlistKeyIn
      Src: /src/core/cf-agent/retcode.c:59,1
    - Dst: cfPS
      Src: /src/core/cf-agent/retcode.c:61,1
    - Dst: RlistKeyIn
      Src: /src/core/cf-agent/retcode.c:67,1
    - Dst: cfPS
      Src: /src/core/cf-agent/retcode.c:70,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/retcode.c:73,1
    - Dst: RlistKeyIn
      Src: /src/core/cf-agent/retcode.c:77,1
    - Dst: cfPS
      Src: /src/core/cf-agent/retcode.c:79,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/retcode.c:82,1
    - Dst: cfPS
      Src: /src/core/cf-agent/retcode.c:89,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/retcode.c:92,1
    - Dst: cfPS
      Src: /src/core/cf-agent/retcode.c:101,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/retcode.c:103,1
    - Dst: cfPS
      Src: /src/core/cf-agent/retcode.c:107,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/retcode.c:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - ctx
    - retcode
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - int
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/core/cf-agent/retcode.c
    - condition: (pp != NULL)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/core/cf-agent/retcode.c
    constantsTouched: []
    func_position:
      end: 116
      start: 32
    functionDepth: 13
    functionLinenumber: 32
    functionLinenumberEnd: 116
    functionName: VerifyCommandRetcode
    functionSourceFile: /src/core/cf-agent/retcode.c
    functionUses: 3
    functionsReached:
    - PRINTSIZE
    - PromiseGetPromiseType
    - assert
    - cfPS
    - xsnprintf
    - RlistKeyIn
    - PromiseResultUpdate
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool VerifyCommandRetcode(EvalContext *ctx, int retcode, const Attributes
      *a, const Promise *pp, PromiseResult *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:79,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/files_changes.c:82,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/files_changes.c:86,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/files_changes.c:87,1
    - Dst: HashNameFromId
      Src: /src/core/cf-agent/files_changes.c:87,1
    - Dst: memcpy
      Src: /src/core/cf-agent/files_changes.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - type
    - name
    - size
    argTypes:
    - char
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: NewIndexKey
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - xcalloc
    - strlen
    - strlcpy
    - HashNameFromId
    linkageType: ''
    returnType: char
    signature: char *NewIndexKey(char type, const char *name, int *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/files_changes.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: DeleteIndexKey
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void DeleteIndexKey(char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-agent/files_changes.c:101,1
    - Dst: memcpy
      Src: /src/core/cf-agent/files_changes.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - digest
    argTypes:
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: NewHashValue
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - memcpy
    linkageType: ''
    returnType: ChecksumValue
    signature: ChecksumValue *NewHashValue(unsigned char digest[EVP_MAX_MD_SIZE +
      1])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/files_changes.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chk_val
    argTypes:
    - ChecksumValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: DeleteHashValue
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void DeleteHashValue(ChecksumValue *chk_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NewIndexKey
      Src: /src/core/cf-agent/files_changes.c:119,1
    - Dst: ReadComplexKeyDB
      Src: /src/core/cf-agent/files_changes.c:121,1
    - Dst: memcpy
      Src: /src/core/cf-agent/files_changes.c:123,1
    - Dst: DeleteIndexKey
      Src: /src/core/cf-agent/files_changes.c:124,1
    - Dst: DeleteIndexKey
      Src: /src/core/cf-agent/files_changes.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - dbp
    - type
    - name
    - digest
    argTypes:
    - CF_DB*
    - HashMethod
    - char*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 132
    functionName: ReadHash
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - NewIndexKey
    - ReadComplexKeyDB
    - DeleteIndexKey
    linkageType: ''
    returnType: bool
    signature: bool ReadHash(CF_DB *dbp, HashMethod type, const char *name, unsigned
      char digest[EVP_MAX_MD_SIZE + 1])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NewIndexKey
      Src: /src/core/cf-agent/files_changes.c:140,1
    - Dst: NewHashValue
      Src: /src/core/cf-agent/files_changes.c:141,1
    - Dst: WriteComplexKeyDB
      Src: /src/core/cf-agent/files_changes.c:142,1
    - Dst: DeleteIndexKey
      Src: /src/core/cf-agent/files_changes.c:143,1
    - Dst: DeleteHashValue
      Src: /src/core/cf-agent/files_changes.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dbp
    - type
    - name
    - digest
    argTypes:
    - CF_DB*
    - HashMethod
    - char*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: WriteHash
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - DeleteHashValue
    - NewIndexKey
    - DeleteIndexKey
    - NewHashValue
    - WriteComplexKeyDB
    linkageType: ''
    returnType: int
    signature: int WriteHash(CF_DB *dbp, HashMethod type, const char *name, unsigned
      char digest[EVP_MAX_MD_SIZE + 1])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NewIndexKey
      Src: /src/core/cf-agent/files_changes.c:153,1
    - Dst: DeleteComplexKeyDB
      Src: /src/core/cf-agent/files_changes.c:154,1
    - Dst: DeleteIndexKey
      Src: /src/core/cf-agent/files_changes.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dbp
    - type
    - name
    argTypes:
    - CF_DB*
    - HashMethod
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: DeleteHash
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - NewIndexKey
    - DeleteComplexKeyDB
    - DeleteIndexKey
    linkageType: ''
    returnType: void
    signature: void DeleteHash(CF_DB *dbp, HashMethod type, const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:162,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_changes.c:164,1
    - Dst: strrchr
      Src: /src/core/cf-agent/files_changes.c:166,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:170,1
    - Dst: SeqNew
      Src: /src/core/cf-agent/files_changes.c:189,1
    - Dst: GetDirectoryListFromDatabase
      Src: /src/core/cf-agent/files_changes.c:190,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:192,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/files_changes.c:193,1
    - Dst: SeqBinaryIndexOf
      Src: /src/core/cf-agent/files_changes.c:197,1
    - Dst: SeqAppend
      Src: /src/core/cf-agent/files_changes.c:199,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_changes.c:199,1
    - Dst: SeqSort
      Src: /src/core/cf-agent/files_changes.c:200,1
    - Dst: FileChangesSetDirectoryList
      Src: /src/core/cf-agent/files_changes.c:202,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:204,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/files_changes.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - changes_db
    - file
    - common_msg
    argTypes:
    - CF_DB*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 158
    functionDepth: 8
    functionLinenumber: 158
    functionLinenumberEnd: 209
    functionName: AddMigratedFileToDirectoryList
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - strlen
    - SeqNew
    - strrchr
    - Log
    - GetDirectoryListFromDatabase
    - xstrdup
    - FileChangesSetDirectoryList
    - SeqSort
    - strcpy
    - SeqBinaryIndexOf
    - SeqAppend
    linkageType: ''
    returnType: void
    signature: void AddMigratedFileToDirectoryList(CF_DB *changes_db, const char *file,
      const char *common_msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/cf-agent/files_changes.c:217,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:219,1
    - Dst: NewDBCursor
      Src: /src/core/cf-agent/files_changes.c:224,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:226,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:227,1
    - Dst: NextDB
      Src: /src/core/cf-agent/files_changes.c:235,1
    - Dst: memcpy
      Src: /src/core/cf-agent/files_changes.c:240,1
    - Dst: WriteComplexKeyDB
      Src: /src/core/cf-agent/files_changes.c:241,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:243,1
    - Dst: AddMigratedFileToDirectoryList
      Src: /src/core/cf-agent/files_changes.c:246,1
    - Dst: DeleteDBCursor
      Src: /src/core/cf-agent/files_changes.c:249,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - changes_db
    argTypes:
    - CF_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 211
    functionDepth: 10
    functionLinenumber: 211
    functionLinenumberEnd: 253
    functionName: MigrateOldChecksumDatabase
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - NewDBCursor
    - AddMigratedFileToDirectoryList
    - OpenDB
    - DeleteDBCursor
    - Log
    - CloseDB
    - NextDB
    - WriteComplexKeyDB
    linkageType: ''
    returnType: bool
    signature: bool MigrateOldChecksumDatabase(CF_DB *changes_db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/cf-agent/files_changes.c:261,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:263,1
    - Dst: NewDBCursor
      Src: /src/core/cf-agent/files_changes.c:268,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:270,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:271,1
    - Dst: NextDB
      Src: /src/core/cf-agent/files_changes.c:279,1
    - Dst: memcpy
      Src: /src/core/cf-agent/files_changes.c:284,1
    - Dst: WriteComplexKeyDB
      Src: /src/core/cf-agent/files_changes.c:285,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:287,1
    - Dst: AddMigratedFileToDirectoryList
      Src: /src/core/cf-agent/files_changes.c:290,1
    - Dst: DeleteDBCursor
      Src: /src/core/cf-agent/files_changes.c:293,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - changes_db
    argTypes:
    - CF_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 255
    functionDepth: 10
    functionLinenumber: 255
    functionLinenumberEnd: 297
    functionName: MigrateOldStatDatabase
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - NewDBCursor
    - AddMigratedFileToDirectoryList
    - OpenDB
    - DeleteDBCursor
    - Log
    - CloseDB
    - NextDB
    - WriteComplexKeyDB
    linkageType: ''
    returnType: bool
    signature: bool MigrateOldStatDatabase(CF_DB *changes_db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OpenDB
      Src: /src/core/cf-agent/files_changes.c:301,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:303,1
    - Dst: DBIdToPath
      Src: /src/core/cf-agent/files_changes.c:308,1
    - Dst: DBIdToPath
      Src: /src/core/cf-agent/files_changes.c:309,1
    - Dst: stat
      Src: /src/core/cf-agent/files_changes.c:311,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:313,1
    - Dst: MigrateOldChecksumDatabase
      Src: /src/core/cf-agent/files_changes.c:314,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_changes.c:316,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:317,1
    - Dst: rename
      Src: /src/core/cf-agent/files_changes.c:319,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:321,1
    - Dst: stat
      Src: /src/core/cf-agent/files_changes.c:325,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:327,1
    - Dst: MigrateOldStatDatabase
      Src: /src/core/cf-agent/files_changes.c:328,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_changes.c:330,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:331,1
    - Dst: rename
      Src: /src/core/cf-agent/files_changes.c:333,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:335,1
    - Dst: free
      Src: /src/core/cf-agent/files_changes.c:339,1
    - Dst: free
      Src: /src/core/cf-agent/files_changes.c:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - db
    argTypes:
    - CF_DB**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 299
    functionDepth: 11
    functionLinenumber: 299
    functionLinenumberEnd: 343
    functionName: OpenChangesDB
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - stat
    - MigrateOldStatDatabase
    - snprintf
    - OpenDB
    - MigrateOldChecksumDatabase
    - Log
    - free
    - rename
    - DBIdToPath
    linkageType: ''
    returnType: bool
    signature: bool OpenChangesDB(CF_DB **db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteHash
      Src: /src/core/cf-agent/files_changes.c:349,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:351,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/files_changes.c:352,1
    - Dst: DeleteDB
      Src: /src/core/cf-agent/files_changes.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - db
    - path
    argTypes:
    - CF_DB*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: RemoveAllFileTraces
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - DeleteHash
    - DeleteDB
    - xsnprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void RemoveAllFileTraces(CF_DB *db, const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:358,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/files_changes.c:359,1
    - Dst: HasKeyDB
      Src: /src/core/cf-agent/files_changes.c:360,1
    - Dst: ValueSizeDB
      Src: /src/core/cf-agent/files_changes.c:365,1
    - Dst: ReadDB
      Src: /src/core/cf-agent/files_changes.c:374,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:376,1
    - Dst: memchr
      Src: /src/core/cf-agent/files_changes.c:383,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:386,1
    - Dst: SeqAppend
      Src: /src/core/cf-agent/files_changes.c:390,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_changes.c:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - db
    - path
    - files
    argTypes:
    - CF_DB*
    - char*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 356
    functionDepth: 8
    functionLinenumber: 356
    functionLinenumberEnd: 395
    functionName: GetDirectoryListFromDatabase
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 1
    functionsReached:
    - strlen
    - SeqAppend
    - ReadDB
    - xsnprintf
    - Log
    - HasKeyDB
    - xstrdup
    - ValueSizeDB
    - memchr
    linkageType: ''
    returnType: bool
    signature: bool GetDirectoryListFromDatabase(CF_DB *db, const char *path, Seq
      *files)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenChangesDB
      Src: /src/core/cf-agent/files_changes.c:400,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:402,1
    - Dst: GetDirectoryListFromDatabase
      Src: /src/core/cf-agent/files_changes.c:406,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - path
    - files
    argTypes:
    - char*
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 12
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: FileChangesGetDirectoryList
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 2
    functionsReached:
    - GetDirectoryListFromDatabase
    - Log
    - OpenChangesDB
    - CloseDB
    linkageType: ''
    returnType: bool
    signature: bool FileChangesGetDirectoryList(const char *path, Seq *files)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_changes.c:413,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/files_changes.c:416,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:418,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/files_changes.c:419,1
    - Dst: DeleteDB
      Src: /src/core/cf-agent/files_changes.c:423,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:429,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/files_changes.c:429,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_changes.c:436,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/files_changes.c:436,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:437,1
    - Dst: HasKeyDB
      Src: /src/core/cf-agent/files_changes.c:440,1
    - Dst: MAX
      Src: /src/core/cf-agent/files_changes.c:442,1
    - Dst: ReadDB
      Src: /src/core/cf-agent/files_changes.c:443,1
    - Dst: memcmp
      Src: /src/core/cf-agent/files_changes.c:444,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:446,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/files_changes.c:452,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - db
    - path
    - files
    - change
    argTypes:
    - CF_DB*
    - char*
    - Seq*
    - bool*
    assertStmts:
    - condition: (change != NULL)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/core/cf-agent/files_changes.c
    constantsTouched: []
    func_position:
      end: 460
      start: 411
    functionDepth: 8
    functionLinenumber: 411
    functionLinenumberEnd: 460
    functionName: FileChangesSetDirectoryList
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 1
    functionsReached:
    - MAX
    - DeleteDB
    - strlen
    - assert
    - memcmp
    - WriteDB
    - ReadDB
    - xsnprintf
    - Log
    - HasKeyDB
    - SeqLength
    - strcpy
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool FileChangesSetDirectoryList(CF_DB *db, const char *path, const
      Seq *files, bool *change)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_changes.c:475,1
    - Dst: HashSizeFromId
      Src: /src/core/cf-agent/files_changes.c:477,1
    - Dst: OpenChangesDB
      Src: /src/core/cf-agent/files_changes.c:485,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:487,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:488,1
    - Dst: ReadHash
      Src: /src/core/cf-agent/files_changes.c:492,1
    - Dst: memcmp
      Src: /src/core/cf-agent/files_changes.c:495,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:498,1
    - Dst: HashNameFromId
      Src: /src/core/cf-agent/files_changes.c:498,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:501,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:515,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:524,1
    - Dst: HashNameFromId
      Src: /src/core/cf-agent/files_changes.c:525,1
    - Dst: HashPrintSafe
      Src: /src/core/cf-agent/files_changes.c:526,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:527,1
    - Dst: WriteHash
      Src: /src/core/cf-agent/files_changes.c:529,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:535,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:536,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_changes.c:542,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:543,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:547,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 7
    argNames:
    - ctx
    - filename
    - digest
    - type
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - unsigned char[]
    - HashMethod
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/core/cf-agent/files_changes.c
    constantsTouched: []
    func_position:
      end: 549
      start: 467
    functionDepth: 12
    functionLinenumber: 467
    functionLinenumberEnd: 549
    functionName: FileChangesCheckAndUpdateHash
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 1
    functionsReached:
    - RecordChange
    - ReadHash
    - MakingInternalChanges
    - assert
    - HashPrintSafe
    - OpenChangesDB
    - RecordFailure
    - WriteHash
    - HashSizeFromId
    - Log
    - CloseDB
    - RecordNoChange
    - memcmp
    - PromiseResultUpdate
    - HashNameFromId
    linkageType: ''
    returnType: bool
    signature: "bool FileChangesCheckAndUpdateHash(EvalContext *ctx,\n                                   const
      char *filename,\n                                   unsigned char digest[EVP_MAX_MD_SIZE
      + 1],\n                                   HashMethod type,\n                                   const
      Attributes *attr,\n                                   const Promise *pp,\n                                   PromiseResult
      *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:553,1
    - Dst: FileChangesLogChange
      Src: /src/core/cf-agent/files_changes.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - pp
    argTypes:
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 551
    functionDepth: 8
    functionLinenumber: 551
    functionLinenumberEnd: 555
    functionName: FileChangesLogNewFile
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 1
    functionsReached:
    - Log
    - FileChangesLogChange
    linkageType: ''
    returnType: bool
    signature: bool FileChangesLogNewFile(const char *path, const Promise *pp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OpenChangesDB
      Src: /src/core/cf-agent/files_changes.c:563,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:565,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:566,1
    - Dst: SeqSoftSort
      Src: /src/core/cf-agent/files_changes.c:570,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/files_changes.c:574,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/files_changes.c:575,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_changes.c:589,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/files_changes.c:589,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/files_changes.c:589,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/files_changes.c:605,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:606,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:606,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/files_changes.c:607,1
    - Dst: FileChangesLogNewFile
      Src: /src/core/cf-agent/files_changes.c:608,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:612,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/files_changes.c:617,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:618,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:618,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/files_changes.c:619,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:621,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:622,1
    - Dst: FileChangesLogChange
      Src: /src/core/cf-agent/files_changes.c:625,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:627,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:628,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:632,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:633,1
    - Dst: RemoveAllFileTraces
      Src: /src/core/cf-agent/files_changes.c:637,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:649,1
    - Dst: FileChangesSetDirectoryList
      Src: /src/core/cf-agent/files_changes.c:653,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:657,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:658,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:663,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:664,1
    - Dst: SeqSoftDestroy
      Src: /src/core/cf-agent/files_changes.c:668,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:669,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 8
    argNames:
    - ctx
    - attr
    - name
    - file_set
    - db_file_set
    - update
    - pp
    - result
    argTypes:
    - EvalContext*
    - Attributes*
    - char*
    - Seq*
    - Seq*
    - bool
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 558
    functionDepth: 12
    functionLinenumber: 558
    functionLinenumberEnd: 670
    functionName: FileChangesCheckAndUpdateDirectory
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 1
    functionsReached:
    - RemoveAllFileTraces
    - SeqSoftDestroy
    - RecordChange
    - strlen
    - MakingInternalChanges
    - FileChangesLogNewFile
    - OpenChangesDB
    - RecordFailure
    - FileChangesSetDirectoryList
    - Log
    - strcmp
    - xsnprintf
    - FileChangesLogChange
    - SeqLength
    - CloseDB
    - SeqSoftSort
    - PromiseResultUpdate
    - SeqAt
    linkageType: ''
    returnType: void
    signature: "void FileChangesCheckAndUpdateDirectory(EvalContext *ctx, const Attributes
      *attr,\n                                        const char *name, const Seq
      *file_set, const Seq *db_file_set,\n                                        bool
      update, const Promise *pp, PromiseResult *result)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: OpenChangesDB
      Src: /src/core/cf-agent/files_changes.c:683,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:685,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:686,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:690,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/files_changes.c:691,1
    - Dst: ReadDB
      Src: /src/core/cf-agent/files_changes.c:693,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:695,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/files_changes.c:698,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:700,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:701,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:705,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:706,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:710,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_changes.c:721,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:722,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:728,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_changes.c:732,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:735,1
    - Dst: FileChangesLogChange
      Src: /src/core/cf-agent/files_changes.c:737,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:739,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:740,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:744,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:745,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:752,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_changes.c:756,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:759,1
    - Dst: FileChangesLogChange
      Src: /src/core/cf-agent/files_changes.c:762,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:764,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:765,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:769,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:770,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:777,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_changes.c:781,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:784,1
    - Dst: FileChangesLogChange
      Src: /src/core/cf-agent/files_changes.c:787,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:789,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:790,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:794,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:795,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:802,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_changes.c:806,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:809,1
    - Dst: FileChangesLogChange
      Src: /src/core/cf-agent/files_changes.c:811,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:813,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:814,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:818,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:819,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:826,1
    - Dst: StringCopy
      Src: /src/core/cf-agent/files_changes.c:839,1
    - Dst: ctime
      Src: /src/core/cf-agent/files_changes.c:839,1
    - Dst: StringCopy
      Src: /src/core/cf-agent/files_changes.c:840,1
    - Dst: ctime
      Src: /src/core/cf-agent/files_changes.c:840,1
    - Dst: assert
      Src: /src/core/cf-agent/files_changes.c:842,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:842,1
    - Dst: assert
      Src: /src/core/cf-agent/files_changes.c:843,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_changes.c:843,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:845,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_changes.c:848,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:851,1
    - Dst: FileChangesLogChange
      Src: /src/core/cf-agent/files_changes.c:853,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:855,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:856,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:860,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:861,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:868,1
    - Dst: MakingInternalChanges
      Src: /src/core/cf-agent/files_changes.c:873,1
    - Dst: DeleteDB
      Src: /src/core/cf-agent/files_changes.c:876,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/files_changes.c:876,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_changes.c:878,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:879,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_changes.c:883,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_changes.c:884,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/files_changes.c:889,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 112
    argCount: 7
    argNames:
    - ctx
    - file
    - sb
    - update
    - attr
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - struct stat*
    - bool
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (strlen(from) == 24)
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/core/cf-agent/files_changes.c
    - condition: (strlen(to) == 24)
      pos:
        line_end: 842
        line_start: 842
        source_file: /src/core/cf-agent/files_changes.c
    constantsTouched: []
    func_position:
      end: 890
      start: 672
    functionDepth: 12
    functionLinenumber: 672
    functionLinenumberEnd: 890
    functionName: FileChangesCheckAndUpdateStats
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 1
    functionsReached:
    - ctime
    - DeleteDB
    - RecordChange
    - snprintf
    - strlen
    - MakingInternalChanges
    - assert
    - StringCopy
    - OpenChangesDB
    - RecordFailure
    - ReadDB
    - xsnprintf
    - CloseDB
    - WriteDB
    - Log
    - RecordNoChange
    - FileChangesLogChange
    - PromiseResultUpdate
    linkageType: ''
    returnType: void
    signature: "void FileChangesCheckAndUpdateStats(EvalContext *ctx,\n                                    const
      char *file,\n                                    const struct stat *sb,\n                                    bool
      update,\n                                    const Attributes *attr,\n                                    const
      Promise *pp,\n                                    PromiseResult *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/files_changes.c:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - status
    argTypes:
    - FileState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 911
    functionName: FileStateToChar
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 0
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char FileStateToChar(FileState status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-agent/files_changes.c:916,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_changes.c:920,1
    - Dst: GetStateDir
      Src: /src/core/cf-agent/files_changes.c:920,1
    - Dst: MapName
      Src: /src/core/cf-agent/files_changes.c:921,1
    - Dst: stat
      Src: /src/core/cf-agent/files_changes.c:925,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:929,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/files_changes.c:934,1
    - Dst: Log
      Src: /src/core/cf-agent/files_changes.c:937,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_changes.c:937,1
    - Dst: PromiseID
      Src: /src/core/cf-agent/files_changes.c:941,1
    - Dst: fprintf
      Src: /src/core/cf-agent/files_changes.c:943,1
    - Dst: FileStateToChar
      Src: /src/core/cf-agent/files_changes.c:943,1
    - Dst: fclose
      Src: /src/core/cf-agent/files_changes.c:944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - file
    - status
    - msg
    - pp
    argTypes:
    - char*
    - FileState
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 913
    functionDepth: 8
    functionLinenumber: 913
    functionLinenumberEnd: 946
    functionName: FileChangesLogChange
    functionSourceFile: /src/core/cf-agent/files_changes.c
    functionUses: 4
    functionsReached:
    - GetErrorStr
    - stat
    - snprintf
    - FileStateToChar
    - MapName
    - GetStateDir
    - safe_fopen
    - Log
    - fclose
    - fprintf
    - PromiseID
    - time
    linkageType: ''
    returnType: bool
    signature: bool FileChangesLogChange(const char *file, FileState status, char
      *msg, const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqNew
      Src: /src/core/cf-agent/verify_storage.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: GetGlobalMountedFSList
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 0
    functionsReached:
    - SeqNew
    linkageType: ''
    returnType: Seq
    signature: Seq *GetGlobalMountedFSList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_storage.c:74,1
    - Dst: FindStoragePromiserObjects
      Src: /src/core/cf-agent/verify_storage.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 9
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: FindAndVerifyStoragePromises
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 0
    functionsReached:
    - FindStoragePromiserObjects
    - PromiseBanner
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult FindAndVerifyStoragePromises(EvalContext *ctx, const
      Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LocateFilePromiserGroup
      Src: /src/core/cf-agent/verify_storage.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: FindStoragePromiserObjects
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 1
    functionsReached:
    - LocateFilePromiserGroup
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult FindStoragePromiserObjects(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GetStorageAttributes
      Src: /src/core/cf-agent/verify_storage.c:93,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:98,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:108,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:112,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:119,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_storage.c:124,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/verify_storage.c:136,1
    - Dst: GetGlobalMountedFSList
      Src: /src/core/cf-agent/verify_storage.c:136,1
    - Dst: LoadMountInfo
      Src: /src/core/cf-agent/verify_storage.c:137,1
    - Dst: GetGlobalMountedFSList
      Src: /src/core/cf-agent/verify_storage.c:137,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:139,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_storage.c:140,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_storage.c:146,1
    - Dst: VerifyMountPromise
      Src: /src/core/cf-agent/verify_storage.c:146,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_storage.c:154,1
    - Dst: VerifyFileSystem
      Src: /src/core/cf-agent/verify_storage.c:154,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_storage.c:158,1
    - Dst: VerifyFreeSpace
      Src: /src/core/cf-agent/verify_storage.c:158,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_storage.c:163,1
    - Dst: VolumeScanArrivals
      Src: /src/core/cf-agent/verify_storage.c:163,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_storage.c:167,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - path
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 89
    functionDepth: 12
    functionLinenumber: 89
    functionLinenumberEnd: 169
    functionName: VerifyStoragePromise
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 0
    functionsReached:
    - GetGlobalMountedFSList
    - VerifyMountPromise
    - VolumeScanArrivals
    - YieldCurrentLock
    - LoadMountInfo
    - VerifyFileSystem
    - GetStorageAttributes
    - VerifyFreeSpace
    - AcquireLock
    - Log
    - SeqLength
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyStoragePromise(EvalContext *ctx, char *path, const
      Promise *pp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:184,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_storage.c:186,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_storage.c:191,1
    - Dst: KillGhostLink
      Src: /src/core/cf-agent/verify_storage.c:194,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/verify_storage.c:200,1
    - Dst: DirOpen
      Src: /src/core/cf-agent/verify_storage.c:202,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:204,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_storage.c:204,1
    - Dst: DirRead
      Src: /src/core/cf-agent/verify_storage.c:208,1
    - Dst: DirRead
      Src: /src/core/cf-agent/verify_storage.c:208,1
    - Dst: ConsiderLocalFile
      Src: /src/core/cf-agent/verify_storage.c:210,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_storage.c:217,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_storage.c:219,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_storage.c:221,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_storage.c:224,1
    - Dst: lstat
      Src: /src/core/cf-agent/verify_storage.c:226,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/verify_storage.c:228,1
    - Dst: KillGhostLink
      Src: /src/core/cf-agent/verify_storage.c:230,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:234,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_storage.c:234,1
    - Dst: DirClose
      Src: /src/core/cf-agent/verify_storage.c:241,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:245,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_storage.c:251,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_storage.c:258,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_storage.c:264,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 4
    argNames:
    - ctx
    - name
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 175
    functionDepth: 13
    functionLinenumber: 175
    functionLinenumberEnd: 266
    functionName: VerifyFileSystem
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - S_ISLNK
    - strlen
    - KillGhostLink
    - DirOpen
    - S_ISDIR
    - DirRead
    - cfPS
    - strcat
    - Log
    - ConsiderLocalFile
    - lstat
    - DirClose
    - strcpy
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyFileSystem(EvalContext *ctx, char *name, const
      Attributes *a, const Promise *pp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:277,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_storage.c:281,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:283,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_storage.c:283,1
    - Dst: IsForeignFileSystem
      Src: /src/core/cf-agent/verify_storage.c:290,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:292,1
    - Dst: GetDiskUsage
      Src: /src/core/cf-agent/verify_storage.c:301,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_storage.c:305,1
    - Dst: GetDiskUsage
      Src: /src/core/cf-agent/verify_storage.c:314,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_storage.c:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - file
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 270
    functionDepth: 13
    functionLinenumber: 270
    functionLinenumberEnd: 325
    functionName: VerifyFreeSpace
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - cfPS
    - IsForeignFileSystem
    - Log
    - GetDiskUsage
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyFreeSpace(EvalContext *ctx, char *file, const Attributes
      *a, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - Attributes *a
    - pp
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 8
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: VolumeScanArrivals
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VolumeScanArrivals(ARG_UNUSED char *file, ARG_UNUSED
      const Attributes *a, ARG_UNUSED const Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/cf-agent/verify_storage.c:346,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/verify_storage.c:348,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_storage.c:357,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_storage.c:363,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:365,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:371,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:381,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - list
    - name
    - a
    argTypes:
    - Seq*
    - char*
    - Attributes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 342
    functionDepth: 8
    functionLinenumber: 342
    functionLinenumberEnd: 387
    functionName: FileSystemMountedCorrectly
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 0
    functionsReached:
    - SeqLength
    - Log
    - strcmp
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool FileSystemMountedCorrectly(Seq *list, char *name, const Attributes
      *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_storage.c:399,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_storage.c:401,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_storage.c:403,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_storage.c:407,1
    - Dst: strcat
      Src: /src/core/cf-agent/verify_storage.c:408,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_storage.c:411,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:413,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_storage.c:413,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:419,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/verify_storage.c:421,1
    - Dst: GetGlobalMountedFSList
      Src: /src/core/cf-agent/verify_storage.c:421,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/verify_storage.c:423,1
    - Dst: GetGlobalMountedFSList
      Src: /src/core/cf-agent/verify_storage.c:423,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_storage.c:425,1
    - Dst: strstr
      Src: /src/core/cf-agent/verify_storage.c:428,1
    - Dst: strstr
      Src: /src/core/cf-agent/verify_storage.c:429,1
    - Dst: strstr
      Src: /src/core/cf-agent/verify_storage.c:430,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - childstat
    - dir
    argTypes:
    - struct stat*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 393
    functionDepth: 8
    functionLinenumber: 393
    functionLinenumberEnd: 439
    functionName: IsForeignFileSystem
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - GetGlobalMountedFSList
    - strlen
    - strstr
    - strcat
    - Log
    - strcmp
    - SeqLength
    - strlcpy
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool IsForeignFileSystem(struct stat *childstat, char *dir)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:447,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_storage.c:449,1
    - Dst: IsPrivileged
      Src: /src/core/cf-agent/verify_storage.c:451,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_storage.c:453,1
    - Dst: Rlist2String
      Src: /src/core/cf-agent/verify_storage.c:457,1
    - Dst: FileSystemMountedCorrectly
      Src: /src/core/cf-agent/verify_storage.c:460,1
    - Dst: GetGlobalMountedFSList
      Src: /src/core/cf-agent/verify_storage.c:460,1
    - Dst: MakeParentDirectory
      Src: /src/core/cf-agent/verify_storage.c:464,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:468,1
    - Dst: VerifyInFstab
      Src: /src/core/cf-agent/verify_storage.c:475,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_storage.c:479,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_storage.c:482,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_storage.c:484,1
    - Dst: VerifyMount
      Src: /src/core/cf-agent/verify_storage.c:484,1
    - Dst: VerifyNotInFstab
      Src: /src/core/cf-agent/verify_storage.c:491,1
    - Dst: VerifyUnmount
      Src: /src/core/cf-agent/verify_storage.c:504,1
    - Dst: VerifyNotInFstab
      Src: /src/core/cf-agent/verify_storage.c:507,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_storage.c:512,1
    - Dst: free
      Src: /src/core/cf-agent/verify_storage.c:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - name
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 441
    functionDepth: 14
    functionLinenumber: 441
    functionLinenumberEnd: 518
    functionName: VerifyMountPromise
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 1
    functionsReached:
    - VerifyInFstab
    - Rlist2String
    - IsPrivileged
    - snprintf
    - GetGlobalMountedFSList
    - VerifyUnmount
    - MakeParentDirectory
    - cfPS
    - FileSystemMountedCorrectly
    - VerifyMount
    - Log
    - VerifyNotInFstab
    - free
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyMountPromise(EvalContext *ctx, char *name, const
      Attributes *a, const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CleanupNFS
      Src: /src/core/cf-agent/verify_storage.c:525,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_storage.c:529,1
    - Dst: MountAll
      Src: /src/core/cf-agent/verify_storage.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 522
    functionDepth: 12
    functionLinenumber: 522
    functionLinenumberEnd: 533
    functionName: DeleteStorageContext
    functionSourceFile: /src/core/cf-agent/verify_storage.c
    functionUses: 0
    functionsReached:
    - CleanupNFS
    - Log
    - MountAll
    linkageType: ''
    returnType: void
    signature: void DeleteStorageContext(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_databases.c:65,1
    - Dst: GetDatabaseAttributes
      Src: /src/core/cf-agent/verify_databases.c:67,1
    - Dst: CheckDatabaseSanity
      Src: /src/core/cf-agent/verify_databases.c:69,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:74,1
    - Dst: VerifySQLPromise
      Src: /src/core/cf-agent/verify_databases.c:76,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:78,1
    - Dst: VerifyRegistryPromise
      Src: /src/core/cf-agent/verify_databases.c:81,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_databases.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 9
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: VerifyDatabasePromises
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 0
    functionsReached:
    - VerifySQLPromise
    - PromiseBanner
    - CheckDatabaseSanity
    - strcmp
    - ProgrammingError
    - VerifyRegistryPromise
    - GetDatabaseAttributes
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyDatabasePromises(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:97,1
    - Dst: nt_static_assert
      Src: /src/core/cf-agent/verify_databases.c:102,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:109,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_databases.c:111,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_databases.c:122,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_databases.c:125,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_databases.c:126,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:128,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:130,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_databases.c:132,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_databases.c:133,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:142,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_databases.c:143,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:144,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:147,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_databases.c:149,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:154,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_databases.c:156,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_databases.c:157,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:161,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_databases.c:164,1
    - Dst: CfConnectDB
      Src: /src/core/cf-agent/verify_databases.c:169,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:176,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:178,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_databases.c:179,1
    - Dst: CfCloseDB
      Src: /src/core/cf-agent/verify_databases.c:180,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_databases.c:181,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:188,1
    - Dst: CfConnectDB
      Src: /src/core/cf-agent/verify_databases.c:190,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:195,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_databases.c:196,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:202,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:202,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:202,1
    - Dst: VerifyDatabasePromise
      Src: /src/core/cf-agent/verify_databases.c:204,1
    - Dst: CfCloseDB
      Src: /src/core/cf-agent/verify_databases.c:209,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:214,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_databases.c:216,1
    - Dst: CfConnectDB
      Src: /src/core/cf-agent/verify_databases.c:220,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:225,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:229,1
    - Dst: VerifyTablePromise
      Src: /src/core/cf-agent/verify_databases.c:231,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:233,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:237,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:238,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:245,1
    - Dst: CfCloseDB
      Src: /src/core/cf-agent/verify_databases.c:249,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_databases.c:252,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 3
    argNames:
    - ctx
    - a
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/core/cf-agent/verify_databases.c
    constantsTouched: []
    func_position:
      end: 255
      start: 95
    functionDepth: 13
    functionLinenumber: 95
    functionLinenumberEnd: 255
    functionName: VerifySQLPromise
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - CfConnectDB
    - AcquireLock
    - Log
    - strlcpy
    - snprintf
    - nt_static_assert
    - strlen
    - VerifyDatabasePromise
    - YieldCurrentLock
    - CfCloseDB
    - sscanf
    - strchr
    - strcmp
    - strcpy
    - assert
    - VerifyTablePromise
    - cfPS
    - PromiseRef
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifySQLPromise(EvalContext *ctx, const Attributes *a,
      const Promise *pp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:259,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:263,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:267,1
    - Dst: CreateDBQuery
      Src: /src/core/cf-agent/verify_databases.c:271,1
    - Dst: CfNewQueryDB
      Src: /src/core/cf-agent/verify_databases.c:273,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:277,1
    - Dst: CfFetchRow
      Src: /src/core/cf-agent/verify_databases.c:282,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_databases.c:284,1
    - Dst: CfFetchColumn
      Src: /src/core/cf-agent/verify_databases.c:284,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:286,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:288,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:296,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:301,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:304,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:308,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:309,1
    - Dst: CfVoidQueryDB
      Src: /src/core/cf-agent/verify_databases.c:310,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:315,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:320,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:324,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:325,1
    - Dst: CfVoidQueryDB
      Src: /src/core/cf-agent/verify_databases.c:326,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:331,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - cfdb
    - database
    - a
    argTypes:
    - CfdbConn*
    - char*
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/core/cf-agent/verify_databases.c
    constantsTouched: []
    func_position:
      end: 337
      start: 257
    functionDepth: 8
    functionLinenumber: 257
    functionLinenumberEnd: 337
    functionName: VerifyDatabasePromise
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - snprintf
    - assert
    - CfVoidQueryDB
    - Log
    - CfNewQueryDB
    - strcmp
    - CreateDBQuery
    - CfFetchColumn
    - CfFetchRow
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool VerifyDatabasePromise(CfdbConn *cfdb, char *database, const Attributes
      *a)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:343,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:347,1
    - Dst: CheckRegistrySanity
      Src: /src/core/cf-agent/verify_databases.c:349,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:351,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_databases.c:353,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_databases.c:353,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_databases.c:354,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:358,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:364,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:371,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:377,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:383,1
    - Dst: CountChar
      Src: /src/core/cf-agent/verify_databases.c:389,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_databases.c:389,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:393,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:401,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:401,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:405,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/core/cf-agent/verify_databases.c
    constantsTouched: []
    func_position:
      end: 412
      start: 341
    functionDepth: 8
    functionLinenumber: 341
    functionLinenumberEnd: 412
    functionName: CheckDatabaseSanity
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - RlistScalarValue
    - CountChar
    - assert
    - strchr
    - Log
    - strcmp
    - CheckRegistrySanity
    linkageType: ''
    returnType: int
    signature: int CheckDatabaseSanity(const Attributes *a, const Promise *pp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:416,1
    - Dst: ValidateRegistryPromiser
      Src: /src/core/cf-agent/verify_databases.c:419,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:421,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:425,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:430,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:436,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:436,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:440,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:445,1
    - Dst: CountChar
      Src: /src/core/cf-agent/verify_databases.c:452,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_databases.c:452,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:454,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_databases.c:454,1
    - Dst: CountChar
      Src: /src/core/cf-agent/verify_databases.c:461,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_databases.c:461,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:463,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/core/cf-agent/verify_databases.c
    constantsTouched: []
    func_position:
      end: 469
      start: 414
    functionDepth: 8
    functionLinenumber: 414
    functionLinenumberEnd: 469
    functionName: CheckRegistrySanity
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - CountChar
    - assert
    - ValidateRegistryPromiser
    - Log
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool CheckRegistrySanity(const Attributes *a, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_databases.c:482,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_databases.c:483,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:486,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:487,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_databases.c:488,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:495,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:501,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_databases.c:502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - key
    - pp
    argTypes:
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 471
    functionDepth: 9
    functionLinenumber: 471
    functionLinenumberEnd: 504
    functionName: ValidateRegistryPromiser
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - PromiseRef
    - strchr
    - Log
    - strcmp
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool ValidateRegistryPromiser(char *key, const Promise *pp)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:513,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:521,1
    - Dst: ValidateSQLTableName
      Src: /src/core/cf-agent/verify_databases.c:523,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:525,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:531,1
    - Dst: TableExists
      Src: /src/core/cf-agent/verify_databases.c:536,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:538,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:540,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:544,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:546,1
    - Dst: CreateTableColumns
      Src: /src/core/cf-agent/verify_databases.c:547,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:551,1
    - Dst: QueryTableColumns
      Src: /src/core/cf-agent/verify_databases.c:561,1
    - Dst: CfNewQueryDB
      Src: /src/core/cf-agent/verify_databases.c:562,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:566,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:567,1
    - Dst: CfDeleteQuery
      Src: /src/core/cf-agent/verify_databases.c:568,1
    - Dst: RlistLen
      Src: /src/core/cf-agent/verify_databases.c:575,1
    - Dst: NewSQLColumns
      Src: /src/core/cf-agent/verify_databases.c:577,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:579,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:580,1
    - Dst: CfFetchRow
      Src: /src/core/cf-agent/verify_databases.c:586,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_databases.c:594,1
    - Dst: CfFetchColumn
      Src: /src/core/cf-agent/verify_databases.c:594,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_databases.c:595,1
    - Dst: CfFetchColumn
      Src: /src/core/cf-agent/verify_databases.c:595,1
    - Dst: ToLowerStrInplace
      Src: /src/core/cf-agent/verify_databases.c:596,1
    - Dst: CfFetchColumn
      Src: /src/core/cf-agent/verify_databases.c:597,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/verify_databases.c:601,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:604,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:608,1
    - Dst: DeleteSQLColumns
      Src: /src/core/cf-agent/verify_databases.c:610,1
    - Dst: CfDeleteQuery
      Src: /src/core/cf-agent/verify_databases.c:611,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:624,1
    - Dst: CheckSQLDataType
      Src: /src/core/cf-agent/verify_databases.c:626,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:630,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:633,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:637,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:650,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:652,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:654,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:656,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:659,1
    - Dst: CfDeleteQuery
      Src: /src/core/cf-agent/verify_databases.c:666,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:670,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:681,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:688,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:693,1
    - Dst: CfVoidQueryDB
      Src: /src/core/cf-agent/verify_databases.c:697,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:698,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:700,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_databases.c:705,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_databases.c:708,1
    - Dst: DeleteSQLColumns
      Src: /src/core/cf-agent/verify_databases.c:715,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 112
    argCount: 7
    argNames:
    - ctx
    - cfdb
    - table_path
    - columns
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - CfdbConn*
    - char*
    - Rlist*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/core/cf-agent/verify_databases.c
    constantsTouched: []
    func_position:
      end: 718
      start: 510
    functionDepth: 13
    functionLinenumber: 510
    functionLinenumberEnd: 718
    functionName: VerifyTablePromise
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - ToLowerStrInplace
    - QueryTableColumns
    - ValidateSQLTableName
    - Log
    - CfFetchRow
    - strlcpy
    - RlistLen
    - CheckSQLDataType
    - snprintf
    - DeleteSQLColumns
    - CfNewQueryDB
    - strcmp
    - IntFromString
    - NewSQLColumns
    - assert
    - CreateTableColumns
    - TableExists
    - cfPS
    - CfVoidQueryDB
    - CfDeleteQuery
    - CfFetchColumn
    - PromiseResultUpdate
    linkageType: ''
    returnType: bool
    signature: "bool VerifyTablePromise(EvalContext *ctx, CfdbConn *cfdb, char *table_path,
      Rlist *columns, const Attributes *a,\n                              const Promise
      *pp, PromiseResult *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSQLTables
      Src: /src/core/cf-agent/verify_databases.c:727,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:731,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_databases.c:731,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_databases.c:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cfdb
    - name
    argTypes:
    - CfdbConn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 740
    functionName: TableExists
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - RlistDestroy
    - GetSQLTables
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: int
    signature: int TableExists(CfdbConn *cfdb, char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RlistLen
      Src: /src/core/cf-agent/verify_databases.c:748,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:750,1
    - Dst: NewSQLColumns
      Src: /src/core/cf-agent/verify_databases.c:752,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:759,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/verify_databases.c:763,1
    - Dst: BufferPrintf
      Src: /src/core/cf-agent/verify_databases.c:764,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:768,1
    - Dst: BufferAppendF
      Src: /src/core/cf-agent/verify_databases.c:773,1
    - Dst: BufferAppendF
      Src: /src/core/cf-agent/verify_databases.c:777,1
    - Dst: BufferAppendChar
      Src: /src/core/cf-agent/verify_databases.c:782,1
    - Dst: BufferAppendChar
      Src: /src/core/cf-agent/verify_databases.c:786,1
    - Dst: CfVoidQueryDB
      Src: /src/core/cf-agent/verify_databases.c:788,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_databases.c:788,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_databases.c:789,1
    - Dst: DeleteSQLColumns
      Src: /src/core/cf-agent/verify_databases.c:790,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - cfdb
    - table
    - columns
    argTypes:
    - CfdbConn*
    - char*
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 744
    functionDepth: 8
    functionLinenumber: 744
    functionLinenumberEnd: 792
    functionName: CreateTableColumns
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - BufferData
    - BufferDestroy
    - BufferAppendF
    - CfVoidQueryDB
    - DeleteSQLColumns
    - BufferPrintf
    - BufferAppendChar
    - Log
    - BufferNew
    - RlistLen
    - NewSQLColumns
    linkageType: ''
    returnType: bool
    signature: bool CreateTableColumns(CfdbConn *cfdb, char *table, Rlist *columns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ListTables
      Src: /src/core/cf-agent/verify_databases.c:803,1
    - Dst: CfNewQueryDB
      Src: /src/core/cf-agent/verify_databases.c:805,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:809,1
    - Dst: CfDeleteQuery
      Src: /src/core/cf-agent/verify_databases.c:810,1
    - Dst: CfFetchRow
      Src: /src/core/cf-agent/verify_databases.c:814,1
    - Dst: RlistPrepend
      Src: /src/core/cf-agent/verify_databases.c:816,1
    - Dst: CfFetchColumn
      Src: /src/core/cf-agent/verify_databases.c:816,1
    - Dst: CfDeleteQuery
      Src: /src/core/cf-agent/verify_databases.c:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - CfdbConn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 798
    functionDepth: 8
    functionLinenumber: 798
    functionLinenumberEnd: 822
    functionName: GetSQLTables
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - RlistPrepend
    - ListTables
    - CfDeleteQuery
    - Log
    - CfNewQueryDB
    - CfFetchColumn
    - CfFetchRow
    linkageType: ''
    returnType: Rlist
    signature: Rlist *GetSQLTables(CfdbConn *cfdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:831,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:837,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - type
    - query
    argTypes:
    - DatabaseType
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 844
    functionName: CreateDBQuery
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void CreateDBQuery(DatabaseType type, char *query)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:855,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:856,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:857,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_databases.c:860,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:864,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_databases.c:869,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_databases.c:869,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:871,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:877,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:881,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:889,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:893,1
    - Dst: memcpy
      Src: /src/core/cf-agent/verify_databases.c:900,1
    - Dst: memcpy
      Src: /src/core/cf-agent/verify_databases.c:901,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:904,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:904,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:905,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:905,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:906,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:906,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_databases.c:907,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:907,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:907,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_databases.c:907,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 5
    argNames:
    - path
    - db
    - db_size
    - table
    - table_size
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts:
    - condition: (db != NULL)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/core/cf-agent/verify_databases.c
    - condition: (separator >= path)
      pos:
        line_end: 876
        line_start: 876
        source_file: /src/core/cf-agent/verify_databases.c
    - condition: (strlen(db) == db_length)
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/core/cf-agent/verify_databases.c
    - condition: (strlen(table) < table_size)
      pos:
        line_end: 904
        line_start: 904
        source_file: /src/core/cf-agent/verify_databases.c
    - condition: (strlen(db) < db_size)
      pos:
        line_end: 903
        line_start: 903
        source_file: /src/core/cf-agent/verify_databases.c
    - condition: (table != NULL)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/core/cf-agent/verify_databases.c
    - condition: (path != NULL)
      pos:
        line_end: 854
        line_start: 854
        source_file: /src/core/cf-agent/verify_databases.c
    - condition: (strlen(path) == (strlen(db) + 1 + strlen(table)))
      pos:
        line_end: 906
        line_start: 906
        source_file: /src/core/cf-agent/verify_databases.c
    constantsTouched: []
    func_position:
      end: 910
      start: 848
    functionDepth: 8
    functionLinenumber: 848
    functionLinenumberEnd: 910
    functionName: ValidateSQLTableName
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 2
    functionsReached:
    - memcpy
    - strlen
    - assert
    - strchr
    - Log
    linkageType: ''
    returnType: bool
    signature: "bool ValidateSQLTableName(\n    const char *const path,\n    char
      *const db,\n    const size_t db_size,\n    char *const table,\n    const size_t
      table_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - db
    - table
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 919
    functionName: QueryTableColumns
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void QueryTableColumns(char *s, char *db, char *table)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RlistLen
      Src: /src/core/cf-agent/verify_databases.c:926,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_databases.c:929,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_databases.c:930,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_databases.c:931,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_databases.c:932,1
    - Dst: RlistFromSplitString
      Src: /src/core/cf-agent/verify_databases.c:938,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_databases.c:938,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:942,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:948,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:949,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:950,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:951,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:952,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_databases.c:956,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_databases.c:956,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:960,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:962,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:963,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:964,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:965,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_databases.c:969,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_databases.c:969,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/verify_databases.c:979,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_databases.c:979,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/verify_databases.c:987,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 6
    argNames:
    - table
    - columns
    - name_table
    - type_table
    - size_table
    - done
    argTypes:
    - char*
    - Rlist*
    - char***
    - char***
    - int**
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 923
    functionDepth: 9
    functionLinenumber: 923
    functionLinenumberEnd: 991
    functionName: NewSQLColumns
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 2
    functionsReached:
    - RlistFromSplitString
    - xmalloc
    - Log
    - RlistDestroy
    - xstrdup
    - RlistScalarValue
    - free
    - IntFromString
    - RlistLen
    linkageType: ''
    returnType: bool
    signature: "bool NewSQLColumns(char *table, Rlist *columns, char ***name_table,
      char ***type_table, int **size_table,\n                         int **done)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:1008,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:1013,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:1017,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:1018,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:1019,1
    - Dst: free
      Src: /src/core/cf-agent/verify_databases.c:1020,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - name_table
    - type_table
    - size_table
    - done
    - len
    argTypes:
    - char**
    - char**
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1021
    functionName: DeleteSQLColumns
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void DeleteSQLColumns(char **name_table, char **type_table, int *size_table,
      int *done, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:1039,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:1039,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:1040,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:1040,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:1042,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:1042,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:1044,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_databases.c:1051,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_databases.c:1053,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - type
    - ref_type
    - pp
    argTypes:
    - char*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1025
    functionDepth: 8
    functionLinenumber: 1025
    functionLinenumberEnd: 1061
    functionName: CheckSQLDataType
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - Log
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool CheckSQLDataType(char *type, char *ref_type, const Promise *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:1070,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:1076,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_databases.c:1081,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - type
    - query
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1084
    functionName: ListTables
    functionSourceFile: /src/core/cf-agent/verify_databases.c
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ListTables(int type, char *query)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/cf-agent/simulate_mode.c:54,1
    - Dst: atoi
      Src: /src/core/cf-agent/simulate_mode.c:58,1
    - Dst: MAX
      Src: /src/core/cf-agent/simulate_mode.c:60,1
    - Dst: putchar
      Src: /src/core/cf-agent/simulate_mode.c:63,1
    - Dst: putchar
      Src: /src/core/cf-agent/simulate_mode.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: PrintDelimiter
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - atoi
    - MAX
    - putchar
    - getenv
    linkageType: ''
    returnType: void
    signature: void PrintDelimiter()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:71,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:92,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:93,1
    - Dst: GetUserName
      Src: /src/core/cf-agent/simulate_mode.c:96,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:98,1
    - Dst: GetGroupName
      Src: /src/core/cf-agent/simulate_mode.c:100,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:102,1
    - Dst: strftime
      Src: /src/core/cf-agent/simulate_mode.c:108,1
    - Dst: localtime
      Src: /src/core/cf-agent/simulate_mode.c:109,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:110,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:111,1
    - Dst: strftime
      Src: /src/core/cf-agent/simulate_mode.c:113,1
    - Dst: localtime
      Src: /src/core/cf-agent/simulate_mode.c:114,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:115,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:116,1
    - Dst: strftime
      Src: /src/core/cf-agent/simulate_mode.c:118,1
    - Dst: localtime
      Src: /src/core/cf-agent/simulate_mode.c:119,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:120,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct stat*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: ((ret > 0) && (ret < MAX_TIMESTAMP_SIZE))
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: ((ret > 0) && (ret < MAX_TIMESTAMP_SIZE))
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: ((ret > 0) && (ret < MAX_TIMESTAMP_SIZE))
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/core/cf-agent/simulate_mode.c
    constantsTouched: []
    func_position:
      end: 122
      start: 69
    functionDepth: 13
    functionLinenumber: 69
    functionLinenumberEnd: 122
    functionName: ManifestStatInfo
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - GetGroupName
    - assert
    - printf
    - strftime
    - localtime
    - GetUserName
    linkageType: ''
    returnType: void
    signature: void ManifestStatInfo(const struct stat *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:126,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:141,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:142,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:143,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:144,1
    - Dst: strftime
      Src: /src/core/cf-agent/simulate_mode.c:149,1
    - Dst: localtime
      Src: /src/core/cf-agent/simulate_mode.c:150,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:151,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:152,1
    - Dst: strftime
      Src: /src/core/cf-agent/simulate_mode.c:154,1
    - Dst: localtime
      Src: /src/core/cf-agent/simulate_mode.c:155,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:156,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:157,1
    - Dst: strftime
      Src: /src/core/cf-agent/simulate_mode.c:159,1
    - Dst: localtime
      Src: /src/core/cf-agent/simulate_mode.c:160,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:161,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct stat*
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: ((ret > 0) && (ret < MAX_TIMESTAMP_SIZE))
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: ((ret > 0) && (ret < MAX_TIMESTAMP_SIZE))
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: ((ret > 0) && (ret < MAX_TIMESTAMP_SIZE))
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/core/cf-agent/simulate_mode.c
    constantsTouched: []
    func_position:
      end: 163
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 163
    functionName: ManifestStatInfo
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - assert
    - localtime
    - strftime
    - printf
    linkageType: ''
    returnType: void
    signature: void ManifestStatInfo(const struct stat *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readlink
      Src: /src/core/cf-agent/simulate_mode.c:170,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-agent/simulate_mode.c:173,1
    - Dst: ToNormalRoot
      Src: /src/core/cf-agent/simulate_mode.c:175,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:177,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - link_path
    - chrooted
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 183
    functionName: ManifestLinkTarget
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - printf
    - readlink
    - ToNormalRoot
    - IsAbsoluteFileName
    linkageType: ''
    returnType: void
    signature: void ManifestLinkTarget(const char *link_path, bool chrooted)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/core/cf-agent/simulate_mode.c:188,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:191,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:195,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/simulate_mode.c:195,1
    - Dst: fread
      Src: /src/core/cf-agent/simulate_mode.c:205,1
    - Dst: isascii
      Src: /src/core/cf-agent/simulate_mode.c:210,1
    - Dst: fwrite
      Src: /src/core/cf-agent/simulate_mode.c:219,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:227,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:234,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:241,1
    - Dst: feof
      Src: /src/core/cf-agent/simulate_mode.c:243,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:245,1
    - Dst: fclose
      Src: /src/core/cf-agent/simulate_mode.c:247,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 186
    functionDepth: 8
    functionLinenumber: 186
    functionLinenumberEnd: 248
    functionName: ManifestFileContents
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fopen
    - fread
    - feof
    - puts
    - fwrite
    - Log
    - fclose
    - isascii
    linkageType: ''
    returnType: void
    signature: void ManifestFileContents(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DirOpen
      Src: /src/core/cf-agent/simulate_mode.c:252,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:255,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/simulate_mode.c:255,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:260,1
    - Dst: DirRead
      Src: /src/core/cf-agent/simulate_mode.c:262,1
    - Dst: DirRead
      Src: /src/core/cf-agent/simulate_mode.c:264,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/simulate_mode.c:266,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/simulate_mode.c:267,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:273,1
    - Dst: DirClose
      Src: /src/core/cf-agent/simulate_mode.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 250
    functionDepth: 8
    functionLinenumber: 250
    functionLinenumberEnd: 277
    functionName: ManifestDirectoryListing
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - DirRead
    - DirOpen
    - puts
    - Log
    - DirClose
    - StringEqual
    linkageType: ''
    returnType: void
    signature: void ManifestDirectoryListing(const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-agent/simulate_mode.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - st_mode
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 302
    functionName: GetFileTypeDescription
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - debug_abort_if_reached
    linkageType: ''
    returnType: char
    signature: char *GetFileTypeDescription(mode_t st_mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:306,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:310,1
    - Dst: ManifestFileContents
      Src: /src/core/cf-agent/simulate_mode.c:311,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:315,1
    - Dst: ManifestLinkTarget
      Src: /src/core/cf-agent/simulate_mode.c:316,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:320,1
    - Dst: ManifestDirectoryListing
      Src: /src/core/cf-agent/simulate_mode.c:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - path
    - st
    - chrooted
    argTypes:
    - char*
    - struct stat*
    - bool
    assertStmts:
    - condition: (st != NULL)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/core/cf-agent/simulate_mode.c
    constantsTouched: []
    func_position:
      end: 327
      start: 304
    functionDepth: 9
    functionLinenumber: 304
    functionLinenumberEnd: 327
    functionName: ManifestFileDetails
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - ManifestFileContents
    - assert
    - ManifestLinkTarget
    - puts
    - ManifestDirectoryListing
    linkageType: ''
    returnType: void
    signature: void ManifestFileDetails(const char *path, struct stat *st, bool chrooted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PrintDelimiter
      Src: /src/core/cf-agent/simulate_mode.c:331,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/simulate_mode.c:335,1
    - Dst: lstat
      Src: /src/core/cf-agent/simulate_mode.c:340,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:342,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:346,1
    - Dst: GetFileTypeDescription
      Src: /src/core/cf-agent/simulate_mode.c:346,1
    - Dst: ManifestStatInfo
      Src: /src/core/cf-agent/simulate_mode.c:347,1
    - Dst: ManifestFileDetails
      Src: /src/core/cf-agent/simulate_mode.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - path
    - chrooted
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 329
    functionDepth: 14
    functionLinenumber: 329
    functionLinenumberEnd: 351
    functionName: ManifestFile
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 1
    functionsReached:
    - ManifestStatInfo
    - GetFileTypeDescription
    - PrintDelimiter
    - printf
    - ManifestFileDetails
    - lstat
    - ToChangesChroot
    linkageType: ''
    returnType: bool
    signature: bool ManifestFile(const char *path, bool chrooted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PrintDelimiter
      Src: /src/core/cf-agent/simulate_mode.c:355,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - orig_name
    - new_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: ManifestRename
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - PrintDelimiter
    - printf
    linkageType: ''
    returnType: bool
    signature: bool ManifestRename(const char *orig_name, const char *new_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/core/cf-agent/simulate_mode.c:363,1
    - Dst: GetBinDir
      Src: /src/core/cf-agent/simulate_mode.c:363,1
    - Dst: JoinPaths
      Src: /src/core/cf-agent/simulate_mode.c:364,1
    - Dst: xasprintf
      Src: /src/core/cf-agent/simulate_mode.c:374,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:376,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/simulate_mode.c:378,1
    - Dst: fread
      Src: /src/core/cf-agent/simulate_mode.c:383,1
    - Dst: fwrite
      Src: /src/core/cf-agent/simulate_mode.c:389,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:397,1
    - Dst: feof
      Src: /src/core/cf-agent/simulate_mode.c:404,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:406,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/simulate_mode.c:407,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:408,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/simulate_mode.c:411,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:412,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:415,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - path1
    - path2
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (ret != -1)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/core/cf-agent/simulate_mode.c
    constantsTouched: []
    func_position:
      end: 419
      start: 360
    functionDepth: 11
    functionLinenumber: 360
    functionLinenumberEnd: 419
    functionName: RunDiff
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - cf_popen
    - strncpy
    - assert
    - fread
    - xasprintf
    - feof
    - fwrite
    - cf_pclose
    - Log
    - JoinPaths
    - free
    - GetBinDir
    linkageType: ''
    returnType: bool
    signature: bool RunDiff(const char *path1, const char *path2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/simulate_mode.c:423,1
    - Dst: lstat
      Src: /src/core/cf-agent/simulate_mode.c:427,1
    - Dst: ManifestFile
      Src: /src/core/cf-agent/simulate_mode.c:431,1
    - Dst: PrintDelimiter
      Src: /src/core/cf-agent/simulate_mode.c:435,1
    - Dst: lstat
      Src: /src/core/cf-agent/simulate_mode.c:436,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:439,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:446,1
    - Dst: GetFileTypeDescription
      Src: /src/core/cf-agent/simulate_mode.c:447,1
    - Dst: GetFileTypeDescription
      Src: /src/core/cf-agent/simulate_mode.c:448,1
    - Dst: ManifestStatInfo
      Src: /src/core/cf-agent/simulate_mode.c:449,1
    - Dst: ManifestFileDetails
      Src: /src/core/cf-agent/simulate_mode.c:450,1
    - Dst: RunDiff
      Src: /src/core/cf-agent/simulate_mode.c:458,1
    - Dst: printf
      Src: /src/core/cf-agent/simulate_mode.c:460,1
    - Dst: GetFileTypeDescription
      Src: /src/core/cf-agent/simulate_mode.c:460,1
    - Dst: ManifestStatInfo
      Src: /src/core/cf-agent/simulate_mode.c:461,1
    - Dst: ManifestFileDetails
      Src: /src/core/cf-agent/simulate_mode.c:462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 421
    functionDepth: 15
    functionLinenumber: 421
    functionLinenumberEnd: 466
    functionName: DiffFile
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - ManifestStatInfo
    - GetFileTypeDescription
    - PrintDelimiter
    - printf
    - ManifestFile
    - ManifestFileDetails
    - RunDiff
    - lstat
    - ToChangesChroot
    linkageType: ''
    returnType: bool
    signature: bool DiffFile(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/simulate_mode.c:472,1
    - Dst: access
      Src: /src/core/cf-agent/simulate_mode.c:473,1
    - Dst: safe_open
      Src: /src/core/cf-agent/simulate_mode.c:475,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:478,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/simulate_mode.c:478,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:482,1
    - Dst: ReadLenPrefixedString
      Src: /src/core/cf-agent/simulate_mode.c:492,1
    - Dst: ReadLenPrefixedString
      Src: /src/core/cf-agent/simulate_mode.c:496,1
    - Dst: ManifestRename
      Src: /src/core/cf-agent/simulate_mode.c:499,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:500,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:506,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:510,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:519,1
    - Dst: close
      Src: /src/core/cf-agent/simulate_mode.c:524,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 468
    functionDepth: 8
    functionLinenumber: 468
    functionLinenumberEnd: 527
    functionName: ManifestRenamedFiles
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - access
    - ReadLenPrefixedString
    - safe_open
    - ManifestRename
    - Log
    - ToChangesChroot
    - free
    - close
    linkageType: ''
    returnType: bool
    signature: bool ManifestRenamedFiles()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:531,1
    - Dst: ManifestRenamedFiles
      Src: /src/core/cf-agent/simulate_mode.c:541,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/simulate_mode.c:553,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/simulate_mode.c:560,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/simulate_mode.c:567,1
    - Dst: access
      Src: /src/core/cf-agent/simulate_mode.c:571,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:573,1
    - Dst: safe_open
      Src: /src/core/cf-agent/simulate_mode.c:577,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:580,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/simulate_mode.c:580,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:584,1
    - Dst: StringSetNew
      Src: /src/core/cf-agent/simulate_mode.c:587,1
    - Dst: ReadLenPrefixedString
      Src: /src/core/cf-agent/simulate_mode.c:594,1
    - Dst: StringSetContains
      Src: /src/core/cf-agent/simulate_mode.c:598,1
    - Dst: ManifestFile
      Src: /src/core/cf-agent/simulate_mode.c:603,1
    - Dst: DiffFile
      Src: /src/core/cf-agent/simulate_mode.c:607,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/simulate_mode.c:609,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:613,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:623,1
    - Dst: close
      Src: /src/core/cf-agent/simulate_mode.c:628,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 2
    argNames:
    - mode
    - audited_files
    argTypes:
    - EvalMode
    - StringSet**
    assertStmts:
    - condition: "((mode == EVAL_MODE_SIMULATE_MANIFEST) ||\n           (mode == EVAL_MODE_SIMULATE_MANIFEST_FULL)
        ||\n           (mode == EVAL_MODE_SIMULATE_DIFF))"
      pos:
        line_end: 532
        line_start: 530
        source_file: /src/core/cf-agent/simulate_mode.c
    constantsTouched: []
    func_position:
      end: 630
      start: 529
    functionDepth: 16
    functionLinenumber: 529
    functionLinenumberEnd: 630
    functionName: AuditChangedFiles
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - access
    - ReadLenPrefixedString
    - safe_open
    - assert
    - StringSetContains
    - ManifestRenamedFiles
    - ManifestFile
    - Log
    - DiffFile
    - ToChangesChroot
    - free
    - StringSetNew
    - close
    - StringSetAdd
    linkageType: ''
    returnType: bool
    signature: bool AuditChangedFiles(EvalMode mode, StringSet **audited_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AuditChangedFiles
      Src: /src/core/cf-agent/simulate_mode.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - audited_files
    argTypes:
    - StringSet**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 17
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: ManifestChangedFiles
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - AuditChangedFiles
    linkageType: ''
    returnType: bool
    signature: bool ManifestChangedFiles(StringSet **audited_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AuditChangedFiles
      Src: /src/core/cf-agent/simulate_mode.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - audited_files
    argTypes:
    - StringSet**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 637
    functionDepth: 17
    functionLinenumber: 637
    functionLinenumberEnd: 640
    functionName: ManifestAllFiles
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - AuditChangedFiles
    linkageType: ''
    returnType: bool
    signature: bool ManifestAllFiles(StringSet **audited_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AuditChangedFiles
      Src: /src/core/cf-agent/simulate_mode.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - audited_files
    argTypes:
    - StringSet**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 17
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: DiffChangedFiles
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - AuditChangedFiles
    linkageType: ''
    returnType: bool
    signature: bool DiffChangedFiles(StringSet **audited_files)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/cf-agent/simulate_mode.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - pkg_ver
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 660
    functionName: PkgOperationRecordNew
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: PkgOperationRecord
    signature: PkgOperationRecord *PkgOperationRecordNew(char *msg, char *pkg_ver)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:666,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:667,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkg_op
    argTypes:
    - PkgOperationRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 670
    functionName: PkgOperationRecordDestroy
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void PkgOperationRecordDestroy(PkgOperationRecord *pkg_op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:676,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:676,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:676,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/simulate_mode.c:679,1
    - Dst: StringSafeCompare
      Src: /src/core/cf-agent/simulate_mode.c:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ver1
    - ver2
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (!NULL_OR_EMPTY(ver1) && !NULL_OR_EMPTY(ver2))
      pos:
        line_end: 675
        line_start: 675
        source_file: /src/core/cf-agent/simulate_mode.c
    constantsTouched: []
    func_position:
      end: 686
      start: 672
    functionDepth: 4
    functionLinenumber: 672
    functionLinenumberEnd: 686
    functionName: PkgVersionIsGreater
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - assert
    - StringSafeCompare
    - NULL_OR_EMPTY
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool PkgVersionIsGreater(const char *ver1, const char *ver2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-agent/simulate_mode.c:706,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:710,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:710,1
    - Dst: xasprintf
      Src: /src/core/cf-agent/simulate_mode.c:712,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:714,1
    - Dst: xasprintf
      Src: /src/core/cf-agent/simulate_mode.c:716,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:718,1
    - Dst: xasprintf
      Src: /src/core/cf-agent/simulate_mode.c:720,1
    - Dst: xasprintf
      Src: /src/core/cf-agent/simulate_mode.c:724,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - op
    - pkg_name
    - pkg_arch
    - pkg_ver
    argTypes:
    - ChrootPkgOperationCode
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 728
    functionName: GetPkgOperationMsg
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - debug_abort_if_reached
    - NULL_OR_EMPTY
    - xasprintf
    linkageType: ''
    returnType: char
    signature: char *GetPkgOperationMsg(ChrootPkgOperationCode op, const char *pkg_name,
      const char *pkg_arch, const char *pkg_ver)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/simulate_mode.c:732,1
    - Dst: access
      Src: /src/core/cf-agent/simulate_mode.c:733,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:735,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/simulate_mode.c:739,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:743,1
    - Dst: MapNew
      Src: /src/core/cf-agent/simulate_mode.c:747,1
    - Dst: MapNew
      Src: /src/core/cf-agent/simulate_mode.c:748,1
    - Dst: GetCsvLineNext
      Src: /src/core/cf-agent/simulate_mode.c:750,1
    - Dst: SeqParseCsvString
      Src: /src/core/cf-agent/simulate_mode.c:752,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/simulate_mode.c:753,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:755,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:756,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/simulate_mode.c:757,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:760,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/simulate_mode.c:763,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/simulate_mode.c:764,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/simulate_mode.c:765,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/simulate_mode.c:766,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:769,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:769,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:770,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:770,1
    - Dst: xasprintf
      Src: /src/core/cf-agent/simulate_mode.c:776,1
    - Dst: MapRemove
      Src: /src/core/cf-agent/simulate_mode.c:790,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:801,1
    - Dst: MapRemove
      Src: /src/core/cf-agent/simulate_mode.c:803,1
    - Dst: MapGet
      Src: /src/core/cf-agent/simulate_mode.c:807,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/simulate_mode.c:808,1
    - Dst: MapRemove
      Src: /src/core/cf-agent/simulate_mode.c:811,1
    - Dst: MapGet
      Src: /src/core/cf-agent/simulate_mode.c:826,1
    - Dst: PkgVersionIsGreater
      Src: /src/core/cf-agent/simulate_mode.c:827,1
    - Dst: GetPkgOperationMsg
      Src: /src/core/cf-agent/simulate_mode.c:829,1
    - Dst: PkgOperationRecordNew
      Src: /src/core/cf-agent/simulate_mode.c:831,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/simulate_mode.c:831,1
    - Dst: MapInsert
      Src: /src/core/cf-agent/simulate_mode.c:832,1
    - Dst: MapRemove
      Src: /src/core/cf-agent/simulate_mode.c:837,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:841,1
    - Dst: MapGet
      Src: /src/core/cf-agent/simulate_mode.c:846,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:847,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:856,1
    - Dst: MapRemove
      Src: /src/core/cf-agent/simulate_mode.c:859,1
    - Dst: MapGet
      Src: /src/core/cf-agent/simulate_mode.c:863,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/simulate_mode.c:864,1
    - Dst: MapRemove
      Src: /src/core/cf-agent/simulate_mode.c:866,1
    - Dst: GetPkgOperationMsg
      Src: /src/core/cf-agent/simulate_mode.c:877,1
    - Dst: PkgOperationRecordNew
      Src: /src/core/cf-agent/simulate_mode.c:879,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/simulate_mode.c:879,1
    - Dst: MapInsert
      Src: /src/core/cf-agent/simulate_mode.c:880,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/simulate_mode.c:884,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:885,1
    - Dst: fclose
      Src: /src/core/cf-agent/simulate_mode.c:887,1
    - Dst: MapSize
      Src: /src/core/cf-agent/simulate_mode.c:889,1
    - Dst: MapSize
      Src: /src/core/cf-agent/simulate_mode.c:889,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:891,1
    - Dst: MapDestroy
      Src: /src/core/cf-agent/simulate_mode.c:893,1
    - Dst: MapDestroy
      Src: /src/core/cf-agent/simulate_mode.c:894,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:899,1
    - Dst: MapIteratorInit
      Src: /src/core/cf-agent/simulate_mode.c:900,1
    - Dst: MapIteratorNext
      Src: /src/core/cf-agent/simulate_mode.c:902,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:906,1
    - Dst: MapIteratorInit
      Src: /src/core/cf-agent/simulate_mode.c:908,1
    - Dst: MapIteratorNext
      Src: /src/core/cf-agent/simulate_mode.c:909,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:913,1
    - Dst: MapDestroy
      Src: /src/core/cf-agent/simulate_mode.c:916,1
    - Dst: MapDestroy
      Src: /src/core/cf-agent/simulate_mode.c:917,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!NULL_OR_EMPTY(op))
      pos:
        line_end: 768
        line_start: 768
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: (*op == CHROOT_PKG_OPERATION_CODE_REMOVE)
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: (!NULL_OR_EMPTY(pkg_name))
      pos:
        line_end: 769
        line_start: 769
        source_file: /src/core/cf-agent/simulate_mode.c
    constantsTouched: []
    func_position:
      end: 920
      start: 730
    functionDepth: 8
    functionLinenumber: 730
    functionLinenumberEnd: 920
    functionName: DiffPkgOperations
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - MapIteratorNext
    - Log
    - fclose
    - SeqLength
    - free
    - StringEqual
    - access
    - SeqDestroy
    - MapGet
    - GetCsvLineNext
    - NULL_OR_EMPTY
    - SeqAt
    - SeqParseCsvString
    - PkgOperationRecordNew
    - MapSize
    - assert
    - GetPkgOperationMsg
    - xasprintf
    - MapInsert
    - MapNew
    - puts
    - PkgVersionIsGreater
    - MapIteratorInit
    - MapDestroy
    - MapRemove
    - SafeStringDuplicate
    - safe_fopen
    - ToChangesChroot
    linkageType: ''
    returnType: bool
    signature: bool DiffPkgOperations()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/simulate_mode.c:924,1
    - Dst: access
      Src: /src/core/cf-agent/simulate_mode.c:925,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:927,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/simulate_mode.c:931,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:935,1
    - Dst: MapNew
      Src: /src/core/cf-agent/simulate_mode.c:939,1
    - Dst: MapNew
      Src: /src/core/cf-agent/simulate_mode.c:940,1
    - Dst: GetCsvLineNext
      Src: /src/core/cf-agent/simulate_mode.c:942,1
    - Dst: SeqParseCsvString
      Src: /src/core/cf-agent/simulate_mode.c:944,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/simulate_mode.c:945,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:947,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:948,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/simulate_mode.c:949,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:952,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/simulate_mode.c:955,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/simulate_mode.c:956,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/simulate_mode.c:957,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/simulate_mode.c:958,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:961,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:961,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:962,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:962,1
    - Dst: xasprintf
      Src: /src/core/cf-agent/simulate_mode.c:968,1
    - Dst: MapGet
      Src: /src/core/cf-agent/simulate_mode.c:975,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:977,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:977,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:978,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:978,1
    - Dst: PkgVersionIsGreater
      Src: /src/core/cf-agent/simulate_mode.c:979,1
    - Dst: GetPkgOperationMsg
      Src: /src/core/cf-agent/simulate_mode.c:981,1
    - Dst: PkgOperationRecordNew
      Src: /src/core/cf-agent/simulate_mode.c:983,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/simulate_mode.c:983,1
    - Dst: MapInsert
      Src: /src/core/cf-agent/simulate_mode.c:984,1
    - Dst: MapRemove
      Src: /src/core/cf-agent/simulate_mode.c:989,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:993,1
    - Dst: MapGet
      Src: /src/core/cf-agent/simulate_mode.c:999,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:1001,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:1001,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/simulate_mode.c:1002,1
    - Dst: MapRemove
      Src: /src/core/cf-agent/simulate_mode.c:1005,1
    - Dst: MapGet
      Src: /src/core/cf-agent/simulate_mode.c:1009,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:1011,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/simulate_mode.c:1011,1
    - Dst: GetPkgOperationMsg
      Src: /src/core/cf-agent/simulate_mode.c:1013,1
    - Dst: PkgOperationRecordNew
      Src: /src/core/cf-agent/simulate_mode.c:1015,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/simulate_mode.c:1015,1
    - Dst: MapInsert
      Src: /src/core/cf-agent/simulate_mode.c:1016,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/simulate_mode.c:1021,1
    - Dst: free
      Src: /src/core/cf-agent/simulate_mode.c:1022,1
    - Dst: fclose
      Src: /src/core/cf-agent/simulate_mode.c:1024,1
    - Dst: assert
      Src: /src/core/cf-agent/simulate_mode.c:1029,1
    - Dst: MapSize
      Src: /src/core/cf-agent/simulate_mode.c:1029,1
    - Dst: MapSize
      Src: /src/core/cf-agent/simulate_mode.c:1029,1
    - Dst: Log
      Src: /src/core/cf-agent/simulate_mode.c:1031,1
    - Dst: MapIteratorInit
      Src: /src/core/cf-agent/simulate_mode.c:1032,1
    - Dst: MapIteratorNext
      Src: /src/core/cf-agent/simulate_mode.c:1034,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:1038,1
    - Dst: MapIteratorInit
      Src: /src/core/cf-agent/simulate_mode.c:1040,1
    - Dst: MapIteratorNext
      Src: /src/core/cf-agent/simulate_mode.c:1041,1
    - Dst: puts
      Src: /src/core/cf-agent/simulate_mode.c:1045,1
    - Dst: MapDestroy
      Src: /src/core/cf-agent/simulate_mode.c:1048,1
    - Dst: MapDestroy
      Src: /src/core/cf-agent/simulate_mode.c:1049,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!NULL_OR_EMPTY(op))
      pos:
        line_end: 960
        line_start: 960
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: "((*op == CHROOT_PKG_OPERATION_CODE_REMOVE) ||\n                   (*op
        == CHROOT_PKG_OPERATION_CODE_ABSENT))"
      pos:
        line_end: 993
        line_start: 992
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: ((MapSize(present) != 0) || (MapSize(absent) != 0))
      pos:
        line_end: 1028
        line_start: 1028
        source_file: /src/core/cf-agent/simulate_mode.c
    - condition: (!NULL_OR_EMPTY(pkg_name))
      pos:
        line_end: 961
        line_start: 961
        source_file: /src/core/cf-agent/simulate_mode.c
    constantsTouched: []
    func_position:
      end: 1052
      start: 922
    functionDepth: 8
    functionLinenumber: 922
    functionLinenumberEnd: 1052
    functionName: ManifestPkgOperations
    functionSourceFile: /src/core/cf-agent/simulate_mode.c
    functionUses: 0
    functionsReached:
    - MapIteratorNext
    - Log
    - fclose
    - SeqLength
    - free
    - StringEqual
    - access
    - SeqDestroy
    - MapGet
    - GetCsvLineNext
    - NULL_OR_EMPTY
    - SeqAt
    - SeqParseCsvString
    - PkgOperationRecordNew
    - MapSize
    - assert
    - GetPkgOperationMsg
    - xasprintf
    - MapInsert
    - MapNew
    - puts
    - PkgVersionIsGreater
    - MapIteratorInit
    - MapDestroy
    - MapRemove
    - SafeStringDuplicate
    - safe_fopen
    - ToChangesChroot
    linkageType: ''
    returnType: bool
    signature: bool ManifestPkgOperations()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_new_packages.c:35,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_new_packages.c:38,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_new_packages.c:45,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_new_packages.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/core/cf-agent/verify_new_packages.c
    constantsTouched: []
    func_position:
      end: 61
      start: 33
    functionDepth: 8
    functionLinenumber: 33
    functionLinenumberEnd: 61
    functionName: NewPackagePromiseSanityCheck
    functionSourceFile: /src/core/cf-agent/verify_new_packages.c
    functionUses: 0
    functionsReached:
    - assert
    - Log
    linkageType: ''
    returnType: bool
    signature: bool NewPackagePromiseSanityCheck(const Attributes *a)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_new_packages.c:65,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_new_packages.c:66,1
    - Dst: NewPackagePromiseSanityCheck
      Src: /src/core/cf-agent/verify_new_packages.c:69,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:71,1
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_new_packages.c:76,1
    - Dst: AcquireGlobalPackagePromiseLock
      Src: /src/core/cf-agent/verify_new_packages.c:78,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_new_packages.c:82,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_new_packages.c:87,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_new_packages.c:92,1
    - Dst: YieldGlobalPackagePromiseLock
      Src: /src/core/cf-agent/verify_new_packages.c:96,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_new_packages.c:98,1
    - Dst: NewPackageModuleWrapper
      Src: /src/core/cf-agent/verify_new_packages.c:103,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:107,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_new_packages.c:111,1
    - Dst: YieldGlobalPackagePromiseLock
      Src: /src/core/cf-agent/verify_new_packages.c:112,1
    - Dst: HandleAbsentPromiseAction
      Src: /src/core/cf-agent/verify_new_packages.c:122,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:127,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:131,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:136,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:140,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_new_packages.c:143,1
    - Dst: HandlePresentPromiseAction
      Src: /src/core/cf-agent/verify_new_packages.c:149,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:154,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:158,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:162,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_new_packages.c:167,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_new_packages.c:170,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_new_packages.c:178,1
    - Dst: DeletePackageModuleWrapper
      Src: /src/core/cf-agent/verify_new_packages.c:182,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_new_packages.c:184,1
    - Dst: YieldGlobalPackagePromiseLock
      Src: /src/core/cf-agent/verify_new_packages.c:185,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 75
    argCount: 3
    argNames:
    - ctx
    - pp
    - a
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/core/cf-agent/verify_new_packages.c
    constantsTouched: []
    func_position:
      end: 188
      start: 63
    functionDepth: 13
    functionLinenumber: 63
    functionLinenumberEnd: 188
    functionName: HandleNewPackagePromiseType
    functionSourceFile: /src/core/cf-agent/verify_new_packages.c
    functionUses: 1
    functionsReached:
    - HandlePresentPromiseAction
    - PromiseBanner
    - snprintf
    - YieldGlobalPackagePromiseLock
    - assert
    - YieldCurrentLock
    - cfPS
    - AcquireLock
    - ProgrammingError
    - Log
    - HandleAbsentPromiseAction
    - AcquireGlobalPackagePromiseLock
    - NewPackageModuleWrapper
    - DeletePackageModuleWrapper
    - NewPackagePromiseSanityCheck
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult HandleNewPackagePromiseType(EvalContext *ctx, const Promise
      *pp, const Attributes *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: EDIT_CONTEXT_IS_FINAL_PASS
    functionSourceFile: /src/core/cf-agent/files_edit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EDIT_CONTEXT_IS_FINAL_PASS(ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED
      Src: /src/core/cf-agent/cf-agent.c:268,1
    - Dst: DefaultVarPromise
      Src: /src/core/cf-agent/cf-agent.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - pp
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: DefaultVarPromiseWrapper
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 0
    functionsReached:
    - DefaultVarPromise
    - UNUSED
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult DefaultVarPromiseWrapper(EvalContext *ctx, const Promise
      *pp, void *param)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SetupSignalsForAgent
      Src: /src/core/cf-agent/cf-agent.c:276,1
    - Dst: xmlInitParser
      Src: /src/core/cf-agent/cf-agent.c:278,1
    - Dst: BeginMeasure
      Src: /src/core/cf-agent/cf-agent.c:280,1
    - Dst: CheckOpts
      Src: /src/core/cf-agent/cf-agent.c:282,1
    - Dst: CheckDBRepairFlagFile
      Src: /src/core/cf-agent/cf-agent.c:283,1
    - Dst: repair_lmdb_default
      Src: /src/core/cf-agent/cf-agent.c:286,1
    - Dst: EvalContextNew
      Src: /src/core/cf-agent/cf-agent.c:288,1
    - Dst: EvalContextAllClassesLoggingEnable
      Src: /src/core/cf-agent/cf-agent.c:291,1
    - Dst: GenericAgentConfigApply
      Src: /src/core/cf-agent/cf-agent.c:293,1
    - Dst: strrchr
      Src: /src/core/cf-agent/cf-agent.c:296,1
    - Dst: GenericAgentDiscoverContext
      Src: /src/core/cf-agent/cf-agent.c:298,1
    - Dst: SelectAndLoadPolicy
      Src: /src/core/cf-agent/cf-agent.c:302,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:306,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:307,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/cf-agent/cf-agent.c:312,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:314,1
    - Dst: GenericAgentDetectEnvironmentFromPolicy
      Src: /src/core/cf-agent/cf-agent.c:318,1
    - Dst: GenericAgentPostLoadInit
      Src: /src/core/cf-agent/cf-agent.c:322,1
    - Dst: ThisAgentInit
      Src: /src/core/cf-agent/cf-agent.c:323,1
    - Dst: ConnCache_Init
      Src: /src/core/cf-agent/cf-agent.c:324,1
    - Dst: BeginAudit
      Src: /src/core/cf-agent/cf-agent.c:326,1
    - Dst: EvalContextProfilingStart
      Src: /src/core/cf-agent/cf-agent.c:328,1
    - Dst: KeepPromises
      Src: /src/core/cf-agent/cf-agent.c:329,1
    - Dst: EvalContextProfilingEnd
      Src: /src/core/cf-agent/cf-agent.c:330,1
    - Dst: EvalAborted
      Src: /src/core/cf-agent/cf-agent.c:332,1
    - Dst: ConnCache_Destroy
      Src: /src/core/cf-agent/cf-agent.c:337,1
    - Dst: AllClassesReport
      Src: /src/core/cf-agent/cf-agent.c:341,1
    - Dst: Nova_TrackExecution
      Src: /src/core/cf-agent/cf-agent.c:344,1
    - Dst: UpdatePackagesCache
      Src: /src/core/cf-agent/cf-agent.c:347,1
    - Dst: FinalizeCustomPromises
      Src: /src/core/cf-agent/cf-agent.c:351,1
    - Dst: WaitForBackgroundProcesses
      Src: /src/core/cf-agent/cf-agent.c:356,1
    - Dst: GenerateReports
      Src: /src/core/cf-agent/cf-agent.c:358,1
    - Dst: PurgeLocks
      Src: /src/core/cf-agent/cf-agent.c:360,1
    - Dst: BackupLockDatabase
      Src: /src/core/cf-agent/cf-agent.c:361,1
    - Dst: GenericAgentShowContextsFormatted
      Src: /src/core/cf-agent/cf-agent.c:365,1
    - Dst: free
      Src: /src/core/cf-agent/cf-agent.c:366,1
    - Dst: GenericAgentShowVariablesFormatted
      Src: /src/core/cf-agent/cf-agent.c:371,1
    - Dst: free
      Src: /src/core/cf-agent/cf-agent.c:372,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-agent/cf-agent.c:375,1
    - Dst: VerifyBootstrap
      Src: /src/core/cf-agent/cf-agent.c:377,1
    - Dst: PolicyServerRemoveFile
      Src: /src/core/cf-agent/cf-agent.c:379,1
    - Dst: GetWorkDir
      Src: /src/core/cf-agent/cf-agent.c:379,1
    - Dst: WriteAmPolicyHubFile
      Src: /src/core/cf-agent/cf-agent.c:380,1
    - Dst: EndAudit
      Src: /src/core/cf-agent/cf-agent.c:384,1
    - Dst: Nova_NoteAgentExecutionPerformance
      Src: /src/core/cf-agent/cf-agent.c:386,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-agent/cf-agent.c:388,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/cf-agent.c:390,1
    - Dst: ManifestChangedFiles
      Src: /src/core/cf-agent/cf-agent.c:396,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:399,1
    - Dst: ManifestAllFiles
      Src: /src/core/cf-agent/cf-agent.c:404,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:407,1
    - Dst: ManifestPkgOperations
      Src: /src/core/cf-agent/cf-agent.c:410,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:413,1
    - Dst: DiffChangedFiles
      Src: /src/core/cf-agent/cf-agent.c:418,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:421,1
    - Dst: DiffPkgOperations
      Src: /src/core/cf-agent/cf-agent.c:423,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:426,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/cf-agent.c:429,1
    - Dst: xmlCleanupParser
      Src: /src/core/cf-agent/cf-agent.c:432,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-agent/cf-agent.c:435,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 274
    functionDepth: 18
    functionLinenumber: 274
    functionLinenumberEnd: 438
    functionName: main
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 2
    functionsReached:
    - PolicyDestroy
    - EvalContextAllClassesLoggingEnable
    - DiffPkgOperations
    - CallCleanupFunctions
    - GenerateReports
    - Nova_NoteAgentExecutionPerformance
    - Log
    - EvalAborted
    - free
    - DiffChangedFiles
    - EvalContextProfilingEnd
    - ConnCache_Destroy
    - WaitForBackgroundProcesses
    - KeepPromises
    - CheckOpts
    - SelectAndLoadPolicy
    - GenericAgentPostLoadInit
    - FinalizeCustomPromises
    - ManifestAllFiles
    - EvalContextNew
    - strrchr
    - ConnCache_Init
    - Nova_TrackExecution
    - BeginMeasure
    - CheckDBRepairFlagFile
    - WriteAmPolicyHubFile
    - repair_lmdb_default
    - AllClassesReport
    - ManifestPkgOperations
    - UpdatePackagesCache
    - xmlInitParser
    - xmlCleanupParser
    - PurgeLocks
    - EndAudit
    - SetupSignalsForAgent
    - GetWorkDir
    - DoCleanupAndExit
    - GenericAgentShowContextsFormatted
    - EvalContextClassPutHard
    - GenericAgentConfigApply
    - PolicyServerRemoveFile
    - ManifestChangedFiles
    - GenericAgentFinalize
    - EvalContextProfilingStart
    - StringSetDestroy
    - GenericAgentDetectEnvironmentFromPolicy
    - GenericAgentDiscoverContext
    - BackupLockDatabase
    - ThisAgentInit
    - BeginAudit
    - GenericAgentShowVariablesFormatted
    - VerifyBootstrap
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/cf-agent.c:446,1
    - Dst: BootstrapAllowed
      Src: /src/core/cf-agent/cf-agent.c:447,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:449,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:450,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:453,1
    - Dst: HasAvahiSupport
      Src: /src/core/cf-agent/cf-agent.c:455,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:457,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:458,1
    - Dst: AutomaticBootstrap
      Src: /src/core/cf-agent/cf-agent.c:461,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:464,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:465,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:470,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/cf-agent/cf-agent.c:470,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:472,1
    - Dst: OpenNetwork
      Src: /src/core/cf-agent/cf-agent.c:476,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:478,1
    - Dst: ParseHostPort
      Src: /src/core/cf-agent/cf-agent.c:481,1
    - Dst: Hostname2IPString
      Src: /src/core/cf-agent/cf-agent.c:484,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:486,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:489,1
    - Dst: CloseNetwork
      Src: /src/core/cf-agent/cf-agent.c:492,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-agent/cf-agent.c:496,1
    - Dst: GetInputDir
      Src: /src/core/cf-agent/cf-agent.c:496,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:498,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:499,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:507,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - config
    - argument
    argTypes:
    - GenericAgentConfig*
    - char*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/core/cf-agent/cf-agent.c
    constantsTouched: []
    func_position:
      end: 509
      start: 444
    functionDepth: 9
    functionLinenumber: 444
    functionLinenumberEnd: 509
    functionName: ConfigureBootstrap
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - Hostname2IPString
    - GenericAgentConfigSetInputFile
    - assert
    - StringIsLocalHostIP
    - ParseHostPort
    - CloseNetwork
    - AutomaticBootstrap
    - HasAvahiSupport
    - Log
    - strcmp
    - OpenNetwork
    - xstrdup
    - GetInputDir
    - StringEqual
    - BootstrapAllowed
    linkageType: ''
    returnType: void
    signature: void ConfigureBootstrap(GenericAgentConfig *config, const char *argument)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/cf-agent/cf-agent.c:516,1
    - Dst: GetTTYInteractive
      Src: /src/core/cf-agent/cf-agent.c:516,1
    - Dst: TranslateOldBootstrapOptionsSeparate
      Src: /src/core/cf-agent/cf-agent.c:525,1
    - Dst: TranslateOldBootstrapOptionsConcatenated
      Src: /src/core/cf-agent/cf-agent.c:526,1
    - Dst: FreeFixedStringArray
      Src: /src/core/cf-agent/cf-agent.c:527,1
    - Dst: getopt_long
      Src: /src/core/cf-agent/cf-agent.c:530,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:541,1
    - Dst: setenv_wrapper
      Src: /src/core/cf-agent/cf-agent.c:542,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-agent/cf-agent.c:546,1
    - Dst: GetInputDir
      Src: /src/core/cf-agent/cf-agent.c:546,1
    - Dst: RlistFromSplitString
      Src: /src/core/cf-agent/cf-agent.c:553,1
    - Dst: GenericAgentConfigSetBundleSequence
      Src: /src/core/cf-agent/cf-agent.c:554,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/cf-agent.c:555,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:560,1
    - Dst: ConfigureBootstrap
      Src: /src/core/cf-agent/cf-agent.c:565,1
    - Dst: StringSetFromString
      Src: /src/core/cf-agent/cf-agent.c:575,1
    - Dst: StringSetJoin
      Src: /src/core/cf-agent/cf-agent.c:582,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/cf-agent.c:583,1
    - Dst: StringSetFromString
      Src: /src/core/cf-agent/cf-agent.c:590,1
    - Dst: StringSetJoin
      Src: /src/core/cf-agent/cf-agent.c:597,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/cf-agent.c:598,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:604,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:608,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-agent/cf-agent.c:612,1
    - Dst: FileWriter
      Src: /src/core/cf-agent/cf-agent.c:622,1
    - Dst: GenericAgentWriteVersion
      Src: /src/core/cf-agent/cf-agent.c:623,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-agent/cf-agent.c:624,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:626,1
    - Dst: FileWriter
      Src: /src/core/cf-agent/cf-agent.c:630,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-agent/cf-agent.c:631,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-agent/cf-agent.c:632,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:634,1
    - Dst: FileWriter
      Src: /src/core/cf-agent/cf-agent.c:638,1
    - Dst: ManPageWrite
      Src: /src/core/cf-agent/cf-agent.c:639,1
    - Dst: time
      Src: /src/core/cf-agent/cf-agent.c:639,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-agent/cf-agent.c:645,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:646,1
    - Dst: GetWorkDir
      Src: /src/core/cf-agent/cf-agent.c:651,1
    - Dst: GetInputDir
      Src: /src/core/cf-agent/cf-agent.c:652,1
    - Dst: GetLogDir
      Src: /src/core/cf-agent/cf-agent.c:653,1
    - Dst: GetStateDir
      Src: /src/core/cf-agent/cf-agent.c:654,1
    - Dst: FileWriter
      Src: /src/core/cf-agent/cf-agent.c:655,1
    - Dst: WriterWriteF
      Src: /src/core/cf-agent/cf-agent.c:656,1
    - Dst: WriterWriteF
      Src: /src/core/cf-agent/cf-agent.c:657,1
    - Dst: WriterWriteF
      Src: /src/core/cf-agent/cf-agent.c:658,1
    - Dst: WriterWriteF
      Src: /src/core/cf-agent/cf-agent.c:659,1
    - Dst: AgentDiagnosticsRun
      Src: /src/core/cf-agent/cf-agent.c:661,1
    - Dst: AgentDiagnosticsAllChecks
      Src: /src/core/cf-agent/cf-agent.c:661,1
    - Dst: AgentDiagnosticsRunAllChecksNova
      Src: /src/core/cf-agent/cf-agent.c:662,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-agent/cf-agent.c:663,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:665,1
    - Dst: GenericAgentConfigParseColor
      Src: /src/core/cf-agent/cf-agent.c:668,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:670,1
    - Dst: extension_libraries_disable
      Src: /src/core/cf-agent/cf-agent.c:675,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/cf-agent/cf-agent.c:679,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:686,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:704,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:708,1
    - Dst: LogEnableModulesFromString
      Src: /src/core/cf-agent/cf-agent.c:710,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:713,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:716,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:720,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:724,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:730,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:732,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:738,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:740,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:744,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:748,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-agent/cf-agent.c:754,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-agent/cf-agent.c:758,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:764,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:767,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:770,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:774,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:776,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-agent/cf-agent.c:778,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-agent/cf-agent.c:782,1
    - Dst: StringEqual_IgnoreCase
      Src: /src/core/cf-agent/cf-agent.c:786,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:792,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:795,1
    - Dst: FileWriter
      Src: /src/core/cf-agent/cf-agent.c:802,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-agent/cf-agent.c:803,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-agent/cf-agent.c:804,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:806,1
    - Dst: GenericAgentConfigParseArguments
      Src: /src/core/cf-agent/cf-agent.c:810,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:813,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:814,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:820,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:822,1
    - Dst: FreeFixedStringArray
      Src: /src/core/cf-agent/cf-agent.c:825,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 194
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 511
    functionDepth: 10
    functionLinenumber: 511
    functionLinenumberEnd: 828
    functionName: CheckOpts
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 8
    functionsReached:
    - GenericAgentConfigParseColor
    - TranslateOldBootstrapOptionsConcatenated
    - Log
    - GetInputDir
    - FileWriterDetach
    - time
    - StringEqual
    - FileWriter
    - GenericAgentConfigSetInputFile
    - WriterWriteHelp
    - ManPageWrite
    - AgentDiagnosticsRun
    - GenericAgentConfigSetBundleSequence
    - AgentDiagnosticsAllChecks
    - setenv_wrapper
    - GenericAgentConfigNewDefault
    - RlistDestroy
    - strcmp
    - xstrdup
    - ConfigureBootstrap
    - GenericAgentWriteVersion
    - LogSetGlobalLevel
    - extension_libraries_disable
    - GetTTYInteractive
    - GenericAgentConfigParseArguments
    - TranslateOldBootstrapOptionsSeparate
    - getopt_long
    - WriterWriteF
    - StringSetFromString
    - GetWorkDir
    - DoCleanupAndExit
    - AgentDiagnosticsRunAllChecksNova
    - StringSetJoin
    - StringEqual_IgnoreCase
    - LogEnableModulesFromString
    - LoggingEnableTimestamps
    - GetLogDir
    - GetStateDir
    - StringSetDestroy
    - FreeFixedStringArray
    - RlistFromSplitString
    - LogSetGlobalLevelArgOrExit
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *CheckOpts(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:841,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:841,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:846,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:846,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:864,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/cf-agent.c:868,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:876,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:877,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:889,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/cf-agent.c:895,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:899,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 831
    functionDepth: 8
    functionLinenumber: 831
    functionLinenumberEnd: 904
    functionName: TranslateOldBootstrapOptionsSeparate
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - Log
    - strcmp
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char **TranslateOldBootstrapOptionsSeparate(int *argc_new, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-agent/cf-agent.c:909,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:913,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:915,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:917,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 907
    functionDepth: 8
    functionLinenumber: 907
    functionLinenumberEnd: 926
    functionName: TranslateOldBootstrapOptionsConcatenated
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - Log
    - strcmp
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char **TranslateOldBootstrapOptionsConcatenated(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/cf-agent.c:933,1
    - Dst: free
      Src: /src/core/cf-agent/cf-agent.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - size
    - array
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 937
    functionName: FreeFixedStringArray
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void FreeFixedStringArray(int size, char **array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsid
      Src: /src/core/cf-agent/cf-agent.c:946,1
    - Dst: snprintf
      Src: /src/core/cf-agent/cf-agent.c:958,1
    - Dst: GetLogDir
      Src: /src/core/cf-agent/cf-agent.c:958,1
    - Dst: ToLowerStrInplace
      Src: /src/core/cf-agent/cf-agent.c:959,1
    - Dst: MapName
      Src: /src/core/cf-agent/cf-agent.c:960,1
    - Dst: umask
      Src: /src/core/cf-agent/cf-agent.c:962,1
    - Dst: umask
      Src: /src/core/cf-agent/cf-agent.c:963,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:964,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/cf-agent.c:965,1
    - Dst: fclose
      Src: /src/core/cf-agent/cf-agent.c:968,1
    - Dst: InitializeCustomPromises
      Src: /src/core/cf-agent/cf-agent.c:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 941
    functionDepth: 8
    functionLinenumber: 941
    functionLinenumberEnd: 972
    functionName: ThisAgentInit
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 4
    functionsReached:
    - snprintf
    - ToLowerStrInplace
    - MapName
    - GetLogDir
    - setsid
    - safe_fopen
    - Log
    - fclose
    - InitializeCustomPromises
    - umask
    linkageType: ''
    returnType: void
    signature: void ThisAgentInit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KeepControlPromises
      Src: /src/core/cf-agent/cf-agent.c:978,1
    - Dst: EvalAborted
      Src: /src/core/cf-agent/cf-agent.c:980,1
    - Dst: KeepPromiseBundles
      Src: /src/core/cf-agent/cf-agent.c:984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - policy
    - config
    argTypes:
    - EvalContext*
    - Policy*
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 985
    functionName: KeepPromises
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 2
    functionsReached:
    - KeepControlPromises
    - KeepPromiseBundles
    - EvalAborted
    linkageType: ''
    returnType: void
    signature: void KeepPromises(EvalContext *ctx, const Policy *policy, GenericAgentConfig
      *config)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: ControlBodyConstraints
      Src: /src/core/cf-agent/cf-agent.c:993,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/cf-agent.c:996,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/cf-agent.c:998,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-agent/cf-agent.c:1000,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/cf-agent.c:1005,1
    - Dst: EvalContextVariableGet
      Src: /src/core/cf-agent/cf-agent.c:1007,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/cf-agent.c:1008,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1013,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:1018,1
    - Dst: assert
      Src: /src/core/cf-agent/cf-agent.c:1020,1
    - Dst: StringSetNew
      Src: /src/core/cf-agent/cf-agent.c:1022,1
    - Dst: WouldLog
      Src: /src/core/cf-agent/cf-agent.c:1023,1
    - Dst: RlistToString
      Src: /src/core/cf-agent/cf-agent.c:1025,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1026,1
    - Dst: free
      Src: /src/core/cf-agent/cf-agent.c:1027,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1035,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1041,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/cf-agent.c:1043,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1044,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1048,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/cf-agent.c:1050,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1051,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1055,1
    - Dst: SetFacility
      Src: /src/core/cf-agent/cf-agent.c:1057,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1061,1
    - Dst: CheckAgentAccess
      Src: /src/core/cf-agent/cf-agent.c:1064,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1068,1
    - Dst: EvalContextSetRestrictKeys
      Src: /src/core/cf-agent/cf-agent.c:1070,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1074,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1076,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1079,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1079,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1082,1
    - Dst: PrependItem
      Src: /src/core/cf-agent/cf-agent.c:1084,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1084,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1090,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1092,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/cf-agent.c:1098,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1098,1
    - Dst: EvalContextHeapAddAbort
      Src: /src/core/cf-agent/cf-agent.c:1100,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1106,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1108,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/cf-agent.c:1113,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1113,1
    - Dst: EvalContextHeapAddAbortCurrentBundle
      Src: /src/core/cf-agent/cf-agent.c:1115,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1121,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1123,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1127,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1127,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/cf-agent/cf-agent.c:1128,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1128,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1134,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1136,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1137,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1141,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1143,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1144,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1147,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1149,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1150,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1154,1
    - Dst: SetBindInterface
      Src: /src/core/cf-agent/cf-agent.c:1156,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1160,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1162,1
    - Dst: SetChecksumUpdatesDefault
      Src: /src/core/cf-agent/cf-agent.c:1164,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1165,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1169,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1171,1
    - Dst: setenv_wrapper
      Src: /src/core/cf-agent/cf-agent.c:1172,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1176,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1179,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1183,1
    - Dst: SetFileAutoDefineList
      Src: /src/core/cf-agent/cf-agent.c:1185,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1186,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1190,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1192,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1193,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1197,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1199,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1202,1
    - Dst: MAX
      Src: /src/core/cf-agent/cf-agent.c:1202,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1202,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1206,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1208,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1211,1
    - Dst: LogLevelToString
      Src: /src/core/cf-agent/cf-agent.c:1212,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1212,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1216,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1218,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1221,1
    - Dst: MAX
      Src: /src/core/cf-agent/cf-agent.c:1221,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1221,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1225,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1227,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1230,1
    - Dst: LogLevelToString
      Src: /src/core/cf-agent/cf-agent.c:1231,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1231,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1235,1
    - Dst: SetRepositoryLocation
      Src: /src/core/cf-agent/cf-agent.c:1237,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1238,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1242,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1244,1
    - Dst: SetSkipIdentify
      Src: /src/core/cf-agent/cf-agent.c:1246,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1247,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1251,1
    - Dst: AddFilenameToListOfSuspicious
      Src: /src/core/cf-agent/cf-agent.c:1255,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1255,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1256,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1256,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1262,1
    - Dst: SetRepositoryChar
      Src: /src/core/cf-agent/cf-agent.c:1266,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1267,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1271,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1273,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1274,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1278,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/cf-agent.c:1280,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1281,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1285,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/cf-agent.c:1287,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1288,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1292,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/cf-agent.c:1294,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1295,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1299,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/cf-agent.c:1301,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1302,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1306,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/cf-agent.c:1308,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1309,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1312,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1319,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1321,1
    - Dst: assert
      Src: /src/core/cf-agent/cf-agent.c:1325,1
    - Dst: strchr
      Src: /src/core/cf-agent/cf-agent.c:1325,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1325,1
    - Dst: putenv_wrapper
      Src: /src/core/cf-agent/cf-agent.c:1326,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1326,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1328,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1329,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/cf-agent.c:1329,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1336,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1338,1
    - Dst: EvalContextSetSelectEndMatchEof
      Src: /src/core/cf-agent/cf-agent.c:1339,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1339,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1343,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1345,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1347,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:1352,1
    - Dst: assert
      Src: /src/core/cf-agent/cf-agent.c:1354,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1356,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:1358,1
    - Dst: EvalContextSetAgentEvalOrder
      Src: /src/core/cf-agent/cf-agent.c:1360,1
    - Dst: EvalContextSetAgentEvalOrder
      Src: /src/core/cf-agent/cf-agent.c:1364,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:1369,1
    - Dst: assert
      Src: /src/core/cf-agent/cf-agent.c:1371,1
    - Dst: ParseModeString
      Src: /src/core/cf-agent/cf-agent.c:1374,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1378,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1383,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-agent/cf-agent.c:1392,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/cf-agent.c:1394,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-agent/cf-agent.c:1397,1
    - Dst: BooleanFromString
      Src: /src/core/cf-agent/cf-agent.c:1399,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1400,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-agent/cf-agent.c:1403,1
    - Dst: SetSyslogPort
      Src: /src/core/cf-agent/cf-agent.c:1405,1
    - Dst: IntFromString
      Src: /src/core/cf-agent/cf-agent.c:1405,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1406,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-agent/cf-agent.c:1409,1
    - Dst: SetSyslogHost
      Src: /src/core/cf-agent/cf-agent.c:1412,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1414,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1419,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-agent/cf-agent.c:1423,1
    - Dst: DoubleFromString
      Src: /src/core/cf-agent/cf-agent.c:1426,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1429,1
    - Dst: Nova_Initialize
      Src: /src/core/cf-agent/cf-agent.c:1432,1
    - Dst: Nova_InitializeLeech2
      Src: /src/core/cf-agent/cf-agent.c:1433,1
    - Dst: EvalContextAllClassesLoggingEnable
      Src: /src/core/cf-agent/cf-agent.c:1440,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 275
    argCount: 3
    argNames:
    - ctx
    - policy
    - config
    argTypes:
    - EvalContext*
    - Policy*
    - GenericAgentConfig*
    assertStmts:
    - condition: (value_type == CF_DATA_TYPE_STRING)
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/core/cf-agent/cf-agent.c
    - condition: (value_type == CF_DATA_TYPE_STRING_LIST)
      pos:
        line_end: 1019
        line_start: 1019
        source_file: /src/core/cf-agent/cf-agent.c
    - condition: (strchr(RlistScalarValue(rp), '='))
      pos:
        line_end: 1324
        line_start: 1324
        source_file: /src/core/cf-agent/cf-agent.c
    - condition: (value_type == CF_DATA_TYPE_STRING)
      pos:
        line_end: 1370
        line_start: 1370
        source_file: /src/core/cf-agent/cf-agent.c
    constantsTouched: []
    func_position:
      end: 1442
      start: 991
    functionDepth: 10
    functionLinenumber: 991
    functionLinenumberEnd: 1442
    functionName: KeepControlPromises
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 2
    functionsReached:
    - SetSkipIdentify
    - EvalContextAllClassesLoggingEnable
    - SetBindInterface
    - SetRepositoryChar
    - putenv_wrapper
    - SetSyslogHost
    - VarRefDestroy
    - SetFacility
    - Log
    - DoubleFromString
    - RlistScalarValue
    - SeqLength
    - free
    - StringSetNew
    - BooleanFromString
    - strlcpy
    - StringEqual
    - EvalContextHeapAddAbort
    - EvalContextClassPutSoft
    - WouldLog
    - SetFileAutoDefineList
    - ParseModeString
    - RlistToString
    - strchr
    - LogGetGlobalLevel
    - IsDefinedClass
    - strcmp
    - setenv_wrapper
    - LogLevelToString
    - EvalContextSetSelectEndMatchEof
    - Nova_InitializeLeech2
    - IntFromString
    - SeqAt
    - SetRepositoryLocation
    - EvalContextHeapAddAbortCurrentBundle
    - assert
    - LogSetGlobalLevel
    - VarRefParseFromScope
    - SetSyslogPort
    - EvalContextSetAgentEvalOrder
    - CheckAgentAccess
    - GetErrorStr
    - ControlBodyConstraints
    - MAX
    - EvalContextSetRestrictKeys
    - EvalContextVariableGet
    - SetChecksumUpdatesDefault
    - PrependItem
    - AddFilenameToListOfSuspicious
    - EvalContextVariableControlCommonGet
    - Nova_Initialize
    linkageType: ''
    returnType: void
    signature: void KeepControlPromises(EvalContext *ctx, const Policy *policy, GenericAgentConfig
      *config)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Banner
      Src: /src/core/cf-agent/cf-agent.c:1450,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1454,1
    - Dst: RlistCopy
      Src: /src/core/cf-agent/cf-agent.c:1455,1
    - Dst: RlistCopy
      Src: /src/core/cf-agent/cf-agent.c:1459,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-agent/cf-agent.c:1459,1
    - Dst: RlistAppendScalar
      Src: /src/core/cf-agent/cf-agent.c:1464,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1476,1
    - Dst: RlistFnCallValue
      Src: /src/core/cf-agent/cf-agent.c:1479,1
    - Dst: StringWriter
      Src: /src/core/cf-agent/cf-agent.c:1485,1
    - Dst: WriterWrite
      Src: /src/core/cf-agent/cf-agent.c:1486,1
    - Dst: RvalWrite
      Src: /src/core/cf-agent/cf-agent.c:1487,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1488,1
    - Dst: StringWriterData
      Src: /src/core/cf-agent/cf-agent.c:1488,1
    - Dst: WriterClose
      Src: /src/core/cf-agent/cf-agent.c:1489,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/cf-agent/cf-agent.c:1497,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/cf-agent/cf-agent.c:1500,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1505,1
    - Dst: FatalError
      Src: /src/core/cf-agent/cf-agent.c:1513,1
    - Dst: StringWriter
      Src: /src/core/cf-agent/cf-agent.c:1516,1
    - Dst: WriterWrite
      Src: /src/core/cf-agent/cf-agent.c:1517,1
    - Dst: RlistWrite
      Src: /src/core/cf-agent/cf-agent.c:1518,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1519,1
    - Dst: StringWriterData
      Src: /src/core/cf-agent/cf-agent.c:1519,1
    - Dst: WriterClose
      Src: /src/core/cf-agent/cf-agent.c:1520,1
    - Dst: RlistFnCallValue
      Src: /src/core/cf-agent/cf-agent.c:1531,1
    - Dst: RlistFnCallValue
      Src: /src/core/cf-agent/cf-agent.c:1532,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1536,1
    - Dst: EvalContextSetBundleArgs
      Src: /src/core/cf-agent/cf-agent.c:1540,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/cf-agent/cf-agent.c:1542,1
    - Dst: EvalContextResolveBundleExpression
      Src: /src/core/cf-agent/cf-agent.c:1545,1
    - Dst: BundleBanner
      Src: /src/core/cf-agent/cf-agent.c:1550,1
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/cf-agent/cf-agent.c:1551,1
    - Dst: ScheduleAgentOperations
      Src: /src/core/cf-agent/cf-agent.c:1552,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/cf-agent.c:1553,1
    - Dst: EndBundleBanner
      Src: /src/core/cf-agent/cf-agent.c:1554,1
    - Dst: EvalAborted
      Src: /src/core/cf-agent/cf-agent.c:1555,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1564,1
    - Dst: FatalError
      Src: /src/core/cf-agent/cf-agent.c:1568,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/cf-agent.c:1573,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 3
    argNames:
    - ctx
    - policy
    - config
    argTypes:
    - EvalContext*
    - Policy*
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1446
    functionDepth: 10
    functionLinenumber: 1446
    functionLinenumberEnd: 1574
    functionName: KeepPromiseBundles
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - BundleBanner
    - RlistAppendScalar
    - EvalContextStackPopFrame
    - Log
    - EvalAborted
    - RlistScalarValue
    - EvalContextStackPushBundleFrame
    - EvalContextSetBundleArgs
    - WriterWrite
    - RlistFnCallValue
    - RvalWrite
    - RlistDestroy
    - RlistWrite
    - RlistCopy
    - WriterClose
    - Banner
    - EvalContextResolveBundleExpression
    - ScheduleAgentOperations
    - EndBundleBanner
    - StringWriter
    - FatalError
    - StringWriterData
    - EvalContextVariableControlCommonGet
    linkageType: ''
    returnType: void
    signature: void KeepPromiseBundles(EvalContext *ctx, const Policy *policy, GenericAgentConfig
      *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-agent/cf-agent.c:1579,1
    - Dst: GetStateDir
      Src: /src/core/cf-agent/cf-agent.c:1579,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/cf-agent.c:1581,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1584,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/cf-agent.c:1584,1
    - Dst: FileWriter
      Src: /src/core/cf-agent/cf-agent.c:1588,1
    - Dst: EvalContextClassTableIteratorNewGlobal
      Src: /src/core/cf-agent/cf-agent.c:1589,1
    - Dst: ClassTableIteratorNext
      Src: /src/core/cf-agent/cf-agent.c:1591,1
    - Dst: ClassRefToString
      Src: /src/core/cf-agent/cf-agent.c:1593,1
    - Dst: WriterWriteF
      Src: /src/core/cf-agent/cf-agent.c:1594,1
    - Dst: free
      Src: /src/core/cf-agent/cf-agent.c:1595,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/cf-agent/cf-agent.c:1597,1
    - Dst: WriterClose
      Src: /src/core/cf-agent/cf-agent.c:1598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1576
    functionDepth: 8
    functionLinenumber: 1576
    functionLinenumberEnd: 1600
    functionName: AllClassesReport
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - FileWriter
    - WriterClose
    - snprintf
    - ClassRefToString
    - GetStateDir
    - safe_fopen
    - ClassTableIteratorDestroy
    - Log
    - ClassTableIteratorNext
    - free
    - WriterWriteF
    - EvalContextClassTableIteratorNewGlobal
    linkageType: ''
    returnType: void
    signature: void AllClassesReport(const EvalContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextIsClassicOrder
      Src: /src/core/cf-agent/cf-agent.c:1605,1
    - Dst: ScheduleAgentOperationsNormalOrder
      Src: /src/core/cf-agent/cf-agent.c:1607,1
    - Dst: ScheduleAgentOperationsTopDownOrder
      Src: /src/core/cf-agent/cf-agent.c:1609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - bp
    argTypes:
    - EvalContext*
    - Bundle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1610
    functionName: ScheduleAgentOperations
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 2
    functionsReached:
    - ScheduleAgentOperationsNormalOrder
    - EvalContextIsClassicOrder
    - ScheduleAgentOperationsTopDownOrder
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult ScheduleAgentOperations(EvalContext *ctx, const Bundle
      *bp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/cf-agent.c:1614,1
    - Dst: BeginMeasure
      Src: /src/core/cf-agent/cf-agent.c:1619,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-agent/cf-agent.c:1621,1
    - Dst: ClearProcessTable
      Src: /src/core/cf-agent/cf-agent.c:1623,1
    - Dst: BundleGetSection
      Src: /src/core/cf-agent/cf-agent.c:1633,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/cf-agent.c:1635,1
    - Dst: NewTypeContext
      Src: /src/core/cf-agent/cf-agent.c:1640,1
    - Dst: SpecialTypeBanner
      Src: /src/core/cf-agent/cf-agent.c:1642,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/cf-agent/cf-agent.c:1643,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/cf-agent.c:1645,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/cf-agent.c:1647,1
    - Dst: EvalContextSetPass
      Src: /src/core/cf-agent/cf-agent.c:1649,1
    - Dst: ExpandPromise
      Src: /src/core/cf-agent/cf-agent.c:1651,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/cf-agent.c:1652,1
    - Dst: EvalAborted
      Src: /src/core/cf-agent/cf-agent.c:1654,1
    - Dst: BundleAbort
      Src: /src/core/cf-agent/cf-agent.c:1654,1
    - Dst: DeleteTypeContext
      Src: /src/core/cf-agent/cf-agent.c:1656,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/cf-agent.c:1657,1
    - Dst: NoteBundleCompliance
      Src: /src/core/cf-agent/cf-agent.c:1658,1
    - Dst: DeleteTypeContext
      Src: /src/core/cf-agent/cf-agent.c:1663,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/cf-agent.c:1664,1
    - Dst: BundleResolve
      Src: /src/core/cf-agent/cf-agent.c:1668,1
    - Dst: BundleResolvePromiseType
      Src: /src/core/cf-agent/cf-agent.c:1669,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/cf-agent.c:1674,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/cf-agent.c:1677,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/cf-agent/cf-agent.c:1679,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/cf-agent.c:1681,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/cf-agent.c:1684,1
    - Dst: EvalContextSetPass
      Src: /src/core/cf-agent/cf-agent.c:1686,1
    - Dst: ExpandPromise
      Src: /src/core/cf-agent/cf-agent.c:1688,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/cf-agent.c:1689,1
    - Dst: EvalAborted
      Src: /src/core/cf-agent/cf-agent.c:1691,1
    - Dst: BundleAbort
      Src: /src/core/cf-agent/cf-agent.c:1691,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/cf-agent.c:1693,1
    - Dst: NoteBundleCompliance
      Src: /src/core/cf-agent/cf-agent.c:1694,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/cf-agent.c:1698,1
    - Dst: NoteBundleCompliance
      Src: /src/core/cf-agent/cf-agent.c:1702,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - ctx
    - bp
    argTypes:
    - EvalContext*
    - Bundle*
    assertStmts:
    - condition: (bp != NULL)
      pos:
        line_end: 1613
        line_start: 1613
        source_file: /src/core/cf-agent/cf-agent.c
    constantsTouched: []
    func_position:
      end: 1704
      start: 1612
    functionDepth: 17
    functionLinenumber: 1612
    functionLinenumberEnd: 1704
    functionName: ScheduleAgentOperationsNormalOrder
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - ExpandPromise
    - BundleAbort
    - EvalContextStackPopFrame
    - ClearProcessTable
    - EvalContextStackPushBundleSectionFrame
    - EvalAborted
    - SeqLength
    - DeleteTypeContext
    - BundleResolve
    - IsRegexItemIn
    - BeginMeasure
    - SeqAt
    - SpecialTypeBanner
    - assert
    - BundleResolvePromiseType
    - NewTypeContext
    - EvalContextSetPass
    - NoteBundleCompliance
    - BundleGetSection
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult ScheduleAgentOperationsNormalOrder(EvalContext *ctx,
      const Bundle *bp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/cf-agent.c:1708,1
    - Dst: BeginMeasure
      Src: /src/core/cf-agent/cf-agent.c:1713,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-agent/cf-agent.c:1715,1
    - Dst: ClearProcessTable
      Src: /src/core/cf-agent/cf-agent.c:1717,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/cf-agent.c:1724,1
    - Dst: EvalContextSetPass
      Src: /src/core/cf-agent/cf-agent.c:1726,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/cf-agent.c:1727,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:1730,1
    - Dst: SpecialTypeBannerFromString
      Src: /src/core/cf-agent/cf-agent.c:1732,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/cf-agent/cf-agent.c:1736,1
    - Dst: ExpandPromise
      Src: /src/core/cf-agent/cf-agent.c:1738,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/cf-agent.c:1739,1
    - Dst: EvalAborted
      Src: /src/core/cf-agent/cf-agent.c:1740,1
    - Dst: BundleAbort
      Src: /src/core/cf-agent/cf-agent.c:1740,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/cf-agent.c:1742,1
    - Dst: NoteBundleCompliance
      Src: /src/core/cf-agent/cf-agent.c:1743,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/cf-agent.c:1746,1
    - Dst: NoteBundleCompliance
      Src: /src/core/cf-agent/cf-agent.c:1750,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - bp
    argTypes:
    - EvalContext*
    - Bundle*
    assertStmts:
    - condition: (bp != NULL)
      pos:
        line_end: 1707
        line_start: 1707
        source_file: /src/core/cf-agent/cf-agent.c
    constantsTouched: []
    func_position:
      end: 1752
      start: 1706
    functionDepth: 15
    functionLinenumber: 1706
    functionLinenumberEnd: 1752
    functionName: ScheduleAgentOperationsTopDownOrder
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - ExpandPromise
    - BundleAbort
    - NoteBundleCompliance
    - StringEqual
    - EvalContextStackPopFrame
    - assert
    - SpecialTypeBannerFromString
    - ClearProcessTable
    - EvalContextStackPushBundleSectionFrame
    - IsRegexItemIn
    - EvalAborted
    - BeginMeasure
    - SeqLength
    - PromiseResultUpdate
    - EvalContextSetPass
    - SeqAt
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult ScheduleAgentOperationsTopDownOrder(EvalContext *ctx,
      const Bundle *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - list
    - policy
    argTypes:
    - Rlist*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1760
    functionName: CheckAgentAccess
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CheckAgentAccess(const Rlist *list, const Policy *policy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/cf-agent/cf-agent.c:1766,1
    - Dst: Str2Uid
      Src: /src/core/cf-agent/cf-agent.c:1770,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1770,1
    - Dst: PolicySourceFiles
      Src: /src/core/cf-agent/cf-agent.c:1777,1
    - Dst: StringSetIteratorInit
      Src: /src/core/cf-agent/cf-agent.c:1778,1
    - Dst: StringSetIteratorNext
      Src: /src/core/cf-agent/cf-agent.c:1780,1
    - Dst: stat
      Src: /src/core/cf-agent/cf-agent.c:1783,1
    - Dst: Str2Uid
      Src: /src/core/cf-agent/cf-agent.c:1790,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1790,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1799,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:1800,1
    - Dst: IsPrivileged
      Src: /src/core/cf-agent/cf-agent.c:1803,1
    - Dst: getuid
      Src: /src/core/cf-agent/cf-agent.c:1805,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1807,1
    - Dst: getuid
      Src: /src/core/cf-agent/cf-agent.c:1808,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:1809,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/cf-agent.c:1814,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1817,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-agent/cf-agent.c:1818,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - list
    - policy
    argTypes:
    - Rlist*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1764
    functionDepth: 14
    functionLinenumber: 1764
    functionLinenumberEnd: 1819
    functionName: CheckAgentAccess
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - DoCleanupAndExit
    - stat
    - IsPrivileged
    - PolicySourceFiles
    - StringSetIteratorNext
    - getuid
    - StringSetDestroy
    - Log
    - StringSetIteratorInit
    - RlistScalarValue
    - Str2Uid
    linkageType: ''
    returnType: void
    signature: void CheckAgentAccess(const Rlist *list, const Policy *policy)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/cf-agent.c:1826,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/cf-agent.c:1833,1
    - Dst: EvalContextVariableGet
      Src: /src/core/cf-agent/cf-agent.c:1834,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/cf-agent.c:1835,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/cf-agent.c:1843,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/cf-agent.c:1861,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/cf-agent.c:1861,1
    - Dst: VarRefParseFromBundle
      Src: /src/core/cf-agent/cf-agent.c:1880,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/cf-agent.c:1880,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/cf-agent.c:1881,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/cf-agent.c:1882,1
    - Dst: VerifyVarPromise
      Src: /src/core/cf-agent/cf-agent.c:1885,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1824
    functionDepth: 13
    functionLinenumber: 1824
    functionLinenumberEnd: 1886
    functionName: DefaultVarPromise
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - PromiseGetBundle
    - VarRefParseFromBundle
    - EvalContextVariableRemove
    - VarRefParseFromScope
    - VarRefDestroy
    - EvalContextVariableGet
    - FullTextMatch
    - VerifyVarPromise
    - PromiseGetConstraintAsRval
    - RlistScalarValue
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult DefaultVarPromise(EvalContext *ctx, const Promise *pp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: VarRefParseFromBundle
      Src: /src/core/cf-agent/cf-agent.c:1890,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/cf-agent.c:1890,1
    - Dst: EvalContextVariableGet
      Src: /src/core/cf-agent/cf-agent.c:1894,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:1900,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/cf-agent.c:1908,1
    - Dst: strlen
      Src: /src/core/cf-agent/cf-agent.c:1914,1
    - Dst: xrealloc
      Src: /src/core/cf-agent/cf-agent.c:1916,1
    - Dst: strlcat
      Src: /src/core/cf-agent/cf-agent.c:1922,1
    - Dst: strlcat
      Src: /src/core/cf-agent/cf-agent.c:1925,1
    - Dst: StringWriter
      Src: /src/core/cf-agent/cf-agent.c:1931,1
    - Dst: JsonWriteCompact
      Src: /src/core/cf-agent/cf-agent.c:1932,1
    - Dst: StringWriterClose
      Src: /src/core/cf-agent/cf-agent.c:1933,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:1941,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1945,1
    - Dst: free
      Src: /src/core/cf-agent/cf-agent.c:1946,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/cf-agent.c:1947,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1888
    functionDepth: 11
    functionLinenumber: 1888
    functionLinenumberEnd: 1948
    functionName: LogVariableValue
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - PromiseGetBundle
    - VarRefParseFromBundle
    - strlcat
    - strlen
    - xrealloc
    - StringWriter
    - VarRefDestroy
    - EvalContextVariableGet
    - JsonWriteCompact
    - Log
    - xstrdup
    - StringWriterClose
    - free
    linkageType: ''
    returnType: void
    signature: void LogVariableValue(const EvalContext *ctx, const Promise *pp)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/cf-agent.c:1952,1
    - Dst: assert
      Src: /src/core/cf-agent/cf-agent.c:1953,1
    - Dst: BannerStatusBegin
      Src: /src/core/cf-agent/cf-agent.c:1955,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:1955,1
    - Dst: BeginMeasure
      Src: /src/core/cf-agent/cf-agent.c:1956,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1959,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:1959,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1960,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:1960,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1962,1
    - Dst: VerifyVarPromise
      Src: /src/core/cf-agent/cf-agent.c:1964,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:1967,1
    - Dst: LogVariableValue
      Src: /src/core/cf-agent/cf-agent.c:1969,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1973,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:1973,1
    - Dst: DefaultVarPromise
      Src: /src/core/cf-agent/cf-agent.c:1975,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1977,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:1977,1
    - Dst: VerifyClassPromise
      Src: /src/core/cf-agent/cf-agent.c:1979,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1981,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:1981,1
    - Dst: LoadProcessTable
      Src: /src/core/cf-agent/cf-agent.c:1983,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:1985,1
    - Dst: VerifyProcessesPromise
      Src: /src/core/cf-agent/cf-agent.c:1988,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:1991,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:1994,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:1994,1
    - Dst: FindAndVerifyStoragePromises
      Src: /src/core/cf-agent/cf-agent.c:1996,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:1999,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2002,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2002,1
    - Dst: VerifyPackagesPromise
      Src: /src/core/cf-agent/cf-agent.c:2004,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:2007,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2010,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2010,1
    - Dst: VerifyUsersPromise
      Src: /src/core/cf-agent/cf-agent.c:2012,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:2015,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2019,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2019,1
    - Dst: ParallelFindAndVerifyFilesPromises
      Src: /src/core/cf-agent/cf-agent.c:2021,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:2024,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2027,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2027,1
    - Dst: VerifyExecPromise
      Src: /src/core/cf-agent/cf-agent.c:2029,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:2032,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2035,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2035,1
    - Dst: VerifyDatabasePromises
      Src: /src/core/cf-agent/cf-agent.c:2037,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:2040,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2043,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2043,1
    - Dst: VerifyMethodsPromise
      Src: /src/core/cf-agent/cf-agent.c:2045,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:2048,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2051,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2051,1
    - Dst: VerifyServicesPromise
      Src: /src/core/cf-agent/cf-agent.c:2053,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:2056,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2059,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2059,1
    - Dst: VerifyEnvironmentsPromise
      Src: /src/core/cf-agent/cf-agent.c:2061,1
    - Dst: EndMeasurePromise
      Src: /src/core/cf-agent/cf-agent.c:2064,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2067,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2067,1
    - Dst: VerifyReportPromise
      Src: /src/core/cf-agent/cf-agent.c:2069,1
    - Dst: IsBuiltInPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2071,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2071,1
    - Dst: EvaluateCustomPromise
      Src: /src/core/cf-agent/cf-agent.c:2073,1
    - Dst: BannerStatusEnd
      Src: /src/core/cf-agent/cf-agent.c:2080,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/cf-agent.c:2080,1
    - Dst: EvalContextLogPromiseIterationOutcome
      Src: /src/core/cf-agent/cf-agent.c:2081,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 94
    argCount: 3
    argNames:
    - ctx
    - pp
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - ARG_UNUSED*
    assertStmts:
    - condition: (param == NULL)
      pos:
        line_end: 1951
        line_start: 1951
        source_file: /src/core/cf-agent/cf-agent.c
    - condition: (pp != NULL)
      pos:
        line_end: 1952
        line_start: 1952
        source_file: /src/core/cf-agent/cf-agent.c
    constantsTouched: []
    func_position:
      end: 2083
      start: 1950
    functionDepth: 15
    functionLinenumber: 1950
    functionLinenumberEnd: 2083
    functionName: KeepAgentPromise
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 0
    functionsReached:
    - VerifyProcessesPromise
    - VerifyUsersPromise
    - BannerStatusEnd
    - DefaultVarPromise
    - Log
    - VerifyEnvironmentsPromise
    - VerifyServicesPromise
    - LogGetGlobalLevel
    - LogVariableValue
    - strcmp
    - LoadProcessTable
    - BeginMeasure
    - VerifyPackagesPromise
    - VerifyReportPromise
    - PromiseGetPromiseType
    - assert
    - VerifyClassPromise
    - VerifyMethodsPromise
    - VerifyVarPromise
    - EndMeasurePromise
    - VerifyDatabasePromises
    - EvaluateCustomPromise
    - EvalContextLogPromiseIterationOutcome
    - VerifyExecPromise
    - FindAndVerifyStoragePromises
    - IsBuiltInPromiseType
    - BannerStatusBegin
    - ParallelFindAndVerifyFilesPromises
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult KeepAgentPromise(EvalContext *ctx, const Promise *pp,
      ARG_UNUSED void *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:2087,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/cf-agent.c:2087,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2091,1
    - Dst: strlen
      Src: /src/core/cf-agent/cf-agent.c:2093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2085
    functionDepth: 8
    functionLinenumber: 2085
    functionLinenumberEnd: 2094
    functionName: BannerStatusBegin
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - Log
    - StringEqual
    - strlen
    linkageType: ''
    returnType: void
    signature: void BannerStatusBegin(const char *type, char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2098,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf-agent.c:2098,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2106,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2110,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2116,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2120,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2124,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2131,1
    - Dst: strlen
      Src: /src/core/cf-agent/cf-agent.c:2133,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - status
    - type
    - name
    argTypes:
    - PromiseResult
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2096
    functionDepth: 8
    functionLinenumber: 2096
    functionLinenumberEnd: 2134
    functionName: BannerStatusEnd
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - Log
    - strcmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void BannerStatusEnd(PromiseResult status, const char *type, char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NewEnvironmentsContext
      Src: /src/core/cf-agent/cf-agent.c:2147,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/cf-agent.c:2158,1
    - Dst: GetGlobalMountedFSList
      Src: /src/core/cf-agent/cf-agent.c:2158,1
    - Dst: DeleteMountInfo
      Src: /src/core/cf-agent/cf-agent.c:2160,1
    - Dst: GetGlobalMountedFSList
      Src: /src/core/cf-agent/cf-agent.c:2160,1
    - Dst: SeqClear
      Src: /src/core/cf-agent/cf-agent.c:2161,1
    - Dst: GetGlobalMountedFSList
      Src: /src/core/cf-agent/cf-agent.c:2161,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - type
    argTypes:
    - TypeSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2140
    functionDepth: 3
    functionLinenumber: 2140
    functionLinenumberEnd: 2171
    functionName: NewTypeContext
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - GetGlobalMountedFSList
    - SeqClear
    - SeqLength
    - NewEnvironmentsContext
    - DeleteMountInfo
    linkageType: ''
    returnType: void
    signature: void NewTypeContext(TypeSequence type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DeleteEnvironmentsContext
      Src: /src/core/cf-agent/cf-agent.c:2180,1
    - Dst: DeleteStorageContext
      Src: /src/core/cf-agent/cf-agent.c:2190,1
    - Dst: ExecuteScheduledPackages
      Src: /src/core/cf-agent/cf-agent.c:2194,1
    - Dst: CleanScheduledPackages
      Src: /src/core/cf-agent/cf-agent.c:2195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - EvalContext*
    - TypeSequence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2175
    functionDepth: 14
    functionLinenumber: 2175
    functionLinenumberEnd: 2201
    functionName: DeleteTypeContext
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - ExecuteScheduledPackages
    - DeleteStorageContext
    - DeleteEnvironmentsContext
    - CleanScheduledPackages
    linkageType: ''
    returnType: void
    signature: void DeleteTypeContext(EvalContext *ctx, TypeSequence type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/cf-agent/cf-agent.c:2211,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2215,1
    - Dst: FindAndVerifyFilesPromises
      Src: /src/core/cf-agent/cf-agent.c:2218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2209
    functionDepth: 10
    functionLinenumber: 2209
    functionLinenumberEnd: 2219
    functionName: ParallelFindAndVerifyFilesPromises
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - Log
    - FindAndVerifyFilesPromises
    - PromiseGetConstraintAsBoolean
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult ParallelFindAndVerifyFilesPromises(EvalContext *ctx,
      const Promise *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/cf-agent/cf-agent.c:2225,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2234,1
    - Dst: fork
      Src: /src/core/cf-agent/cf-agent.c:2235,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/cf-agent.c:2241,1
    - Dst: FindAndVerifyFilesPromises
      Src: /src/core/cf-agent/cf-agent.c:2241,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2243,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/cf-agent.c:2244,1
    - Dst: _exit
      Src: /src/core/cf-agent/cf-agent.c:2245,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2251,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/cf-agent.c:2257,1
    - Dst: FindAndVerifyFilesPromises
      Src: /src/core/cf-agent/cf-agent.c:2257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2223
    functionDepth: 10
    functionLinenumber: 2223
    functionLinenumberEnd: 2261
    functionName: ParallelFindAndVerifyFilesPromises
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - fork
    - PromiseRef
    - Log
    - FindAndVerifyFilesPromises
    - PromiseGetConstraintAsBoolean
    - PromiseResultUpdate
    - _exit
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult ParallelFindAndVerifyFilesPromises(EvalContext *ctx,
      const Promise *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PolicyServerGet
      Src: /src/core/cf-agent/cf-agent.c:2269,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/cf-agent.c:2270,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2272,1
    - Dst: snprintf
      Src: /src/core/cf-agent/cf-agent.c:2279,1
    - Dst: GetInputDir
      Src: /src/core/cf-agent/cf-agent.c:2279,1
    - Dst: MapName
      Src: /src/core/cf-agent/cf-agent.c:2280,1
    - Dst: stat
      Src: /src/core/cf-agent/cf-agent.c:2283,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2285,1
    - Dst: ClearProcessTable
      Src: /src/core/cf-agent/cf-agent.c:2291,1
    - Dst: LoadProcessTable
      Src: /src/core/cf-agent/cf-agent.c:2292,1
    - Dst: IsProcessNameRunning
      Src: /src/core/cf-agent/cf-agent.c:2294,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2296,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - skip_cf_execd_check
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2267
    functionDepth: 14
    functionLinenumber: 2267
    functionLinenumberEnd: 2303
    functionName: VerifyBootstrap
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - stat
    - snprintf
    - MapName
    - ClearProcessTable
    - Log
    - LoadProcessTable
    - GetInputDir
    - NULL_OR_EMPTY
    - IsProcessNameRunning
    - PolicyServerGet
    linkageType: ''
    returnType: bool
    signature: bool VerifyBootstrap(bool skip_cf_execd_check)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2318,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2319,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2323,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2324,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2329,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2330,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2331,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2335,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-agent/cf-agent.c:2338,1
    - Dst: snprintf
      Src: /src/core/cf-agent/cf-agent.c:2341,1
    - Dst: EndMeasure
      Src: /src/core/cf-agent/cf-agent.c:2342,1
    - Dst: EndMeasure
      Src: /src/core/cf-agent/cf-agent.c:2346,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - bundle
    - save_pr_kept
    - save_pr_repaired
    - save_pr_notkept
    - start
    argTypes:
    - Bundle*
    - int
    - int
    - int
    - struct timespec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2309
    functionDepth: 9
    functionLinenumber: 2309
    functionLinenumberEnd: 2364
    functionName: NoteBundleCompliance
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 2
    functionsReached:
    - EndMeasure
    - LogGetGlobalLevel
    - Log
    - snprintf
    linkageType: ''
    returnType: int
    signature: int NoteBundleCompliance(const Bundle *bundle, int save_pr_kept, int
      save_pr_repaired, int save_pr_notkept, struct timespec start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2368
    functionDepth: 0
    functionLinenumber: 2368
    functionLinenumberEnd: 2371
    functionName: HasAvahiSupport
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasAvahiSupport(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ListHubs
      Src: /src/core/cf-agent/cf-agent.c:2377,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2383,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2387,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2394,1
    - Dst: strlen
      Src: /src/core/cf-agent/cf-agent.c:2398,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:2400,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:2401,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/cf-agent.c:2402,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2407,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2413,1
    - Dst: PrintList
      Src: /src/core/cf-agent/cf-agent.c:2414,1
    - Dst: dlclose
      Src: /src/core/cf-agent/cf-agent.c:2423,1
    - Dst: ListDestroy
      Src: /src/core/cf-agent/cf-agent.c:2425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - config
    argTypes:
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2374
    functionDepth: 8
    functionLinenumber: 2374
    functionLinenumberEnd: 2428
    functionName: AutomaticBootstrap
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - strlen
    - PrintList
    - Log
    - xstrdup
    - ListHubs
    - ListDestroy
    - dlclose
    linkageType: ''
    returnType: int
    signature: int AutomaticBootstrap(GenericAgentConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2431
    functionDepth: 0
    functionLinenumber: 2431
    functionLinenumberEnd: 2434
    functionName: HasAvahiSupport
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasAvahiSupport(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/cf-agent.c:2438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - GenericAgentConfig *config
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2439
    functionName: AutomaticBootstrap
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: int
    signature: int AutomaticBootstrap(ARG_UNUSED GenericAgentConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2449,1
    - Dst: wait
      Src: /src/core/cf-agent/cf-agent.c:2453,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2456,1
    - Dst: Log
      Src: /src/core/cf-agent/cf-agent.c:2460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2443
    functionDepth: 8
    functionLinenumber: 2443
    functionLinenumberEnd: 2463
    functionName: WaitForBackgroundProcesses
    functionSourceFile: /src/core/cf-agent/cf-agent.c
    functionUses: 1
    functionsReached:
    - Log
    - wait
    linkageType: ''
    returnType: void
    signature: void WaitForBackgroundProcesses()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_stub.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - puser
    - u
    - PromiseResult *result
    - action
    - EvalContext *ctx
    - Attributes *a
    - pp
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: VerifyOneUsersPromise
    functionSourceFile: /src/core/cf-agent/verify_users_stub.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: "void VerifyOneUsersPromise (\n    ARG_UNUSED const char *puser,\n
      \   ARG_UNUSED const User *u,\n    ARG_UNUSED PromiseResult *result,\n    ARG_UNUSED
      enum cfopaction action,\n    ARG_UNUSED EvalContext *ctx,\n    ARG_UNUSED const
      Attributes *a,\n    ARG_UNUSED const Promise *pp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - puser
    - passwd_info
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: IsAccountLocked
    functionSourceFile: /src/core/cf-agent/verify_users_stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool IsAccountLocked(\n    ARG_UNUSED const char *puser,\n    ARG_UNUSED
      const void *passwd_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - puser
    - passwd_info
    - result
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: GetPasswordHash
    functionSourceFile: /src/core/cf-agent/verify_users_stub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool GetPasswordHash(\n    ARG_UNUSED const char *puser,\n    ARG_UNUSED
      const void *passwd_info,\n    ARG_UNUSED const char **result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - result
    argTypes:
    - VersionCmpResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: InvertResult
    functionSourceFile: /src/core/cf-agent/vercmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VersionCmpResult
    signature: VersionCmpResult InvertResult(VersionCmpResult result)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - VersionCmpResult
    - VersionCmpResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: AndResults
    functionSourceFile: /src/core/cf-agent/vercmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: VersionCmpResult
    signature: VersionCmpResult AndResults(VersionCmpResult lhs, VersionCmpResult
      rhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BufferNew
      Src: /src/core/cf-agent/vercmp.c:64,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/vercmp.c:66,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/vercmp.c:67,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-agent/vercmp.c:69,1
    - Dst: EvalContextVariablePut
      Src: /src/core/cf-agent/vercmp.c:70,1
    - Dst: ExpandScalar
      Src: /src/core/cf-agent/vercmp.c:72,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/vercmp.c:74,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/vercmp.c:75,1
    - Dst: EvalContextVariableRemove
      Src: /src/core/cf-agent/vercmp.c:77,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-agent/vercmp.c:78,1
    - Dst: cf_popen_sh
      Src: /src/core/cf-agent/vercmp.c:81,1
    - Dst: BufferData
      Src: /src/core/cf-agent/vercmp.c:81,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/vercmp.c:81,1
    - Dst: BufferData
      Src: /src/core/cf-agent/vercmp.c:81,1
    - Dst: cfPS
      Src: /src/core/cf-agent/vercmp.c:85,1
    - Dst: BufferData
      Src: /src/core/cf-agent/vercmp.c:86,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/vercmp.c:86,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/vercmp.c:87,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/vercmp.c:88,1
    - Dst: Log
      Src: /src/core/cf-agent/vercmp.c:92,1
    - Dst: BufferData
      Src: /src/core/cf-agent/vercmp.c:92,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/vercmp.c:94,1
    - Dst: Log
      Src: /src/core/cf-agent/vercmp.c:95,1
    - Dst: cfPS
      Src: /src/core/cf-agent/vercmp.c:99,1
    - Dst: BufferData
      Src: /src/core/cf-agent/vercmp.c:100,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/vercmp.c:100,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/vercmp.c:101,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/vercmp.c:102,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/vercmp.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 7
    argNames:
    - ctx
    - command
    - v1
    - v2
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 61
    functionDepth: 13
    functionLinenumber: 61
    functionLinenumberEnd: 116
    functionName: RunCmpCommand
    functionSourceFile: /src/core/cf-agent/vercmp.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - BufferData
    - EvalContextVariableRemove
    - BufferDestroy
    - cf_popen
    - ExpandScalar
    - VarRefParseFromScope
    - cfPS
    - VarRefDestroy
    - cf_popen_sh
    - EvalContextVariablePut
    - Log
    - cf_pclose
    - BufferNew
    - PromiseResultUpdate
    linkageType: ''
    returnType: VersionCmpResult
    signature: "VersionCmpResult RunCmpCommand(EvalContext *ctx, const char *command,
      const char *v1, const char *v2, const Attributes *a,\n                                      const
      Promise *pp, PromiseResult *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RunCmpCommand
      Src: /src/core/cf-agent/vercmp.c:123,1
    - Dst: ComparePackageVersionsInternal
      Src: /src/core/cf-agent/vercmp.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - v1
    - v2
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 14
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: CompareVersionsLess
    functionSourceFile: /src/core/cf-agent/vercmp.c
    functionUses: 0
    functionsReached:
    - RunCmpCommand
    - ComparePackageVersionsInternal
    linkageType: ''
    returnType: VersionCmpResult
    signature: "VersionCmpResult CompareVersionsLess(EvalContext *ctx, const char
      *v1, const char *v2, const Attributes *a,\n                                            const
      Promise *pp, PromiseResult *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RunCmpCommand
      Src: /src/core/cf-agent/vercmp.c:136,1
    - Dst: AndResults
      Src: /src/core/cf-agent/vercmp.c:141,1
    - Dst: InvertResult
      Src: /src/core/cf-agent/vercmp.c:141,1
    - Dst: CompareVersionsLess
      Src: /src/core/cf-agent/vercmp.c:141,1
    - Dst: InvertResult
      Src: /src/core/cf-agent/vercmp.c:142,1
    - Dst: CompareVersionsLess
      Src: /src/core/cf-agent/vercmp.c:142,1
    - Dst: ComparePackageVersionsInternal
      Src: /src/core/cf-agent/vercmp.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ctx
    - v1
    - v2
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 131
    functionDepth: 15
    functionLinenumber: 131
    functionLinenumberEnd: 149
    functionName: CompareVersionsEqual
    functionSourceFile: /src/core/cf-agent/vercmp.c
    functionUses: 0
    functionsReached:
    - CompareVersionsLess
    - ComparePackageVersionsInternal
    - AndResults
    - RunCmpCommand
    - InvertResult
    linkageType: ''
    returnType: VersionCmpResult
    signature: "VersionCmpResult CompareVersionsEqual(EvalContext *ctx, const char
      *v1, const char *v2, const Attributes *a,\n                                             const
      Promise *pp, PromiseResult *result)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CompareVersionsEqual
      Src: /src/core/cf-agent/vercmp.c:160,1
    - Dst: InvertResult
      Src: /src/core/cf-agent/vercmp.c:163,1
    - Dst: CompareVersionsEqual
      Src: /src/core/cf-agent/vercmp.c:163,1
    - Dst: CompareVersionsLess
      Src: /src/core/cf-agent/vercmp.c:166,1
    - Dst: CompareVersionsLess
      Src: /src/core/cf-agent/vercmp.c:169,1
    - Dst: InvertResult
      Src: /src/core/cf-agent/vercmp.c:172,1
    - Dst: CompareVersionsLess
      Src: /src/core/cf-agent/vercmp.c:172,1
    - Dst: InvertResult
      Src: /src/core/cf-agent/vercmp.c:175,1
    - Dst: CompareVersionsLess
      Src: /src/core/cf-agent/vercmp.c:175,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/vercmp.c:178,1
    - Dst: Log
      Src: /src/core/cf-agent/vercmp.c:196,1
    - Dst: PackageVersionComparatorToString
      Src: /src/core/cf-agent/vercmp.c:197,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 6
    argNames:
    - ctx
    - v1
    - v2
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 151
    functionDepth: 16
    functionLinenumber: 151
    functionLinenumberEnd: 200
    functionName: CompareVersions
    functionSourceFile: /src/core/cf-agent/vercmp.c
    functionUses: 3
    functionsReached:
    - CompareVersionsEqual
    - CompareVersionsLess
    - PackageVersionComparatorToString
    - InvertResult
    - Log
    - ProgrammingError
    linkageType: ''
    returnType: VersionCmpResult
    signature: "VersionCmpResult CompareVersions(EvalContext *ctx, const char *v1,
      const char *v2, const Attributes *a,\n                                 const
      Promise *pp, PromiseResult *result)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/vercmp.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - pvc
    argTypes:
    - PackageVersionComparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: PackageVersionComparatorToString
    functionSourceFile: /src/core/cf-agent/vercmp.c
    functionUses: 3
    functionsReached:
    - ProgrammingError
    linkageType: ''
    returnType: char
    signature: char * PackageVersionComparatorToString(const PackageVersionComparator
      pvc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_edit.c:42,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-agent/files_edit.c:46,1
    - Dst: Log
      Src: /src/core/cf-agent/files_edit.c:48,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/files_edit.c:52,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/files_edit.c:58,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_edit.c:60,1
    - Dst: ToChangesChroot
      Src: /src/core/cf-agent/files_edit.c:60,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_edit.c:64,1
    - Dst: FileNewLineMode
      Src: /src/core/cf-agent/files_edit.c:67,1
    - Dst: LoadFileAsItemList
      Src: /src/core/cf-agent/files_edit.c:71,1
    - Dst: free
      Src: /src/core/cf-agent/files_edit.c:74,1
    - Dst: LoadFileAsXmlDoc
      Src: /src/core/cf-agent/files_edit.c:82,1
    - Dst: free
      Src: /src/core/cf-agent/files_edit.c:85,1
    - Dst: Log
      Src: /src/core/cf-agent/files_edit.c:89,1
    - Dst: free
      Src: /src/core/cf-agent/files_edit.c:90,1
    - Dst: Log
      Src: /src/core/cf-agent/files_edit.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - filename
    - a
    argTypes:
    - char*
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/core/cf-agent/files_edit.c
    constantsTouched: []
    func_position:
      end: 101
      start: 40
    functionDepth: 9
    functionLinenumber: 40
    functionLinenumberEnd: 101
    functionName: NewEditContext
    functionSourceFile: /src/core/cf-agent/files_edit.c
    functionUses: 1
    functionsReached:
    - ChrootChanges
    - xcalloc
    - LoadFileAsItemList
    - assert
    - FileNewLineMode
    - IsAbsoluteFileName
    - Log
    - xstrdup
    - LoadFileAsXmlDoc
    - ToChangesChroot
    - free
    linkageType: ''
    returnType: EditContext
    signature: EditContext *NewEditContext(char *filename, const Attributes *a)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CompareToFile
      Src: /src/core/cf-agent/files_edit.c:117,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_edit.c:118,1
    - Dst: CompareToFile
      Src: /src/core/cf-agent/files_edit.c:126,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_edit.c:128,1
    - Dst: SaveItemListAsFile
      Src: /src/core/cf-agent/files_edit.c:131,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_edit.c:133,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_edit.c:134,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_edit.c:138,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_edit.c:139,1
    - Dst: XmlCompareToFile
      Src: /src/core/cf-agent/files_edit.c:146,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_edit.c:150,1
    - Dst: SaveXmlDocAsFile
      Src: /src/core/cf-agent/files_edit.c:154,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_edit.c:156,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_edit.c:157,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_edit.c:161,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_edit.c:162,1
    - Dst: xmlFreeDoc
      Src: /src/core/cf-agent/files_edit.c:164,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_edit.c:166,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_edit.c:167,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_edit.c:173,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/files_edit.c:179,1
    - Dst: free
      Src: /src/core/cf-agent/files_edit.c:180,1
    - Dst: free
      Src: /src/core/cf-agent/files_edit.c:181,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 6
    argNames:
    - ctx
    - ec
    - a
    - pp
    - result
    - save_file
    argTypes:
    - EvalContext*
    - EditContext*
    - Attributes*
    - Promise*
    - PromiseResult*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 105
    functionDepth: 15
    functionLinenumber: 105
    functionLinenumberEnd: 183
    functionName: FinishEditContext
    functionSourceFile: /src/core/cf-agent/files_edit.c
    functionUses: 1
    functionsReached:
    - SaveXmlDocAsFile
    - xmlFreeDoc
    - RecordChange
    - XmlCompareToFile
    - CompareToFile
    - RecordFailure
    - SaveItemListAsFile
    - RecordNoChange
    - DeleteItemList
    - free
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: void
    signature: "void FinishEditContext(EvalContext *ctx, EditContext *ec, const Attributes
      *a, const Promise *pp,\n                       PromiseResult *result, bool save_file)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_edit.c:194,1
    - Dst: stat
      Src: /src/core/cf-agent/files_edit.c:198,1
    - Dst: Log
      Src: /src/core/cf-agent/files_edit.c:200,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_edit.c:200,1
    - Dst: Log
      Src: /src/core/cf-agent/files_edit.c:206,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/files_edit.c:211,1
    - Dst: Log
      Src: /src/core/cf-agent/files_edit.c:213,1
    - Dst: xmlNewDoc
      Src: /src/core/cf-agent/files_edit.c:220,1
    - Dst: Log
      Src: /src/core/cf-agent/files_edit.c:222,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_edit.c:222,1
    - Dst: xmlParseFile
      Src: /src/core/cf-agent/files_edit.c:228,1
    - Dst: Log
      Src: /src/core/cf-agent/files_edit.c:231,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_edit.c:231,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - doc
    - file
    - edits
    - only_checks
    argTypes:
    - xmlDocPtr*
    - char*
    - EditDefaults
    - bool
    assertStmts:
    - condition: (doc != NULL)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/core/cf-agent/files_edit.c
    constantsTouched: []
    func_position:
      end: 236
      start: 192
    functionDepth: 8
    functionLinenumber: 192
    functionLinenumberEnd: 236
    functionName: LoadFileAsXmlDoc
    functionSourceFile: /src/core/cf-agent/files_edit.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - stat
    - xmlNewDoc
    - xmlParseFile
    - assert
    - S_ISREG
    - Log
    linkageType: ''
    returnType: bool
    signature: bool LoadFileAsXmlDoc(xmlDocPtr *doc, const char *file, EditDefaults
      edits, bool only_checks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmlSaveFile
      Src: /src/core/cf-agent/files_edit.c:246,1
    - Dst: Log
      Src: /src/core/cf-agent/files_edit.c:248,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_edit.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest_filename
    - param
    - NewLineMode new_line_mode
    argTypes:
    - char*
    - void*
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 8
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: SaveXmlCallback
    functionSourceFile: /src/core/cf-agent/files_edit.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - xmlSaveFile
    - Log
    linkageType: ''
    returnType: bool
    signature: "bool SaveXmlCallback(const char *dest_filename, void *param,\n                            ARG_UNUSED
      NewLineMode new_line_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SaveAsFile
      Src: /src/core/cf-agent/files_edit.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - doc
    - file
    - a
    - new_line_mode
    argTypes:
    - EvalContext*
    - xmlDocPtr
    - char*
    - Attributes*
    - NewLineMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: SaveXmlDocAsFile
    functionSourceFile: /src/core/cf-agent/files_edit.c
    functionUses: 1
    functionsReached:
    - SaveAsFile
    linkageType: ''
    returnType: bool
    signature: bool SaveXmlDocAsFile(EvalContext *ctx, xmlDocPtr doc, const char *file,
      const Attributes *a, NewLineMode new_line_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: NewEnvironmentsContext
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NewEnvironmentsContext(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virConnectClose
      Src: /src/core/cf-agent/verify_environments.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: DeleteEnvironmentsContext
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - virConnectClose
    linkageType: ''
    returnType: void
    signature: void DeleteEnvironmentsContext(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentsAttributes
      Src: /src/core/cf-agent/verify_environments.c:126,1
    - Dst: EnvironmentsSanityChecks
      Src: /src/core/cf-agent/verify_environments.c:129,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_environments.c:131,1
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_environments.c:138,1
    - Dst: ExpandDeRefPromise
      Src: /src/core/cf-agent/verify_environments.c:141,1
    - Dst: VerifyEnvironments
      Src: /src/core/cf-agent/verify_environments.c:148,1
    - Dst: PromiseDestroy
      Src: /src/core/cf-agent/verify_environments.c:151,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_environments.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 122
    functionDepth: 12
    functionLinenumber: 122
    functionLinenumberEnd: 156
    functionName: VerifyEnvironmentsPromise
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - ExpandDeRefPromise
    - PromiseBanner
    - EnvironmentsSanityChecks
    - YieldCurrentLock
    - AcquireLock
    - GetEnvironmentsAttributes
    - PromiseDestroy
    - VerifyEnvironments
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyEnvironmentsPromise(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_environments.c:162,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:168,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:175,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_environments.c:176,1
    - Dst: Str2Hypervisors
      Src: /src/core/cf-agent/verify_environments.c:180,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:189,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_environments.c:191,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/core/cf-agent/verify_environments.c
    constantsTouched: []
    func_position:
      end: 199
      start: 160
    functionDepth: 9
    functionLinenumber: 160
    functionLinenumberEnd: 199
    functionName: EnvironmentsSanityChecks
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - assert
    - Str2Hypervisors
    - Log
    - PromiseRef
    linkageType: ''
    returnType: bool
    signature: bool EnvironmentsSanityChecks(const Attributes *a, const Promise *pp)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_environments.c:205,1
    - Dst: Str2Hypervisors
      Src: /src/core/cf-agent/verify_environments.c:209,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_environments.c:213,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_environments.c:219,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_environments.c:224,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_environments.c:230,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_environments.c:235,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_environments.c:240,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:245,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:250,1
    - Dst: ClassRefParse
      Src: /src/core/cf-agent/verify_environments.c:252,1
    - Dst: EvalContextClassGet
      Src: /src/core/cf-agent/verify_environments.c:253,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:259,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:265,1
    - Dst: ClassRefDestroy
      Src: /src/core/cf-agent/verify_environments.c:269,1
    - Dst: virInitialize
      Src: /src/core/cf-agent/verify_environments.c:271,1
    - Dst: Str2Hypervisors
      Src: /src/core/cf-agent/verify_environments.c:275,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:282,1
    - Dst: VerifyVirtDomain
      Src: /src/core/cf-agent/verify_environments.c:282,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:288,1
    - Dst: VerifyVirtNetwork
      Src: /src/core/cf-agent/verify_environments.c:288,1
    - Dst: Str2Hypervisors
      Src: /src/core/cf-agent/verify_environments.c:298,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:302,1
    - Dst: VerifyVirtDomain
      Src: /src/core/cf-agent/verify_environments.c:302,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:308,1
    - Dst: VerifyVirtNetwork
      Src: /src/core/cf-agent/verify_environments.c:308,1
    - Dst: Str2Hypervisors
      Src: /src/core/cf-agent/verify_environments.c:314,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:317,1
    - Dst: VerifyZone
      Src: /src/core/cf-agent/verify_environments.c:317,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:323,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 94
    argCount: 3
    argNames:
    - ctx
    - a
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/core/cf-agent/verify_environments.c
    constantsTouched: []
    func_position:
      end: 326
      start: 203
    functionDepth: 8
    functionLinenumber: 203
    functionLinenumberEnd: 326
    functionName: VerifyEnvironments
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - ClassRefDestroy
    - snprintf
    - VerifyVirtNetwork
    - ClassRefParse
    - assert
    - Str2Hypervisors
    - Log
    - EvalContextClassGet
    - VerifyVirtDomain
    - VerifyZone
    - PromiseResultUpdate
    - virInitialize
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyEnvironments(EvalContext *ctx, const Attributes
      *a, const Promise *pp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_environments.c:334,1
    - Dst: virSetErrorFunc
      Src: /src/core/cf-agent/verify_environments.c:338,1
    - Dst: virConnectOpenAuth
      Src: /src/core/cf-agent/verify_environments.c:342,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:344,1
    - Dst: virConnectListDomains
      Src: /src/core/cf-agent/verify_environments.c:355,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:356,1
    - Dst: ShowRunList
      Src: /src/core/cf-agent/verify_environments.c:357,1
    - Dst: virConnectListDefinedDomains
      Src: /src/core/cf-agent/verify_environments.c:358,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:359,1
    - Dst: ShowDormant
      Src: /src/core/cf-agent/verify_environments.c:360,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:366,1
    - Dst: CreateVirtDom
      Src: /src/core/cf-agent/verify_environments.c:366,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:369,1
    - Dst: DeleteVirt
      Src: /src/core/cf-agent/verify_environments.c:369,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:372,1
    - Dst: RunningVirt
      Src: /src/core/cf-agent/verify_environments.c:372,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:375,1
    - Dst: SuspendedVirt
      Src: /src/core/cf-agent/verify_environments.c:375,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:378,1
    - Dst: DownVirt
      Src: /src/core/cf-agent/verify_environments.c:378,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:381,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - uri
    - envtype
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - enum cfhypervisors
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/core/cf-agent/verify_environments.c
    constantsTouched: []
    func_position:
      end: 386
      start: 332
    functionDepth: 8
    functionLinenumber: 332
    functionLinenumberEnd: 386
    functionName: VerifyVirtDomain
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - CreateVirtDom
    - virConnectOpenAuth
    - virConnectListDefinedDomains
    - virSetErrorFunc
    - ShowDormant
    - virConnectListDomains
    - assert
    - SuspendedVirt
    - ShowRunList
    - DeleteVirt
    - Log
    - DownVirt
    - RunningVirt
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyVirtDomain(EvalContext *ctx, char *uri, enum cfhypervisors
      envtype, const Attributes *a, const Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_environments.c:392,1
    - Dst: virConnectOpenAuth
      Src: /src/core/cf-agent/verify_environments.c:398,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:400,1
    - Dst: virConnectListNetworks
      Src: /src/core/cf-agent/verify_environments.c:410,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:412,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:418,1
    - Dst: CreateVirtNetwork
      Src: /src/core/cf-agent/verify_environments.c:418,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:422,1
    - Dst: DeleteVirtNetwork
      Src: /src/core/cf-agent/verify_environments.c:422,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:426,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - ctx
    - uri
    - envtype
    - a
    - pp
    argTypes:
    - EvalContext*
    - char*
    - enum cfhypervisors
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/core/cf-agent/verify_environments.c
    constantsTouched: []
    func_position:
      end: 431
      start: 390
    functionDepth: 8
    functionLinenumber: 390
    functionLinenumberEnd: 431
    functionName: VerifyVirtNetwork
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - virConnectOpenAuth
    - CreateVirtNetwork
    - DeleteVirtNetwork
    - assert
    - virConnectListNetworks
    - Log
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyVirtNetwork(EvalContext *ctx, char *uri, enum cfhypervisors
      envtype, const Attributes *a, const Promise *pp)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_environments.c:439,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_environments.c:447,1
    - Dst: virDomainLookupByID
      Src: /src/core/cf-agent/verify_environments.c:458,1
    - Dst: virDomainGetName
      Src: /src/core/cf-agent/verify_environments.c:459,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_environments.c:461,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:463,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:468,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_environments.c:474,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:476,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_environments.c:484,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:489,1
    - Dst: virDomainCreateXML
      Src: /src/core/cf-agent/verify_environments.c:494,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:496,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:497,1
    - Dst: virConnectGetMaxVcpus
      Src: /src/core/cf-agent/verify_environments.c:503,1
    - Dst: virConnectGetType
      Src: /src/core/cf-agent/verify_environments.c:503,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:505,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:511,1
    - Dst: virDomainSetVcpus
      Src: /src/core/cf-agent/verify_environments.c:515,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:517,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:521,1
    - Dst: virDomainGetMaxMemory
      Src: /src/core/cf-agent/verify_environments.c:530,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:532,1
    - Dst: virDomainSetMaxMemory
      Src: /src/core/cf-agent/verify_environments.c:536,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:538,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:542,1
    - Dst: virDomainSetMemory
      Src: /src/core/cf-agent/verify_environments.c:545,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:547,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:554,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:557,1
    - Dst: virGetLastError
      Src: /src/core/cf-agent/verify_environments.c:563,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:565,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:567,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:569,1
    - Dst: free
      Src: /src/core/cf-agent/verify_environments.c:574,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 4
    argNames:
    - ctx
    - vc
    - a
    - pp
    argTypes:
    - EvalContext*
    - virConnectPtr
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/core/cf-agent/verify_environments.c
    constantsTouched: []
    func_position:
      end: 578
      start: 437
    functionDepth: 13
    functionLinenumber: 437
    functionLinenumberEnd: 578
    functionName: CreateVirtDom
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - virDomainSetVcpus
    - virDomainCreateXML
    - Log
    - free
    - snprintf
    - virDomainFree
    - virDomainLookupByID
    - virDomainSetMemory
    - virDomainGetName
    - strcmp
    - xstrdup
    - virGetLastError
    - virDomainSetMaxMemory
    - assert
    - virConnectGetMaxVcpus
    - virDomainGetMaxMemory
    - virConnectGetType
    - cfPS
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult CreateVirtDom(EvalContext *ctx, virConnectPtr vc, const
      Attributes *a, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_environments.c:584,1
    - Dst: virDomainLookupByName
      Src: /src/core/cf-agent/verify_environments.c:587,1
    - Dst: virDomainDestroy
      Src: /src/core/cf-agent/verify_environments.c:592,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:594,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:595,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:599,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:600,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:603,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - vc
    - a
    - pp
    argTypes:
    - EvalContext*
    - virConnectPtr
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/core/cf-agent/verify_environments.c
    constantsTouched: []
    func_position:
      end: 611
      start: 582
    functionDepth: 13
    functionLinenumber: 582
    functionLinenumberEnd: 611
    functionName: DeleteVirt
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - virDomainFree
    - virDomainDestroy
    - assert
    - cfPS
    - virDomainLookupByName
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult DeleteVirt(EvalContext *ctx, virConnectPtr vc, const
      Attributes *a, const Promise *pp)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_environments.c:617,1
    - Dst: virDomainLookupByName
      Src: /src/core/cf-agent/verify_environments.c:621,1
    - Dst: virDomainGetInfo
      Src: /src/core/cf-agent/verify_environments.c:626,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:628,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:629,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:636,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:640,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:646,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:647,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:648,1
    - Dst: virDomainResume
      Src: /src/core/cf-agent/verify_environments.c:654,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:656,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:658,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:659,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:663,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:664,1
    - Dst: virDomainCreate
      Src: /src/core/cf-agent/verify_environments.c:669,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:671,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:673,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:674,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:678,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:679,1
    - Dst: virDomainReboot
      Src: /src/core/cf-agent/verify_environments.c:684,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:686,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:688,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:689,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:693,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:694,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:698,1
    - Dst: virDomainSetVcpus
      Src: /src/core/cf-agent/verify_environments.c:707,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:709,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:713,1
    - Dst: virDomainSetMaxMemory
      Src: /src/core/cf-agent/verify_environments.c:719,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:721,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:725,1
    - Dst: virDomainSetMemory
      Src: /src/core/cf-agent/verify_environments.c:728,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:730,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:736,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:739,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:743,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:744,1
    - Dst: CreateVirtDom
      Src: /src/core/cf-agent/verify_environments.c:744,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 81
    argCount: 4
    argNames:
    - ctx
    - vc
    - a
    - pp
    argTypes:
    - EvalContext*
    - virConnectPtr
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 616
        line_start: 616
        source_file: /src/core/cf-agent/verify_environments.c
    constantsTouched: []
    func_position:
      end: 748
      start: 615
    functionDepth: 14
    functionLinenumber: 615
    functionLinenumberEnd: 748
    functionName: RunningVirt
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - virDomainReboot
    - virDomainGetInfo
    - CreateVirtDom
    - virDomainResume
    - virDomainFree
    - virDomainSetMaxMemory
    - assert
    - virDomainSetVcpus
    - cfPS
    - virDomainSetMemory
    - Log
    - virDomainCreate
    - virDomainLookupByName
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult RunningVirt(EvalContext *ctx, virConnectPtr vc, const
      Attributes *a, const Promise *pp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_environments.c:754,1
    - Dst: virDomainLookupByName
      Src: /src/core/cf-agent/verify_environments.c:758,1
    - Dst: virDomainGetInfo
      Src: /src/core/cf-agent/verify_environments.c:763,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:765,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:766,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:767,1
    - Dst: virDomainSuspend
      Src: /src/core/cf-agent/verify_environments.c:775,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:777,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:778,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:779,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:783,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:784,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:788,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:789,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:790,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:795,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:800,1
    - Dst: virDomainSuspend
      Src: /src/core/cf-agent/verify_environments.c:805,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:807,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:809,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:810,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:814,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:816,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:820,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:825,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:829,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 4
    argNames:
    - ctx
    - vc
    - a
    - pp
    argTypes:
    - EvalContext*
    - virConnectPtr
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/core/cf-agent/verify_environments.c
    constantsTouched: []
    func_position:
      end: 834
      start: 752
    functionDepth: 13
    functionLinenumber: 752
    functionLinenumberEnd: 834
    functionName: SuspendedVirt
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - virDomainGetInfo
    - virDomainSuspend
    - virDomainFree
    - assert
    - cfPS
    - Log
    - virDomainLookupByName
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult SuspendedVirt(EvalContext *ctx, virConnectPtr vc, const
      Attributes *a, const Promise *pp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: virDomainLookupByName
      Src: /src/core/cf-agent/verify_environments.c:843,1
    - Dst: virDomainGetInfo
      Src: /src/core/cf-agent/verify_environments.c:848,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:850,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:851,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:852,1
    - Dst: virDomainShutdown
      Src: /src/core/cf-agent/verify_environments.c:860,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:862,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:864,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:865,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:869,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:870,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:875,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:879,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:881,1
    - Dst: virDomainSuspend
      Src: /src/core/cf-agent/verify_environments.c:885,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:887,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:889,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:890,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:894,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:896,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:900,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:905,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:909,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 4
    argNames:
    - ctx
    - vc
    - a
    - pp
    argTypes:
    - EvalContext*
    - virConnectPtr
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 838
    functionDepth: 13
    functionLinenumber: 838
    functionLinenumberEnd: 914
    functionName: DownVirt
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - virDomainGetInfo
    - virDomainSuspend
    - virDomainShutdown
    - virDomainFree
    - cfPS
    - Log
    - virDomainLookupByName
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult DownVirt(EvalContext *ctx, virConnectPtr vc, const Attributes
      *a, const Promise *pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_environments.c:920,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_environments.c:926,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:937,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_environments.c:939,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:947,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_environments.c:953,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_environments.c:957,1
    - Dst: virNetworkCreateXML
      Src: /src/core/cf-agent/verify_environments.c:961,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:963,1
    - Dst: free
      Src: /src/core/cf-agent/verify_environments.c:964,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:969,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:970,1
    - Dst: free
      Src: /src/core/cf-agent/verify_environments.c:973,1
    - Dst: virNetworkFree
      Src: /src/core/cf-agent/verify_environments.c:975,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 5
    argNames:
    - ctx
    - vc
    - networks
    - a
    - pp
    argTypes:
    - EvalContext*
    - virConnectPtr
    - char**
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/core/cf-agent/verify_environments.c
    constantsTouched: []
    func_position:
      end: 977
      start: 918
    functionDepth: 13
    functionLinenumber: 918
    functionLinenumberEnd: 977
    functionName: CreateVirtNetwork
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - snprintf
    - virNetworkFree
    - assert
    - cfPS
    - Log
    - strcmp
    - xstrdup
    - free
    - virNetworkCreateXML
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult CreateVirtNetwork(EvalContext *ctx, virConnectPtr vc,
      char **networks, const Attributes *a, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: virNetworkLookupByName
      Src: /src/core/cf-agent/verify_environments.c:985,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:987,1
    - Dst: virNetworkDestroy
      Src: /src/core/cf-agent/verify_environments.c:993,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:995,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:996,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_environments.c:1000,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_environments.c:1001,1
    - Dst: virNetworkFree
      Src: /src/core/cf-agent/verify_environments.c:1004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - vc
    - a
    - pp
    argTypes:
    - EvalContext*
    - virConnectPtr
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 981
    functionDepth: 13
    functionLinenumber: 981
    functionLinenumberEnd: 1006
    functionName: DeleteVirtNetwork
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - virNetworkFree
    - virNetworkDestroy
    - cfPS
    - PromiseResultUpdate
    - virNetworkLookupByName
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult DeleteVirtNetwork(EvalContext *ctx, virConnectPtr vc,
      const Attributes *a, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1015
    functionName: EnvironmentErrorHandler
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnvironmentErrorHandler()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: virDomainLookupByID
      Src: /src/core/cf-agent/verify_environments.c:1029,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:1031,1
    - Dst: virDomainGetName
      Src: /src/core/cf-agent/verify_environments.c:1034,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:1036,1
    - Dst: virDomainFree
      Src: /src/core/cf-agent/verify_environments.c:1039,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - vc
    argTypes:
    - virConnectPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1019
    functionDepth: 8
    functionLinenumber: 1019
    functionLinenumberEnd: 1042
    functionName: ShowRunList
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - virDomainGetName
    - virDomainLookupByID
    - Log
    - virDomainFree
    linkageType: ''
    returnType: void
    signature: void ShowRunList(virConnectPtr vc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_environments.c:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1046
    functionDepth: 8
    functionLinenumber: 1046
    functionLinenumberEnd: 1054
    functionName: ShowDormant
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ShowDormant(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_environments.c:1073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1080
    functionName: Str2Hypervisors
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum cfhypervisors
    signature: enum cfhypervisors Str2Hypervisors(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1086
    functionName: NewEnvironmentsContext
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NewEnvironmentsContext(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1090
    functionName: DeleteEnvironmentsContext
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeleteEnvironmentsContext(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - EvalContext *ctx
    - pp
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1095
    functionName: VerifyEnvironmentsPromise
    functionSourceFile: /src/core/cf-agent/verify_environments.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyEnvironmentsPromise(ARG_UNUSED EvalContext *ctx,
      ARG_UNUSED const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:60,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/cf_sql.c:62,1
    - Dst: mysql_init
      Src: /src/core/cf-agent/cf_sql.c:64,1
    - Dst: mysql_real_connect
      Src: /src/core/cf-agent/cf_sql.c:66,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:68,1
    - Dst: mysql_error
      Src: /src/core/cf-agent/cf_sql.c:68,1
    - Dst: free
      Src: /src/core/cf-agent/cf_sql.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - host
    - user
    - password
    - database
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 8
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: CfConnectMysqlDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - mysql_error
    - xcalloc
    - mysql_init
    - Log
    - mysql_real_connect
    - free
    linkageType: ''
    returnType: DbMysqlConn
    signature: DbMysqlConn *CfConnectMysqlDB(const char *host, const char *user, const
      char *password, const char *database)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mysql_close
      Src: /src/core/cf-agent/cf_sql.c:80,1
    - Dst: free
      Src: /src/core/cf-agent/cf_sql.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - DbMysqlConn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: CfCloseMysqlDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - free
    - mysql_close
    linkageType: ''
    returnType: void
    signature: void CfCloseMysqlDB(DbMysqlConn *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mysql_query
      Src: /src/core/cf-agent/cf_sql.c:90,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:92,1
    - Dst: mysql_error
      Src: /src/core/cf-agent/cf_sql.c:92,1
    - Dst: mysql_store_result
      Src: /src/core/cf-agent/cf_sql.c:96,1
    - Dst: mysql_num_fields
      Src: /src/core/cf-agent/cf_sql.c:101,1
    - Dst: mysql_num_rows
      Src: /src/core/cf-agent/cf_sql.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cfdb
    - query
    argTypes:
    - CfdbConn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 8
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: CfNewQueryMysqlDb
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - mysql_error
    - mysql_num_rows
    - mysql_store_result
    - mysql_num_fields
    - Log
    - mysql_query
    linkageType: ''
    returnType: void
    signature: void CfNewQueryMysqlDb(CfdbConn *cfdb, const char *query)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mysql_fetch_row
      Src: /src/core/cf-agent/cf_sql.c:117,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/cf_sql.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - CfdbConn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 133
    functionName: CfFetchMysqlRow
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - mysql_fetch_row
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void CfFetchMysqlRow(CfdbConn *cfdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mysql_free_result
      Src: /src/core/cf-agent/cf_sql.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - CfdbConn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: CfDeleteMysqlQuery
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - mysql_free_result
    linkageType: ''
    returnType: void
    signature: void CfDeleteMysqlQuery(CfdbConn *cfdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - host
    - user
    - password
    - database
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 8
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: CfConnectMysqlDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void *CfConnectMysqlDB(ARG_UNUSED const char *host, ARG_UNUSED const
      char *user, ARG_UNUSED const char *password, ARG_UNUSED const char *database)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: CfCloseMysqlDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CfCloseMysqlDB(ARG_UNUSED void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cfdb
    - query
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: CfNewQueryMysqlDb
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CfNewQueryMysqlDb(ARG_UNUSED CfdbConn *cfdb, ARG_UNUSED const
      char *query)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: CfFetchMysqlRow
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CfFetchMysqlRow(ARG_UNUSED CfdbConn *cfdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: CfDeleteMysqlQuery
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CfDeleteMysqlQuery(ARG_UNUSED CfdbConn *cfdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:191,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/cf_sql.c:193,1
    - Dst: strcmp
      Src: /src/core/cf-agent/cf_sql.c:195,1
    - Dst: snprintf
      Src: /src/core/cf-agent/cf_sql.c:200,1
    - Dst: snprintf
      Src: /src/core/cf-agent/cf_sql.c:204,1
    - Dst: snprintf
      Src: /src/core/cf-agent/cf_sql.c:211,1
    - Dst: snprintf
      Src: /src/core/cf-agent/cf_sql.c:215,1
    - Dst: PQconnectdb
      Src: /src/core/cf-agent/cf_sql.c:219,1
    - Dst: PQstatus
      Src: /src/core/cf-agent/cf_sql.c:221,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:223,1
    - Dst: PQerrorMessage
      Src: /src/core/cf-agent/cf_sql.c:223,1
    - Dst: free
      Src: /src/core/cf-agent/cf_sql.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - host
    - user
    - password
    - database
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 185
    functionDepth: 8
    functionLinenumber: 185
    functionLinenumberEnd: 229
    functionName: CfConnectPostgresqlDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - snprintf
    - PQstatus
    - PQconnectdb
    - Log
    - strcmp
    - free
    - PQerrorMessage
    linkageType: ''
    returnType: DbPostgresqlConn
    signature: "DbPostgresqlConn *CfConnectPostgresqlDB(const char *host,\n                                               const
      char *user, const char *password, const char *database)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PQfinish
      Src: /src/core/cf-agent/cf_sql.c:235,1
    - Dst: free
      Src: /src/core/cf-agent/cf_sql.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - DbPostgresqlConn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: CfClosePostgresqlDb
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - PQfinish
    - free
    linkageType: ''
    returnType: void
    signature: void CfClosePostgresqlDb(DbPostgresqlConn *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PQexec
      Src: /src/core/cf-agent/cf_sql.c:245,1
    - Dst: PQresultStatus
      Src: /src/core/cf-agent/cf_sql.c:247,1
    - Dst: PQresultStatus
      Src: /src/core/cf-agent/cf_sql.c:247,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:249,1
    - Dst: PQerrorMessage
      Src: /src/core/cf-agent/cf_sql.c:249,1
    - Dst: PQnfields
      Src: /src/core/cf-agent/cf_sql.c:254,1
    - Dst: PQntuples
      Src: /src/core/cf-agent/cf_sql.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cfdb
    - query
    argTypes:
    - CfdbConn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 241
    functionDepth: 8
    functionLinenumber: 241
    functionLinenumberEnd: 257
    functionName: CfNewQueryPostgresqlDb
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - PQntuples
    - PQresultStatus
    - PQexec
    - Log
    - PQerrorMessage
    - PQnfields
    linkageType: ''
    returnType: void
    signature: void CfNewQueryPostgresqlDb(CfdbConn *cfdb, const char *query)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/cf_sql.c:263,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/cf_sql.c:274,1
    - Dst: PQgetvalue
      Src: /src/core/cf-agent/cf_sql.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - CfdbConn*
    assertStmts:
    - condition: (cfdb != NULL)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/core/cf-agent/cf_sql.c
    constantsTouched: []
    func_position:
      end: 281
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 281
    functionName: CfFetchPostgresqlRow
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - PQgetvalue
    - assert
    - xmalloc
    linkageType: ''
    returnType: void
    signature: void CfFetchPostgresqlRow(CfdbConn *cfdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PQclear
      Src: /src/core/cf-agent/cf_sql.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - CfdbConn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: CfDeletePostgresqlQuery
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - PQclear
    linkageType: ''
    returnType: void
    signature: void CfDeletePostgresqlQuery(CfdbConn *cfdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - host
    - user
    - password
    - database
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 8
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: CfConnectPostgresqlDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void *CfConnectPostgresqlDB(ARG_UNUSED const char *host, ARG_UNUSED
      const char *user, ARG_UNUSED const char *password, ARG_UNUSED const char *database)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - c
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: CfClosePostgresqlDb
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CfClosePostgresqlDb(ARG_UNUSED void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cfdb
    - query
    argTypes:
    - ARG_UNUSED*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: CfNewQueryPostgresqlDb
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CfNewQueryPostgresqlDb(ARG_UNUSED CfdbConn *cfdb, ARG_UNUSED const
      char *query)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: CfFetchPostgresqlRow
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CfFetchPostgresqlRow(ARG_UNUSED CfdbConn *cfdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: CfDeletePostgresqlQuery
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CfDeletePostgresqlQuery(ARG_UNUSED CfdbConn *cfdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:336,1
    - Dst: CfConnectMysqlDB
      Src: /src/core/cf-agent/cf_sql.c:342,1
    - Dst: CfConnectPostgresqlDB
      Src: /src/core/cf-agent/cf_sql.c:346,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - cfdb
    - dbtype
    - remotehost
    - dbuser
    - passwd
    - db
    argTypes:
    - CfdbConn*
    - DatabaseType
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 322
    functionDepth: 9
    functionLinenumber: 322
    functionLinenumberEnd: 356
    functionName: CfConnectDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 1
    functionsReached:
    - CfConnectMysqlDB
    - CfConnectPostgresqlDB
    - Log
    linkageType: ''
    returnType: void
    signature: void CfConnectDB(CfdbConn *cfdb, DatabaseType dbtype, char *remotehost,
      char *dbuser, char *passwd, char *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CfCloseMysqlDB
      Src: /src/core/cf-agent/cf_sql.c:370,1
    - Dst: CfClosePostgresqlDb
      Src: /src/core/cf-agent/cf_sql.c:374,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - CfdbConn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 360
    functionDepth: 8
    functionLinenumber: 360
    functionLinenumberEnd: 383
    functionName: CfCloseDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 1
    functionsReached:
    - Log
    - CfCloseMysqlDB
    - CfClosePostgresqlDb
    linkageType: ''
    returnType: void
    signature: void CfCloseDB(CfdbConn *cfdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CfNewQueryDB
      Src: /src/core/cf-agent/cf_sql.c:395,1
    - Dst: CfDeleteQuery
      Src: /src/core/cf-agent/cf_sql.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cfdb
    - query
    argTypes:
    - CfdbConn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: CfVoidQueryDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 3
    functionsReached:
    - CfDeleteQuery
    - CfNewQueryDB
    linkageType: ''
    returnType: void
    signature: void CfVoidQueryDB(CfdbConn *cfdb, const char *query)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:410,1
    - Dst: CfNewQueryMysqlDb
      Src: /src/core/cf-agent/cf_sql.c:415,1
    - Dst: CfNewQueryPostgresqlDb
      Src: /src/core/cf-agent/cf_sql.c:419,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:423,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - cfdb
    - query
    argTypes:
    - CfdbConn*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 401
    functionDepth: 9
    functionLinenumber: 401
    functionLinenumberEnd: 428
    functionName: CfNewQueryDB
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 4
    functionsReached:
    - Log
    - CfNewQueryMysqlDb
    - CfNewQueryPostgresqlDb
    linkageType: ''
    returnType: void
    signature: void CfNewQueryDB(CfdbConn *cfdb, const char *query)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CfFetchMysqlRow
      Src: /src/core/cf-agent/cf_sql.c:437,1
    - Dst: CfFetchPostgresqlRow
      Src: /src/core/cf-agent/cf_sql.c:441,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 432
    functionDepth: 8
    functionLinenumber: 432
    functionLinenumberEnd: 451
    functionName: CfFetchRow
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 3
    functionsReached:
    - CfFetchPostgresqlRow
    - CfFetchMysqlRow
    - Log
    linkageType: ''
    returnType: char
    signature: char **CfFetchRow(CfdbConn *cfdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/cf_sql.c:457,1
    - Dst: assert
      Src: /src/core/cf-agent/cf_sql.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - cfdb
    - col
    argTypes:
    - CfdbConn*
    - int
    assertStmts:
    - condition: (cfdb != NULL)
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/core/cf-agent/cf_sql.c
    - condition: (col >= 0 && (unsigned int) col < cfdb->maxcolumns)
      pos:
        line_end: 457
        line_start: 457
        source_file: /src/core/cf-agent/cf_sql.c
    constantsTouched: []
    func_position:
      end: 467
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 467
    functionName: CfFetchColumn
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *CfFetchColumn(CfdbConn *cfdb, int col)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CfDeleteMysqlQuery
      Src: /src/core/cf-agent/cf_sql.c:476,1
    - Dst: CfDeletePostgresqlQuery
      Src: /src/core/cf-agent/cf_sql.c:480,1
    - Dst: Log
      Src: /src/core/cf-agent/cf_sql.c:484,1
    - Dst: free
      Src: /src/core/cf-agent/cf_sql.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - cfdb
    argTypes:
    - CfdbConn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 471
    functionDepth: 8
    functionLinenumber: 471
    functionLinenumberEnd: 493
    functionName: CfDeleteQuery
    functionSourceFile: /src/core/cf-agent/cf_sql.c
    functionUses: 3
    functionsReached:
    - CfDeleteMysqlQuery
    - Log
    - free
    - CfDeletePostgresqlQuery
    linkageType: ''
    returnType: void
    signature: void CfDeleteQuery(CfdbConn *cfdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-agent/tokyo_check.c:84,1
    - Dst: realpath
      Src: /src/core/cf-agent/tokyo_check.c:86,1
    - Dst: open
      Src: /src/core/cf-agent/tokyo_check.c:88,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:90,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/tokyo_check.c:93,1
    - Dst: free
      Src: /src/core/cf-agent/tokyo_check.c:95,1
    - Dst: read
      Src: /src/core/cf-agent/tokyo_check.c:99,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:101,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/tokyo_check.c:102,1
    - Dst: close
      Src: /src/core/cf-agent/tokyo_check.c:103,1
    - Dst: free
      Src: /src/core/cf-agent/tokyo_check.c:106,1
    - Dst: memcpy
      Src: /src/core/cf-agent/tokyo_check.c:111,1
    - Dst: memcpy
      Src: /src/core/cf-agent/tokyo_check.c:114,1
    - Dst: memcpy
      Src: /src/core/cf-agent/tokyo_check.c:118,1
    - Dst: memcpy
      Src: /src/core/cf-agent/tokyo_check.c:119,1
    - Dst: memcpy
      Src: /src/core/cf-agent/tokyo_check.c:120,1
    - Dst: StringMapNew
      Src: /src/core/cf-agent/tokyo_check.c:121,1
    - Dst: StringMapNew
      Src: /src/core/cf-agent/tokyo_check.c:122,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:124,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:125,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:127,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:129,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:131,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:133,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - dbfilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 139
    functionName: DBMetaNewDirect
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - xcalloc
    - memcpy
    - read
    - realpath
    - Log
    - open
    - free
    - StringMapNew
    - close
    linkageType: ''
    returnType: DBMeta
    signature: DBMeta *DBMetaNewDirect(const char *dbfilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringMapDestroy
      Src: /src/core/cf-agent/tokyo_check.c:143,1
    - Dst: StringMapDestroy
      Src: /src/core/cf-agent/tokyo_check.c:144,1
    - Dst: close
      Src: /src/core/cf-agent/tokyo_check.c:146,1
    - Dst: free
      Src: /src/core/cf-agent/tokyo_check.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dbmeta
    argTypes:
    - DBMeta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: DBMetaFree
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 0
    functionsReached:
    - StringMapDestroy
    - free
    - close
    linkageType: ''
    returnType: void
    signature: void DBMetaFree(DBMeta * dbmeta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/core/cf-agent/tokyo_check.c:158,1
    - Dst: StringMapHasKey
      Src: /src/core/cf-agent/tokyo_check.c:160,1
    - Dst: xasprintf
      Src: /src/core/cf-agent/tokyo_check.c:162,1
    - Dst: StringMapInsert
      Src: /src/core/cf-agent/tokyo_check.c:163,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:167,1
    - Dst: StringMapGet
      Src: /src/core/cf-agent/tokyo_check.c:170,1
    - Dst: free
      Src: /src/core/cf-agent/tokyo_check.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - tree
    - offset
    - bucket_index
    argTypes:
    - StringMap**
    - uint64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 8
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: AddOffsetToMapUnlessExists
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 0
    functionsReached:
    - StringMapInsert
    - StringMapGet
    - xasprintf
    - Log
    - StringMapHasKey
    - free
    linkageType: ''
    returnType: int
    signature: "int AddOffsetToMapUnlessExists(StringMap ** tree, uint64_t offset,\n
      \                                     int64_t bucket_index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/core/cf-agent/tokyo_check.c:180,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:182,1
    - Dst: strerror
      Src: /src/core/cf-agent/tokyo_check.c:184,1
    - Dst: read
      Src: /src/core/cf-agent/tokyo_check.c:191,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:195,1
    - Dst: AddOffsetToMapUnlessExists
      Src: /src/core/cf-agent/tokyo_check.c:203,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:210,1
    - Dst: StringMapSize
      Src: /src/core/cf-agent/tokyo_check.c:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - dbmeta
    argTypes:
    - DBMeta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 176
    functionDepth: 9
    functionLinenumber: 176
    functionLinenumberEnd: 213
    functionName: DBMetaPopulateOffsetMap
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 0
    functionsReached:
    - read
    - strerror
    - StringMapSize
    - AddOffsetToMapUnlessExists
    - Log
    - lseek
    linkageType: ''
    returnType: int
    signature: int DBMetaPopulateOffsetMap(DBMeta * dbmeta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/core/cf-agent/tokyo_check.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - fd
    - result
    argTypes:
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 245
    functionName: TCReadVaryInt
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: int
    signature: int TCReadVaryInt(int fd, uint32_t * result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/core/cf-agent/tokyo_check.c:250,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:252,1
    - Dst: lseek
      Src: /src/core/cf-agent/tokyo_check.c:258,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:261,1
    - Dst: read
      Src: /src/core/cf-agent/tokyo_check.c:265,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:267,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/tokyo_check.c:268,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:274,1
    - Dst: read
      Src: /src/core/cf-agent/tokyo_check.c:277,1
    - Dst: read
      Src: /src/core/cf-agent/tokyo_check.c:278,1
    - Dst: read
      Src: /src/core/cf-agent/tokyo_check.c:281,1
    - Dst: read
      Src: /src/core/cf-agent/tokyo_check.c:284,1
    - Dst: TCReadVaryInt
      Src: /src/core/cf-agent/tokyo_check.c:287,1
    - Dst: TCReadVaryInt
      Src: /src/core/cf-agent/tokyo_check.c:288,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:296,1
    - Dst: read
      Src: /src/core/cf-agent/tokyo_check.c:299,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:306,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - dbmeta
    - rec
    argTypes:
    - DBMeta*
    - TokyoCabinetRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 248
    functionDepth: 8
    functionLinenumber: 248
    functionLinenumberEnd: 311
    functionName: DBMetaReadOneRecord
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - read
    - TCReadVaryInt
    - Log
    - lseek
    linkageType: ''
    returnType: bool
    signature: bool DBMetaReadOneRecord(DBMeta * dbmeta, TokyoCabinetRecord * rec)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/core/cf-agent/tokyo_check.c:321,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:323,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/tokyo_check.c:323,1
    - Dst: memset
      Src: /src/core/cf-agent/tokyo_check.c:331,1
    - Dst: DBMetaReadOneRecord
      Src: /src/core/cf-agent/tokyo_check.c:335,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:337,1
    - Dst: xasprintf
      Src: /src/core/cf-agent/tokyo_check.c:358,1
    - Dst: StringMapHasKey
      Src: /src/core/cf-agent/tokyo_check.c:359,1
    - Dst: free
      Src: /src/core/cf-agent/tokyo_check.c:363,1
    - Dst: StringMapInsert
      Src: /src/core/cf-agent/tokyo_check.c:368,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/tokyo_check.c:368,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:373,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:379,1
    - Dst: AddOffsetToMapUnlessExists
      Src: /src/core/cf-agent/tokyo_check.c:380,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:389,1
    - Dst: AddOffsetToMapUnlessExists
      Src: /src/core/cf-agent/tokyo_check.c:390,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:406,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:413,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 1
    argNames:
    - dbmeta
    argTypes:
    - DBMeta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 313
    functionDepth: 9
    functionLinenumber: 313
    functionLinenumberEnd: 417
    functionName: DBMetaPopulateRecordMap
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - StringMapInsert
    - fstat
    - xasprintf
    - AddOffsetToMapUnlessExists
    - DBMetaReadOneRecord
    - Log
    - StringMapHasKey
    - xstrdup
    - free
    - memset
    linkageType: ''
    returnType: int
    signature: int DBMetaPopulateRecordMap(DBMeta * dbmeta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringMapSize
      Src: /src/core/cf-agent/tokyo_check.c:421,1
    - Dst: StringMapSize
      Src: /src/core/cf-agent/tokyo_check.c:422,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:425,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dbmeta
    argTypes:
    - DBMeta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 419
    functionDepth: 8
    functionLinenumber: 419
    functionLinenumberEnd: 442
    functionName: DBMetaGetResults
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 0
    functionsReached:
    - StringMapSize
    - Log
    linkageType: ''
    returnType: int
    signature: int DBMetaGetResults(DBMeta * dbmeta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DBMetaNewDirect
      Src: /src/core/cf-agent/tokyo_check.c:449,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:455,1
    - Dst: DBMetaPopulateOffsetMap
      Src: /src/core/cf-agent/tokyo_check.c:456,1
    - Dst: Log
      Src: /src/core/cf-agent/tokyo_check.c:462,1
    - Dst: DBMetaPopulateRecordMap
      Src: /src/core/cf-agent/tokyo_check.c:463,1
    - Dst: DBMetaGetResults
      Src: /src/core/cf-agent/tokyo_check.c:469,1
    - Dst: DBMetaFree
      Src: /src/core/cf-agent/tokyo_check.c:474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 444
    functionDepth: 10
    functionLinenumber: 444
    functionLinenumberEnd: 478
    functionName: CheckTokyoDBCoherence
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 1
    functionsReached:
    - DBMetaNewDirect
    - DBMetaPopulateRecordMap
    - DBMetaGetResults
    - Log
    - DBMetaFree
    - DBMetaPopulateOffsetMap
    linkageType: ''
    returnType: int
    signature: int CheckTokyoDBCoherence(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: CheckTokyoDBCoherence
    functionSourceFile: /src/core/cf-agent/tokyo_check.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CheckTokyoDBCoherence(ARG_UNUSED const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetServicesAttributes
      Src: /src/core/cf-agent/verify_services.c:52,1
    - Dst: SetServiceDefaults
      Src: /src/core/cf-agent/verify_services.c:54,1
    - Dst: ServicesSanityChecks
      Src: /src/core/cf-agent/verify_services.c:56,1
    - Dst: VerifyServices
      Src: /src/core/cf-agent/verify_services.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 11
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: VerifyServicesPromise
    functionSourceFile: /src/core/cf-agent/verify_services.c
    functionUses: 1
    functionsReached:
    - ServicesSanityChecks
    - SetServiceDefaults
    - VerifyServices
    - GetServicesAttributes
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyServicesPromise(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_services.c:74,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_services.c:74,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_services.c:76,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_services.c:77,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_services.c:84,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_services.c:85,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_services.c:91,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_services.c:93,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_services.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 68
    functionDepth: 9
    functionLinenumber: 68
    functionLinenumberEnd: 102
    functionName: ServicesSanityChecks
    functionSourceFile: /src/core/cf-agent/verify_services.c
    functionUses: 1
    functionsReached:
    - PromiseRef
    - Log
    - strcmp
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool ServicesSanityChecks(const Attributes *a, const Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_services.c:109,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_services.c:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 106
    functionDepth: 8
    functionLinenumber: 106
    functionLinenumberEnd: 138
    functionName: SetServiceDefaults
    functionSourceFile: /src/core/cf-agent/verify_services.c
    functionUses: 1
    functionsReached:
    - Log
    - strcmp
    linkageType: ''
    returnType: void
    signature: void SetServiceDefaults(Attributes *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_services.c:146,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_services.c:149,1
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_services.c:155,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_services.c:158,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_services.c:161,1
    - Dst: VerifyWindowsService
      Src: /src/core/cf-agent/verify_services.c:161,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_services.c:163,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_services.c:168,1
    - Dst: DoVerifyServices
      Src: /src/core/cf-agent/verify_services.c:168,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_services.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - a
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/core/cf-agent/verify_services.c
    constantsTouched: []
    func_position:
      end: 174
      start: 144
    functionDepth: 12
    functionLinenumber: 144
    functionLinenumberEnd: 174
    functionName: VerifyServices
    functionSourceFile: /src/core/cf-agent/verify_services.c
    functionUses: 2
    functionsReached:
    - PromiseBanner
    - assert
    - DoVerifyServices
    - YieldCurrentLock
    - VerifyWindowsService
    - AcquireLock
    - Log
    - strcmp
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyServices(EvalContext *ctx, const Attributes *a,
      const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistAppend
      Src: /src/core/cf-agent/verify_services.c:185,1
    - Dst: RlistAppend
      Src: /src/core/cf-agent/verify_services.c:186,1
    - Dst: DefaultBundleConstraint
      Src: /src/core/cf-agent/verify_services.c:188,1
    - Dst: PolicyGetBundle
      Src: /src/core/cf-agent/verify_services.c:190,1
    - Dst: PolicyFromPromise
      Src: /src/core/cf-agent/verify_services.c:190,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_services.c:190,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_services.c:192,1
    - Dst: PromiseGetBundle
      Src: /src/core/cf-agent/verify_services.c:192,1
    - Dst: FnCallNew
      Src: /src/core/cf-agent/verify_services.c:193,1
    - Dst: FnCallNew
      Src: /src/core/cf-agent/verify_services.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pp
    - service_policy
    argTypes:
    - Promise*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 180
    functionDepth: 8
    functionLinenumber: 180
    functionLinenumberEnd: 201
    functionName: DefaultServiceBundleCall
    functionSourceFile: /src/core/cf-agent/verify_services.c
    functionUses: 0
    functionsReached:
    - PromiseGetBundle
    - RlistAppend
    - PolicyGetBundle
    - Log
    - PolicyFromPromise
    - FnCallNew
    - DefaultBundleConstraint
    linkageType: ''
    returnType: FnCall
    signature: FnCall *DefaultServiceBundleCall(const Promise *pp, const char *service_policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_services.c:205,1
    - Dst: PromiseGetConstraint
      Src: /src/core/cf-agent/verify_services.c:209,1
    - Dst: RvalCopy
      Src: /src/core/cf-agent/verify_services.c:212,1
    - Dst: DefaultServiceBundleCall
      Src: /src/core/cf-agent/verify_services.c:216,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/cf-agent/verify_services.c:221,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_services.c:224,1
    - Dst: VerifyMethod
      Src: /src/core/cf-agent/verify_services.c:224,1
    - Dst: RvalDestroy
      Src: /src/core/cf-agent/verify_services.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - attr
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/core/cf-agent/verify_services.c
    constantsTouched: []
    func_position:
      end: 229
      start: 203
    functionDepth: 18
    functionLinenumber: 203
    functionLinenumberEnd: 229
    functionName: DoVerifyServices
    functionSourceFile: /src/core/cf-agent/verify_services.c
    functionUses: 1
    functionsReached:
    - DefaultServiceBundleCall
    - PromiseGetConstraint
    - assert
    - RvalCopy
    - EvalContextVariablePutSpecial
    - VerifyMethod
    - PromiseResultUpdate
    - RvalDestroy
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult DoVerifyServices(EvalContext *ctx, const Attributes *attr,
      const Promise *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_acl.c:53,1
    - Dst: CheckACLSyntax
      Src: /src/core/cf-agent/verify_acl.c:55,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_acl.c:57,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:58,1
    - Dst: SetACLDefaults
      Src: /src/core/cf-agent/verify_acl.c:62,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_acl.c:73,1
    - Dst: CheckPosixLinuxACL
      Src: /src/core/cf-agent/verify_acl.c:73,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_acl.c:75,1
    - Dst: Nova_CheckNtACL
      Src: /src/core/cf-agent/verify_acl.c:75,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_acl.c:77,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_acl.c:78,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_acl.c:85,1
    - Dst: CheckPosixLinuxACL
      Src: /src/core/cf-agent/verify_acl.c:85,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_acl.c:87,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_acl.c:88,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_acl.c:94,1
    - Dst: Nova_CheckNtACL
      Src: /src/core/cf-agent/verify_acl.c:94,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_acl.c:96,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_acl.c:97,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_acl.c:102,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/verify_acl.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - file
    - attr
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/core/cf-agent/verify_acl.c
    - condition: (false)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/core/cf-agent/verify_acl.c
    constantsTouched: []
    func_position:
      end: 108
      start: 51
    functionDepth: 12
    functionLinenumber: 51
    functionLinenumberEnd: 108
    functionName: VerifyACL
    functionSourceFile: /src/core/cf-agent/verify_acl.c
    functionUses: 0
    functionsReached:
    - assert
    - PromiseRef
    - RecordFailure
    - Nova_CheckNtACL
    - CheckPosixLinuxACL
    - SetACLDefaults
    - PromiseResultUpdate
    - CheckACLSyntax
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyACL(EvalContext *ctx, const char *file, const Attributes
      *attr, const Promise *pp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SetACLDefaults
      Src: /src/core/cf-agent/verify_acl.c:120,1
    - Dst: CheckAclDefault
      Src: /src/core/cf-agent/verify_acl.c:166,1
    - Dst: CheckACESyntax
      Src: /src/core/cf-agent/verify_acl.c:173,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_acl.c:173,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:177,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_acl.c:177,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:178,1
    - Dst: CheckACESyntax
      Src: /src/core/cf-agent/verify_acl.c:185,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_acl.c:185,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:189,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_acl.c:189,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:190,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - file
    - acl
    - pp
    argTypes:
    - char*
    - Acl
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 110
    functionDepth: 9
    functionLinenumber: 110
    functionLinenumberEnd: 196
    functionName: CheckACLSyntax
    functionSourceFile: /src/core/cf-agent/verify_acl.c
    functionUses: 1
    functionsReached:
    - CheckACESyntax
    - SetACLDefaults
    - PromiseRef
    - Log
    - RlistScalarValue
    - CheckAclDefault
    linkageType: ''
    returnType: bool
    signature: bool CheckACLSyntax(const char *file, Acl acl, const Promise *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsDir
      Src: /src/core/cf-agent/verify_acl.c:221,1
    - Dst: ToChangesPath
      Src: /src/core/cf-agent/verify_acl.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - path
    - acl
    argTypes:
    - char*
    - Acl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 225
    functionName: SetACLDefaults
    functionSourceFile: /src/core/cf-agent/verify_acl.c
    functionUses: 2
    functionsReached:
    - ToChangesPath
    - IsDir
    linkageType: ''
    returnType: void
    signature: void SetACLDefaults(const char *path, Acl *acl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IsDir
      Src: /src/core/cf-agent/verify_acl.c:250,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:256,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - path
    - acl
    - pp
    argTypes:
    - char*
    - Acl*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 227
    functionDepth: 9
    functionLinenumber: 227
    functionLinenumberEnd: 265
    functionName: CheckAclDefault
    functionSourceFile: /src/core/cf-agent/verify_acl.c
    functionUses: 1
    functionsReached:
    - Log
    - IsDir
    - PromiseRef
    linkageType: ''
    returnType: int
    signature: int CheckAclDefault(const char *path, Acl *acl, const Promise *pp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_acl.c:280,1
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_acl.c:285,1
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_acl.c:290,1
    - Dst: strncmp
      Src: /src/core/cf-agent/verify_acl.c:295,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:305,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:306,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:313,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:314,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:322,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:338,1
    - Dst: CheckModeSyntax
      Src: /src/core/cf-agent/verify_acl.c:345,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:349,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:350,1
    - Dst: CheckPermTypeSyntax
      Src: /src/core/cf-agent/verify_acl.c:362,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:366,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 6
    argNames:
    - ace
    - valid_ops
    - valid_nperms
    - deny_support
    - mask_support
    - pp
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 267
    functionDepth: 9
    functionLinenumber: 267
    functionLinenumberEnd: 371
    functionName: CheckACESyntax
    functionSourceFile: /src/core/cf-agent/verify_acl.c
    functionUses: 1
    functionsReached:
    - strncmp
    - PromiseRef
    - CheckPermTypeSyntax
    - Log
    - CheckModeSyntax
    linkageType: ''
    returnType: bool
    signature: "bool CheckACESyntax(\n    char *ace,\n    char *valid_ops,\n    char
      *valid_nperms,\n    int deny_support,\n    int mask_support,\n    const Promise
      *pp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ScanPastChars
      Src: /src/core/cf-agent/verify_acl.c:392,1
    - Dst: ScanPastChars
      Src: /src/core/cf-agent/verify_acl.c:394,1
    - Dst: ScanPastChars
      Src: /src/core/cf-agent/verify_acl.c:400,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:408,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:409,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:426,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:427,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - mode_p
    - valid_ops
    - valid_nperms
    - pp
    argTypes:
    - char**
    - char*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 373
    functionDepth: 9
    functionLinenumber: 373
    functionLinenumberEnd: 436
    functionName: CheckModeSyntax
    functionSourceFile: /src/core/cf-agent/verify_acl.c
    functionUses: 1
    functionsReached:
    - Log
    - PromiseRef
    - ScanPastChars
    linkageType: ''
    returnType: bool
    signature: bool CheckModeSyntax(char **mode_p, char *valid_ops, char *valid_nperms,
      const Promise *pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_acl.c:447,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_acl.c:451,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_acl.c:459,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_acl.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - permt
    - deny_support
    - pp
    argTypes:
    - char*
    - int
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 438
    functionDepth: 9
    functionLinenumber: 438
    functionLinenumberEnd: 465
    functionName: CheckPermTypeSyntax
    functionSourceFile: /src/core/cf-agent/verify_acl.c
    functionUses: 1
    functionsReached:
    - PromiseRef
    - Log
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool CheckPermTypeSyntax(char *permt, int deny_support, const Promise
      *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/cf-agent-enterprise-stubs.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - EvalContext
    - char
    - int
    - Attributes
    - Promise
    - CopyRegularFileFunction
    - char
    - DeleteCompressedArrayFunction
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 12
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: ENTERPRISE_FUNC_8ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-agent/cf-agent-enterprise-stubs.c
    functionUses: 0
    functionsReached:
    - RecordNoChange
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_FUNC_8ARG_DEFINE_STUB(PromiseResult, LogFileChange,\n
      \                                ARG_UNUSED EvalContext *, ctx,\n                                 ARG_UNUSED
      const char *, file,\n                                 ARG_UNUSED int, change,\n
      \                                ARG_UNUSED const Attributes *, attr,\n                                 ARG_UNUSED
      const Promise *, pp,\n                                 ARG_UNUSED CopyRegularFileFunction,
      CopyRegularFilePtr,\n                                 ARG_UNUSED const char
      *, destination,\n                                 ARG_UNUSED DeleteCompressedArrayFunction,
      DeleteCompressedArrayPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - char
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-agent/cf-agent-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, Nova_TrackExecution,
      ARG_UNUSED const char *, input_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - GenericAgentConfig
    - EvalContext
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-agent/cf-agent-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB(void, GenerateReports,\n
      \                                     ARG_UNUSED const GenericAgentConfig *,
      config,\n                                      ARG_UNUSED const EvalContext
      *, ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - char
    - timespec
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-agent/cf-agent-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB(void, Nova_NoteAgentExecutionPerformance,\n
      \                                     ARG_UNUSED const char *, input_file,\n
      \                                     ARG_UNUSED struct timespec, start)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/findhub.c:41,1
    - Dst: Log
      Src: /src/core/cf-agent/findhub.c:45,1
    - Dst: avahi_strerror_ptr
      Src: /src/core/cf-agent/findhub.c:45,1
    - Dst: avahi_client_errno_ptr
      Src: /src/core/cf-agent/findhub.c:45,1
    - Dst: avahi_simple_poll_quit_ptr
      Src: /src/core/cf-agent/findhub.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - c
    - state
    - userdata
    argTypes:
    - AvahiClient*
    - AvahiClientState
    - AVAHI_GCC_UNUSED*
    assertStmts:
    - condition: (c)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/core/cf-agent/findhub.c
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 8
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: client_callback
    functionSourceFile: /src/core/cf-agent/findhub.c
    functionUses: 0
    functionsReached:
    - assert
    - avahi_simple_poll_quit_ptr
    - avahi_strerror_ptr
    - Log
    - avahi_client_errno_ptr
    linkageType: ''
    returnType: void
    signature: "void client_callback(AvahiClient *c,\n                     AvahiClientState
      state,\n                     AVAHI_GCC_UNUSED void *userdata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/findhub.c:61,1
    - Dst: Log
      Src: /src/core/cf-agent/findhub.c:66,1
    - Dst: avahi_strerror_ptr
      Src: /src/core/cf-agent/findhub.c:66,1
    - Dst: avahi_client_errno_ptr
      Src: /src/core/cf-agent/findhub.c:66,1
    - Dst: avahi_service_browser_get_client_ptr
      Src: /src/core/cf-agent/findhub.c:66,1
    - Dst: avahi_simple_poll_quit_ptr
      Src: /src/core/cf-agent/findhub.c:67,1
    - Dst: avahi_service_resolver_new_ptr
      Src: /src/core/cf-agent/findhub.c:71,1
    - Dst: Log
      Src: /src/core/cf-agent/findhub.c:75,1
    - Dst: avahi_strerror_ptr
      Src: /src/core/cf-agent/findhub.c:75,1
    - Dst: avahi_client_errno_ptr
      Src: /src/core/cf-agent/findhub.c:75,1
    - Dst: avahi_simple_poll_quit_ptr
      Src: /src/core/cf-agent/findhub.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 9
    argNames:
    - b
    - interface
    - protocol
    - event
    - name
    - type
    - domain
    - AvahiLookupResultFlags
    - userdata
    argTypes:
    - AvahiServiceBrowser*
    - AvahiIfIndex
    - AvahiProtocol
    - AvahiBrowserEvent
    - char*
    - char*
    - char*
    - AVAHI_GCC_UNUSED
    - void*
    assertStmts:
    - condition: (b)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/core/cf-agent/findhub.c
    constantsTouched: []
    func_position:
      end: 89
      start: 50
    functionDepth: 8
    functionLinenumber: 50
    functionLinenumberEnd: 89
    functionName: browse_callback
    functionSourceFile: /src/core/cf-agent/findhub.c
    functionUses: 0
    functionsReached:
    - avahi_service_browser_get_client_ptr
    - avahi_service_resolver_new_ptr
    - assert
    - avahi_simple_poll_quit_ptr
    - avahi_strerror_ptr
    - Log
    - avahi_client_errno_ptr
    linkageType: ''
    returnType: void
    signature: "void browse_callback(AvahiServiceBrowser *b,\n                     AvahiIfIndex
      interface,\n                     AvahiProtocol protocol,\n                     AvahiBrowserEvent
      event,\n                     const char *name,\n                     const char
      *type,\n                     const char *domain,\n                     AVAHI_GCC_UNUSED
      AvahiLookupResultFlags flags,\n                     void *userdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-agent/findhub.c:105,1
    - Dst: assert
      Src: /src/core/cf-agent/findhub.c:106,1
    - Dst: Log
      Src: /src/core/cf-agent/findhub.c:111,1
    - Dst: avahi_strerror_ptr
      Src: /src/core/cf-agent/findhub.c:112,1
    - Dst: avahi_client_errno_ptr
      Src: /src/core/cf-agent/findhub.c:112,1
    - Dst: avahi_service_resolver_get_client_ptr
      Src: /src/core/cf-agent/findhub.c:112,1
    - Dst: avahi_address_snprint_ptr
      Src: /src/core/cf-agent/findhub.c:116,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/findhub.c:118,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/findhub.c:119,1
    - Dst: ListAppend
      Src: /src/core/cf-agent/findhub.c:121,1
    - Dst: avahi_service_resolver_free_ptr
      Src: /src/core/cf-agent/findhub.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 13
    argNames:
    - r
    - AvahiIfIndex
    - AvahiProtocol
    - event
    - name
    - type
    - domain
    - host_name
    - address
    - port
    - AvahiStringList *txt
    - AvahiLookupFlags
    - userdata
    argTypes:
    - AvahiServiceResolver*
    - AVAHI_GCC_UNUSED
    - AVAHI_GCC_UNUSED
    - AvahiResolverEvent
    - char*
    - char*
    - char*
    - char*
    - AvahiAddress*
    - uint16_t
    - AVAHI_GCC_UNUSED
    - AVAHI_GCC_UNUSED
    - AVAHI_GCC_UNUSED*
    assertStmts:
    - condition: (r)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/core/cf-agent/findhub.c
    constantsTouched: []
    func_position:
      end: 126
      start: 91
    functionDepth: 8
    functionLinenumber: 91
    functionLinenumberEnd: 126
    functionName: resolve_callback
    functionSourceFile: /src/core/cf-agent/findhub.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - avahi_service_resolver_get_client_ptr
    - assert
    - avahi_strerror_ptr
    - avahi_client_errno_ptr
    - Log
    - ListAppend
    - avahi_service_resolver_free_ptr
    - avahi_address_snprint_ptr
    - strlcpy
    linkageType: ''
    returnType: void
    signature: "void resolve_callback(AvahiServiceResolver *r,\n                      AVAHI_GCC_UNUSED
      AvahiIfIndex interface,\n                      AVAHI_GCC_UNUSED AvahiProtocol
      protocol,\n                      AvahiResolverEvent event,\n                      const
      char *name,\n                      const char *type,\n                      const
      char *domain,\n                      const char *host_name,\n                      const
      AvahiAddress *address,\n                      uint16_t port,\n                      AVAHI_GCC_UNUSED
      AvahiStringList *txt,\n                      AVAHI_GCC_UNUSED AvahiLookupFlags
      flags,\n                      AVAHI_GCC_UNUSED void* userdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ListIteratorGet
      Src: /src/core/cf-agent/findhub.c:132,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/findhub.c:135,1
    - Dst: ListIteratorData
      Src: /src/core/cf-agent/findhub.c:141,1
    - Dst: Log
      Src: /src/core/cf-agent/findhub.c:143,1
    - Dst: ListIteratorNext
      Src: /src/core/cf-agent/findhub.c:145,1
    - Dst: ListIteratorDestroy
      Src: /src/core/cf-agent/findhub.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - list
    argTypes:
    - List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 8
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: PrintList
    functionSourceFile: /src/core/cf-agent/findhub.c
    functionUses: 1
    functionsReached:
    - ListIteratorDestroy
    - ListIteratorGet
    - Log
    - ProgrammingError
    - ListIteratorData
    - ListIteratorNext
    linkageType: ''
    returnType: void
    signature: void PrintList(List *list)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ListNew
      Src: /src/core/cf-agent/findhub.c:156,1
    - Dst: RegisterCleanupFunction
      Src: /src/core/cf-agent/findhub.c:165,1
    - Dst: loadavahi
      Src: /src/core/cf-agent/findhub.c:167,1
    - Dst: Log
      Src: /src/core/cf-agent/findhub.c:169,1
    - Dst: avahi_simple_poll_new_ptr
      Src: /src/core/cf-agent/findhub.c:173,1
    - Dst: Log
      Src: /src/core/cf-agent/findhub.c:175,1
    - Dst: avahi_simple_poll_free_ptr
      Src: /src/core/cf-agent/findhub.c:179,1
    - Dst: avahi_client_new_ptr
      Src: /src/core/cf-agent/findhub.c:184,1
    - Dst: avahi_simple_poll_get_ptr
      Src: /src/core/cf-agent/findhub.c:184,1
    - Dst: Log
      Src: /src/core/cf-agent/findhub.c:188,1
    - Dst: avahi_strerror_ptr
      Src: /src/core/cf-agent/findhub.c:188,1
    - Dst: avahi_client_free_ptr
      Src: /src/core/cf-agent/findhub.c:192,1
    - Dst: avahi_simple_poll_free_ptr
      Src: /src/core/cf-agent/findhub.c:197,1
    - Dst: avahi_service_browser_new_ptr
      Src: /src/core/cf-agent/findhub.c:203,1
    - Dst: Log
      Src: /src/core/cf-agent/findhub.c:205,1
    - Dst: avahi_strerror_ptr
      Src: /src/core/cf-agent/findhub.c:205,1
    - Dst: avahi_client_errno_ptr
      Src: /src/core/cf-agent/findhub.c:205,1
    - Dst: avahi_simple_poll_free_ptr
      Src: /src/core/cf-agent/findhub.c:209,1
    - Dst: avahi_client_free_ptr
      Src: /src/core/cf-agent/findhub.c:214,1
    - Dst: avahi_service_browser_free_ptr
      Src: /src/core/cf-agent/findhub.c:219,1
    - Dst: avahi_simple_poll_loop_ptr
      Src: /src/core/cf-agent/findhub.c:225,1
    - Dst: avahi_service_browser_free_ptr
      Src: /src/core/cf-agent/findhub.c:228,1
    - Dst: avahi_client_free_ptr
      Src: /src/core/cf-agent/findhub.c:230,1
    - Dst: avahi_simple_poll_free_ptr
      Src: /src/core/cf-agent/findhub.c:232,1
    - Dst: ListCount
      Src: /src/core/cf-agent/findhub.c:236,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 1
    argNames:
    - list
    argTypes:
    - List**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 150
    functionDepth: 8
    functionLinenumber: 150
    functionLinenumberEnd: 237
    functionName: ListHubs
    functionSourceFile: /src/core/cf-agent/findhub.c
    functionUses: 5
    functionsReached:
    - avahi_service_browser_new_ptr
    - avahi_simple_poll_loop_ptr
    - avahi_simple_poll_get_ptr
    - loadavahi
    - ListNew
    - avahi_simple_poll_new_ptr
    - avahi_simple_poll_free_ptr
    - avahi_client_new_ptr
    - avahi_strerror_ptr
    - avahi_service_browser_free_ptr
    - Log
    - avahi_client_errno_ptr
    - RegisterCleanupFunction
    - ListCount
    - avahi_client_free_ptr
    linkageType: ''
    returnType: int
    signature: int ListHubs(List **list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/core/cf-agent/findhub.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: CleanupDlClose
    functionSourceFile: /src/core/cf-agent/findhub.c
    functionUses: 0
    functionsReached:
    - dlclose
    linkageType: ''
    returnType: void
    signature: void CleanupDlClose(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringSafeCompare
      Src: /src/core/cf-agent/findhub.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: CompareHosts
    functionSourceFile: /src/core/cf-agent/findhub.c
    functionUses: 0
    functionsReached:
    - StringSafeCompare
    linkageType: ''
    returnType: int
    signature: int CompareHosts(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_hashes.c:45,1
    - Dst: HashFile
      Src: /src/core/cf-agent/verify_files_hashes.c:51,1
    - Dst: HashFile
      Src: /src/core/cf-agent/verify_files_hashes.c:52,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_hashes.c:62,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_hashes.c:67,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_hashes.c:67,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_hashes.c:67,1
    - Dst: CompareHashNet
      Src: /src/core/cf-agent/verify_files_hashes.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - file1
    - file2
    - sstat
    - dstat
    - fc
    - conn
    argTypes:
    - char*
    - char*
    - struct stat*
    - struct stat*
    - FileCopy*
    - AgentConnection*
    assertStmts:
    - condition: (fc->servers && strcmp(RlistScalarValue(fc->servers), "localhost"))
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/core/cf-agent/verify_files_hashes.c
    constantsTouched: []
    func_position:
      end: 70
      start: 38
    functionDepth: 9
    functionLinenumber: 38
    functionLinenumberEnd: 70
    functionName: CompareFileHashes
    functionSourceFile: /src/core/cf-agent/verify_files_hashes.c
    functionUses: 2
    functionsReached:
    - CompareHashNet
    - assert
    - Log
    - strcmp
    - RlistScalarValue
    - HashFile
    linkageType: ''
    returnType: bool
    signature: bool CompareFileHashes(const char *file1, const char *file2, const
      struct stat *sstat, const struct stat *dstat, const FileCopy *fc, AgentConnection
      *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_hashes.c:79,1
    - Dst: safe_open
      Src: /src/core/cf-agent/verify_files_hashes.c:85,1
    - Dst: safe_open
      Src: /src/core/cf-agent/verify_files_hashes.c:86,1
    - Dst: read
      Src: /src/core/cf-agent/verify_files_hashes.c:90,1
    - Dst: read
      Src: /src/core/cf-agent/verify_files_hashes.c:91,1
    - Dst: memcmp
      Src: /src/core/cf-agent/verify_files_hashes.c:93,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_hashes.c:95,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_hashes.c:96,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_hashes.c:97,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_hashes.c:102,1
    - Dst: close
      Src: /src/core/cf-agent/verify_files_hashes.c:103,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_files_hashes.c:109,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_files_hashes.c:109,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_files_hashes.c:109,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_files_hashes.c:110,1
    - Dst: CompareHashNet
      Src: /src/core/cf-agent/verify_files_hashes.c:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - file1
    - file2
    - sstat
    - dstat
    - fc
    - conn
    argTypes:
    - char*
    - char*
    - struct stat*
    - struct stat*
    - FileCopy*
    - AgentConnection*
    assertStmts:
    - condition: (fc->servers && strcmp(RlistScalarValue(fc->servers), "localhost"))
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/core/cf-agent/verify_files_hashes.c
    constantsTouched: []
    func_position:
      end: 113
      start: 72
    functionDepth: 9
    functionLinenumber: 72
    functionLinenumberEnd: 113
    functionName: CompareBinaryFiles
    functionSourceFile: /src/core/cf-agent/verify_files_hashes.c
    functionUses: 1
    functionsReached:
    - read
    - safe_open
    - CompareHashNet
    - assert
    - Log
    - strcmp
    - RlistScalarValue
    - memcmp
    - close
    linkageType: ''
    returnType: bool
    signature: bool CompareBinaryFiles(const char *file1, const char *file2, const
      struct stat *sstat, const struct stat *dstat, const FileCopy *fc, AgentConnection
      *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcessAttributes
      Src: /src/core/cf-agent/verify_processes.c:52,1
    - Dst: ProcessSanityChecks
      Src: /src/core/cf-agent/verify_processes.c:53,1
    - Dst: VerifyProcesses
      Src: /src/core/cf-agent/verify_processes.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 11
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: VerifyProcessesPromise
    functionSourceFile: /src/core/cf-agent/verify_processes.c
    functionUses: 1
    functionsReached:
    - GetProcessAttributes
    - VerifyProcesses
    - ProcessSanityChecks
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyProcessesPromise(EvalContext *ctx, const Promise
      *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:64,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:65,1
    - Dst: RlistKeyIn_IgnoreCase
      Src: /src/core/cf-agent/verify_processes.c:72,1
    - Dst: RlistKeyIn_IgnoreCase
      Src: /src/core/cf-agent/verify_processes.c:72,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:74,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_processes.c:76,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:81,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_processes.c:83,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:90,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_processes.c:92,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:99,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_processes.c:100,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:106,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/verify_processes.c:107,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/core/cf-agent/verify_processes.c
    - condition: (pp != NULL)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/core/cf-agent/verify_processes.c
    constantsTouched: []
    func_position:
      end: 112
      start: 62
    functionDepth: 9
    functionLinenumber: 62
    functionLinenumberEnd: 112
    functionName: ProcessSanityChecks
    functionSourceFile: /src/core/cf-agent/verify_processes.c
    functionUses: 1
    functionsReached:
    - assert
    - RlistKeyIn_IgnoreCase
    - PromiseRef
    - Log
    linkageType: ''
    returnType: bool
    signature: bool ProcessSanityChecks(const Attributes *a, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_processes.c:123,1
    - Dst: snprintf
      Src: /src/core/cf-agent/verify_processes.c:127,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/verify_processes.c:130,1
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/verify_processes.c:137,1
    - Dst: VerifyProcessOp
      Src: /src/core/cf-agent/verify_processes.c:138,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/verify_processes.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - a
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 116
    functionDepth: 12
    functionLinenumber: 116
    functionLinenumberEnd: 143
    functionName: VerifyProcesses
    functionSourceFile: /src/core/cf-agent/verify_processes.c
    functionUses: 1
    functionsReached:
    - PromiseBanner
    - snprintf
    - VerifyProcessOp
    - YieldCurrentLock
    - AcquireLock
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyProcesses(EvalContext *ctx, const Attributes *a,
      const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:151,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:152,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:153,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:154,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_processes.c:154,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:158,1
    - Dst: RlistFnCallValue
      Src: /src/core/cf-agent/verify_processes.c:161,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:166,1
    - Dst: ClassRefParse
      Src: /src/core/cf-agent/verify_processes.c:167,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_processes.c:167,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/cf-agent/verify_processes.c:168,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_processes.c:169,1
    - Dst: ClassRefDestroy
      Src: /src/core/cf-agent/verify_processes.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - rp
    - pp
    - attribute_name
    argTypes:
    - EvalContext*
    - Rlist*
    - Promise*
    - char*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/core/cf-agent/verify_processes.c
    - condition: (pp != NULL)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/core/cf-agent/verify_processes.c
    - condition: (rp != NULL)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/core/cf-agent/verify_processes.c
    - condition: (attribute_name != NULL && strlen(attribute_name) > 0)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/core/cf-agent/verify_processes.c
    - condition: (rp->val.type == RVAL_TYPE_SCALAR)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/core/cf-agent/verify_processes.c
    constantsTouched: []
    func_position:
      end: 171
      start: 145
    functionDepth: 8
    functionLinenumber: 145
    functionLinenumberEnd: 171
    functionName: ProcessCountMaybeDefineClass
    functionSourceFile: /src/core/cf-agent/verify_processes.c
    functionUses: 0
    functionsReached:
    - ClassRefDestroy
    - strlen
    - ClassRefParse
    - assert
    - EvalContextClassPutSoft
    - RlistFnCallValue
    - Log
    - RlistScalarValue
    linkageType: ''
    returnType: void
    signature: "void ProcessCountMaybeDefineClass(\n    EvalContext *const ctx,\n
      \   const Rlist *const rp,\n    const Promise *const pp,\n    const char *const
      attribute_name)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:175,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:176,1
    - Dst: FindPidMatches
      Src: /src/core/cf-agent/verify_processes.c:179,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:188,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:189,1
    - Dst: ProcessCountMaybeDefineClass
      Src: /src/core/cf-agent/verify_processes.c:192,1
    - Dst: ProcessCountMaybeDefineClass
      Src: /src/core/cf-agent/verify_processes.c:199,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:201,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/verify_processes.c:202,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:210,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:222,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:224,1
    - Dst: IsExecutable
      Src: /src/core/cf-agent/verify_processes.c:228,1
    - Dst: CommandArg0
      Src: /src/core/cf-agent/verify_processes.c:228,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:230,1
    - Dst: ShellCommandReturnsZero
      Src: /src/core/cf-agent/verify_processes.c:232,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:234,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:237,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:241,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:244,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:249,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:252,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/verify_processes.c:253,1
    - Dst: DoAllSignals
      Src: /src/core/cf-agent/verify_processes.c:259,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/verify_processes.c:261,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:268,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:275,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:277,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:282,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:284,1
    - Dst: EvalContextClassPutSoft
      Src: /src/core/cf-agent/verify_processes.c:285,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 3
    argNames:
    - ctx
    - a
    - pp
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/core/cf-agent/verify_processes.c
    - condition: (a != NULL)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/core/cf-agent/verify_processes.c
    constantsTouched: []
    func_position:
      end: 290
      start: 173
    functionDepth: 13
    functionLinenumber: 173
    functionLinenumberEnd: 290
    functionName: VerifyProcessOp
    functionSourceFile: /src/core/cf-agent/verify_processes.c
    functionUses: 1
    functionsReached:
    - IsExecutable
    - CommandArg0
    - ShellCommandReturnsZero
    - assert
    - EvalContextClassPutSoft
    - ProcessCountMaybeDefineClass
    - cfPS
    - Log
    - DoAllSignals
    - DeleteItemList
    - FindPidMatches
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyProcessOp(EvalContext *ctx, const Attributes *a,
      const Promise *pp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:308,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/verify_processes.c:318,1
    - Dst: sscanf
      Src: /src/core/cf-agent/verify_processes.c:323,1
    - Dst: sleep
      Src: /src/core/cf-agent/verify_processes.c:328,1
    - Dst: SignalFromString
      Src: /src/core/cf-agent/verify_processes.c:333,1
    - Dst: kill
      Src: /src/core/cf-agent/verify_processes.c:342,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:344,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_processes.c:346,1
    - Dst: cfPS
      Src: /src/core/cf-agent/verify_processes.c:351,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:354,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:360,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/verify_processes.c:368,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - procs_to_signal
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Item*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 293
    functionDepth: 13
    functionLinenumber: 293
    functionLinenumberEnd: 372
    functionName: DoAllSignals
    functionSourceFile: /src/core/cf-agent/verify_processes.c
    functionUses: 1
    functionsReached:
    - kill
    - GetErrorStr
    - SignalFromString
    - sleep
    - cfPS
    - sscanf
    - Log
    - RlistScalarValue
    - PromiseResultUpdate
    linkageType: ''
    returnType: bool
    signature: bool DoAllSignals(EvalContext *ctx, Item *procs_to_signal, const Attributes
      *a, const Promise *pp, PromiseResult *result)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:377,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:378,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_processes.c:379,1
    - Dst: getpid
      Src: /src/core/cf-agent/verify_processes.c:382,1
    - Dst: SelectProcesses
      Src: /src/core/cf-agent/verify_processes.c:384,1
    - Dst: RlistLen
      Src: /src/core/cf-agent/verify_processes.c:394,1
    - Dst: RlistKeyIn_IgnoreCase
      Src: /src/core/cf-agent/verify_processes.c:394,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:396,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:405,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:412,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:421,1
    - Dst: GetProcessTableLegend
      Src: /src/core/cf-agent/verify_processes.c:421,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:422,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:428,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_processes.c:432,1
    - Dst: PrependItem
      Src: /src/core/cf-agent/verify_processes.c:435,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/verify_processes.c:440,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - killlist
    - a
    - promiser
    argTypes:
    - Item**
    - Attributes*
    - char*
    assertStmts:
    - condition: (killlist != NULL)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/core/cf-agent/verify_processes.c
    - condition: (promiser != NULL)
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/core/cf-agent/verify_processes.c
    - condition: (a != NULL)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/core/cf-agent/verify_processes.c
    constantsTouched: []
    func_position:
      end: 443
      start: 375
    functionDepth: 12
    functionLinenumber: 375
    functionLinenumberEnd: 443
    functionName: FindPidMatches
    functionSourceFile: /src/core/cf-agent/verify_processes.c
    functionUses: 1
    functionsReached:
    - getpid
    - assert
    - GetProcessTableLegend
    - Log
    - SelectProcesses
    - PrependItem
    - DeleteItemList
    - RlistKeyIn_IgnoreCase
    - RlistLen
    linkageType: ''
    returnType: int
    signature: int FindPidMatches(Item **killlist, const Attributes *a, const char
      *promiser)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ParsePackageVersion
      Src: /src/core/cf-agent/vercmp_internal.c:45,1
    - Dst: CanonifyChar
      Src: /src/core/cf-agent/vercmp_internal.c:45,1
    - Dst: ParsePackageVersion
      Src: /src/core/cf-agent/vercmp_internal.c:46,1
    - Dst: CanonifyChar
      Src: /src/core/cf-agent/vercmp_internal.c:46,1
    - Dst: Log
      Src: /src/core/cf-agent/vercmp_internal.c:50,1
    - Dst: strcmp
      Src: /src/core/cf-agent/vercmp_internal.c:55,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/vercmp_internal.c:55,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/vercmp_internal.c:55,1
    - Dst: Log
      Src: /src/core/cf-agent/vercmp_internal.c:70,1
    - Dst: Log
      Src: /src/core/cf-agent/vercmp_internal.c:74,1
    - Dst: strcmp
      Src: /src/core/cf-agent/vercmp_internal.c:78,1
    - Dst: strcmp
      Src: /src/core/cf-agent/vercmp_internal.c:85,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/vercmp_internal.c:85,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/vercmp_internal.c:85,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/vercmp_internal.c:170,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/vercmp_internal.c:171,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/vercmp_internal.c:172,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/vercmp_internal.c:173,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 92
    argCount: 3
    argNames:
    - v1
    - v2
    - cmp
    argTypes:
    - char*
    - char*
    - PackageVersionComparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 33
    functionDepth: 8
    functionLinenumber: 33
    functionLinenumberEnd: 176
    functionName: ComparePackageVersionsInternal
    functionSourceFile: /src/core/cf-agent/vercmp_internal.c
    functionUses: 2
    functionsReached:
    - CanonifyChar
    - ParsePackageVersion
    - Log
    - strcmp
    - RlistDestroy
    - RlistScalarValue
    linkageType: ''
    returnType: VersionCmpResult
    signature: VersionCmpResult ComparePackageVersionsInternal(const char *v1, const
      char *v2, PackageVersionComparator cmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/cf-agent/vercmp_internal.c:189,1
    - Dst: memset
      Src: /src/core/cf-agent/vercmp_internal.c:190,1
    - Dst: sscanf
      Src: /src/core/cf-agent/vercmp_internal.c:194,1
    - Dst: strlen
      Src: /src/core/cf-agent/vercmp_internal.c:195,1
    - Dst: RlistAppendScalar
      Src: /src/core/cf-agent/vercmp_internal.c:199,1
    - Dst: sscanf
      Src: /src/core/cf-agent/vercmp_internal.c:206,1
    - Dst: RlistAppendScalar
      Src: /src/core/cf-agent/vercmp_internal.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - version
    - num
    - sep
    argTypes:
    - char*
    - Rlist**
    - Rlist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 209
    functionName: ParsePackageVersion
    functionSourceFile: /src/core/cf-agent/vercmp_internal.c
    functionUses: 1
    functionsReached:
    - sscanf
    - strlen
    - RlistAppendScalar
    - memset
    linkageType: ''
    returnType: void
    signature: void ParsePackageVersion(char *version, Rlist **num, Rlist **sep)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/core/cf-agent/promiser_regex_resolver.c:53,1
    - Dst: PromiseGetConstraintAsBoolean
      Src: /src/core/cf-agent/promiser_regex_resolver.c:54,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-agent/promiser_regex_resolver.c:55,1
    - Dst: IsPathRegex
      Src: /src/core/cf-agent/promiser_regex_resolver.c:59,1
    - Dst: strcmp
      Src: /src/core/cf-agent/promiser_regex_resolver.c:59,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:61,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:66,1
    - Dst: SplitString
      Src: /src/core/cf-agent/promiser_regex_resolver.c:70,1
    - Dst: strlen
      Src: /src/core/cf-agent/promiser_regex_resolver.c:75,1
    - Dst: IsRegex
      Src: /src/core/cf-agent/promiser_regex_resolver.c:87,1
    - Dst: PathAppend
      Src: /src/core/cf-agent/promiser_regex_resolver.c:98,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:100,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:104,1
    - Dst: stat
      Src: /src/core/cf-agent/promiser_regex_resolver.c:108,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/promiser_regex_resolver.c:110,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:112,1
    - Dst: PromiseRef
      Src: /src/core/cf-agent/promiser_regex_resolver.c:115,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/promiser_regex_resolver.c:126,1
    - Dst: DirOpen
      Src: /src/core/cf-agent/promiser_regex_resolver.c:128,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:131,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/promiser_regex_resolver.c:132,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/promiser_regex_resolver.c:133,1
    - Dst: DirRead
      Src: /src/core/cf-agent/promiser_regex_resolver.c:140,1
    - Dst: DirRead
      Src: /src/core/cf-agent/promiser_regex_resolver.c:140,1
    - Dst: ConsiderLocalFile
      Src: /src/core/cf-agent/promiser_regex_resolver.c:142,1
    - Dst: S_ISDIR
      Src: /src/core/cf-agent/promiser_regex_resolver.c:147,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:149,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/promiser_regex_resolver.c:153,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:155,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/promiser_regex_resolver.c:164,1
    - Dst: AddSlash
      Src: /src/core/cf-agent/promiser_regex_resolver.c:165,1
    - Dst: strcat
      Src: /src/core/cf-agent/promiser_regex_resolver.c:166,1
    - Dst: AddSlash
      Src: /src/core/cf-agent/promiser_regex_resolver.c:170,1
    - Dst: strcat
      Src: /src/core/cf-agent/promiser_regex_resolver.c:171,1
    - Dst: strcmp
      Src: /src/core/cf-agent/promiser_regex_resolver.c:176,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/promiser_regex_resolver.c:178,1
    - Dst: LocateFilePromiserGroup
      Src: /src/core/cf-agent/promiser_regex_resolver.c:178,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:184,1
    - Dst: snprintf
      Src: /src/core/cf-agent/promiser_regex_resolver.c:188,1
    - Dst: MapNameForward
      Src: /src/core/cf-agent/promiser_regex_resolver.c:189,1
    - Dst: FullTextMatch
      Src: /src/core/cf-agent/promiser_regex_resolver.c:191,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:193,1
    - Dst: ExpandDeRefPromise
      Src: /src/core/cf-agent/promiser_regex_resolver.c:199,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/promiser_regex_resolver.c:202,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/promiser_regex_resolver.c:206,1
    - Dst: PromiseDestroy
      Src: /src/core/cf-agent/promiser_regex_resolver.c:209,1
    - Dst: DirClose
      Src: /src/core/cf-agent/promiser_regex_resolver.c:213,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:218,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/promiser_regex_resolver.c:219,1
    - Dst: Log
      Src: /src/core/cf-agent/promiser_regex_resolver.c:224,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/promiser_regex_resolver.c:228,1
    - Dst: DeleteItemList
      Src: /src/core/cf-agent/promiser_regex_resolver.c:232,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 3
    argNames:
    - ctx
    - wildpath
    - pp
    argTypes:
    - EvalContext*
    - char*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 46
    functionDepth: 10
    functionLinenumber: 46
    functionLinenumberEnd: 235
    functionName: LocateFilePromiserGroup
    functionSourceFile: /src/core/cf-agent/promiser_regex_resolver.c
    functionUses: 3
    functionsReached:
    - SplitString
    - LocateFilePromiserGroup
    - FullTextMatch
    - Log
    - IsRegex
    - strlcpy
    - snprintf
    - strlen
    - DirOpen
    - strcat
    - ConsiderLocalFile
    - strcmp
    - PromiseGetConstraintAsBoolean
    - PathAppend
    - ExpandDeRefPromise
    - IsPathRegex
    - DirRead
    - getuid
    - S_ISDIR
    - MapNameForward
    - PromiseGetConstraintAsRval
    - stat
    - PromiseRef
    - PromiseDestroy
    - DirClose
    - DeleteItemList
    - AddSlash
    - PromiseResultUpdate
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult LocateFilePromiserGroup(EvalContext *ctx, char *wildpath,
      const Promise *pp,\n                                      PromiseResult (*fnptr)
      (EvalContext *ctx, char *path, const Promise *ptr))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: CFUSR_CHECKBIT
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CFUSR_CHECKBIT(v,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: CFUSR_SETBIT
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CFUSR_SETBIT(v,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: CFUSR_CLEARBIT
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CFUSR_CLEARBIT(v,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 97
    functionName: GetPlatformSpecificExpirationDate
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *GetPlatformSpecificExpirationDate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/cf-agent/verify_users_pam.c:103,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:108,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - num_msg
    - msg
    - resp
    - appdata_ptr
    argTypes:
    - int
    - struct pam_message**
    - struct pam_response**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 118
    functionName: PasswordSupplier
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int PasswordSupplier(int num_msg, const struct pam_message **msg,\n
      \          struct pam_response **resp, void *appdata_ptr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-agent/verify_users_pam.c:134,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:147,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:148,1
    - Dst: CompileRegex
      Src: /src/core/cf-agent/verify_users_pam.c:150,1
    - Dst: CompileRegex
      Src: /src/core/cf-agent/verify_users_pam.c:151,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/verify_users_pam.c:156,1
    - Dst: feof
      Src: /src/core/cf-agent/verify_users_pam.c:159,1
    - Dst: StringMatchWithPrecompiledRegex
      Src: /src/core/cf-agent/verify_users_pam.c:169,1
    - Dst: StringEqualN
      Src: /src/core/cf-agent/verify_users_pam.c:172,1
    - Dst: StringMatchCapturesWithPrecompiledRegex
      Src: /src/core/cf-agent/verify_users_pam.c:187,1
    - Dst: StringCopy
      Src: /src/core/cf-agent/verify_users_pam.c:192,1
    - Dst: BufferData
      Src: /src/core/cf-agent/verify_users_pam.c:192,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/verify_users_pam.c:192,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:195,1
    - Dst: RegexDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:201,1
    - Dst: RegexDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:202,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:203,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_users_pam.c:204,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - puser
    - result
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 206
    functionName: GetAIXShadowHash
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - BufferData
    - SeqDestroy
    - StringMatchCapturesWithPrecompiledRegex
    - strlen
    - StringCopy
    - feof
    - safe_fopen
    - CompileRegex
    - StringEqualN
    - RegexDestroy
    - fclose
    - StringMatchWithPrecompiledRegex
    - free
    - CfReadLine
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool GetAIXShadowHash(const char *puser, const char **result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-agent/verify_users_pam.c:214,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:217,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:217,1
    - Dst: fgetspent
      Src: /src/core/cf-agent/verify_users_pam.c:223,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:225,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_users_pam.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - puser
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 212
    functionDepth: 8
    functionLinenumber: 212
    functionLinenumberEnd: 246
    functionName: GetSpEntry
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - safe_fopen
    - Log
    - strcmp
    - fclose
    - fgetspent
    linkageType: ''
    returnType: struct spwd
    signature: struct spwd *GetSpEntry(const char *puser)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:255,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_users_pam.c:259,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:261,1
    - Dst: GetSpEntry
      Src: /src/core/cf-agent/verify_users_pam.c:265,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:270,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:270,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:275,1
    - Dst: GetAIXShadowHash
      Src: /src/core/cf-agent/verify_users_pam.c:287,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:289,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:289,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - puser
    - passwd_info
    - result
    argTypes:
    - char*
    - struct passwd*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 249
    functionDepth: 9
    functionLinenumber: 249
    functionLinenumberEnd: 300
    functionName: GetPasswordHash
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - GetSpEntry
    - stat
    - GetErrorStr
    - strlen
    - GetAIXShadowHash
    - Log
    linkageType: ''
    returnType: bool
    signature: bool GetPasswordHash(const char *puser, const struct passwd *passwd_info,
      const char **result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetPasswordHash
      Src: /src/core/cf-agent/verify_users_pam.c:313,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:317,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:318,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/verify_users_pam.c:323,1
    - Dst: pam_start
      Src: /src/core/cf-agent/verify_users_pam.c:332,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:335,1
    - Dst: pam_strerror
      Src: /src/core/cf-agent/verify_users_pam.c:335,1
    - Dst: pam_authenticate
      Src: /src/core/cf-agent/verify_users_pam.c:338,1
    - Dst: pam_end
      Src: /src/core/cf-agent/verify_users_pam.c:339,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:342,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:347,1
    - Dst: pam_strerror
      Src: /src/core/cf-agent/verify_users_pam.c:348,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - puser
    - password
    - format
    - passwd_info
    argTypes:
    - char*
    - char*
    - PasswordFormat
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 302
    functionDepth: 8
    functionLinenumber: 302
    functionLinenumberEnd: 354
    functionName: IsPasswordCorrect
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - GetPasswordHash
    - pam_start
    - pam_strerror
    - Log
    - strcmp
    - pam_end
    - ProgrammingError
    - pam_authenticate
    linkageType: ''
    returnType: bool
    signature: bool IsPasswordCorrect(const char *puser, const char* password, PasswordFormat
      format, const struct passwd *passwd_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pam_start
      Src: /src/core/cf-agent/verify_users_pam.c:364,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:367,1
    - Dst: pam_strerror
      Src: /src/core/cf-agent/verify_users_pam.c:367,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:370,1
    - Dst: pam_chauthtok
      Src: /src/core/cf-agent/verify_users_pam.c:371,1
    - Dst: pam_end
      Src: /src/core/cf-agent/verify_users_pam.c:372,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:379,1
    - Dst: pam_strerror
      Src: /src/core/cf-agent/verify_users_pam.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - puser
    - password
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 356
    functionDepth: 8
    functionLinenumber: 356
    functionLinenumberEnd: 383
    functionName: ChangePlaintextPasswordUsingLibPam
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - pam_chauthtok
    - pam_strerror
    - pam_start
    - Log
    - pam_end
    linkageType: ''
    returnType: bool
    signature: bool ChangePlaintextPasswordUsingLibPam(const char *puser, const char
      *password)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:391,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:391,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/verify_users_pam.c:393,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:395,1
    - Dst: system
      Src: /src/core/cf-agent/verify_users_pam.c:398,1
    - Dst: WIFEXITED
      Src: /src/core/cf-agent/verify_users_pam.c:399,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-agent/verify_users_pam.c:399,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - puser
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 385
    functionDepth: 8
    functionLinenumber: 385
    functionLinenumberEnd: 408
    functionName: ClearPasswordAdministrationFlags
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - WEXITSTATUS
    - strlen
    - WIFEXITED
    - Log
    - xsnprintf
    - system
    linkageType: ''
    returnType: bool
    signature: bool ClearPasswordAdministrationFlags(const char *puser)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:415,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/verify_users_pam.c:416,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:419,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:419,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:424,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:424,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/verify_users_pam.c:426,1
    - Dst: clearerr
      Src: /src/core/cf-agent/verify_users_pam.c:427,1
    - Dst: fwrite
      Src: /src/core/cf-agent/verify_users_pam.c:428,1
    - Dst: ferror
      Src: /src/core/cf-agent/verify_users_pam.c:431,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:433,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:439,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_users_pam.c:440,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_users_pam.c:443,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - puser
    - password
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 411
    functionDepth: 11
    functionLinenumber: 411
    functionLinenumberEnd: 451
    functionName: ChangePasswordHashUsingChpasswd
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - clearerr
    - cf_popen
    - strlen
    - fwrite
    - cf_pclose
    - Log
    - xsnprintf
    - ferror
    linkageType: ''
    returnType: bool
    signature: bool ChangePasswordHashUsingChpasswd(const char *puser, const char
      *password)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/cf-agent/verify_users_pam.c:461,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:466,1
    - Dst: lckpwdf
      Src: /src/core/cf-agent/verify_users_pam.c:468,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:470,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:474,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:474,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/verify_users_pam.c:475,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_users_pam.c:476,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:478,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:478,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/verify_users_pam.c:479,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_users_pam.c:480,1
    - Dst: CopyRegularFileDisk
      Src: /src/core/cf-agent/verify_users_pam.c:482,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:484,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/verify_users_pam.c:488,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:491,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:491,1
    - Dst: open
      Src: /src/core/cf-agent/verify_users_pam.c:494,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:499,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:501,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:505,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:505,1
    - Dst: fdopen
      Src: /src/core/cf-agent/verify_users_pam.c:509,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:512,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:512,1
    - Dst: close
      Src: /src/core/cf-agent/verify_users_pam.c:513,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/verify_users_pam.c:522,1
    - Dst: feof
      Src: /src/core/cf-agent/verify_users_pam.c:525,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:527,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:527,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:528,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_users_pam.c:541,1
    - Dst: strchr
      Src: /src/core/cf-agent/verify_users_pam.c:544,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:548,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:550,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:555,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:555,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:558,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/verify_users_pam.c:560,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/verify_users_pam.c:565,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:569,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:571,1
    - Dst: clearerr
      Src: /src/core/cf-agent/verify_users_pam.c:575,1
    - Dst: fwrite
      Src: /src/core/cf-agent/verify_users_pam.c:576,1
    - Dst: ferror
      Src: /src/core/cf-agent/verify_users_pam.c:580,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:582,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:588,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_users_pam.c:595,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_users_pam.c:597,1
    - Dst: CopyFilePermissionsDisk
      Src: /src/core/cf-agent/verify_users_pam.c:600,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:602,1
    - Dst: rename
      Src: /src/core/cf-agent/verify_users_pam.c:606,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:608,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:609,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_users_pam.c:620,1
    - Dst: unlink
      Src: /src/core/cf-agent/verify_users_pam.c:622,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_users_pam.c:626,1
    - Dst: ulckpwdf
      Src: /src/core/cf-agent/verify_users_pam.c:629,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 114
    argCount: 2
    argNames:
    - puser
    - password
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 455
    functionDepth: 12
    functionLinenumber: 455
    functionLinenumberEnd: 632
    functionName: ChangePasswordHashUsingLckpwdf
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - lckpwdf
    - CopyRegularFileDisk
    - CopyFilePermissionsDisk
    - ulckpwdf
    - feof
    - Log
    - open
    - fclose
    - free
    - close
    - clearerr
    - fdopen
    - unlink
    - strlen
    - strchr
    - strcmp
    - CfReadLine
    - rename
    - GetErrorStr
    - stat
    - safe_fopen
    - fwrite
    - xsnprintf
    - ferror
    linkageType: ''
    returnType: bool
    signature: bool ChangePasswordHashUsingLckpwdf(const char *puser, const char *password)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:638,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:642,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:646,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/verify_users_pam.c:648,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:651,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_users_pam.c:655,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - puser
    - cmd
    - sizeof_cmd
    - action_msg
    - cap_action_msg
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 635
    functionDepth: 11
    functionLinenumber: 635
    functionLinenumberEnd: 663
    functionName: ExecuteUserCommand
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - cf_pclose
    - Log
    - cf_popen
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool ExecuteUserCommand(const char *puser, const char *cmd, size_t
      sizeof_cmd,\n                               const char *action_msg, const char
      *cap_action_msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_users_pam.c:670,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:671,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:672,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:673,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:674,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:676,1
    - Dst: ExecuteUserCommand
      Src: /src/core/cf-agent/verify_users_pam.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - puser
    - password
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 666
    functionDepth: 12
    functionLinenumber: 666
    functionLinenumberEnd: 679
    functionName: ChangePasswordHashUsingChpass
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - Log
    - StringAppend
    - strcpy
    - ExecuteUserCommand
    linkageType: ''
    returnType: bool
    signature: bool ChangePasswordHashUsingChpass(const char *puser, const char *password)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:684,1
    - Dst: ChangePlaintextPasswordUsingLibPam
      Src: /src/core/cf-agent/verify_users_pam.c:690,1
    - Dst: stat
      Src: /src/core/cf-agent/verify_users_pam.c:696,1
    - Dst: SupportsOption
      Src: /src/core/cf-agent/verify_users_pam.c:696,1
    - Dst: ChangePasswordHashUsingChpasswd
      Src: /src/core/cf-agent/verify_users_pam.c:698,1
    - Dst: ChangePasswordHashUsingLckpwdf
      Src: /src/core/cf-agent/verify_users_pam.c:704,1
    - Dst: ChangePasswordHashUsingChpass
      Src: /src/core/cf-agent/verify_users_pam.c:708,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:712,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:718,1
    - Dst: ClearPasswordAdministrationFlags
      Src: /src/core/cf-agent/verify_users_pam.c:726,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - puser
    - password
    - format
    argTypes:
    - char*
    - char*
    - PasswordFormat
    assertStmts:
    - condition: (format == PASSWORD_FORMAT_PLAINTEXT || format == PASSWORD_FORMAT_HASH)
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/core/cf-agent/verify_users_pam.c
    constantsTouched: []
    func_position:
      end: 730
      start: 682
    functionDepth: 13
    functionLinenumber: 682
    functionLinenumberEnd: 730
    functionName: ChangePassword
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - SupportsOption
    - stat
    - ChangePasswordHashUsingChpasswd
    - ChangePasswordHashUsingChpass
    - assert
    - ChangePasswordHashUsingLckpwdf
    - Log
    - ClearPasswordAdministrationFlags
    - ChangePlaintextPasswordUsingLibPam
    linkageType: ''
    returnType: bool
    signature: bool ChangePassword(const char *puser, const char *password, PasswordFormat
      format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/core/cf-agent/verify_users_pam.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 743
    functionName: IsHashLocked
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool IsHashLocked(const char *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetPasswordHash
      Src: /src/core/cf-agent/verify_users_pam.c:756,1
    - Dst: IsHashLocked
      Src: /src/core/cf-agent/verify_users_pam.c:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - puser
    - passwd_info
    argTypes:
    - char*
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 762
    functionName: IsAccountLocked
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - IsHashLocked
    - GetPasswordHash
    linkageType: ''
    returnType: bool
    signature: bool IsAccountLocked(const char *puser, const struct passwd *passwd_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/cf-agent/verify_users_pam.c:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 787
    functionName: PlatformSupportsExpirationLock
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - stat
    linkageType: ''
    returnType: bool
    signature: bool PlatformSupportsExpirationLock(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PlatformSupportsExpirationLock
      Src: /src/core/cf-agent/verify_users_pam.c:792,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:797,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_users_pam.c:799,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:800,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:803,1
    - Dst: GetPlatformSpecificExpirationDate
      Src: /src/core/cf-agent/verify_users_pam.c:803,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:805,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:806,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:808,1
    - Dst: system
      Src: /src/core/cf-agent/verify_users_pam.c:812,1
    - Dst: WIFEXITED
      Src: /src/core/cf-agent/verify_users_pam.c:813,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-agent/verify_users_pam.c:813,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - puser
    - lock
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 790
    functionDepth: 8
    functionLinenumber: 790
    functionLinenumberEnd: 821
    functionName: SetAccountLockExpirationUsingUsermod
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - WEXITSTATUS
    - strlen
    - StringAppend
    - WIFEXITED
    - Log
    - GetPlatformSpecificExpirationDate
    - system
    - PlatformSupportsExpirationLock
    - strcpy
    linkageType: ''
    returnType: bool
    signature: bool SetAccountLockExpirationUsingUsermod(const char *puser, bool lock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PlatformSupportsExpirationLock
      Src: /src/core/cf-agent/verify_users_pam.c:827,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_users_pam.c:834,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:835,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:836,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:837,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:840,1
    - Dst: GetPlatformSpecificExpirationDate
      Src: /src/core/cf-agent/verify_users_pam.c:840,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:842,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:844,1
    - Dst: system
      Src: /src/core/cf-agent/verify_users_pam.c:847,1
    - Dst: WIFEXITED
      Src: /src/core/cf-agent/verify_users_pam.c:848,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-agent/verify_users_pam.c:848,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - puser
    - lock
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 825
    functionDepth: 8
    functionLinenumber: 825
    functionLinenumberEnd: 856
    functionName: SetAccountLockExpirationUsingPw
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - WEXITSTATUS
    - StringAppend
    - WIFEXITED
    - Log
    - GetPlatformSpecificExpirationDate
    - system
    - PlatformSupportsExpirationLock
    - strcpy
    linkageType: ''
    returnType: bool
    signature: bool SetAccountLockExpirationUsingPw(const char *puser, bool lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetAccountLockExpirationUsingUsermod
      Src: /src/core/cf-agent/verify_users_pam.c:862,1
    - Dst: SetAccountLockExpirationUsingPw
      Src: /src/core/cf-agent/verify_users_pam.c:864,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - puser
    - lock
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 859
    functionDepth: 9
    functionLinenumber: 859
    functionLinenumberEnd: 869
    functionName: SetAccountLockExpiration
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - SetAccountLockExpirationUsingPw
    - SetAccountLockExpirationUsingUsermod
    - Log
    linkageType: ''
    returnType: bool
    signature: bool SetAccountLockExpiration(const char *puser, bool lock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IsHashLocked
      Src: /src/core/cf-agent/verify_users_pam.c:877,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:880,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/verify_users_pam.c:881,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:883,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/verify_users_pam.c:884,1
    - Dst: ChangePassword
      Src: /src/core/cf-agent/verify_users_pam.c:886,1
    - Dst: IsHashLocked
      Src: /src/core/cf-agent/verify_users_pam.c:894,1
    - Dst: ChangePassword
      Src: /src/core/cf-agent/verify_users_pam.c:900,1
    - Dst: ChangePassword
      Src: /src/core/cf-agent/verify_users_pam.c:905,1
    - Dst: SetAccountLockExpiration
      Src: /src/core/cf-agent/verify_users_pam.c:914,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - puser
    - hash
    - lock
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 871
    functionDepth: 14
    functionLinenumber: 871
    functionLinenumberEnd: 915
    functionName: SetAccountLocked
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - strlen
    - ChangePassword
    - SetAccountLockExpiration
    - IsHashLocked
    - xsnprintf
    linkageType: ''
    returnType: bool
    signature: bool SetAccountLocked(const char *puser, const char *hash, bool lock)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:920,1
    - Dst: safe_fopen
      Src: /src/core/cf-agent/verify_users_pam.c:924,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:927,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:927,1
    - Dst: StringSetNew
      Src: /src/core/cf-agent/verify_users_pam.c:931,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_users_pam.c:936,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:936,1
    - Dst: RvalScalarValue
      Src: /src/core/cf-agent/verify_users_pam.c:936,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_users_pam.c:937,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:937,1
    - Dst: RvalScalarValue
      Src: /src/core/cf-agent/verify_users_pam.c:937,1
    - Dst: TransformGidsToGroups
      Src: /src/core/cf-agent/verify_users_pam.c:939,1
    - Dst: TransformGidsToGroups
      Src: /src/core/cf-agent/verify_users_pam.c:940,1
    - Dst: fgetgrent
      Src: /src/core/cf-agent/verify_users_pam.c:948,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:957,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:957,1
    - Dst: StringSetContains
      Src: /src/core/cf-agent/verify_users_pam.c:963,1
    - Dst: StringSetRemove
      Src: /src/core/cf-agent/verify_users_pam.c:965,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:974,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_users_pam.c:977,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:977,1
    - Dst: StringSetContains
      Src: /src/core/cf-agent/verify_users_pam.c:978,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_users_pam.c:980,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:980,1
    - Dst: StringSetContains
      Src: /src/core/cf-agent/verify_users_pam.c:984,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_users_pam.c:986,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:986,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:990,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:994,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_users_pam.c:995,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 5
    argNames:
    - user
    - u
    - groups_to_set
    - groups_missing
    - current_secondary_groups
    argTypes:
    - char*
    - User*
    - StringSet**
    - StringSet**
    - StringSet**
    assertStmts:
    - condition: (u != NULL)
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/core/cf-agent/verify_users_pam.c
    constantsTouched: []
    func_position:
      end: 998
      start: 918
    functionDepth: 8
    functionLinenumber: 918
    functionLinenumberEnd: 998
    functionName: GetGroupInfo
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - RvalScalarValue
    - fgetgrent
    - assert
    - StringSetContains
    - StringSetDestroy
    - safe_fopen
    - Log
    - TransformGidsToGroups
    - xstrdup
    - StringSetRemove
    - strcmp
    - free
    - StringSetNew
    - fclose
    - StringSetAdd
    linkageType: ''
    returnType: bool
    signature: bool GetGroupInfo (const char *user, const User *u, StringSet **groups_to_set,
      StringSet **groups_missing, StringSet **current_secondary_groups)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:1002,1
    - Dst: StringToUlong
      Src: /src/core/cf-agent/verify_users_pam.c:1005,1
    - Dst: LogStringToLongError
      Src: /src/core/cf-agent/verify_users_pam.c:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - key
    - entry
    argTypes:
    - char*
    - struct group*
    assertStmts:
    - condition: (entry != NULL)
      pos:
        line_end: 1001
        line_start: 1001
        source_file: /src/core/cf-agent/verify_users_pam.c
    constantsTouched: []
    func_position:
      end: 1013
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1013
    functionName: EqualGid
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - assert
    - LogStringToLongError
    - StringToUlong
    linkageType: ''
    returnType: bool
    signature: bool EqualGid(const char *key, const struct group *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:1017,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - entry
    argTypes:
    - char*
    - struct group*
    assertStmts:
    - condition: (entry != NULL)
      pos:
        line_end: 1016
        line_start: 1016
        source_file: /src/core/cf-agent/verify_users_pam.c
    constantsTouched: []
    func_position:
      end: 1019
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1019
    functionName: EqualGroupName
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool EqualGroupName(const char *key, const struct group *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/core/cf-agent/verify_users_pam.c:1034,1
    - Dst: gr_scan
      Src: /src/core/cf-agent/verify_users_pam.c:1046,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:1052,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - stream
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1055
    functionName: fgetgrent
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 1
    functionsReached:
    - getline
    - free
    - gr_scan
    linkageType: ''
    returnType: struct group
    signature: struct group *fgetgrent(FILE *stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-agent/verify_users_pam.c:1063,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1066,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:1066,1
    - Dst: fgetgrent
      Src: /src/core/cf-agent/verify_users_pam.c:1072,1
    - Dst: equal_fn
      Src: /src/core/cf-agent/verify_users_pam.c:1074,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:1080,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_users_pam.c:1084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1060
    functionDepth: 8
    functionLinenumber: 1060
    functionLinenumberEnd: 1098
    functionName: GetGrEntry
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - fgetgrent
    - safe_fopen
    - Log
    - fclose
    - free
    - equal_fn
    linkageType: ''
    returnType: struct group
    signature: "struct group *GetGrEntry(const char *key,\n                                bool
      (*equal_fn)(const char *key, const struct group *entry))"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: StringSetNew
      Src: /src/core/cf-agent/verify_users_pam.c:1102,1
    - Dst: StringSetIteratorInit
      Src: /src/core/cf-agent/verify_users_pam.c:1103,1
    - Dst: StringSetIteratorNext
      Src: /src/core/cf-agent/verify_users_pam.c:1105,1
    - Dst: StringSetIteratorNext
      Src: /src/core/cf-agent/verify_users_pam.c:1105,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:1107,1
    - Dst: strspn
      Src: /src/core/cf-agent/verify_users_pam.c:1107,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_users_pam.c:1110,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:1110,1
    - Dst: GetGrEntry
      Src: /src/core/cf-agent/verify_users_pam.c:1114,1
    - Dst: GetGrEntry
      Src: /src/core/cf-agent/verify_users_pam.c:1119,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1124,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:1124,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:1125,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_users_pam.c:1134,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:1134,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1139,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:1139,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:1140,1
    - Dst: StringSetAdd
      Src: /src/core/cf-agent/verify_users_pam.c:1146,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/verify_users_pam.c:1146,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:1149,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:1154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - list
    argTypes:
    - StringSet**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1100
    functionDepth: 9
    functionLinenumber: 1100
    functionLinenumberEnd: 1155
    functionName: TransformGidsToGroups
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - strlen
    - GetGrEntry
    - StringSetIteratorNext
    - StringSetDestroy
    - strspn
    - Log
    - StringSetIteratorInit
    - xstrdup
    - free
    - StringSetNew
    - StringSetAdd
    linkageType: ''
    returnType: void
    signature: void TransformGidsToGroups(StringSet **list)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:1163,1
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:1164,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_users_pam.c:1167,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1169,1
    - Dst: StringToUlong
      Src: /src/core/cf-agent/verify_users_pam.c:1175,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1178,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_users_pam.c:1182,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1184,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_users_pam.c:1187,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1189,1
    - Dst: IsAccountLocked
      Src: /src/core/cf-agent/verify_users_pam.c:1192,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1196,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/verify_users_pam.c:1200,1
    - Dst: IsPasswordCorrect
      Src: /src/core/cf-agent/verify_users_pam.c:1203,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1205,1
    - Dst: StringSetIsEqual
      Src: /src/core/cf-agent/verify_users_pam.c:1209,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1211,1
    - Dst: SafeStringLength
      Src: /src/core/cf-agent/verify_users_pam.c:1214,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:1216,1
    - Dst: strspn
      Src: /src/core/cf-agent/verify_users_pam.c:1217,1
    - Dst: GetGrEntry
      Src: /src/core/cf-agent/verify_users_pam.c:1221,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1225,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:1227,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1228,1
    - Dst: StringToUlong
      Src: /src/core/cf-agent/verify_users_pam.c:1235,1
    - Dst: LogStringToLongError
      Src: /src/core/cf-agent/verify_users_pam.c:1238,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1240,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1244,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1249,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1250,1
    - Dst: CFUSR_SETBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1257,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:1262,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 59
    argCount: 6
    argNames:
    - puser
    - u
    - passwd_info
    - changemap
    - groups_to_set
    - current_secondary_groups
    argTypes:
    - char*
    - User*
    - struct passwd*
    - uint32_t*
    - StringSet*
    - StringSet*
    assertStmts:
    - condition: (passwd_info != NULL)
      pos:
        line_end: 1163
        line_start: 1163
        source_file: /src/core/cf-agent/verify_users_pam.c
    - condition: (u != NULL)
      pos:
        line_end: 1162
        line_start: 1162
        source_file: /src/core/cf-agent/verify_users_pam.c
    constantsTouched: []
    func_position:
      end: 1275
      start: 1157
    functionDepth: 9
    functionLinenumber: 1157
    functionLinenumberEnd: 1275
    functionName: VerifyIfUserNeedsModifs
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - StringSetIsEqual
    - StringEqual
    - SafeStringLength
    - assert
    - strlen
    - IsAccountLocked
    - GetGrEntry
    - IsPasswordCorrect
    - LogStringToLongError
    - strspn
    - CFUSR_SETBIT
    - Log
    - free
    - StringToUlong
    linkageType: ''
    returnType: bool
    signature: "bool VerifyIfUserNeedsModifs(const char *puser, const User *u,\n                                    const
      struct passwd *passwd_info,\n                                    uint32_t *changemap,\n
      \                                   StringSet *groups_to_set,\n                                    StringSet
      *current_secondary_groups)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:1281,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/verify_users_pam.c:1282,1
    - Dst: cf_popen
      Src: /src/core/cf-agent/verify_users_pam.c:1284,1
    - Dst: strlen
      Src: /src/core/cf-agent/verify_users_pam.c:1287,1
    - Dst: CfReadLine
      Src: /src/core/cf-agent/verify_users_pam.c:1288,1
    - Dst: strstr
      Src: /src/core/cf-agent/verify_users_pam.c:1291,1
    - Dst: isspace
      Src: /src/core/cf-agent/verify_users_pam.c:1296,1
    - Dst: ispunct
      Src: /src/core/cf-agent/verify_users_pam.c:1296,1
    - Dst: isspace
      Src: /src/core/cf-agent/verify_users_pam.c:1298,1
    - Dst: ispunct
      Src: /src/core/cf-agent/verify_users_pam.c:1298,1
    - Dst: cf_pclose
      Src: /src/core/cf-agent/verify_users_pam.c:1307,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:1308,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - cmd
    - option
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1277
    functionDepth: 11
    functionLinenumber: 1277
    functionLinenumberEnd: 1311
    functionName: SupportsOption
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 1
    functionsReached:
    - cf_popen
    - strlen
    - strstr
    - ispunct
    - isspace
    - cf_pclose
    - xsnprintf
    - free
    - CfReadLine
    linkageType: ''
    returnType: bool
    signature: bool SupportsOption(const char *cmd, const char *option)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:1317,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1320,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_users_pam.c:1324,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1326,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1328,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1329,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1330,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1335,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1336,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1337,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1340,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1343,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1344,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1345,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_users_pam.c:1351,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1355,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1356,1
    - Dst: RvalScalarValue
      Src: /src/core/cf-agent/verify_users_pam.c:1356,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1359,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1360,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1363,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1365,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1366,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1367,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1369,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1371,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1372,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1373,1
    - Dst: SupportsOption
      Src: /src/core/cf-agent/verify_users_pam.c:1382,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1386,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1389,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1390,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1394,1
    - Dst: ExecuteUserCommand
      Src: /src/core/cf-agent/verify_users_pam.c:1399,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_users_pam.c:1409,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1410,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1411,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1412,1
    - Dst: ExecuteUserCommand
      Src: /src/core/cf-agent/verify_users_pam.c:1413,1
    - Dst: ChangePassword
      Src: /src/core/cf-agent/verify_users_pam.c:1421,1
    - Dst: SetAccountLocked
      Src: /src/core/cf-agent/verify_users_pam.c:1428,1
    - Dst: PromiseGetConstraint
      Src: /src/core/cf-agent/verify_users_pam.c:1436,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1439,1
    - Dst: VerifyMethod
      Src: /src/core/cf-agent/verify_users_pam.c:1442,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1445,1
    - Dst: ChangePassword
      Src: /src/core/cf-agent/verify_users_pam.c:1447,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 6
    argNames:
    - puser
    - u
    - action
    - ctx
    - a
    - pp
    argTypes:
    - char*
    - User*
    - enum cfopaction
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (u != NULL)
      pos:
        line_end: 1316
        line_start: 1316
        source_file: /src/core/cf-agent/verify_users_pam.c
    constantsTouched: []
    func_position:
      end: 1455
      start: 1314
    functionDepth: 18
    functionLinenumber: 1314
    functionLinenumberEnd: 1455
    functionName: DoCreateUserUsingUseradd
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - SupportsOption
    - ExecuteUserCommand
    - RvalScalarValue
    - PromiseGetConstraint
    - assert
    - ChangePassword
    - StringAppend
    - Log
    - strcmp
    - SetAccountLocked
    - strcpy
    - strlcpy
    - VerifyMethod
    linkageType: ''
    returnType: bool
    signature: "bool DoCreateUserUsingUseradd(const char *puser, const User *u, enum
      cfopaction action,\n                         EvalContext *ctx, const Attributes
      *a, const Promise *pp)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:1462,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/verify_users_pam.c:1465,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_users_pam.c:1469,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1471,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1472,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-agent/verify_users_pam.c:1474,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1476,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1477,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1478,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1483,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1484,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1485,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1488,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1491,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1492,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1493,1
    - Dst: strlcpy
      Src: /src/core/cf-agent/verify_users_pam.c:1499,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1503,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1504,1
    - Dst: RvalScalarValue
      Src: /src/core/cf-agent/verify_users_pam.c:1504,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1507,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1508,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1511,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1513,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1514,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1515,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1518,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1520,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1521,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1522,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1527,1
    - Dst: ExecuteUserCommand
      Src: /src/core/cf-agent/verify_users_pam.c:1532,1
    - Dst: ChangePassword
      Src: /src/core/cf-agent/verify_users_pam.c:1537,1
    - Dst: SetAccountLocked
      Src: /src/core/cf-agent/verify_users_pam.c:1544,1
    - Dst: PromiseGetConstraint
      Src: /src/core/cf-agent/verify_users_pam.c:1552,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1555,1
    - Dst: VerifyMethod
      Src: /src/core/cf-agent/verify_users_pam.c:1558,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1561,1
    - Dst: ChangePassword
      Src: /src/core/cf-agent/verify_users_pam.c:1563,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 6
    argNames:
    - puser
    - u
    - action
    - ctx
    - a
    - pp
    argTypes:
    - char*
    - User*
    - enum cfopaction
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (u != NULL)
      pos:
        line_end: 1461
        line_start: 1461
        source_file: /src/core/cf-agent/verify_users_pam.c
    constantsTouched: []
    func_position:
      end: 1571
      start: 1459
    functionDepth: 18
    functionLinenumber: 1459
    functionLinenumberEnd: 1571
    functionName: DoCreateUserUsingPw
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - ExecuteUserCommand
    - RvalScalarValue
    - PromiseGetConstraint
    - assert
    - ChangePassword
    - StringAppend
    - Log
    - strcmp
    - SetAccountLocked
    - NULL_OR_EMPTY
    - strcpy
    - strlcpy
    - VerifyMethod
    linkageType: ''
    returnType: bool
    signature: "bool DoCreateUserUsingPw(const char *puser, const User *u, enum cfopaction
      action,\n                         EvalContext *ctx, const Attributes *a, const
      Promise *pp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoCreateUserUsingUseradd
      Src: /src/core/cf-agent/verify_users_pam.c:1578,1
    - Dst: DoCreateUserUsingPw
      Src: /src/core/cf-agent/verify_users_pam.c:1580,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - puser
    - u
    - action
    - ctx
    - a
    - pp
    argTypes:
    - char*
    - User*
    - enum cfopaction
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1574
    functionDepth: 19
    functionLinenumber: 1574
    functionLinenumberEnd: 1586
    functionName: DoCreateUser
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - Log
    - DoCreateUserUsingPw
    - DoCreateUserUsingUseradd
    linkageType: ''
    returnType: bool
    signature: "bool DoCreateUser(const char *puser, const User *u, enum cfopaction
      action,\n                         EvalContext *ctx, const Attributes *a, const
      Promise *pp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_users_pam.c:1593,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1595,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1596,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1600,1
    - Dst: ExecuteUserCommand
      Src: /src/core/cf-agent/verify_users_pam.c:1604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - puser
    - action
    argTypes:
    - char*
    - enum cfopaction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1589
    functionDepth: 12
    functionLinenumber: 1589
    functionLinenumberEnd: 1605
    functionName: DoRemoveUserUsingPw
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - Log
    - StringAppend
    - strcpy
    - ExecuteUserCommand
    linkageType: ''
    returnType: bool
    signature: bool DoRemoveUserUsingPw (const char *puser, enum cfopaction action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_users_pam.c:1613,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1615,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1616,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1620,1
    - Dst: ExecuteUserCommand
      Src: /src/core/cf-agent/verify_users_pam.c:1624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - puser
    - action
    argTypes:
    - char*
    - enum cfopaction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1609
    functionDepth: 12
    functionLinenumber: 1609
    functionLinenumberEnd: 1625
    functionName: DoRemoveUserUsingUserdel
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - Log
    - StringAppend
    - strcpy
    - ExecuteUserCommand
    linkageType: ''
    returnType: bool
    signature: bool DoRemoveUserUsingUserdel (const char *puser, enum cfopaction action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DoRemoveUserUsingPw
      Src: /src/core/cf-agent/verify_users_pam.c:1631,1
    - Dst: DoRemoveUserUsingUserdel
      Src: /src/core/cf-agent/verify_users_pam.c:1633,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - puser
    - action
    argTypes:
    - char*
    - enum cfopaction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1628
    functionDepth: 13
    functionLinenumber: 1628
    functionLinenumberEnd: 1638
    functionName: DoRemoveUser
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - Log
    - DoRemoveUserUsingUserdel
    - DoRemoveUserUsingPw
    linkageType: ''
    returnType: bool
    signature: bool DoRemoveUser (const char *puser, enum cfopaction action)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:1642,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_users_pam.c:1646,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1647,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1648,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1649,1
    - Dst: strcpy
      Src: /src/core/cf-agent/verify_users_pam.c:1651,1
    - Dst: CFUSR_CHECKBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1654,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1656,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1657,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1658,1
    - Dst: CFUSR_CHECKBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1661,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1663,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1664,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1665,1
    - Dst: CFUSR_CHECKBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1668,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1670,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1671,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1672,1
    - Dst: CFUSR_CHECKBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1675,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1677,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1678,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1679,1
    - Dst: CFUSR_CHECKBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1682,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1684,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1685,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1686,1
    - Dst: CFUSR_CHECKBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1689,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1693,1
    - Dst: ChangePassword
      Src: /src/core/cf-agent/verify_users_pam.c:1698,1
    - Dst: CFUSR_CHECKBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1705,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1709,1
    - Dst: CFUSR_CHECKBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1716,1
    - Dst: GetPasswordHash
      Src: /src/core/cf-agent/verify_users_pam.c:1718,1
    - Dst: SetAccountLocked
      Src: /src/core/cf-agent/verify_users_pam.c:1730,1
    - Dst: CFUSR_CHECKBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1737,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1739,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/verify_users_pam.c:1740,1
    - Dst: StringSetToBuffer
      Src: /src/core/cf-agent/verify_users_pam.c:1741,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1742,1
    - Dst: BufferDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:1743,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1744,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1747,1
    - Dst: StringAppend
      Src: /src/core/cf-agent/verify_users_pam.c:1748,1
    - Dst: CFUSR_CLEARBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1751,1
    - Dst: CFUSR_CLEARBIT
      Src: /src/core/cf-agent/verify_users_pam.c:1752,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1755,1
    - Dst: ExecuteUserCommand
      Src: /src/core/cf-agent/verify_users_pam.c:1761,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 80
    argCount: 6
    argNames:
    - puser
    - u
    - passwd_info
    - changemap
    - action
    - groups_to_set
    argTypes:
    - char*
    - User*
    - struct passwd*
    - uint32_t
    - enum cfopaction
    - StringSet*
    assertStmts:
    - condition: (u != NULL)
      pos:
        line_end: 1641
        line_start: 1641
        source_file: /src/core/cf-agent/verify_users_pam.c
    constantsTouched: []
    func_position:
      end: 1767
      start: 1640
    functionDepth: 15
    functionLinenumber: 1640
    functionLinenumberEnd: 1767
    functionName: DoModifyUser
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - ExecuteUserCommand
    - StringSetToBuffer
    - BufferDestroy
    - assert
    - ChangePassword
    - StringAppend
    - GetPasswordHash
    - Log
    - SetAccountLocked
    - BufferNew
    - CFUSR_CHECKBIT
    - strcpy
    - CFUSR_CLEARBIT
    linkageType: ''
    returnType: bool
    signature: bool DoModifyUser (const char *puser, const User *u, const struct passwd
      *passwd_info, uint32_t changemap, enum cfopaction action, StringSet *groups_to_set)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/core/cf-agent/verify_users_pam.c:1783,1
    - Dst: pw_scan
      Src: /src/core/cf-agent/verify_users_pam.c:1795,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:1801,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - stream
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1770
    functionDepth: 2
    functionLinenumber: 1770
    functionLinenumberEnd: 1804
    functionName: fgetpwent
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - getline
    - free
    - pw_scan
    linkageType: ''
    returnType: struct passwd
    signature: struct passwd *fgetpwent(FILE *stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-agent/verify_users_pam.c:1811,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1814,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/verify_users_pam.c:1814,1
    - Dst: fgetpwent
      Src: /src/core/cf-agent/verify_users_pam.c:1820,1
    - Dst: strcmp
      Src: /src/core/cf-agent/verify_users_pam.c:1822,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:1828,1
    - Dst: fclose
      Src: /src/core/cf-agent/verify_users_pam.c:1832,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - puser
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1809
    functionDepth: 8
    functionLinenumber: 1809
    functionLinenumberEnd: 1846
    functionName: GetPwEntry
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - safe_fopen
    - Log
    - strcmp
    - fclose
    - free
    - fgetpwent
    linkageType: ''
    returnType: struct passwd
    signature: struct passwd *GetPwEntry(const char *puser)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/verify_users_pam.c:1851,1
    - Dst: GetPwEntry
      Src: /src/core/cf-agent/verify_users_pam.c:1853,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1856,1
    - Dst: StringSetNew
      Src: /src/core/cf-agent/verify_users_pam.c:1865,1
    - Dst: StringSetNew
      Src: /src/core/cf-agent/verify_users_pam.c:1866,1
    - Dst: StringSetNew
      Src: /src/core/cf-agent/verify_users_pam.c:1867,1
    - Dst: GetGroupInfo
      Src: /src/core/cf-agent/verify_users_pam.c:1868,1
    - Dst: VerifyIfUserNeedsModifs
      Src: /src/core/cf-agent/verify_users_pam.c:1872,1
    - Dst: DoModifyUser
      Src: /src/core/cf-agent/verify_users_pam.c:1874,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1877,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1882,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:1895,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:1896,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-agent/verify_users_pam.c:1897,1
    - Dst: DoCreateUser
      Src: /src/core/cf-agent/verify_users_pam.c:1901,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1904,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1909,1
    - Dst: DoRemoveUser
      Src: /src/core/cf-agent/verify_users_pam.c:1918,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1921,1
    - Dst: Log
      Src: /src/core/cf-agent/verify_users_pam.c:1926,1
    - Dst: free
      Src: /src/core/cf-agent/verify_users_pam.c:1936,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 7
    argNames:
    - puser
    - u
    - result
    - action
    - ctx
    - a
    - pp
    argTypes:
    - char*
    - User*
    - PromiseResult*
    - enum cfopaction
    - EvalContext*
    - Attributes*
    - Promise*
    assertStmts:
    - condition: (u != NULL)
      pos:
        line_end: 1850
        line_start: 1850
        source_file: /src/core/cf-agent/verify_users_pam.c
    constantsTouched: []
    func_position:
      end: 1938
      start: 1848
    functionDepth: 20
    functionLinenumber: 1848
    functionLinenumberEnd: 1938
    functionName: VerifyOneUsersPromise
    functionSourceFile: /src/core/cf-agent/verify_users_pam.c
    functionUses: 1
    functionsReached:
    - GetGroupInfo
    - assert
    - DoCreateUser
    - StringSetDestroy
    - VerifyIfUserNeedsModifs
    - Log
    - GetPwEntry
    - free
    - StringSetNew
    - DoRemoveUser
    - DoModifyUser
    linkageType: ''
    returnType: void
    signature: "void VerifyOneUsersPromise (const char *puser, const User *u, PromiseResult
      *result, enum cfopaction action,\n                            EvalContext *ctx,
      const Attributes *a, const Promise *pp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:59,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:60,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:61,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:62,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:63,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - wrapper
    argTypes:
    - PackageModuleWrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: DeletePackageModuleWrapper
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void DeletePackageModuleWrapper(PackageModuleWrapper *wrapper)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:70,1
    - Dst: xmalloc
      Src: /src/core/cf-agent/package_module.c:72,1
    - Dst: GetPackageModuleExecInfo
      Src: /src/core/cf-agent/package_module.c:74,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:77,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:82,1
    - Dst: DeletePackageModuleWrapper
      Src: /src/core/cf-agent/package_module.c:83,1
    - Dst: access
      Src: /src/core/cf-agent/package_module.c:95,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:97,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/package_module.c:100,1
    - Dst: DeletePackageModuleWrapper
      Src: /src/core/cf-agent/package_module.c:101,1
    - Dst: access
      Src: /src/core/cf-agent/package_module.c:104,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:106,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/package_module.c:109,1
    - Dst: DeletePackageModuleWrapper
      Src: /src/core/cf-agent/package_module.c:110,1
    - Dst: access
      Src: /src/core/cf-agent/package_module.c:114,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:117,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/package_module.c:119,1
    - Dst: DeletePackageModuleWrapper
      Src: /src/core/cf-agent/package_module.c:120,1
    - Dst: NegotiateSupportedAPIVersion
      Src: /src/core/cf-agent/package_module.c:125,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:128,1
    - Dst: DeletePackageModuleWrapper
      Src: /src/core/cf-agent/package_module.c:131,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - package_module
    argTypes:
    - PackageModuleBody*
    assertStmts:
    - condition: (package_module && package_module->name)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 140
      start: 68
    functionDepth: 8
    functionLinenumber: 68
    functionLinenumberEnd: 140
    functionName: NewPackageModuleWrapper
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - access
    - GetPackageModuleExecInfo
    - assert
    - SafeStringDuplicate
    - xmalloc
    - Log
    - NegotiateSupportedAPIVersion
    - DeletePackageModuleWrapper
    linkageType: ''
    returnType: PackageModuleWrapper
    signature: PackageModuleWrapper *NewPackageModuleWrapper(PackageModuleBody *package_module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringConcatenate
      Src: /src/core/cf-agent/package_module.c:150,1
    - Dst: StringConcatenate
      Src: /src/core/cf-agent/package_module.c:155,1
    - Dst: PipeReadWriteData
      Src: /src/core/cf-agent/package_module.c:160,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - wrapper
    - args
    - request
    - response
    argTypes:
    - PackageModuleWrapper*
    - char*
    - char*
    - Rlist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 142
    functionDepth: 11
    functionLinenumber: 142
    functionLinenumberEnd: 166
    functionName: PackageWrapperCommunicate
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - StringConcatenate
    - PipeReadWriteData
    - free
    linkageType: ''
    returnType: int
    signature: "int PackageWrapperCommunicate(const PackageModuleWrapper *wrapper,
      const char *args,\n                                     const char *request,
      Rlist **response)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:170,1
    - Dst: AcquireGlobalPackagePromiseLock
      Src: /src/core/cf-agent/package_module.c:173,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:177,1
    - Dst: GetDefaultInventoryFromContext
      Src: /src/core/cf-agent/package_module.c:182,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/package_module.c:186,1
    - Dst: GetPackageModuleFromContext
      Src: /src/core/cf-agent/package_module.c:188,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:191,1
    - Dst: NewPackageModuleWrapper
      Src: /src/core/cf-agent/package_module.c:196,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:200,1
    - Dst: UpdateSinglePackageModuleCache
      Src: /src/core/cf-agent/package_module.c:205,1
    - Dst: UpdateSinglePackageModuleCache
      Src: /src/core/cf-agent/package_module.c:207,1
    - Dst: DeletePackageModuleWrapper
      Src: /src/core/cf-agent/package_module.c:212,1
    - Dst: YieldGlobalPackagePromiseLock
      Src: /src/core/cf-agent/package_module.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - force_update
    argTypes:
    - EvalContext*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 168
    functionDepth: 9
    functionLinenumber: 168
    functionLinenumberEnd: 215
    functionName: UpdatePackagesCache
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 2
    functionsReached:
    - GetPackageModuleFromContext
    - AcquireGlobalPackagePromiseLock
    - GetDefaultInventoryFromContext
    - Log
    - RlistScalarValue
    - NewPackageModuleWrapper
    - DeletePackageModuleWrapper
    - UpdateSinglePackageModuleCache
    - YieldGlobalPackagePromiseLock
    linkageType: ''
    returnType: void
    signature: void UpdatePackagesCache(EvalContext *ctx, bool force_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AcquireLock
      Src: /src/core/cf-agent/package_module.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 12
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: AcquireGlobalPackagePromiseLock
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 3
    functionsReached:
    - AcquireLock
    linkageType: ''
    returnType: PackagePromiseGlobalLock
    signature: PackagePromiseGlobalLock AcquireGlobalPackagePromiseLock(EvalContext
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YieldCurrentLockAndRemoveFromCache
      Src: /src/core/cf-agent/package_module.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PackagePromiseGlobalLock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 10
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: YieldGlobalPackagePromiseLock
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 3
    functionsReached:
    - YieldCurrentLockAndRemoveFromCache
    linkageType: ''
    returnType: void
    signature: void YieldGlobalPackagePromiseLock(PackagePromiseGlobalLock lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/package_module.c:251,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:253,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:255,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:257,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:259,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 247
    functionDepth: 8
    functionLinenumber: 247
    functionLinenumberEnd: 267
    functionName: ParseAndLogErrorMessage
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - Log
    - StringStartsWith
    - RlistScalarValue
    linkageType: ''
    returnType: void
    signature: void ParseAndLogErrorMessage(const Rlist *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:273,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:274,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:275,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - package_info
    argTypes:
    - PackageInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: FreePackageInfo
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void FreePackageInfo(PackageInfo *package_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RlistIsNullList
      Src: /src/core/cf-agent/package_module.c:283,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:285,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/package_module.c:288,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/package_module.c:291,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/package_module.c:292,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/package_module.c:293,1
    - Dst: BufferAppendString
      Src: /src/core/cf-agent/package_module.c:294,1
    - Dst: BufferClose
      Src: /src/core/cf-agent/package_module.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - options
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 297
    functionName: ParseOptions
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - SafeStringDuplicate
    - BufferClose
    - RlistIsNullList
    - RlistScalarValue
    - BufferNew
    - BufferAppendString
    linkageType: ''
    returnType: char
    signature: char *ParseOptions(Rlist *options)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-agent/package_module.c:301,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/package_module.c:305,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:307,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:309,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:310,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:314,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:320,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:321,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:325,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:331,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:334,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:338,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:338,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:340,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:346,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:349,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:353,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:353,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:355,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:361,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:364,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:368,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:368,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:371,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:373,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:375,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:377,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:381,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 1
    argNames:
    - data
    argTypes:
    - Rlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 299
    functionDepth: 8
    functionLinenumber: 299
    functionLinenumberEnd: 387
    functionName: ParseAndCheckPackageDataReply
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - strlen
    - StringStartsWith
    - SafeStringDuplicate
    - Log
    - RlistScalarValue
    - free
    - StringEqual
    linkageType: ''
    returnType: PackageInfo
    signature: PackageInfo *ParseAndCheckPackageDataReply(const Rlist *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:391,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:393,1
    - Dst: PackageWrapperCommunicate
      Src: /src/core/cf-agent/package_module.c:398,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:401,1
    - Dst: RlistLen
      Src: /src/core/cf-agent/package_module.c:408,1
    - Dst: atoi
      Src: /src/core/cf-agent/package_module.c:410,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/package_module.c:410,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:411,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/package_module.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - wrapper
    argTypes:
    - PackageModuleWrapper*
    assertStmts:
    - condition: (wrapper)
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 416
      start: 389
    functionDepth: 12
    functionLinenumber: 389
    functionLinenumberEnd: 416
    functionName: NegotiateSupportedAPIVersion
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 1
    functionsReached:
    - assert
    - PackageWrapperCommunicate
    - Log
    - RlistDestroy
    - RlistScalarValue
    - atoi
    - RlistLen
    linkageType: ''
    returnType: int
    signature: int NegotiateSupportedAPIVersion(PackageModuleWrapper *wrapper)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:425,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:427,1
    - Dst: ParseOptions
      Src: /src/core/cf-agent/package_module.c:429,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:431,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:433,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:436,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:438,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:439,1
    - Dst: PackageWrapperCommunicate
      Src: /src/core/cf-agent/package_module.c:442,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:444,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:446,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:447,1
    - Dst: ParseAndCheckPackageDataReply
      Src: /src/core/cf-agent/package_module.c:455,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/package_module.c:456,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:464,1
    - Dst: FreePackageInfo
      Src: /src/core/cf-agent/package_module.c:465,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:470,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - name
    - version
    - architecture
    - options
    - wrapper
    argTypes:
    - char*
    - char*
    - char*
    - Rlist*
    - PackageModuleWrapper*
    assertStmts:
    - condition: (wrapper)
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 474
      start: 420
    functionDepth: 12
    functionLinenumber: 420
    functionLinenumberEnd: 474
    functionName: GetPackageData
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - ParseAndCheckPackageDataReply
    - assert
    - PackageWrapperCommunicate
    - FreePackageInfo
    - StringFormat
    - Log
    - free
    - RlistDestroy
    - ParseOptions
    linkageType: ''
    returnType: PackageInfo
    signature: "PackageInfo *GetPackageData(const char *name, const char *version,\n
      \                           const char *architecture, Rlist *options,\n                            const
      PackageModuleWrapper *wrapper)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:481,1
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:482,1
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:483,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:487,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/package_module.c:489,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:493,1
    - Dst: GetWorkDir
      Src: /src/core/cf-agent/package_module.c:493,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:498,1
    - Dst: Path_GetQuoted
      Src: /src/core/cf-agent/package_module.c:501,1
    - Dst: strchr
      Src: /src/core/cf-agent/package_module.c:503,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/package_module.c:506,1
    - Dst: ArgGetExecutableAndArgs
      Src: /src/core/cf-agent/package_module.c:513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - package_module
    - exec_path
    - script_path
    - script_path_quoted
    - script_exec_opts
    argTypes:
    - PackageModuleBody*
    - char**
    - char**
    - char**
    - char**
    assertStmts:
    - condition: (exec_path != NULL)
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/core/cf-agent/package_module.c
    - condition: (script_path_quoted != NULL)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/core/cf-agent/package_module.c
    - condition: (script_path != NULL)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 523
      start: 476
    functionDepth: 4
    functionLinenumber: 476
    functionLinenumberEnd: 523
    functionName: GetPackageModuleExecInfo
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 1
    functionsReached:
    - assert
    - ArgGetExecutableAndArgs
    - Path_GetQuoted
    - strchr
    - StringFormat
    - xstrdup
    - GetWorkDir
    - StringEqual
    linkageType: ''
    returnType: void
    signature: "void GetPackageModuleExecInfo(const PackageModuleBody *package_module,
      char **exec_path,\n                                     char **script_path,
      char **script_path_quoted,\n                                     char **script_exec_opts)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:533,1
    - Dst: UpdateSinglePackageModuleCache
      Src: /src/core/cf-agent/package_module.c:541,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:544,1
    - Dst: OpenSubDB
      Src: /src/core/cf-agent/package_module.c:549,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:552,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:559,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:563,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:567,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:571,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:577,1
    - Dst: ReadDB
      Src: /src/core/cf-agent/package_module.c:579,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:588,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:594,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/package_module.c:597,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - module_wrapper
    - name
    - ver
    - arch
    argTypes:
    - EvalContext*
    - PackageModuleWrapper*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 525
    functionDepth: 10
    functionLinenumber: 525
    functionLinenumberEnd: 600
    functionName: IsPackageInCache
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - OpenSubDB
    - Log
    - StringFormat
    - ReadDB
    - CloseDB
    - UpdateSinglePackageModuleCache
    - StringEqual
    linkageType: ''
    returnType: int
    signature: "int IsPackageInCache(EvalContext *ctx,\n                            const
      PackageModuleWrapper *module_wrapper,\n                            const char
      *name, const char *ver, const char *arch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:606,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:606,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:607,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/package_module.c:609,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/package_module.c:613,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/package_module.c:614,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/package_module.c:616,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/package_module.c:617,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/package_module.c:619,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/package_module.c:620,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/package_module.c:622,1
    - Dst: HasKeyDB
      Src: /src/core/cf-agent/package_module.c:624,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:624,1
    - Dst: ValueSizeDB
      Src: /src/core/cf-agent/package_module.c:628,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:628,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:629,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:629,1
    - Dst: ReadDB
      Src: /src/core/cf-agent/package_module.c:631,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/package_module.c:632,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:634,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/package_module.c:638,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:638,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:643,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:643,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/package_module.c:644,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/package_module.c:645,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - db_installed
    - name
    - ver
    - arch
    - type
    argTypes:
    - CF_DB*
    - char*
    - char*
    - char*
    - UpdateType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 602
    functionDepth: 8
    functionLinenumber: 602
    functionLinenumberEnd: 647
    functionName: WritePackageDataToDB
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - strlen
    - HasKeyDB
    - ReadDB
    - xsnprintf
    - Log
    - WriteDB
    - ValueSizeDB
    linkageType: ''
    returnType: void
    signature: "void WritePackageDataToDB(CF_DB *db_installed,\n        const char
      *name, const char *ver, const char *arch,\n        UpdateType type)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:651,1
    - Dst: OpenSubDB
      Src: /src/core/cf-agent/package_module.c:658,1
    - Dst: CleanDB
      Src: /src/core/cf-agent/package_module.c:660,1
    - Dst: StringWriter
      Src: /src/core/cf-agent/package_module.c:662,1
    - Dst: CsvWriterOpen
      Src: /src/core/cf-agent/package_module.c:663,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-agent/package_module.c:669,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:671,1
    - Dst: WritePackageDataToDB
      Src: /src/core/cf-agent/package_module.c:677,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/package_module.c:681,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/package_module.c:682,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/package_module.c:683,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/cf-agent/package_module.c:684,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:689,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:698,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:701,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:703,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:705,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:707,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:709,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:711,1
    - Dst: StringStartsWith
      Src: /src/core/cf-agent/package_module.c:714,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:716,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:721,1
    - Dst: WritePackageDataToDB
      Src: /src/core/cf-agent/package_module.c:729,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/package_module.c:732,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/package_module.c:733,1
    - Dst: CsvWriterField
      Src: /src/core/cf-agent/package_module.c:734,1
    - Dst: CsvWriterNewRecord
      Src: /src/core/cf-agent/package_module.c:735,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:739,1
    - Dst: CsvWriterClose
      Src: /src/core/cf-agent/package_module.c:747,1
    - Dst: StringWriterClose
      Src: /src/core/cf-agent/package_module.c:748,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:751,1
    - Dst: StringReplace
      Src: /src/core/cf-agent/package_module.c:753,1
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:754,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/package_module.c:759,1
    - Dst: WriteDB
      Src: /src/core/cf-agent/package_module.c:763,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:764,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:765,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/package_module.c:768,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 3
    argNames:
    - data
    - pm_name
    - type
    argTypes:
    - Rlist*
    - char*
    - UpdateType
    assertStmts:
    - condition: (num_repl >= 0)
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/core/cf-agent/package_module.c
    - condition: (pm_name)
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 773
      start: 649
    functionDepth: 10
    functionLinenumber: 649
    functionLinenumberEnd: 773
    functionName: UpdatePackagesDB
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - strlen
    - StringStartsWith
    - assert
    - CsvWriterClose
    - StringWriter
    - StringReplace
    - CsvWriterOpen
    - OpenSubDB
    - WritePackageDataToDB
    - Log
    - CsvWriterField
    - WriteDB
    - RlistScalarValue
    - StringWriterClose
    - free
    - CloseDB
    - CsvWriterNewRecord
    - CleanDB
    linkageType: ''
    returnType: int
    signature: int UpdatePackagesDB(Rlist *data, const char *pm_name, UpdateType type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:779,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:781,1
    - Dst: ParseOptions
      Src: /src/core/cf-agent/package_module.c:783,1
    - Dst: PackageWrapperCommunicate
      Src: /src/core/cf-agent/package_module.c:800,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:802,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:804,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:810,1
    - Dst: UpdatePackagesDB
      Src: /src/core/cf-agent/package_module.c:817,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:819,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/package_module.c:823,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:824,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - options
    - wrapper
    - type
    argTypes:
    - Rlist*
    - PackageModuleWrapper*
    - UpdateType
    assertStmts:
    - condition: (wrapper)
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 826
      start: 776
    functionDepth: 12
    functionLinenumber: 776
    functionLinenumberEnd: 826
    functionName: UpdateCache
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - assert
    - PackageWrapperCommunicate
    - UpdatePackagesDB
    - Log
    - RlistDestroy
    - free
    - ParseOptions
    linkageType: ''
    returnType: bool
    signature: "bool UpdateCache(Rlist* options, const PackageModuleWrapper *wrapper,\n
      \                UpdateType type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:834,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:836,1
    - Dst: UpdateCache
      Src: /src/core/cf-agent/package_module.c:838,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:841,1
    - Dst: UpdateCache
      Src: /src/core/cf-agent/package_module.c:846,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:849,1
    - Dst: IsPackageInCache
      Src: /src/core/cf-agent/package_module.c:854,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - policy_data
    - wrapper
    - package_info
    - action_type
    argTypes:
    - NewPackages*
    - PackageModuleWrapper*
    - PackageInfo*
    - NewPackageAction
    assertStmts:
    - condition: (package_info && package_info->name)
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 873
      start: 829
    functionDepth: 13
    functionLinenumber: 829
    functionLinenumberEnd: 873
    functionName: ValidateChangedPackage
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - assert
    - Log
    - IsPackageInCache
    - UpdateCache
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult ValidateChangedPackage(const NewPackages *policy_data,\n
      \                                    const PackageModuleWrapper *wrapper,\n
      \                                    const PackageInfo *package_info,\n                                     NewPackageAction
      action_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:879,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:881,1
    - Dst: ParseOptions
      Src: /src/core/cf-agent/package_module.c:883,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:885,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:887,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:888,1
    - Dst: PackageWrapperCommunicate
      Src: /src/core/cf-agent/package_module.c:894,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:896,1
    - Dst: ParseAndLogErrorMessage
      Src: /src/core/cf-agent/package_module.c:902,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/package_module.c:904,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:907,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:908,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:909,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:910,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - name
    - options
    - version
    - architecture
    - wrapper
    argTypes:
    - char*
    - Rlist*
    - char*
    - char*
    - PackageModuleWrapper*
    assertStmts:
    - condition: (wrapper)
      pos:
        line_end: 878
        line_start: 878
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 914
      start: 875
    functionDepth: 12
    functionLinenumber: 875
    functionLinenumberEnd: 914
    functionName: RemovePackage
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - ParseAndLogErrorMessage
    - assert
    - PackageWrapperCommunicate
    - StringFormat
    - Log
    - RlistDestroy
    - free
    - ParseOptions
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult RemovePackage(const char *name, Rlist* options,\n                            const
      char *version, const char *architecture,\n                            const
      PackageModuleWrapper *wrapper)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:921,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:923,1
    - Dst: ParseOptions
      Src: /src/core/cf-agent/package_module.c:928,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:929,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/package_module.c:945,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:948,1
    - Dst: PackageWrapperCommunicate
      Src: /src/core/cf-agent/package_module.c:953,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:955,1
    - Dst: ParseAndLogErrorMessage
      Src: /src/core/cf-agent/package_module.c:961,1
    - Dst: RlistDestroy
      Src: /src/core/cf-agent/package_module.c:963,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:966,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:967,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - options
    - type
    - packages_list_formatted
    - wrapper
    argTypes:
    - Rlist*
    - PackageType
    - char*
    - PackageModuleWrapper*
    assertStmts:
    - condition: (wrapper)
      pos:
        line_end: 920
        line_start: 920
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 970
      start: 917
    functionDepth: 12
    functionLinenumber: 917
    functionLinenumberEnd: 970
    functionName: InstallPackageGeneric
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - ParseAndLogErrorMessage
    - assert
    - PackageWrapperCommunicate
    - StringFormat
    - Log
    - RlistDestroy
    - ProgrammingError
    - free
    - ParseOptions
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult InstallPackageGeneric(Rlist *options,\n        PackageType
      type, const char *packages_list_formatted,\n        const PackageModuleWrapper
      *wrapper)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:977,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:980,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:982,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:989,1
    - Dst: StringFormat
      Src: /src/core/cf-agent/package_module.c:996,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/package_module.c:1004,1
    - Dst: InstallPackageGeneric
      Src: /src/core/cf-agent/package_module.c:1007,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:1009,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:1010,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:1011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - options
    - type
    - package_to_install
    - version
    - architecture
    - wrapper
    argTypes:
    - Rlist*
    - PackageType
    - char*
    - char*
    - char*
    - PackageModuleWrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 972
    functionDepth: 13
    functionLinenumber: 972
    functionLinenumberEnd: 1014
    functionName: InstallPackage
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - StringFormat
    - Log
    - ProgrammingError
    - free
    - InstallPackageGeneric
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult InstallPackage(Rlist *options,\n                                    PackageType
      type, const char *package_to_install,\n                                    const
      char *version, const char *architecture,\n                                    const
      PackageModuleWrapper *wrapper)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1024,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1028,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1033,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/package_module.c:1034,1
    - Dst: RecordPkgOperationInChroot
      Src: /src/core/cf-agent/package_module.c:1036,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/package_module.c:1042,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/package_module.c:1044,1
    - Dst: RecordPkgOperationInChroot
      Src: /src/core/cf-agent/package_module.c:1047,1
    - Dst: InstallPackage
      Src: /src/core/cf-agent/package_module.c:1050,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1055,1
    - Dst: ValidateChangedPackage
      Src: /src/core/cf-agent/package_module.c:1056,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 7
    argNames:
    - ctx
    - pp
    - attr
    - package_file_path
    - info
    - wrapper
    - is_in_cache
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - char*
    - PackageInfo*
    - PackageModuleWrapper*
    - int
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 1023
        line_start: 1023
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 1061
      start: 1016
    functionDepth: 14
    functionLinenumber: 1016
    functionLinenumberEnd: 1061
    functionName: FileInstallPackage
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - ChrootChanges
    - InstallPackage
    - assert
    - ValidateChangedPackage
    - RecordPkgOperationInChroot
    - Log
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult FileInstallPackage(EvalContext *ctx,\n                                        const
      Promise *pp,\n                                        const Attributes *attr,\n
      \                                       const char *package_file_path,\n                                        const
      PackageInfo *info,\n                                        const PackageModuleWrapper
      *wrapper,\n                                        int is_in_cache)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1067,1
    - Dst: UpdateSinglePackageModuleCache
      Src: /src/core/cf-agent/package_module.c:1074,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1077,1
    - Dst: OpenSubDB
      Src: /src/core/cf-agent/package_module.c:1080,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:1082,1
    - Dst: xsnprintf
      Src: /src/core/cf-agent/package_module.c:1084,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1087,1
    - Dst: HasKeyDB
      Src: /src/core/cf-agent/package_module.c:1089,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1091,1
    - Dst: SeqNew
      Src: /src/core/cf-agent/package_module.c:1093,1
    - Dst: ValueSizeDB
      Src: /src/core/cf-agent/package_module.c:1095,1
    - Dst: ReadDB
      Src: /src/core/cf-agent/package_module.c:1099,1
    - Dst: SeqStringFromString
      Src: /src/core/cf-agent/package_module.c:1100,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/package_module.c:1102,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/package_module.c:1104,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1105,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:1108,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:1109,1
    - Dst: sscanf
      Src: /src/core/cf-agent/package_module.c:1111,1
    - Dst: xcalloc
      Src: /src/core/cf-agent/package_module.c:1113,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:1115,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:1116,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:1117,1
    - Dst: SeqAppend
      Src: /src/core/cf-agent/package_module.c:1118,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1123,1
    - Dst: CloseDB
      Src: /src/core/cf-agent/package_module.c:1129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - info
    - module_wrapper
    argTypes:
    - EvalContext*
    - PackageInfo*
    - PackageModuleWrapper*
    assertStmts:
    - condition: (info && info->name)
      pos:
        line_end: 1066
        line_start: 1066
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 1132
      start: 1064
    functionDepth: 10
    functionLinenumber: 1064
    functionLinenumberEnd: 1132
    functionName: GetVersionsFromUpdates
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - strlen
    - assert
    - SafeStringDuplicate
    - SeqAppend
    - SeqNew
    - sscanf
    - OpenSubDB
    - Log
    - xsnprintf
    - ReadDB
    - HasKeyDB
    - SeqLength
    - SeqStringFromString
    - CloseDB
    - UpdateSinglePackageModuleCache
    - ValueSizeDB
    - SeqAt
    linkageType: ''
    returnType: Seq
    signature: "Seq *GetVersionsFromUpdates(EvalContext *ctx, const PackageInfo *info,\n
      \                                  const PackageModuleWrapper *module_wrapper)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1142,1
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1143,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1147,1
    - Dst: UpdateSinglePackageModuleCache
      Src: /src/core/cf-agent/package_module.c:1154,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1157,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:1161,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1163,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/package_module.c:1167,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/package_module.c:1169,1
    - Dst: RecordPkgOperationInChroot
      Src: /src/core/cf-agent/package_module.c:1172,1
    - Dst: InstallPackage
      Src: /src/core/cf-agent/package_module.c:1177,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:1188,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/package_module.c:1191,1
    - Dst: RecordPkgOperationInChroot
      Src: /src/core/cf-agent/package_module.c:1193,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1196,1
    - Dst: GetVersionsFromUpdates
      Src: /src/core/cf-agent/package_module.c:1205,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/package_module.c:1208,1
    - Dst: RecordPkgOperationInChroot
      Src: /src/core/cf-agent/package_module.c:1210,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1213,1
    - Dst: BufferNew
      Src: /src/core/cf-agent/package_module.c:1221,1
    - Dst: SeqNew
      Src: /src/core/cf-agent/package_module.c:1222,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/package_module.c:1225,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/package_module.c:1228,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:1234,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1236,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1246,1
    - Dst: IsPackageInCache
      Src: /src/core/cf-agent/package_module.c:1253,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/package_module.c:1257,1
    - Dst: RecordPkgOperationInChroot
      Src: /src/core/cf-agent/package_module.c:1259,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1262,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/package_module.c:1265,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1270,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/package_module.c:1273,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/package_module.c:1279,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/package_module.c:1282,1
    - Dst: RecordPkgOperationInChroot
      Src: /src/core/cf-agent/package_module.c:1284,1
    - Dst: BufferAppendF
      Src: /src/core/cf-agent/package_module.c:1295,1
    - Dst: SeqAppend
      Src: /src/core/cf-agent/package_module.c:1306,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/package_module.c:1311,1
    - Dst: BufferClose
      Src: /src/core/cf-agent/package_module.c:1317,1
    - Dst: strlen
      Src: /src/core/cf-agent/package_module.c:1322,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1324,1
    - Dst: InstallPackageGeneric
      Src: /src/core/cf-agent/package_module.c:1327,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/package_module.c:1331,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/package_module.c:1333,1
    - Dst: ValidateChangedPackage
      Src: /src/core/cf-agent/package_module.c:1335,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1338,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/package_module.c:1342,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:1346,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/package_module.c:1349,1
    - Dst: SeqDestroy
      Src: /src/core/cf-agent/package_module.c:1350,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 7
    argNames:
    - ctx
    - pp
    - attr
    - package_info
    - wrapper
    - is_in_cache
    - verified
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - PackageInfo*
    - PackageModuleWrapper*
    - int
    - bool*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 1141
        line_start: 1141
        source_file: /src/core/cf-agent/package_module.c
    - condition: (package_info != NULL)
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 1352
      start: 1134
    functionDepth: 14
    functionLinenumber: 1134
    functionLinenumberEnd: 1352
    functionName: RepoInstall
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - ValidateChangedPackage
    - BufferClose
    - Log
    - BufferNew
    - SeqLength
    - free
    - InstallPackageGeneric
    - StringEqual
    - SeqAppend
    - SeqDestroy
    - InstallPackage
    - strlen
    - IsPackageInCache
    - SeqAt
    - GetVersionsFromUpdates
    - BufferAppendF
    - assert
    - SeqNew
    - UpdateSinglePackageModuleCache
    - ChrootChanges
    - RecordPkgOperationInChroot
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult RepoInstall(EvalContext *ctx,\n                                 const
      Promise *pp,\n                                 const Attributes *attr,\n                                 const
      PackageInfo *package_info,\n                                 const PackageModuleWrapper
      *wrapper,\n                                 int is_in_cache,\n                                 bool
      *verified)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1361,1
    - Dst: RepoInstall
      Src: /src/core/cf-agent/package_module.c:1366,1
    - Dst: ValidateChangedPackage
      Src: /src/core/cf-agent/package_module.c:1371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - pp
    - attr
    - package_info
    - wrapper
    - is_in_cache
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - PackageInfo*
    - PackageModuleWrapper*
    - int
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 1360
        line_start: 1360
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 1375
      start: 1354
    functionDepth: 15
    functionLinenumber: 1354
    functionLinenumberEnd: 1375
    functionName: RepoInstallPackage
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - RepoInstall
    - assert
    - ValidateChangedPackage
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult RepoInstallPackage(EvalContext *ctx,\n                                        const
      Promise *pp,\n                                        const Attributes *attr,\n
      \                                       const PackageInfo *package_info,\n                                        const
      PackageModuleWrapper *wrapper,\n                                        int
      is_in_cache)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:1381,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1383,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:1390,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1392,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:1399,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1402,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - packages_policy
    - info
    argTypes:
    - NewPackages*
    - PackageInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1377
    functionDepth: 8
    functionLinenumber: 1377
    functionLinenumberEnd: 1409
    functionName: CheckPolicyAndPackageInfoMatch
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 0
    functionsReached:
    - Log
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: "bool CheckPolicyAndPackageInfoMatch(const NewPackages *packages_policy,\n
      \                                          const PackageInfo *info)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1416,1
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1417,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1422,1
    - Dst: GetPackageData
      Src: /src/core/cf-agent/package_module.c:1425,1
    - Dst: CheckPolicyAndPackageInfoMatch
      Src: /src/core/cf-agent/package_module.c:1438,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1440,1
    - Dst: FreePackageInfo
      Src: /src/core/cf-agent/package_module.c:1441,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1451,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:1453,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1458,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:1460,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:1471,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-agent/package_module.c:1476,1
    - Dst: IsPackageInCache
      Src: /src/core/cf-agent/package_module.c:1480,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1487,1
    - Dst: FileInstallPackage
      Src: /src/core/cf-agent/package_module.c:1495,1
    - Dst: RepoInstallPackage
      Src: /src/core/cf-agent/package_module.c:1499,1
    - Dst: ProgrammingError
      Src: /src/core/cf-agent/package_module.c:1506,1
    - Dst: FreePackageInfo
      Src: /src/core/cf-agent/package_module.c:1509,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1513,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1518,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 4
    argNames:
    - ctx
    - pp
    - attr
    - wrapper
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - PackageModuleWrapper*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 1416
        line_start: 1416
        source_file: /src/core/cf-agent/package_module.c
    - condition: (pp != NULL)
      pos:
        line_end: 1415
        line_start: 1415
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 1520
      start: 1411
    functionDepth: 16
    functionLinenumber: 1411
    functionLinenumberEnd: 1520
    functionName: HandlePresentPromiseAction
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 1
    functionsReached:
    - CheckPolicyAndPackageInfoMatch
    - assert
    - SafeStringDuplicate
    - FileInstallPackage
    - GetPackageData
    - FreePackageInfo
    - Log
    - ProgrammingError
    - free
    - RepoInstallPackage
    - IsPackageInCache
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult HandlePresentPromiseAction(EvalContext *ctx,\n                                         const
      Promise *pp,\n                                         const Attributes *attr,\n
      \                                        const PackageModuleWrapper *wrapper)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1528,1
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1529,1
    - Dst: StringEqual
      Src: /src/core/cf-agent/package_module.c:1536,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1538,1
    - Dst: IsPackageInCache
      Src: /src/core/cf-agent/package_module.c:1544,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/package_module.c:1551,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/package_module.c:1553,1
    - Dst: RecordPkgOperationInChroot
      Src: /src/core/cf-agent/package_module.c:1556,1
    - Dst: RemovePackage
      Src: /src/core/cf-agent/package_module.c:1561,1
    - Dst: ValidateChangedPackage
      Src: /src/core/cf-agent/package_module.c:1577,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1586,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1593,1
    - Dst: ChrootChanges
      Src: /src/core/cf-agent/package_module.c:1595,1
    - Dst: RecordPkgOperationInChroot
      Src: /src/core/cf-agent/package_module.c:1597,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - ctx
    - pp
    - attr
    - wrapper
    argTypes:
    - EvalContext*
    - Promise*
    - Attributes*
    - PackageModuleWrapper*
    assertStmts:
    - condition: (pp != NULL)
      pos:
        line_end: 1527
        line_start: 1527
        source_file: /src/core/cf-agent/package_module.c
    - condition: (attr != NULL)
      pos:
        line_end: 1528
        line_start: 1528
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 1602
      start: 1523
    functionDepth: 14
    functionLinenumber: 1523
    functionLinenumberEnd: 1602
    functionName: HandleAbsentPromiseAction
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 1
    functionsReached:
    - ChrootChanges
    - StringEqual
    - assert
    - ValidateChangedPackage
    - RecordPkgOperationInChroot
    - Log
    - RemovePackage
    - IsPackageInCache
    - MakingChanges
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult HandleAbsentPromiseAction(EvalContext *ctx,\n                                        const
      Promise *pp,\n                                        const Attributes *attr,\n
      \                                       const PackageModuleWrapper *wrapper)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/package_module.c:1611,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1613,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1622,1
    - Dst: snprintf
      Src: /src/core/cf-agent/package_module.c:1647,1
    - Dst: snprintf
      Src: /src/core/cf-agent/package_module.c:1654,1
    - Dst: DBIdToSubPath
      Src: /src/core/cf-agent/package_module.c:1659,1
    - Dst: stat
      Src: /src/core/cf-agent/package_module.c:1663,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1668,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/package_module.c:1684,1
    - Dst: free
      Src: /src/core/cf-agent/package_module.c:1687,1
    - Dst: UpdateCache
      Src: /src/core/cf-agent/package_module.c:1695,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1697,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/package_module.c:1703,1
    - Dst: Log
      Src: /src/core/cf-agent/package_module.c:1708,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - ctx
    - module_wrapper
    - type
    - force_update
    argTypes:
    - EvalContext*
    - PackageModuleWrapper*
    - UpdateType
    - bool
    assertStmts:
    - condition: (module_wrapper->package_module->name)
      pos:
        line_end: 1610
        line_start: 1610
        source_file: /src/core/cf-agent/package_module.c
    constantsTouched: []
    func_position:
      end: 1713
      start: 1607
    functionDepth: 13
    functionLinenumber: 1607
    functionLinenumberEnd: 1713
    functionName: UpdateSinglePackageModuleCache
    functionSourceFile: /src/core/cf-agent/package_module.c
    functionUses: 4
    functionsReached:
    - stat
    - DBIdToSubPath
    - snprintf
    - assert
    - YieldCurrentLock
    - AcquireLock
    - Log
    - free
    - UpdateCache
    linkageType: ''
    returnType: bool
    signature: "bool UpdateSinglePackageModuleCache(EvalContext *ctx,\n                                    const
      PackageModuleWrapper *module_wrapper,\n                                    UpdateType
      type, bool force_update)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:154,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:160,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editxml.c:163,1
    - Dst: EvalContextVariablePutSpecial
      Src: /src/core/cf-agent/files_editxml.c:170,1
    - Dst: BundleGetSection
      Src: /src/core/cf-agent/files_editxml.c:176,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/cf-agent/files_editxml.c:182,1
    - Dst: SeqLength
      Src: /src/core/cf-agent/files_editxml.c:183,1
    - Dst: SeqAt
      Src: /src/core/cf-agent/files_editxml.c:185,1
    - Dst: ExpandPromise
      Src: /src/core/cf-agent/files_editxml.c:187,1
    - Dst: BundleAbort
      Src: /src/core/cf-agent/files_editxml.c:189,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:191,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/files_editxml.c:192,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-agent/files_editxml.c:196,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:200,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - ctx
    - bp
    - a
    - parentp
    - edcontext
    argTypes:
    - EvalContext*
    - Bundle*
    - Attributes*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 202
      start: 152
    functionDepth: 15
    functionLinenumber: 152
    functionLinenumberEnd: 202
    functionName: ScheduleEditXmlOperations
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - ExpandPromise
    - snprintf
    - BundleAbort
    - EvalContextStackPopFrame
    - assert
    - YieldCurrentLock
    - AcquireLock
    - BundleGetSection
    - EvalContextStackPushBundleSectionFrame
    - EvalContextVariablePutSpecial
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: bool ScheduleEditXmlOperations(EvalContext *ctx, const Bundle *bp,
      const Attributes *a, const Promise *parentp, EditContext *edcontext)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PromiseBanner
      Src: /src/core/cf-agent/files_editxml.c:211,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:213,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:213,1
    - Dst: VerifyClassPromise
      Src: /src/core/cf-agent/files_editxml.c:215,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:217,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:217,1
    - Dst: GetInsertionAttributes
      Src: /src/core/cf-agent/files_editxml.c:219,1
    - Dst: VerifyXPathBuild
      Src: /src/core/cf-agent/files_editxml.c:223,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:227,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:231,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:235,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:239,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:245,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:249,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:249,1
    - Dst: GetDeletionAttributes
      Src: /src/core/cf-agent/files_editxml.c:251,1
    - Dst: VerifyTreeDeletions
      Src: /src/core/cf-agent/files_editxml.c:254,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:257,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:261,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:261,1
    - Dst: GetInsertionAttributes
      Src: /src/core/cf-agent/files_editxml.c:263,1
    - Dst: VerifyTreeInsertions
      Src: /src/core/cf-agent/files_editxml.c:266,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:269,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:273,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:273,1
    - Dst: GetDeletionAttributes
      Src: /src/core/cf-agent/files_editxml.c:275,1
    - Dst: VerifyAttributeDeletions
      Src: /src/core/cf-agent/files_editxml.c:278,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:281,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:285,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:285,1
    - Dst: GetInsertionAttributes
      Src: /src/core/cf-agent/files_editxml.c:287,1
    - Dst: VerifyAttributeSet
      Src: /src/core/cf-agent/files_editxml.c:290,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:293,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:297,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:297,1
    - Dst: GetDeletionAttributes
      Src: /src/core/cf-agent/files_editxml.c:299,1
    - Dst: VerifyTextDeletions
      Src: /src/core/cf-agent/files_editxml.c:302,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:305,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:309,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:309,1
    - Dst: GetInsertionAttributes
      Src: /src/core/cf-agent/files_editxml.c:311,1
    - Dst: VerifyTextSet
      Src: /src/core/cf-agent/files_editxml.c:314,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:317,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:321,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:321,1
    - Dst: GetInsertionAttributes
      Src: /src/core/cf-agent/files_editxml.c:323,1
    - Dst: VerifyTextInsertions
      Src: /src/core/cf-agent/files_editxml.c:326,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:329,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:333,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:333,1
    - Dst: VerifyReportPromise
      Src: /src/core/cf-agent/files_editxml.c:335,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 3
    argNames:
    - ctx
    - pp
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - ARG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 208
    functionDepth: 14
    functionLinenumber: 208
    functionLinenumberEnd: 339
    functionName: KeepEditXmlPromise
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 0
    functionsReached:
    - VerifyReportPromise
    - PromiseBanner
    - VerifyTreeInsertions
    - PromiseGetPromiseType
    - VerifyTextInsertions
    - GetInsertionAttributes
    - VerifyClassPromise
    - GetDeletionAttributes
    - VerifyAttributeDeletions
    - cfPS
    - VerifyTreeDeletions
    - VerifyTextSet
    - strcmp
    - VerifyAttributeSet
    - VerifyTextDeletions
    - VerifyXPathBuild
    linkageType: ''
    returnType: PromiseResult
    signature: "PromiseResult KeepEditXmlPromise(EvalContext *ctx, const Promise *pp,\n
      \                                       ARG_UNUSED void *param)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:349,1
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:350,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:358,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:361,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:362,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:364,1
    - Dst: SanityCheckXPathBuild
      Src: /src/core/cf-agent/files_editxml.c:368,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:370,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:372,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:378,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:379,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:383,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editxml.c:384,1
    - Dst: xmlDocGetRootElement
      Src: /src/core/cf-agent/files_editxml.c:392,1
    - Dst: BuildXPathInFile
      Src: /src/core/cf-agent/files_editxml.c:394,1
    - Dst: BuildXPathInNode
      Src: /src/core/cf-agent/files_editxml.c:400,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - attr
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/core/cf-agent/files_editxml.c
    - condition: (pp != NULL)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 407
      start: 347
    functionDepth: 12
    functionLinenumber: 347
    functionLinenumberEnd: 407
    functionName: VerifyXPathBuild
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - BuildXPathInNode
    - snprintf
    - assert
    - xmlDocGetRootElement
    - YieldCurrentLock
    - RecordFailure
    - AcquireLock
    - Log
    - SanityCheckXPathBuild
    - BuildXPathInFile
    - PromiseResultUpdate
    linkageType: ''
    returnType: bool
    signature: bool VerifyXPathBuild(EvalContext *ctx, const Attributes *attr, const
      Promise *pp, EditContext *edcontext, PromiseResult *result)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:413,1
    - Dst: SanityCheckTreeDeletions
      Src: /src/core/cf-agent/files_editxml.c:422,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:424,1
    - Dst: VerifyXPathBuild
      Src: /src/core/cf-agent/files_editxml.c:430,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:437,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:438,1
    - Dst: XmlSelectNode
      Src: /src/core/cf-agent/files_editxml.c:442,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:444,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:447,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:451,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editxml.c:452,1
    - Dst: DeleteTreeInNode
      Src: /src/core/cf-agent/files_editxml.c:459,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:467,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:471,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:475,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:479,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:484,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - ctx
    - attr
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 487
      start: 411
    functionDepth: 13
    functionLinenumber: 411
    functionLinenumberEnd: 487
    functionName: VerifyTreeDeletions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - snprintf
    - assert
    - YieldCurrentLock
    - cfPS
    - SanityCheckTreeDeletions
    - AcquireLock
    - XmlSelectNode
    - DeleteTreeInNode
    - PromiseResultUpdate
    - VerifyXPathBuild
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyTreeDeletions(EvalContext *ctx, const Attributes
      *attr, const Promise *pp, EditContext *edcontext)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:493,1
    - Dst: SanityCheckTreeInsertions
      Src: /src/core/cf-agent/files_editxml.c:503,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:505,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:507,1
    - Dst: VerifyXPathBuild
      Src: /src/core/cf-agent/files_editxml.c:511,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:513,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:515,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:521,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:523,1
    - Dst: XmlSelectNode
      Src: /src/core/cf-agent/files_editxml.c:528,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:530,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:533,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:537,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editxml.c:538,1
    - Dst: InsertTreeInFile
      Src: /src/core/cf-agent/files_editxml.c:548,1
    - Dst: InsertTreeInNode
      Src: /src/core/cf-agent/files_editxml.c:553,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:561,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:565,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:569,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:573,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:578,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 4
    argNames:
    - ctx
    - attr
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 580
      start: 491
    functionDepth: 13
    functionLinenumber: 491
    functionLinenumberEnd: 580
    functionName: VerifyTreeInsertions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - InsertTreeInFile
    - snprintf
    - InsertTreeInNode
    - assert
    - SanityCheckTreeInsertions
    - YieldCurrentLock
    - cfPS
    - AcquireLock
    - XmlSelectNode
    - PromiseResultUpdate
    - VerifyXPathBuild
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyTreeInsertions(EvalContext *ctx, const Attributes
      *attr, const Promise *pp, EditContext *edcontext)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:586,1
    - Dst: SanityCheckAttributeDeletions
      Src: /src/core/cf-agent/files_editxml.c:596,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:598,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:600,1
    - Dst: VerifyXPathBuild
      Src: /src/core/cf-agent/files_editxml.c:604,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:606,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:608,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:614,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:615,1
    - Dst: XmlSelectNode
      Src: /src/core/cf-agent/files_editxml.c:619,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:621,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:624,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:628,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editxml.c:629,1
    - Dst: DeleteAttributeInNode
      Src: /src/core/cf-agent/files_editxml.c:636,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:644,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:648,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:652,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:656,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:661,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - attr
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 663
      start: 584
    functionDepth: 13
    functionLinenumber: 584
    functionLinenumberEnd: 663
    functionName: VerifyAttributeDeletions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - snprintf
    - SanityCheckAttributeDeletions
    - assert
    - YieldCurrentLock
    - cfPS
    - RecordFailure
    - AcquireLock
    - DeleteAttributeInNode
    - XmlSelectNode
    - PromiseResultUpdate
    - VerifyXPathBuild
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyAttributeDeletions(EvalContext *ctx, const Attributes
      *attr, const Promise *pp, EditContext *edcontext)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:669,1
    - Dst: SanityCheckAttributeSet
      Src: /src/core/cf-agent/files_editxml.c:679,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:681,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:683,1
    - Dst: VerifyXPathBuild
      Src: /src/core/cf-agent/files_editxml.c:687,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:689,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:691,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:697,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:698,1
    - Dst: XmlSelectNode
      Src: /src/core/cf-agent/files_editxml.c:702,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:704,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:707,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:711,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editxml.c:712,1
    - Dst: SetAttributeInNode
      Src: /src/core/cf-agent/files_editxml.c:719,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:727,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:731,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:735,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:739,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:744,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - attr
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 668
        line_start: 668
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 746
      start: 667
    functionDepth: 13
    functionLinenumber: 667
    functionLinenumberEnd: 746
    functionName: VerifyAttributeSet
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - SetAttributeInNode
    - SanityCheckAttributeSet
    - snprintf
    - assert
    - YieldCurrentLock
    - cfPS
    - RecordFailure
    - AcquireLock
    - XmlSelectNode
    - PromiseResultUpdate
    - VerifyXPathBuild
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyAttributeSet(EvalContext *ctx, const Attributes
      *attr, const Promise *pp, EditContext *edcontext)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:752,1
    - Dst: SanityCheckTextDeletions
      Src: /src/core/cf-agent/files_editxml.c:762,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:764,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:766,1
    - Dst: VerifyXPathBuild
      Src: /src/core/cf-agent/files_editxml.c:770,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:772,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:774,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:780,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:781,1
    - Dst: XmlSelectNode
      Src: /src/core/cf-agent/files_editxml.c:785,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:787,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:790,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:794,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editxml.c:795,1
    - Dst: DeleteTextInNode
      Src: /src/core/cf-agent/files_editxml.c:802,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:810,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:814,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:818,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:822,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:827,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - attr
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 829
      start: 750
    functionDepth: 13
    functionLinenumber: 750
    functionLinenumberEnd: 829
    functionName: VerifyTextDeletions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - SanityCheckTextDeletions
    - snprintf
    - assert
    - YieldCurrentLock
    - cfPS
    - RecordFailure
    - AcquireLock
    - DeleteTextInNode
    - XmlSelectNode
    - PromiseResultUpdate
    - VerifyXPathBuild
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyTextDeletions(EvalContext *ctx, const Attributes
      *attr, const Promise *pp, EditContext *edcontext)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:835,1
    - Dst: SanityCheckTextSet
      Src: /src/core/cf-agent/files_editxml.c:845,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:847,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:849,1
    - Dst: VerifyXPathBuild
      Src: /src/core/cf-agent/files_editxml.c:853,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:855,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:857,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:863,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:864,1
    - Dst: XmlSelectNode
      Src: /src/core/cf-agent/files_editxml.c:868,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:870,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:873,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:877,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editxml.c:878,1
    - Dst: SetTextInNode
      Src: /src/core/cf-agent/files_editxml.c:885,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:893,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:897,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:901,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:905,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:910,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - attr
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 834
        line_start: 834
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 912
      start: 833
    functionDepth: 13
    functionLinenumber: 833
    functionLinenumberEnd: 912
    functionName: VerifyTextSet
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - SanityCheckTextSet
    - snprintf
    - assert
    - YieldCurrentLock
    - cfPS
    - RecordFailure
    - AcquireLock
    - SetTextInNode
    - XmlSelectNode
    - PromiseResultUpdate
    - VerifyXPathBuild
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyTextSet(EvalContext *ctx, const Attributes *attr,
      const Promise *pp, EditContext *edcontext)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:918,1
    - Dst: SanityCheckTextInsertions
      Src: /src/core/cf-agent/files_editxml.c:928,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:930,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:932,1
    - Dst: VerifyXPathBuild
      Src: /src/core/cf-agent/files_editxml.c:936,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:938,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:940,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:946,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:947,1
    - Dst: XmlSelectNode
      Src: /src/core/cf-agent/files_editxml.c:951,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:953,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:956,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_editxml.c:960,1
    - Dst: AcquireLock
      Src: /src/core/cf-agent/files_editxml.c:961,1
    - Dst: InsertTextInNode
      Src: /src/core/cf-agent/files_editxml.c:968,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:976,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:980,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:984,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:988,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-agent/files_editxml.c:993,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - attr
    - pp
    - edcontext
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - EditContext*
    assertStmts:
    - condition: (attr != NULL)
      pos:
        line_end: 917
        line_start: 917
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 995
      start: 916
    functionDepth: 13
    functionLinenumber: 916
    functionLinenumberEnd: 995
    functionName: VerifyTextInsertions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - SanityCheckTextInsertions
    - snprintf
    - InsertTextInNode
    - assert
    - YieldCurrentLock
    - cfPS
    - RecordFailure
    - AcquireLock
    - XmlSelectNode
    - PromiseResultUpdate
    - VerifyXPathBuild
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult VerifyTextInsertions(EvalContext *ctx, const Attributes
      *attr, const Promise *pp, EditContext *edcontext)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:1010,1
    - Dst: XPathVerifyConvergence
      Src: /src/core/cf-agent/files_editxml.c:1021,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1023,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1025,1
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1029,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1031,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1032,1
    - Dst: xmlXPathNewContext
      Src: /src/core/cf-agent/files_editxml.c:1036,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1038,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1039,1
    - Dst: xmlXPathEvalExpression
      Src: /src/core/cf-agent/files_editxml.c:1043,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1045,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1046,1
    - Dst: xmlXPathFreeContext
      Src: /src/core/cf-agent/files_editxml.c:1047,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1060,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1064,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1082,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1085,1
    - Dst: xmlXPathFreeContext
      Src: /src/core/cf-agent/files_editxml.c:1092,1
    - Dst: xmlXPathFreeObject
      Src: /src/core/cf-agent/files_editxml.c:1093,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 8
    argNames:
    - ctx
    - rawxpath
    - doc
    - docnode
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - xmlDocPtr
    - xmlNodePtr*
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1009
        line_start: 1009
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 1096
      start: 1007
    functionDepth: 12
    functionLinenumber: 1007
    functionLinenumberEnd: 1096
    functionName: XmlSelectNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 7
    functionsReached:
    - xmlXPathEvalExpression
    - assert
    - XPathVerifyConvergence
    - RecordFailure
    - xmlXPathFreeObject
    - xmlXPathNewContext
    - CharToXmlChar
    - xmlXPathFreeContext
    - PromiseResultUpdate
    linkageType: ''
    returnType: bool
    signature: "bool XmlSelectNode(EvalContext *ctx, char *rawxpath, xmlDocPtr doc,
      xmlNodePtr *docnode, const Attributes *a,\n                          const Promise
      *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:1103,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:1107,1
    - Dst: xmlDocGetRootElement
      Src: /src/core/cf-agent/files_editxml.c:1109,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editxml.c:1111,1
    - Dst: XPathHeadExtractNode
      Src: /src/core/cf-agent/files_editxml.c:1117,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1119,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1122,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1128,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1131,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1135,1
    - Dst: xmlDocSetRootElement
      Src: /src/core/cf-agent/files_editxml.c:1142,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1144,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1147,1
    - Dst: XPathRemoveHead
      Src: /src/core/cf-agent/files_editxml.c:1151,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editxml.c:1154,1
    - Dst: XPathHeadExtractNode
      Src: /src/core/cf-agent/files_editxml.c:1154,1
    - Dst: xmlAddChild
      Src: /src/core/cf-agent/files_editxml.c:1156,1
    - Dst: XPathRemoveHead
      Src: /src/core/cf-agent/files_editxml.c:1158,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1161,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 7
    argNames:
    - ctx
    - rawxpath
    - doc
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char[]
    - xmlDocPtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1102
        line_start: 1102
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 1166
      start: 1100
    functionDepth: 12
    functionLinenumber: 1100
    functionLinenumberEnd: 1166
    functionName: BuildXPathInFile
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XPathHeadExtractNode
    - xmlDocSetRootElement
    - RecordChange
    - strlen
    - assert
    - xmlDocGetRootElement
    - XPathRemoveHead
    - RecordFailure
    - RecordNoChange
    - strcpy
    - PromiseResultUpdate
    - MakingChanges
    - xmlAddChild
    linkageType: ''
    returnType: bool
    signature: "bool BuildXPathInFile(EvalContext *ctx, char rawxpath[CF_BUFSIZE],
      xmlDocPtr doc, const Attributes *a,\n                             const Promise
      *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:1176,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editxml.c:1179,1
    - Dst: XmlSelectNode
      Src: /src/core/cf-agent/files_editxml.c:1179,1
    - Dst: XPathHasTail
      Src: /src/core/cf-agent/files_editxml.c:1181,1
    - Dst: XPathTailExtractNode
      Src: /src/core/cf-agent/files_editxml.c:1183,1
    - Dst: XPathRemoveTail
      Src: /src/core/cf-agent/files_editxml.c:1184,1
    - Dst: XPathHeadExtractNode
      Src: /src/core/cf-agent/files_editxml.c:1188,1
    - Dst: XPathRemoveHead
      Src: /src/core/cf-agent/files_editxml.c:1189,1
    - Dst: xmlAddChild
      Src: /src/core/cf-agent/files_editxml.c:1194,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1199,1
    - Dst: xmlAddChild
      Src: /src/core/cf-agent/files_editxml.c:1208,1
    - Dst: xmlDocGetRootElement
      Src: /src/core/cf-agent/files_editxml.c:1213,1
    - Dst: xmlAddChild
      Src: /src/core/cf-agent/files_editxml.c:1214,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1217,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 7
    argNames:
    - ctx
    - rawxpath
    - doc
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char[]
    - xmlDocPtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1170
    functionDepth: 13
    functionLinenumber: 1170
    functionLinenumberEnd: 1222
    functionName: BuildXPathInNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XPathHeadExtractNode
    - XPathTailExtractNode
    - RecordChange
    - strlen
    - XPathRemoveHead
    - xmlDocGetRootElement
    - XPathRemoveTail
    - PromiseResultUpdate
    - XPathHasTail
    - XmlSelectNode
    - strcpy
    - xmlAddChild
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool BuildXPathInNode(EvalContext *ctx, char rawxpath[CF_BUFSIZE],
      xmlDocPtr doc, const Attributes *a,\n                             const Promise
      *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1233,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1235,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1238,1
    - Dst: xmlParseBalancedChunkMemory
      Src: /src/core/cf-agent/files_editxml.c:1243,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1245,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1248,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1254,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1257,1
    - Dst: xmlDocGetRootElement
      Src: /src/core/cf-agent/files_editxml.c:1262,1
    - Dst: XmlNodesCompare
      Src: /src/core/cf-agent/files_editxml.c:1264,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1266,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1270,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1271,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editxml.c:1275,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1283,1
    - Dst: xmlDocSetRootElement
      Src: /src/core/cf-agent/files_editxml.c:1291,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1293,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1294,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1297,1
    - Dst: xmlDocGetRootElement
      Src: /src/core/cf-agent/files_editxml.c:1302,1
    - Dst: XmlNodesCompare
      Src: /src/core/cf-agent/files_editxml.c:1302,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1306,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1310,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1312,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1315,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1318,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1320,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 7
    argNames:
    - ctx
    - rawtree
    - doc
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - xmlDocPtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1226
    functionDepth: 12
    functionLinenumber: 1226
    functionLinenumberEnd: 1323
    functionName: InsertTreeInFile
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlDocSetRootElement
    - RecordChange
    - XmlNodesCompare
    - xmlDocGetRootElement
    - xmlParseBalancedChunkMemory
    - RecordFailure
    - Log
    - RecordNoChange
    - CharToXmlChar
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool InsertTreeInFile(EvalContext *ctx, char *rawtree, xmlDocPtr doc,
      const Attributes *a,\n                             const Promise *pp, EditContext
      *edcontext, PromiseResult *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1331,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1334,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1338,1
    - Dst: xmlParseBalancedChunkMemory
      Src: /src/core/cf-agent/files_editxml.c:1344,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1346,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1350,1
    - Dst: xmlFreeNode
      Src: /src/core/cf-agent/files_editxml.c:1351,1
    - Dst: XmlVerifyNodeInNodeSubset
      Src: /src/core/cf-agent/files_editxml.c:1357,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editxml.c:1359,1
    - Dst: xmlFreeNode
      Src: /src/core/cf-agent/files_editxml.c:1361,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1365,1
    - Dst: xmlFreeNode
      Src: /src/core/cf-agent/files_editxml.c:1369,1
    - Dst: xmlFreeNode
      Src: /src/core/cf-agent/files_editxml.c:1370,1
    - Dst: xmlUnlinkNode
      Src: /src/core/cf-agent/files_editxml.c:1375,1
    - Dst: xmlFreeNode
      Src: /src/core/cf-agent/files_editxml.c:1376,1
    - Dst: XmlVerifyNodeInNodeSubset
      Src: /src/core/cf-agent/files_editxml.c:1379,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1382,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1385,1
    - Dst: xmlFreeNode
      Src: /src/core/cf-agent/files_editxml.c:1386,1
    - Dst: xmlFreeNode
      Src: /src/core/cf-agent/files_editxml.c:1387,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1392,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1395,1
    - Dst: xmlFreeNode
      Src: /src/core/cf-agent/files_editxml.c:1396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 8
    argNames:
    - ctx
    - rawtree
    - doc
    - docnode
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - xmlDocPtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1327
    functionDepth: 12
    functionLinenumber: 1327
    functionLinenumberEnd: 1399
    functionName: DeleteTreeInNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlFreeNode
    - RecordChange
    - XmlVerifyNodeInNodeSubset
    - xmlParseBalancedChunkMemory
    - RecordFailure
    - RecordNoChange
    - CharToXmlChar
    - xmlUnlinkNode
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool DeleteTreeInNode(EvalContext *ctx, char *rawtree, xmlDocPtr doc,
      xmlNodePtr docnode, const Attributes *a,\n                             const
      Promise *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1410,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1412,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1415,1
    - Dst: xmlParseBalancedChunkMemory
      Src: /src/core/cf-agent/files_editxml.c:1420,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1422,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1425,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1431,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1434,1
    - Dst: XmlVerifyNodeInNodeSubset
      Src: /src/core/cf-agent/files_editxml.c:1439,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editxml.c:1441,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1447,1
    - Dst: xmlAddChild
      Src: /src/core/cf-agent/files_editxml.c:1455,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1457,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1458,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1461,1
    - Dst: XmlVerifyNodeInNodeSubset
      Src: /src/core/cf-agent/files_editxml.c:1466,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1468,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1469,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1472,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1475,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1477,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 8
    argNames:
    - ctx
    - rawtree
    - doc
    - docnode
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - xmlDocPtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1403
    functionDepth: 12
    functionLinenumber: 1403
    functionLinenumberEnd: 1479
    functionName: InsertTreeInNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - RecordChange
    - XmlVerifyNodeInNodeSubset
    - xmlParseBalancedChunkMemory
    - RecordFailure
    - Log
    - RecordNoChange
    - CharToXmlChar
    - PromiseResultUpdate
    - MakingChanges
    - xmlAddChild
    linkageType: ''
    returnType: bool
    signature: "bool InsertTreeInNode(EvalContext *ctx, char *rawtree, xmlDocPtr doc,
      xmlNodePtr docnode, const Attributes *a,\n                             const
      Promise *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1489,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1491,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1495,1
    - Dst: xmlHasProp
      Src: /src/core/cf-agent/files_editxml.c:1500,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editxml.c:1502,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1508,1
    - Dst: xmlRemoveProp
      Src: /src/core/cf-agent/files_editxml.c:1516,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1518,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1520,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1523,1
    - Dst: xmlHasProp
      Src: /src/core/cf-agent/files_editxml.c:1528,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1530,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1532,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1535,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1539,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 7
    argNames:
    - ctx
    - rawname
    - docnode
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - xmlNodePtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1483
    functionDepth: 12
    functionLinenumber: 1483
    functionLinenumberEnd: 1543
    functionName: DeleteAttributeInNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - RecordChange
    - MakingChanges
    - RecordFailure
    - Log
    - xmlRemoveProp
    - RecordNoChange
    - CharToXmlChar
    - PromiseResultUpdate
    - xmlHasProp
    linkageType: ''
    returnType: bool
    signature: "bool DeleteAttributeInNode(EvalContext *ctx, char *rawname, xmlNodePtr
      docnode, const Attributes *a,\n                                  const Promise
      *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1554,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1556,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1560,1
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1564,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1566,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1570,1
    - Dst: XmlVerifyAttributeInNode
      Src: /src/core/cf-agent/files_editxml.c:1575,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editxml.c:1577,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1583,1
    - Dst: xmlSetProp
      Src: /src/core/cf-agent/files_editxml.c:1591,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1593,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1595,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1598,1
    - Dst: XmlVerifyAttributeInNode
      Src: /src/core/cf-agent/files_editxml.c:1603,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1605,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1607,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1610,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1614,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 8
    argNames:
    - ctx
    - rawname
    - rawvalue
    - docnode
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - char*
    - xmlNodePtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1547
    functionDepth: 12
    functionLinenumber: 1547
    functionLinenumberEnd: 1619
    functionName: SetAttributeInNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XmlVerifyAttributeInNode
    - RecordChange
    - RecordFailure
    - Log
    - RecordNoChange
    - CharToXmlChar
    - xmlSetProp
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool SetAttributeInNode(EvalContext *ctx, char *rawname, char *rawvalue,
      xmlNodePtr docnode, const Attributes *a,\n                               const
      Promise *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1629,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1631,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1634,1
    - Dst: XmlVerifyTextInNodeSubstring
      Src: /src/core/cf-agent/files_editxml.c:1639,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editxml.c:1641,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1647,1
    - Dst: xmlNodeIsText
      Src: /src/core/cf-agent/files_editxml.c:1655,1
    - Dst: xmlNodeSetContent
      Src: /src/core/cf-agent/files_editxml.c:1658,1
    - Dst: xmlFirstElementChild
      Src: /src/core/cf-agent/files_editxml.c:1664,1
    - Dst: xmlDocCopyNodeList
      Src: /src/core/cf-agent/files_editxml.c:1665,1
    - Dst: xmlNodeSetContent
      Src: /src/core/cf-agent/files_editxml.c:1667,1
    - Dst: xmlAddChildList
      Src: /src/core/cf-agent/files_editxml.c:1670,1
    - Dst: XmlVerifyTextInNodeSubstring
      Src: /src/core/cf-agent/files_editxml.c:1674,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1676,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1679,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1682,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 8
    argNames:
    - ctx
    - rawtext
    - doc
    - docnode
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - xmlDocPtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1623
    functionDepth: 12
    functionLinenumber: 1623
    functionLinenumberEnd: 1687
    functionName: DeleteTextInNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlNodeIsText
    - XmlVerifyTextInNodeSubstring
    - xmlDocCopyNodeList
    - RecordChange
    - RecordFailure
    - xmlNodeSetContent
    - xmlAddChildList
    - RecordNoChange
    - CharToXmlChar
    - xmlFirstElementChild
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool DeleteTextInNode(EvalContext *ctx, char *rawtext, xmlDocPtr doc,
      xmlNodePtr docnode, const Attributes *a,\n                             const
      Promise *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1697,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1699,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1702,1
    - Dst: XmlVerifyTextInNodeExact
      Src: /src/core/cf-agent/files_editxml.c:1707,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editxml.c:1709,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1715,1
    - Dst: xmlNodeIsText
      Src: /src/core/cf-agent/files_editxml.c:1723,1
    - Dst: xmlNodeSetContent
      Src: /src/core/cf-agent/files_editxml.c:1726,1
    - Dst: xmlFirstElementChild
      Src: /src/core/cf-agent/files_editxml.c:1732,1
    - Dst: xmlDocCopyNodeList
      Src: /src/core/cf-agent/files_editxml.c:1733,1
    - Dst: xmlNodeSetContent
      Src: /src/core/cf-agent/files_editxml.c:1735,1
    - Dst: xmlAddChildList
      Src: /src/core/cf-agent/files_editxml.c:1738,1
    - Dst: XmlVerifyTextInNodeExact
      Src: /src/core/cf-agent/files_editxml.c:1742,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1744,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1747,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1751,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 8
    argNames:
    - ctx
    - rawtext
    - doc
    - docnode
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - xmlDocPtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1691
    functionDepth: 12
    functionLinenumber: 1691
    functionLinenumberEnd: 1755
    functionName: SetTextInNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlNodeIsText
    - xmlDocCopyNodeList
    - RecordChange
    - RecordFailure
    - XmlVerifyTextInNodeExact
    - xmlNodeSetContent
    - xmlAddChildList
    - RecordNoChange
    - CharToXmlChar
    - xmlFirstElementChild
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool SetTextInNode(EvalContext *ctx, char *rawtext, xmlDocPtr doc,
      xmlNodePtr docnode, const Attributes *a,\n                          const Promise
      *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:1765,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1767,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1770,1
    - Dst: XmlVerifyTextInNodeSubstring
      Src: /src/core/cf-agent/files_editxml.c:1775,1
    - Dst: RecordNoChange
      Src: /src/core/cf-agent/files_editxml.c:1777,1
    - Dst: MakingChanges
      Src: /src/core/cf-agent/files_editxml.c:1783,1
    - Dst: xmlNodeIsText
      Src: /src/core/cf-agent/files_editxml.c:1791,1
    - Dst: xmlNodeAddContent
      Src: /src/core/cf-agent/files_editxml.c:1794,1
    - Dst: xmlFirstElementChild
      Src: /src/core/cf-agent/files_editxml.c:1800,1
    - Dst: xmlDocCopyNodeList
      Src: /src/core/cf-agent/files_editxml.c:1801,1
    - Dst: xmlNodeSetContent
      Src: /src/core/cf-agent/files_editxml.c:1803,1
    - Dst: xmlNodeAddContent
      Src: /src/core/cf-agent/files_editxml.c:1804,1
    - Dst: xmlAddChildList
      Src: /src/core/cf-agent/files_editxml.c:1807,1
    - Dst: XmlVerifyTextInNodeSubstring
      Src: /src/core/cf-agent/files_editxml.c:1811,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:1813,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1816,1
    - Dst: RecordChange
      Src: /src/core/cf-agent/files_editxml.c:1820,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:1822,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 8
    argNames:
    - ctx
    - rawtext
    - doc
    - docnode
    - a
    - pp
    - edcontext
    - result
    argTypes:
    - EvalContext*
    - char*
    - xmlDocPtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    - EditContext*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1759
    functionDepth: 12
    functionLinenumber: 1759
    functionLinenumberEnd: 1824
    functionName: InsertTextInNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlNodeIsText
    - XmlVerifyTextInNodeSubstring
    - xmlDocCopyNodeList
    - RecordChange
    - RecordFailure
    - xmlNodeAddContent
    - xmlNodeSetContent
    - xmlAddChildList
    - RecordNoChange
    - CharToXmlChar
    - xmlFirstElementChild
    - PromiseResultUpdate
    - MakingChanges
    linkageType: ''
    returnType: bool
    signature: "bool InsertTextInNode(EvalContext *ctx, char *rawtext, xmlDocPtr doc,
      xmlNodePtr docnode, const Attributes *a,\n                             const
      Promise *pp, EditContext *edcontext, PromiseResult *result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:1834,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:1838,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:1841,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-agent/files_editxml.c:1841,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1843,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1849,1
    - Dst: XPathVerifyBuildSyntax
      Src: /src/core/cf-agent/files_editxml.c:1853,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1828
    functionDepth: 8
    functionLinenumber: 1828
    functionLinenumberEnd: 1859
    functionName: SanityCheckXPathBuild
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XPathVerifyBuildSyntax
    - PromiseGetPromiseType
    - Log
    - strcmp
    - strcpy
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckXPathBuild(EvalContext *ctx, const Attributes *a, const
      Promise *pp, PromiseResult *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:1865,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1868,1
    - Dst: XPathVerifyConvergence
      Src: /src/core/cf-agent/files_editxml.c:1873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1864
        line_start: 1864
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 1879
      start: 1863
    functionDepth: 8
    functionLinenumber: 1863
    functionLinenumberEnd: 1879
    functionName: SanityCheckTreeDeletions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - XPathVerifyConvergence
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckTreeDeletions(const Attributes *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:1885,1
    - Dst: xmlDocGetRootElement
      Src: /src/core/cf-agent/files_editxml.c:1886,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1888,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1894,1
    - Dst: XPathVerifyConvergence
      Src: /src/core/cf-agent/files_editxml.c:1899,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - a
    - edcontext
    argTypes:
    - Attributes*
    - EditContext*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1884
        line_start: 1884
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 1905
      start: 1883
    functionDepth: 8
    functionLinenumber: 1883
    functionLinenumberEnd: 1905
    functionName: SanityCheckTreeInsertions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - assert
    - xmlDocGetRootElement
    - Log
    - XPathVerifyConvergence
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckTreeInsertions(const Attributes *a, EditContext *edcontext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:1911,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1914,1
    - Dst: XPathVerifyConvergence
      Src: /src/core/cf-agent/files_editxml.c:1918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1910
        line_start: 1910
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 1924
      start: 1909
    functionDepth: 8
    functionLinenumber: 1909
    functionLinenumberEnd: 1924
    functionName: SanityCheckAttributeDeletions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - XPathVerifyConvergence
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckAttributeDeletions(const Attributes *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:1930,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1933,1
    - Dst: XPathVerifyConvergence
      Src: /src/core/cf-agent/files_editxml.c:1937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1929
        line_start: 1929
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 1943
      start: 1928
    functionDepth: 8
    functionLinenumber: 1928
    functionLinenumberEnd: 1943
    functionName: SanityCheckAttributeSet
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - XPathVerifyConvergence
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckAttributeSet(const Attributes *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:1949,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1952,1
    - Dst: XPathVerifyConvergence
      Src: /src/core/cf-agent/files_editxml.c:1956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1948
        line_start: 1948
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 1962
      start: 1947
    functionDepth: 8
    functionLinenumber: 1947
    functionLinenumberEnd: 1962
    functionName: SanityCheckTextDeletions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - XPathVerifyConvergence
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckTextDeletions(const Attributes *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:1968,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1971,1
    - Dst: XPathVerifyConvergence
      Src: /src/core/cf-agent/files_editxml.c:1975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1967
        line_start: 1967
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 1981
      start: 1966
    functionDepth: 8
    functionLinenumber: 1966
    functionLinenumberEnd: 1981
    functionName: SanityCheckTextSet
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - XPathVerifyConvergence
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckTextSet(const Attributes *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-agent/files_editxml.c:1987,1
    - Dst: Log
      Src: /src/core/cf-agent/files_editxml.c:1990,1
    - Dst: XPathVerifyConvergence
      Src: /src/core/cf-agent/files_editxml.c:1994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - Attributes*
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 1986
        line_start: 1986
        source_file: /src/core/cf-agent/files_editxml.c
    constantsTouched: []
    func_position:
      end: 2000
      start: 1985
    functionDepth: 8
    functionLinenumber: 1985
    functionLinenumberEnd: 2000
    functionName: SanityCheckTextInsertions
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - assert
    - Log
    - XPathVerifyConvergence
    linkageType: ''
    returnType: bool
    signature: bool SanityCheckTextInsertions(const Attributes *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/core/cf-agent/files_editxml.c:2010,1
    - Dst: LoadFileAsXmlDoc
      Src: /src/core/cf-agent/files_editxml.c:2025,1
    - Dst: XmlDocsEqualMem
      Src: /src/core/cf-agent/files_editxml.c:2030,1
    - Dst: xmlFreeDoc
      Src: /src/core/cf-agent/files_editxml.c:2032,1
    - Dst: xmlFreeDoc
      Src: /src/core/cf-agent/files_editxml.c:2036,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - doc
    - file
    - edits
    argTypes:
    - xmlDocPtr
    - char*
    - EditDefaults
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2004
    functionDepth: 9
    functionLinenumber: 2004
    functionLinenumberEnd: 2039
    functionName: XmlCompareToFile
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - stat
    - xmlFreeDoc
    - XmlDocsEqualMem
    - LoadFileAsXmlDoc
    linkageType: ''
    returnType: bool
    signature: bool XmlCompareToFile(xmlDocPtr doc, char *file, EditDefaults edits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlDocDumpMemory
      Src: /src/core/cf-agent/files_editxml.c:2061,1
    - Dst: xmlDocDumpMemory
      Src: /src/core/cf-agent/files_editxml.c:2062,1
    - Dst: xmlStrEqual
      Src: /src/core/cf-agent/files_editxml.c:2064,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2069,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2070,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - doc1
    - doc2
    argTypes:
    - xmlDocPtr
    - xmlDocPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2043
    functionDepth: 0
    functionLinenumber: 2043
    functionLinenumberEnd: 2073
    functionName: XmlDocsEqualMem
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlStrEqual
    - xmlFree
    - xmlDocDumpMemory
    linkageType: ''
    returnType: bool
    signature: bool XmlDocsEqualMem(xmlDocPtr doc1, xmlDocPtr doc2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XmlNodesCompareTags
      Src: /src/core/cf-agent/files_editxml.c:2092,1
    - Dst: XmlNodesCompareAttributes
      Src: /src/core/cf-agent/files_editxml.c:2097,1
    - Dst: XmlNodesCompareText
      Src: /src/core/cf-agent/files_editxml.c:2102,1
    - Dst: XmlNodesCompareNodes
      Src: /src/core/cf-agent/files_editxml.c:2107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 4
    argNames:
    - node1
    - node2
    - a
    - pp
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2077
    functionDepth: 1
    functionLinenumber: 2077
    functionLinenumberEnd: 2113
    functionName: XmlNodesCompare
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XmlNodesCompareAttributes
    - XmlNodesCompareTags
    - XmlNodesCompareNodes
    - XmlNodesCompareText
    linkageType: ''
    returnType: bool
    signature: bool XmlNodesCompare(const xmlNodePtr node1, const xmlNodePtr node2,
      const Attributes *a, const Promise *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XmlAttributeCount
      Src: /src/core/cf-agent/files_editxml.c:2146,1
    - Dst: XmlAttributeCount
      Src: /src/core/cf-agent/files_editxml.c:2147,1
    - Dst: xmlNodeGetContent
      Src: /src/core/cf-agent/files_editxml.c:2161,1
    - Dst: XmlVerifyAttributeInNode
      Src: /src/core/cf-agent/files_editxml.c:2163,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2165,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2169,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2117
    functionDepth: 1
    functionLinenumber: 2117
    functionLinenumberEnd: 2176
    functionName: XmlNodesCompareAttributes
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XmlVerifyAttributeInNode
    - xmlFree
    - XmlAttributeCount
    - xmlNodeGetContent
    linkageType: ''
    returnType: bool
    signature: bool XmlNodesCompareAttributes(const xmlNodePtr node1, const xmlNodePtr
      node2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmlChildElementCount
      Src: /src/core/cf-agent/files_editxml.c:2193,1
    - Dst: xmlChildElementCount
      Src: /src/core/cf-agent/files_editxml.c:2194,1
    - Dst: xmlFirstElementChild
      Src: /src/core/cf-agent/files_editxml.c:2201,1
    - Dst: XmlVerifyNodeInNodeExact
      Src: /src/core/cf-agent/files_editxml.c:2205,1
    - Dst: xmlNextElementSibling
      Src: /src/core/cf-agent/files_editxml.c:2210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - node1
    - node2
    - a
    - pp
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2180
    functionDepth: 1
    functionLinenumber: 2180
    functionLinenumberEnd: 2214
    functionName: XmlNodesCompareNodes
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XmlVerifyNodeInNodeExact
    - xmlChildElementCount
    - xmlFirstElementChild
    - xmlNextElementSibling
    linkageType: ''
    returnType: bool
    signature: bool XmlNodesCompareNodes(const xmlNodePtr node1, const xmlNodePtr
      node2, const Attributes *a, const Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlStrEqual
      Src: /src/core/cf-agent/files_editxml.c:2244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2218
    functionDepth: 0
    functionLinenumber: 2218
    functionLinenumberEnd: 2250
    functionName: XmlNodesCompareTags
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlStrEqual
    linkageType: ''
    returnType: bool
    signature: bool XmlNodesCompareTags(const xmlNodePtr node1, const xmlNodePtr node2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/core/cf-agent/files_editxml.c:2270,1
    - Dst: xmlNodeGetContent
      Src: /src/core/cf-agent/files_editxml.c:2271,1
    - Dst: xmlStrEqual
      Src: /src/core/cf-agent/files_editxml.c:2284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2254
    functionDepth: 0
    functionLinenumber: 2254
    functionLinenumberEnd: 2290
    functionName: XmlNodesCompareText
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlStrEqual
    - xmlNodeGetContent
    linkageType: ''
    returnType: bool
    signature: bool XmlNodesCompareText(xmlNodePtr node1, xmlNodePtr node2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XmlNodesCompareTags
      Src: /src/core/cf-agent/files_editxml.c:2309,1
    - Dst: XmlNodesSubsetOfAttributes
      Src: /src/core/cf-agent/files_editxml.c:2314,1
    - Dst: XmlNodesSubstringOfText
      Src: /src/core/cf-agent/files_editxml.c:2319,1
    - Dst: XmlNodesSubsetOfNodes
      Src: /src/core/cf-agent/files_editxml.c:2324,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 4
    argNames:
    - node1
    - node2
    - a
    - pp
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2294
    functionDepth: 1
    functionLinenumber: 2294
    functionLinenumberEnd: 2330
    functionName: XmlNodesSubset
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 0
    functionsReached:
    - XmlNodesSubsetOfAttributes
    - XmlNodesSubsetOfNodes
    - XmlNodesCompareTags
    - XmlNodesSubstringOfText
    linkageType: ''
    returnType: bool
    signature: bool XmlNodesSubset(const xmlNodePtr node1, const xmlNodePtr node2,
      const Attributes *a, const Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/core/cf-agent/files_editxml.c:2366,1
    - Dst: XmlVerifyAttributeInNode
      Src: /src/core/cf-agent/files_editxml.c:2368,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2371,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2380
    functionName: XmlNodesSubsetOfAttributes
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XmlVerifyAttributeInNode
    - xmlFree
    - xmlNodeGetContent
    linkageType: ''
    returnType: bool
    signature: bool XmlNodesSubsetOfAttributes(const xmlNodePtr node1, const xmlNodePtr
      node2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlFirstElementChild
      Src: /src/core/cf-agent/files_editxml.c:2398,1
    - Dst: XmlVerifyNodeInNodeExact
      Src: /src/core/cf-agent/files_editxml.c:2402,1
    - Dst: xmlNextElementSibling
      Src: /src/core/cf-agent/files_editxml.c:2407,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - node1
    - node2
    - a
    - pp
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2384
    functionDepth: 1
    functionLinenumber: 2384
    functionLinenumberEnd: 2411
    functionName: XmlNodesSubsetOfNodes
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XmlVerifyNodeInNodeExact
    - xmlFirstElementChild
    - xmlNextElementSibling
    linkageType: ''
    returnType: bool
    signature: bool XmlNodesSubsetOfNodes(const xmlNodePtr node1, const xmlNodePtr
      node2, const Attributes *a, const Promise *pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/core/cf-agent/files_editxml.c:2428,1
    - Dst: xmlNodeGetContent
      Src: /src/core/cf-agent/files_editxml.c:2434,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2437,1
    - Dst: xmlStrstr
      Src: /src/core/cf-agent/files_editxml.c:2441,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2443,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2444,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2448,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2449,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2415
    functionDepth: 0
    functionLinenumber: 2415
    functionLinenumberEnd: 2451
    functionName: XmlNodesSubstringOfText
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlStrstr
    - xmlFree
    - xmlNodeGetContent
    linkageType: ''
    returnType: bool
    signature: bool XmlNodesSubstringOfText(const xmlNodePtr node1, const xmlNodePtr
      node2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmlHasProp
      Src: /src/core/cf-agent/files_editxml.c:2468,1
    - Dst: xmlNodeGetContent
      Src: /src/core/cf-agent/files_editxml.c:2474,1
    - Dst: xmlStrEqual
      Src: /src/core/cf-agent/files_editxml.c:2476,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2478,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - name
    - value
    - node
    argTypes:
    - xmlChar*
    - xmlChar*
    - xmlNodePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2455
    functionDepth: 0
    functionLinenumber: 2455
    functionLinenumberEnd: 2484
    functionName: XmlVerifyAttributeInNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 3
    functionsReached:
    - xmlStrEqual
    - xmlFree
    - xmlHasProp
    - xmlNodeGetContent
    linkageType: ''
    returnType: xmlAttrPtr
    signature: xmlAttrPtr XmlVerifyAttributeInNode(const xmlChar *name, xmlChar *value,
      const xmlNodePtr node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/core/cf-agent/files_editxml.c:2497,1
    - Dst: xmlStrEqual
      Src: /src/core/cf-agent/files_editxml.c:2499,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2501,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - text
    - node
    argTypes:
    - xmlChar*
    - xmlNodePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2488
    functionDepth: 0
    functionLinenumber: 2488
    functionLinenumberEnd: 2507
    functionName: XmlVerifyTextInNodeExact
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - xmlStrEqual
    - xmlFree
    - xmlNodeGetContent
    linkageType: ''
    returnType: bool
    signature: bool XmlVerifyTextInNodeExact(const xmlChar *text, const xmlNodePtr
      node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlNodeGetContent
      Src: /src/core/cf-agent/files_editxml.c:2520,1
    - Dst: xmlStrstr
      Src: /src/core/cf-agent/files_editxml.c:2522,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2524,1
    - Dst: xmlFree
      Src: /src/core/cf-agent/files_editxml.c:2528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - text
    - node
    argTypes:
    - xmlChar*
    - xmlNodePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2511
    functionDepth: 0
    functionLinenumber: 2511
    functionLinenumberEnd: 2530
    functionName: XmlVerifyTextInNodeSubstring
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 2
    functionsReached:
    - xmlStrstr
    - xmlFree
    - xmlNodeGetContent
    linkageType: ''
    returnType: bool
    signature: bool XmlVerifyTextInNodeSubstring(const xmlChar *text, xmlNodePtr node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFirstElementChild
      Src: /src/core/cf-agent/files_editxml.c:2544,1
    - Dst: XmlNodesCompare
      Src: /src/core/cf-agent/files_editxml.c:2548,1
    - Dst: xmlNextElementSibling
      Src: /src/core/cf-agent/files_editxml.c:2553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - node1
    - node2
    - a
    - pp
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2534
    functionDepth: 2
    functionLinenumber: 2534
    functionLinenumberEnd: 2557
    functionName: XmlVerifyNodeInNodeExact
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 2
    functionsReached:
    - xmlFirstElementChild
    - xmlNextElementSibling
    - XmlNodesCompare
    linkageType: ''
    returnType: bool
    signature: bool XmlVerifyNodeInNodeExact(const xmlNodePtr node1, const xmlNodePtr
      node2, const Attributes *a, const Promise *pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmlFirstElementChild
      Src: /src/core/cf-agent/files_editxml.c:2570,1
    - Dst: XmlNodesSubset
      Src: /src/core/cf-agent/files_editxml.c:2574,1
    - Dst: xmlNextElementSibling
      Src: /src/core/cf-agent/files_editxml.c:2579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - node1
    - node2
    - a
    - pp
    argTypes:
    - xmlNodePtr
    - xmlNodePtr
    - Attributes*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2561
    functionDepth: 2
    functionLinenumber: 2561
    functionLinenumberEnd: 2583
    functionName: XmlVerifyNodeInNodeSubset
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 2
    functionsReached:
    - xmlNextElementSibling
    - xmlFirstElementChild
    - XmlNodesSubset
    linkageType: ''
    returnType: xmlNodePtr
    signature: xmlNodePtr XmlVerifyNodeInNodeSubset(xmlNodePtr node1, xmlNodePtr node2,
      const Attributes *a, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_editxml.c:2594,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2598,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:2599,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2601,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2603,1
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:2604,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2607,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:2608,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2610,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2612,1
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:2613,1
    - Dst: xmlNewNode
      Src: /src/core/cf-agent/files_editxml.c:2616,1
    - Dst: xmlNodeSetContent
      Src: /src/core/cf-agent/files_editxml.c:2617,1
    - Dst: free
      Src: /src/core/cf-agent/files_editxml.c:2619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2587
    functionDepth: 1
    functionLinenumber: 2587
    functionLinenumberEnd: 2622
    functionName: PredicateExtractNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 0
    functionsReached:
    - xmlNewNode
    - strsep
    - xmlNodeSetContent
    - strcmp
    - xstrdup
    - free
    - CharToXmlChar
    - strcpy
    linkageType: ''
    returnType: xmlNodePtr
    signature: xmlNodePtr PredicateExtractNode(char predicate[CF_BUFSIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2630,1
    - Dst: memset
      Src: /src/core/cf-agent/files_editxml.c:2631,1
    - Dst: PredicateHasTail
      Src: /src/core/cf-agent/files_editxml.c:2633,1
    - Dst: strchr
      Src: /src/core/cf-agent/files_editxml.c:2635,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2626
    functionDepth: 1
    functionLinenumber: 2626
    functionLinenumberEnd: 2640
    functionName: PredicateRemoveHead
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 0
    functionsReached:
    - strchr
    - strcpy
    - PredicateHasTail
    - memset
    linkageType: ''
    returnType: bool
    signature: bool PredicateRemoveHead(char predicate[CF_BUFSIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_editxml.c:2649,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2653,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:2654,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2656,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2658,1
    - Dst: XPathSegmentExtractNode
      Src: /src/core/cf-agent/files_editxml.c:2660,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:2662,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:2663,1
    - Dst: free
      Src: /src/core/cf-agent/files_editxml.c:2666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - xpath
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char[]
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2644
    functionDepth: 12
    functionLinenumber: 2644
    functionLinenumberEnd: 2669
    functionName: XPathHeadExtractNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 2
    functionsReached:
    - XPathSegmentExtractNode
    - strsep
    - RecordFailure
    - strcmp
    - xstrdup
    - free
    - strcpy
    - PromiseResultUpdate
    linkageType: ''
    returnType: xmlNodePtr
    signature: xmlNodePtr XPathHeadExtractNode(EvalContext *ctx, char xpath[CF_BUFSIZE],
      const Attributes *a, const Promise *pp, PromiseResult *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2678,1
    - Dst: XPathGetTail
      Src: /src/core/cf-agent/files_editxml.c:2681,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2682,1
    - Dst: XPathSegmentExtractNode
      Src: /src/core/cf-agent/files_editxml.c:2684,1
    - Dst: RecordFailure
      Src: /src/core/cf-agent/files_editxml.c:2686,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:2687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - xpath
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char[]
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2673
    functionDepth: 12
    functionLinenumber: 2673
    functionLinenumberEnd: 2691
    functionName: XPathTailExtractNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XPathSegmentExtractNode
    - XPathGetTail
    - RecordFailure
    - strcpy
    - PromiseResultUpdate
    linkageType: ''
    returnType: xmlNodePtr
    signature: xmlNodePtr XPathTailExtractNode(EvalContext *ctx, char xpath[CF_BUFSIZE],
      const Attributes *a, const Promise *pp, PromiseResult *result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_editxml.c:2702,1
    - Dst: XPathHeadContainsNode
      Src: /src/core/cf-agent/files_editxml.c:2706,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2709,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:2710,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2712,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2714,1
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:2715,1
    - Dst: xmlNewNode
      Src: /src/core/cf-agent/files_editxml.c:2718,1
    - Dst: XPathHeadContainsPredicate
      Src: /src/core/cf-agent/files_editxml.c:2723,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2726,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:2727,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2729,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2731,1
    - Dst: strlen
      Src: /src/core/cf-agent/files_editxml.c:2733,1
    - Dst: PredicateHeadContainsNode
      Src: /src/core/cf-agent/files_editxml.c:2735,1
    - Dst: PredicateExtractNode
      Src: /src/core/cf-agent/files_editxml.c:2738,1
    - Dst: xmlAddChild
      Src: /src/core/cf-agent/files_editxml.c:2739,1
    - Dst: PredicateHeadContainsAttribute
      Src: /src/core/cf-agent/files_editxml.c:2741,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_editxml.c:2743,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2747,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:2748,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2750,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2752,1
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:2753,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2756,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:2757,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2759,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2761,1
    - Dst: CharToXmlChar
      Src: /src/core/cf-agent/files_editxml.c:2762,1
    - Dst: xmlNewProp
      Src: /src/core/cf-agent/files_editxml.c:2765,1
    - Dst: free
      Src: /src/core/cf-agent/files_editxml.c:2767,1
    - Dst: PredicateHasTail
      Src: /src/core/cf-agent/files_editxml.c:2770,1
    - Dst: PredicateRemoveHead
      Src: /src/core/cf-agent/files_editxml.c:2772,1
    - Dst: memset
      Src: /src/core/cf-agent/files_editxml.c:2776,1
    - Dst: free
      Src: /src/core/cf-agent/files_editxml.c:2781,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - segment
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2695
    functionDepth: 2
    functionLinenumber: 2695
    functionLinenumberEnd: 2784
    functionName: XPathSegmentExtractNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 2
    functionsReached:
    - xmlNewNode
    - strlen
    - PredicateHeadContainsAttribute
    - strsep
    - XPathHeadContainsPredicate
    - xmlNewProp
    - PredicateHasTail
    - PredicateHeadContainsNode
    - PredicateRemoveHead
    - PredicateExtractNode
    - strcmp
    - xstrdup
    - free
    - CharToXmlChar
    - XPathHeadContainsNode
    - strcpy
    - xmlAddChild
    - memset
    linkageType: ''
    returnType: xmlNodePtr
    signature: xmlNodePtr XPathSegmentExtractNode(char segment[CF_BUFSIZE])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/cf-agent/files_editxml.c:2792,1
    - Dst: memset
      Src: /src/core/cf-agent/files_editxml.c:2795,1
    - Dst: XPathHasTail
      Src: /src/core/cf-agent/files_editxml.c:2797,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2800,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:2801,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2803,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2807,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_editxml.c:2809,1
    - Dst: strsep
      Src: /src/core/cf-agent/files_editxml.c:2811,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2815,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2818,1
    - Dst: free
      Src: /src/core/cf-agent/files_editxml.c:2821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - xpath
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2788
    functionDepth: 1
    functionLinenumber: 2788
    functionLinenumberEnd: 2824
    functionName: XPathGetTail
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - strsep
    - XPathHasTail
    - strcmp
    - xstrdup
    - free
    - strcpy
    - memset
    linkageType: ''
    returnType: char
    signature: char * XPathGetTail(char xpath[CF_BUFSIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2832,1
    - Dst: memset
      Src: /src/core/cf-agent/files_editxml.c:2833,1
    - Dst: XPathHasTail
      Src: /src/core/cf-agent/files_editxml.c:2835,1
    - Dst: strchr
      Src: /src/core/cf-agent/files_editxml.c:2837,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - xpath
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2828
    functionDepth: 1
    functionLinenumber: 2828
    functionLinenumberEnd: 2842
    functionName: XPathRemoveHead
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 2
    functionsReached:
    - XPathHasTail
    - strchr
    - strcpy
    - memset
    linkageType: ''
    returnType: bool
    signature: bool XPathRemoveHead(char xpath[CF_BUFSIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2851,1
    - Dst: memset
      Src: /src/core/cf-agent/files_editxml.c:2852,1
    - Dst: XPathHasTail
      Src: /src/core/cf-agent/files_editxml.c:2854,1
    - Dst: strrchr
      Src: /src/core/cf-agent/files_editxml.c:2856,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - xpath
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2846
    functionDepth: 1
    functionLinenumber: 2846
    functionLinenumberEnd: 2863
    functionName: XPathRemoveTail
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - XPathHasTail
    - strrchr
    - strcpy
    - memset
    linkageType: ''
    returnType: bool
    signature: bool XPathRemoveTail(char xpath[CF_BUFSIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsRegex
      Src: /src/core/cf-agent/files_editxml.c:2871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2867
    functionDepth: 1
    functionLinenumber: 2867
    functionLinenumberEnd: 2872
    functionName: PredicateHasTail
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 2
    functionsReached:
    - ContainsRegex
    linkageType: ''
    returnType: bool
    signature: bool PredicateHasTail(char *predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsRegex
      Src: /src/core/cf-agent/files_editxml.c:2880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2881
      start: 2876
    functionDepth: 1
    functionLinenumber: 2876
    functionLinenumberEnd: 2881
    functionName: PredicateHeadContainsAttribute
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - ContainsRegex
    linkageType: ''
    returnType: bool
    signature: bool PredicateHeadContainsAttribute(char *predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsRegex
      Src: /src/core/cf-agent/files_editxml.c:2889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - predicate
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2885
    functionDepth: 1
    functionLinenumber: 2885
    functionLinenumberEnd: 2890
    functionName: PredicateHeadContainsNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - ContainsRegex
    linkageType: ''
    returnType: bool
    signature: bool PredicateHeadContainsNode(char *predicate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsRegex
      Src: /src/core/cf-agent/files_editxml.c:2898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2894
    functionDepth: 1
    functionLinenumber: 2894
    functionLinenumberEnd: 2899
    functionName: XPathHasTail
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 4
    functionsReached:
    - ContainsRegex
    linkageType: ''
    returnType: bool
    signature: bool XPathHasTail(char *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsRegex
      Src: /src/core/cf-agent/files_editxml.c:2907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2903
    functionDepth: 1
    functionLinenumber: 2903
    functionLinenumberEnd: 2908
    functionName: XPathHeadContainsNode
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - ContainsRegex
    linkageType: ''
    returnType: bool
    signature: bool XPathHeadContainsNode(char *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ContainsRegex
      Src: /src/core/cf-agent/files_editxml.c:2918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2912
    functionDepth: 1
    functionLinenumber: 2912
    functionLinenumberEnd: 2919
    functionName: XPathHeadContainsPredicate
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - ContainsRegex
    linkageType: ''
    returnType: bool
    signature: bool XPathHeadContainsPredicate(char *head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XPathVerifyConvergence
      Src: /src/core/cf-agent/files_editxml.c:2929,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:2931,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:2933,1
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2938,1
    - Dst: ContainsRegex
      Src: /src/core/cf-agent/files_editxml.c:2942,1
    - Dst: cfPS
      Src: /src/core/cf-agent/files_editxml.c:2944,1
    - Dst: PromiseResultUpdate
      Src: /src/core/cf-agent/files_editxml.c:2947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - xpath
    - a
    - pp
    - result
    argTypes:
    - EvalContext*
    - char*
    - Attributes*
    - Promise*
    - PromiseResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2923
    functionDepth: 13
    functionLinenumber: 2923
    functionLinenumberEnd: 2951
    functionName: XPathVerifyBuildSyntax
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached:
    - ContainsRegex
    - cfPS
    - XPathVerifyConvergence
    - strcpy
    - PromiseResultUpdate
    linkageType: ''
    returnType: bool
    signature: bool XPathVerifyBuildSyntax(EvalContext *ctx, const char* xpath, const
      Attributes *a, const Promise *pp, PromiseResult *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-agent/files_editxml.c:2961,1
    - Dst: ContainsRegex
      Src: /src/core/cf-agent/files_editxml.c:2971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - xpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2955
    functionDepth: 1
    functionLinenumber: 2955
    functionLinenumberEnd: 2976
    functionName: XPathVerifyConvergence
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 9
    functionsReached:
    - strcpy
    - ContainsRegex
    linkageType: ''
    returnType: bool
    signature: bool XPathVerifyConvergence(const char* xpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2980
    functionDepth: 0
    functionLinenumber: 2980
    functionLinenumberEnd: 2983
    functionName: CharToXmlChar
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: xmlChar
    signature: xmlChar *CharToXmlChar(char c[CF_BUFSIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringMatch
      Src: /src/core/cf-agent/files_editxml.c:2989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rawstring
    - regex
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2987
    functionDepth: 3
    functionLinenumber: 2987
    functionLinenumberEnd: 2990
    functionName: ContainsRegex
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 8
    functionsReached:
    - StringMatch
    linkageType: ''
    returnType: bool
    signature: bool ContainsRegex(const char* rawstring, const char* regex)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - xmlNodePtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3011
      start: 2994
    functionDepth: 0
    functionLinenumber: 2994
    functionLinenumberEnd: 3011
    functionName: XmlAttributeCount
    functionSourceFile: /src/core/cf-agent/files_editxml.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XmlAttributeCount(const xmlNodePtr node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PrependItem
      Src: /src/core/cf-agent/files_properties.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: AddFilenameToListOfSuspicious
    functionSourceFile: /src/core/cf-agent/files_properties.c
    functionUses: 1
    functionsReached:
    - PrependItem
    linkageType: ''
    returnType: void
    signature: void AddFilenameToListOfSuspicious(const char *pattern)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-agent/files_properties.c:55,1
    - Dst: S_ISREG
      Src: /src/core/cf-agent/files_properties.c:59,1
    - Dst: S_ISLNK
      Src: /src/core/cf-agent/files_properties.c:59,1
    - Dst: IsItemIn
      Src: /src/core/cf-agent/files_properties.c:60,1
    - Dst: Log
      Src: /src/core/cf-agent/files_properties.c:62,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_properties.c:67,1
    - Dst: Log
      Src: /src/core/cf-agent/files_properties.c:69,1
    - Dst: IsFileSep
      Src: /src/core/cf-agent/files_properties.c:79,1
    - Dst: Log
      Src: /src/core/cf-agent/files_properties.c:81,1
    - Dst: strcmp
      Src: /src/core/cf-agent/files_properties.c:88,1
    - Dst: Log
      Src: /src/core/cf-agent/files_properties.c:90,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - nodename
    - path
    - stat
    argTypes:
    - char*
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 49
    functionDepth: 8
    functionLinenumber: 49
    functionLinenumberEnd: 96
    functionName: ConsiderFile
    functionSourceFile: /src/core/cf-agent/files_properties.c
    functionUses: 1
    functionsReached:
    - IsItemIn
    - IsFileSep
    - S_ISLNK
    - Log
    - strcmp
    - S_ISREG
    linkageType: ''
    returnType: bool
    signature: bool ConsiderFile(const char *nodename, const char *path, struct stat
      *stat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/core/cf-agent/files_properties.c:101,1
    - Dst: ConsiderFile
      Src: /src/core/cf-agent/files_properties.c:103,1
    - Dst: ConsiderFile
      Src: /src/core/cf-agent/files_properties.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - filename
    - directory
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 9
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: ConsiderLocalFile
    functionSourceFile: /src/core/cf-agent/files_properties.c
    functionUses: 5
    functionsReached:
    - lstat
    - ConsiderFile
    linkageType: ''
    returnType: bool
    signature: bool ConsiderLocalFile(const char *filename, const char *directory)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ConsiderFile
      Src: /src/core/cf-agent/files_properties.c:116,1
    - Dst: snprintf
      Src: /src/core/cf-agent/files_properties.c:124,1
    - Dst: Log
      Src: /src/core/cf-agent/files_properties.c:127,1
    - Dst: GetErrorStr
      Src: /src/core/cf-agent/files_properties.c:129,1
    - Dst: Log
      Src: /src/core/cf-agent/files_properties.c:134,1
    - Dst: cf_lstat
      Src: /src/core/cf-agent/files_properties.c:143,1
    - Dst: ConsiderFile
      Src: /src/core/cf-agent/files_properties.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - filename
    - directory
    - fc
    - conn
    argTypes:
    - char*
    - char*
    - FileCopy*
    - AgentConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 152
    functionName: ConsiderAbstractFile
    functionSourceFile: /src/core/cf-agent/files_properties.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - snprintf
    - cf_lstat
    - ConsiderFile
    - Log
    linkageType: ''
    returnType: bool
    signature: bool ConsiderAbstractFile(const char *filename, const char *directory,
      const FileCopy *fc, AgentConnection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/core/cf-agent/comparray.c:48,1
    - Dst: xstrdup
      Src: /src/core/cf-agent/comparray.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - i
    - value
    - start
    argTypes:
    - int
    - char*
    - CompressedArray**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: FixCompressedArrayValue
    functionSourceFile: /src/core/cf-agent/comparray.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: bool
    signature: bool FixCompressedArrayValue(int i, const char *value, CompressedArray
      **start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCompressedArray
      Src: /src/core/cf-agent/comparray.c:63,1
    - Dst: free
      Src: /src/core/cf-agent/comparray.c:68,1
    - Dst: free
      Src: /src/core/cf-agent/comparray.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - start
    argTypes:
    - CompressedArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: DeleteCompressedArray
    functionSourceFile: /src/core/cf-agent/comparray.c
    functionUses: 3
    functionsReached:
    - DeleteCompressedArray
    - free
    linkageType: ''
    returnType: void
    signature: void DeleteCompressedArray(CompressedArray *start)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - start
    - key
    argTypes:
    - CompressedArray*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: CompressedArrayElementExists
    functionSourceFile: /src/core/cf-agent/comparray.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CompressedArrayElementExists(CompressedArray *start, int key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - start
    - key
    argTypes:
    - CompressedArray*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: CompressedArrayValue
    functionSourceFile: /src/core/cf-agent/comparray.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *CompressedArrayValue(CompressedArray *start, int key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-testd/cf-testd.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: CFTestD_ConfigInit
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: CFTestD_Config
    signature: CFTestD_Config *CFTestD_ConfigInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:145,1
    - Dst: SeqDestroy
      Src: /src/core/cf-testd/cf-testd.c:146,1
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:147,1
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:148,1
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - CFTestD_Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: CFTestD_ConfigDestroy
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - free
    - SeqDestroy
    linkageType: ''
    returnType: void
    signature: void CFTestD_ConfigDestroy(CFTestD_Config *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileWriter
      Src: /src/core/cf-testd/cf-testd.c:154,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-testd/cf-testd.c:155,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-testd/cf-testd.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: CFTestD_Help
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - FileWriterDetach
    - WriterWriteHelp
    linkageType: ''
    returnType: void
    signature: void CFTestD_Help()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CFTestD_ConfigInit
      Src: /src/core/cf-testd/cf-testd.c:163,1
    - Dst: assert
      Src: /src/core/cf-testd/cf-testd.c:164,1
    - Dst: getopt_long
      Src: /src/core/cf-testd/cf-testd.c:166,1
    - Dst: xstrdup
      Src: /src/core/cf-testd/cf-testd.c:171,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-testd/cf-testd.c:174,1
    - Dst: CFTestD_Help
      Src: /src/core/cf-testd/cf-testd.c:177,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-testd/cf-testd.c:178,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-testd/cf-testd.c:180,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-testd/cf-testd.c:183,1
    - Dst: StringToLong
      Src: /src/core/cf-testd/cf-testd.c:187,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:190,1
    - Dst: xstrdup
      Src: /src/core/cf-testd/cf-testd.c:196,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/cf-testd/cf-testd.c:199,1
    - Dst: SetCfenginePort
      Src: /src/core/cf-testd/cf-testd.c:203,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-testd/cf-testd.c:207,1
    - Dst: xstrdup
      Src: /src/core/cf-testd/cf-testd.c:212,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-testd/cf-testd.c:215,1
    - Dst: FileWriter
      Src: /src/core/cf-testd/cf-testd.c:219,1
    - Dst: GenericAgentWriteVersion
      Src: /src/core/cf-testd/cf-testd.c:220,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-testd/cf-testd.c:221,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-testd/cf-testd.c:223,1
    - Dst: CFTestD_Help
      Src: /src/core/cf-testd/cf-testd.c:225,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-testd/cf-testd.c:226,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:233,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:240,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 3
    argNames:
    - argc
    - argv
    - n_threads
    argTypes:
    - int
    - char**
    - long*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/core/cf-testd/cf-testd.c
    constantsTouched: []
    func_position:
      end: 249
      start: 159
    functionDepth: 9
    functionLinenumber: 159
    functionLinenumberEnd: 249
    functionName: CFTestD_CheckOpts
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - DoCleanupAndExit
    - FileWriter
    - CFTestD_ConfigInit
    - GenericAgentWriteVersion
    - CFTestD_Help
    - LoggingEnableTimestamps
    - assert
    - LogSetGlobalLevel
    - SetCfenginePort
    - Log
    - xstrdup
    - StringToLong
    - getopt_long
    - LogSetGlobalLevelArgOrExit
    - FileWriterDetach
    linkageType: ''
    returnType: CFTestD_Config
    signature: CFTestD_Config *CFTestD_CheckOpts(int argc, char **argv, long *n_threads)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BasicServerTLSSessionEstablish
      Src: /src/core/cf-testd/cf-testd.c:258,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:264,1
    - Dst: ServerIdentificationDialog
      Src: /src/core/cf-testd/cf-testd.c:269,1
    - Dst: ServerSendWelcome
      Src: /src/core/cf-testd/cf-testd.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - conn
    - config
    argTypes:
    - ServerConnectionState*
    - CFTestD_Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 251
    functionDepth: 8
    functionLinenumber: 251
    functionLinenumberEnd: 285
    functionName: CFTestD_TLSSessionEstablish
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - ServerIdentificationDialog
    - Log
    - ServerSendWelcome
    - BasicServerTLSSessionEstablish
    linkageType: ''
    returnType: bool
    signature: bool CFTestD_TLSSessionEstablish(ServerConnectionState *conn, CFTestD_Config
      *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/cf-testd/cf-testd.c:296,1
    - Dst: strlen
      Src: /src/core/cf-testd/cf-testd.c:298,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:305,1
    - Dst: CFTestD_ReturnQueryData
      Src: /src/core/cf-testd/cf-testd.c:307,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:310,1
    - Dst: SeqLength
      Src: /src/core/cf-testd/cf-testd.c:314,1
    - Dst: assert
      Src: /src/core/cf-testd/cf-testd.c:316,1
    - Dst: SeqAt
      Src: /src/core/cf-testd/cf-testd.c:317,1
    - Dst: StringFormat
      Src: /src/core/cf-testd/cf-testd.c:318,1
    - Dst: SendTransaction
      Src: /src/core/cf-testd/cf-testd.c:319,1
    - Dst: SafeStringLength
      Src: /src/core/cf-testd/cf-testd.c:319,1
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:320,1
    - Dst: SeqAt
      Src: /src/core/cf-testd/cf-testd.c:324,1
    - Dst: SendTransaction
      Src: /src/core/cf-testd/cf-testd.c:325,1
    - Dst: SafeStringLength
      Src: /src/core/cf-testd/cf-testd.c:325,1
    - Dst: SendTransaction
      Src: /src/core/cf-testd/cf-testd.c:329,1
    - Dst: SafeStringLength
      Src: /src/core/cf-testd/cf-testd.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - conn
    - recvbuffer
    - config
    argTypes:
    - ServerConnectionState*
    - char*
    - CFTestD_Config*
    assertStmts:
    - condition: (n_report_lines > 1)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/core/cf-testd/cf-testd.c
    constantsTouched: []
    func_position:
      end: 332
      start: 287
    functionDepth: 11
    functionLinenumber: 287
    functionLinenumberEnd: 332
    functionName: CFTestD_GetServerQuery
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - strlen
    - assert
    - CFTestD_ReturnQueryData
    - sscanf
    - SendTransaction
    - Log
    - StringFormat
    - SeqLength
    - free
    - SafeStringLength
    - SeqAt
    linkageType: ''
    returnType: bool
    signature: "bool CFTestD_GetServerQuery(\n    ServerConnectionState *conn, char
      *recvbuffer, CFTestD_Config *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/core/cf-testd/cf-testd.c:337,1
    - Dst: SendTransaction
      Src: /src/core/cf-testd/cf-testd.c:338,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - conn
    - recvbuffer
    - sendbuffer
    argTypes:
    - ServerConnectionState*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 11
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: CFTestD_ProtocolError
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - Log
    - SendTransaction
    - strcpy
    linkageType: ''
    returnType: bool
    signature: "bool CFTestD_ProtocolError(\n    ServerConnectionState *conn, const
      char *recvbuffer, char *sendbuffer)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-testd/cf-testd.c:348,1
    - Dst: ReceiveTransaction
      Src: /src/core/cf-testd/cf-testd.c:354,1
    - Dst: UnexpectedError
      Src: /src/core/cf-testd/cf-testd.c:363,1
    - Dst: strlen
      Src: /src/core/cf-testd/cf-testd.c:367,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:369,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-testd/cf-testd.c:375,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:377,1
    - Dst: GetCommandNew
      Src: /src/core/cf-testd/cf-testd.c:382,1
    - Dst: SendTransaction
      Src: /src/core/cf-testd/cf-testd.c:388,1
    - Dst: sscanf
      Src: /src/core/cf-testd/cf-testd.c:396,1
    - Dst: sscanf
      Src: /src/core/cf-testd/cf-testd.c:397,1
    - Dst: CFTestD_ProtocolError
      Src: /src/core/cf-testd/cf-testd.c:400,1
    - Dst: CFTestD_GetServerQuery
      Src: /src/core/cf-testd/cf-testd.c:403,1
    - Dst: sscanf
      Src: /src/core/cf-testd/cf-testd.c:413,1
    - Dst: ServeLeech2Patch
      Src: /src/core/cf-testd/cf-testd.c:423,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:427,1
    - Dst: CFTestD_ProtocolError
      Src: /src/core/cf-testd/cf-testd.c:430,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - conn
    - config
    argTypes:
    - ServerConnectionState*
    - CFTestD_Config*
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/core/cf-testd/cf-testd.c
    constantsTouched: []
    func_position:
      end: 431
      start: 345
    functionDepth: 12
    functionLinenumber: 345
    functionLinenumberEnd: 431
    functionName: CFTestD_BusyLoop
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - strlen
    - assert
    - UnexpectedError
    - IsPendingTermination
    - sscanf
    - SendTransaction
    - GetCommandNew
    - Log
    - CFTestD_GetServerQuery
    - ReceiveTransaction
    - CFTestD_ProtocolError
    - ServeLeech2Patch
    linkageType: ''
    returnType: bool
    signature: "bool CFTestD_BusyLoop(\n    ServerConnectionState *conn, CFTestD_Config
      *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-testd/cf-testd.c:441,1
    - Dst: getsockname
      Src: /src/core/cf-testd/cf-testd.c:442,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:446,1
    - Dst: GetErrorStr
      Src: /src/core/cf-testd/cf-testd.c:448,1
    - Dst: xcalloc
      Src: /src/core/cf-testd/cf-testd.c:453,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:461,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-testd/cf-testd.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - info
    argTypes:
    - ConnectionInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 433
    functionDepth: 8
    functionLinenumber: 433
    functionLinenumberEnd: 465
    functionName: CFTestD_NewConn
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - xcalloc
    - getsockname
    - Log
    - ConnectionInfoSocket
    linkageType: ''
    returnType: ServerConnectionState
    signature: ServerConnectionState *CFTestD_NewConn(ConnectionInfo *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-testd/cf-testd.c:469,1
    - Dst: cf_closesocket
      Src: /src/core/cf-testd/cf-testd.c:472,1
    - Dst: ConnectionInfoDestroy
      Src: /src/core/cf-testd/cf-testd.c:474,1
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:476,1
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - ServerConnectionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 467
    functionDepth: 9
    functionLinenumber: 467
    functionLinenumberEnd: 478
    functionName: CFTestD_DeleteConn
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - ConnectionInfoDestroy
    - ConnectionInfoSocket
    - cf_closesocket
    - free
    linkageType: ''
    returnType: void
    signature: void CFTestD_DeleteConn(ServerConnectionState *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:482,1
    - Dst: CFTestD_TLSSessionEstablish
      Src: /src/core/cf-testd/cf-testd.c:484,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:487,1
    - Dst: getnameinfo
      Src: /src/core/cf-testd/cf-testd.c:490,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:500,1
    - Dst: gai_strerror
      Src: /src/core/cf-testd/cf-testd.c:502,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:506,1
    - Dst: CFTestD_BusyLoop
      Src: /src/core/cf-testd/cf-testd.c:509,1
    - Dst: CFTestD_DeleteConn
      Src: /src/core/cf-testd/cf-testd.c:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - conn
    - config
    argTypes:
    - ServerConnectionState*
    - CFTestD_Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 480
    functionDepth: 13
    functionLinenumber: 480
    functionLinenumberEnd: 515
    functionName: CFTestD_HandleConnection
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - CFTestD_TLSSessionEstablish
    - CFTestD_BusyLoop
    - CFTestD_DeleteConn
    - getnameinfo
    - gai_strerror
    - Log
    linkageType: ''
    returnType: void
    signature: void *CFTestD_HandleConnection(ServerConnectionState *conn, CFTestD_Config
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFTestD_NewConn
      Src: /src/core/cf-testd/cf-testd.c:520,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-testd/cf-testd.c:521,1
    - Dst: strlcpy
      Src: /src/core/cf-testd/cf-testd.c:522,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:524,1
    - Dst: CFTestD_HandleConnection
      Src: /src/core/cf-testd/cf-testd.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ipaddr
    - info
    - config
    argTypes:
    - char*
    - ConnectionInfo*
    - CFTestD_Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 14
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: CFTestD_SpawnConnection
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - CFTestD_HandleConnection
    - Log
    - CFTestD_NewConn
    - ConnectionInfoSocket
    - strlcpy
    linkageType: ''
    returnType: void
    signature: "void CFTestD_SpawnConnection(\n    const char *ipaddr, ConnectionInfo
      *info, CFTestD_Config *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionInfoNew
      Src: /src/core/cf-testd/cf-testd.c:532,1
    - Dst: accept
      Src: /src/core/cf-testd/cf-testd.c:535,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:538,1
    - Dst: GetErrorStr
      Src: /src/core/cf-testd/cf-testd.c:538,1
    - Dst: ConnectionInfoDestroy
      Src: /src/core/cf-testd/cf-testd.c:539,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:543,1
    - Dst: getnameinfo
      Src: /src/core/cf-testd/cf-testd.c:549,1
    - Dst: CFTestD_SpawnConnection
      Src: /src/core/cf-testd/cf-testd.c:560,1
    - Dst: MapAddress
      Src: /src/core/cf-testd/cf-testd.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - sd
    - config
    argTypes:
    - int
    - CFTestD_Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 529
    functionDepth: 15
    functionLinenumber: 529
    functionLinenumberEnd: 561
    functionName: CFTestD_AcceptAndHandle
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - accept
    - getnameinfo
    - ConnectionInfoDestroy
    - ConnectionInfoNew
    - Log
    - MapAddress
    - CFTestD_SpawnConnection
    linkageType: ''
    returnType: void
    signature: void CFTestD_AcceptAndHandle(int sd, CFTestD_Config *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ServerTLSInitialize
      Src: /src/core/cf-testd/cf-testd.c:567,1
    - Dst: InitServer
      Src: /src/core/cf-testd/cf-testd.c:573,1
    - Dst: WaitForIncoming
      Src: /src/core/cf-testd/cf-testd.c:578,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:582,1
    - Dst: CFTestD_AcceptAndHandle
      Src: /src/core/cf-testd/cf-testd.c:583,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:588,1
    - Dst: GetErrorStr
      Src: /src/core/cf-testd/cf-testd.c:590,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:597,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:600,1
    - Dst: cf_closesocket
      Src: /src/core/cf-testd/cf-testd.c:601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - config
    argTypes:
    - CFTestD_Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 563
    functionDepth: 16
    functionLinenumber: 563
    functionLinenumberEnd: 605
    functionName: CFTestD_StartServer
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - cf_closesocket
    - InitServer
    - Log
    - CFTestD_AcceptAndHandle
    - ServerTLSInitialize
    - WaitForIncoming
    linkageType: ''
    returnType: int
    signature: int CFTestD_StartServer(CFTestD_Config *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringConcatenate
      Src: /src/core/cf-testd/cf-testd.c:612,1
    - Dst: xstrdup
      Src: /src/core/cf-testd/cf-testd.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - log_ctx
    - LogLevel
    - raw
    argTypes:
    - LoggingPrivContext*
    - ARG_UNUSED
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 613
    functionName: LogAddPrefix
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - StringConcatenate
    - xstrdup
    linkageType: ''
    returnType: char
    signature: "char *LogAddPrefix(LoggingPrivContext *log_ctx,\n                          ARG_UNUSED
      LogLevel level,\n                          const char *raw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/cf-testd/cf-testd.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - data
    - report_line_start
    - report_line_length
    argTypes:
    - char*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 626
    functionName: CFTestD_GetReportLine
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: bool
    signature: bool CFTestD_GetReportLine(char *data, char **report_line_start, size_t
      *report_line_length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LoggingPrivGetContext
      Src: /src/core/cf-testd/cf-testd.c:633,1
    - Dst: LoggingPrivSetContext
      Src: /src/core/cf-testd/cf-testd.c:638,1
    - Dst: xstrdup
      Src: /src/core/cf-testd/cf-testd.c:645,1
    - Dst: StringReplace
      Src: /src/core/cf-testd/cf-testd.c:646,1
    - Dst: strlen
      Src: /src/core/cf-testd/cf-testd.c:646,1
    - Dst: LoadSecretKeys
      Src: /src/core/cf-testd/cf-testd.c:650,1
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:651,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:657,1
    - Dst: FileCanOpen
      Src: /src/core/cf-testd/cf-testd.c:658,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:660,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-testd/cf-testd.c:663,1
    - Dst: FileRead
      Src: /src/core/cf-testd/cf-testd.c:666,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:669,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-testd/cf-testd.c:670,1
    - Dst: StringWriterLength
      Src: /src/core/cf-testd/cf-testd.c:673,1
    - Dst: StringWriterClose
      Src: /src/core/cf-testd/cf-testd.c:674,1
    - Dst: SeqNew
      Src: /src/core/cf-testd/cf-testd.c:676,1
    - Dst: StringGetToken
      Src: /src/core/cf-testd/cf-testd.c:679,1
    - Dst: SeqAppend
      Src: /src/core/cf-testd/cf-testd.c:682,1
    - Dst: CFTestD_GetReportLine
      Src: /src/core/cf-testd/cf-testd.c:688,1
    - Dst: SeqAppend
      Src: /src/core/cf-testd/cf-testd.c:691,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:699,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:705,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-testd/cf-testd.c:706,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:710,1
    - Dst: fflush
      Src: /src/core/cf-testd/cf-testd.c:711,1
    - Dst: CFTestD_StartServer
      Src: /src/core/cf-testd/cf-testd.c:713,1
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:715,1
    - Dst: ServerTLSDeInitialize
      Src: /src/core/cf-testd/cf-testd.c:720,1
    - Dst: LoggingPrivSetContext
      Src: /src/core/cf-testd/cf-testd.c:722,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 1
    argNames:
    - config_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 628
    functionDepth: 17
    functionLinenumber: 628
    functionLinenumberEnd: 725
    functionName: CFTestD_ServeReport
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - CFTestD_GetReportLine
    - Log
    - free
    - FileCanOpen
    - SeqAppend
    - StringWriterLength
    - fflush
    - strlen
    - FileRead
    - xstrdup
    - SeqNew
    - LoggingPrivGetContext
    - StringGetToken
    - ServerTLSDeInitialize
    - StringReplace
    - LoadSecretKeys
    - DoCleanupAndExit
    - CFTestD_StartServer
    - LoggingPrivSetContext
    - StringWriterClose
    linkageType: ''
    returnType: void
    signature: void *CFTestD_ServeReport(void *config_arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/core/cf-testd/cf-testd.c:734,1
    - Dst: fprintf
      Src: /src/core/cf-testd/cf-testd.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 741
    functionName: HandleSignal
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void HandleSignal(int signum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_addr
      Src: /src/core/cf-testd/cf-testd.c:750,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:753,1
    - Dst: strrchr
      Src: /src/core/cf-testd/cf-testd.c:758,1
    - Dst: assert
      Src: /src/core/cf-testd/cf-testd.c:759,1
    - Dst: StringEqual
      Src: /src/core/cf-testd/cf-testd.c:760,1
    - Dst: StringEqual
      Src: /src/core/cf-testd/cf-testd.c:765,1
    - Dst: ntohl
      Src: /src/core/cf-testd/cf-testd.c:771,1
    - Dst: htonl
      Src: /src/core/cf-testd/cf-testd.c:773,1
    - Dst: xstrdup
      Src: /src/core/cf-testd/cf-testd.c:778,1
    - Dst: inet_ntoa
      Src: /src/core/cf-testd/cf-testd.c:778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ip_str
    argTypes:
    - char*
    assertStmts:
    - condition: (last_dot != NULL)
      pos:
        line_end: 758
        line_start: 758
        source_file: /src/core/cf-testd/cf-testd.c
    constantsTouched: []
    func_position:
      end: 779
      start: 748
    functionDepth: 8
    functionLinenumber: 748
    functionLinenumberEnd: 779
    functionName: IncrementIPaddress
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 0
    functionsReached:
    - inet_addr
    - assert
    - ntohl
    - inet_ntoa
    - strrchr
    - Log
    - xstrdup
    - htonl
    - StringEqual
    linkageType: ''
    returnType: char
    signature: char *IncrementIPaddress(const char *ip_str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/core/cf-testd/cf-testd.c:783,1
    - Dst: signal
      Src: /src/core/cf-testd/cf-testd.c:784,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:786,1
    - Dst: cfnet_init
      Src: /src/core/cf-testd/cf-testd.c:787,1
    - Dst: MakeSignalPipe
      Src: /src/core/cf-testd/cf-testd.c:788,1
    - Dst: CFTestD_CheckOpts
      Src: /src/core/cf-testd/cf-testd.c:791,1
    - Dst: xstrdup
      Src: /src/core/cf-testd/cf-testd.c:795,1
    - Dst: xcalloc
      Src: /src/core/cf-testd/cf-testd.c:798,1
    - Dst: xcalloc
      Src: /src/core/cf-testd/cf-testd.c:801,1
    - Dst: xasprintf
      Src: /src/core/cf-testd/cf-testd.c:803,1
    - Dst: strstr
      Src: /src/core/cf-testd/cf-testd.c:805,1
    - Dst: strlen
      Src: /src/core/cf-testd/cf-testd.c:808,1
    - Dst: strlen
      Src: /src/core/cf-testd/cf-testd.c:808,1
    - Dst: xmalloc
      Src: /src/core/cf-testd/cf-testd.c:809,1
    - Dst: StringReplaceN
      Src: /src/core/cf-testd/cf-testd.c:810,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-testd/cf-testd.c:815,1
    - Dst: strstr
      Src: /src/core/cf-testd/cf-testd.c:818,1
    - Dst: strlen
      Src: /src/core/cf-testd/cf-testd.c:821,1
    - Dst: strlen
      Src: /src/core/cf-testd/cf-testd.c:821,1
    - Dst: xmalloc
      Src: /src/core/cf-testd/cf-testd.c:822,1
    - Dst: StringReplaceN
      Src: /src/core/cf-testd/cf-testd.c:823,1
    - Dst: SafeStringDuplicate
      Src: /src/core/cf-testd/cf-testd.c:828,1
    - Dst: xstrdup
      Src: /src/core/cf-testd/cf-testd.c:833,1
    - Dst: IncrementIPaddress
      Src: /src/core/cf-testd/cf-testd.c:837,1
    - Dst: free
      Src: /src/core/cf-testd/cf-testd.c:839,1
    - Dst: CFTestD_ConfigDestroy
      Src: /src/core/cf-testd/cf-testd.c:842,1
    - Dst: pthread_create
      Src: /src/core/cf-testd/cf-testd.c:847,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:850,1
    - Dst: strerror
      Src: /src/core/cf-testd/cf-testd.c:850,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-testd/cf-testd.c:857,1
    - Dst: pthread_join
      Src: /src/core/cf-testd/cf-testd.c:863,1
    - Dst: Log
      Src: /src/core/cf-testd/cf-testd.c:866,1
    - Dst: strerror
      Src: /src/core/cf-testd/cf-testd.c:866,1
    - Dst: CFTestD_ConfigDestroy
      Src: /src/core/cf-testd/cf-testd.c:872,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-testd/cf-testd.c:875,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 781
    functionDepth: 10
    functionLinenumber: 781
    functionLinenumberEnd: 877
    functionName: main
    functionSourceFile: /src/core/cf-testd/cf-testd.c
    functionUses: 3
    functionsReached:
    - pthread_create
    - CFTestD_ConfigDestroy
    - CallCleanupFunctions
    - MakeSignalPipe
    - pthread_join
    - Log
    - free
    - strlen
    - strerror
    - xstrdup
    - IncrementIPaddress
    - xasprintf
    - cfnet_init
    - xmalloc
    - signal
    - xcalloc
    - StringReplaceN
    - strstr
    - SafeStringDuplicate
    - CFTestD_CheckOpts
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/core/cf-serverd/cf-serverd.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: ThisAgentInit
    functionSourceFile: /src/core/cf-serverd/cf-serverd.c
    functionUses: 4
    functionsReached:
    - umask
    linkageType: ''
    returnType: void
    signature: void ThisAgentInit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/core/cf-serverd/cf-serverd.c:49,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd.c:54,1
    - Dst: CheckOpts
      Src: /src/core/cf-serverd/cf-serverd.c:56,1
    - Dst: EvalContextNew
      Src: /src/core/cf-serverd/cf-serverd.c:57,1
    - Dst: GenericAgentConfigApply
      Src: /src/core/cf-serverd/cf-serverd.c:58,1
    - Dst: strrchr
      Src: /src/core/cf-serverd/cf-serverd.c:61,1
    - Dst: GenericAgentDiscoverContext
      Src: /src/core/cf-serverd/cf-serverd.c:63,1
    - Dst: Nova_InitializeLeech2
      Src: /src/core/cf-serverd/cf-serverd.c:65,1
    - Dst: SelectAndLoadPolicy
      Src: /src/core/cf-serverd/cf-serverd.c:67,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd.c:71,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd.c:72,1
    - Dst: GenericAgentPostLoadInit
      Src: /src/core/cf-serverd/cf-serverd.c:75,1
    - Dst: ThisAgentInit
      Src: /src/core/cf-serverd/cf-serverd.c:76,1
    - Dst: KeepPromises
      Src: /src/core/cf-serverd/cf-serverd.c:79,1
    - Dst: Summarize
      Src: /src/core/cf-serverd/cf-serverd.c:80,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd.c:83,1
    - Dst: RequestReloadConfig
      Src: /src/core/cf-serverd/cf-serverd.c:85,1
    - Dst: StartServer
      Src: /src/core/cf-serverd/cf-serverd.c:88,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-serverd/cf-serverd.c:92,1
    - Dst: GenericAgentFinalize
      Src: /src/core/cf-serverd/cf-serverd.c:93,1
    - Dst: CleanReportBookFilterSet
      Src: /src/core/cf-serverd/cf-serverd.c:94,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-serverd/cf-serverd.c:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 42
    functionDepth: 17
    functionLinenumber: 42
    functionLinenumberEnd: 98
    functionName: main
    functionSourceFile: /src/core/cf-serverd/cf-serverd.c
    functionUses: 3
    functionsReached:
    - PolicyDestroy
    - CallCleanupFunctions
    - Log
    - open
    - close
    - Summarize
    - KeepPromises
    - CheckOpts
    - SelectAndLoadPolicy
    - GenericAgentPostLoadInit
    - EvalContextNew
    - strrchr
    - CleanReportBookFilterSet
    - Nova_InitializeLeech2
    - StartServer
    - DoCleanupAndExit
    - RequestReloadConfig
    - GenericAgentConfigApply
    - GenericAgentFinalize
    - GenericAgentDiscoverContext
    - ThisAgentInit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:108,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:109,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_classic.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (i == PROTOCOL_COMMAND_BAD)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/core/cf-serverd/server_classic.c
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: GetCommandClassic
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 1
    functionsReached:
    - assert
    - strncmp
    - strlen
    linkageType: ''
    returnType: ProtocolCommandClassic
    signature: ProtocolCommandClassic GetCommandClassic(char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realpath
      Src: /src/core/cf-serverd/server_classic.c:125,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:130,1
    - Dst: CompressPath
      Src: /src/core/cf-serverd/server_classic.c:131,1
    - Dst: MapName
      Src: /src/core/cf-serverd/server_classic.c:135,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:141,1
    - Dst: ToLower
      Src: /src/core/cf-serverd/server_classic.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - req_path
    - res_path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 9
    functionLinenumber: 121
    functionLinenumberEnd: 148
    functionName: ResolveFilename
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - strlen
    - MapName
    - realpath
    - CompressPath
    - ToLower
    - memset
    linkageType: ''
    returnType: bool
    signature: bool ResolveFilename(const char *req_path, char *res_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:152,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_classic.c:153,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_classic.c:159,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:166,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - stem
    - request
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 169
    functionName: PathMatch
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strcmp
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool PathMatch(const char *stem, const char *request)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TranslatePath
      Src: /src/core/cf-serverd/server_classic.c:182,1
    - Dst: ResolveFilename
      Src: /src/core/cf-serverd/server_classic.c:184,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:186,1
    - Dst: lstat
      Src: /src/core/cf-serverd/server_classic.c:188,1
    - Dst: S_ISLNK
      Src: /src/core/cf-serverd/server_classic.c:188,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:190,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_classic.c:191,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:196,1
    - Dst: strlcpy
      Src: /src/core/cf-serverd/server_classic.c:197,1
    - Dst: lstat
      Src: /src/core/cf-serverd/server_classic.c:200,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:202,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_classic.c:203,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:207,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:211,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:219,1
    - Dst: strlcpy
      Src: /src/core/cf-serverd/server_classic.c:222,1
    - Dst: MapName
      Src: /src/core/cf-serverd/server_classic.c:223,1
    - Dst: PathMatch
      Src: /src/core/cf-serverd/server_classic.c:225,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:227,1
    - Dst: stat
      Src: /src/core/cf-serverd/server_classic.c:229,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:231,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:239,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:244,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:246,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-serverd/server_classic.c:247,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:250,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:253,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-serverd/server_classic.c:254,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:257,1
    - Dst: strlcpy
      Src: /src/core/cf-serverd/server_classic.c:266,1
    - Dst: MapName
      Src: /src/core/cf-serverd/server_classic.c:267,1
    - Dst: PathMatch
      Src: /src/core/cf-serverd/server_classic.c:269,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:271,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-serverd/server_classic.c:272,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:275,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:285,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:290,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:295,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 4
    argNames:
    - ctx
    - req_path
    - conn
    - encrypt
    argTypes:
    - EvalContext*
    - char*
    - ServerConnectionState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 171
    functionDepth: 11
    functionLinenumber: 171
    functionLinenumberEnd: 299
    functionName: AccessControl
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - stat
    - S_ISLNK
    - MapName
    - IsMatchItemIn
    - PathMatch
    - TranslatePath
    - lstat
    - Log
    - IsRegexItemIn
    - ResolveFilename
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool AccessControl(EvalContext *ctx, const char *req_path, ServerConnectionState
      *conn, int encrypt)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:310,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:312,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:314,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:314,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:316,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:320,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:327,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_classic.c:329,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:331,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:335,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:344,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:350,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:352,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-serverd/server_classic.c:353,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:356,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:360,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:363,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-serverd/server_classic.c:364,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:367,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_classic.c:375,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:377,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-serverd/server_classic.c:378,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:381,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:389,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:394,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:399,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 4
    argNames:
    - ctx
    - in
    - conn
    - encrypt
    argTypes:
    - EvalContext*
    - char*
    - ServerConnectionState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 302
    functionDepth: 11
    functionLinenumber: 302
    functionLinenumberEnd: 403
    functionName: LiteralAccessControl
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - IsMatchItemIn
    - sscanf
    - Log
    - strcmp
    - IsRegexItemIn
    linkageType: ''
    returnType: int
    signature: int LiteralAccessControl(EvalContext *ctx, char *in, ServerConnectionState
      *conn, int encrypt)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:413,1
    - Dst: ListPersistentClasses
      Src: /src/core/cf-serverd/server_classic.c:414,1
    - Dst: StringMatchFull
      Src: /src/core/cf-serverd/server_classic.c:423,1
    - Dst: StringMatchFull
      Src: /src/core/cf-serverd/server_classic.c:428,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:430,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:436,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:446,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:455,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:458,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-serverd/server_classic.c:459,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:462,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:467,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:471,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-serverd/server_classic.c:472,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:475,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_classic.c:484,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:486,1
    - Dst: IsRegexItemIn
      Src: /src/core/cf-serverd/server_classic.c:487,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:490,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:500,1
    - Dst: AppendItem
      Src: /src/core/cf-serverd/server_classic.c:503,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:508,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:515,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/server_classic.c:522,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 4
    argNames:
    - ctx
    - in
    - conn
    - encrypt
    argTypes:
    - EvalContext*
    - char*
    - ServerConnectionState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 406
    functionDepth: 11
    functionLinenumber: 406
    functionLinenumberEnd: 524
    functionName: ContextAccessControl
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - AppendItem
    - IsMatchItemIn
    - sscanf
    - ListPersistentClasses
    - StringMatchFull
    - Log
    - IsRegexItemIn
    - strcmp
    - DeleteItemList
    linkageType: ''
    returnType: Item
    signature: Item *ContextAccessControl(EvalContext *ctx, char *in, ServerConnectionState
      *conn, int encrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:532,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:536,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:539,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 6
    argNames:
    - in
    - len1
    - len2
    - out1
    - out2
    - out3
    argTypes:
    - char*
    - int
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 544
    functionName: cfscanf
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int cfscanf(char *in, int len1, int len2, char *out1, char *out2, char
      *out3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:550,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:552,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:553,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:554,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:556,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:561,1
    - Dst: ToLowerStrInplace
      Src: /src/core/cf-serverd/server_classic.c:564,1
    - Dst: strlcpy
      Src: /src/core/cf-serverd/server_classic.c:566,1
    - Dst: SetConnIdentity
      Src: /src/core/cf-serverd/server_classic.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - buf
    argTypes:
    - ServerConnectionState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 546
    functionDepth: 8
    functionLinenumber: 546
    functionLinenumberEnd: 569
    functionName: SetConnectionData
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - SetConnIdentity
    - ToLowerStrInplace
    - sscanf
    - Log
    - strlcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void SetConnectionData(ServerConnectionState *conn, char *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_classic.c:575,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_classic.c:575,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_classic.c:576,1
    - Dst: HavePublicKey
      Src: /src/core/cf-serverd/server_classic.c:578,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:580,1
    - Dst: RSA_get0_key
      Src: /src/core/cf-serverd/server_classic.c:585,1
    - Dst: RSA_get0_key
      Src: /src/core/cf-serverd/server_classic.c:586,1
    - Dst: BN_cmp
      Src: /src/core/cf-serverd/server_classic.c:588,1
    - Dst: BN_cmp
      Src: /src/core/cf-serverd/server_classic.c:588,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:590,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:593,1
    - Dst: RSA_free
      Src: /src/core/cf-serverd/server_classic.c:594,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_classic.c:604,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:606,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:609,1
    - Dst: SavePublicKey
      Src: /src/core/cf-serverd/server_classic.c:611,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:616,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - conn
    - key
    argTypes:
    - ServerConnectionState*
    - RSA*
    assertStmts:
    - condition: (udigest != NULL)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/core/cf-serverd/server_classic.c
    constantsTouched: []
    func_position:
      end: 623
      start: 571
    functionDepth: 11
    functionLinenumber: 571
    functionLinenumberEnd: 623
    functionName: CheckStoreKey
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - SavePublicKey
    - assert
    - HavePublicKey
    - IsMatchItemIn
    - KeyPrintableHash
    - RSA_get0_key
    - ConnectionInfoKey
    - Log
    - SendTransaction
    - RSA_free
    linkageType: ''
    returnType: bool
    signature: bool CheckStoreKey(ServerConnectionState *conn, RSA *key)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:631,1
    - Dst: RSA_size
      Src: /src/core/cf-serverd/server_classic.c:636,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:660,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_classic.c:664,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:666,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:674,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:683,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:691,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:700,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:708,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:714,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:725,1
    - Dst: RSA_private_decrypt
      Src: /src/core/cf-serverd/server_classic.c:730,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:738,1
    - Dst: CryptoLastErrorString
      Src: /src/core/cf-serverd/server_classic.c:740,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:741,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:747,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:760,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:769,1
    - Dst: HashString
      Src: /src/core/cf-serverd/server_classic.c:780,1
    - Dst: ReceiveTransaction
      Src: /src/core/cf-serverd/server_classic.c:788,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:791,1
    - Dst: BN_mpi2bn
      Src: /src/core/cf-serverd/server_classic.c:796,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:798,1
    - Dst: CryptoLastErrorString
      Src: /src/core/cf-serverd/server_classic.c:800,1
    - Dst: ReceiveTransaction
      Src: /src/core/cf-serverd/server_classic.c:807,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:810,1
    - Dst: BN_mpi2bn
      Src: /src/core/cf-serverd/server_classic.c:815,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:817,1
    - Dst: CryptoLastErrorString
      Src: /src/core/cf-serverd/server_classic.c:819,1
    - Dst: BN_free
      Src: /src/core/cf-serverd/server_classic.c:820,1
    - Dst: RSA_new
      Src: /src/core/cf-serverd/server_classic.c:825,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:828,1
    - Dst: TLSErrorString
      Src: /src/core/cf-serverd/server_classic.c:829,1
    - Dst: ERR_get_error
      Src: /src/core/cf-serverd/server_classic.c:829,1
    - Dst: BN_free
      Src: /src/core/cf-serverd/server_classic.c:830,1
    - Dst: BN_free
      Src: /src/core/cf-serverd/server_classic.c:831,1
    - Dst: RSA_set0_key
      Src: /src/core/cf-serverd/server_classic.c:834,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:836,1
    - Dst: TLSErrorString
      Src: /src/core/cf-serverd/server_classic.c:837,1
    - Dst: ERR_get_error
      Src: /src/core/cf-serverd/server_classic.c:837,1
    - Dst: BN_free
      Src: /src/core/cf-serverd/server_classic.c:838,1
    - Dst: BN_free
      Src: /src/core/cf-serverd/server_classic.c:839,1
    - Dst: RSA_free
      Src: /src/core/cf-serverd/server_classic.c:840,1
    - Dst: KeyNew
      Src: /src/core/cf-serverd/server_classic.c:846,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:849,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_classic.c:850,1
    - Dst: LastSaw1
      Src: /src/core/cf-serverd/server_classic.c:852,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_classic.c:852,1
    - Dst: CheckStoreKey
      Src: /src/core/cf-serverd/server_classic.c:856,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:864,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:865,1
    - Dst: BN_new
      Src: /src/core/cf-serverd/server_classic.c:870,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:873,1
    - Dst: BN_rand
      Src: /src/core/cf-serverd/server_classic.c:878,1
    - Dst: BN_bn2mpi
      Src: /src/core/cf-serverd/server_classic.c:881,1
    - Dst: BN_free
      Src: /src/core/cf-serverd/server_classic.c:882,1
    - Dst: HashString
      Src: /src/core/cf-serverd/server_classic.c:885,1
    - Dst: RSA_size
      Src: /src/core/cf-serverd/server_classic.c:889,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_classic.c:891,1
    - Dst: RSA_public_encrypt
      Src: /src/core/cf-serverd/server_classic.c:893,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:900,1
    - Dst: CryptoLastErrorString
      Src: /src/core/cf-serverd/server_classic.c:902,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:906,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:914,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:915,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:923,1
    - Dst: RSA_get0_key
      Src: /src/core/cf-serverd/server_classic.c:928,1
    - Dst: BN_bn2mpi
      Src: /src/core/cf-serverd/server_classic.c:931,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:932,1
    - Dst: BN_bn2mpi
      Src: /src/core/cf-serverd/server_classic.c:935,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:936,1
    - Dst: ReceiveTransaction
      Src: /src/core/cf-serverd/server_classic.c:944,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:949,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:955,1
    - Dst: HashesMatch
      Src: /src/core/cf-serverd/server_classic.c:963,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:965,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:971,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:979,1
    - Dst: CfSessionKeySize
      Src: /src/core/cf-serverd/server_classic.c:982,1
    - Dst: ReceiveTransaction
      Src: /src/core/cf-serverd/server_classic.c:983,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:985,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:992,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:999,1
    - Dst: xmalloc
      Src: /src/core/cf-serverd/server_classic.c:1005,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1010,1
    - Dst: RSA_private_decrypt
      Src: /src/core/cf-serverd/server_classic.c:1015,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1022,1
    - Dst: CryptoLastErrorString
      Src: /src/core/cf-serverd/server_classic.c:1024,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1028,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1036,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 174
    argCount: 3
    argNames:
    - conn
    - recvbuffer
    - recvlen
    argTypes:
    - ServerConnectionState*
    - char*
    - unsigned int
    assertStmts:
    - condition: (counter_challenge_len < encrypted_len - 11)
      pos:
        line_end: 890
        line_start: 890
        source_file: /src/core/cf-serverd/server_classic.c
    constantsTouched: []
    func_position:
      end: 1041
      start: 625
    functionDepth: 12
    functionLinenumber: 625
    functionLinenumberEnd: 1041
    functionName: AuthenticationDialogue
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - CheckStoreKey
    - KeyPrintableHash
    - BN_new
    - HashesMatch
    - RSA_get0_key
    - Log
    - RSA_free
    - HashString
    - RSA_set0_key
    - BN_bn2mpi
    - RSA_size
    - RSA_new
    - CryptoLastErrorString
    - RSA_public_encrypt
    - CfSessionKeySize
    - sscanf
    - SendTransaction
    - strcmp
    - ReceiveTransaction
    - RSA_private_decrypt
    - BN_mpi2bn
    - assert
    - xmalloc
    - LastSaw1
    - ERR_get_error
    - KeyNew
    - memcpy
    - TLSErrorString
    - BN_free
    - BN_rand
    linkageType: ''
    returnType: bool
    signature: bool AuthenticationDialogue(ServerConnectionState *conn, char *recvbuffer,
      unsigned int recvlen)
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1058,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1059,1
    - Dst: ReceiveTransaction
      Src: /src/core/cf-serverd/server_classic.c:1061,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:1067,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1069,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-serverd/server_classic.c:1074,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1076,1
    - Dst: GetCommandClassic
      Src: /src/core/cf-serverd/server_classic.c:1080,1
    - Dst: SetConnectionData
      Src: /src/core/cf-serverd/server_classic.c:1087,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:1087,1
    - Dst: IsUserNameValid
      Src: /src/core/cf-serverd/server_classic.c:1089,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1091,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1093,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1109,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1111,1
    - Dst: AuthenticationDialogue
      Src: /src/core/cf-serverd/server_classic.c:1115,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1118,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1119,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1134,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1137,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_classic.c:1142,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:1150,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_classic.c:1152,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:1152,1
    - Dst: strspn
      Src: /src/core/cf-serverd/server_classic.c:1156,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1158,1
    - Dst: DoExec2
      Src: /src/core/cf-serverd/server_classic.c:1161,1
    - Dst: Terminate
      Src: /src/core/cf-serverd/server_classic.c:1167,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_classic.c:1172,1
    - Dst: Version
      Src: /src/core/cf-serverd/server_classic.c:1172,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:1173,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1177,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1178,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1182,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1183,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_classic.c:1187,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_classic.c:1190,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_classic.c:1190,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1194,1
    - Dst: AccessControl
      Src: /src/core/cf-serverd/server_classic.c:1198,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1200,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1201,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1205,1
    - Dst: CfGetFile
      Src: /src/core/cf-serverd/server_classic.c:1217,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1222,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1223,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1227,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1228,1
    - Dst: DecryptString
      Src: /src/core/cf-serverd/server_classic.c:1232,1
    - Dst: cfscanf
      Src: /src/core/cf-serverd/server_classic.c:1236,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:1236,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:1236,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_classic.c:1238,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1240,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1241,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1247,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1248,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_classic.c:1257,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_classic.c:1260,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_classic.c:1260,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1264,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1268,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1269,1
    - Dst: AccessControl
      Src: /src/core/cf-serverd/server_classic.c:1271,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1273,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1274,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1278,1
    - Dst: CfEncryptGetFile
      Src: /src/core/cf-serverd/server_classic.c:1285,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1289,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1290,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1294,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1295,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1299,1
    - Dst: DecryptString
      Src: /src/core/cf-serverd/server_classic.c:1301,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:1305,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1307,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1308,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1312,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1313,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_classic.c:1315,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_classic.c:1318,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_classic.c:1318,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1322,1
    - Dst: AccessControl
      Src: /src/core/cf-serverd/server_classic.c:1326,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1328,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1329,1
    - Dst: CfSecOpenDirectory
      Src: /src/core/cf-serverd/server_classic.c:1333,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1337,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1338,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_classic.c:1340,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_classic.c:1343,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_classic.c:1343,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1347,1
    - Dst: AccessControl
      Src: /src/core/cf-serverd/server_classic.c:1351,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1353,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1354,1
    - Dst: CfOpenDirectory
      Src: /src/core/cf-serverd/server_classic.c:1358,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1362,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1363,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1367,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1368,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1372,1
    - Dst: DecryptString
      Src: /src/core/cf-serverd/server_classic.c:1374,1
    - Dst: DebugBinOut
      Src: /src/core/cf-serverd/server_classic.c:1380,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1381,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:1384,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1386,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1387,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1394,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1395,1
    - Dst: time
      Src: /src/core/cf-serverd/server_classic.c:1404,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1406,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_classic.c:1406,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:1407,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_classic.c:1413,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_classic.c:1416,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_classic.c:1416,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1420,1
    - Dst: AccessControl
      Src: /src/core/cf-serverd/server_classic.c:1424,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1426,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1427,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_classic.c:1433,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:1436,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1441,1
    - Dst: StatFile
      Src: /src/core/cf-serverd/server_classic.c:1442,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1448,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1452,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1453,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1457,1
    - Dst: DecryptString
      Src: /src/core/cf-serverd/server_classic.c:1458,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:1462,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1464,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1465,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_classic.c:1474,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1475,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_classic.c:1477,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_classic.c:1480,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_classic.c:1480,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1484,1
    - Dst: AccessControl
      Src: /src/core/cf-serverd/server_classic.c:1488,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1490,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1491,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_classic.c:1495,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_classic.c:1498,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1500,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:1500,1
    - Dst: CompareLocalHash
      Src: /src/core/cf-serverd/server_classic.c:1503,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:1504,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1509,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1513,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1514,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1518,1
    - Dst: DecryptString
      Src: /src/core/cf-serverd/server_classic.c:1519,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:1524,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1526,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1527,1
    - Dst: LiteralAccessControl
      Src: /src/core/cf-serverd/server_classic.c:1534,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1536,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1537,1
    - Dst: GetServerLiteral
      Src: /src/core/cf-serverd/server_classic.c:1541,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1545,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1549,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1550,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1554,1
    - Dst: DecryptString
      Src: /src/core/cf-serverd/server_classic.c:1555,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:1560,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1562,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1563,1
    - Dst: ContextAccessControl
      Src: /src/core/cf-serverd/server_classic.c:1570,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1572,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1573,1
    - Dst: ReplyServerContext
      Src: /src/core/cf-serverd/server_classic.c:1577,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1581,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1585,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1586,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1590,1
    - Dst: DecryptString
      Src: /src/core/cf-serverd/server_classic.c:1591,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:1595,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1597,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1598,1
    - Dst: LiteralAccessControl
      Src: /src/core/cf-serverd/server_classic.c:1602,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1604,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_classic.c:1605,1
    - Dst: GetServerQuery
      Src: /src/core/cf-serverd/server_classic.c:1609,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_classic.c:1617,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1621,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_classic.c:1625,1
    - Dst: DecryptString
      Src: /src/core/cf-serverd/server_classic.c:1626,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_classic.c:1630,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_classic.c:1630,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1632,1
    - Dst: LiteralAccessControl
      Src: /src/core/cf-serverd/server_classic.c:1636,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1638,1
    - Dst: ReceiveCollectCall
      Src: /src/core/cf-serverd/server_classic.c:1642,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1653,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_classic.c:1656,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_classic.c:1657,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_classic.c:1658,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 356
    argCount: 2
    argNames:
    - ctx
    - conn
    argTypes:
    - EvalContext*
    - ServerConnectionState*
    assertStmts:
    - condition: "(CF_BUFSIZE + CF_SMALL_OFFSET + (unsigned long) CF_DEFAULT_DIGEST_LEN\n
        \              <= sizeof(recvbuffer))"
      pos:
        line_end: 1498
        line_start: 1497
        source_file: /src/core/cf-serverd/server_classic.c
    - condition: (CF_DEFAULT_DIGEST_LEN <= EVP_MAX_MD_SIZE)
      pos:
        line_end: 1494
        line_start: 1494
        source_file: /src/core/cf-serverd/server_classic.c
    - condition: "(strncmp(PROTOCOL_CLASSIC[PROTOCOL_COMMAND_EXEC],\n                       recvbuffer,
        EXEC_len) == 0)"
      pos:
        line_end: 1152
        line_start: 1151
        source_file: /src/core/cf-serverd/server_classic.c
    - condition: (conn->session_key)
      pos:
        line_end: 1141
        line_start: 1141
        source_file: /src/core/cf-serverd/server_classic.c
    constantsTouched: []
    func_position:
      end: 1660
      start: 1045
    functionDepth: 13
    functionLinenumber: 1045
    functionLinenumberEnd: 1660
    functionName: BusyWithClassicConnection
    functionSourceFile: /src/core/cf-serverd/server_classic.c
    functionUses: 0
    functionsReached:
    - strncmp
    - RefuseAccess
    - AuthenticationDialogue
    - Version
    - KeyPrintableHash
    - ShortcutsExpand
    - strspn
    - ContextAccessControl
    - cfscanf
    - Log
    - CfGetFile
    - Terminate
    - time
    - AccessControl
    - snprintf
    - strlen
    - CfSecOpenDirectory
    - sscanf
    - GetServerQuery
    - SendTransaction
    - strcmp
    - ReceiveTransaction
    - strcpy
    - DecryptString
    - DebugBinOut
    - memset
    - LiteralAccessControl
    - CfEncryptGetFile
    - CompareLocalHash
    - IsUserNameValid
    - assert
    - ReceiveCollectCall
    - ConnectionInfoKey
    - DoExec2
    - CfOpenDirectory
    - GetErrorStr
    - memcpy
    - GetCommandClassic
    - IsPendingTermination
    - GetServerLiteral
    - StatFile
    - ReplyServerContext
    - SetConnectionData
    linkageType: ''
    returnType: bool
    signature: bool BusyWithClassicConnection(EvalContext *ctx, ServerConnectionState
      *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:102,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:104,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:108,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:111,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:115,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:118,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:122,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:125,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:129,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:132,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:136,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:139,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:143,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:146,1
    - Dst: acl_Summarise
      Src: /src/core/cf-serverd/server_transform.c:147,1
    - Dst: acl_Summarise
      Src: /src/core/cf-serverd/server_transform.c:148,1
    - Dst: acl_Summarise
      Src: /src/core/cf-serverd/server_transform.c:149,1
    - Dst: acl_Summarise
      Src: /src/core/cf-serverd/server_transform.c:150,1
    - Dst: acl_Summarise
      Src: /src/core/cf-serverd/server_transform.c:151,1
    - Dst: acl_Summarise
      Src: /src/core/cf-serverd/server_transform.c:152,1
    - Dst: acl_Summarise
      Src: /src/core/cf-serverd/server_transform.c:153,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:155,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:163,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:168,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:173,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:182,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:187,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:193,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:197,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:201,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:207,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:211,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:215,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 97
    functionDepth: 8
    functionLinenumber: 97
    functionLinenumberEnd: 216
    functionName: Summarize
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached:
    - acl_Summarise
    - Log
    linkageType: ''
    returnType: void
    signature: void Summarize()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UnexpectedError
      Src: /src/core/cf-serverd/server_transform.c:224,1
    - Dst: calloc
      Src: /src/core/cf-serverd/server_transform.c:227,1
    - Dst: calloc
      Src: /src/core/cf-serverd/server_transform.c:228,1
    - Dst: calloc
      Src: /src/core/cf-serverd/server_transform.c:229,1
    - Dst: calloc
      Src: /src/core/cf-serverd/server_transform.c:230,1
    - Dst: calloc
      Src: /src/core/cf-serverd/server_transform.c:231,1
    - Dst: calloc
      Src: /src/core/cf-serverd/server_transform.c:232,1
    - Dst: calloc
      Src: /src/core/cf-serverd/server_transform.c:233,1
    - Dst: StringMapNew
      Src: /src/core/cf-serverd/server_transform.c:234,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:240,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:240,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:241,1
    - Dst: KeepControlPromises
      Src: /src/core/cf-serverd/server_transform.c:244,1
    - Dst: KeepPromiseBundles
      Src: /src/core/cf-serverd/server_transform.c:245,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - policy
    - config
    - unresolved_constraints
    argTypes:
    - EvalContext*
    - Policy*
    - GenericAgentConfig*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 218
    functionDepth: 8
    functionLinenumber: 218
    functionLinenumberEnd: 246
    functionName: KeepPromises
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 3
    functionsReached:
    - GetErrorStr
    - DoCleanupAndExit
    - calloc
    - UnexpectedError
    - KeepControlPromises
    - Log
    - KeepPromiseBundles
    - StringMapNew
    linkageType: ''
    returnType: void
    signature: void KeepPromises(EvalContext *ctx, const Policy *policy, GenericAgentConfig
      *config, bool *unresolved_constraints)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: StringContainsUnresolved
      Src: /src/core/cf-serverd/server_transform.c:289,1
    - Dst: StringContainsUnresolved
      Src: /src/core/cf-serverd/server_transform.c:298,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:298,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:313,1
    - Dst: debug_abort_if_reached
      Src: /src/core/cf-serverd/server_transform.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - value
    - value_type
    argTypes:
    - void*
    - DataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 280
    functionDepth: 8
    functionLinenumber: 280
    functionLinenumberEnd: 317
    functionName: ValueHasUnresolvedVars
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - debug_abort_if_reached
    - Log
    - StringContainsUnresolved
    - RlistScalarValue
    linkageType: ''
    returnType: bool
    signature: bool ValueHasUnresolvedVars(const void *value, DataType value_type)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: SetChecksumUpdatesDefault
      Src: /src/core/cf-serverd/server_transform.c:325,1
    - Dst: Banner
      Src: /src/core/cf-serverd/server_transform.c:333,1
    - Dst: PolicyResolve
      Src: /src/core/cf-serverd/server_transform.c:335,1
    - Dst: ControlBodyConstraints
      Src: /src/core/cf-serverd/server_transform.c:339,1
    - Dst: SeqLength
      Src: /src/core/cf-serverd/server_transform.c:345,1
    - Dst: SeqAt
      Src: /src/core/cf-serverd/server_transform.c:347,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-serverd/server_transform.c:349,1
    - Dst: VarRefParseFromScope
      Src: /src/core/cf-serverd/server_transform.c:354,1
    - Dst: EvalContextVariableGet
      Src: /src/core/cf-serverd/server_transform.c:356,1
    - Dst: VarRefDestroy
      Src: /src/core/cf-serverd/server_transform.c:357,1
    - Dst: ValueHasUnresolvedVars
      Src: /src/core/cf-serverd/server_transform.c:361,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:364,1
    - Dst: SetFacility
      Src: /src/core/cf-serverd/server_transform.c:366,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:368,1
    - Dst: BooleanFromString
      Src: /src/core/cf-serverd/server_transform.c:370,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:371,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:375,1
    - Dst: BooleanFromString
      Src: /src/core/cf-serverd/server_transform.c:377,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:378,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:382,1
    - Dst: BooleanFromString
      Src: /src/core/cf-serverd/server_transform.c:384,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:385,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:387,1
    - Dst: IntFromString
      Src: /src/core/cf-serverd/server_transform.c:389,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:402,1
    - Dst: DBSetMaximumConcurrentTransactions
      Src: /src/core/cf-serverd/server_transform.c:404,1
    - Dst: EnterpriseGetMaxCfHubProcesses
      Src: /src/core/cf-serverd/server_transform.c:405,1
    - Dst: SetMaxOpenFiles
      Src: /src/core/cf-serverd/server_transform.c:408,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:410,1
    - Dst: IntFromString
      Src: /src/core/cf-serverd/server_transform.c:412,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:413,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:417,1
    - Dst: BooleanFromString
      Src: /src/core/cf-serverd/server_transform.c:419,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:420,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:424,1
    - Dst: IntFromString
      Src: /src/core/cf-serverd/server_transform.c:426,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:427,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:431,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:433,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:435,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_transform.c:441,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:441,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:442,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:446,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:448,1
    - Dst: IsItemIn
      Src: /src/core/cf-serverd/server_transform.c:452,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:452,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:454,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:454,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:458,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:460,1
    - Dst: IsItemIn
      Src: /src/core/cf-serverd/server_transform.c:464,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:464,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:466,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:466,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:470,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:474,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:476,1
    - Dst: IsItemIn
      Src: /src/core/cf-serverd/server_transform.c:480,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:480,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:482,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:482,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:486,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:488,1
    - Dst: IsItemIn
      Src: /src/core/cf-serverd/server_transform.c:492,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:492,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:494,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:494,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:498,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:500,1
    - Dst: IsItemIn
      Src: /src/core/cf-serverd/server_transform.c:504,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:504,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:506,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:506,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:510,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:512,1
    - Dst: IsItemIn
      Src: /src/core/cf-serverd/server_transform.c:516,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:516,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:518,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:518,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:522,1
    - Dst: SetCfenginePort
      Src: /src/core/cf-serverd/server_transform.c:524,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_transform.c:525,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:528,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:531,1
    - Dst: SetBindInterface
      Src: /src/core/cf-serverd/server_transform.c:533,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:535,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_transform.c:537,1
    - Dst: xstrdup
      Src: /src/core/cf-serverd/server_transform.c:538,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:539,1
    - Dst: IsControlBody
      Src: /src/core/cf-serverd/server_transform.c:542,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_transform.c:544,1
    - Dst: xstrdup
      Src: /src/core/cf-serverd/server_transform.c:545,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:546,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-serverd/server_transform.c:555,1
    - Dst: SetSyslogHost
      Src: /src/core/cf-serverd/server_transform.c:559,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:561,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:565,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-serverd/server_transform.c:569,1
    - Dst: SetSyslogPort
      Src: /src/core/cf-serverd/server_transform.c:572,1
    - Dst: IntFromString
      Src: /src/core/cf-serverd/server_transform.c:572,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-serverd/server_transform.c:575,1
    - Dst: BooleanFromString
      Src: /src/core/cf-serverd/server_transform.c:578,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:579,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-serverd/server_transform.c:582,1
    - Dst: IntFromString
      Src: /src/core/cf-serverd/server_transform.c:585,1
    - Dst: EvalContextVariableControlCommonGet
      Src: /src/core/cf-serverd/server_transform.c:588,1
    - Dst: DoubleFromString
      Src: /src/core/cf-serverd/server_transform.c:592,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:595,1
    - Dst: EvalContextUpdateDumpReports
      Src: /src/core/cf-serverd/server_transform.c:601,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 163
    argCount: 4
    argNames:
    - ctx
    - policy
    - config
    - unresolved_vars
    argTypes:
    - EvalContext*
    - Policy*
    - GenericAgentConfig*
    - bool*
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/core/cf-serverd/server_transform.c
    - condition: (SERVER_ACCESS.allowtlsversion == NULL)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/core/cf-serverd/server_transform.c
    - condition: (SERVER_ACCESS.allowciphers == NULL)
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/core/cf-serverd/server_transform.c
    constantsTouched: []
    func_position:
      end: 603
      start: 319
    functionDepth: 18
    functionLinenumber: 319
    functionLinenumberEnd: 603
    functionName: KeepControlPromises
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 3
    functionsReached:
    - SetBindInterface
    - SetSyslogHost
    - VarRefDestroy
    - SetFacility
    - Log
    - DoubleFromString
    - RlistScalarValue
    - SeqLength
    - BooleanFromString
    - PolicyResolve
    - strlen
    - EvalContextUpdateDumpReports
    - IsDefinedClass
    - xstrdup
    - IntFromString
    - SeqAt
    - Banner
    - DBSetMaximumConcurrentTransactions
    - assert
    - IsControlBody
    - VarRefParseFromScope
    - SetSyslogPort
    - EnterpriseGetMaxCfHubProcesses
    - ValueHasUnresolvedVars
    - ControlBodyConstraints
    - memcpy
    - IsItemIn
    - SetMaxOpenFiles
    - SetCfenginePort
    - EvalContextVariableGet
    - SetChecksumUpdatesDefault
    - PrependItem
    - EvalContextVariableControlCommonGet
    linkageType: ''
    returnType: void
    signature: void KeepControlPromises(EvalContext *ctx, const Policy *policy, GenericAgentConfig
      *config, bool *unresolved_vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: IsControlBody
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsControlBody(e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - promise_type
    - seq
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 640
    functionName: IsPromiseTypeNotInTypeSequence
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool IsPromiseTypeNotInTypeSequence(const char *promise_type,\n                                           const
      char * const *seq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EvalContextStackPushBundleFrame
      Src: /src/core/cf-serverd/server_transform.c:644,1
    - Dst: BundleGetSection
      Src: /src/core/cf-serverd/server_transform.c:648,1
    - Dst: SeqLength
      Src: /src/core/cf-serverd/server_transform.c:651,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:653,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/cf-serverd/server_transform.c:658,1
    - Dst: SeqLength
      Src: /src/core/cf-serverd/server_transform.c:659,1
    - Dst: SeqAt
      Src: /src/core/cf-serverd/server_transform.c:661,1
    - Dst: ExpandPromise
      Src: /src/core/cf-serverd/server_transform.c:662,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-serverd/server_transform.c:664,1
    - Dst: SeqLength
      Src: /src/core/cf-serverd/server_transform.c:669,1
    - Dst: SeqAt
      Src: /src/core/cf-serverd/server_transform.c:671,1
    - Dst: IsPromiseTypeNotInTypeSequence
      Src: /src/core/cf-serverd/server_transform.c:675,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:677,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:682,1
    - Dst: EvalContextStackPushBundleSectionFrame
      Src: /src/core/cf-serverd/server_transform.c:685,1
    - Dst: SeqLength
      Src: /src/core/cf-serverd/server_transform.c:686,1
    - Dst: SeqAt
      Src: /src/core/cf-serverd/server_transform.c:688,1
    - Dst: ExpandPromise
      Src: /src/core/cf-serverd/server_transform.c:689,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-serverd/server_transform.c:691,1
    - Dst: EvalContextStackPopFrame
      Src: /src/core/cf-serverd/server_transform.c:695,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - bp
    - seq
    argTypes:
    - EvalContext*
    - Bundle*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 642
    functionDepth: 15
    functionLinenumber: 642
    functionLinenumberEnd: 696
    functionName: EvaluateBundle
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - EvalContextStackPushBundleFrame
    - ExpandPromise
    - EvalContextStackPopFrame
    - BundleGetSection
    - Log
    - EvalContextStackPushBundleSectionFrame
    - IsPromiseTypeNotInTypeSequence
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void EvaluateBundle(EvalContext *ctx, const Bundle *bp, const char
      * const *seq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CleanReportBookFilterSet
      Src: /src/core/cf-serverd/server_transform.c:702,1
    - Dst: SeqLength
      Src: /src/core/cf-serverd/server_transform.c:704,1
    - Dst: SeqAt
      Src: /src/core/cf-serverd/server_transform.c:706,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:707,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:708,1
    - Dst: RlistLen
      Src: /src/core/cf-serverd/server_transform.c:712,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:714,1
    - Dst: EvaluateBundle
      Src: /src/core/cf-serverd/server_transform.c:723,1
    - Dst: EvaluateBundle
      Src: /src/core/cf-serverd/server_transform.c:728,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - EvalContext*
    - Policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 698
    functionDepth: 16
    functionLinenumber: 698
    functionLinenumberEnd: 731
    functionName: KeepPromiseBundles
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 2
    functionsReached:
    - Log
    - strcmp
    - EvaluateBundle
    - CleanReportBookFilterSet
    - SeqLength
    - SeqAt
    - RlistLen
    linkageType: ''
    returnType: void
    signature: void KeepPromiseBundles(EvalContext *ctx, const Policy *policy)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_transform.c:735,1
    - Dst: PromiseBanner
      Src: /src/core/cf-serverd/server_transform.c:736,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:738,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-serverd/server_transform.c:738,1
    - Dst: VerifyVarPromise
      Src: /src/core/cf-serverd/server_transform.c:740,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:743,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-serverd/server_transform.c:743,1
    - Dst: VerifyClassPromise
      Src: /src/core/cf-serverd/server_transform.c:745,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/cf-serverd/server_transform.c:751,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:754,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-serverd/server_transform.c:757,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-serverd/server_transform.c:758,1
    - Dst: PromiseGetConstraintAsInt
      Src: /src/core/cf-serverd/server_transform.c:760,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:763,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-serverd/server_transform.c:766,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-serverd/server_transform.c:767,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:770,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-serverd/server_transform.c:770,1
    - Dst: PromiseGetConstraintAsRval
      Src: /src/core/cf-serverd/server_transform.c:773,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:777,1
    - Dst: KeepFileAccessPromise
      Src: /src/core/cf-serverd/server_transform.c:779,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:782,1
    - Dst: KeepLiteralAccessPromise
      Src: /src/core/cf-serverd/server_transform.c:784,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:787,1
    - Dst: KeepLiteralAccessPromise
      Src: /src/core/cf-serverd/server_transform.c:789,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:792,1
    - Dst: KeepQueryAccessPromise
      Src: /src/core/cf-serverd/server_transform.c:794,1
    - Dst: KeepReportDataSelectAccessPromise
      Src: /src/core/cf-serverd/server_transform.c:795,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:798,1
    - Dst: KeepLiteralAccessPromise
      Src: /src/core/cf-serverd/server_transform.c:800,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:803,1
    - Dst: KeepBundlesAccessPromise
      Src: /src/core/cf-serverd/server_transform.c:805,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:809,1
    - Dst: PromiseGetPromiseType
      Src: /src/core/cf-serverd/server_transform.c:809,1
    - Dst: KeepServerRolePromise
      Src: /src/core/cf-serverd/server_transform.c:811,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - ctx
    - pp
    - param
    argTypes:
    - EvalContext*
    - Promise*
    - ARG_UNUSED*
    assertStmts:
    - condition: (!param)
      pos:
        line_end: 734
        line_start: 734
        source_file: /src/core/cf-serverd/server_transform.c
    constantsTouched: []
    func_position:
      end: 816
      start: 733
    functionDepth: 14
    functionLinenumber: 733
    functionLinenumberEnd: 816
    functionName: KeepServerPromise
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - PromiseGetConstraintAsInt
    - PromiseBanner
    - PromiseGetPromiseType
    - KeepLiteralAccessPromise
    - assert
    - VerifyClassPromise
    - KeepServerRolePromise
    - KeepFileAccessPromise
    - VerifyVarPromise
    - KeepReportDataSelectAccessPromise
    - Log
    - strcmp
    - PromiseGetConstraintAsRval
    - KeepBundlesAccessPromise
    - KeepQueryAccessPromise
    linkageType: ''
    returnType: PromiseResult
    signature: PromiseResult KeepServerPromise(EvalContext *ctx, const Promise *pp,
      ARG_UNUSED void *param)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_transform.c:832,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:832,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_transform.c:833,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:833,1
    - Dst: strspn
      Src: /src/core/cf-serverd/server_transform.c:839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 847
    functionName: AdmitType
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - strspn
    - strncmp
    - strlen
    linkageType: ''
    returnType: enum admit_type
    signature: enum admit_type AdmitType(const char *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IsRegex
      Src: /src/core/cf-serverd/server_transform.c:869,1
    - Dst: strcspn
      Src: /src/core/cf-serverd/server_transform.c:871,1
    - Dst: StringStartsWith
      Src: /src/core/cf-serverd/server_transform.c:883,1
    - Dst: StringStartsWith
      Src: /src/core/cf-serverd/server_transform.c:888,1
    - Dst: strchr
      Src: /src/core/cf-serverd/server_transform.c:895,1
    - Dst: strchr
      Src: /src/core/cf-serverd/server_transform.c:902,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:905,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_transform.c:928,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:939,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:949,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - sl
    - host
    argTypes:
    - StrList**
    - char*
    assertStmts:
    - condition: (c < copy + sizeof(copy))
      pos:
        line_end: 927
        line_start: 927
        source_file: /src/core/cf-serverd/server_transform.c
    constantsTouched: []
    func_position:
      end: 950
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 950
    functionName: StrList_AppendRegexHostname
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - strcspn
    - strlen
    - assert
    - strchr
    - IsRegex
    - StrList_Append
    - StringStartsWith
    linkageType: ''
    returnType: size_t
    signature: size_t StrList_AppendRegexHostname(StrList **sl, const char *host)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 954
    functionDepth: 8
    functionLinenumber: 954
    functionLinenumberEnd: 964
    functionName: TurnOnReverseLookups
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void TurnOnReverseLookups()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AdmitType
      Src: /src/core/cf-serverd/server_transform.c:970,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:975,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:979,1
    - Dst: StrList_AppendRegexHostname
      Src: /src/core/cf-serverd/server_transform.c:983,1
    - Dst: TurnOnReverseLookups
      Src: /src/core/cf-serverd/server_transform.c:989,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ad
    - entry
    argTypes:
    - struct admitdeny_acl*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 966
    functionDepth: 9
    functionLinenumber: 966
    functionLinenumberEnd: 1002
    functionName: racl_SmartAppend
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - StrList_AppendRegexHostname
    - AdmitType
    - TurnOnReverseLookups
    - Log
    - StrList_Append
    linkageType: ''
    returnType: size_t
    signature: size_t racl_SmartAppend(struct admitdeny_acl *ad, const char *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/cf-serverd/server_transform.c:1023,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:1026,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_transform.c:1034,1
    - Dst: strchr
      Src: /src/core/cf-serverd/server_transform.c:1044,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:1045,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_transform.c:1048,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_transform.c:1056,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:1060,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:1065,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - old
    - host
    argTypes:
    - Auth*
    - char*
    assertStmts:
    - condition: (dot[0] == '.')
      pos:
        line_end: 1033
        line_start: 1033
        source_file: /src/core/cf-serverd/server_transform.c
    - condition: (dst < regex + sizeof(regex))
      pos:
        line_end: 1055
        line_start: 1055
        source_file: /src/core/cf-serverd/server_transform.c
    constantsTouched: []
    func_position:
      end: 1067
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1067
    functionName: NewHostToOldACL
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - assert
    - strchr
    - PrependItem
    linkageType: ''
    returnType: void
    signature: void NewHostToOldACL(Auth *old, const char *host)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/cf-serverd/server_transform.c:1081,1
    - Dst: SeqAt
      Src: /src/core/cf-serverd/server_transform.c:1083,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-serverd/server_transform.c:1086,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1098,1
    - Dst: BooleanFromString
      Src: /src/core/cf-serverd/server_transform.c:1100,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1102,1
    - Dst: strchr
      Src: /src/core/cf-serverd/server_transform.c:1106,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1108,1
    - Dst: StringMapHasKey
      Src: /src/core/cf-serverd/server_transform.c:1112,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1114,1
    - Dst: StringMapInsert
      Src: /src/core/cf-serverd/server_transform.c:1120,1
    - Dst: xstrdup
      Src: /src/core/cf-serverd/server_transform.c:1121,1
    - Dst: xstrdup
      Src: /src/core/cf-serverd/server_transform.c:1121,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1123,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1136,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:1138,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1138,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:1141,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1141,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1144,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:1146,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1146,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:1149,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1149,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1152,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:1154,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1154,1
    - Dst: TurnOnReverseLookups
      Src: /src/core/cf-serverd/server_transform.c:1159,1
    - Dst: NewHostToOldACL
      Src: /src/core/cf-serverd/server_transform.c:1163,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1163,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1166,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:1168,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1168,1
    - Dst: TurnOnReverseLookups
      Src: /src/core/cf-serverd/server_transform.c:1173,1
    - Dst: NewHostToOldACL
      Src: /src/core/cf-serverd/server_transform.c:1177,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1177,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1180,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:1182,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1182,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1184,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:1186,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1186,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1189,1
    - Dst: racl_SmartAppend
      Src: /src/core/cf-serverd/server_transform.c:1191,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1191,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:1194,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1194,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1197,1
    - Dst: racl_SmartAppend
      Src: /src/core/cf-serverd/server_transform.c:1199,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1199,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:1202,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1202,1
    - Dst: IsAccessBody
      Src: /src/core/cf-serverd/server_transform.c:1205,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_transform.c:1207,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1207,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1214,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:1214,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:1215,1
    - Dst: UnexpectedError
      Src: /src/core/cf-serverd/server_transform.c:1221,1
    - Dst: StrList_Finalise
      Src: /src/core/cf-serverd/server_transform.c:1228,1
    - Dst: StrList_Sort
      Src: /src/core/cf-serverd/server_transform.c:1229,1
    - Dst: StrList_Finalise
      Src: /src/core/cf-serverd/server_transform.c:1231,1
    - Dst: StrList_Sort
      Src: /src/core/cf-serverd/server_transform.c:1232,1
    - Dst: StrList_Finalise
      Src: /src/core/cf-serverd/server_transform.c:1234,1
    - Dst: StrList_Sort
      Src: /src/core/cf-serverd/server_transform.c:1235,1
    - Dst: StrList_Finalise
      Src: /src/core/cf-serverd/server_transform.c:1237,1
    - Dst: StrList_Sort
      Src: /src/core/cf-serverd/server_transform.c:1238,1
    - Dst: StrList_Finalise
      Src: /src/core/cf-serverd/server_transform.c:1240,1
    - Dst: StrList_Sort
      Src: /src/core/cf-serverd/server_transform.c:1241,1
    - Dst: StrList_Finalise
      Src: /src/core/cf-serverd/server_transform.c:1243,1
    - Dst: StrList_Sort
      Src: /src/core/cf-serverd/server_transform.c:1244,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 98
    argCount: 5
    argNames:
    - ctx
    - pp
    - racl
    - ap
    - dp
    argTypes:
    - EvalContext*
    - Promise*
    - struct resource_acl*
    - Auth*
    - Auth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1076
    functionDepth: 10
    functionLinenumber: 1076
    functionLinenumberEnd: 1245
    functionName: AccessPromise_AddAccessConstraints
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - Log
    - RlistScalarValue
    - SeqLength
    - StrList_Finalise
    - BooleanFromString
    - racl_SmartAppend
    - StrList_Sort
    - strchr
    - IsDefinedClass
    - xstrdup
    - SeqAt
    - StringMapInsert
    - TurnOnReverseLookups
    - StringMapHasKey
    - GetErrorStr
    - DoCleanupAndExit
    - NewHostToOldACL
    - UnexpectedError
    - PrependItem
    - IsAccessBody
    - StrList_Append
    linkageType: ''
    returnType: void
    signature: "void AccessPromise_AddAccessConstraints(const EvalContext *ctx,\n
      \                                              const Promise *pp,\n                                               struct
      resource_acl *racl,\n                                               Auth *ap,
      Auth *dp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1094
    functionName: IsAccessBody
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsAccessBody(e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetAuthPath
      Src: /src/core/cf-serverd/server_transform.c:1252,1
    - Dst: InstallServerAuthPath
      Src: /src/core/cf-serverd/server_transform.c:1256,1
    - Dst: GetAuthPath
      Src: /src/core/cf-serverd/server_transform.c:1257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - authchain
    - authchain_tail
    argTypes:
    - char*
    - Auth**
    - Auth**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1261
    functionName: GetOrCreateAuth
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 0
    functionsReached:
    - InstallServerAuthPath
    - GetAuthPath
    linkageType: ''
    returnType: Auth
    signature: Auth *GetOrCreateAuth(const char *handle, Auth **authchain, Auth **authchain_tail)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:1266,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_transform.c:1271,1
    - Dst: PreprocessRequestPath
      Src: /src/core/cf-serverd/server_transform.c:1274,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1280,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1287,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1290,1
    - Dst: IsDirReal
      Src: /src/core/cf-serverd/server_transform.c:1306,1
    - Dst: PathAppendTrailingSlash
      Src: /src/core/cf-serverd/server_transform.c:1313,1
    - Dst: acl_SortedInsert
      Src: /src/core/cf-serverd/server_transform.c:1318,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1322,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:1322,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:1323,1
    - Dst: DeleteSlash
      Src: /src/core/cf-serverd/server_transform.c:1329,1
    - Dst: GetOrCreateAuth
      Src: /src/core/cf-serverd/server_transform.c:1331,1
    - Dst: GetOrCreateAuth
      Src: /src/core/cf-serverd/server_transform.c:1332,1
    - Dst: AccessPromise_AddAccessConstraints
      Src: /src/core/cf-serverd/server_transform.c:1334,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1339,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:1341,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1263
    functionDepth: 11
    functionLinenumber: 1263
    functionLinenumberEnd: 1343
    functionName: KeepFileAccessPromise
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - memcpy
    - DoCleanupAndExit
    - DeleteSlash
    - strlen
    - PathAppendTrailingSlash
    - PreprocessRequestPath
    - AccessPromise_AddAccessConstraints
    - Log
    - GetOrCreateAuth
    - acl_SortedInsert
    - IsDirReal
    linkageType: ''
    returnType: void
    signature: void KeepFileAccessPromise(const EvalContext *ctx, const Promise *pp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PromiseGetHandle
      Src: /src/core/cf-serverd/server_transform.c:1350,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:1352,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1354,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:1358,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1360,1
    - Dst: GetOrCreateAuth
      Src: /src/core/cf-serverd/server_transform.c:1362,1
    - Dst: GetOrCreateAuth
      Src: /src/core/cf-serverd/server_transform.c:1363,1
    - Dst: RegisterLiteralServerData
      Src: /src/core/cf-serverd/server_transform.c:1365,1
    - Dst: acl_SortedInsert
      Src: /src/core/cf-serverd/server_transform.c:1369,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1373,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:1373,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:1374,1
    - Dst: AccessPromise_AddAccessConstraints
      Src: /src/core/cf-serverd/server_transform.c:1377,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1382,1
    - Dst: GetOrCreateAuth
      Src: /src/core/cf-serverd/server_transform.c:1384,1
    - Dst: GetOrCreateAuth
      Src: /src/core/cf-serverd/server_transform.c:1385,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:1387,1
    - Dst: acl_SortedInsert
      Src: /src/core/cf-serverd/server_transform.c:1391,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1395,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:1395,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:1396,1
    - Dst: AccessPromise_AddAccessConstraints
      Src: /src/core/cf-serverd/server_transform.c:1399,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:1402,1
    - Dst: acl_SortedInsert
      Src: /src/core/cf-serverd/server_transform.c:1406,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1410,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:1410,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:1411,1
    - Dst: AccessPromise_AddAccessConstraints
      Src: /src/core/cf-serverd/server_transform.c:1414,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - pp
    - type
    argTypes:
    - EvalContext*
    - Promise*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1347
    functionDepth: 11
    functionLinenumber: 1347
    functionLinenumberEnd: 1418
    functionName: KeepLiteralAccessPromise
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - DoCleanupAndExit
    - AccessPromise_AddAccessConstraints
    - RegisterLiteralServerData
    - Log
    - strcmp
    - GetOrCreateAuth
    - acl_SortedInsert
    - PromiseGetHandle
    linkageType: ''
    returnType: void
    signature: void KeepLiteralAccessPromise(EvalContext *ctx, const Promise *pp,
      const char *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetOrCreateAuth
      Src: /src/core/cf-serverd/server_transform.c:1424,1
    - Dst: GetOrCreateAuth
      Src: /src/core/cf-serverd/server_transform.c:1425,1
    - Dst: RegisterLiteralServerData
      Src: /src/core/cf-serverd/server_transform.c:1427,1
    - Dst: acl_SortedInsert
      Src: /src/core/cf-serverd/server_transform.c:1430,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1434,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:1434,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:1435,1
    - Dst: AccessPromise_AddAccessConstraints
      Src: /src/core/cf-serverd/server_transform.c:1438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1422
    functionDepth: 11
    functionLinenumber: 1422
    functionLinenumberEnd: 1440
    functionName: KeepQueryAccessPromise
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - DoCleanupAndExit
    - AccessPromise_AddAccessConstraints
    - RegisterLiteralServerData
    - Log
    - GetOrCreateAuth
    - acl_SortedInsert
    linkageType: ''
    returnType: void
    signature: void KeepQueryAccessPromise(EvalContext *ctx, const Promise *pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acl_SortedInsert
      Src: /src/core/cf-serverd/server_transform.c:1444,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1448,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:1448,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:1449,1
    - Dst: AccessPromise_AddAccessConstraints
      Src: /src/core/cf-serverd/server_transform.c:1454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1442
    functionDepth: 11
    functionLinenumber: 1442
    functionLinenumberEnd: 1456
    functionName: KeepBundlesAccessPromise
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - DoCleanupAndExit
    - AccessPromise_AddAccessConstraints
    - Log
    - acl_SortedInsert
    linkageType: ''
    returnType: void
    signature: void KeepBundlesAccessPromise(EvalContext *ctx, const Promise *pp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: acl_SortedInsert
      Src: /src/core/cf-serverd/server_transform.c:1468,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1472,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:1472,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:1473,1
    - Dst: SeqLength
      Src: /src/core/cf-serverd/server_transform.c:1476,1
    - Dst: SeqAt
      Src: /src/core/cf-serverd/server_transform.c:1480,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:1484,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1488,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-serverd/server_transform.c:1492,1
    - Dst: StrList_Append
      Src: /src/core/cf-serverd/server_transform.c:1499,1
    - Dst: RlistScalarValue
      Src: /src/core/cf-serverd/server_transform.c:1500,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1504,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_transform.c:1504,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/server_transform.c:1505,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:1510,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:1511,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_transform.c:1515,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - pp
    argTypes:
    - EvalContext*
    - Promise*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1466
    functionDepth: 10
    functionLinenumber: 1466
    functionLinenumberEnd: 1520
    functionName: KeepServerRolePromise
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - DoCleanupAndExit
    - RlistScalarValue
    - Log
    - strcmp
    - IsDefinedClass
    - acl_SortedInsert
    - SeqLength
    - StrList_Append
    - SeqAt
    linkageType: ''
    returnType: void
    signature: void KeepServerRolePromise(EvalContext *ctx, const Promise *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_transform.c:1525,1
    - Dst: xcalloc
      Src: /src/core/cf-serverd/server_transform.c:1526,1
    - Dst: xstrdup
      Src: /src/core/cf-serverd/server_transform.c:1527,1
    - Dst: ToLower
      Src: /src/core/cf-serverd/server_transform.c:1532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - path
    - list
    - listtail
    argTypes:
    - char*
    - Auth**
    - Auth**
    assertStmts:
    - condition: (*nextp == NULL)
      pos:
        line_end: 1524
        line_start: 1524
        source_file: /src/core/cf-serverd/server_transform.c
    constantsTouched: []
    func_position:
      end: 1535
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1535
    functionName: InstallServerAuthPath
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached:
    - xstrdup
    - assert
    - ToLower
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void InstallServerAuthPath(const char *path, Auth **list, Auth **listtail)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_transform.c:1539,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_transform.c:1541,1
    - Dst: ToLowerStrInplace
      Src: /src/core/cf-serverd/server_transform.c:1544,1
    - Dst: DeleteSlash
      Src: /src/core/cf-serverd/server_transform.c:1549,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_transform.c:1554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - path
    - list
    argTypes:
    - char*
    - Auth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1537
    functionDepth: 2
    functionLinenumber: 1537
    functionLinenumberEnd: 1561
    functionName: GetAuthPath
    functionSourceFile: /src/core/cf-serverd/server_transform.c
    functionUses: 1
    functionsReached:
    - memcpy
    - DeleteSlash
    - ToLowerStrInplace
    - strlen
    - strcmp
    linkageType: ''
    returnType: Auth
    signature: Auth *GetAuthPath(const char *path, Auth *list)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_access.c:82,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:91,1
    - Dst: FuzzySetMatch
      Src: /src/core/cf-serverd/server_access.c:93,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:93,1
    - Dst: StringMatchFull
      Src: /src/core/cf-serverd/server_access.c:95,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:95,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:97,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:104,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_access.c:111,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/cf-serverd/server_access.c:114,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:121,1
    - Dst: StringMatchFull
      Src: /src/core/cf-serverd/server_access.c:123,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:123,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:135,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:137,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:143,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_access.c:146,1
    - Dst: StrList_BinarySearch
      Src: /src/core/cf-serverd/server_access.c:150,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:153,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:155,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_access.c:160,1
    - Dst: StrList_BinarySearch
      Src: /src/core/cf-serverd/server_access.c:164,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:167,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:169,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:180,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:189,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_access.c:193,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:197,1
    - Dst: FuzzySetMatch
      Src: /src/core/cf-serverd/server_access.c:199,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:199,1
    - Dst: StringMatchFull
      Src: /src/core/cf-serverd/server_access.c:201,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:201,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:203,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:210,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_access.c:218,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/cf-serverd/server_access.c:221,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:228,1
    - Dst: StringMatchFull
      Src: /src/core/cf-serverd/server_access.c:230,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:230,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:242,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:244,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_access.c:250,1
    - Dst: StrList_BinarySearch
      Src: /src/core/cf-serverd/server_access.c:254,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:257,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:259,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_access.c:265,1
    - Dst: StrList_BinarySearch
      Src: /src/core/cf-serverd/server_access.c:269,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:272,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:274,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:282,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 97
    argCount: 6
    argNames:
    - acl
    - found
    - ipaddr
    - hostname
    - key
    - username
    argTypes:
    - struct resource_acl*
    - bool*
    - char*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (! (access && !have_match))
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/core/cf-serverd/server_access.c
    - condition: (!have_match)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/core/cf-serverd/server_access.c
    - condition: "((access && have_match) ||\n           (!access && !have_match &&
        found != NULL))"
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/core/cf-serverd/server_access.c
    constantsTouched: []
    func_position:
      end: 289
      start: 71
    functionDepth: 9
    functionLinenumber: 71
    functionLinenumberEnd: 289
    functionName: access_CheckResource
    functionSourceFile: /src/core/cf-serverd/server_access.c
    functionUses: 0
    functionsReached:
    - StrList_SearchLongestPrefix
    - StrList_Len
    - assert
    - FuzzySetMatch
    - StringMatchFull
    - Log
    - StrList_At
    - StrList_BinarySearch
    - NULL_OR_EMPTY
    linkageType: ''
    returnType: bool
    signature: "bool access_CheckResource(const struct resource_acl *acl,\n                                 bool
      *found,\n                                 const char *ipaddr, const char *hostname,\n
      \                                const char *key, const char *username)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_access.c:305,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/cf-serverd/server_access.c:308,1
    - Dst: access_CheckResource
      Src: /src/core/cf-serverd/server_access.c:315,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:320,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_access.c:330,1
    - Dst: ReplaceSpecialVariables
      Src: /src/core/cf-serverd/server_access.c:332,1
    - Dst: StrList_SearchLongestPrefix
      Src: /src/core/cf-serverd/server_access.c:341,1
    - Dst: access_CheckResource
      Src: /src/core/cf-serverd/server_access.c:351,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - acl
    - reqpath
    - ipaddr
    - hostname
    - key
    argTypes:
    - struct acl*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 300
    functionDepth: 10
    functionLinenumber: 300
    functionLinenumberEnd: 367
    functionName: acl_CheckPath
    functionSourceFile: /src/core/cf-serverd/server_access.c
    functionUses: 0
    functionsReached:
    - memcpy
    - StrList_SearchLongestPrefix
    - ReplaceSpecialVariables
    - strlen
    - Log
    - access_CheckResource
    linkageType: ''
    returnType: bool
    signature: "bool acl_CheckPath(const struct acl *acl, const char *reqpath,\n                   const
      char *ipaddr, const char *hostname,\n                   const char *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StrList_BinarySearch
      Src: /src/core/cf-serverd/server_access.c:376,1
    - Dst: access_CheckResource
      Src: /src/core/cf-serverd/server_access.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - acl
    - req_string
    - ipaddr
    - hostname
    - key
    argTypes:
    - struct acl*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 369
    functionDepth: 10
    functionLinenumber: 369
    functionLinenumberEnd: 389
    functionName: acl_CheckExact
    functionSourceFile: /src/core/cf-serverd/server_access.c
    functionUses: 0
    functionsReached:
    - StrList_BinarySearch
    - access_CheckResource
    linkageType: ''
    returnType: bool
    signature: "bool acl_CheckExact(const struct acl *acl, const char *req_string,\n
      \                   const char *ipaddr, const char *hostname,\n                    const
      char *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringMatchFull
      Src: /src/core/cf-serverd/server_access.c:408,1
    - Dst: access_CheckResource
      Src: /src/core/cf-serverd/server_access.c:414,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:427,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - acl
    - req_string
    - ipaddr
    - hostname
    - key
    - username
    argTypes:
    - struct acl*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (!found)
      pos:
        line_end: 426
        line_start: 426
        source_file: /src/core/cf-serverd/server_access.c
    - condition: (!admit)
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/core/cf-serverd/server_access.c
    constantsTouched: []
    func_position:
      end: 436
      start: 396
    functionDepth: 10
    functionLinenumber: 396
    functionLinenumberEnd: 436
    functionName: acl_CheckRegex
    functionSourceFile: /src/core/cf-serverd/server_access.c
    functionUses: 0
    functionsReached:
    - assert
    - StringMatchFull
    - access_CheckResource
    linkageType: ''
    returnType: bool
    signature: "bool acl_CheckRegex(const struct acl *acl, const char *req_string,\n
      \                   const char *ipaddr, const char *hostname,\n                    const
      char *key, const char *username)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:453,1
    - Dst: StrList_BinarySearch
      Src: /src/core/cf-serverd/server_access.c:458,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:463,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:468,1
    - Dst: realloc
      Src: /src/core/cf-serverd/server_access.c:480,1
    - Dst: StrList_Insert
      Src: /src/core/cf-serverd/server_access.c:493,1
    - Dst: memmove
      Src: /src/core/cf-serverd/server_access.c:502,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:509,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:512,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - a
    - handle
    argTypes:
    - struct acl**
    - char*
    assertStmts:
    - condition: (handle != NULL)
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/core/cf-serverd/server_access.c
    - condition: (position <= acl->len)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/core/cf-serverd/server_access.c
    - condition: (position < acl->len)
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/core/cf-serverd/server_access.c
    - condition: (acl->len == StrList_Len(acl->resource_names))
      pos:
        line_end: 511
        line_start: 511
        source_file: /src/core/cf-serverd/server_access.c
    constantsTouched: []
    func_position:
      end: 515
      start: 451
    functionDepth: 8
    functionLinenumber: 451
    functionLinenumberEnd: 515
    functionName: acl_SortedInsert
    functionSourceFile: /src/core/cf-serverd/server_access.c
    functionUses: 5
    functionsReached:
    - memmove
    - StrList_Len
    - assert
    - realloc
    - Log
    - StrList_BinarySearch
    - StrList_Insert
    linkageType: ''
    returnType: size_t
    signature: size_t acl_SortedInsert(struct acl **a, const char *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrList_Free
      Src: /src/core/cf-serverd/server_access.c:519,1
    - Dst: StrList_Free
      Src: /src/core/cf-serverd/server_access.c:524,1
    - Dst: StrList_Free
      Src: /src/core/cf-serverd/server_access.c:525,1
    - Dst: StrList_Free
      Src: /src/core/cf-serverd/server_access.c:526,1
    - Dst: StrList_Free
      Src: /src/core/cf-serverd/server_access.c:527,1
    - Dst: StrList_Free
      Src: /src/core/cf-serverd/server_access.c:528,1
    - Dst: StrList_Free
      Src: /src/core/cf-serverd/server_access.c:529,1
    - Dst: StrList_Free
      Src: /src/core/cf-serverd/server_access.c:530,1
    - Dst: free
      Src: /src/core/cf-serverd/server_access.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct acl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 534
    functionName: acl_Free
    functionSourceFile: /src/core/cf-serverd/server_access.c
    functionUses: 0
    functionsReached:
    - free
    - StrList_Free
    linkageType: ''
    returnType: void
    signature: void acl_Free(struct acl *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_access.c:538,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:538,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:543,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:544,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:548,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:550,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:551,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:553,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:555,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:556,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:558,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:560,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:561,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:563,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:565,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:566,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:568,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:570,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:571,1
    - Dst: StrList_Len
      Src: /src/core/cf-serverd/server_access.c:573,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_access.c:575,1
    - Dst: StrList_At
      Src: /src/core/cf-serverd/server_access.c:576,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - acl
    - title
    argTypes:
    - struct acl*
    - char*
    assertStmts:
    - condition: (acl->len == StrList_Len(acl->resource_names))
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/core/cf-serverd/server_access.c
    constantsTouched: []
    func_position:
      end: 579
      start: 536
    functionDepth: 8
    functionLinenumber: 536
    functionLinenumberEnd: 579
    functionName: acl_Summarise
    functionSourceFile: /src/core/cf-serverd/server_access.c
    functionUses: 1
    functionsReached:
    - assert
    - StrList_At
    - Log
    - StrList_Len
    linkageType: ''
    returnType: void
    signature: void acl_Summarise(const struct acl *acl, const char *title)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p1
    - p2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: memrcmp
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memrcmp(const void *p1, const void *p2, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/strlist.c:55,1
    - Dst: malloc
      Src: /src/core/cf-serverd/strlist.c:56,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/strlist.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: string_New
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    - strlen
    linkageType: ''
    returnType: struct string
    signature: struct string *string_New(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/core/cf-serverd/strlist.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - struct string*
    - struct string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: string_BoolCompare
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: "bool string_BoolCompare(const struct string *s1,\n                        const
      struct string *s2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/core/cf-serverd/strlist.c:98,1
    - Dst: memcmp
      Src: /src/core/cf-serverd/strlist.c:110,1
    - Dst: memcmp
      Src: /src/core/cf-serverd/strlist.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - sp1
    - sp2
    argTypes:
    - struct string**
    - struct string**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 125
    functionName: string_Compare
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int string_Compare(const struct string **sp1,\n                   const
      struct string **sp2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memrcmp
      Src: /src/core/cf-serverd/strlist.c:143,1
    - Dst: memrcmp
      Src: /src/core/cf-serverd/strlist.c:148,1
    - Dst: memrcmp
      Src: /src/core/cf-serverd/strlist.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - sp1
    - sp2
    argTypes:
    - struct string**
    - struct string**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 155
    functionName: string_CompareFromEnd
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached:
    - memrcmp
    linkageType: ''
    returnType: int
    signature: "int string_CompareFromEnd(const struct string **sp1,\n                          const
      struct string **sp2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/core/cf-serverd/strlist.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - struct string*
    - struct string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: string_MatchCount
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached:
    - MIN
    linkageType: ''
    returnType: size_t
    signature: "size_t string_MatchCount(const struct string *s1,\n                         const
      struct string *s2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/core/cf-serverd/strlist.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - struct string*
    - struct string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 199
    functionName: string_ReverseMatchCount
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached:
    - MIN
    linkageType: ''
    returnType: size_t
    signature: "size_t string_ReverseMatchCount(const struct string *s1,\n                                const
      struct string *s2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - StrList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: StrList_Len
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t StrList_Len(const StrList *sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:212,1
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sl
    - idx
    argTypes:
    - StrList*
    - size_t
    assertStmts:
    - condition: (sl != NULL)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/core/cf-serverd/strlist.c
    - condition: (idx < sl->len)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/core/cf-serverd/strlist.c
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: StrList_At
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *StrList_At(const StrList *sl, size_t idx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:228,1
    - Dst: ProgrammingError
      Src: /src/core/cf-serverd/strlist.c:236,1
    - Dst: calloc
      Src: /src/core/cf-serverd/strlist.c:241,1
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:251,1
    - Dst: realloc
      Src: /src/core/cf-serverd/strlist.c:262,1
    - Dst: string_New
      Src: /src/core/cf-serverd/strlist.c:273,1
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:280,1
    - Dst: memmove
      Src: /src/core/cf-serverd/strlist.c:282,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - sl
    - s
    - idx
    argTypes:
    - StrList**
    - char*
    - size_t
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/core/cf-serverd/strlist.c
    - condition: (slp->len == 0)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/core/cf-serverd/strlist.c
    - condition: (slp->len < slp->alloc_len)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/core/cf-serverd/strlist.c
    constantsTouched: []
    func_position:
      end: 289
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 289
    functionName: StrList_Insert
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 1
    functionsReached:
    - memmove
    - assert
    - calloc
    - string_New
    - ProgrammingError
    - realloc
    linkageType: ''
    returnType: size_t
    signature: size_t StrList_Insert(StrList **sl, const char *s, size_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:300,1
    - Dst: StrList_Insert
      Src: /src/core/cf-serverd/strlist.c:306,1
    - Dst: StrList_Insert
      Src: /src/core/cf-serverd/strlist.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sl
    - s
    argTypes:
    - StrList**
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/core/cf-serverd/strlist.c
    constantsTouched: []
    func_position:
      end: 314
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 314
    functionName: StrList_Append
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 6
    functionsReached:
    - assert
    - StrList_Insert
    linkageType: ''
    returnType: size_t
    signature: size_t StrList_Append(StrList **sl, const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:333,1
    - Dst: free
      Src: /src/core/cf-serverd/strlist.c:337,1
    - Dst: realloc
      Src: /src/core/cf-serverd/strlist.c:343,1
    - Dst: UnexpectedError
      Src: /src/core/cf-serverd/strlist.c:347,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/strlist.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - sl
    argTypes:
    - StrList**
    assertStmts:
    - condition: (slp->len <= slp->alloc_len)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/core/cf-serverd/strlist.c
    constantsTouched: []
    func_position:
      end: 358
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 358
    functionName: StrList_Finalise
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - assert
    - UnexpectedError
    - free
    - realloc
    linkageType: ''
    returnType: void
    signature: void StrList_Finalise(StrList **sl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-serverd/strlist.c:375,1
    - Dst: free
      Src: /src/core/cf-serverd/strlist.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sl
    argTypes:
    - StrList**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 380
    functionName: StrList_Free
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void StrList_Free(StrList **sl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/core/cf-serverd/strlist.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - sl
    - comparator
    argTypes:
    - StrList*
    - StringComparatorF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 390
    functionName: StrList_Sort
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 3
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void StrList_Sort(StrList *sl, StringComparatorF comparator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/core/cf-serverd/strlist.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sl
    - s
    - comparator
    argTypes:
    - StrList*
    - struct string*
    - StringComparatorF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 414
    functionName: StrList_bsearch
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: size_t
    signature: "size_t StrList_bsearch(const StrList *sl,\n                       const
      struct string *s,\n                       StringComparatorF comparator)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_Compare
      Src: /src/core/cf-serverd/strlist.c:445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - slp
    - s
    - position
    argTypes:
    - StrList*
    - struct string*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 462
    functionName: StrList_BinarySearchString
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached:
    - string_Compare
    linkageType: ''
    returnType: bool
    signature: "bool StrList_BinarySearchString(const StrList *slp,\n                                const
      struct string *s,\n                                size_t *position)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/core/cf-serverd/strlist.c:487,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - slp
    - s
    - position
    argTypes:
    - StrList*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 506
    functionName: StrList_BinarySearch
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 4
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool StrList_BinarySearch(const StrList *slp, const char *s,\n                          size_t
      *position)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:522,1
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:523,1
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:524,1
    - Dst: MIN
      Src: /src/core/cf-serverd/strlist.c:531,1
    - Dst: memcmp
      Src: /src/core/cf-serverd/strlist.c:535,1
    - Dst: memrcmp
      Src: /src/core/cf-serverd/strlist.c:539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 6
    argNames:
    - sl
    - s
    - s_len
    - direction_forward
    - min
    - max
    argTypes:
    - StrList*
    - char*
    - size_t
    - bool
    - size_t*
    - size_t*
    assertStmts:
    - condition: (s_len > 0)
      pos:
        line_end: 521
        line_start: 521
        source_file: /src/core/cf-serverd/strlist.c
    - condition: (priv_max <= sl->len)
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/core/cf-serverd/strlist.c
    - condition: (priv_min < priv_max)
      pos:
        line_end: 522
        line_start: 522
        source_file: /src/core/cf-serverd/strlist.c
    constantsTouched: []
    func_position:
      end: 580
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 580
    functionName: StrList_BinarySearchExtended
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    - MIN
    - memrcmp
    linkageType: ''
    returnType: size_t
    signature: "size_t StrList_BinarySearchExtended(const StrList *sl,\n                                    const
      char *s, size_t s_len,\n                                    bool direction_forward,\n
      \                                   size_t *min, size_t *max)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/strlist.c:614,1
    - Dst: memchr
      Src: /src/core/cf-serverd/strlist.c:632,1
    - Dst: memrchr
      Src: /src/core/cf-serverd/strlist.c:640,1
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:654,1
    - Dst: StrList_BinarySearchExtended
      Src: /src/core/cf-serverd/strlist.c:662,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - sl
    - s
    - s_len
    - separator
    - direction_forward
    argTypes:
    - StrList*
    - char*
    - size_t
    - char
    - bool
    assertStmts:
    - condition: (s_prefix_len <= s_len)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/core/cf-serverd/strlist.c
    constantsTouched: []
    func_position:
      end: 676
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 676
    functionName: StrList_SearchLongestPrefix
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 4
    functionsReached:
    - StrList_BinarySearchExtended
    - strlen
    - assert
    - memrchr
    - memchr
    linkageType: ''
    returnType: size_t
    signature: "size_t StrList_SearchLongestPrefix(const StrList *sl,\n                                   const
      char *s, size_t s_len,\n                                   char separator, bool
      direction_forward)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/strlist.c:699,1
    - Dst: MIN
      Src: /src/core/cf-serverd/strlist.c:712,1
    - Dst: MIN
      Src: /src/core/cf-serverd/strlist.c:719,1
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:750,1
    - Dst: assert
      Src: /src/core/cf-serverd/strlist.c:769,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - sl
    - s
    - s_len
    - direction_forward
    argTypes:
    - StrList*
    - char*
    - size_t
    - bool
    assertStmts:
    - condition: (s_len < s2_len)
      pos:
        line_end: 749
        line_start: 749
        source_file: /src/core/cf-serverd/strlist.c
    - condition: (compar > 0)
      pos:
        line_end: 768
        line_start: 768
        source_file: /src/core/cf-serverd/strlist.c
    constantsTouched: []
    func_position:
      end: 775
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 775
    functionName: StrList_SearchForPrefix
    functionSourceFile: /src/core/cf-serverd/strlist.c
    functionUses: 1
    functionsReached:
    - assert
    - MIN
    - strlen
    linkageType: ''
    returnType: size_t
    signature: "size_t StrList_SearchForPrefix(const StrList *sl,\n                               const
      char *s, size_t s_len,\n                               bool direction_forward)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-serverd/cf-serverd-functions.c:142,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:145,1
    - Dst: FileWriter
      Src: /src/core/cf-serverd/cf-serverd-functions.c:148,1
    - Dst: fprintf
      Src: /src/core/cf-serverd/cf-serverd-functions.c:149,1
    - Dst: fprintf
      Src: /src/core/cf-serverd/cf-serverd-functions.c:150,1
    - Dst: XmlComment
      Src: /src/core/cf-serverd/cf-serverd-functions.c:151,1
    - Dst: XmlStartTag
      Src: /src/core/cf-serverd/cf-serverd-functions.c:152,1
    - Dst: FprintAvahiCfengineTag
      Src: /src/core/cf-serverd/cf-serverd-functions.c:153,1
    - Dst: XmlStartTag
      Src: /src/core/cf-serverd/cf-serverd-functions.c:154,1
    - Dst: XmlTag
      Src: /src/core/cf-serverd/cf-serverd-functions.c:155,1
    - Dst: DetermineCfenginePort
      Src: /src/core/cf-serverd/cf-serverd-functions.c:156,1
    - Dst: XmlStartTag
      Src: /src/core/cf-serverd/cf-serverd-functions.c:157,1
    - Dst: WriterWriteF
      Src: /src/core/cf-serverd/cf-serverd-functions.c:158,1
    - Dst: XmlEndTag
      Src: /src/core/cf-serverd/cf-serverd-functions.c:159,1
    - Dst: XmlEndTag
      Src: /src/core/cf-serverd/cf-serverd-functions.c:160,1
    - Dst: XmlEndTag
      Src: /src/core/cf-serverd/cf-serverd-functions.c:161,1
    - Dst: fclose
      Src: /src/core/cf-serverd/cf-serverd-functions.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 140
    functionDepth: 9
    functionLinenumber: 140
    functionLinenumberEnd: 165
    functionName: GenerateAvahiConfig
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 1
    functionsReached:
    - FileWriter
    - XmlComment
    - XmlStartTag
    - XmlTag
    - safe_fopen
    - WriterWriteF
    - FprintAvahiCfengineTag
    - Log
    - fclose
    - fprintf
    - DetermineCfenginePort
    - XmlEndTag
    linkageType: ''
    returnType: int
    signature: int GenerateAvahiConfig(const char *path)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: GenericAgentConfigNewDefault
      Src: /src/core/cf-serverd/cf-serverd-functions.c:174,1
    - Dst: GetTTYInteractive
      Src: /src/core/cf-serverd/cf-serverd-functions.c:174,1
    - Dst: getopt_long
      Src: /src/core/cf-serverd/cf-serverd-functions.c:177,1
    - Dst: GenericAgentConfigSetInputFile
      Src: /src/core/cf-serverd/cf-serverd-functions.c:184,1
    - Dst: GetInputDir
      Src: /src/core/cf-serverd/cf-serverd-functions.c:184,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-serverd/cf-serverd-functions.c:189,1
    - Dst: StringSetFromString
      Src: /src/core/cf-serverd/cf-serverd-functions.c:199,1
    - Dst: StringSetJoin
      Src: /src/core/cf-serverd/cf-serverd-functions.c:206,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-serverd/cf-serverd-functions.c:207,1
    - Dst: StringSetFromString
      Src: /src/core/cf-serverd/cf-serverd-functions.c:214,1
    - Dst: StringSetJoin
      Src: /src/core/cf-serverd/cf-serverd-functions.c:221,1
    - Dst: StringSetDestroy
      Src: /src/core/cf-serverd/cf-serverd-functions.c:222,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-serverd/cf-serverd-functions.c:228,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-serverd/cf-serverd-functions.c:232,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:237,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:246,1
    - Dst: setenv_wrapper
      Src: /src/core/cf-serverd/cf-serverd-functions.c:247,1
    - Dst: FileWriter
      Src: /src/core/cf-serverd/cf-serverd-functions.c:253,1
    - Dst: GenericAgentWriteVersion
      Src: /src/core/cf-serverd/cf-serverd-functions.c:254,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-serverd/cf-serverd-functions.c:255,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:257,1
    - Dst: FileWriter
      Src: /src/core/cf-serverd/cf-serverd-functions.c:261,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-serverd/cf-serverd-functions.c:262,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-serverd/cf-serverd-functions.c:263,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:265,1
    - Dst: FileWriter
      Src: /src/core/cf-serverd/cf-serverd-functions.c:269,1
    - Dst: ManPageWrite
      Src: /src/core/cf-serverd/cf-serverd-functions.c:270,1
    - Dst: time
      Src: /src/core/cf-serverd/cf-serverd-functions.c:270,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-serverd/cf-serverd-functions.c:276,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:277,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:281,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:282,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:286,1
    - Dst: GenerateAvahiConfig
      Src: /src/core/cf-serverd/cf-serverd-functions.c:287,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:289,1
    - Dst: cf_popen
      Src: /src/core/cf-serverd/cf-serverd-functions.c:291,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:292,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:294,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:296,1
    - Dst: GenericAgentConfigParseColor
      Src: /src/core/cf-serverd/cf-serverd-functions.c:299,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:301,1
    - Dst: LoggingEnableTimestamps
      Src: /src/core/cf-serverd/cf-serverd-functions.c:306,1
    - Dst: StringToLongExitOnError
      Src: /src/core/cf-serverd/cf-serverd-functions.c:316,1
    - Dst: StringEqual
      Src: /src/core/cf-serverd/cf-serverd-functions.c:324,1
    - Dst: FileWriter
      Src: /src/core/cf-serverd/cf-serverd-functions.c:332,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-serverd/cf-serverd-functions.c:333,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-serverd/cf-serverd-functions.c:334,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:336,1
    - Dst: GenericAgentConfigParseArguments
      Src: /src/core/cf-serverd/cf-serverd-functions.c:340,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:342,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:343,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 110
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 170
    functionDepth: 11
    functionLinenumber: 170
    functionLinenumberEnd: 347
    functionName: CheckOpts
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 10
    functionsReached:
    - StringToLongExitOnError
    - GenericAgentConfigParseColor
    - Log
    - GetInputDir
    - FileWriterDetach
    - time
    - StringEqual
    - FileWriter
    - GenericAgentConfigSetInputFile
    - WriterWriteHelp
    - ManPageWrite
    - cf_popen
    - setenv_wrapper
    - GenericAgentConfigNewDefault
    - GenericAgentWriteVersion
    - LogSetGlobalLevel
    - GetTTYInteractive
    - GenericAgentConfigParseArguments
    - getopt_long
    - StringSetFromString
    - DoCleanupAndExit
    - StringSetJoin
    - LoggingEnableTimestamps
    - StringSetDestroy
    - LogSetGlobalLevelArgOrExit
    - GenerateAvahiConfig
    linkageType: ''
    returnType: GenericAgentConfig
    signature: GenericAgentConfig *CheckOpts(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:361,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:362,1
    - Dst: free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:363,1
    - Dst: free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:364,1
    - Dst: assert
      Src: /src/core/cf-serverd/cf-serverd-functions.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - list_tail
    argTypes:
    - Auth**
    - Auth**
    assertStmts:
    - condition: (ap == *list_tail)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
    constantsTouched: []
    func_position:
      end: 375
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 375
    functionName: DeleteAuthList
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - DeleteItemList
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: void DeleteAuthList(Auth **list, Auth **list_tail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/cf-serverd-functions.c:381,1
    - Dst: DeleteAuthList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:384,1
    - Dst: DeleteAuthList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:385,1
    - Dst: DeleteAuthList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:386,1
    - Dst: DeleteAuthList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:387,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:390,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:391,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:392,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:393,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:394,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:395,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/cf-serverd-functions.c:396,1
    - Dst: StringMapDestroy
      Src: /src/core/cf-serverd/cf-serverd-functions.c:398,1
    - Dst: free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:399,1
    - Dst: free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:400,1
    - Dst: acl_Free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:404,1
    - Dst: acl_Free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:405,1
    - Dst: acl_Free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:406,1
    - Dst: acl_Free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:407,1
    - Dst: acl_Free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:408,1
    - Dst: acl_Free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:409,1
    - Dst: acl_Free
      Src: /src/core/cf-serverd/cf-serverd-functions.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (SERVER_ACCESS.connectionlist == NULL)
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
    constantsTouched: []
    func_position:
      end: 411
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 411
    functionName: ClearAuthAndACLs
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - assert
    - StringMapDestroy
    - DeleteAuthList
    - acl_Free
    - DeleteItemList
    - free
    linkageType: ''
    returnType: void
    signature: void ClearAuthAndACLs(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:415,1
    - Dst: ReadTimestampFromPolicyValidatedFile
      Src: /src/core/cf-serverd/cf-serverd-functions.c:418,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:424,1
    - Dst: ReloadConfigRequested
      Src: /src/core/cf-serverd/cf-serverd-functions.c:427,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:429,1
    - Dst: ClearRequestReloadConfig
      Src: /src/core/cf-serverd/cf-serverd-functions.c:435,1
    - Dst: GenericAgentArePromisesValid
      Src: /src/core/cf-serverd/cf-serverd-functions.c:440,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:442,1
    - Dst: EvalContextClear
      Src: /src/core/cf-serverd/cf-serverd-functions.c:447,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/cf-serverd-functions.c:449,1
    - Dst: ClearAuthAndACLs
      Src: /src/core/cf-serverd/cf-serverd-functions.c:451,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-serverd/cf-serverd-functions.c:452,1
    - Dst: EvalContextSetPolicyServerFromFile
      Src: /src/core/cf-serverd/cf-serverd-functions.c:479,1
    - Dst: GetWorkDir
      Src: /src/core/cf-serverd/cf-serverd-functions.c:479,1
    - Dst: UpdateLastPolicyUpdateTime
      Src: /src/core/cf-serverd/cf-serverd-functions.c:481,1
    - Dst: DetectEnvironment
      Src: /src/core/cf-serverd/cf-serverd-functions.c:483,1
    - Dst: GenericAgentDiscoverContext
      Src: /src/core/cf-serverd/cf-serverd-functions.c:484,1
    - Dst: EvalContextClassPutHard
      Src: /src/core/cf-serverd/cf-serverd-functions.c:487,1
    - Dst: SetReferenceTime
      Src: /src/core/cf-serverd/cf-serverd-functions.c:489,1
    - Dst: UpdateTimeClasses
      Src: /src/core/cf-serverd/cf-serverd-functions.c:490,1
    - Dst: LoadPolicy
      Src: /src/core/cf-serverd/cf-serverd-functions.c:495,1
    - Dst: ReloadHAConfig
      Src: /src/core/cf-serverd/cf-serverd-functions.c:498,1
    - Dst: KeepPromises
      Src: /src/core/cf-serverd/cf-serverd-functions.c:501,1
    - Dst: Summarize
      Src: /src/core/cf-serverd/cf-serverd-functions.c:502,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:505,1
    - Dst: RequestReloadConfig
      Src: /src/core/cf-serverd/cf-serverd-functions.c:507,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:512,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:517,1
    - Dst: EvalContextUpdateDumpReports
      Src: /src/core/cf-serverd/cf-serverd-functions.c:518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - policy
    - config
    argTypes:
    - EvalContext*
    - Policy**
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 413
    functionDepth: 17
    functionLinenumber: 413
    functionLinenumberEnd: 520
    functionName: CheckFileChanges
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - PolicyDestroy
    - LoadPolicy
    - ClearAuthAndACLs
    - SetReferenceTime
    - Log
    - ReloadHAConfig
    - ReloadConfigRequested
    - Summarize
    - KeepPromises
    - EvalContextUpdateDumpReports
    - EvalContextClear
    - UpdateTimeClasses
    - DetectEnvironment
    - ClearRequestReloadConfig
    - strcpy
    - ReadTimestampFromPolicyValidatedFile
    - EvalContextSetPolicyServerFromFile
    - GetWorkDir
    - RequestReloadConfig
    - UpdateLastPolicyUpdateTime
    - EvalContextClassPutHard
    - GenericAgentArePromisesValid
    - GenericAgentDiscoverContext
    linkageType: ''
    returnType: void
    signature: void CheckFileChanges(EvalContext *ctx, Policy **policy, GenericAgentConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeSignalPipe
      Src: /src/core/cf-serverd/cf-serverd-functions.c:526,1
    - Dst: signal
      Src: /src/core/cf-serverd/cf-serverd-functions.c:528,1
    - Dst: signal
      Src: /src/core/cf-serverd/cf-serverd-functions.c:529,1
    - Dst: signal
      Src: /src/core/cf-serverd/cf-serverd-functions.c:530,1
    - Dst: signal
      Src: /src/core/cf-serverd/cf-serverd-functions.c:531,1
    - Dst: signal
      Src: /src/core/cf-serverd/cf-serverd-functions.c:532,1
    - Dst: signal
      Src: /src/core/cf-serverd/cf-serverd-functions.c:533,1
    - Dst: signal
      Src: /src/core/cf-serverd/cf-serverd-functions.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 524
    functionDepth: 9
    functionLinenumber: 524
    functionLinenumberEnd: 535
    functionName: InitSignals
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - signal
    - MakeSignalPipe
    linkageType: ''
    returnType: void
    signature: void InitSignals()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PolicyAppendBundle
      Src: /src/core/cf-serverd/cf-serverd-functions.c:544,1
    - Dst: NamespaceDefault
      Src: /src/core/cf-serverd/cf-serverd-functions.c:544,1
    - Dst: BundleAppendSection
      Src: /src/core/cf-serverd/cf-serverd-functions.c:547,1
    - Dst: BundleSectionAppendPromise
      Src: /src/core/cf-serverd/cf-serverd-functions.c:549,1
    - Dst: assert
      Src: /src/core/cf-serverd/cf-serverd-functions.c:553,1
    - Dst: AcquireLock
      Src: /src/core/cf-serverd/cf-serverd-functions.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - config
    - server_policy
    argTypes:
    - EvalContext*
    - GenericAgentConfig*
    - Policy*
    assertStmts:
    - condition: (pp)
      pos:
        line_end: 552
        line_start: 552
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
    constantsTouched: []
    func_position:
      end: 556
      start: 538
    functionDepth: 12
    functionLinenumber: 538
    functionLinenumberEnd: 556
    functionName: AcquireServerLock
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - NamespaceDefault
    - BundleAppendSection
    - BundleSectionAppendPromise
    - assert
    - AcquireLock
    - PolicyAppendBundle
    linkageType: ''
    returnType: CfLock
    signature: "CfLock AcquireServerLock(EvalContext *ctx,\n                                GenericAgentConfig
      *config,\n                                Policy *server_policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:563,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:570,1
    - Dst: fork
      Src: /src/core/cf-serverd/cf-serverd-functions.c:575,1
    - Dst: _exit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:577,1
    - Dst: ActAsDaemon
      Src: /src/core/cf-serverd/cf-serverd-functions.c:580,1
    - Dst: SetCloseOnExec
      Src: /src/core/cf-serverd/cf-serverd-functions.c:586,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:588,1
    - Dst: WritePID
      Src: /src/core/cf-serverd/cf-serverd-functions.c:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - sd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 559
    functionDepth: 11
    functionLinenumber: 559
    functionLinenumberEnd: 590
    functionName: PrepareServer
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - fork
    - SetCloseOnExec
    - ActAsDaemon
    - WritePID
    - Log
    - _exit
    linkageType: ''
    returnType: void
    signature: void PrepareServer(int sd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:600,1
    - Dst: pipe
      Src: /src/core/cf-serverd/cf-serverd-functions.c:605,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:607,1
    - Dst: pipe
      Src: /src/core/cf-serverd/cf-serverd-functions.c:613,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:615,1
    - Dst: fork
      Src: /src/core/cf-serverd/cf-serverd-functions.c:619,1
    - Dst: fork
      Src: /src/core/cf-serverd/cf-serverd-functions.c:624,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:631,1
    - Dst: read
      Src: /src/core/cf-serverd/cf-serverd-functions.c:632,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:633,1
    - Dst: sleep
      Src: /src/core/cf-serverd/cf-serverd-functions.c:636,1
    - Dst: exit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:638,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:644,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:645,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:649,1
    - Dst: write
      Src: /src/core/cf-serverd/cf-serverd-functions.c:650,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:651,1
    - Dst: exit
      Src: /src/core/cf-serverd/cf-serverd-functions.c:652,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:660,1
    - Dst: read
      Src: /src/core/cf-serverd/cf-serverd-functions.c:661,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:662,1
    - Dst: waitpid
      Src: /src/core/cf-serverd/cf-serverd-functions.c:663,1
    - Dst: sd_notifyf
      Src: /src/core/cf-serverd/cf-serverd-functions.c:665,1
    - Dst: sd_notify_barrier
      Src: /src/core/cf-serverd/cf-serverd-functions.c:667,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:669,1
    - Dst: write
      Src: /src/core/cf-serverd/cf-serverd-functions.c:670,1
    - Dst: close
      Src: /src/core/cf-serverd/cf-serverd-functions.c:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 598
    functionDepth: 8
    functionLinenumber: 598
    functionLinenumberEnd: 674
    functionName: GracefulStop
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - fork
    - exit
    - read
    - write
    - sleep
    - sd_notifyf
    - sd_notify_barrier
    - Log
    - pipe
    - waitpid
    - close
    linkageType: ''
    returnType: void
    signature: void GracefulStop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/cf-serverd/cf-serverd-functions.c:686,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/cf-serverd-functions.c:688,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:695,1
    - Dst: sleep
      Src: /src/core/cf-serverd/cf-serverd-functions.c:699,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:704,1
    - Dst: assert
      Src: /src/core/cf-serverd/cf-serverd-functions.c:710,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:711,1
    - Dst: ClearAuthAndACLs
      Src: /src/core/cf-serverd/cf-serverd-functions.c:713,1
    - Dst: ServerTLSDeInitialize
      Src: /src/core/cf-serverd/cf-serverd-functions.c:714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - graceful_time
    argTypes:
    - int
    assertStmts:
    - condition: (result == 0)
      pos:
        line_end: 709
        line_start: 709
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
    constantsTouched: []
    func_position:
      end: 718
      start: 681
    functionDepth: 8
    functionLinenumber: 681
    functionLinenumberEnd: 718
    functionName: WaitOnThreads
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - ThreadLock
    - assert
    - ThreadUnlock
    - sleep
    - ClearAuthAndACLs
    - Log
    - ServerTLSDeInitialize
    linkageType: ''
    returnType: int
    signature: int WaitOnThreads(int graceful_time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CollectCallHasPending
      Src: /src/core/cf-serverd/cf-serverd-functions.c:723,1
    - Dst: CollectCallGetPending
      Src: /src/core/cf-serverd/cf-serverd-functions.c:727,1
    - Dst: assert
      Src: /src/core/cf-serverd/cf-serverd-functions.c:728,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:731,1
    - Dst: cf_closesocket
      Src: /src/core/cf-serverd/cf-serverd-functions.c:734,1
    - Dst: CollectCallMarkProcessed
      Src: /src/core/cf-serverd/cf-serverd-functions.c:735,1
    - Dst: ConnectionInfoNew
      Src: /src/core/cf-serverd/cf-serverd-functions.c:739,1
    - Dst: assert
      Src: /src/core/cf-serverd/cf-serverd-functions.c:740,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:741,1
    - Dst: ConnectionInfoSetSocket
      Src: /src/core/cf-serverd/cf-serverd-functions.c:743,1
    - Dst: ServerEntryPoint
      Src: /src/core/cf-serverd/cf-serverd-functions.c:745,1
    - Dst: PolicyServerGetIP
      Src: /src/core/cf-serverd/cf-serverd-functions.c:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EvalContext*
    assertStmts:
    - condition: (new_client >= 0)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
    - condition: (info)
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
    constantsTouched: []
    func_position:
      end: 748
      start: 720
    functionDepth: 9
    functionLinenumber: 720
    functionLinenumberEnd: 748
    functionName: CollectCallIfDue
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - CollectCallGetPending
    - cf_closesocket
    - ServerEntryPoint
    - PolicyServerGetIP
    - assert
    - CollectCallMarkProcessed
    - ConnectionInfoNew
    - Log
    - ConnectionInfoSetSocket
    - CollectCallHasPending
    linkageType: ''
    returnType: void
    signature: void CollectCallIfDue(EvalContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThreadLock
      Src: /src/core/cf-serverd/cf-serverd-functions.c:758,1
    - Dst: CheckFileChanges
      Src: /src/core/cf-serverd/cf-serverd-functions.c:762,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/cf-serverd-functions.c:764,1
    - Dst: CollectCallStart
      Src: /src/core/cf-serverd/cf-serverd-functions.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - policy
    - config
    argTypes:
    - EvalContext*
    - Policy**
    - GenericAgentConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 755
    functionDepth: 18
    functionLinenumber: 755
    functionLinenumberEnd: 772
    functionName: PolicyUpdateIfSafe
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - CollectCallStart
    - ThreadUnlock
    - ThreadLock
    - CheckFileChanges
    linkageType: ''
    returnType: void
    signature: "void PolicyUpdateIfSafe(EvalContext *ctx, Policy **policy,\n                               GenericAgentConfig
      *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionInfoNew
      Src: /src/core/cf-serverd/cf-serverd-functions.c:778,1
    - Dst: accept
      Src: /src/core/cf-serverd/cf-serverd-functions.c:781,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:784,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/cf-serverd-functions.c:784,1
    - Dst: ConnectionInfoDestroy
      Src: /src/core/cf-serverd/cf-serverd-functions.c:785,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:789,1
    - Dst: getnameinfo
      Src: /src/core/cf-serverd/cf-serverd-functions.c:794,1
    - Dst: ServerEntryPoint
      Src: /src/core/cf-serverd/cf-serverd-functions.c:800,1
    - Dst: MapAddress
      Src: /src/core/cf-serverd/cf-serverd-functions.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - sd
    argTypes:
    - EvalContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 775
    functionDepth: 8
    functionLinenumber: 775
    functionLinenumberEnd: 801
    functionName: AcceptAndHandle
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - ServerEntryPoint
    - accept
    - getnameinfo
    - ConnectionInfoDestroy
    - ConnectionInfoNew
    - Log
    - MapAddress
    linkageType: ''
    returnType: void
    signature: void AcceptAndHandle(EvalContext *ctx, int sd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/cf-serverd/cf-serverd-functions.c:805,1
    - Dst: StringToLong
      Src: /src/core/cf-serverd/cf-serverd-functions.c:809,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:814,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 803
    functionDepth: 8
    functionLinenumber: 803
    functionLinenumberEnd: 821
    functionName: GetListenQueueSize
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 0
    functionsReached:
    - StringToLong
    - Log
    - getenv
    linkageType: ''
    returnType: size_t
    signature: size_t GetListenQueueSize(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: InitSignals
      Src: /src/core/cf-serverd/cf-serverd-functions.c:830,1
    - Dst: ServerTLSInitialize
      Src: /src/core/cf-serverd/cf-serverd-functions.c:832,1
    - Dst: GetListenQueueSize
      Src: /src/core/cf-serverd/cf-serverd-functions.c:838,1
    - Dst: SetServerListenState
      Src: /src/core/cf-serverd/cf-serverd-functions.c:839,1
    - Dst: assert
      Src: /src/core/cf-serverd/cf-serverd-functions.c:842,1
    - Dst: GetSignalPipe
      Src: /src/core/cf-serverd/cf-serverd-functions.c:843,1
    - Dst: PolicyNew
      Src: /src/core/cf-serverd/cf-serverd-functions.c:845,1
    - Dst: AcquireServerLock
      Src: /src/core/cf-serverd/cf-serverd-functions.c:846,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-serverd/cf-serverd-functions.c:849,1
    - Dst: cf_closesocket
      Src: /src/core/cf-serverd/cf-serverd-functions.c:852,1
    - Dst: PrepareServer
      Src: /src/core/cf-serverd/cf-serverd-functions.c:857,1
    - Dst: CollectCallStart
      Src: /src/core/cf-serverd/cf-serverd-functions.c:858,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-serverd/cf-serverd-functions.c:860,1
    - Dst: CollectCallIfDue
      Src: /src/core/cf-serverd/cf-serverd-functions.c:862,1
    - Dst: WaitForIncoming
      Src: /src/core/cf-serverd/cf-serverd-functions.c:864,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:866,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:869,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/cf-serverd-functions.c:871,1
    - Dst: PolicyUpdateIfSafe
      Src: /src/core/cf-serverd/cf-serverd-functions.c:876,1
    - Dst: AcceptAndHandle
      Src: /src/core/cf-serverd/cf-serverd-functions.c:881,1
    - Dst: ReloadConfigRequested
      Src: /src/core/cf-serverd/cf-serverd-functions.c:887,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:889,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:894,1
    - Dst: CollectCallStop
      Src: /src/core/cf-serverd/cf-serverd-functions.c:896,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-functions.c:899,1
    - Dst: cf_closesocket
      Src: /src/core/cf-serverd/cf-serverd-functions.c:900,1
    - Dst: ReloadConfigRequested
      Src: /src/core/cf-serverd/cf-serverd-functions.c:906,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-serverd/cf-serverd-functions.c:909,1
    - Dst: GracefulStop
      Src: /src/core/cf-serverd/cf-serverd-functions.c:910,1
    - Dst: WaitOnThreads
      Src: /src/core/cf-serverd/cf-serverd-functions.c:911,1
    - Dst: WaitOnThreads
      Src: /src/core/cf-serverd/cf-serverd-functions.c:917,1
    - Dst: YieldCurrentLock
      Src: /src/core/cf-serverd/cf-serverd-functions.c:918,1
    - Dst: PolicyDestroy
      Src: /src/core/cf-serverd/cf-serverd-functions.c:921,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 3
    argNames:
    - ctx
    - policy
    - config
    argTypes:
    - EvalContext*
    - Policy**
    - GenericAgentConfig*
    assertStmts:
    - condition: "((size_t) sd < sizeof(fd_set) * CHAR_BIT &&\n           (size_t)
        GetSignalPipe() < sizeof(fd_set) * CHAR_BIT)"
      pos:
        line_end: 842
        line_start: 841
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
    constantsTouched: []
    func_position:
      end: 924
      start: 828
    functionDepth: 19
    functionLinenumber: 828
    functionLinenumberEnd: 924
    functionName: StartServer
    functionSourceFile: /src/core/cf-serverd/cf-serverd-functions.c
    functionUses: 4
    functionsReached:
    - PolicyDestroy
    - cf_closesocket
    - GetListenQueueSize
    - Log
    - AcceptAndHandle
    - PrepareServer
    - ServerTLSInitialize
    - ReloadConfigRequested
    - WaitForIncoming
    - PolicyNew
    - SetServerListenState
    - YieldCurrentLock
    - PolicyUpdateIfSafe
    - GetSignalPipe
    - CollectCallStart
    - assert
    - CollectCallStop
    - InitSignals
    - GetErrorStr
    - WaitOnThreads
    - CollectCallIfDue
    - IsPendingTermination
    - GracefulStop
    - AcquireServerLock
    linkageType: ''
    returnType: int
    signature: int StartServer(EvalContext *ctx, Policy **policy, GenericAgentConfig
      *config)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:78,1
    - Dst: TLSGenericInitialize
      Src: /src/core/cf-serverd/server_tls.c:83,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:92,1
    - Dst: SSL_CTX_new
      Src: /src/core/cf-serverd/server_tls.c:93,1
    - Dst: SSLv23_server_method
      Src: /src/core/cf-serverd/server_tls.c:93,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:96,1
    - Dst: TLSErrorString
      Src: /src/core/cf-serverd/server_tls.c:97,1
    - Dst: ERR_get_error
      Src: /src/core/cf-serverd/server_tls.c:97,1
    - Dst: TLSSetDefaultOptions
      Src: /src/core/cf-serverd/server_tls.c:101,1
    - Dst: TLSSetCipherList
      Src: /src/core/cf-serverd/server_tls.c:125,1
    - Dst: TLSGenerateCertFromPrivKey
      Src: /src/core/cf-serverd/server_tls.c:131,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:134,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/core/cf-serverd/server_tls.c:139,1
    - Dst: X509_free
      Src: /src/core/cf-serverd/server_tls.c:140,1
    - Dst: SSL_CTX_use_RSAPrivateKey
      Src: /src/core/cf-serverd/server_tls.c:142,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:145,1
    - Dst: TLSErrorString
      Src: /src/core/cf-serverd/server_tls.c:146,1
    - Dst: ERR_get_error
      Src: /src/core/cf-serverd/server_tls.c:146,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/core/cf-serverd/server_tls.c:151,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:154,1
    - Dst: TLSErrorString
      Src: /src/core/cf-serverd/server_tls.c:155,1
    - Dst: ERR_get_error
      Src: /src/core/cf-serverd/server_tls.c:155,1
    - Dst: SSL_CTX_free
      Src: /src/core/cf-serverd/server_tls.c:162,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 3
    argNames:
    - priv_key
    - pub_key
    - ssl_ctx
    argTypes:
    - RSA*
    - RSA*
    - SSL_CTX**
    assertStmts:
    - condition: (*ssl_ctx == NULL)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/core/cf-serverd/server_tls.c
    constantsTouched: []
    func_position:
      end: 165
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 165
    functionName: ServerTLSInitialize
    functionSourceFile: /src/core/cf-serverd/server_tls.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_new
    - TLSErrorString
    - TLSGenerateCertFromPrivKey
    - TLSSetDefaultOptions
    - X509_free
    - TLSGenericInitialize
    - assert
    - SSLv23_server_method
    - SSL_CTX_use_certificate
    - Log
    - SSL_CTX_use_RSAPrivateKey
    - ERR_get_error
    - SSL_CTX_free
    - TLSSetCipherList
    - SSL_CTX_check_private_key
    linkageType: ''
    returnType: bool
    signature: bool ServerTLSInitialize(RSA *priv_key, RSA *pub_key, SSL_CTX **ssl_ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/core/cf-serverd/server_tls.c:192,1
    - Dst: RSA_free
      Src: /src/core/cf-serverd/server_tls.c:198,1
    - Dst: SSL_CTX_free
      Src: /src/core/cf-serverd/server_tls.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - priv_key
    - pub_key
    - ssl_ctx
    argTypes:
    - RSA**
    - RSA**
    - SSL_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 207
    functionName: ServerTLSDeInitialize
    functionSourceFile: /src/core/cf-serverd/server_tls.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_free
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void ServerTLSDeInitialize(RSA **priv_key, RSA **pub_key, SSL_CTX **ssl_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:221,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:223,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:224,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:225,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:227,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server_tls.c:227,1
    - Dst: alloca
      Src: /src/core/cf-serverd/server_tls.c:231,1
    - Dst: recv
      Src: /src/core/cf-serverd/server_tls.c:232,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server_tls.c:232,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:233,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:236,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:237,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_tls.c:237,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:242,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:248,1
    - Dst: ConnectionInfoSetProtocolVersion
      Src: /src/core/cf-serverd/server_tls.c:251,1
    - Dst: memcmp
      Src: /src/core/cf-serverd/server_tls.c:253,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:253,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:255,1
    - Dst: ConnectionInfoSetProtocolVersion
      Src: /src/core/cf-serverd/server_tls.c:257,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:261,1
    - Dst: ConnectionInfoSetProtocolVersion
      Src: /src/core/cf-serverd/server_tls.c:263,1
    - Dst: LogRaw
      Src: /src/core/cf-serverd/server_tls.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - conn_info
    argTypes:
    - ConnectionInfo*
    assertStmts:
    - condition: (PRIVKEY != NULL)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (conn_info != NULL)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (got <= peek_size)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (got == -1)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (PUBKEY  != NULL)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (SSLSERVERCONTEXT != NULL)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (ConnectionInfoProtocolVersion(conn_info) == CF_PROTOCOL_UNDEFINED)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/core/cf-serverd/server_tls.c
    constantsTouched: []
    func_position:
      end: 268
      start: 219
    functionDepth: 8
    functionLinenumber: 219
    functionLinenumberEnd: 268
    functionName: ServerTLSPeek
    functionSourceFile: /src/core/cf-serverd/server_tls.c
    functionUses: 0
    functionsReached:
    - alloca
    - recv
    - GetErrorStr
    - strlen
    - LogRaw
    - assert
    - ConnectionInfoSetProtocolVersion
    - ConnectionInfoProtocolVersion
    - Log
    - memcmp
    - ConnectionInfoSocket
    linkageType: ''
    returnType: bool
    signature: bool ServerTLSPeek(ConnectionInfo *conn_info)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_tls.c:297,1
    - Dst: TLSSend
      Src: /src/core/cf-serverd/server_tls.c:301,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:304,1
    - Dst: TLSRecvLines
      Src: /src/core/cf-serverd/server_tls.c:309,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:312,1
    - Dst: ParseProtocolVersionNetwork
      Src: /src/core/cf-serverd/server_tls.c:317,1
    - Dst: ProtocolIsUndefined
      Src: /src/core/cf-serverd/server_tls.c:318,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:320,1
    - Dst: ProtocolIsClassic
      Src: /src/core/cf-serverd/server_tls.c:327,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:329,1
    - Dst: ProtocolIsTooNew
      Src: /src/core/cf-serverd/server_tls.c:335,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:337,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:343,1
    - Dst: ProtocolIsKnown
      Src: /src/core/cf-serverd/server_tls.c:343,1
    - Dst: memmem
      Src: /src/core/cf-serverd/server_tls.c:347,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:347,1
    - Dst: TLSRecvLines
      Src: /src/core/cf-serverd/server_tls.c:351,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:354,1
    - Dst: nt_static_assert
      Src: /src/core/cf-serverd/server_tls.c:375,1
    - Dst: nt_static_assert
      Src: /src/core/cf-serverd/server_tls.c:376,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:378,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_tls.c:382,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:384,1
    - Dst: IsUserNameValid
      Src: /src/core/cf-serverd/server_tls.c:384,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_tls.c:386,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:390,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:394,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:400,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:405,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:409,1
    - Dst: ProtocolIsKnown
      Src: /src/core/cf-serverd/server_tls.c:409,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 3
    argNames:
    - conn_info
    - username
    - username_size
    argTypes:
    - ConnectionInfo*
    - char*
    - size_t
    assertStmts:
    - condition: (ProtocolIsKnown(protocol))
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (ProtocolIsKnown(protocol))
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/core/cf-serverd/server_tls.c
    constantsTouched: []
    func_position:
      end: 413
      start: 289
    functionDepth: 11
    functionLinenumber: 289
    functionLinenumberEnd: 413
    functionName: ServerIdentificationDialog
    functionSourceFile: /src/core/cf-serverd/server_tls.c
    functionUses: 1
    functionsReached:
    - ProtocolIsTooNew
    - ParseProtocolVersionNetwork
    - snprintf
    - TLSRecvLines
    - strlen
    - assert
    - ProtocolIsKnown
    - nt_static_assert
    - IsUserNameValid
    - ProtocolIsClassic
    - sscanf
    - Log
    - strcmp
    - memmem
    - strcpy
    - ProtocolIsUndefined
    - TLSSend
    linkageType: ''
    returnType: bool
    signature: "bool ServerIdentificationDialog(ConnectionInfo *conn_info,\n                                char
      *username, size_t username_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:418,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_tls.c:424,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:428,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_tls.c:431,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:436,1
    - Dst: TLSSend
      Src: /src/core/cf-serverd/server_tls.c:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - conn
    argTypes:
    - ServerConnectionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 415
    functionDepth: 10
    functionLinenumber: 415
    functionLinenumberEnd: 453
    functionName: ServerSendWelcome
    functionSourceFile: /src/core/cf-serverd/server_tls.c
    functionUses: 1
    functionsReached:
    - GetErrorStr
    - snprintf
    - strlen
    - Log
    - TLSSend
    linkageType: ''
    returnType: bool
    signature: bool ServerSendWelcome(const ServerConnectionState *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:477,1
    - Dst: ConnectionInfoSSL
      Src: /src/core/cf-serverd/server_tls.c:477,1
    - Dst: SSL_new
      Src: /src/core/cf-serverd/server_tls.c:478,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:481,1
    - Dst: TLSErrorString
      Src: /src/core/cf-serverd/server_tls.c:482,1
    - Dst: ERR_get_error
      Src: /src/core/cf-serverd/server_tls.c:482,1
    - Dst: ConnectionInfoSetSSL
      Src: /src/core/cf-serverd/server_tls.c:485,1
    - Dst: SSL_set_ex_data
      Src: /src/core/cf-serverd/server_tls.c:488,1
    - Dst: SSL_set_fd
      Src: /src/core/cf-serverd/server_tls.c:491,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server_tls.c:491,1
    - Dst: SSL_accept
      Src: /src/core/cf-serverd/server_tls.c:498,1
    - Dst: TLSLogError
      Src: /src/core/cf-serverd/server_tls.c:501,1
    - Dst: sleep
      Src: /src/core/cf-serverd/server_tls.c:508,1
    - Dst: TLSLogError
      Src: /src/core/cf-serverd/server_tls.c:514,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:519,1
    - Dst: SSL_get_version
      Src: /src/core/cf-serverd/server_tls.c:520,1
    - Dst: SSL_get_cipher_name
      Src: /src/core/cf-serverd/server_tls.c:521,1
    - Dst: SSL_get_cipher_version
      Src: /src/core/cf-serverd/server_tls.c:522,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - conn
    - ssl_ctx
    argTypes:
    - ServerConnectionState*
    - SSL_CTX*
    assertStmts:
    - condition: (ConnectionInfoSSL(conn->conn_info) == NULL)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/core/cf-serverd/server_tls.c
    constantsTouched: []
    func_position:
      end: 525
      start: 467
    functionDepth: 9
    functionLinenumber: 467
    functionLinenumberEnd: 525
    functionName: BasicServerTLSSessionEstablish
    functionSourceFile: /src/core/cf-serverd/server_tls.c
    functionUses: 1
    functionsReached:
    - TLSErrorString
    - ConnectionInfoSSL
    - SSL_get_version
    - SSL_get_cipher_version
    - assert
    - sleep
    - SSL_set_ex_data
    - SSL_accept
    - Log
    - SSL_set_fd
    - SSL_get_cipher_name
    - ConnectionInfoSocket
    - ERR_get_error
    - ConnectionInfoSetSSL
    - SSL_new
    - TLSLogError
    linkageType: ''
    returnType: bool
    signature: bool BasicServerTLSSessionEstablish(ServerConnectionState *conn, SSL_CTX
      *ssl_ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BasicServerTLSSessionEstablish
      Src: /src/core/cf-serverd/server_tls.c:547,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:553,1
    - Dst: ServerIdentificationDialog
      Src: /src/core/cf-serverd/server_tls.c:558,1
    - Dst: TLSVerifyPeer
      Src: /src/core/cf-serverd/server_tls.c:569,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:577,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:579,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:579,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server_tls.c:585,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:587,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:589,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:590,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:590,1
    - Dst: SavePublicKey
      Src: /src/core/cf-serverd/server_tls.c:592,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:592,1
    - Dst: KeyRSA
      Src: /src/core/cf-serverd/server_tls.c:593,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:593,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:597,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:599,1
    - Dst: SetConnIdentity
      Src: /src/core/cf-serverd/server_tls.c:607,1
    - Dst: LastSaw1
      Src: /src/core/cf-serverd/server_tls.c:613,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:613,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:613,1
    - Dst: ServerSendWelcome
      Src: /src/core/cf-serverd/server_tls.c:616,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - conn
    - ssl_ctx
    argTypes:
    - ServerConnectionState*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 540
    functionDepth: 12
    functionLinenumber: 540
    functionLinenumberEnd: 618
    functionName: ServerTLSSessionEstablish
    functionSourceFile: /src/core/cf-serverd/server_tls.c
    functionUses: 2
    functionsReached:
    - KeyRSA
    - SetConnIdentity
    - SavePublicKey
    - ServerSendWelcome
    - IsMatchItemIn
    - KeyPrintableHash
    - BasicServerTLSSessionEstablish
    - ConnectionInfoKey
    - Log
    - ServerIdentificationDialog
    - LastSaw1
    - TLSVerifyPeer
    linkageType: ''
    returnType: bool
    signature: bool ServerTLSSessionEstablish(ServerConnectionState *conn, SSL_CTX
      *ssl_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:629,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_tls.c:630,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (i == PROTOCOL_COMMAND_BAD)
      pos:
        line_end: 635
        line_start: 635
        source_file: /src/core/cf-serverd/server_tls.c
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: GetCommandNew
    functionSourceFile: /src/core/cf-serverd/server_tls.c
    functionUses: 1
    functionsReached:
    - assert
    - strncmp
    - strlen
    linkageType: ''
    returnType: ProtocolCommandNew
    signature: ProtocolCommandNew GetCommandNew(char *str)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:652,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:666,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:667,1
    - Dst: ReceiveTransaction
      Src: /src/core/cf-serverd/server_tls.c:670,1
    - Dst: UnexpectedError
      Src: /src/core/cf-serverd/server_tls.c:680,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:684,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:686,1
    - Dst: IsPendingTermination
      Src: /src/core/cf-serverd/server_tls.c:691,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:693,1
    - Dst: GetCommandNew
      Src: /src/core/cf-serverd/server_tls.c:699,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:703,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:705,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_tls.c:705,1
    - Dst: strspn
      Src: /src/core/cf-serverd/server_tls.c:709,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:711,1
    - Dst: DoExec2
      Src: /src/core/cf-serverd/server_tls.c:714,1
    - Dst: Terminate
      Src: /src/core/cf-serverd/server_tls.c:720,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_tls.c:726,1
    - Dst: Version
      Src: /src/core/cf-serverd/server_tls.c:726,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_tls.c:727,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:732,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:741,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_tls.c:747,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:750,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:750,1
    - Dst: PreprocessRequestPath
      Src: /src/core/cf-serverd/server_tls.c:756,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:759,1
    - Dst: PathRemoveTrailingSlash
      Src: /src/core/cf-serverd/server_tls.c:763,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:763,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:765,1
    - Dst: acl_CheckPath
      Src: /src/core/cf-serverd/server_tls.c:768,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:770,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:770,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:773,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:774,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_tls.c:778,1
    - Dst: CfGetFile
      Src: /src/core/cf-serverd/server_tls.c:791,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_tls.c:797,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:798,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:804,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_tls.c:809,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:812,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:812,1
    - Dst: PreprocessRequestPath
      Src: /src/core/cf-serverd/server_tls.c:818,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:821,1
    - Dst: PathAppendTrailingSlash
      Src: /src/core/cf-serverd/server_tls.c:826,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:826,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:828,1
    - Dst: acl_CheckPath
      Src: /src/core/cf-serverd/server_tls.c:831,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:833,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:833,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:836,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:837,1
    - Dst: CfOpenDirectory
      Src: /src/core/cf-serverd/server_tls.c:841,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_tls.c:847,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:848,1
    - Dst: time
      Src: /src/core/cf-serverd/server_tls.c:856,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:860,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_tls.c:860,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_tls.c:861,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:868,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_tls.c:873,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:876,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:876,1
    - Dst: PreprocessRequestPath
      Src: /src/core/cf-serverd/server_tls.c:882,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:885,1
    - Dst: IsDirReal
      Src: /src/core/cf-serverd/server_tls.c:889,1
    - Dst: PathAppendTrailingSlash
      Src: /src/core/cf-serverd/server_tls.c:891,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:891,1
    - Dst: PathRemoveTrailingSlash
      Src: /src/core/cf-serverd/server_tls.c:895,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:895,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:898,1
    - Dst: acl_CheckPath
      Src: /src/core/cf-serverd/server_tls.c:901,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:903,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:903,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:906,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:907,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:911,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_tls.c:916,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:919,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_tls.c:920,1
    - Dst: StatFile
      Src: /src/core/cf-serverd/server_tls.c:924,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:930,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:936,1
    - Dst: ShortcutsExpand
      Src: /src/core/cf-serverd/server_tls.c:942,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:945,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:945,1
    - Dst: PreprocessRequestPath
      Src: /src/core/cf-serverd/server_tls.c:951,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:954,1
    - Dst: PathRemoveTrailingSlash
      Src: /src/core/cf-serverd/server_tls.c:958,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:958,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:960,1
    - Dst: acl_CheckPath
      Src: /src/core/cf-serverd/server_tls.c:963,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:965,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:965,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:968,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:969,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:973,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_tls.c:976,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_tls.c:978,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_tls.c:978,1
    - Dst: CompareLocalHash
      Src: /src/core/cf-serverd/server_tls.c:981,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_tls.c:982,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:989,1
    - Dst: acl_CheckExact
      Src: /src/core/cf-serverd/server_tls.c:996,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:998,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:998,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1001,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:1002,1
    - Dst: GetServerLiteral
      Src: /src/core/cf-serverd/server_tls.c:1006,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:1012,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1018,1
    - Dst: ListPersistentClasses
      Src: /src/core/cf-serverd/server_tls.c:1028,1
    - Dst: StringMatchFull
      Src: /src/core/cf-serverd/server_tls.c:1037,1
    - Dst: acl_CheckRegex
      Src: /src/core/cf-serverd/server_tls.c:1041,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:1043,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:1043,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1047,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_tls.c:1049,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1056,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:1059,1
    - Dst: ReplyServerContext
      Src: /src/core/cf-serverd/server_tls.c:1063,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:1069,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:1070,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:1076,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:1077,1
    - Dst: acl_CheckExact
      Src: /src/core/cf-serverd/server_tls.c:1078,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1083,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:1084,1
    - Dst: GetServerQuery
      Src: /src/core/cf-serverd/server_tls.c:1088,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server_tls.c:1097,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:1102,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:1103,1
    - Dst: acl_CheckExact
      Src: /src/core/cf-serverd/server_tls.c:1104,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1109,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_tls.c:1110,1
    - Dst: ReturnCookies
      Src: /src/core/cf-serverd/server_tls.c:1114,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server_tls.c:1123,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_tls.c:1129,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1135,1
    - Dst: StringIsSHA1Hex
      Src: /src/core/cf-serverd/server_tls.c:1138,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:1143,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:1144,1
    - Dst: acl_CheckExact
      Src: /src/core/cf-serverd/server_tls.c:1145,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1150,1
    - Dst: PatchStreamRefuse
      Src: /src/core/cf-serverd/server_tls.c:1159,1
    - Dst: ConnectionInfoSSL
      Src: /src/core/cf-serverd/server_tls.c:1159,1
    - Dst: ServeLeech2Patch
      Src: /src/core/cf-serverd/server_tls.c:1165,1
    - Dst: acl_CheckExact
      Src: /src/core/cf-serverd/server_tls.c:1170,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_tls.c:1172,1
    - Dst: ConnectionInfoKey
      Src: /src/core/cf-serverd/server_tls.c:1172,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1175,1
    - Dst: ReceiveCollectCall
      Src: /src/core/cf-serverd/server_tls.c:1180,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1188,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_tls.c:1197,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_tls.c:1198,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_tls.c:1199,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 262
    argCount: 2
    argNames:
    - ctx
    - conn
    argTypes:
    - EvalContext*
    - ServerConnectionState*
    assertStmts:
    - condition: (conn->user_data_set == true)
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (conn->rsa_auth == true)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: "(strncmp(PROTOCOL_NEW[PROTOCOL_COMMAND_EXEC],\n                       recvbuffer,
        EXEC_len) == 0)"
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (CF_DEFAULT_DIGEST_LEN <= EVP_MAX_MD_SIZE)
      pos:
        line_end: 972
        line_start: 972
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: (conn != NULL)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/core/cf-serverd/server_tls.c
    - condition: "(CF_BUFSIZE + CF_SMALL_OFFSET + (size_t) CF_DEFAULT_DIGEST_LEN\n
        \              <= sizeof(recvbuffer))"
      pos:
        line_end: 976
        line_start: 975
        source_file: /src/core/cf-serverd/server_tls.c
    constantsTouched: []
    func_position:
      end: 1202
      start: 650
    functionDepth: 14
    functionLinenumber: 650
    functionLinenumberEnd: 1202
    functionName: BusyWithNewProtocol
    functionSourceFile: /src/core/cf-serverd/server_tls.c
    functionUses: 0
    functionsReached:
    - acl_CheckPath
    - strncmp
    - RefuseAccess
    - Version
    - KeyPrintableHash
    - ShortcutsExpand
    - strspn
    - StringIsSHA1Hex
    - acl_CheckExact
    - Log
    - PathRemoveTrailingSlash
    - CfGetFile
    - Terminate
    - PatchStreamRefuse
    - time
    - IsDirReal
    - snprintf
    - strlen
    - PathAppendTrailingSlash
    - sscanf
    - GetServerQuery
    - SendTransaction
    - StringMatchFull
    - ReceiveTransaction
    - strcpy
    - memset
    - ServeLeech2Patch
    - ConnectionInfoSSL
    - CompareLocalHash
    - assert
    - ReceiveCollectCall
    - ListPersistentClasses
    - GetCommandNew
    - DoExec2
    - ConnectionInfoKey
    - ReturnCookies
    - CfOpenDirectory
    - GetErrorStr
    - memcpy
    - acl_CheckRegex
    - UnexpectedError
    - IsPendingTermination
    - GetServerLiteral
    - StatFile
    - ReplyServerContext
    - ConnectionInfoProtocolVersion
    - PrependItem
    - PreprocessRequestPath
    linkageType: ''
    returnType: bool
    signature: bool BusyWithNewProtocol(EvalContext *ctx, ServerConnectionState *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - EvalContext
    - char
    - Promise
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 8
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ENTERPRISE_VOID_FUNC_3ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_VOID_FUNC_3ARG_DEFINE_STUB(void, RegisterLiteralServerData,\n
      \                                     ARG_UNUSED EvalContext *, ctx,\n                                      ARG_UNUSED
      const char *, handle,\n                                      ARG_UNUSED const
      Promise *, pp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - EvalContext
    - char
    - char
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 8
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: ENTERPRISE_FUNC_3ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_3ARG_DEFINE_STUB(int, ReturnLiteralData, ARG_UNUSED
      EvalContext *, ctx, ARG_UNUSED char *, handle, ARG_UNUSED char *, ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:52,1
    - Dst: InitServerPtr
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - EvalContext
    - size_t
    - char
    - bool
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 8
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: ENTERPRISE_FUNC_5ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached:
    - InitServerPtr
    - Log
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_FUNC_5ARG_DEFINE_STUB(int, SetServerListenState, ARG_UNUSED
      EvalContext *, ctx, ARG_UNUSED size_t, queue_size,\n                                 ARG_UNUSED
      char *, bind_address, ARG_UNUSED bool, server_listen,\n                                 InitServerFunction,
      InitServerPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ServerConnectionState
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: ENTERPRISE_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_1ARG_DEFINE_STUB(bool, ReceiveCollectCall, ARG_UNUSED
      ServerConnectionState *, conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ServerConnectionState
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: ENTERPRISE_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_1ARG_DEFINE_STUB(bool, ReturnCookies, ARG_UNUSED
      ServerConnectionState *, conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:70,1
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:71,1
    - Dst: PatchStreamRefuse
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:72,1
    - Dst: ConnectionInfoSSL
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - char
    argTypes:
    - ARG_UNUSED
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 14
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: ENTERPRISE_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached:
    - assert
    - ConnectionInfoSSL
    - Log
    - PatchStreamRefuse
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_2ARG_DEFINE_STUB(bool, ServeLeech2Patch, ServerConnectionState
      *, conn, ARG_UNUSED const char *, last_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ServerConnectionState
    - char
    - int
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: ENTERPRISE_FUNC_3ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_3ARG_DEFINE_STUB(bool, ReturnQueryData, ARG_UNUSED
      ServerConnectionState *, conn, ARG_UNUSED char *, menu, ARG_UNUSED int, encrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ServerConnectionState
    - char
    argTypes:
    - ARG_UNUSED
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: ENTERPRISE_FUNC_2ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_2ARG_DEFINE_STUB(bool, CFTestD_ReturnQueryData,
      ARG_UNUSED ServerConnectionState *, conn, ARG_UNUSED char *, menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Promise
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached:
    - Log
    linkageType: ''
    returnType: void
    signature: "void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, KeepReportDataSelectAccessPromise,\n
      \                                     ARG_UNUSED const Promise *, pp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB(void, CleanReportBookFilterSet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - int
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, CollectCallStart,
      ARG_UNUSED int, interval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB(void, CollectCallStop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: ENTERPRISE_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_0ARG_DEFINE_STUB(bool, CollectCallHasPending)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - int
    argTypes:
    - ARG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: ENTERPRISE_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_FUNC_1ARG_DEFINE_STUB(int, CollectCallGetPending, ARG_UNUSED
      int *, queue_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB(void, CollectCallMarkProcessed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:120,1
    - Dst: Version
      Src: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
    functionSourceFile: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
    functionUses: 0
    functionsReached:
    - Version
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB(void, FprintAvahiCfengineTag,
      FILE *, fp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:95,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server.c:97,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server.c:102,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:104,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server.c:108,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:110,1
    - Dst: time
      Src: /src/core/cf-serverd/server.c:116,1
    - Dst: PurgeOldConnections
      Src: /src/core/cf-serverd/server.c:122,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server.c:124,1
    - Dst: ThreadLock
      Src: /src/core/cf-serverd/server.c:127,1
    - Dst: IsItemIn
      Src: /src/core/cf-serverd/server.c:129,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/server.c:130,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:134,1
    - Dst: PRINTSIZE
      Src: /src/core/cf-serverd/server.c:142,1
    - Dst: xsnprintf
      Src: /src/core/cf-serverd/server.c:143,1
    - Dst: ThreadLock
      Src: /src/core/cf-serverd/server.c:145,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server.c:146,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/server.c:147,1
    - Dst: SpawnConnection
      Src: /src/core/cf-serverd/server.c:149,1
    - Dst: CollectCallMarkProcessed
      Src: /src/core/cf-serverd/server.c:157,1
    - Dst: cf_closesocket
      Src: /src/core/cf-serverd/server.c:159,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server.c:159,1
    - Dst: ConnectionInfoDestroy
      Src: /src/core/cf-serverd/server.c:160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - ctx
    - ipaddr
    - info
    argTypes:
    - EvalContext*
    - char*
    - ConnectionInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 93
    functionDepth: 9
    functionLinenumber: 93
    functionLinenumberEnd: 161
    functionName: ServerEntryPoint
    functionSourceFile: /src/core/cf-serverd/server.c
    functionUses: 2
    functionsReached:
    - cf_closesocket
    - ThreadLock
    - IsItemIn
    - PRINTSIZE
    - ThreadUnlock
    - CollectCallMarkProcessed
    - IsMatchItemIn
    - SpawnConnection
    - ConnectionInfoDestroy
    - PurgeOldConnections
    - Log
    - xsnprintf
    - PrependItem
    - ConnectionInfoSocket
    - time
    linkageType: ''
    returnType: void
    signature: void ServerEntryPoint(EvalContext *ctx, const char *ipaddr, ConnectionInfo
      *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server.c:169,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:171,1
    - Dst: ThreadLock
      Src: /src/core/cf-serverd/server.c:173,1
    - Dst: sscanf
      Src: /src/core/cf-serverd/server.c:178,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:184,1
    - Dst: DeleteItem
      Src: /src/core/cf-serverd/server.c:187,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/server.c:190,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - list
    - now
    argTypes:
    - Item**
    - time_t
    assertStmts:
    - condition: (list != NULL)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/core/cf-serverd/server.c
    constantsTouched: []
    func_position:
      end: 193
      start: 165
    functionDepth: 8
    functionLinenumber: 165
    functionLinenumberEnd: 193
    functionName: PurgeOldConnections
    functionSourceFile: /src/core/cf-serverd/server.c
    functionUses: 5
    functionsReached:
    - ThreadLock
    - assert
    - ThreadUnlock
    - sscanf
    - Log
    - DeleteItem
    linkageType: ''
    returnType: void
    signature: void PurgeOldConnections(Item **list, time_t now)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NewConn
      Src: /src/core/cf-serverd/server.c:204,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server.c:205,1
    - Dst: strlcpy
      Src: /src/core/cf-serverd/server.c:206,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:208,1
    - Dst: pthread_attr_init
      Src: /src/core/cf-serverd/server.c:212,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:215,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server.c:217,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/core/cf-serverd/server.c:220,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:223,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server.c:225,1
    - Dst: pthread_attr_setstacksize
      Src: /src/core/cf-serverd/server.c:228,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:231,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server.c:233,1
    - Dst: pthread_create
      Src: /src/core/cf-serverd/server.c:237,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:241,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server.c:243,1
    - Dst: pthread_attr_destroy
      Src: /src/core/cf-serverd/server.c:248,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:252,1
    - Dst: HandleConnection
      Src: /src/core/cf-serverd/server.c:253,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - ipaddr
    - info
    argTypes:
    - EvalContext*
    - char*
    - ConnectionInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 197
    functionDepth: 8
    functionLinenumber: 197
    functionLinenumberEnd: 255
    functionName: SpawnConnection
    functionSourceFile: /src/core/cf-serverd/server.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - pthread_attr_setstacksize
    - pthread_create
    - pthread_attr_init
    - HandleConnection
    - ConnectionInfoSocket
    - pthread_attr_destroy
    - pthread_attr_setdetachstate
    - Log
    - NewConn
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void SpawnConnection(EvalContext *ctx, const char *ipaddr, ConnectionInfo
      *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/core/cf-serverd/server.c:263,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:265,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 8
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: DisableSendDelays
    functionSourceFile: /src/core/cf-serverd/server.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - Log
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void DisableSendDelays(int sockfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringConcatenate
      Src: /src/core/cf-serverd/server.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - log_ctx
    - LogLevel
    - message
    argTypes:
    - LoggingPrivContext*
    - ARG_UNUSED
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: LogHook
    functionSourceFile: /src/core/cf-serverd/server.c
    functionUses: 1
    functionsReached:
    - StringConcatenate
    linkageType: ''
    returnType: char
    signature: "char *LogHook(LoggingPrivContext *log_ctx,\n                     ARG_UNUSED
      LogLevel level, const char *message)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/core/cf-serverd/server.c:297,1
    - Dst: strlcat
      Src: /src/core/cf-serverd/server.c:298,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server.c:302,1
    - Dst: LoggingPrivSetContext
      Src: /src/core/cf-serverd/server.c:308,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:310,1
    - Dst: ThreadLock
      Src: /src/core/cf-serverd/server.c:315,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:323,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/server.c:326,1
    - Dst: FatalError
      Src: /src/core/cf-serverd/server.c:327,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:331,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/server.c:336,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/server.c:342,1
    - Dst: DisableSendDelays
      Src: /src/core/cf-serverd/server.c:344,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server.c:344,1
    - Dst: SetReceiveTimeout
      Src: /src/core/cf-serverd/server.c:348,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server.c:348,1
    - Dst: ServerTLSPeek
      Src: /src/core/cf-serverd/server.c:354,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server.c:361,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:362,1
    - Dst: ProtocolVersionString
      Src: /src/core/cf-serverd/server.c:362,1
    - Dst: ProtocolIsTLS
      Src: /src/core/cf-serverd/server.c:364,1
    - Dst: ServerTLSSessionEstablish
      Src: /src/core/cf-serverd/server.c:366,1
    - Dst: ProtocolIsClassic
      Src: /src/core/cf-serverd/server.c:372,1
    - Dst: IsMatchItemIn
      Src: /src/core/cf-serverd/server.c:376,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:378,1
    - Dst: UnexpectedError
      Src: /src/core/cf-serverd/server.c:385,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server.c:386,1
    - Dst: ProtocolIsTLS
      Src: /src/core/cf-serverd/server.c:392,1
    - Dst: getnameinfo
      Src: /src/core/cf-serverd/server.c:398,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:404,1
    - Dst: gai_strerror
      Src: /src/core/cf-serverd/server.c:406,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:410,1
    - Dst: BusyWithNewProtocol
      Src: /src/core/cf-serverd/server.c:416,1
    - Dst: ProtocolIsClassic
      Src: /src/core/cf-serverd/server.c:420,1
    - Dst: BusyWithClassicConnection
      Src: /src/core/cf-serverd/server.c:422,1
    - Dst: assert
      Src: /src/core/cf-serverd/server.c:428,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:432,1
    - Dst: ThreadLock
      Src: /src/core/cf-serverd/server.c:435,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/server.c:437,1
    - Dst: CollectCallMarkProcessed
      Src: /src/core/cf-serverd/server.c:442,1
    - Dst: DeleteConn
      Src: /src/core/cf-serverd/server.c:444,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 1
    argNames:
    - c
    argTypes:
    - void*
    assertStmts:
    - condition: (!"Bogus protocol version - but we checked that already !")
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/core/cf-serverd/server.c
    constantsTouched: []
    func_position:
      end: 446
      start: 283
    functionDepth: 15
    functionLinenumber: 283
    functionLinenumberEnd: 446
    functionName: HandleConnection
    functionSourceFile: /src/core/cf-serverd/server.c
    functionUses: 2
    functionsReached:
    - ThreadUnlock
    - Log
    - ProtocolVersionString
    - strlcpy
    - DeleteConn
    - ThreadLock
    - strlen
    - BusyWithNewProtocol
    - BusyWithClassicConnection
    - DisableSendDelays
    - strlcat
    - ServerTLSPeek
    - assert
    - CollectCallMarkProcessed
    - getnameinfo
    - ServerTLSSessionEstablish
    - ProtocolIsClassic
    - ConnectionInfoSocket
    - SetReceiveTimeout
    - IsMatchItemIn
    - UnexpectedError
    - FatalError
    - ConnectionInfoProtocolVersion
    - gai_strerror
    - LoggingPrivSetContext
    - ProtocolIsTLS
    linkageType: ''
    returnType: void
    signature: void *HandleConnection(void *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/core/cf-serverd/server.c:462,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server.c:462,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:464,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server.c:466,1
    - Dst: xcalloc
      Src: /src/core/cf-serverd/server.c:471,1
    - Dst: EvalContextGetDumpReports
      Src: /src/core/cf-serverd/server.c:475,1
    - Dst: Log
      Src: /src/core/cf-serverd/server.c:480,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - info
    argTypes:
    - EvalContext*
    - ConnectionInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 453
    functionDepth: 8
    functionLinenumber: 453
    functionLinenumberEnd: 484
    functionName: NewConn
    functionSourceFile: /src/core/cf-serverd/server.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - xcalloc
    - getsockname
    - EvalContextGetDumpReports
    - Log
    - ConnectionInfoSocket
    linkageType: ''
    returnType: ServerConnectionState
    signature: ServerConnectionState *NewConn(EvalContext *ctx, ConnectionInfo *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server.c:491,1
    - Dst: cf_closesocket
      Src: /src/core/cf-serverd/server.c:494,1
    - Dst: ConnectionInfoDestroy
      Src: /src/core/cf-serverd/server.c:496,1
    - Dst: ThreadLock
      Src: /src/core/cf-serverd/server.c:500,1
    - Dst: DeleteItemMatching
      Src: /src/core/cf-serverd/server.c:501,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/server.c:502,1
    - Dst: free
      Src: /src/core/cf-serverd/server.c:506,1
    - Dst: free
      Src: /src/core/cf-serverd/server.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - conn
    argTypes:
    - ServerConnectionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 489
    functionDepth: 9
    functionLinenumber: 489
    functionLinenumberEnd: 508
    functionName: DeleteConn
    functionSourceFile: /src/core/cf-serverd/server.c
    functionUses: 2
    functionsReached:
    - cf_closesocket
    - ThreadLock
    - ThreadUnlock
    - DeleteItemMatching
    - ConnectionInfoDestroy
    - free
    - ConnectionInfoSocket
    linkageType: ''
    returnType: void
    signature: void DeleteConn(ServerConnectionState *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:65,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:68,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_common.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - errmesg
    argTypes:
    - ServerConnectionState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 11
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: RefuseAccess
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - SendTransaction
    - NULL_OR_EMPTY
    - Log
    linkageType: ''
    returnType: void
    signature: void RefuseAccess(ServerConnectionState *conn, char *errmesg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/core/cf-serverd/server_common.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - username
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: IsUserNameValid
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 3
    functionsReached:
    - strpbrk
    linkageType: ''
    returnType: bool
    signature: bool IsUserNameValid(const char *username)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsItemIn
      Src: /src/core/cf-serverd/server_common.c:88,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:90,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - user
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 8
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: AllowedUser
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 0
    functionsReached:
    - Log
    - IsItemIn
    linkageType: ''
    returnType: bool
    signature: bool AllowedUser(char *user)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:100,1
    - Dst: OpenDB
      Src: /src/core/cf-serverd/server_common.c:105,1
    - Dst: DBIdToPath
      Src: /src/core/cf-serverd/server_common.c:107,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:108,1
    - Dst: free
      Src: /src/core/cf-serverd/server_common.c:109,1
    - Dst: NewDBCursor
      Src: /src/core/cf-serverd/server_common.c:113,1
    - Dst: DBIdToPath
      Src: /src/core/cf-serverd/server_common.c:115,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:116,1
    - Dst: free
      Src: /src/core/cf-serverd/server_common.c:117,1
    - Dst: CloseDB
      Src: /src/core/cf-serverd/server_common.c:118,1
    - Dst: time
      Src: /src/core/cf-serverd/server_common.c:126,1
    - Dst: NextDB
      Src: /src/core/cf-serverd/server_common.c:128,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:132,1
    - Dst: DBCursorDeleteEntry
      Src: /src/core/cf-serverd/server_common.c:134,1
    - Dst: PrependItem
      Src: /src/core/cf-serverd/server_common.c:139,1
    - Dst: DeleteDBCursor
      Src: /src/core/cf-serverd/server_common.c:143,1
    - Dst: CloseDB
      Src: /src/core/cf-serverd/server_common.c:144,1
    - Dst: LogGetGlobalLevel
      Src: /src/core/cf-serverd/server_common.c:146,1
    - Dst: ItemList2CSV_bound
      Src: /src/core/cf-serverd/server_common.c:149,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 98
    functionDepth: 10
    functionLinenumber: 98
    functionLinenumberEnd: 156
    functionName: ListPersistentClasses
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - NewDBCursor
    - ItemList2CSV_bound
    - OpenDB
    - DeleteDBCursor
    - LogGetGlobalLevel
    - Log
    - PrependItem
    - CloseDB
    - NextDB
    - free
    - DBCursorDeleteEntry
    - time
    - DBIdToPath
    linkageType: ''
    returnType: Item
    signature: Item *ListPersistentClasses()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:163,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:165,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:167,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - ServerConnectionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 11
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: ReplyNothing
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - SendTransaction
    - Log
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ReplyNothing(ServerConnectionState *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ReceiveTransaction
      Src: /src/core/cf-serverd/server_common.c:183,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:185,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:185,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_common.c:189,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:189,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:191,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:196,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:203,1
    - Dst: SplitStringAsItemList
      Src: /src/core/cf-serverd/server_common.c:205,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:209,1
    - Dst: IsDefinedClass
      Src: /src/core/cf-serverd/server_common.c:211,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:213,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/server_common.c:214,1
    - Dst: EvalContextClassTableIteratorNewGlobal
      Src: /src/core/cf-serverd/server_common.c:226,1
    - Dst: ClassTableIteratorNext
      Src: /src/core/cf-serverd/server_common.c:228,1
    - Dst: ClassRefToString
      Src: /src/core/cf-serverd/server_common.c:230,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_common.c:232,1
    - Dst: StringMatchFull
      Src: /src/core/cf-serverd/server_common.c:233,1
    - Dst: free
      Src: /src/core/cf-serverd/server_common.c:234,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:237,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/server_common.c:238,1
    - Dst: ClassTableIteratorDestroy
      Src: /src/core/cf-serverd/server_common.c:242,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_common.c:245,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:245,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:247,1
    - Dst: ReplyNothing
      Src: /src/core/cf-serverd/server_common.c:248,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/server_common.c:249,1
    - Dst: ReplyNothing
      Src: /src/core/cf-serverd/server_common.c:255,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:256,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/server_common.c:257,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - ctx
    - conn
    argTypes:
    - EvalContext*
    - ServerConnectionState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 173
    functionDepth: 12
    functionLinenumber: 173
    functionLinenumberEnd: 259
    functionName: MatchClasses
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - strncmp
    - SplitStringAsItemList
    - ReplyNothing
    - strlen
    - ClassRefToString
    - ClassTableIteratorDestroy
    - StringMatchFull
    - Log
    - IsDefinedClass
    - ReceiveTransaction
    - ClassTableIteratorNext
    - DeleteItemList
    - strcmp
    - free
    - EvalContextClassTableIteratorNewGlobal
    linkageType: ''
    returnType: bool
    signature: bool MatchClasses(const EvalContext *ctx, ServerConnectionState *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:267,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:268,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:270,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - connection
    argTypes:
    - ConnectionInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 11
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: Terminate
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 19
    functionsReached:
    - GetErrorStr
    - SendTransaction
    - Log
    - strlen
    linkageType: ''
    returnType: void
    signature: void Terminate(ConnectionInfo *connection)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:280,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:286,1
    - Dst: GetNamedSecurityInfo
      Src: /src/core/cf-serverd/server_common.c:297,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:302,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:305,1
    - Dst: LocalFree
      Src: /src/core/cf-serverd/server_common.c:309,1
    - Dst: IsValidSid
      Src: /src/core/cf-serverd/server_common.c:311,1
    - Dst: EqualSid
      Src: /src/core/cf-serverd/server_common.c:312,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:315,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:317,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:324,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:334,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:342,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:350,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:360,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - conn
    - filename
    - sb
    argTypes:
    - ServerConnectionState*
    - char*
    - struct stat*
    assertStmts:
    - condition: (!conn->maproot)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/core/cf-serverd/server_common.c
    - condition: "((conn->uid == 0) ||\n    /* OR remote IP has maproot in the file's
        access_rules, */\n           (conn->maproot == true) ||\n    /* OR file is
        owned by the same username the user claimed - useless or\n     * even dangerous
        outside NIS, KERBEROS or LDAP authenticated domains,  */\n           (sb->st_uid
        == conn->uid) ||\n    /* OR file is readable by everyone */\n           (sb->st_mode
        & S_IROTH))"
      pos:
        line_end: 366
        line_start: 359
        source_file: /src/core/cf-serverd/server_common.c
    constantsTouched: []
    func_position:
      end: 372
      start: 275
    functionDepth: 8
    functionLinenumber: 275
    functionLinenumberEnd: 372
    functionName: TransferRights
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - IsValidSid
    - assert
    - LocalFree
    - GetNamedSecurityInfo
    - EqualSid
    - Log
    linkageType: ''
    returnType: bool
    signature: "bool TransferRights(\n    const ServerConnectionState *conn,\n    const
      char *filename,\n    const struct stat *sb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:376,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:379,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:384,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:389,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:391,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - connection
    - filename
    argTypes:
    - ConnectionInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 374
    functionDepth: 11
    functionLinenumber: 374
    functionLinenumberEnd: 394
    functionName: AbortTransfer
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - SendTransaction
    - Log
    - snprintf
    linkageType: ''
    returnType: void
    signature: void AbortTransfer(ConnectionInfo *connection, char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:398,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:402,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:404,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:406,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - connection
    argTypes:
    - ConnectionInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 396
    functionDepth: 11
    functionLinenumber: 396
    functionLinenumberEnd: 409
    functionName: FailedTransfer
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 0
    functionsReached:
    - GetErrorStr
    - SendTransaction
    - Log
    - snprintf
    linkageType: ''
    returnType: void
    signature: void FailedTransfer(ConnectionInfo *connection)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:413,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:414,1
    - Dst: TranslatePath
      Src: /src/core/cf-serverd/server_common.c:424,1
    - Dst: stat
      Src: /src/core/cf-serverd/server_common.c:426,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:428,1
    - Dst: TransferRights
      Src: /src/core/cf-serverd/server_common.c:433,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server_common.c:435,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:436,1
    - Dst: ProtocolIsKnown
      Src: /src/core/cf-serverd/server_common.c:436,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:438,1
    - Dst: ProtocolSupportsFileStream
      Src: /src/core/cf-serverd/server_common.c:440,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:441,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_common.c:442,1
    - Dst: FileStreamRefuse
      Src: /src/core/cf-serverd/server_common.c:444,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_common.c:449,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:450,1
    - Dst: ProtocolIsClassic
      Src: /src/core/cf-serverd/server_common.c:452,1
    - Dst: SendSocketStream
      Src: /src/core/cf-serverd/server_common.c:454,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server_common.c:454,1
    - Dst: ProtocolIsTLS
      Src: /src/core/cf-serverd/server_common.c:456,1
    - Dst: TLSSend
      Src: /src/core/cf-serverd/server_common.c:458,1
    - Dst: ConnectionInfoSSL
      Src: /src/core/cf-serverd/server_common.c:458,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server_common.c:465,1
    - Dst: ProtocolSupportsFileStream
      Src: /src/core/cf-serverd/server_common.c:466,1
    - Dst: FileStreamServe
      Src: /src/core/cf-serverd/server_common.c:467,1
    - Dst: safe_open
      Src: /src/core/cf-serverd/server_common.c:471,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:473,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:474,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:475,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server_common.c:477,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:478,1
    - Dst: ProtocolIsKnown
      Src: /src/core/cf-serverd/server_common.c:478,1
    - Dst: ProtocolIsClassic
      Src: /src/core/cf-serverd/server_common.c:479,1
    - Dst: SendSocketStream
      Src: /src/core/cf-serverd/server_common.c:481,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server_common.c:481,1
    - Dst: ProtocolIsTLS
      Src: /src/core/cf-serverd/server_common.c:483,1
    - Dst: TLSSend
      Src: /src/core/cf-serverd/server_common.c:485,1
    - Dst: ConnectionInfoSSL
      Src: /src/core/cf-serverd/server_common.c:485,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:499,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:501,1
    - Dst: read
      Src: /src/core/cf-serverd/server_common.c:503,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:505,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:505,1
    - Dst: stat
      Src: /src/core/cf-serverd/server_common.c:521,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:523,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:524,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:531,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server_common.c:533,1
    - Dst: ProtocolIsClassic
      Src: /src/core/cf-serverd/server_common.c:535,1
    - Dst: SendSocketStream
      Src: /src/core/cf-serverd/server_common.c:537,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server_common.c:537,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:539,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:539,1
    - Dst: ProtocolIsTLS
      Src: /src/core/cf-serverd/server_common.c:542,1
    - Dst: TLSSend
      Src: /src/core/cf-serverd/server_common.c:544,1
    - Dst: ConnectionInfoSSL
      Src: /src/core/cf-serverd/server_common.c:544,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:546,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:546,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:550,1
    - Dst: ConnectionInfoProtocolVersion
      Src: /src/core/cf-serverd/server_common.c:568,1
    - Dst: ProtocolIsClassic
      Src: /src/core/cf-serverd/server_common.c:570,1
    - Dst: SendSocketStream
      Src: /src/core/cf-serverd/server_common.c:572,1
    - Dst: ConnectionInfoSocket
      Src: /src/core/cf-serverd/server_common.c:572,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:574,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:574,1
    - Dst: ProtocolIsTLS
      Src: /src/core/cf-serverd/server_common.c:578,1
    - Dst: TLSSend
      Src: /src/core/cf-serverd/server_common.c:580,1
    - Dst: ConnectionInfoSSL
      Src: /src/core/cf-serverd/server_common.c:580,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:582,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:582,1
    - Dst: close
      Src: /src/core/cf-serverd/server_common.c:588,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 96
    argCount: 1
    argNames:
    - args
    argTypes:
    - ServerFileGetState*
    assertStmts:
    - condition: (args->conn != NULL)
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/core/cf-serverd/server_common.c
    - condition: (args != NULL)
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/core/cf-serverd/server_common.c
    - condition: (ProtocolIsKnown(version))
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/core/cf-serverd/server_common.c
    - condition: (ProtocolIsKnown(version))
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/core/cf-serverd/server_common.c
    constantsTouched: []
    func_position:
      end: 590
      start: 411
    functionDepth: 12
    functionLinenumber: 411
    functionLinenumberEnd: 590
    functionName: CfGetFile
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - RefuseAccess
    - ProtocolSupportsFileStream
    - TranslatePath
    - Log
    - close
    - snprintf
    - TransferRights
    - SendSocketStream
    - FileStreamRefuse
    - NULL_OR_EMPTY
    - TLSSend
    - ProtocolIsKnown
    - memset
    - ConnectionInfoSSL
    - read
    - assert
    - ProtocolIsClassic
    - ConnectionInfoSocket
    - GetErrorStr
    - stat
    - safe_open
    - FileStreamServe
    - ConnectionInfoProtocolVersion
    - ProtocolIsTLS
    linkageType: ''
    returnType: void
    signature: void CfGetFile(ServerFileGetState *args)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TranslatePath
      Src: /src/core/cf-serverd/server_common.c:611,1
    - Dst: stat
      Src: /src/core/cf-serverd/server_common.c:613,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:615,1
    - Dst: TransferRights
      Src: /src/core/cf-serverd/server_common.c:620,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:622,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_common.c:623,1
    - Dst: FailedTransfer
      Src: /src/core/cf-serverd/server_common.c:624,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/core/cf-serverd/server_common.c:628,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:631,1
    - Dst: TLSErrorString
      Src: /src/core/cf-serverd/server_common.c:632,1
    - Dst: ERR_get_error
      Src: /src/core/cf-serverd/server_common.c:632,1
    - Dst: safe_open
      Src: /src/core/cf-serverd/server_common.c:636,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:638,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:638,1
    - Dst: FailedTransfer
      Src: /src/core/cf-serverd/server_common.c:639,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:652,1
    - Dst: read
      Src: /src/core/cf-serverd/server_common.c:654,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:656,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:656,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:664,1
    - Dst: stat
      Src: /src/core/cf-serverd/server_common.c:665,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:667,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:668,1
    - Dst: AbortTransfer
      Src: /src/core/cf-serverd/server_common.c:675,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/core/cf-serverd/server_common.c:683,1
    - Dst: CfengineCipher
      Src: /src/core/cf-serverd/server_common.c:683,1
    - Dst: EVP_EncryptUpdate
      Src: /src/core/cf-serverd/server_common.c:685,1
    - Dst: FailedTransfer
      Src: /src/core/cf-serverd/server_common.c:687,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/cf-serverd/server_common.c:688,1
    - Dst: close
      Src: /src/core/cf-serverd/server_common.c:689,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/core/cf-serverd/server_common.c:693,1
    - Dst: FailedTransfer
      Src: /src/core/cf-serverd/server_common.c:695,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/cf-serverd/server_common.c:696,1
    - Dst: close
      Src: /src/core/cf-serverd/server_common.c:697,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:704,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:706,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:706,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/cf-serverd/server_common.c:707,1
    - Dst: close
      Src: /src/core/cf-serverd/server_common.c:708,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:715,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:717,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:717,1
    - Dst: close
      Src: /src/core/cf-serverd/server_common.c:718,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/cf-serverd/server_common.c:719,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/cf-serverd/server_common.c:726,1
    - Dst: close
      Src: /src/core/cf-serverd/server_common.c:727,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 1
    argNames:
    - args
    argTypes:
    - ServerFileGetState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 592
    functionDepth: 12
    functionLinenumber: 592
    functionLinenumberEnd: 728
    functionName: CfEncryptGetFile
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 1
    functionsReached:
    - RefuseAccess
    - EVP_EncryptInit_ex
    - AbortTransfer
    - TranslatePath
    - Log
    - FailedTransfer
    - close
    - TransferRights
    - SendTransaction
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_free
    - memset
    - read
    - EVP_EncryptFinal_ex
    - ERR_get_error
    - GetErrorStr
    - stat
    - EVP_CIPHER_CTX_new
    - TLSErrorString
    - safe_open
    - CfengineCipher
    linkageType: ''
    returnType: void
    signature: void CfEncryptGetFile(ServerFileGetState *args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:735,1
    - Dst: TranslatePath
      Src: /src/core/cf-serverd/server_common.c:741,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:743,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:745,1
    - Dst: ReadLastNode
      Src: /src/core/cf-serverd/server_common.c:745,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:747,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:748,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:749,1
    - Dst: lstat
      Src: /src/core/cf-serverd/server_common.c:753,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:755,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:756,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:756,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:757,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:765,1
    - Dst: S_ISLNK
      Src: /src/core/cf-serverd/server_common.c:768,1
    - Dst: readlink
      Src: /src/core/cf-serverd/server_common.c:775,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_common.c:777,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:778,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:778,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:779,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:783,1
    - Dst: stat
      Src: /src/core/cf-serverd/server_common.c:788,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:790,1
    - Dst: S_ISDIR
      Src: /src/core/cf-serverd/server_common.c:801,1
    - Dst: S_ISREG
      Src: /src/core/cf-serverd/server_common.c:806,1
    - Dst: S_ISSOCK
      Src: /src/core/cf-serverd/server_common.c:811,1
    - Dst: S_ISCHR
      Src: /src/core/cf-serverd/server_common.c:816,1
    - Dst: S_ISBLK
      Src: /src/core/cf-serverd/server_common.c:821,1
    - Dst: S_ISFIFO
      Src: /src/core/cf-serverd/server_common.c:826,1
    - Dst: ST_NBYTES
      Src: /src/core/cf-serverd/server_common.c:848,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:857,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:861,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:867,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:874,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:876,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:879,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:880,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:880,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:881,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:882,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:887,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:888,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_common.c:892,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:895,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 96
    argCount: 3
    argNames:
    - conn
    - sendbuffer
    - ofilename
    argTypes:
    - ServerConnectionState*
    - char*
    - char*
    assertStmts:
    - condition: (ret > 0 && ret < CF_MSGSIZE)
      pos:
        line_end: 887
        line_start: 887
        source_file: /src/core/cf-serverd/server_common.c
    - condition: (conn != NULL)
      pos:
        line_end: 734
        line_start: 734
        source_file: /src/core/cf-serverd/server_common.c
    - condition: (ret > 0 && ret < CF_MSGSIZE)
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/core/cf-serverd/server_common.c
    constantsTouched: []
    func_position:
      end: 897
      start: 730
    functionDepth: 11
    functionLinenumber: 730
    functionLinenumberEnd: 897
    functionName: StatFile
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - S_ISFIFO
    - TranslatePath
    - Log
    - S_ISREG
    - S_ISBLK
    - ST_NBYTES
    - snprintf
    - strlen
    - S_ISCHR
    - SendTransaction
    - lstat
    - ReadLastNode
    - strcpy
    - memset
    - readlink
    - S_ISLNK
    - assert
    - S_ISDIR
    - GetErrorStr
    - stat
    - S_ISSOCK
    linkageType: ''
    returnType: int
    signature: int StatFile(ServerConnectionState *conn, char *sendbuffer, char *ofilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nt_static_assert
      Src: /src/core/cf-serverd/server_common.c:902,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:902,1
    - Dst: nt_static_assert
      Src: /src/core/cf-serverd/server_common.c:903,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:903,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:903,1
    - Dst: TranslatePath
      Src: /src/core/cf-serverd/server_common.c:905,1
    - Dst: HashFile
      Src: /src/core/cf-serverd/server_common.c:909,1
    - Dst: HashesMatch
      Src: /src/core/cf-serverd/server_common.c:911,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_common.c:913,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:914,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_common.c:919,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - filename
    - digest
    - sendbuffer
    argTypes:
    - char*
    - unsigned char[]
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 899
    functionDepth: 8
    functionLinenumber: 899
    functionLinenumberEnd: 923
    functionName: CompareLocalHash
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - nt_static_assert
    - strlen
    - HashesMatch
    - TranslatePath
    - Log
    - HashFile
    - strcpy
    linkageType: ''
    returnType: bool
    signature: "bool CompareLocalHash(const char *filename, const unsigned char digest[EVP_MAX_MD_SIZE
      + 1],\n                      char sendbuffer[CFD_FALSE_SIZE])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_common.c:930,1
    - Dst: ReturnLiteralData
      Src: /src/core/cf-serverd/server_common.c:932,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:934,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:935,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:939,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:940,1
    - Dst: EncryptString
      Src: /src/core/cf-serverd/server_common.c:945,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:946,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:948,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:952,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - conn
    - sendbuffer
    - recvbuffer
    - encrypted
    argTypes:
    - EvalContext*
    - ServerConnectionState*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 925
    functionDepth: 11
    functionLinenumber: 925
    functionLinenumberEnd: 954
    functionName: GetServerLiteral
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - snprintf
    - strlen
    - sscanf
    - SendTransaction
    - ReturnLiteralData
    - EncryptString
    - memset
    linkageType: ''
    returnType: void
    signature: void GetServerLiteral(EvalContext *ctx, ServerConnectionState *conn,
      char *sendbuffer, char *recvbuffer, int encrypted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/core/cf-serverd/server_common.c:961,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:963,1
    - Dst: ReturnQueryData
      Src: /src/core/cf-serverd/server_common.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - conn
    - recvbuffer
    - encrypt
    argTypes:
    - ServerConnectionState*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 969
    functionName: GetServerQuery
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 3
    functionsReached:
    - sscanf
    - ReturnQueryData
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool GetServerQuery(ServerConnectionState *conn, char *recvbuffer,
      int encrypt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ItemList2CSV_bound
      Src: /src/core/cf-serverd/server_common.c:975,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:979,1
    - Dst: DeleteItemList
      Src: /src/core/cf-serverd/server_common.c:982,1
    - Dst: EncryptString
      Src: /src/core/cf-serverd/server_common.c:987,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:988,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:990,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - conn
    - encrypted
    - classes
    argTypes:
    - ServerConnectionState*
    - int
    - Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 971
    functionDepth: 11
    functionLinenumber: 971
    functionLinenumberEnd: 996
    functionName: ReplyServerContext
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - strlen
    - ItemList2CSV_bound
    - SendTransaction
    - Log
    - DeleteItemList
    - EncryptString
    linkageType: ''
    returnType: void
    signature: void ReplyServerContext(ServerConnectionState *conn, int encrypted,
      Item *classes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TranslatePath
      Src: /src/core/cf-serverd/server_common.c:1005,1
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-serverd/server_common.c:1007,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_common.c:1009,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1010,1
    - Dst: DirOpen
      Src: /src/core/cf-serverd/server_common.c:1014,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1016,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:1017,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:1018,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1019,1
    - Dst: DirRead
      Src: /src/core/cf-serverd/server_common.c:1026,1
    - Dst: DirRead
      Src: /src/core/cf-serverd/server_common.c:1026,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1029,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1033,1
    - Dst: strlcpy
      Src: /src/core/cf-serverd/server_common.c:1039,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1040,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_common.c:1043,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1044,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1047,1
    - Dst: DirClose
      Src: /src/core/cf-serverd/server_common.c:1049,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - conn
    - sendbuffer
    - oldDirname
    argTypes:
    - ServerConnectionState*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 998
    functionDepth: 11
    functionLinenumber: 998
    functionLinenumberEnd: 1051
    functionName: CfOpenDirectory
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - snprintf
    - strlen
    - DirRead
    - DirOpen
    - IsAbsoluteFileName
    - SendTransaction
    - TranslatePath
    - Log
    - DirClose
    - strcpy
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int CfOpenDirectory(ServerConnectionState *conn, char *sendbuffer,
      char *oldDirname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsAbsoluteFileName
      Src: /src/core/cf-serverd/server_common.c:1062,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_common.c:1064,1
    - Dst: EncryptString
      Src: /src/core/cf-serverd/server_common.c:1065,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1066,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1068,1
    - Dst: DirOpen
      Src: /src/core/cf-serverd/server_common.c:1072,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1074,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:1075,1
    - Dst: EncryptString
      Src: /src/core/cf-serverd/server_common.c:1076,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1077,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1079,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:1085,1
    - Dst: DirRead
      Src: /src/core/cf-serverd/server_common.c:1089,1
    - Dst: DirRead
      Src: /src/core/cf-serverd/server_common.c:1089,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1091,1
    - Dst: EncryptString
      Src: /src/core/cf-serverd/server_common.c:1093,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1096,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:1098,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:1099,1
    - Dst: strlcpy
      Src: /src/core/cf-serverd/server_common.c:1102,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1104,1
    - Dst: strcpy
      Src: /src/core/cf-serverd/server_common.c:1107,1
    - Dst: EncryptString
      Src: /src/core/cf-serverd/server_common.c:1110,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1111,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1113,1
    - Dst: DirClose
      Src: /src/core/cf-serverd/server_common.c:1114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - conn
    - sendbuffer
    - dirname
    argTypes:
    - ServerConnectionState*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1055
    functionDepth: 11
    functionLinenumber: 1055
    functionLinenumberEnd: 1116
    functionName: CfSecOpenDirectory
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 1
    functionsReached:
    - snprintf
    - strlen
    - DirRead
    - DirOpen
    - IsAbsoluteFileName
    - SendTransaction
    - Log
    - DirClose
    - EncryptString
    - strcpy
    - strlcpy
    - memset
    linkageType: ''
    returnType: int
    signature: int CfSecOpenDirectory(ServerConnectionState *conn, char *sendbuffer,
      char *dirname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringReplace
      Src: /src/core/cf-serverd/server_common.c:1146,1
    - Dst: MAX
      Src: /src/core/cf-serverd/server_common.c:1147,1
    - Dst: StringReplace
      Src: /src/core/cf-serverd/server_common.c:1153,1
    - Dst: MAX
      Src: /src/core/cf-serverd/server_common.c:1154,1
    - Dst: StringReplace
      Src: /src/core/cf-serverd/server_common.c:1160,1
    - Dst: MAX
      Src: /src/core/cf-serverd/server_common.c:1161,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 11
    argCount: 8
    argNames:
    - buf
    - buf_size
    - find1
    - repl1
    - find2
    - repl2
    - find3
    - repl3
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1136
    functionDepth: 2
    functionLinenumber: 1136
    functionLinenumberEnd: 1166
    functionName: ReplaceSpecialVariables
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 1
    functionsReached:
    - MAX
    - StringReplace
    linkageType: ''
    returnType: size_t
    signature: "size_t ReplaceSpecialVariables(char *buf, size_t buf_size,\n                               const
      char *find1, const char *repl1,\n                               const char *find2,
      const char *repl2,\n                               const char *find3, const
      char *repl3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/cf-serverd/server_common.c:1174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - s
    - s_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1185
    functionName: PathRemoveTrailingSlash
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 1
    functionsReached:
    - strchr
    linkageType: ''
    returnType: bool
    signature: bool PathRemoveTrailingSlash(char *s, size_t s_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - s_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1200
    functionName: PathAppendTrailingSlash
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool PathAppendTrailingSlash(char *s, size_t s_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/core/cf-serverd/server_common.c:1210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1226
    functionName: PathIsAbsolute
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 0
    functionsReached:
    - isalpha
    linkageType: ''
    returnType: bool
    signature: bool PathIsAbsolute(const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1242,1
    - Dst: UnexpectedError
      Src: /src/core/cf-serverd/server_common.c:1246,1
    - Dst: PathIsAbsolute
      Src: /src/core/cf-serverd/server_common.c:1250,1
    - Dst: strchr
      Src: /src/core/cf-serverd/server_common.c:1252,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:1257,1
    - Dst: StringMapGet
      Src: /src/core/cf-serverd/server_common.c:1268,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:1272,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1277,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_common.c:1288,1
    - Dst: ReplaceSpecialVariables
      Src: /src/core/cf-serverd/server_common.c:1291,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_common.c:1314,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_common.c:1316,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1319,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_common.c:1324,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1334,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 6
    argNames:
    - path
    - path_size
    - shortcuts
    - ipaddr
    - hostname
    - key
    argTypes:
    - char*
    - size_t
    - StringMap*
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (first_part_len < path_len)
      pos:
        line_end: 1256
        line_start: 1256
        source_file: /src/core/cf-serverd/server_common.c
    - condition: "(separ_char == FILE_SEPARATOR ||\n               separ_char == '\\0')"
      pos:
        line_end: 1272
        line_start: 1271
        source_file: /src/core/cf-serverd/server_common.c
    constantsTouched: []
    func_position:
      end: 1336
      start: 1236
    functionDepth: 8
    functionLinenumber: 1236
    functionLinenumberEnd: 1336
    functionName: ShortcutsExpand
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - memcpy
    - ReplaceSpecialVariables
    - strlen
    - assert
    - StringMapGet
    - UnexpectedError
    - strchr
    - Log
    - PathIsAbsolute
    linkageType: ''
    returnType: size_t
    signature: "size_t ShortcutsExpand(char *path, size_t path_size,\n                       const
      StringMap *shortcuts,\n                       const char *ipaddr, const char
      *hostname,\n                       const char *key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1362,1
    - Dst: UnexpectedError
      Src: /src/core/cf-serverd/server_common.c:1366,1
    - Dst: strchr
      Src: /src/core/cf-serverd/server_common.c:1375,1
    - Dst: ToLowerStrInplace
      Src: /src/core/cf-serverd/server_common.c:1380,1
    - Dst: PathIsAbsolute
      Src: /src/core/cf-serverd/server_common.c:1384,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1386,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:1405,1
    - Dst: realpath
      Src: /src/core/cf-serverd/server_common.c:1406,1
    - Dst: lstat
      Src: /src/core/cf-serverd/server_common.c:1415,1
    - Dst: S_ISLNK
      Src: /src/core/cf-serverd/server_common.c:1415,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1417,1
    - Dst: strlcpy
      Src: /src/core/cf-serverd/server_common.c:1418,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1422,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:1424,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1429,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1438,1
    - Dst: PathAppendTrailingSlash
      Src: /src/core/cf-serverd/server_common.c:1442,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_common.c:1446,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - reqpath
    - reqpath_size
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (sizeof(dst) >= PATH_MAX)
      pos:
        line_end: 1404
        line_start: 1404
        source_file: /src/core/cf-serverd/server_common.c
    constantsTouched: []
    func_position:
      end: 1450
      start: 1358
    functionDepth: 8
    functionLinenumber: 1358
    functionLinenumberEnd: 1450
    functionName: PreprocessRequestPath
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - GetErrorStr
    - memcpy
    - S_ISLNK
    - ToLowerStrInplace
    - strlen
    - assert
    - realpath
    - PathAppendTrailingSlash
    - UnexpectedError
    - strchr
    - Log
    - lstat
    - PathIsAbsolute
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: size_t PreprocessRequestPath(char *reqpath, size_t reqpath_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1458,1
    - Dst: memcpy
      Src: /src/core/cf-serverd/server_common.c:1465,1
    - Dst: strcmp
      Src: /src/core/cf-serverd/server_common.c:1468,1
    - Dst: NovaWin_UserNameToSid
      Src: /src/core/cf-serverd/server_common.c:1479,1
    - Dst: memset
      Src: /src/core/cf-serverd/server_common.c:1482,1
    - Dst: ThreadLock
      Src: /src/core/cf-serverd/server_common.c:1491,1
    - Dst: GetUserID
      Src: /src/core/cf-serverd/server_common.c:1495,1
    - Dst: ThreadUnlock
      Src: /src/core/cf-serverd/server_common.c:1496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - conn
    - username
    argTypes:
    - ServerConnectionState*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1456
    functionDepth: 13
    functionLinenumber: 1456
    functionLinenumberEnd: 1500
    functionName: SetConnIdentity
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - NovaWin_UserNameToSid
    - memcpy
    - ThreadLock
    - GetUserID
    - strlen
    - ThreadUnlock
    - strcmp
    - memset
    linkageType: ''
    returnType: void
    signature: void SetConnIdentity(ServerConnectionState *conn, const char *username)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/core/cf-serverd/server_common.c:1507,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1510,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - s_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1503
    functionDepth: 8
    functionLinenumber: 1503
    functionLinenumberEnd: 1522
    functionName: CharsetAcceptable
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 0
    functionsReached:
    - strspn
    - Log
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool CharsetAcceptable(const char *s, size_t s_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:1542,1
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:1543,1
    - Dst: strspn
      Src: /src/core/cf-serverd/server_common.c:1549,1
    - Dst: strcspn
      Src: /src/core/cf-serverd/server_common.c:1554,1
    - Dst: strchrnul
      Src: /src/core/cf-serverd/server_common.c:1573,1
    - Dst: CharsetAcceptable
      Src: /src/core/cf-serverd/server_common.c:1578,1
    - Dst: acl_CheckRegex
      Src: /src/core/cf-serverd/server_common.c:1579,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_common.c:1581,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1584,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - conn
    - acl
    - args_start
    - args_len
    argTypes:
    - ServerConnectionState*
    - struct acl*
    - char**
    - size_t*
    assertStmts:
    - condition: (args_start != NULL)
      pos:
        line_end: 1541
        line_start: 1541
        source_file: /src/core/cf-serverd/server_common.c
    - condition: (args_len != NULL)
      pos:
        line_end: 1542
        line_start: 1542
        source_file: /src/core/cf-serverd/server_common.c
    constantsTouched: []
    func_position:
      end: 1598
      start: 1535
    functionDepth: 11
    functionLinenumber: 1535
    functionLinenumberEnd: 1598
    functionName: AuthorizeDelimitedArgs
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 0
    functionsReached:
    - strcspn
    - assert
    - CharsetAcceptable
    - acl_CheckRegex
    - KeyPrintableHash
    - strchrnul
    - strspn
    - Log
    linkageType: ''
    returnType: bool
    signature: "bool AuthorizeDelimitedArgs(const ServerConnectionState *conn,\n                                   struct
      acl *acl,\n                                   char **args_start, size_t *args_len)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-serverd/server_common.c:1611,1
    - Dst: NULL_OR_EMPTY
      Src: /src/core/cf-serverd/server_common.c:1614,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1616,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_common.c:1617,1
    - Dst: CommandArg0_bound
      Src: /src/core/cf-serverd/server_common.c:1626,1
    - Dst: PreprocessRequestPath
      Src: /src/core/cf-serverd/server_common.c:1627,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1629,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_common.c:1630,1
    - Dst: acl_CheckPath
      Src: /src/core/cf-serverd/server_common.c:1641,1
    - Dst: KeyPrintableHash
      Src: /src/core/cf-serverd/server_common.c:1643,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1646,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_common.c:1647,1
    - Dst: AllowedUser
      Src: /src/core/cf-serverd/server_common.c:1653,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1655,1
    - Dst: RefuseAccess
      Src: /src/core/cf-serverd/server_common.c:1657,1
    - Dst: MatchClasses
      Src: /src/core/cf-serverd/server_common.c:1664,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:1666,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1668,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1669,1
    - Dst: nt_static_assert
      Src: /src/core/cf-serverd/server_common.c:1681,1
    - Dst: StrCat
      Src: /src/core/cf-serverd/server_common.c:1683,1
    - Dst: strspn
      Src: /src/core/cf-serverd/server_common.c:1685,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_common.c:1688,1
    - Dst: AuthorizeDelimitedArgs
      Src: /src/core/cf-serverd/server_common.c:1694,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:1698,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1700,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1701,1
    - Dst: StrCat
      Src: /src/core/cf-serverd/server_common.c:1708,1
    - Dst: StrCat
      Src: /src/core/cf-serverd/server_common.c:1710,1
    - Dst: strncmp
      Src: /src/core/cf-serverd/server_common.c:1716,1
    - Dst: AuthorizeDelimitedArgs
      Src: /src/core/cf-serverd/server_common.c:1723,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:1728,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1730,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1731,1
    - Dst: StrCat
      Src: /src/core/cf-serverd/server_common.c:1738,1
    - Dst: StrCat
      Src: /src/core/cf-serverd/server_common.c:1740,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:1748,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1751,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1752,1
    - Dst: strspn
      Src: /src/core/cf-serverd/server_common.c:1756,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:1761,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1764,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1765,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:1771,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1774,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1775,1
    - Dst: cf_popen
      Src: /src/core/cf-serverd/server_common.c:1777,1
    - Dst: snprintf
      Src: /src/core/cf-serverd/server_common.c:1780,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:1782,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1783,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1784,1
    - Dst: xmalloc
      Src: /src/core/cf-serverd/server_common.c:1789,1
    - Dst: CfReadLine
      Src: /src/core/cf-serverd/server_common.c:1792,1
    - Dst: feof
      Src: /src/core/cf-serverd/server_common.c:1795,1
    - Dst: fflush
      Src: /src/core/cf-serverd/server_common.c:1799,1
    - Dst: strlen
      Src: /src/core/cf-serverd/server_common.c:1806,1
    - Dst: xsnprintf
      Src: /src/core/cf-serverd/server_common.c:1817,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1818,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1820,1
    - Dst: GetErrorStr
      Src: /src/core/cf-serverd/server_common.c:1822,1
    - Dst: free
      Src: /src/core/cf-serverd/server_common.c:1826,1
    - Dst: cf_pclose
      Src: /src/core/cf-serverd/server_common.c:1827,1
    - Dst: xsnprintf
      Src: /src/core/cf-serverd/server_common.c:1830,1
    - Dst: SendTransaction
      Src: /src/core/cf-serverd/server_common.c:1831,1
    - Dst: Log
      Src: /src/core/cf-serverd/server_common.c:1833,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 107
    argCount: 5
    argNames:
    - ctx
    - conn
    - exec_args
    - sendbuf
    - sendbuf_size
    argTypes:
    - EvalContext*
    - ServerConnectionState*
    - char*
    - char*
    - size_t
    assertStmts:
    - condition: (conn != NULL)
      pos:
        line_end: 1610
        line_start: 1610
        source_file: /src/core/cf-serverd/server_common.c
    constantsTouched: []
    func_position:
      end: 1838
      start: 1606
    functionDepth: 13
    functionLinenumber: 1606
    functionLinenumberEnd: 1838
    functionName: DoExec2
    functionSourceFile: /src/core/cf-serverd/server_common.c
    functionUses: 2
    functionsReached:
    - acl_CheckPath
    - strncmp
    - RefuseAccess
    - AllowedUser
    - KeyPrintableHash
    - feof
    - strspn
    - Log
    - free
    - fflush
    - MatchClasses
    - snprintf
    - nt_static_assert
    - cf_popen
    - strlen
    - SendTransaction
    - cf_pclose
    - NULL_OR_EMPTY
    - CfReadLine
    - assert
    - CommandArg0_bound
    - xmalloc
    - GetErrorStr
    - StrCat
    - xsnprintf
    - AuthorizeDelimitedArgs
    - PreprocessRequestPath
    linkageType: ''
    returnType: bool
    signature: "bool DoExec2(const EvalContext *ctx,\n             ServerConnectionState
      *conn,\n             char *exec_args,\n             char *sendbuf, size_t sendbuf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: YY_INPUT
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/peg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf, result, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: YY_LOCAL
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/peg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_LOCAL(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: YY_RULE
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/peg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_RULE(T)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:52,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:53,1
    - Dst: feof
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:54,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:57,1
    - Dst: fputc
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:61,1
    - Dst: fgetc
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:66,1
    - Dst: fputc
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:67,1
    - Dst: fputc
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:69,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:71,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:72,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: yyerror
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/peg.c
    functionUses: 6
    functionsReached:
    - exit
    - feof
    - fprintf
    - fputc
    - fgetc
    linkageType: ''
    returnType: void
    signature: void yyerror(char *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: version
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/peg.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void version(char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:82,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:83,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:84,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:85,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:86,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:87,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:88,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:89,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:90,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: usage
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/peg.c
    functionUses: 7
    functionsReached:
    - exit
    - version
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(char *name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:104,1
    - Dst: version
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:109,1
    - Dst: basename
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:109,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:110,1
    - Dst: usage
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:113,1
    - Dst: basename
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:113,1
    - Dst: fopen
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:117,1
    - Dst: perror
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:119,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:120,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:129,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:130,1
    - Dst: strcmp
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:140,1
    - Dst: fopen
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:147,1
    - Dst: perror
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:149,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:150,1
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:155,1
    - Dst: yyerror
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:156,1
    - Dst: fclose
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:158,1
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:162,1
    - Dst: yyerror
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:163,1
    - Dst: Rule_print
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:167,1
    - Dst: Rule_compile_c_header
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:169,1
    - Dst: Rule_compile_c
      Src: /src/core/3rdparty/peg-0.1.15/src/peg.c:170,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 173
    functionName: main
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/peg.c
    functionUses: 3
    functionsReached:
    - exit
    - fopen
    - yyerror
    - Rule_compile_c_header
    - Rule_print
    - fprintf
    - Rule_compile_c
    - strcmp
    - fclose
    - perror
    - usage
    - getopt
    - yyparse
    - version
    - basename
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: yyl
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - c
    argTypes:
    - unsigned char[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: charClassSet
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void charClassSet  (unsigned char bits[], int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - c
    argTypes:
    - unsigned char[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: charClassClear
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void charClassClear(unsigned char bits[], int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: oigit
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oigit(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: higit
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int higit(int c)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: hexval
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hexval(int c)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: higit
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:74,1
    - Dst: hexval
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:74,1
    - Dst: higit
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:75,1
    - Dst: hexval
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:75,1
    - Dst: oigit
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:78,1
    - Dst: oigit
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:81,1
    - Dst: oigit
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:82,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 1
    argNames:
    - ccp
    argTypes:
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 90
    functionName: cnext
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached:
    - oigit
    - higit
    - hexval
    linkageType: ''
    returnType: int
    signature: int cnext(unsigned char **ccp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:102,1
    - Dst: memset
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:108,1
    - Dst: cnext
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:117,1
    - Dst: set
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:118,1
    - Dst: cnext
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:123,1
    - Dst: set
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:124,1
    - Dst: sprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - cclass
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 133
    functionName: makeCharClass
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached:
    - cnext
    - set
    - sprintf
    - memset
    linkageType: ''
    returnType: char
    signature: char *makeCharClass(unsigned char *cclass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: begin
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 12
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void begin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: end
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 271
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: label
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void label(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: jump
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void jump(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: save
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void save(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: restore
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void restore(int n)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:144,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:148,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:149,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:153,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:157,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:159,1
    - Dst: strlen
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:165,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:169,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:171,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:175,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:177,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:182,1
    - Dst: makeCharClass
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:182,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:186,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:190,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:191,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:192,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:193,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:194,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:195,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:196,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:201,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:201,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:202,1
    - Dst: jump
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:203,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:204,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:205,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:206,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:207,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:208,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:209,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:210,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:211,1
    - Dst: jump
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:212,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:213,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:219,1
    - Dst: begin
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:220,1
    - Dst: save
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:221,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:225,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:226,1
    - Dst: jump
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:227,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:228,1
    - Dst: restore
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:229,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:232,1
    - Dst: end
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:233,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:234,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:240,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:245,1
    - Dst: begin
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:246,1
    - Dst: save
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:247,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:248,1
    - Dst: restore
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:249,1
    - Dst: end
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:250,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:256,1
    - Dst: begin
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:257,1
    - Dst: save
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:258,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:259,1
    - Dst: jump
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:260,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:261,1
    - Dst: restore
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:262,1
    - Dst: end
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:263,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:269,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:269,1
    - Dst: begin
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:270,1
    - Dst: save
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:271,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:272,1
    - Dst: jump
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:273,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:274,1
    - Dst: restore
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:275,1
    - Dst: end
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:276,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:277,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:283,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:283,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:284,1
    - Dst: begin
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:285,1
    - Dst: save
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:286,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:287,1
    - Dst: jump
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:288,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:289,1
    - Dst: restore
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:290,1
    - Dst: end
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:291,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:297,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:297,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:298,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:299,1
    - Dst: begin
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:300,1
    - Dst: save
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:301,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:302,1
    - Dst: jump
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:303,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:304,1
    - Dst: restore
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:305,1
    - Dst: end
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:306,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:311,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:312,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 132
    argCount: 2
    argNames:
    - node
    - ko
    argTypes:
    - Node*
    - int
    assertStmts:
    - condition: (node)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/core/3rdparty/peg-0.1.15/src/compile.c
    constantsTouched: []
    func_position:
      end: 314
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 314
    functionName: Node_compile_c_ko
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 1
    functionsReached:
    - begin
    - exit
    - strlen
    - assert
    - yyl
    - restore
    - label
    - end
    - makeCharClass
    - jump
    - fprintf
    - save
    - Node_compile_c_ko
    linkageType: ''
    returnType: void
    signature: void Node_compile_c_ko(Node *node, int ko)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: countVariables
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int countVariables(Node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:333,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:337,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:338,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 340
    functionName: defineVariables
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void defineVariables(Node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:344,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:345,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:346,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: undefineVariables
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void undefineVariables(Node *node)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:357,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:358,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:361,1
    - Dst: yyl
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:364,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:367,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:371,1
    - Dst: save
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:372,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:374,1
    - Dst: countVariables
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:374,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:375,1
    - Dst: Node_compile_c_ko
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:376,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:377,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:379,1
    - Dst: countVariables
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:379,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:380,1
    - Dst: label
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:383,1
    - Dst: restore
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:384,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:385,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:386,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:388,1
    - Dst: Rule_compile_c2
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts:
    - condition: (node)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/core/3rdparty/peg-0.1.15/src/compile.c
    - condition: (Rule == node->type)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/core/3rdparty/peg-0.1.15/src/compile.c
    constantsTouched: []
    func_position:
      end: 393
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 393
    functionName: Rule_compile_c2
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 1
    functionsReached:
    - assert
    - yyl
    - restore
    - label
    - countVariables
    - Rule_compile_c2
    - fprintf
    - save
    - Node_compile_c_ko
    linkageType: ''
    returnType: void
    signature: void Rule_compile_c2(Node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:725,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:726,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:727,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 729
    functionName: Rule_compile_c_header
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void Rule_compile_c_header(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:741,1
    - Dst: consumesInput
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:745,1
    - Dst: consumesInput
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:753,1
    - Dst: strlen
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:755,1
    - Dst: consumesInput
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:759,1
    - Dst: consumesInput
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:765,1
    - Dst: consumesInput
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:774,1
    - Dst: consumesInput
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:783,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:786,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:787,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 790
    functionName: consumesInput
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 1
    functionsReached:
    - strlen
    - consumesInput
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int consumesInput(Node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: consumesInput
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:798,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:800,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:802,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:803,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:806,1
    - Dst: defineVariables
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:807,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:808,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:809,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:810,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:811,1
    - Dst: undefineVariables
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:812,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:813,1
    - Dst: Rule_compile_c2
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:815,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/compile.c:816,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 793
    functionDepth: 5
    functionLinenumber: 793
    functionLinenumberEnd: 817
    functionName: Rule_compile_c
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/compile.c
    functionUses: 1
    functionsReached:
    - undefineVariables
    - consumesInput
    - Rule_compile_c2
    - fprintf
    - defineVariables
    linkageType: ''
    returnType: void
    signature: void Rule_compile_c(Node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: YY_INPUT
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf, result, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: YY_LOCAL
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_LOCAL(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: YY_RULE
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_RULE(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: YY_MALLOC
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_MALLOC(C, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - P
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: YY_REALLOC
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_REALLOC(C, P, N)
  - 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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: YY_FREE
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_FREE(C, P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: YY_LOCAL
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_LOCAL(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: YY_ACTION
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_ACTION(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: YY_RULE
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_RULE(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: YY_PARSE
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_PARSE(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: yyprintf
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyprintf(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - yy
    - ','
    - buf
    - ','
    - result
    - ','
    - max_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: YY_INPUT
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(yy, buf, result, max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: YY_INPUT
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf, result, max_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_REALLOC
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:165,1
    - Dst: YY_INPUT
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:168,1
    - Dst: YY_INPUT
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: yyrefill
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - YY_INPUT
    - YY_REALLOC
    linkageType: ''
    returnType: void
    signature: void yyrefill(yycontext *yy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yyrefill
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: yymatchDot
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyrefill
    linkageType: ''
    returnType: void
    signature: void yymatchDot(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyrefill
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:186,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:190,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - yy
    - c
    argTypes:
    - yycontext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 195
    functionName: yymatchChar
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyrefill
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yymatchChar(yycontext *yy, int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyrefill
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - yy
    - s
    argTypes:
    - yycontext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 212
    functionName: yymatchString
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyrefill
    linkageType: ''
    returnType: void
    signature: void yymatchString(yycontext *yy, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyrefill
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:217,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:222,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - yy
    - bits
    argTypes:
    - yycontext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 227
    functionName: yymatchClass
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyrefill
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yymatchClass(yycontext *yy, unsigned char *bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YY_REALLOC
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - yy
    - action
    - begin
    - end
    argTypes:
    - yycontext*
    - yyaction
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: yyDo
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - YY_REALLOC
    linkageType: ''
    returnType: void
    signature: void yyDo(yycontext *yy, yyaction action, int begin, int end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_REALLOC
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:252,1
    - Dst: memcpy
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - yy
    - begin
    - end
    argTypes:
    - yycontext*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: yyText
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - memcpy
    - YY_REALLOC
    linkageType: ''
    returnType: void
    signature: void yyText(yycontext *yy, int begin, int end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:266,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:267,1
    - Dst: yythunk*::action
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 271
    functionName: yyDone
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yythunk*::action
    - yyText
    linkageType: ''
    returnType: void
    signature: void yyDone(yycontext *yy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: yyCommit
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void yyCommit(yycontext *yy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:288,1
    - Dst: yyDone
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:293,1
    - Dst: yyCommit
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - yy
    - tp0
    argTypes:
    - yycontext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: yyAccept
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyCommit
    - yyDone
    - fprintf
    linkageType: ''
    returnType: void
    signature: void yyAccept(yycontext *yy, int tp0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YY_REALLOC
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - yy
    - text
    - count
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: yyPush
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - YY_REALLOC
    linkageType: ''
    returnType: void
    signature: void yyPush(yycontext *yy, char *text, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - yy
    - text
    - count
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 310
    functionName: yyPop
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyPop(yycontext *yy, char *text, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - yy
    - text
    - count
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 311
    functionName: yySet
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yySet(yycontext *yy, char *text, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:361,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:363,1
    - Dst: makePredicate
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 368
    functionName: yy_9_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - makePredicate
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_9_primary(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:374,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:376,1
    - Dst: makePredicate
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 381
    functionName: yy_8_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - makePredicate
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_8_primary(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:387,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:389,1
    - Dst: makeAction
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 394
    functionName: yy_7_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - yyprintf
    - makeAction
    linkageType: ''
    returnType: void
    signature: void yy_7_primary(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:400,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:402,1
    - Dst: makeDot
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: yy_6_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - makeDot
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_6_primary(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:413,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:415,1
    - Dst: makeClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 420
    functionName: yy_5_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - makeClass
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_5_primary(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:426,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:428,1
    - Dst: makeString
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 433
    functionName: yy_4_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - yyprintf
    - makeString
    linkageType: ''
    returnType: void
    signature: void yy_4_primary(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:439,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:441,1
    - Dst: makeName
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:441,1
    - Dst: findRule
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 446
    functionName: yy_3_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - makeName
    - yyprintf
    - findRule
    linkageType: ''
    returnType: void
    signature: void yy_3_primary(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:452,1
    - Dst: makeName
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:454,1
    - Dst: findRule
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:454,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:454,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 459
    functionName: yy_2_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - makeName
    - findRule
    - pop
    - push
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_2_primary(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:465,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:467,1
    - Dst: makeVariable
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 472
    functionName: yy_1_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - yyprintf
    - makeVariable
    linkageType: ''
    returnType: void
    signature: void yy_1_primary(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:478,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:480,1
    - Dst: makePlus
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:480,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 485
    functionName: yy_3_suffix
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - makePlus
    - yyprintf
    - pop
    linkageType: ''
    returnType: void
    signature: void yy_3_suffix(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:491,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:493,1
    - Dst: makeStar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:493,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 498
    functionName: yy_2_suffix
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - pop
    - yyprintf
    - makeStar
    linkageType: ''
    returnType: void
    signature: void yy_2_suffix(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:504,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:506,1
    - Dst: makeQuery
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:506,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 511
    functionName: yy_1_suffix
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - makeQuery
    - yyprintf
    - pop
    linkageType: ''
    returnType: void
    signature: void yy_1_suffix(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:517,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:519,1
    - Dst: makePeekNot
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:519,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 524
    functionName: yy_3_prefix
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - pop
    - yyprintf
    - makePeekNot
    linkageType: ''
    returnType: void
    signature: void yy_3_prefix(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:530,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:532,1
    - Dst: makePeekFor
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:532,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 537
    functionName: yy_2_prefix
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - pop
    - yyprintf
    - makePeekFor
    linkageType: ''
    returnType: void
    signature: void yy_2_prefix(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:543,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:545,1
    - Dst: makePredicate
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 550
    functionName: yy_1_prefix
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - makePredicate
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_1_prefix(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:556,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:558,1
    - Dst: makeError
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:558,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 563
    functionName: yy_1_error
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - pop
    - yyprintf
    - makeError
    linkageType: ''
    returnType: void
    signature: void yy_1_error(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:569,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:571,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:571,1
    - Dst: Sequence_append
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:571,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 576
    functionName: yy_1_sequence
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - pop
    - yyprintf
    - Sequence_append
    linkageType: ''
    returnType: void
    signature: void yy_1_sequence(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:582,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:584,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:584,1
    - Dst: Alternate_append
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:584,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 589
    functionName: yy_1_expression
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - push
    - pop
    - yyprintf
    - Alternate_append
    linkageType: ''
    returnType: void
    signature: void yy_1_expression(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:595,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:597,1
    - Dst: Rule_setExpression
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:597,1
    - Dst: pop
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 602
    functionName: yy_2_definition
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - pop
    - yyprintf
    - Rule_setExpression
    linkageType: ''
    returnType: void
    signature: void yy_2_definition(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:608,1
    - Dst: push
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:610,1
    - Dst: beginRule
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:610,1
    - Dst: findRule
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:610,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 616
    functionName: yy_1_definition
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - beginRule
    - findRule
    - fprintf
    - push
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_1_definition(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:622,1
    - Dst: makeTrailer
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 629
    functionName: yy_1_trailer
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - makeTrailer
    linkageType: ''
    returnType: void
    signature: void yy_1_trailer(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:635,1
    - Dst: makeHeader
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - yy
    - yytext
    - yyleng
    argTypes:
    - yycontext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 642
    functionName: yy_1_declaration
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - makeHeader
    linkageType: ''
    returnType: void
    signature: void yy_1_declaration(yycontext *yy, char *yytext, int yyleng)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:646,1
    - Dst: yymatchString
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:647,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:648,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:649,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:652,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:655,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 657
    functionName: yy_end_of_line
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yymatchString
    - yyprintf
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_end_of_line(yycontext *yy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:660,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:660,1
    - Dst: yy_end_of_line
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:663,1
    - Dst: yymatchDot
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:665,1
    - Dst: yy_end_of_line
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:667,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:668,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:671,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 658
    functionDepth: 4
    functionLinenumber: 658
    functionLinenumberEnd: 673
    functionName: yy_comment
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yymatchDot
    - yyprintf
    - yymatchChar
    - yy_end_of_line
    linkageType: ''
    returnType: void
    signature: void yy_comment(yycontext *yy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:676,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:677,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:678,1
    - Dst: yy_end_of_line
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:679,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:682,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:685,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 674
    functionDepth: 4
    functionLinenumber: 674
    functionLinenumberEnd: 687
    functionName: yy_space
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yymatchChar
    - yy_end_of_line
    linkageType: ''
    returnType: void
    signature: void yy_space(yycontext *yy)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:690,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:691,1
    - Dst: yy_braces
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:693,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:695,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:697,1
    - Dst: yymatchDot
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:699,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:702,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:705,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 707
    functionName: yy_braces
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 1
    functionsReached:
    - yy_braces
    - yyprintf
    - yymatchChar
    - yymatchDot
    linkageType: ''
    returnType: void
    signature: void yy_braces(yycontext *yy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:710,1
    - Dst: yy_char
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:711,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:711,1
    - Dst: yy_char
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:711,1
    - Dst: yy_char
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:712,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:715,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:718,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 720
    functionName: yy_range
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy_char
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_range(yycontext *yy)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:723,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:724,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:724,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:725,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:725,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:725,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:725,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:726,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:726,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:726,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:727,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:727,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:727,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:727,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:728,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:728,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:729,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:734,1
    - Dst: yymatchDot
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:736,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:739,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:742,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 123
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 744
    functionName: yy_char
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 1
    functionsReached:
    - yymatchClass
    - yyprintf
    - yymatchChar
    - yymatchDot
    linkageType: ''
    returnType: void
    signature: void yy_char(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:747,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:747,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:747,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:748,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:751,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 753
    functionName: yy_END
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_END(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:756,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:756,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:756,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:757,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 762
    functionName: yy_BEGIN
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_BEGIN(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:765,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:765,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:765,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:766,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:769,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 763
    functionDepth: 3
    functionLinenumber: 763
    functionLinenumberEnd: 771
    functionName: yy_DOT
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_DOT(yycontext *yy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:774,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:774,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:774,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:783,1
    - Dst: yy_range
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:785,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:787,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:793,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:793,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:794,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:797,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 772
    functionDepth: 4
    functionLinenumber: 772
    functionLinenumberEnd: 799
    functionName: yy_class
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yy__
    - yy_range
    - yymatchChar
    - yyprintf
    - yyText
    linkageType: ''
    returnType: void
    signature: void yy_class(yycontext *yy)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:802,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:803,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:803,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:812,1
    - Dst: yy_char
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:814,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:816,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:822,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:822,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:823,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:823,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:832,1
    - Dst: yy_char
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:834,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:836,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:842,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:842,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:845,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:848,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 110
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 800
    functionDepth: 4
    functionLinenumber: 800
    functionLinenumberEnd: 850
    functionName: yy_literal
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yymatchClass
    - yy_char
    - yy__
    - yyprintf
    - yyText
    linkageType: ''
    returnType: void
    signature: void yy_literal(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:853,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:853,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:853,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:854,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 859
    functionName: yy_CLOSE
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_CLOSE(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:862,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:862,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:862,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:863,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:866,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 860
    functionDepth: 3
    functionLinenumber: 860
    functionLinenumberEnd: 868
    functionName: yy_OPEN
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_OPEN(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:871,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:871,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:871,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:872,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 869
    functionDepth: 3
    functionLinenumber: 869
    functionLinenumberEnd: 877
    functionName: yy_COLON
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_COLON(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:880,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:880,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:880,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:881,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 886
    functionName: yy_PLUS
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_PLUS(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:889,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:889,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:889,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:890,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 887
    functionDepth: 3
    functionLinenumber: 887
    functionLinenumberEnd: 895
    functionName: yy_STAR
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_STAR(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:898,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:898,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:898,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:899,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:902,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 896
    functionDepth: 3
    functionLinenumber: 896
    functionLinenumberEnd: 904
    functionName: yy_QUESTION
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_QUESTION(yycontext *yy)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:907,1
    - Dst: yy_identifier
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:908,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:908,1
    - Dst: yy_COLON
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:908,1
    - Dst: yy_identifier
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:908,1
    - Dst: yy_EQUAL
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:909,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:911,1
    - Dst: yy_identifier
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:912,1
    - Dst: yy_EQUAL
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:913,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:915,1
    - Dst: yy_OPEN
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:916,1
    - Dst: yy_expression
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:916,1
    - Dst: yy_CLOSE
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:916,1
    - Dst: yy_literal
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:917,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:917,1
    - Dst: yy_class
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:918,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:918,1
    - Dst: yy_DOT
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:919,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:919,1
    - Dst: yy_action
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:920,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:920,1
    - Dst: yy_BEGIN
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:921,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:921,1
    - Dst: yy_END
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:922,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:922,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:925,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:928,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 141
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 905
    functionDepth: 5
    functionLinenumber: 905
    functionLinenumberEnd: 930
    functionName: yy_primary
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yy_DOT
    - yy_CLOSE
    - yy_identifier
    - yy_action
    - yy_EQUAL
    - yy_expression
    - yy_BEGIN
    - yy_class
    - yy_literal
    - yy_END
    - yy_COLON
    - yyDo
    - yy_OPEN
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_primary(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:933,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:933,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:933,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:934,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 939
    functionName: yy_NOT
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_NOT(yycontext *yy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:942,1
    - Dst: yy_primary
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:942,1
    - Dst: yy_QUESTION
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:944,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:944,1
    - Dst: yy_STAR
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:945,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:945,1
    - Dst: yy_PLUS
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:946,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:946,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:952,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:955,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 940
    functionDepth: 6
    functionLinenumber: 940
    functionLinenumberEnd: 957
    functionName: yy_suffix
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yy_primary
    - yy_STAR
    - yy_PLUS
    - yy_QUESTION
    - yyDo
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_suffix(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:960,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:960,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:960,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:961,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 958
    functionDepth: 3
    functionLinenumber: 958
    functionLinenumberEnd: 966
    functionName: yy_AND
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_AND(yycontext *yy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:969,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:969,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:969,1
    - Dst: yy_braces
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:977,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:979,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:985,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:985,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:986,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:989,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 967
    functionDepth: 4
    functionLinenumber: 967
    functionLinenumberEnd: 991
    functionName: yy_action
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 1
    functionsReached:
    - yy__
    - yy_braces
    - yymatchChar
    - yyprintf
    - yyText
    linkageType: ''
    returnType: void
    signature: void yy_action(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:994,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:994,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:994,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:995,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:998,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 1000
    functionName: yy_TILDE
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_TILDE(yycontext *yy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1003,1
    - Dst: yy_AND
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1004,1
    - Dst: yy_action
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1004,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1004,1
    - Dst: yy_AND
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1005,1
    - Dst: yy_suffix
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1005,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1005,1
    - Dst: yy_NOT
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1006,1
    - Dst: yy_suffix
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1006,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1006,1
    - Dst: yy_suffix
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1007,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1010,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1013,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1001
    functionDepth: 7
    functionLinenumber: 1001
    functionLinenumberEnd: 1015
    functionName: yy_prefix
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yy_action
    - yy_suffix
    - yy_AND
    - yy_NOT
    - yyDo
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_prefix(yycontext *yy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1018,1
    - Dst: yy_prefix
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1018,1
    - Dst: yy_TILDE
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1019,1
    - Dst: yy_action
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1019,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1019,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1023,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1026,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1016
    functionDepth: 8
    functionLinenumber: 1016
    functionLinenumberEnd: 1028
    functionName: yy_error
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yy_prefix
    - yy_TILDE
    - yy_action
    - yyDo
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_error(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1031,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1031,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1031,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1032,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1029
    functionDepth: 3
    functionLinenumber: 1029
    functionLinenumberEnd: 1037
    functionName: yy_BAR
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_BAR(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1040,1
    - Dst: yy_error
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1040,1
    - Dst: yy_error
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1042,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1042,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1045,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1038
    functionDepth: 9
    functionLinenumber: 1038
    functionLinenumberEnd: 1050
    functionName: yy_sequence
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy_error
    - yyDo
    linkageType: ''
    returnType: void
    signature: void yy_sequence(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1053,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1053,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1053,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1054,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1051
    functionDepth: 3
    functionLinenumber: 1051
    functionLinenumberEnd: 1059
    functionName: yy_SEMICOLON
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_SEMICOLON(yycontext *yy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1062,1
    - Dst: yy_sequence
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1062,1
    - Dst: yy_BAR
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1064,1
    - Dst: yy_sequence
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1064,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1064,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1067,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1070,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1060
    functionDepth: 10
    functionLinenumber: 1060
    functionLinenumberEnd: 1072
    functionName: yy_expression
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 1
    functionsReached:
    - yy_BAR
    - yyprintf
    - yyDo
    - yy_sequence
    linkageType: ''
    returnType: void
    signature: void yy_expression(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1075,1
    - Dst: yymatchChar
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1075,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1075,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1076,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1079,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1073
    functionDepth: 3
    functionLinenumber: 1073
    functionLinenumberEnd: 1081
    functionName: yy_EQUAL
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 1
    functionsReached:
    - yyprintf
    - yy__
    - yymatchChar
    linkageType: ''
    returnType: void
    signature: void yy_EQUAL(yycontext *yy)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1084,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1084,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1090,1
    - Dst: yymatchClass
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1092,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1094,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1100,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1101,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1082
    functionDepth: 3
    functionLinenumber: 1082
    functionLinenumberEnd: 1106
    functionName: yy_identifier
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 1
    functionsReached:
    - yymatchClass
    - yyprintf
    - yy__
    - yyText
    linkageType: ''
    returnType: void
    signature: void yy_identifier(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1109,1
    - Dst: yymatchString
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1109,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1109,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1110,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1107
    functionDepth: 3
    functionLinenumber: 1107
    functionLinenumberEnd: 1115
    functionName: yy_RPERCENT
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yymatchString
    - yyprintf
    - yy__
    linkageType: ''
    returnType: void
    signature: void yy_RPERCENT(yycontext *yy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1118,1
    - Dst: yymatchDot
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1119,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1122,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1116
    functionDepth: 3
    functionLinenumber: 1116
    functionLinenumberEnd: 1127
    functionName: yy_end_of_file
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyprintf
    - yymatchDot
    linkageType: ''
    returnType: void
    signature: void yy_end_of_file(yycontext *yy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1130,1
    - Dst: yymatchString
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1130,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1130,1
    - Dst: yymatchDot
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1138,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1140,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1146,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1147,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1150,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1152
    functionName: yy_trailer
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yymatchString
    - yymatchDot
    - yyDo
    - yyprintf
    - yyText
    linkageType: ''
    returnType: void
    signature: void yy_trailer(yycontext *yy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1155,1
    - Dst: yy_identifier
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1155,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1155,1
    - Dst: yy_EQUAL
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1155,1
    - Dst: yy_expression
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1155,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1155,1
    - Dst: yy_SEMICOLON
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1156,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1160,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1163,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1153
    functionDepth: 11
    functionLinenumber: 1153
    functionLinenumberEnd: 1165
    functionName: yy_definition
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yy_EQUAL
    - yy_SEMICOLON
    - yyDo
    - yy_identifier
    - yy_expression
    - yyprintf
    linkageType: ''
    returnType: void
    signature: void yy_definition(yycontext *yy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1168,1
    - Dst: yymatchString
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1168,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1168,1
    - Dst: yymatchString
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1177,1
    - Dst: yymatchDot
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1179,1
    - Dst: yyText
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1181,1
    - Dst: yy_RPERCENT
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1187,1
    - Dst: yyDo
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1187,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1188,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1191,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1166
    functionDepth: 4
    functionLinenumber: 1166
    functionLinenumberEnd: 1193
    functionName: yy_declaration
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yymatchString
    - yymatchDot
    - yyDo
    - yy_RPERCENT
    - yyprintf
    - yyText
    linkageType: ''
    returnType: void
    signature: void yy_declaration(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1196,1
    - Dst: yy_space
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1199,1
    - Dst: yy_comment
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1200,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1194
    functionDepth: 5
    functionLinenumber: 1194
    functionLinenumberEnd: 1207
    functionName: yy__
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 20
    functionsReached:
    - yy_space
    - yyprintf
    - yy_comment
    linkageType: ''
    returnType: void
    signature: void yy__(yycontext *yy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1210,1
    - Dst: yy__
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1210,1
    - Dst: yy_declaration
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1211,1
    - Dst: yy_definition
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1212,1
    - Dst: yy_declaration
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1217,1
    - Dst: yy_definition
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1218,1
    - Dst: yy_trailer
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1223,1
    - Dst: yy_end_of_file
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1226,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1227,1
    - Dst: yyprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1230,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 1
    argNames:
    - yy
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1208
    functionDepth: 12
    functionLinenumber: 1208
    functionLinenumberEnd: 1232
    functionName: yy_grammar
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yy_end_of_file
    - yy_trailer
    - yy__
    - yy_definition
    - yyprintf
    - yy_declaration
    linkageType: ''
    returnType: void
    signature: void yy_grammar(yycontext *yy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: YY_MALLOC
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1244,1
    - Dst: YY_MALLOC
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1246,1
    - Dst: YY_MALLOC
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1248,1
    - Dst: YY_MALLOC
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1250,1
    - Dst: yystart
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1256,1
    - Dst: yyDone
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1257,1
    - Dst: yyCommit
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - yystart
    argTypes:
    - YY_CTX_PARAM_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1260
    functionName: YYPARSEFROM
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - yyCommit
    - yystart
    - yyDone
    - YY_MALLOC
    linkageType: ''
    returnType: void
    signature: void YYPARSEFROM(YY_CTX_PARAM_ yyrule yystart)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YYPARSEFROM
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1262
    functionDepth: 4
    functionLinenumber: 1262
    functionLinenumberEnd: 1265
    functionName: YYPARSE
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - YYPARSEFROM
    linkageType: ''
    returnType: void
    signature: void YYPARSE(YY_CTX_PARAM)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_FREE
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1272,1
    - Dst: YY_FREE
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1273,1
    - Dst: YY_FREE
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1274,1
    - Dst: YY_FREE
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - yyctx
    argTypes:
    - yycontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1278
    functionName: YYRELEASE
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 0
    functionsReached:
    - YY_FREE
    linkageType: ''
    returnType: void
    signature: void YYRELEASE(yycontext *yyctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1285,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1286,1
    - Dst: feof
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1287,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1290,1
    - Dst: fputc
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1294,1
    - Dst: fgetc
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1299,1
    - Dst: fputc
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1300,1
    - Dst: fputc
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1302,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1304,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1305,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1306
    functionName: yyerror
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 7
    functionsReached:
    - exit
    - feof
    - fprintf
    - fputc
    - fgetc
    linkageType: ''
    returnType: void
    signature: void yyerror(char *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1310,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1308
    functionDepth: 2
    functionLinenumber: 1308
    functionLinenumberEnd: 1314
    functionName: makeHeader
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 1
    functionsReached:
    - strdup
    - malloc
    linkageType: ''
    returnType: void
    signature: void makeHeader(char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1316
    functionDepth: 2
    functionLinenumber: 1316
    functionLinenumberEnd: 1319
    functionName: makeTrailer
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 1
    functionsReached:
    - strdup
    linkageType: ''
    returnType: void
    signature: void makeTrailer(char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1324
    functionName: version
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void version(char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1328,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1329,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1330,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1331,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1332,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1333,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1334,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1335,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1336,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1338
    functionName: usage
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 8
    functionsReached:
    - exit
    - version
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(char *name)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1350,1
    - Dst: version
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1355,1
    - Dst: basename
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1355,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1356,1
    - Dst: usage
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1359,1
    - Dst: basename
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1359,1
    - Dst: fopen
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1363,1
    - Dst: perror
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1365,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1366,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1375,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1376,1
    - Dst: strcmp
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1386,1
    - Dst: fopen
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1393,1
    - Dst: perror
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1395,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1396,1
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1401,1
    - Dst: yyerror
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1402,1
    - Dst: fclose
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1404,1
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1408,1
    - Dst: yyerror
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1409,1
    - Dst: Rule_print
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1413,1
    - Dst: Rule_compile_c_header
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1415,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1418,1
    - Dst: Rule_compile_c
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1421,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/leg.c:1424,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1340
    functionDepth: 6
    functionLinenumber: 1340
    functionLinenumberEnd: 1427
    functionName: main
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/leg.c
    functionUses: 3
    functionsReached:
    - exit
    - fopen
    - yyerror
    - Rule_compile_c_header
    - Rule_print
    - fprintf
    - Rule_compile_c
    - strcmp
    - fclose
    - perror
    - usage
    - getopt
    - yyparse
    - version
    - basename
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: _newNode
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: Node
    signature: Node *_newNode(int type, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: newNode
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: newNode(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:53,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: makeRule
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 0
    functionsReached:
    - newNode
    - strdup
    linkageType: ''
    returnType: Node
    signature: Node *makeRule(char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:69,1
    - Dst: strcmp
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:70,1
    - Dst: makeRule
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (Rule == n->type)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: findRule
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 3
    functionsReached:
    - assert
    - makeRule
    - strcmp
    linkageType: ''
    returnType: Node
    signature: Node *findRule(char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: beginRule
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Node
    signature: Node *beginRule(Node *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:84,1
    - Dst: Node_print
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:86,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:86,1
    - Dst: Node_print
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:86,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:86,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:88,1
    - Dst: strcmp
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - node
    - expression
    argTypes:
    - Node*
    - Node*
    assertStmts:
    - condition: (node)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    - condition: (Rule == node->type)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: Rule_setExpression
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - assert
    - strcmp
    - Node_print
    - fprintf
    linkageType: ''
    returnType: void
    signature: void Rule_setExpression(Node *node, Node *expression)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:97,1
    - Dst: strcmp
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:99,1
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:101,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts:
    - condition: (thisRule)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: makeVariable
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    - assert
    - strdup
    - strcmp
    linkageType: ''
    returnType: Node
    signature: Node *makeVariable(char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: makeName
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 2
    functionsReached:
    - newNode
    linkageType: ''
    returnType: Node
    signature: Node *makeName(Node *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: makeDot
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    linkageType: ''
    returnType: Node
    signature: Node *makeDot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:124,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: makeCharacter
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 0
    functionsReached:
    - newNode
    - strdup
    linkageType: ''
    returnType: Node
    signature: Node *makeCharacter(char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:131,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: makeString
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    - strdup
    linkageType: ''
    returnType: Node
    signature: Node *makeString(char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:138,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: makeClass
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    - strdup
    linkageType: ''
    returnType: Node
    signature: Node *makeClass(char *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:145,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:147,1
    - Dst: sprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:148,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:149,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts:
    - condition: (thisRule)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 161
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 161
    functionName: makeAction
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    - assert
    - strdup
    - sprintf
    linkageType: ''
    returnType: Node
    signature: Node *makeAction(char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:165,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: makePredicate
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 3
    functionsReached:
    - newNode
    - strdup
    linkageType: ''
    returnType: Node
    signature: Node *makePredicate(char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:172,1
    - Dst: strdup
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - e
    - text
    argTypes:
    - Node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: makeError
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    - strdup
    linkageType: ''
    returnType: Node
    signature: Node *makeError(Node *e, char *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:182,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:183,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - Node*
    assertStmts:
    - condition: (e)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    - condition: (!e->any.next)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: makeAlternate
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 0
    functionsReached:
    - newNode
    - assert
    linkageType: ''
    returnType: Node
    signature: Node *makeAlternate(Node *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:194,1
    - Dst: makeAlternate
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:195,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:196,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - a
    - e
    argTypes:
    - Node*
    - Node*
    assertStmts:
    - condition: (a)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    - condition: (e)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    - condition: (a->alternate.last)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 201
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 201
    functionName: Alternate_append
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - makeAlternate
    - assert
    linkageType: ''
    returnType: Node
    signature: Node *Alternate_append(Node *a, Node *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:207,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:208,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - Node*
    assertStmts:
    - condition: (!e->any.next)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    - condition: (e)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 215
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 215
    functionName: makeSequence
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 0
    functionsReached:
    - newNode
    - assert
    linkageType: ''
    returnType: Node
    signature: Node *makeSequence(Node *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:219,1
    - Dst: makeSequence
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:220,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:221,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - a
    - e
    argTypes:
    - Node*
    - Node*
    assertStmts:
    - condition: (a)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    - condition: (e)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    - condition: (a->sequence.last)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: Sequence_append
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - assert
    - makeSequence
    linkageType: ''
    returnType: Node
    signature: Node *Sequence_append(Node *a, Node *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: makePeekFor
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    linkageType: ''
    returnType: Node
    signature: Node *makePeekFor(Node *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: makePeekNot
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    linkageType: ''
    returnType: Node
    signature: Node *makePeekNot(Node *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: makeQuery
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    linkageType: ''
    returnType: Node
    signature: Node *makeQuery(Node *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: makeStar
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    linkageType: ''
    returnType: Node
    signature: Node *makeStar(Node *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newNode
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: makePlus
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - newNode
    linkageType: ''
    returnType: Node
    signature: Node *makePlus(Node *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:274,1
    - Dst: Node_print
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:275,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: dumpStack
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 0
    functionsReached:
    - Node_print
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dumpStack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:283,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:284,1
    - Dst: dumpStack
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:286,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:286,1
    - Dst: Node_print
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:286,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts:
    - condition: (node)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    - condition: (stackPointer < stack + 1023)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: push
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 20
    functionsReached:
    - assert
    - Node_print
    - dumpStack
    - fprintf
    linkageType: ''
    returnType: Node
    signature: Node *push(Node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (stackPointer > stack)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: top
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: Node
    signature: Node *top(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:299,1
    - Dst: dumpStack
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:301,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (stackPointer > stack)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: pop
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 10
    functionsReached:
    - assert
    - dumpStack
    - fprintf
    linkageType: ''
    returnType: Node
    signature: Node *pop(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:309,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:312,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:313,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:314,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:315,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:316,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:317,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:318,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:319,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:320,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:323,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:324,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:327,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:328,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:330,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:334,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:335,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:337,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:338,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:341,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:341,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:342,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:342,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:343,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:343,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:344,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:344,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:345,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:345,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:347,1
    - Dst: exit
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:348,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 2
    argNames:
    - stream
    - node
    argTypes:
    - FILE*
    - Node*
    assertStmts:
    - condition: (node)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 350
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 350
    functionName: Node_fprint
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 1
    functionsReached:
    - assert
    - exit
    - Node_fprint
    - fprintf
    linkageType: ''
    returnType: void
    signature: void Node_fprint(FILE *stream, Node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: Node_print
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 3
    functionsReached:
    - Node_fprint
    linkageType: ''
    returnType: void
    signature: void Node_print(Node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:356,1
    - Dst: assert
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:357,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:358,1
    - Dst: Node_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:360,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:362,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - stream
    - node
    argTypes:
    - FILE*
    - Node*
    assertStmts:
    - condition: (node)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    - condition: (Rule == node->type)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: Rule_fprint
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 0
    functionsReached:
    - assert
    - Node_fprint
    - fprintf
    linkageType: ''
    returnType: void
    signature: void Rule_fprint(FILE *stream, Node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Rule_fprint
      Src: /src/core/3rdparty/peg-0.1.15/src/tree.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 366
    functionName: Rule_print
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/src/tree.c
    functionUses: 2
    functionsReached:
    - Rule_fprint
    linkageType: ''
    returnType: void
    signature: void Rule_print(Node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:119,1
    - Dst: vfprintf
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:121,1
    - Dst: fprintf
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: _vwarnx
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _vwarnx(const char *fmt,va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:129,1
    - Dst: _vwarnx
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:130,1
    - Dst: va_end
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: warnx
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 1
    functionsReached:
    - va_end
    - _vwarnx
    - va_start
    linkageType: ''
    returnType: void
    signature: void warnx(const char *fmt,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: gcd
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gcd(int a, int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcd
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - panonopt_start
    - panonopt_end
    - opt_end
    - nargv
    argTypes:
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 187
    functionName: permute_args
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 0
    functionsReached:
    - gcd
    linkageType: ''
    returnType: void
    signature: "void permute_args(int panonopt_start, int panonopt_end, int opt_end,\n\tchar
      * const *nargv)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:213,1
    - Dst: strlen
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:218,1
    - Dst: strncmp
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:222,1
    - Dst: strlen
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:226,1
    - Dst: IDENTICAL_INTERPRETATION
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:241,1
    - Dst: warnx
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:247,1
    - Dst: warnx
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:256,1
    - Dst: warnx
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:286,1
    - Dst: warnx
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:304,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 5
    argNames:
    - nargv
    - options
    - long_options
    - idx
    - short_too
    argTypes:
    - char**
    - char*
    - struct option*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 316
    functionName: parse_long_options
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 0
    functionsReached:
    - warnx
    - strncmp
    - IDENTICAL_INTERPRETATION
    - strlen
    - strchr
    linkageType: ''
    returnType: int
    signature: "int parse_long_options(char * const *nargv, const char *options,\n\tconst
      struct option *long_options, int *idx, int short_too)"
  - 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: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: IDENTICAL_INTERPRETATION
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDENTICAL_INTERPRETATION(_x, _y)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:348,1
    - Dst: permute_args
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:366,1
    - Dst: strchr
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:381,1
    - Dst: permute_args
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:402,1
    - Dst: permute_args
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:426,1
    - Dst: strchr
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:446,1
    - Dst: parse_long_options
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:449,1
    - Dst: strchr
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:459,1
    - Dst: warnx
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:470,1
    - Dst: warnx
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:481,1
    - Dst: parse_long_options
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:486,1
    - Dst: warnx
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:502,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 123
    argCount: 6
    argNames:
    - nargc
    - nargv
    - options
    - long_options
    - idx
    - flags
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 513
    functionName: getopt_internal
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 3
    functionsReached:
    - warnx
    - getenv
    - permute_args
    - parse_long_options
    - strchr
    linkageType: ''
    returnType: int
    signature: "int getopt_internal(int nargc, char * const *nargv, const char *options,\n\tconst
      struct option *long_options, int *idx, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getopt_internal
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nargc
    - nargv
    - options
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 522
    functionDepth: 4
    functionLinenumber: 522
    functionLinenumberEnd: 535
    functionName: getopt
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 2
    functionsReached:
    - getopt_internal
    linkageType: ''
    returnType: int
    signature: int getopt(int nargc, char * const *nargv, const char *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getopt_internal
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - nargc
    - nargv
    - options
    - long_options
    - idx
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: getopt_long
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 15
    functionsReached:
    - getopt_internal
    linkageType: ''
    returnType: int
    signature: "int getopt_long(int nargc, char * const *nargv, const char *options,\n
      \   const struct option *long_options, int *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getopt_internal
      Src: /src/core/3rdparty/peg-0.1.15/win/getopt.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - nargc
    - nargv
    - options
    - long_options
    - idx
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 555
    functionDepth: 4
    functionLinenumber: 555
    functionLinenumberEnd: 562
    functionName: getopt_long_only
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/getopt.c
    functionUses: 0
    functionsReached:
    - getopt_internal
    linkageType: ''
    returnType: int
    signature: "int getopt_long_only(int nargc, char * const *nargv, const char *options,\n
      \   const struct option *long_options, int *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 7
    functionName: basename
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/win/libgen.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * basename (char *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/examples/test.c:6,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: main
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/test.c
    functionUses: 3
    functionsReached:
    - yyparse
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 7
    functionName: push
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/dc.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int push(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 8
    functionName: pop
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/dc.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/examples/dc.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: main
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/dc.c
    functionUses: 3
    functionsReached:
    - yyparse
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/examples/accept.c:8,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: main
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/accept.c
    functionUses: 3
    functionsReached:
    - yyparse
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 9
    functionName: YY_INPUT
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/left.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf, result, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/core/3rdparty/peg-0.1.15/examples/left.c:14,1
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/examples/left.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: main
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/left.c
    functionUses: 3
    functionsReached:
    - yyparse
    - printf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 9
    functionName: push
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/dcv.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int push(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 10
    functionName: pop
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/dcv.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 11
    functionName: top
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/dcv.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int top(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/examples/dcv.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: main
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/dcv.c
    functionUses: 3
    functionsReached:
    - yyparse
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/core/3rdparty/peg-0.1.15/examples/localpeg.c:10,1
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/examples/localpeg.c:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 13
    functionName: main
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/localpeg.c
    functionUses: 3
    functionsReached:
    - yyparse
    - memset
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyparse
      Src: /src/core/3rdparty/peg-0.1.15/examples/rule.c:8,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: main
    functionSourceFile: /src/core/3rdparty/peg-0.1.15/examples/rule.c
    functionUses: 3
    functionsReached:
    - yyparse
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: good_int
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int good_int()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: bad_int
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bad_int()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: good_with_variable
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool good_with_variable()
  - 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: bad_with_variable
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bad_with_variable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: good_with_constant
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool good_with_constant()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: bad_with_constant
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bad_with_constant()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: good_with_constant
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: good_with_function
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 0
    functionsReached:
    - good_with_constant
    linkageType: ''
    returnType: bool
    signature: bool good_with_function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: good_int
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.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: bad_with_function
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 0
    functionsReached:
    - good_int
    linkageType: ''
    returnType: bool
    signature: bool bad_with_function()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: good_int
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: good_with_comparison
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 0
    functionsReached:
    - good_int
    linkageType: ''
    returnType: bool
    signature: bool good_with_comparison()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: good_int
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:52,1
    - Dst: bad_int
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:53,1
    - Dst: good_with_variable
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:54,1
    - Dst: bad_with_variable
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:55,1
    - Dst: good_with_constant
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:56,1
    - Dst: bad_with_constant
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:57,1
    - Dst: good_with_function
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:58,1
    - Dst: bad_with_function
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:59,1
    - Dst: good_with_comparison
      Src: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
    functionUses: 3
    functionsReached:
    - bad_with_constant
    - bad_with_variable
    - good_with_variable
    - bad_int
    - bad_with_function
    - good_with_comparison
    - good_with_function
    - good_int
    - good_with_constant
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - StructWithString*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: good_with_assert
    functionSourceFile: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void good_with_assert(StructWithString *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: good_with_assert
      Src: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - StructWithString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: good_with_no_deref
    functionSourceFile: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c
    functionUses: 0
    functionsReached:
    - good_with_assert
    linkageType: ''
    returnType: void
    signature: void good_with_no_deref(StructWithString *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - StructWithString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: good_with_if
    functionSourceFile: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void good_with_if(StructWithString *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - StructWithString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: bad_deref
    functionSourceFile: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bad_deref(StructWithString *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: good_with_no_deref
      Src: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c:34,1
    - Dst: good_with_assert
      Src: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c:35,1
    - Dst: good_with_if
      Src: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c:36,1
    - Dst: bad_deref
      Src: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: main
    functionSourceFile: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c
    functionUses: 3
    functionsReached:
    - good_with_if
    - good_with_assert
    - good_with_no_deref
    - bad_deref
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/core/cf-upgrade/alloc-mini.c:39,1
    - Dst: fputs
      Src: /src/core/cf-upgrade/alloc-mini.c:40,1
    - Dst: exit
      Src: /src/core/cf-upgrade/alloc-mini.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - fn
    - check_result
    argTypes:
    - void*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: CheckResult
    functionSourceFile: /src/core/cf-upgrade/alloc-mini.c
    functionUses: 7
    functionsReached:
    - exit
    - fputs
    linkageType: ''
    returnType: void
    signature: void *CheckResult(void *ptr, const char *fn, bool check_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckResult
      Src: /src/core/cf-upgrade/alloc-mini.c:48,1
    - Dst: malloc
      Src: /src/core/cf-upgrade/alloc-mini.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: xmalloc
    functionSourceFile: /src/core/cf-upgrade/alloc-mini.c
    functionUses: 174
    functionsReached:
    - CheckResult
    - malloc
    linkageType: ''
    returnType: void
    signature: void *xmalloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckResult
      Src: /src/core/cf-upgrade/alloc-mini.c:53,1
    - Dst: calloc
      Src: /src/core/cf-upgrade/alloc-mini.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: xcalloc
    functionSourceFile: /src/core/cf-upgrade/alloc-mini.c
    functionUses: 119
    functionsReached:
    - CheckResult
    - calloc
    linkageType: ''
    returnType: void
    signature: void *xcalloc(size_t nmemb, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckResult
      Src: /src/core/cf-upgrade/alloc-mini.c:58,1
    - Dst: strdup
      Src: /src/core/cf-upgrade/alloc-mini.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: xstrdup
    functionSourceFile: /src/core/cf-upgrade/alloc-mini.c
    functionUses: 307
    functionsReached:
    - CheckResult
    - strdup
    linkageType: ''
    returnType: char
    signature: char *xstrdup(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-upgrade/configuration.c:50,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/configuration.c:52,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/configuration.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: ConfigurationNew
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: Configuration
    signature: Configuration *ConfigurationNew()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:67,1
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:70,1
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:71,1
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:72,1
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:73,1
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:74,1
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: ConfigurationDestroy
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ConfigurationDestroy(Configuration **configuration)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: ConfigurationBackupTool
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ConfigurationBackupTool(const Configuration *configuration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:90,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/configuration.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - configuration
    - path
    argTypes:
    - Configuration*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: ConfigurationSetBackupTool
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 1
    functionsReached:
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void ConfigurationSetBackupTool(Configuration *configuration, char
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: ConfigurationBackupPath
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ConfigurationBackupPath(const Configuration *configuration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:105,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/configuration.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - configuration
    - path
    argTypes:
    - Configuration*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: ConfigurationSetBackupPath
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 1
    functionsReached:
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void ConfigurationSetBackupPath(Configuration *configuration, char
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: ConfigurationCopy
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ConfigurationCopy(const Configuration *configuration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:120,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/configuration.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - configuration
    - path
    argTypes:
    - Configuration*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: ConfigurationSetCopy
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 1
    functionsReached:
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void ConfigurationSetCopy(Configuration *configuration, char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: ConfigurationCFUpgrade
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ConfigurationCFUpgrade(const Configuration *configuration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:135,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/configuration.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - configuration
    - path
    argTypes:
    - Configuration*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: ConfigurationSetCFUpgrade
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 1
    functionsReached:
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void ConfigurationSetCFUpgrade(Configuration *configuration, char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: ConfigurationCFEnginePath
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ConfigurationCFEnginePath(const Configuration *configuration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/core/cf-upgrade/configuration.c:150,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/configuration.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - configuration
    - path
    argTypes:
    - Configuration*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: ConfigurationSetCFEnginePath
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 1
    functionsReached:
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void ConfigurationSetCFEnginePath(Configuration *configuration, char
      *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: ConfigurationCommand
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ConfigurationCommand(const Configuration *configuration)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - configuration
    - number
    argTypes:
    - Configuration*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: ConfigurationArgument
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ConfigurationArgument(const Configuration *configuration, int
      number)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/configuration.c:178,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/configuration.c:183,1
    - Dst: exit
      Src: /src/core/cf-upgrade/configuration.c:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - configuration
    - argument
    argTypes:
    - Configuration*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: ConfigurationAddArgument
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 1
    functionsReached:
    - exit
    - log_entry
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void ConfigurationAddArgument(Configuration *configuration, char *argument)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: ConfigurationNumberOfArguments
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ConfigurationNumberOfArguments(const Configuration *configuration)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: ConfigurationPerformUpdate
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ConfigurationPerformUpdate(const Configuration *configuration)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - configuration
    - perform
    argTypes:
    - Configuration*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: ConfigurationSetPerformUpdate
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConfigurationSetPerformUpdate(Configuration *configuration, bool
      perform)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: ConfigurationVersion
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ConfigurationVersion(Configuration *configuration)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - configuration
    - version
    argTypes:
    - Configuration*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: ConfigurationSetVersion
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConfigurationSetVersion(Configuration *configuration, bool version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: ConfigurationHelp
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ConfigurationHelp(Configuration *configuration)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - configuration
    - help
    argTypes:
    - Configuration*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 231
    functionName: ConfigurationSetHelp
    functionSourceFile: /src/core/cf-upgrade/configuration.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConfigurationSetHelp(Configuration *configuration, bool help)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/core/cf-upgrade/update.c:51,1
    - Dst: fstat
      Src: /src/core/cf-upgrade/update.c:56,1
    - Dst: unlink
      Src: /src/core/cf-upgrade/update.c:57,1
    - Dst: open
      Src: /src/core/cf-upgrade/update.c:58,1
    - Dst: read
      Src: /src/core/cf-upgrade/update.c:69,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:72,1
    - Dst: write
      Src: /src/core/cf-upgrade/update.c:76,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:79,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:85,1
    - Dst: fsync
      Src: /src/core/cf-upgrade/update.c:92,1
    - Dst: close
      Src: /src/core/cf-upgrade/update.c:93,1
    - Dst: close
      Src: /src/core/cf-upgrade/update.c:94,1
    - Dst: close
      Src: /src/core/cf-upgrade/update.c:97,1
    - Dst: unlink
      Src: /src/core/cf-upgrade/update.c:98,1
    - Dst: close
      Src: /src/core/cf-upgrade/update.c:100,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 2
    argNames:
    - source
    - destination
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 103
    functionName: private_copy_to_temporary_location
    functionSourceFile: /src/core/cf-upgrade/update.c
    functionUses: 0
    functionsReached:
    - unlink
    - read
    - log_entry
    - write
    - fstat
    - open
    - fsync
    - close
    linkageType: ''
    returnType: int
    signature: int private_copy_to_temporary_location(const char *source, const char
      *destination)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/core/cf-upgrade/update.c:113,1
    - Dst: fstat
      Src: /src/core/cf-upgrade/update.c:118,1
    - Dst: unlink
      Src: /src/core/cf-upgrade/update.c:119,1
    - Dst: open
      Src: /src/core/cf-upgrade/update.c:120,1
    - Dst: read
      Src: /src/core/cf-upgrade/update.c:131,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:134,1
    - Dst: write
      Src: /src/core/cf-upgrade/update.c:141,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:144,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:151,1
    - Dst: assert
      Src: /src/core/cf-upgrade/update.c:159,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:162,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:165,1
    - Dst: close
      Src: /src/core/cf-upgrade/update.c:169,1
    - Dst: close
      Src: /src/core/cf-upgrade/update.c:170,1
    - Dst: close
      Src: /src/core/cf-upgrade/update.c:174,1
    - Dst: unlink
      Src: /src/core/cf-upgrade/update.c:175,1
    - Dst: close
      Src: /src/core/cf-upgrade/update.c:177,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 2
    argNames:
    - source
    - destination
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (this_read == 0)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/core/cf-upgrade/update.c
    constantsTouched: []
    func_position:
      end: 180
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 180
    functionName: private_copy_to_temporary_location
    functionSourceFile: /src/core/cf-upgrade/update.c
    functionUses: 0
    functionsReached:
    - unlink
    - read
    - log_entry
    - write
    - assert
    - fstat
    - open
    - close
    linkageType: ''
    returnType: int
    signature: int private_copy_to_temporary_location(const char *source, const char
      *destination)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: private_copy_to_temporary_location
      Src: /src/core/cf-upgrade/update.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - source
    - destination
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: copy_to_temporary_location
    functionSourceFile: /src/core/cf-upgrade/update.c
    functionUses: 1
    functionsReached:
    - private_copy_to_temporary_location
    linkageType: ''
    returnType: int
    signature: int copy_to_temporary_location(const char *source, const char *destination)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-upgrade/update.c:196,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:197,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:198,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:199,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:200,1
    - Dst: run_process_wait
      Src: /src/core/cf-upgrade/update.c:203,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:204,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:205,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:206,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:207,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - backup_tool
    - backup_path
    - cfengine
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: perform_backup
    functionSourceFile: /src/core/cf-upgrade/update.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - free
    - run_process_wait
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int perform_backup(const char *backup_tool, const char *backup_path,
      const char *cfengine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/core/cf-upgrade/update.c:216,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:217,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:218,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:219,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:220,1
    - Dst: run_process_wait
      Src: /src/core/cf-upgrade/update.c:223,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:224,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:225,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:226,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:227,1
    - Dst: free
      Src: /src/core/cf-upgrade/update.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - backup_tool
    - backup_path
    - cfengine
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 230
    functionName: perform_restore
    functionSourceFile: /src/core/cf-upgrade/update.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - free
    - run_process_wait
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int perform_restore(const char *backup_tool, const char *backup_path,
      const char *cfengine)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationPerformUpdate
      Src: /src/core/cf-upgrade/update.c:250,1
    - Dst: ConfigurationBackupPath
      Src: /src/core/cf-upgrade/update.c:255,1
    - Dst: ConfigurationBackupTool
      Src: /src/core/cf-upgrade/update.c:256,1
    - Dst: ConfigurationCFEnginePath
      Src: /src/core/cf-upgrade/update.c:257,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:259,1
    - Dst: perform_backup
      Src: /src/core/cf-upgrade/update.c:262,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:265,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:270,1
    - Dst: ConfigurationCommand
      Src: /src/core/cf-upgrade/update.c:273,1
    - Dst: ConfigurationNumberOfArguments
      Src: /src/core/cf-upgrade/update.c:277,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:280,1
    - Dst: ConfigurationArgument
      Src: /src/core/cf-upgrade/update.c:280,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:284,1
    - Dst: run_process_wait
      Src: /src/core/cf-upgrade/update.c:286,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:290,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:295,1
    - Dst: perform_restore
      Src: /src/core/cf-upgrade/update.c:297,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:300,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:306,1
    - Dst: ConfigurationCopy
      Src: /src/core/cf-upgrade/update.c:317,1
    - Dst: ConfigurationCFUpgrade
      Src: /src/core/cf-upgrade/update.c:318,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:320,1
    - Dst: copy_to_temporary_location
      Src: /src/core/cf-upgrade/update.c:322,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:325,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:332,1
    - Dst: ConfigurationCopy
      Src: /src/core/cf-upgrade/update.c:332,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:333,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:334,1
    - Dst: ConfigurationBackupTool
      Src: /src/core/cf-upgrade/update.c:334,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:335,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:336,1
    - Dst: ConfigurationCFEnginePath
      Src: /src/core/cf-upgrade/update.c:336,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:337,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:338,1
    - Dst: ConfigurationBackupPath
      Src: /src/core/cf-upgrade/update.c:338,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:340,1
    - Dst: ConfigurationNumberOfArguments
      Src: /src/core/cf-upgrade/update.c:342,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/update.c:345,1
    - Dst: ConfigurationArgument
      Src: /src/core/cf-upgrade/update.c:345,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/update.c:350,1
    - Dst: run_process_replace
      Src: /src/core/cf-upgrade/update.c:355,1
    - Dst: assert
      Src: /src/core/cf-upgrade/update.c:358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - Configuration*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/core/cf-upgrade/update.c
    constantsTouched: []
    func_position:
      end: 360
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 360
    functionName: RunUpdate
    functionSourceFile: /src/core/cf-upgrade/update.c
    functionUses: 0
    functionsReached:
    - ConfigurationCFEnginePath
    - ConfigurationPerformUpdate
    - ConfigurationCopy
    - log_entry
    - ConfigurationNumberOfArguments
    - assert
    - run_process_wait
    - ConfigurationCFUpgrade
    - perform_backup
    - ConfigurationArgument
    - ConfigurationBackupPath
    - run_process_replace
    - ConfigurationBackupTool
    - perform_restore
    - xstrdup
    - ConfigurationCommand
    - copy_to_temporary_location
    linkageType: ''
    returnType: int
    signature: int RunUpdate(const Configuration *configuration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-upgrade/log.c:53,1
    - Dst: gmtime_r
      Src: /src/core/cf-upgrade/log.c:54,1
    - Dst: vsnprintf
      Src: /src/core/cf-upgrade/log.c:57,1
    - Dst: strftime
      Src: /src/core/cf-upgrade/log.c:58,1
    - Dst: xmalloc
      Src: /src/core/cf-upgrade/log.c:61,1
    - Dst: snprintf
      Src: /src/core/cf-upgrade/log.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: prepare_message
    functionSourceFile: /src/core/cf-upgrade/log.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xmalloc
    - strftime
    - vsnprintf
    - gmtime_r
    - time
    linkageType: ''
    returnType: char
    signature: char *prepare_message(char *format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/core/cf-upgrade/log.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: write_console_log_entry
    functionSourceFile: /src/core/cf-upgrade/log.c
    functionUses: 0
    functionsReached:
    - puts
    linkageType: ''
    returnType: void
    signature: void write_console_log_entry(const char *message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/core/cf-upgrade/log.c:75,1
    - Dst: fputs
      Src: /src/core/cf-upgrade/log.c:76,1
    - Dst: fflush
      Src: /src/core/cf-upgrade/log.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: write_file_log_entry
    functionSourceFile: /src/core/cf-upgrade/log.c
    functionUses: 0
    functionsReached:
    - fflush
    - fputs
    linkageType: ''
    returnType: void
    signature: void write_file_log_entry(const char *message)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/core/cf-upgrade/log.c:86,1
    - Dst: gmtime_r
      Src: /src/core/cf-upgrade/log.c:87,1
    - Dst: strftime
      Src: /src/core/cf-upgrade/log.c:91,1
    - Dst: open
      Src: /src/core/cf-upgrade/log.c:93,1
    - Dst: open
      Src: /src/core/cf-upgrade/log.c:95,1
    - Dst: puts
      Src: /src/core/cf-upgrade/log.c:99,1
    - Dst: fcntl
      Src: /src/core/cf-upgrade/log.c:109,1
    - Dst: puts
      Src: /src/core/cf-upgrade/log.c:112,1
    - Dst: fcntl
      Src: /src/core/cf-upgrade/log.c:115,1
    - Dst: puts
      Src: /src/core/cf-upgrade/log.c:118,1
    - Dst: fdopen
      Src: /src/core/cf-upgrade/log.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 124
    functionName: private_log_init
    functionSourceFile: /src/core/cf-upgrade/log.c
    functionUses: 0
    functionsReached:
    - fdopen
    - fcntl
    - puts
    - open
    - strftime
    - gmtime_r
    - time
    linkageType: ''
    returnType: void
    signature: void private_log_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_log_init
      Src: /src/core/cf-upgrade/log.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: logInit
    functionSourceFile: /src/core/cf-upgrade/log.c
    functionUses: 0
    functionsReached:
    - private_log_init
    linkageType: ''
    returnType: void
    signature: void logInit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/core/cf-upgrade/log.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: logFinish
    functionSourceFile: /src/core/cf-upgrade/log.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void logFinish()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/core/cf-upgrade/log.c:147,1
    - Dst: prepare_message
      Src: /src/core/cf-upgrade/log.c:148,1
    - Dst: va_end
      Src: /src/core/cf-upgrade/log.c:149,1
    - Dst: write_console_log_entry
      Src: /src/core/cf-upgrade/log.c:156,1
    - Dst: write_file_log_entry
      Src: /src/core/cf-upgrade/log.c:157,1
    - Dst: write_file_log_entry
      Src: /src/core/cf-upgrade/log.c:160,1
    - Dst: free
      Src: /src/core/cf-upgrade/log.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - level
    - format
    argTypes:
    - LogLevel
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 165
    functionName: log_entry
    functionSourceFile: /src/core/cf-upgrade/log.c
    functionUses: 5
    functionsReached:
    - write_console_log_entry
    - va_start
    - va_end
    - write_file_log_entry
    - prepare_message
    - free
    linkageType: ''
    returnType: void
    signature: void log_entry(LogLevel level, char *format, ...)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:44,1
    - Dst: ConfigurationNew
      Src: /src/core/cf-upgrade/command_line.c:48,1
    - Dst: ConfigurationSetCFUpgrade
      Src: /src/core/cf-upgrade/command_line.c:50,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:59,1
    - Dst: strcmp
      Src: /src/core/cf-upgrade/command_line.c:60,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:63,1
    - Dst: ConfigurationSetCopy
      Src: /src/core/cf-upgrade/command_line.c:64,1
    - Dst: strcmp
      Src: /src/core/cf-upgrade/command_line.c:67,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:69,1
    - Dst: ConfigurationSetHelp
      Src: /src/core/cf-upgrade/command_line.c:70,1
    - Dst: strcmp
      Src: /src/core/cf-upgrade/command_line.c:73,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:75,1
    - Dst: ConfigurationSetVersion
      Src: /src/core/cf-upgrade/command_line.c:76,1
    - Dst: strcmp
      Src: /src/core/cf-upgrade/command_line.c:79,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:82,1
    - Dst: ConfigurationSetBackupTool
      Src: /src/core/cf-upgrade/command_line.c:83,1
    - Dst: strcmp
      Src: /src/core/cf-upgrade/command_line.c:87,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:90,1
    - Dst: ConfigurationSetBackupPath
      Src: /src/core/cf-upgrade/command_line.c:91,1
    - Dst: strcmp
      Src: /src/core/cf-upgrade/command_line.c:95,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:98,1
    - Dst: ConfigurationSetCFEnginePath
      Src: /src/core/cf-upgrade/command_line.c:99,1
    - Dst: strcmp
      Src: /src/core/cf-upgrade/command_line.c:106,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:108,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:114,1
    - Dst: ConfigurationAddArgument
      Src: /src/core/cf-upgrade/command_line.c:115,1
    - Dst: strcmp
      Src: /src/core/cf-upgrade/command_line.c:119,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:121,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:127,1
    - Dst: ConfigurationAddArgument
      Src: /src/core/cf-upgrade/command_line.c:128,1
    - Dst: ConfigurationSetPerformUpdate
      Src: /src/core/cf-upgrade/command_line.c:130,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:135,1
    - Dst: ConfigurationDestroy
      Src: /src/core/cf-upgrade/command_line.c:136,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:143,1
    - Dst: ConfigurationDestroy
      Src: /src/core/cf-upgrade/command_line.c:144,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/command_line.c:147,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - argc
    - argv
    - configuration
    argTypes:
    - int
    - char*[]
    - Configuration**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 149
    functionName: parse
    functionSourceFile: /src/core/cf-upgrade/command_line.c
    functionUses: 21
    functionsReached:
    - ConfigurationDestroy
    - ConfigurationSetCFUpgrade
    - ConfigurationSetPerformUpdate
    - log_entry
    - ConfigurationSetBackupPath
    - ConfigurationAddArgument
    - ConfigurationNew
    - ConfigurationSetVersion
    - strcmp
    - ConfigurationSetCFEnginePath
    - ConfigurationSetCopy
    - ConfigurationSetBackupTool
    - ConfigurationSetHelp
    linkageType: ''
    returnType: int
    signature: int parse(int argc, char *argv[], Configuration **configuration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execve
      Src: /src/core/cf-upgrade/process.c:64,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/process.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - command
    - args
    - envp
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: private_run_process_replace
    functionSourceFile: /src/core/cf-upgrade/process.c
    functionUses: 0
    functionsReached:
    - execve
    - log_entry
    linkageType: ''
    returnType: int
    signature: int private_run_process_replace(const char *command, char **args, char
      **envp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: basename
      Src: /src/core/cf-upgrade/process.c:83,1
    - Dst: xstrdup
      Src: /src/core/cf-upgrade/process.c:83,1
    - Dst: time
      Src: /src/core/cf-upgrade/process.c:84,1
    - Dst: gmtime_r
      Src: /src/core/cf-upgrade/process.c:86,1
    - Dst: strlen
      Src: /src/core/cf-upgrade/process.c:87,1
    - Dst: strlen
      Src: /src/core/cf-upgrade/process.c:88,1
    - Dst: strlen
      Src: /src/core/cf-upgrade/process.c:89,1
    - Dst: xmalloc
      Src: /src/core/cf-upgrade/process.c:90,1
    - Dst: snprintf
      Src: /src/core/cf-upgrade/process.c:91,1
    - Dst: fork
      Src: /src/core/cf-upgrade/process.c:97,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/process.c:100,1
    - Dst: execve
      Src: /src/core/cf-upgrade/process.c:105,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/process.c:107,1
    - Dst: exit
      Src: /src/core/cf-upgrade/process.c:108,1
    - Dst: free
      Src: /src/core/cf-upgrade/process.c:114,1
    - Dst: waitpid
      Src: /src/core/cf-upgrade/process.c:115,1
    - Dst: WIFEXITED
      Src: /src/core/cf-upgrade/process.c:116,1
    - Dst: WEXITSTATUS
      Src: /src/core/cf-upgrade/process.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - command
    - args
    - envp
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: private_run_process_wait
    functionSourceFile: /src/core/cf-upgrade/process.c
    functionUses: 0
    functionsReached:
    - fork
    - exit
    - WEXITSTATUS
    - snprintf
    - log_entry
    - strlen
    - waitpid
    - WIFEXITED
    - xmalloc
    - xstrdup
    - execve
    - free
    - gmtime_r
    - basename
    - time
    linkageType: ''
    returnType: int
    signature: int private_run_process_wait(const char *command, char **args, char
      **envp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcat
      Src: /src/core/cf-upgrade/process.c:143,1
    - Dst: strlcat
      Src: /src/core/cf-upgrade/process.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - command_line
    - args
    - command_line_size
    argTypes:
    - char*
    - char**
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 149
    functionName: args_to_command_line
    functionSourceFile: /src/core/cf-upgrade/process.c
    functionUses: 0
    functionsReached:
    - strlcat
    linkageType: ''
    returnType: void
    signature: "void args_to_command_line(char *command_line, char **args,\n                                 unsigned
      long command_line_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZeroMemory
      Src: /src/core/cf-upgrade/process.c:157,1
    - Dst: ZeroMemory
      Src: /src/core/cf-upgrade/process.c:159,1
    - Dst: ZeroMemory
      Src: /src/core/cf-upgrade/process.c:160,1
    - Dst: args_to_command_line
      Src: /src/core/cf-upgrade/process.c:162,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/process.c:164,1
    - Dst: CreateProcess
      Src: /src/core/cf-upgrade/process.c:168,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/process.c:180,1
    - Dst: exit
      Src: /src/core/cf-upgrade/process.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - command
    - args
    - envp
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 191
    functionName: private_run_process_replace
    functionSourceFile: /src/core/cf-upgrade/process.c
    functionUses: 0
    functionsReached:
    - exit
    - log_entry
    - ZeroMemory
    - CreateProcess
    - args_to_command_line
    linkageType: ''
    returnType: int
    signature: int private_run_process_replace(const char *command, char **args, char
      **envp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZeroMemory
      Src: /src/core/cf-upgrade/process.c:205,1
    - Dst: ZeroMemory
      Src: /src/core/cf-upgrade/process.c:207,1
    - Dst: ZeroMemory
      Src: /src/core/cf-upgrade/process.c:208,1
    - Dst: args_to_command_line
      Src: /src/core/cf-upgrade/process.c:210,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/process.c:212,1
    - Dst: CreateProcess
      Src: /src/core/cf-upgrade/process.c:216,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/process.c:228,1
    - Dst: WaitForSingleObject
      Src: /src/core/cf-upgrade/process.c:233,1
    - Dst: GetExitCodeProcess
      Src: /src/core/cf-upgrade/process.c:237,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/process.c:239,1
    - Dst: CloseHandle
      Src: /src/core/cf-upgrade/process.c:243,1
    - Dst: CloseHandle
      Src: /src/core/cf-upgrade/process.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - command
    - args
    - envp
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 246
    functionName: private_run_process_wait
    functionSourceFile: /src/core/cf-upgrade/process.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObject
    - log_entry
    - ZeroMemory
    - CloseHandle
    - CreateProcess
    - args_to_command_line
    - GetExitCodeProcess
    linkageType: ''
    returnType: int
    signature: int private_run_process_wait(const char *command, char **args, char
      **envp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: private_run_process_replace
      Src: /src/core/cf-upgrade/process.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - command
    - args
    - envp
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 5
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: run_process_replace
    functionSourceFile: /src/core/cf-upgrade/process.c
    functionUses: 2
    functionsReached:
    - private_run_process_replace
    linkageType: ''
    returnType: int
    signature: int run_process_replace(const char *command, char **args, char **envp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: private_run_process_wait
      Src: /src/core/cf-upgrade/process.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - command
    - args
    - envp
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: run_process_wait
    functionSourceFile: /src/core/cf-upgrade/process.c
    functionUses: 4
    functionsReached:
    - private_run_process_wait
    linkageType: ''
    returnType: int
    signature: int run_process_wait(const char *command, char **args, char **envp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/core/cf-upgrade/cf-upgrade.c:42,1
    - Dst: puts
      Src: /src/core/cf-upgrade/cf-upgrade.c:44,1
    - Dst: puts
      Src: /src/core/cf-upgrade/cf-upgrade.c:45,1
    - Dst: puts
      Src: /src/core/cf-upgrade/cf-upgrade.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: usage
    functionSourceFile: /src/core/cf-upgrade/cf-upgrade.c
    functionUses: 9
    functionsReached:
    - puts
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: logInit
      Src: /src/core/cf-upgrade/cf-upgrade.c:54,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/cf-upgrade.c:55,1
    - Dst: parse
      Src: /src/core/cf-upgrade/cf-upgrade.c:57,1
    - Dst: usage
      Src: /src/core/cf-upgrade/cf-upgrade.c:60,1
    - Dst: ConfigurationVersion
      Src: /src/core/cf-upgrade/cf-upgrade.c:63,1
    - Dst: printf
      Src: /src/core/cf-upgrade/cf-upgrade.c:66,1
    - Dst: ConfigurationHelp
      Src: /src/core/cf-upgrade/cf-upgrade.c:69,1
    - Dst: usage
      Src: /src/core/cf-upgrade/cf-upgrade.c:71,1
    - Dst: RunUpdate
      Src: /src/core/cf-upgrade/cf-upgrade.c:75,1
    - Dst: log_entry
      Src: /src/core/cf-upgrade/cf-upgrade.c:77,1
    - Dst: logFinish
      Src: /src/core/cf-upgrade/cf-upgrade.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/core/cf-upgrade/cf-upgrade.c
    functionUses: 3
    functionsReached:
    - log_entry
    - ConfigurationHelp
    - RunUpdate
    - parse
    - logInit
    - printf
    - ConfigurationVersion
    - usage
    - logFinish
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: RUN_PROCESS_FAILURE
    functionSourceFile: /src/core/cf-upgrade/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUN_PROCESS_FAILURE(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-secret/cf-secret.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts:
    - condition: (sa != NULL)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/core/cf-secret/cf-secret.c
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: GetIPAddress
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void *GetIPAddress(struct sockaddr *sa)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getaddrinfo
      Src: /src/core/cf-secret/cf-secret.c:168,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:171,1
    - Dst: gai_strerror
      Src: /src/core/cf-secret/cf-secret.c:172,1
    - Dst: malloc
      Src: /src/core/cf-secret/cf-secret.c:176,1
    - Dst: inet_ntop
      Src: /src/core/cf-secret/cf-secret.c:182,1
    - Dst: GetIPAddress
      Src: /src/core/cf-secret/cf-secret.c:183,1
    - Dst: StringIsLocalHostIP
      Src: /src/core/cf-secret/cf-secret.c:185,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:187,1
    - Dst: snprintf
      Src: /src/core/cf-secret/cf-secret.c:189,1
    - Dst: GetWorkDir
      Src: /src/core/cf-secret/cf-secret.c:190,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:193,1
    - Dst: freeaddrinfo
      Src: /src/core/cf-secret/cf-secret.c:195,1
    - Dst: freeaddrinfo
      Src: /src/core/cf-secret/cf-secret.c:198,1
    - Dst: Address2Hostkey
      Src: /src/core/cf-secret/cf-secret.c:201,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:205,1
    - Dst: snprintf
      Src: /src/core/cf-secret/cf-secret.c:206,1
    - Dst: GetWorkDir
      Src: /src/core/cf-secret/cf-secret.c:207,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:210,1
    - Dst: freeaddrinfo
      Src: /src/core/cf-secret/cf-secret.c:212,1
    - Dst: freeaddrinfo
      Src: /src/core/cf-secret/cf-secret.c:215,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:220,1
    - Dst: inet_ntop
      Src: /src/core/cf-secret/cf-secret.c:223,1
    - Dst: GetIPAddress
      Src: /src/core/cf-secret/cf-secret.c:224,1
    - Dst: snprintf
      Src: /src/core/cf-secret/cf-secret.c:226,1
    - Dst: GetWorkDir
      Src: /src/core/cf-secret/cf-secret.c:227,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:230,1
    - Dst: freeaddrinfo
      Src: /src/core/cf-secret/cf-secret.c:232,1
    - Dst: access
      Src: /src/core/cf-secret/cf-secret.c:235,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:237,1
    - Dst: freeaddrinfo
      Src: /src/core/cf-secret/cf-secret.c:238,1
    - Dst: freeaddrinfo
      Src: /src/core/cf-secret/cf-secret.c:243,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - host
    - type
    argTypes:
    - char*
    - HostRSAKeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 155
    functionDepth: 10
    functionLinenumber: 155
    functionLinenumberEnd: 245
    functionName: GetHostRSAKey
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    - access
    - inet_ntop
    - snprintf
    - GetIPAddress
    - StringIsLocalHostIP
    - Address2Hostkey
    - gai_strerror
    - Log
    - malloc
    - getaddrinfo
    - GetWorkDir
    linkageType: ''
    returnType: char
    signature: char *GetHostRSAKey(const char *host, HostRSAKeyType type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-secret/cf-secret.c:249,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:253,1
    - Dst: PEM_read_RSAPrivateKey
      Src: /src/core/cf-secret/cf-secret.c:256,1
    - Dst: ERR_get_error
      Src: /src/core/cf-secret/cf-secret.c:259,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:260,1
    - Dst: ERR_reason_error_string
      Src: /src/core/cf-secret/cf-secret.c:261,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - privkey_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 247
    functionDepth: 8
    functionLinenumber: 247
    functionLinenumberEnd: 265
    functionName: ReadPrivateKey
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - PEM_read_RSAPrivateKey
    - ERR_reason_error_string
    - safe_fopen
    - Log
    - fclose
    - ERR_get_error
    linkageType: ''
    returnType: RSA
    signature: RSA *ReadPrivateKey(const char *privkey_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: safe_fopen
      Src: /src/core/cf-secret/cf-secret.c:269,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:273,1
    - Dst: PEM_read_RSAPublicKey
      Src: /src/core/cf-secret/cf-secret.c:277,1
    - Dst: ERR_get_error
      Src: /src/core/cf-secret/cf-secret.c:280,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:281,1
    - Dst: ERR_reason_error_string
      Src: /src/core/cf-secret/cf-secret.c:282,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pubkey_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 267
    functionDepth: 8
    functionLinenumber: 267
    functionLinenumberEnd: 286
    functionName: ReadPublicKey
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - ERR_reason_error_string
    - safe_fopen
    - Log
    - PEM_read_RSAPublicKey
    - fclose
    - ERR_get_error
    linkageType: ''
    returnType: RSA
    signature: RSA *ReadPublicKey(const char *pubkey_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-secret/cf-secret.c:290,1
    - Dst: assert
      Src: /src/core/cf-secret/cf-secret.c:291,1
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:292,1
    - Dst: safe_fopen
      Src: /src/core/cf-secret/cf-secret.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (path != NULL)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/core/cf-secret/cf-secret.c
    - condition: (mode != NULL)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/core/cf-secret/cf-secret.c
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: OpenInputOutput
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - safe_fopen
    - assert
    - StringEqual
    linkageType: ''
    returnType: FILE
    signature: FILE *OpenInputOutput(const char *path, const char *mode)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-secret/cf-secret.c:308,1
    - Dst: SeqLength
      Src: /src/core/cf-secret/cf-secret.c:308,1
    - Dst: OpenInputOutput
      Src: /src/core/cf-secret/cf-secret.c:310,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:313,1
    - Dst: OpenInputOutput
      Src: /src/core/cf-secret/cf-secret.c:317,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:320,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:321,1
    - Dst: SeqLength
      Src: /src/core/cf-secret/cf-secret.c:325,1
    - Dst: SeqNew
      Src: /src/core/cf-secret/cf-secret.c:326,1
    - Dst: SeqAt
      Src: /src/core/cf-secret/cf-secret.c:329,1
    - Dst: EVP_PKEY_new
      Src: /src/core/cf-secret/cf-secret.c:330,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/core/cf-secret/cf-secret.c:331,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:333,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:334,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:335,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:336,1
    - Dst: SeqAppend
      Src: /src/core/cf-secret/cf-secret.c:339,1
    - Dst: EVP_aes_256_cbc
      Src: /src/core/cf-secret/cf-secret.c:344,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/core/cf-secret/cf-secret.c:345,1
    - Dst: SeqNew
      Src: /src/core/cf-secret/cf-secret.c:349,1
    - Dst: EVP_PKEY_size
      Src: /src/core/cf-secret/cf-secret.c:352,1
    - Dst: SeqAt
      Src: /src/core/cf-secret/cf-secret.c:352,1
    - Dst: SeqAppend
      Src: /src/core/cf-secret/cf-secret.c:353,1
    - Dst: xmalloc
      Src: /src/core/cf-secret/cf-secret.c:353,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/core/cf-secret/cf-secret.c:357,1
    - Dst: EVP_CIPHER_block_size
      Src: /src/core/cf-secret/cf-secret.c:360,1
    - Dst: EVP_SealInit
      Src: /src/core/cf-secret/cf-secret.c:364,1
    - Dst: SeqGetData
      Src: /src/core/cf-secret/cf-secret.c:365,1
    - Dst: SeqGetData
      Src: /src/core/cf-secret/cf-secret.c:366,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:369,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:375,1
    - Dst: strlen
      Src: /src/core/cf-secret/cf-secret.c:377,1
    - Dst: FullWrite
      Src: /src/core/cf-secret/cf-secret.c:378,1
    - Dst: fileno
      Src: /src/core/cf-secret/cf-secret.c:378,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:381,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:385,1
    - Dst: GetPubkeyDigest
      Src: /src/core/cf-secret/cf-secret.c:388,1
    - Dst: SeqAt
      Src: /src/core/cf-secret/cf-secret.c:388,1
    - Dst: snprintf
      Src: /src/core/cf-secret/cf-secret.c:389,1
    - Dst: free
      Src: /src/core/cf-secret/cf-secret.c:390,1
    - Dst: assert
      Src: /src/core/cf-secret/cf-secret.c:391,1
    - Dst: FullWrite
      Src: /src/core/cf-secret/cf-secret.c:392,1
    - Dst: fileno
      Src: /src/core/cf-secret/cf-secret.c:392,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:395,1
    - Dst: FullWrite
      Src: /src/core/cf-secret/cf-secret.c:400,1
    - Dst: fileno
      Src: /src/core/cf-secret/cf-secret.c:400,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:403,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:407,1
    - Dst: FullWrite
      Src: /src/core/cf-secret/cf-secret.c:408,1
    - Dst: fileno
      Src: /src/core/cf-secret/cf-secret.c:408,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:411,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:416,1
    - Dst: SeqAt
      Src: /src/core/cf-secret/cf-secret.c:419,1
    - Dst: FullWrite
      Src: /src/core/cf-secret/cf-secret.c:420,1
    - Dst: fileno
      Src: /src/core/cf-secret/cf-secret.c:420,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:423,1
    - Dst: feof
      Src: /src/core/cf-secret/cf-secret.c:430,1
    - Dst: ReadFileStreamToBuffer
      Src: /src/core/cf-secret/cf-secret.c:432,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:435,1
    - Dst: EVP_SealUpdate
      Src: /src/core/cf-secret/cf-secret.c:439,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:442,1
    - Dst: ERR_error_string
      Src: /src/core/cf-secret/cf-secret.c:443,1
    - Dst: ERR_get_error
      Src: /src/core/cf-secret/cf-secret.c:443,1
    - Dst: FullWrite
      Src: /src/core/cf-secret/cf-secret.c:447,1
    - Dst: fileno
      Src: /src/core/cf-secret/cf-secret.c:447,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:450,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:455,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:457,1
    - Dst: EVP_SealFinal
      Src: /src/core/cf-secret/cf-secret.c:458,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:461,1
    - Dst: ERR_error_string
      Src: /src/core/cf-secret/cf-secret.c:462,1
    - Dst: ERR_get_error
      Src: /src/core/cf-secret/cf-secret.c:462,1
    - Dst: FullWrite
      Src: /src/core/cf-secret/cf-secret.c:467,1
    - Dst: fileno
      Src: /src/core/cf-secret/cf-secret.c:467,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:470,1
    - Dst: OPENSSL_cleanse
      Src: /src/core/cf-secret/cf-secret.c:474,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:477,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:478,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:479,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:480,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/cf-secret/cf-secret.c:481,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 118
    argCount: 3
    argNames:
    - rsa_keys
    - input_path
    - output_path
    argTypes:
    - Seq*
    - char*
    - char*
    assertStmts:
    - condition: ((rsa_keys != NULL) && (SeqLength(rsa_keys) > 0))
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/core/cf-secret/cf-secret.c
    - condition: (header_len <= (MAX_HEADER_LEN + 2))
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/core/cf-secret/cf-secret.c
    constantsTouched: []
    func_position:
      end: 483
      start: 306
    functionDepth: 8
    functionLinenumber: 306
    functionLinenumberEnd: 483
    functionName: RSAEncrypt
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - OpenInputOutput
    - feof
    - Log
    - fclose
    - EVP_aes_256_cbc
    - SeqLength
    - free
    - EVP_CIPHER_iv_length
    - SeqAppend
    - SeqDestroy
    - snprintf
    - strlen
    - FullWrite
    - fileno
    - EVP_SealInit
    - EVP_CIPHER_CTX_free
    - EVP_PKEY_set1_RSA
    - ReadFileStreamToBuffer
    - SeqAt
    - OPENSSL_cleanse
    - assert
    - SeqNew
    - xmalloc
    - ERR_get_error
    - GetPubkeyDigest
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_block_size
    - SeqGetData
    - EVP_SealFinal
    - EVP_PKEY_new
    - EVP_SealUpdate
    - EVP_PKEY_size
    - ERR_error_string
    linkageType: ''
    returnType: bool
    signature: bool RSAEncrypt(Seq *rsa_keys, const char *input_path, const char *output_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:487,1
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:489,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:491,1
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:499,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 485
    functionDepth: 8
    functionLinenumber: 485
    functionLinenumberEnd: 509
    functionName: CheckHeader
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - Log
    - StringEqual
    linkageType: ''
    returnType: bool
    signature: bool CheckHeader(const char *key, const char *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fgetc
      Src: /src/core/cf-secret/cf-secret.c:523,1
    - Dst: ungetc
      Src: /src/core/cf-secret/cf-secret.c:533,1
    - Dst: ungetc
      Src: /src/core/cf-secret/cf-secret.c:538,1
    - Dst: fgetc
      Src: /src/core/cf-secret/cf-secret.c:546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - input_file
    - buffer
    - max_chars
    - delimiter
    - stop_on_space
    argTypes:
    - FILE*
    - char*
    - size_t
    - char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 554
    functionName: ReadUntilDelim
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - fgetc
    - ungetc
    linkageType: ''
    returnType: bool
    signature: bool ReadUntilDelim(FILE *input_file, char *buffer, size_t max_chars,
      char delimiter, bool stop_on_space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: feof
      Src: /src/core/cf-secret/cf-secret.c:559,1
    - Dst: fgetc
      Src: /src/core/cf-secret/cf-secret.c:561,1
    - Dst: ungetc
      Src: /src/core/cf-secret/cf-secret.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - input_file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 567
    functionName: SkipSpaces
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - fgetc
    - ungetc
    - feof
    linkageType: ''
    returnType: void
    signature: void SkipSpaces(FILE *input_file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadUntilDelim
      Src: /src/core/cf-secret/cf-secret.c:571,1
    - Dst: SkipSpaces
      Src: /src/core/cf-secret/cf-secret.c:574,1
    - Dst: fgetc
      Src: /src/core/cf-secret/cf-secret.c:575,1
    - Dst: SkipSpaces
      Src: /src/core/cf-secret/cf-secret.c:576,1
    - Dst: ReadUntilDelim
      Src: /src/core/cf-secret/cf-secret.c:577,1
    - Dst: fgetc
      Src: /src/core/cf-secret/cf-secret.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - input_file
    - key
    - value
    argTypes:
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 581
    functionName: ParseHeader
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - ReadUntilDelim
    - SkipSpaces
    - fgetc
    linkageType: ''
    returnType: bool
    signature: bool ParseHeader(FILE *input_file, char *key, char *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/core/cf-secret/cf-secret.c:585,1
    - Dst: assert
      Src: /src/core/cf-secret/cf-secret.c:586,1
    - Dst: GetPubkeyDigest
      Src: /src/core/cf-secret/cf-secret.c:594,1
    - Dst: ParseHeader
      Src: /src/core/cf-secret/cf-secret.c:602,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:604,1
    - Dst: CheckHeader
      Src: /src/core/cf-secret/cf-secret.c:605,1
    - Dst: free
      Src: /src/core/cf-secret/cf-secret.c:607,1
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:611,1
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:615,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:617,1
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:618,1
    - Dst: fgetc
      Src: /src/core/cf-secret/cf-secret.c:627,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:632,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:636,1
    - Dst: free
      Src: /src/core/cf-secret/cf-secret.c:639,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:644,1
    - Dst: free
      Src: /src/core/cf-secret/cf-secret.c:645,1
    - Dst: ungetc
      Src: /src/core/cf-secret/cf-secret.c:651,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:654,1
    - Dst: free
      Src: /src/core/cf-secret/cf-secret.c:655,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 4
    argNames:
    - input_file
    - privkey
    - enc_key_pos
    - n_enc_keys
    argTypes:
    - FILE*
    - RSA*
    - size_t*
    - size_t*
    assertStmts:
    - condition: (n_enc_keys != NULL)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/core/cf-secret/cf-secret.c
    - condition: (enc_key_pos != NULL)
      pos:
        line_end: 584
        line_start: 584
        source_file: /src/core/cf-secret/cf-secret.c
    constantsTouched: []
    func_position:
      end: 657
      start: 583
    functionDepth: 9
    functionLinenumber: 583
    functionLinenumberEnd: 657
    functionName: ParseHeaders
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - CheckHeader
    - StringEqual
    - assert
    - ungetc
    - Log
    - ParseHeader
    - free
    - fgetc
    - GetPubkeyDigest
    linkageType: ''
    returnType: bool
    signature: bool ParseHeaders(FILE *input_file, RSA *privkey, size_t *enc_key_pos,
      size_t *n_enc_keys)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: OpenInputOutput
      Src: /src/core/cf-secret/cf-secret.c:661,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:664,1
    - Dst: OpenInputOutput
      Src: /src/core/cf-secret/cf-secret.c:668,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:671,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:672,1
    - Dst: EVP_PKEY_new
      Src: /src/core/cf-secret/cf-secret.c:676,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/core/cf-secret/cf-secret.c:677,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:679,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:680,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:681,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:687,1
    - Dst: ParseHeaders
      Src: /src/core/cf-secret/cf-secret.c:690,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:692,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:693,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:696,1
    - Dst: EVP_aes_256_cbc
      Src: /src/core/cf-secret/cf-secret.c:698,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/core/cf-secret/cf-secret.c:699,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/core/cf-secret/cf-secret.c:701,1
    - Dst: EVP_PKEY_size
      Src: /src/core/cf-secret/cf-secret.c:704,1
    - Dst: EVP_CIPHER_block_size
      Src: /src/core/cf-secret/cf-secret.c:708,1
    - Dst: ReadFileStreamToBuffer
      Src: /src/core/cf-secret/cf-secret.c:713,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:716,1
    - Dst: ReadFileStreamToBuffer
      Src: /src/core/cf-secret/cf-secret.c:724,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:727,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:730,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:733,1
    - Dst: ReadFileStreamToBuffer
      Src: /src/core/cf-secret/cf-secret.c:734,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:737,1
    - Dst: ReadFileStreamToBuffer
      Src: /src/core/cf-secret/cf-secret.c:744,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:747,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:750,1
    - Dst: EVP_OpenInit
      Src: /src/core/cf-secret/cf-secret.c:753,1
    - Dst: GetPubkeyDigest
      Src: /src/core/cf-secret/cf-secret.c:756,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:757,1
    - Dst: free
      Src: /src/core/cf-secret/cf-secret.c:758,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:763,1
    - Dst: feof
      Src: /src/core/cf-secret/cf-secret.c:766,1
    - Dst: ReadFileStreamToBuffer
      Src: /src/core/cf-secret/cf-secret.c:768,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:771,1
    - Dst: EVP_OpenUpdate
      Src: /src/core/cf-secret/cf-secret.c:775,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:778,1
    - Dst: ERR_error_string
      Src: /src/core/cf-secret/cf-secret.c:779,1
    - Dst: ERR_get_error
      Src: /src/core/cf-secret/cf-secret.c:779,1
    - Dst: FullWrite
      Src: /src/core/cf-secret/cf-secret.c:783,1
    - Dst: fileno
      Src: /src/core/cf-secret/cf-secret.c:783,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:786,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:791,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:793,1
    - Dst: EVP_OpenFinal
      Src: /src/core/cf-secret/cf-secret.c:794,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:797,1
    - Dst: ERR_error_string
      Src: /src/core/cf-secret/cf-secret.c:798,1
    - Dst: ERR_get_error
      Src: /src/core/cf-secret/cf-secret.c:798,1
    - Dst: FullWrite
      Src: /src/core/cf-secret/cf-secret.c:803,1
    - Dst: fileno
      Src: /src/core/cf-secret/cf-secret.c:803,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:806,1
    - Dst: OPENSSL_cleanse
      Src: /src/core/cf-secret/cf-secret.c:810,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:813,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:814,1
    - Dst: EVP_PKEY_free
      Src: /src/core/cf-secret/cf-secret.c:815,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/core/cf-secret/cf-secret.c:816,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 105
    argCount: 3
    argNames:
    - privkey
    - input_path
    - output_path
    argTypes:
    - RSA*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 659
    functionDepth: 10
    functionLinenumber: 659
    functionLinenumberEnd: 818
    functionName: RSADecrypt
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - OpenInputOutput
    - feof
    - Log
    - fclose
    - EVP_aes_256_cbc
    - free
    - EVP_CIPHER_iv_length
    - ParseHeaders
    - FullWrite
    - fileno
    - EVP_OpenFinal
    - EVP_CIPHER_CTX_free
    - EVP_PKEY_set1_RSA
    - ReadFileStreamToBuffer
    - OPENSSL_cleanse
    - EVP_OpenUpdate
    - ERR_get_error
    - GetPubkeyDigest
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_block_size
    - EVP_PKEY_free
    - EVP_OpenInit
    - EVP_PKEY_new
    - EVP_PKEY_size
    - ERR_error_string
    linkageType: ''
    returnType: bool
    signature: bool RSADecrypt(RSA *privkey, const char *input_path, const char *output_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SeqLength
      Src: /src/core/cf-secret/cf-secret.c:822,1
    - Dst: SeqNew
      Src: /src/core/cf-secret/cf-secret.c:823,1
    - Dst: SeqAt
      Src: /src/core/cf-secret/cf-secret.c:826,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:827,1
    - Dst: ReadPublicKey
      Src: /src/core/cf-secret/cf-secret.c:828,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:831,1
    - Dst: SeqAppend
      Src: /src/core/cf-secret/cf-secret.c:834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - key_paths
    argTypes:
    - Seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 820
    functionDepth: 9
    functionLinenumber: 820
    functionLinenumberEnd: 837
    functionName: LoadPublicKeys
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - SeqDestroy
    - ReadPublicKey
    - SeqAppend
    - SeqNew
    - Log
    - SeqLength
    - SeqAt
    linkageType: ''
    returnType: Seq
    signature: Seq *LoadPublicKeys(Seq *key_paths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileWriter
      Src: /src/core/cf-secret/cf-secret.c:841,1
    - Dst: WriterWriteHelp
      Src: /src/core/cf-secret/cf-secret.c:842,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-secret/cf-secret.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 839
    functionDepth: 4
    functionLinenumber: 839
    functionLinenumberEnd: 844
    functionName: CFKeyCryptHelp
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - FileWriterDetach
    - WriterWriteHelp
    linkageType: ''
    returnType: void
    signature: void CFKeyCryptHelp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FileWriter
      Src: /src/core/cf-secret/cf-secret.c:848,1
    - Dst: ManPageWrite
      Src: /src/core/cf-secret/cf-secret.c:849,1
    - Dst: time
      Src: /src/core/cf-secret/cf-secret.c:849,1
    - Dst: FileWriterDetach
      Src: /src/core/cf-secret/cf-secret.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 846
    functionDepth: 4
    functionLinenumber: 846
    functionLinenumberEnd: 854
    functionName: CFKeyCryptMan
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 0
    functionsReached:
    - FileWriter
    - FileWriterDetach
    - ManPageWrite
    - time
    linkageType: ''
    returnType: void
    signature: void CFKeyCryptMan()
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: CFKeyCryptHelp
      Src: /src/core/cf-secret/cf-secret.c:860,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:861,1
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:874,1
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:879,1
    - Dst: StringEqual
      Src: /src/core/cf-secret/cf-secret.c:884,1
    - Dst: getopt_long
      Src: /src/core/cf-secret/cf-secret.c:891,1
    - Dst: CFKeyCryptHelp
      Src: /src/core/cf-secret/cf-secret.c:896,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:897,1
    - Dst: CFKeyCryptMan
      Src: /src/core/cf-secret/cf-secret.c:900,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:901,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-secret/cf-secret.c:904,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:905,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-secret/cf-secret.c:908,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:909,1
    - Dst: LogSetGlobalLevel
      Src: /src/core/cf-secret/cf-secret.c:912,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:913,1
    - Dst: LogSetGlobalLevelArgOrExit
      Src: /src/core/cf-secret/cf-secret.c:916,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:928,1
    - Dst: CFKeyCryptHelp
      Src: /src/core/cf-secret/cf-secret.c:929,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:930,1
    - Dst: printf
      Src: /src/core/cf-secret/cf-secret.c:936,1
    - Dst: CFKeyCryptHelp
      Src: /src/core/cf-secret/cf-secret.c:937,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:938,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:948,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:949,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:956,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:957,1
    - Dst: OpenInputOutput
      Src: /src/core/cf-secret/cf-secret.c:959,1
    - Dst: ParseHeader
      Src: /src/core/cf-secret/cf-secret.c:964,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:966,1
    - Dst: CheckHeader
      Src: /src/core/cf-secret/cf-secret.c:967,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:969,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:970,1
    - Dst: printf
      Src: /src/core/cf-secret/cf-secret.c:972,1
    - Dst: fgetc
      Src: /src/core/cf-secret/cf-secret.c:975,1
    - Dst: ungetc
      Src: /src/core/cf-secret/cf-secret.c:982,1
    - Dst: fclose
      Src: /src/core/cf-secret/cf-secret.c:985,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:986,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:992,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:998,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:1000,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1005,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:1006,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1010,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:1011,1
    - Dst: CryptoInitialize
      Src: /src/core/cf-secret/cf-secret.c:1014,1
    - Dst: GenericAgentSetDefaultDigest
      Src: /src/core/cf-secret/cf-secret.c:1015,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1020,1
    - Dst: SeqStringFromString
      Src: /src/core/cf-secret/cf-secret.c:1021,1
    - Dst: SeqNew
      Src: /src/core/cf-secret/cf-secret.c:1025,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1030,1
    - Dst: SeqStringFromString
      Src: /src/core/cf-secret/cf-secret.c:1031,1
    - Dst: SeqLength
      Src: /src/core/cf-secret/cf-secret.c:1032,1
    - Dst: SeqAt
      Src: /src/core/cf-secret/cf-secret.c:1036,1
    - Dst: GetHostRSAKey
      Src: /src/core/cf-secret/cf-secret.c:1037,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1040,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:1041,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:1042,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:1043,1
    - Dst: SeqAppend
      Src: /src/core/cf-secret/cf-secret.c:1045,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:1047,1
    - Dst: assert
      Src: /src/core/cf-secret/cf-secret.c:1049,1
    - Dst: SeqLength
      Src: /src/core/cf-secret/cf-secret.c:1049,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1055,1
    - Dst: LoadPublicKeys
      Src: /src/core/cf-secret/cf-secret.c:1056,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:1057,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1060,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:1061,1
    - Dst: RSAEncrypt
      Src: /src/core/cf-secret/cf-secret.c:1064,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:1065,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1068,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:1069,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1074,1
    - Dst: SeqLength
      Src: /src/core/cf-secret/cf-secret.c:1075,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1078,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:1079,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:1080,1
    - Dst: ReadPrivateKey
      Src: /src/core/cf-secret/cf-secret.c:1082,1
    - Dst: SeqAt
      Src: /src/core/cf-secret/cf-secret.c:1082,1
    - Dst: SeqDestroy
      Src: /src/core/cf-secret/cf-secret.c:1083,1
    - Dst: RSADecrypt
      Src: /src/core/cf-secret/cf-secret.c:1084,1
    - Dst: RSA_free
      Src: /src/core/cf-secret/cf-secret.c:1085,1
    - Dst: Log
      Src: /src/core/cf-secret/cf-secret.c:1088,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:1089,1
    - Dst: ProgrammingError
      Src: /src/core/cf-secret/cf-secret.c:1094,1
    - Dst: DoCleanupAndExit
      Src: /src/core/cf-secret/cf-secret.c:1095,1
    - Dst: CallCleanupFunctions
      Src: /src/core/cf-secret/cf-secret.c:1098,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 162
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: ((key_paths != NULL) && (SeqLength(key_paths) > 0))
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/core/cf-secret/cf-secret.c
    constantsTouched: []
    func_position:
      end: 1100
      start: 856
    functionDepth: 11
    functionLinenumber: 856
    functionLinenumberEnd: 1100
    functionName: main
    functionSourceFile: /src/core/cf-secret/cf-secret.c
    functionUses: 3
    functionsReached:
    - ReadPrivateKey
    - OpenInputOutput
    - CheckHeader
    - CallCleanupFunctions
    - Log
    - ParseHeader
    - fclose
    - RSA_free
    - SeqLength
    - SeqStringFromString
    - StringEqual
    - SeqAppend
    - RSADecrypt
    - SeqDestroy
    - ungetc
    - SeqAt
    - assert
    - LogSetGlobalLevel
    - printf
    - SeqNew
    - getopt_long
    - CFKeyCryptMan
    - DoCleanupAndExit
    - LoadPublicKeys
    - CFKeyCryptHelp
    - RSAEncrypt
    - GenericAgentSetDefaultDigest
    - GetHostRSAKey
    - LogSetGlobalLevelArgOrExit
    - ProgrammingError
    - CryptoInitialize
    - fgetc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: weaksum_init
      Src: /src/librsync/tests/checksum_test.c:43,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:44,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:45,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:45,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:46,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:46,1
    - Dst: mix32
      Src: /src/librsync/tests/checksum_test.c:46,1
    - Dst: weaksum_rollin
      Src: /src/librsync/tests/checksum_test.c:49,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:50,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:50,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:51,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:51,1
    - Dst: mix32
      Src: /src/librsync/tests/checksum_test.c:51,1
    - Dst: weaksum_rollin
      Src: /src/librsync/tests/checksum_test.c:52,1
    - Dst: weaksum_rollin
      Src: /src/librsync/tests/checksum_test.c:53,1
    - Dst: weaksum_rollin
      Src: /src/librsync/tests/checksum_test.c:54,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:55,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:55,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:56,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:56,1
    - Dst: mix32
      Src: /src/librsync/tests/checksum_test.c:56,1
    - Dst: weaksum_rotate
      Src: /src/librsync/tests/checksum_test.c:59,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:60,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:60,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:61,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:61,1
    - Dst: mix32
      Src: /src/librsync/tests/checksum_test.c:61,1
    - Dst: weaksum_rotate
      Src: /src/librsync/tests/checksum_test.c:62,1
    - Dst: weaksum_rotate
      Src: /src/librsync/tests/checksum_test.c:63,1
    - Dst: weaksum_rotate
      Src: /src/librsync/tests/checksum_test.c:64,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:65,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:65,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:66,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:66,1
    - Dst: mix32
      Src: /src/librsync/tests/checksum_test.c:66,1
    - Dst: weaksum_rollout
      Src: /src/librsync/tests/checksum_test.c:69,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:70,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:70,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:71,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:71,1
    - Dst: mix32
      Src: /src/librsync/tests/checksum_test.c:71,1
    - Dst: weaksum_rollout
      Src: /src/librsync/tests/checksum_test.c:72,1
    - Dst: weaksum_rollout
      Src: /src/librsync/tests/checksum_test.c:73,1
    - Dst: weaksum_rollout
      Src: /src/librsync/tests/checksum_test.c:74,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:75,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:75,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:76,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:76,1
    - Dst: mix32
      Src: /src/librsync/tests/checksum_test.c:76,1
    - Dst: weaksum_update
      Src: /src/librsync/tests/checksum_test.c:79,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:80,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:80,1
    - Dst: mix32
      Src: /src/librsync/tests/checksum_test.c:80,1
    - Dst: weaksum_reset
      Src: /src/librsync/tests/checksum_test.c:83,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:84,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:85,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:85,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:86,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:86,1
    - Dst: mix32
      Src: /src/librsync/tests/checksum_test.c:86,1
    - Dst: weaksum_init
      Src: /src/librsync/tests/checksum_test.c:91,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:92,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:93,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:93,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:94,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:94,1
    - Dst: weaksum_rollin
      Src: /src/librsync/tests/checksum_test.c:97,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:98,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:98,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:99,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:99,1
    - Dst: weaksum_rollin
      Src: /src/librsync/tests/checksum_test.c:100,1
    - Dst: weaksum_rollin
      Src: /src/librsync/tests/checksum_test.c:101,1
    - Dst: weaksum_rollin
      Src: /src/librsync/tests/checksum_test.c:102,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:103,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:103,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:104,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:104,1
    - Dst: weaksum_rotate
      Src: /src/librsync/tests/checksum_test.c:107,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:108,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:108,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:109,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:109,1
    - Dst: weaksum_rotate
      Src: /src/librsync/tests/checksum_test.c:110,1
    - Dst: weaksum_rotate
      Src: /src/librsync/tests/checksum_test.c:111,1
    - Dst: weaksum_rotate
      Src: /src/librsync/tests/checksum_test.c:112,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:113,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:113,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:114,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:114,1
    - Dst: weaksum_rollout
      Src: /src/librsync/tests/checksum_test.c:117,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:118,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:118,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:119,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:119,1
    - Dst: weaksum_rollout
      Src: /src/librsync/tests/checksum_test.c:120,1
    - Dst: weaksum_rollout
      Src: /src/librsync/tests/checksum_test.c:121,1
    - Dst: weaksum_rollout
      Src: /src/librsync/tests/checksum_test.c:122,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:123,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:123,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:124,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:124,1
    - Dst: weaksum_update
      Src: /src/librsync/tests/checksum_test.c:127,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:128,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:128,1
    - Dst: weaksum_reset
      Src: /src/librsync/tests/checksum_test.c:131,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:132,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:133,1
    - Dst: weaksum_count
      Src: /src/librsync/tests/checksum_test.c:133,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:134,1
    - Dst: weaksum_digest
      Src: /src/librsync/tests/checksum_test.c:134,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:137,1
    - Dst: rs_calc_weak_sum
      Src: /src/librsync/tests/checksum_test.c:137,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:138,1
    - Dst: rs_calc_weak_sum
      Src: /src/librsync/tests/checksum_test.c:138,1
    - Dst: rs_calc_strong_sum
      Src: /src/librsync/tests/checksum_test.c:153,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:154,1
    - Dst: memcmp
      Src: /src/librsync/tests/checksum_test.c:154,1
    - Dst: rs_calc_strong_sum
      Src: /src/librsync/tests/checksum_test.c:155,1
    - Dst: assert
      Src: /src/librsync/tests/checksum_test.c:156,1
    - Dst: memcmp
      Src: /src/librsync/tests/checksum_test.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (weaksum_count(&r) == 0)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == mix32(0x00000000))
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 1)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == mix32(0x001f001f))
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 4)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == mix32(0x014a0086))
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == mix32(0x00dc006f))
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 3)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == 0x08104225)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == mix32(0x01400082))
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 4)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == 0x00000001)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 0)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (r.kind == RS_RABINKARP)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == 0xc1972381)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (!memcmp(sum, bk2, RS_BLAKE2_SUM_LENGTH))
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 4)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == 0xaf981e97)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (r.kind == RS_ROLLSUM)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (rs_calc_weak_sum(RS_ROLLSUM, buf, 256) == 0x3a009e80)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 0)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 4)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 3)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (rs_calc_weak_sum(RS_RABINKARP, buf, 256) == 0xc1972381)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == mix32(0x00000000))
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == mix32(0x01680092))
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 4)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (!memcmp(sum, md4, RS_MD4_SUM_LENGTH))
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 0)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (r.kind == RS_ROLLSUM)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 1)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 0)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == 0x00000001)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == mix32(0x00000000))
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == mix32(0x3a009e80))
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 0)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == 0xe2ef15f3)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == 0xf284a77f)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_count(&r) == 4)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == 0x7cf3fc07)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (r.kind == RS_RABINKARP)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/librsync/tests/checksum_test.c
    - condition: (weaksum_digest(&r) == 0x00000001)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/librsync/tests/checksum_test.c
    constantsTouched: []
    func_position:
      end: 158
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 158
    functionName: main
    functionSourceFile: /src/librsync/tests/checksum_test.c
    functionUses: 3
    functionsReached:
    - rs_calc_strong_sum
    - mix32
    - weaksum_digest
    - assert
    - weaksum_rotate
    - weaksum_reset
    - weaksum_count
    - weaksum_rollout
    - weaksum_rollin
    - rs_calc_weak_sum
    - memcmp
    - weaksum_update
    - weaksum_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rabinkarp_init
      Src: /src/librsync/tests/rabinkarp_perf.c:33,1
    - Dst: fread
      Src: /src/librsync/tests/rabinkarp_perf.c:35,1
    - Dst: rabinkarp_update
      Src: /src/librsync/tests/rabinkarp_perf.c:36,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/tests/rabinkarp_perf.c:38,1
    - Dst: printf
      Src: /src/librsync/tests/rabinkarp_perf.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: main
    functionSourceFile: /src/librsync/tests/rabinkarp_perf.c
    functionUses: 3
    functionsReached:
    - rabinkarp_update
    - rabinkarp_digest
    - fread
    - printf
    - rabinkarp_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:52,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:53,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:54,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:55,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:56,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:62,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:63,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:64,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:65,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:66,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:72,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:73,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:74,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:75,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:76,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:82,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:83,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:84,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:85,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:86,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:92,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:93,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:94,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:95,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:96,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:102,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:103,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:104,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:105,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:106,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:112,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:113,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:114,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:115,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:116,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:122,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:123,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:124,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:125,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:126,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:132,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:133,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:134,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:135,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:136,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:142,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:143,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:149,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:150,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:154,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:155,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:159,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:160,1
    - Dst: rs_sig_args
      Src: /src/librsync/tests/sumset_test.c:164,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:165,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:169,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:170,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:171,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:172,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:173,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:174,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:175,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:176,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:177,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:179,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:183,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:184,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:185,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:186,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:187,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:190,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:191,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:192,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:193,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:194,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:197,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:198,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:199,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:200,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:201,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:204,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:205,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:206,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:207,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:208,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:211,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:212,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:215,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:216,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:217,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:218,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:219,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:220,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:221,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:222,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:225,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:226,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:227,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:228,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:229,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:230,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:231,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:232,1
    - Dst: rs_signature_done
      Src: /src/librsync/tests/sumset_test.c:235,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:236,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:237,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:240,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:241,1
    - Dst: rs_signature_calc_strong_sum
      Src: /src/librsync/tests/sumset_test.c:242,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:243,1
    - Dst: memcmp
      Src: /src/librsync/tests/sumset_test.c:243,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:245,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:246,1
    - Dst: rs_signature_calc_strong_sum
      Src: /src/librsync/tests/sumset_test.c:247,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:248,1
    - Dst: memcmp
      Src: /src/librsync/tests/sumset_test.c:248,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:251,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:252,1
    - Dst: rs_signature_add_block
      Src: /src/librsync/tests/sumset_test.c:253,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:254,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:255,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:256,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:257,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:258,1
    - Dst: memcmp
      Src: /src/librsync/tests/sumset_test.c:258,1
    - Dst: rs_signature_done
      Src: /src/librsync/tests/sumset_test.c:260,1
    - Dst: rs_signature_init
      Src: /src/librsync/tests/sumset_test.c:263,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:264,1
    - Dst: rs_signature_calc_weak_sum
      Src: /src/librsync/tests/sumset_test.c:266,1
    - Dst: rs_signature_calc_strong_sum
      Src: /src/librsync/tests/sumset_test.c:267,1
    - Dst: rs_signature_add_block
      Src: /src/librsync/tests/sumset_test.c:268,1
    - Dst: rs_build_hash_table
      Src: /src/librsync/tests/sumset_test.c:272,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:273,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:277,1
    - Dst: rs_signature_find_match
      Src: /src/librsync/tests/sumset_test.c:277,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:279,1
    - Dst: rs_signature_find_match
      Src: /src/librsync/tests/sumset_test.c:279,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:281,1
    - Dst: rs_signature_find_match
      Src: /src/librsync/tests/sumset_test.c:281,1
    - Dst: assert
      Src: /src/librsync/tests/sumset_test.c:283,1
    - Dst: rs_signature_done
      Src: /src/librsync/tests/sumset_test.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 183
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (magic == RS_MD4_SIG_MAGIC)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (strong_len == 7)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.magic == RS_RK_BLAKE2_SIG_MAGIC)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_sigs == NULL)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (((rs_block_sig_t *)sig.block_sigs)->weak_sum == 0x12345678)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_BAD_MAGIC)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (block_len == 2048)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.magic == RS_RK_MD4_SIG_MAGIC)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/librsync/tests/sumset_test.c
    - condition: "(memcmp(((rs_block_sig_t *)sig.block_sigs)->strong_sum, &strong,
        6)\n           == 0)"
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (magic == RS_MD4_SIG_MAGIC)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (magic == RS_BLAKE2_SIG_MAGIC)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (strong_len == 5)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.magic == RS_RK_BLAKE2_SIG_MAGIC)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_len == 16)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (rs_signature_find_match(&sig, 0x12345678, &buf[2], 16) == -1)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (block_len == 256)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_len == 16)
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_PARAM_ERROR)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.size == 0)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (magic == RS_RK_BLAKE2_SIG_MAGIC)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (strong_len == 16)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_BAD_MAGIC)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.calc_strong_count == 0)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (block_len == 896)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.size == 0)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_PARAM_ERROR)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_PARAM_ERROR)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (strong_len == 32)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (magic == RS_RK_MD4_SIG_MAGIC)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (block_len == 256)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (memcmp(&strong, "\x29\x8a\x05\xbc\x50\x6e", 6) == 0)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (magic == RS_RK_MD4_SIG_MAGIC)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (strong_len == 8)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_PARAM_ERROR)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_PARAM_ERROR)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.strong_sum_len == 32)
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.size == 8)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (block_len == 896)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.strong_sum_len == 32)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.strong_sum_len == 16)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_sigs != NULL)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (magic == RS_RK_BLAKE2_SIG_MAGIC)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (strong_len == 8)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (strong_len == 8)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_sigs == NULL)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (rs_signature_find_match(&sig, weak, &buf[15 * 16], 16) == 15 * 16)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.count == 0)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (block_len == 2048)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.hashtable == NULL)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (memcmp(&strong, "\x39\xa7\xeb\x9f\xed\xc1", 6) == 0)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (magic == RS_RK_BLAKE2_SIG_MAGIC)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (strong_len == 12)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_PARAM_ERROR)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_len == 16)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.strong_sum_len == 6)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.count == 1)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (rs_signature_find_match(&sig, weak, &buf[2], 16) == -1)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (block_len == 1000)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.magic == RS_RK_BLAKE2_SIG_MAGIC)
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.magic == RS_MD4_SIG_MAGIC)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.strong_sum_len == 6)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_sigs != NULL)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.hashtable->count == 16)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_len == 2048)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (strong_len == 32)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (magic == RS_BLAKE2_SIG_MAGIC)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.magic == RS_BLAKE2_SIG_MAGIC)
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.strong_sum_len == 12)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.count == 0)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.size == 16)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_len == 2048)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.block_len == 2048)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (block_len == 1000)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_DONE)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (block_len == 1000)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_PARAM_ERROR)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (res == RS_PARAM_ERROR)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/librsync/tests/sumset_test.c
    - condition: (sig.calc_strong_count == 2)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/librsync/tests/sumset_test.c
    constantsTouched: []
    func_position:
      end: 288
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 288
    functionName: main
    functionSourceFile: /src/librsync/tests/sumset_test.c
    functionUses: 3
    functionsReached:
    - rs_signature_init
    - rs_signature_calc_weak_sum
    - assert
    - rs_signature_find_match
    - rs_signature_done
    - rs_signature_add_block
    - rs_build_hash_table
    - rs_sig_args
    - memcmp
    - rs_signature_calc_strong_sum
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/tests/isprefix_test.c:29,1
    - Dst: isprefix
      Src: /src/librsync/tests/isprefix_test.c:29,1
    - Dst: assert
      Src: /src/librsync/tests/isprefix_test.c:30,1
    - Dst: isprefix
      Src: /src/librsync/tests/isprefix_test.c:30,1
    - Dst: assert
      Src: /src/librsync/tests/isprefix_test.c:31,1
    - Dst: isprefix
      Src: /src/librsync/tests/isprefix_test.c:31,1
    - Dst: assert
      Src: /src/librsync/tests/isprefix_test.c:32,1
    - Dst: isprefix
      Src: /src/librsync/tests/isprefix_test.c:32,1
    - Dst: assert
      Src: /src/librsync/tests/isprefix_test.c:33,1
    - Dst: isprefix
      Src: /src/librsync/tests/isprefix_test.c:33,1
    - Dst: assert
      Src: /src/librsync/tests/isprefix_test.c:35,1
    - Dst: isprefix
      Src: /src/librsync/tests/isprefix_test.c:35,1
    - Dst: assert
      Src: /src/librsync/tests/isprefix_test.c:36,1
    - Dst: isprefix
      Src: /src/librsync/tests/isprefix_test.c:36,1
    - Dst: assert
      Src: /src/librsync/tests/isprefix_test.c:37,1
    - Dst: isprefix
      Src: /src/librsync/tests/isprefix_test.c:37,1
    - Dst: assert
      Src: /src/librsync/tests/isprefix_test.c:38,1
    - Dst: isprefix
      Src: /src/librsync/tests/isprefix_test.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (isprefix("foo", "foobar"))
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/librsync/tests/isprefix_test.c
    - condition: (isprefix("foobar", "foobar"))
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/librsync/tests/isprefix_test.c
    - condition: (isprefix("", "foobar"))
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/librsync/tests/isprefix_test.c
    - condition: (isprefix("", ""))
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/librsync/tests/isprefix_test.c
    - condition: (isprefix("f", "foorbar"))
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/librsync/tests/isprefix_test.c
    - condition: (!isprefix("goo", "foo"))
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/librsync/tests/isprefix_test.c
    - condition: (!isprefix("f", "g"))
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/librsync/tests/isprefix_test.c
    - condition: (!isprefix("foobar", "foo"))
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/librsync/tests/isprefix_test.c
    - condition: (!isprefix("foo", ""))
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librsync/tests/isprefix_test.c
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: main
    functionSourceFile: /src/librsync/tests/isprefix_test.c
    functionUses: 3
    functionsReached:
    - assert
    - isprefix
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - i
    argTypes:
    - mykey_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: mykey_init
    functionSourceFile: /src/librsync/tests/hashtable_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mykey_init(mykey_t *k, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - mykey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: mykey_hash
    functionSourceFile: /src/librsync/tests/hashtable_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mykey_hash(const mykey_t *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - o
    argTypes:
    - mykey_t*
    - mykey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: mykey_cmp
    functionSourceFile: /src/librsync/tests/hashtable_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mykey_cmp(mykey_t *k, const mykey_t *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mykey_init
      Src: /src/librsync/tests/hashtable_test.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - i
    argTypes:
    - myentry_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: myentry_init
    functionSourceFile: /src/librsync/tests/hashtable_test.c
    functionUses: 0
    functionsReached:
    - mykey_init
    linkageType: ''
    returnType: void
    signature: void myentry_init(myentry_t *e, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mykey_init
      Src: /src/librsync/tests/hashtable_test.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - m
    - i
    argTypes:
    - mymatch_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: mymatch_init
    functionSourceFile: /src/librsync/tests/hashtable_test.c
    functionUses: 0
    functionsReached:
    - mykey_init
    linkageType: ''
    returnType: void
    signature: void mymatch_init(mymatch_t *m, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mykey_cmp
      Src: /src/librsync/tests/hashtable_test.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - m
    - e
    argTypes:
    - mymatch_t*
    - myentry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: mymatch_cmp
    functionSourceFile: /src/librsync/tests/hashtable_test.c
    functionUses: 0
    functionsReached:
    - mykey_cmp
    linkageType: ''
    returnType: int
    signature: int mymatch_cmp(mymatch_t *m, const myentry_t *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mykey_init
      Src: /src/librsync/tests/hashtable_test.c:106,1
    - Dst: mykey_init
      Src: /src/librsync/tests/hashtable_test.c:107,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:108,1
    - Dst: mykey_hashtable_new
      Src: /src/librsync/tests/hashtable_test.c:108,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:109,1
    - Dst: mykey_hashtable_add
      Src: /src/librsync/tests/hashtable_test.c:109,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:110,1
    - Dst: mykey_hashtable_find
      Src: /src/librsync/tests/hashtable_test.c:110,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:111,1
    - Dst: mykey_hashtable_find
      Src: /src/librsync/tests/hashtable_test.c:111,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:112,1
    - Dst: mykey_hashtable_iter
      Src: /src/librsync/tests/hashtable_test.c:112,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:113,1
    - Dst: mykey_hashtable_next
      Src: /src/librsync/tests/hashtable_test.c:113,1
    - Dst: myentry_init
      Src: /src/librsync/tests/hashtable_test.c:122,1
    - Dst: myentry_init
      Src: /src/librsync/tests/hashtable_test.c:124,1
    - Dst: myhashtable_new
      Src: /src/librsync/tests/hashtable_test.c:127,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:128,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:129,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:130,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:131,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:134,1
    - Dst: myhashtable_add
      Src: /src/librsync/tests/hashtable_test.c:134,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:135,1
    - Dst: myhashtable_add
      Src: /src/librsync/tests/hashtable_test.c:135,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:138,1
    - Dst: myhashtable_add
      Src: /src/librsync/tests/hashtable_test.c:138,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:139,1
    - Dst: mymatch_init
      Src: /src/librsync/tests/hashtable_test.c:142,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:143,1
    - Dst: myhashtable_find
      Src: /src/librsync/tests/hashtable_test.c:143,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:145,1
    - Dst: mymatch_init
      Src: /src/librsync/tests/hashtable_test.c:147,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:148,1
    - Dst: myhashtable_find
      Src: /src/librsync/tests/hashtable_test.c:148,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:149,1
    - Dst: mymatch_init
      Src: /src/librsync/tests/hashtable_test.c:151,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:152,1
    - Dst: myhashtable_find
      Src: /src/librsync/tests/hashtable_test.c:152,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:153,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:155,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:156,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:157,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:158,1
    - Dst: myhashtable_stats_init
      Src: /src/librsync/tests/hashtable_test.c:159,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:160,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:161,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:162,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:163,1
    - Dst: myhashtable_iter
      Src: /src/librsync/tests/hashtable_test.c:170,1
    - Dst: myhashtable_next
      Src: /src/librsync/tests/hashtable_test.c:171,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:172,1
    - Dst: assert
      Src: /src/librsync/tests/hashtable_test.c:175,1
    - Dst: myhashtable_free
      Src: /src/librsync/tests/hashtable_test.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (mykey_hashtable_add(kt, &k1) == &k1)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (mykey_hashtable_next(kt, &ki) == NULL)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->count == 0)
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (myhashtable_add(t, &e) == &e)
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (count == 258)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->entrycmp_count >= 256)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (p == &e || (&entry[0] <= p && p <= &entry[255]))
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (myhashtable_find(t, &m) == NULL)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (mykey_hashtable_iter(kt, &ki) == &k1)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->etable != NULL)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (myhashtable_find(t, &m) == &entry[i])
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (m.value == 0)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: ((kt = mykey_hashtable_new(16)) != NULL)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (mykey_hashtable_find(kt, &k1) == &k1)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->size == 512)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->ktable != NULL)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->count == 258)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (myhashtable_find(t, &m) == &e)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (m.value == m.source)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->match_count == 256)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (myhashtable_add(t, &entry[i]) == &entry[i])
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->find_count == 0)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (mykey_hashtable_find(kt, &k2) == NULL)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (myhashtable_add(t, &entry[0]) == &entry[0])
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (m.value == m.source)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->find_count == 257)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->match_count == 0)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->entrycmp_count == 0)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->hashcmp_count >= 256)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/librsync/tests/hashtable_test.c
    - condition: (t->hashcmp_count == 0)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/librsync/tests/hashtable_test.c
    constantsTouched: []
    func_position:
      end: 179
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 179
    functionName: main
    functionSourceFile: /src/librsync/tests/hashtable_test.c
    functionUses: 3
    functionsReached:
    - mykey_hashtable_new
    - myhashtable_find
    - mykey_hashtable_next
    - myhashtable_stats_init
    - assert
    - mykey_hashtable_add
    - myhashtable_add
    - mykey_hashtable_find
    - myhashtable_iter
    - mykey_hashtable_iter
    - myhashtable_new
    - myentry_init
    - mymatch_init
    - myhashtable_next
    - myhashtable_free
    - mykey_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rabinkarp_init
      Src: /src/librsync/tests/rabinkarp_test.c:34,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:35,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:36,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:37,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/tests/rabinkarp_test.c:37,1
    - Dst: rabinkarp_rollin
      Src: /src/librsync/tests/rabinkarp_test.c:40,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:41,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:42,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/tests/rabinkarp_test.c:42,1
    - Dst: rabinkarp_rollin
      Src: /src/librsync/tests/rabinkarp_test.c:43,1
    - Dst: rabinkarp_rollin
      Src: /src/librsync/tests/rabinkarp_test.c:44,1
    - Dst: rabinkarp_rollin
      Src: /src/librsync/tests/rabinkarp_test.c:45,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:46,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:47,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/tests/rabinkarp_test.c:47,1
    - Dst: rabinkarp_rotate
      Src: /src/librsync/tests/rabinkarp_test.c:50,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:51,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:52,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/tests/rabinkarp_test.c:52,1
    - Dst: rabinkarp_rotate
      Src: /src/librsync/tests/rabinkarp_test.c:53,1
    - Dst: rabinkarp_rotate
      Src: /src/librsync/tests/rabinkarp_test.c:54,1
    - Dst: rabinkarp_rotate
      Src: /src/librsync/tests/rabinkarp_test.c:55,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:56,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:57,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/tests/rabinkarp_test.c:57,1
    - Dst: rabinkarp_rollout
      Src: /src/librsync/tests/rabinkarp_test.c:60,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:61,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:62,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/tests/rabinkarp_test.c:62,1
    - Dst: rabinkarp_rollout
      Src: /src/librsync/tests/rabinkarp_test.c:63,1
    - Dst: rabinkarp_rollout
      Src: /src/librsync/tests/rabinkarp_test.c:64,1
    - Dst: rabinkarp_rollout
      Src: /src/librsync/tests/rabinkarp_test.c:65,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:66,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:67,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/tests/rabinkarp_test.c:67,1
    - Dst: rabinkarp_update
      Src: /src/librsync/tests/rabinkarp_test.c:72,1
    - Dst: assert
      Src: /src/librsync/tests/rabinkarp_test.c:73,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/tests/rabinkarp_test.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (rabinkarp_digest(&r) == 0xaf981e97)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (rabinkarp_digest(&r) == 0xe2ef15f3)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (rabinkarp_digest(&r) == 0xf284a77f)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (rabinkarp_digest(&r) == 0x00000001)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (rabinkarp_digest(&r) == 0xc1972381)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (r.hash == 1)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (rabinkarp_digest(&r) == 0x00000001)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (r.count == 4)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (r.count == 4)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (rabinkarp_digest(&r) == 0x7cf3fc07)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (r.count == 0)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (rabinkarp_digest(&r) == 0x08104225)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (r.count == 4)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (r.count == 0)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (r.count == 1)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/librsync/tests/rabinkarp_test.c
    - condition: (r.count == 3)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/librsync/tests/rabinkarp_test.c
    constantsTouched: []
    func_position:
      end: 75
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 75
    functionName: main
    functionSourceFile: /src/librsync/tests/rabinkarp_test.c
    functionUses: 3
    functionsReached:
    - rabinkarp_rotate
    - rabinkarp_rollin
    - rabinkarp_digest
    - rabinkarp_rollout
    - rabinkarp_update
    - assert
    - rabinkarp_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:31,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:31,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:32,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:32,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:33,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:33,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:34,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:34,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:35,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:35,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:36,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:36,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:38,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:38,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:39,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:39,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:40,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:40,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:43,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:43,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:44,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:44,1
    - Dst: assert
      Src: /src/librsync/tests/netint_test.c:45,1
    - Dst: rs_int_len
      Src: /src/librsync/tests/netint_test.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (rs_int_len((rs_long_t)1 << 8) == 2)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)1 << 15) == 2)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)1 << 16) == 4)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)INT64_MAX) == 8)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)1 << 31) == 4)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)1 << 32) == 8)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)INT8_MAX) == 1)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)1) == 1)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)0) == 1)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)1 << 7) == 1)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)INT16_MAX) == 2)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/librsync/tests/netint_test.c
    - condition: (rs_int_len((rs_long_t)INT32_MAX) == 4)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librsync/tests/netint_test.c
    constantsTouched: []
    func_position:
      end: 48
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 48
    functionName: main
    functionSourceFile: /src/librsync/tests/netint_test.c
    functionUses: 3
    functionsReached:
    - assert
    - rs_int_len
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RollsumInit
      Src: /src/librsync/tests/rollsum_test.c:35,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:36,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:37,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:38,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:39,1
    - Dst: RollsumDigest
      Src: /src/librsync/tests/rollsum_test.c:39,1
    - Dst: RollsumRollin
      Src: /src/librsync/tests/rollsum_test.c:42,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:43,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:44,1
    - Dst: RollsumDigest
      Src: /src/librsync/tests/rollsum_test.c:44,1
    - Dst: RollsumRollin
      Src: /src/librsync/tests/rollsum_test.c:45,1
    - Dst: RollsumRollin
      Src: /src/librsync/tests/rollsum_test.c:46,1
    - Dst: RollsumRollin
      Src: /src/librsync/tests/rollsum_test.c:47,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:48,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:49,1
    - Dst: RollsumDigest
      Src: /src/librsync/tests/rollsum_test.c:49,1
    - Dst: RollsumRotate
      Src: /src/librsync/tests/rollsum_test.c:52,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:53,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:54,1
    - Dst: RollsumDigest
      Src: /src/librsync/tests/rollsum_test.c:54,1
    - Dst: RollsumRotate
      Src: /src/librsync/tests/rollsum_test.c:55,1
    - Dst: RollsumRotate
      Src: /src/librsync/tests/rollsum_test.c:56,1
    - Dst: RollsumRotate
      Src: /src/librsync/tests/rollsum_test.c:57,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:58,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:59,1
    - Dst: RollsumDigest
      Src: /src/librsync/tests/rollsum_test.c:59,1
    - Dst: RollsumRollout
      Src: /src/librsync/tests/rollsum_test.c:62,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:63,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:64,1
    - Dst: RollsumDigest
      Src: /src/librsync/tests/rollsum_test.c:64,1
    - Dst: RollsumRollout
      Src: /src/librsync/tests/rollsum_test.c:65,1
    - Dst: RollsumRollout
      Src: /src/librsync/tests/rollsum_test.c:66,1
    - Dst: RollsumRollout
      Src: /src/librsync/tests/rollsum_test.c:67,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:68,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:69,1
    - Dst: RollsumDigest
      Src: /src/librsync/tests/rollsum_test.c:69,1
    - Dst: RollsumUpdate
      Src: /src/librsync/tests/rollsum_test.c:74,1
    - Dst: assert
      Src: /src/librsync/tests/rollsum_test.c:75,1
    - Dst: RollsumDigest
      Src: /src/librsync/tests/rollsum_test.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (r.s2 == 0)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (r.count == 0)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (RollsumDigest(&r) == 0x00000000)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (r.count == 4)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (r.count == 4)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (RollsumDigest(&r) == 0x01680092)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (r.count == 0)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (RollsumDigest(&r) == 0x01400082)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (RollsumDigest(&r) == 0x014a0086)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (RollsumDigest(&r) == 0x00000000)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (RollsumDigest(&r) == 0x3a009e80)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (r.s1 == 0)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (r.count == 1)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (r.count == 3)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (RollsumDigest(&r) == 0x001f001f)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (r.count == 4)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/librsync/tests/rollsum_test.c
    - condition: (RollsumDigest(&r) == 0x00dc006f)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/librsync/tests/rollsum_test.c
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/librsync/tests/rollsum_test.c
    functionUses: 3
    functionsReached:
    - RollsumUpdate
    - RollsumRollout
    - assert
    - RollsumDigest
    - RollsumRotate
    - RollsumRollin
    - RollsumInit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_format_stats
      Src: /src/librsync/src/stats.c:35,1
    - Dst: rs_log
      Src: /src/librsync/src/stats.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stats
    argTypes:
    - rs_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: rs_log_stats
    functionSourceFile: /src/librsync/src/stats.c
    functionUses: 0
    functionsReached:
    - rs_format_stats
    - rs_log
    linkageType: ''
    returnType: int
    signature: int rs_log_stats(rs_stats_t const *stats)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/librsync/src/stats.c:49,1
    - Dst: snprintf
      Src: /src/librsync/src/stats.c:53,1
    - Dst: snprintf
      Src: /src/librsync/src/stats.c:61,1
    - Dst: snprintf
      Src: /src/librsync/src/stats.c:68,1
    - Dst: snprintf
      Src: /src/librsync/src/stats.c:77,1
    - Dst: snprintf
      Src: /src/librsync/src/stats.c:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - stats
    - buf
    - size
    argTypes:
    - rs_stats_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 91
    functionName: rs_format_stats
    functionSourceFile: /src/librsync/src/stats.c
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *rs_format_stats(rs_stats_t const *stats, char *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - tip
    - iceberg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: isprefix
    functionSourceFile: /src/librsync/src/isprefix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isprefix(char const *tip, char const *iceberg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: DO1
    functionSourceFile: /src/librsync/src/rollsum.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO1(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: DO2
    functionSourceFile: /src/librsync/src/rollsum.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO2(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: DO4
    functionSourceFile: /src/librsync/src/rollsum.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO4(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: DO8
    functionSourceFile: /src/librsync/src/rollsum.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO8(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: DO16
    functionSourceFile: /src/librsync/src/rollsum.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO16(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO16
      Src: /src/librsync/src/rollsum.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - sum
    - buf
    - len
    argTypes:
    - Rollsum*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 55
    functionName: RollsumUpdate
    functionSourceFile: /src/librsync/src/rollsum.c
    functionUses: 1
    functionsReached:
    - DO16
    linkageType: ''
    returnType: void
    signature: void RollsumUpdate(Rollsum *sum, const unsigned char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RollsumInit
      Src: /src/librsync/src/checksum.h:67,1
    - Dst: rabinkarp_init
      Src: /src/librsync/src/checksum.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sum
    argTypes:
    - weaksum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: weaksum_reset
    functionSourceFile: /src/librsync/src/checksum.h
    functionUses: 1
    functionsReached:
    - RollsumInit
    - rabinkarp_init
    linkageType: ''
    returnType: void
    signature: void weaksum_reset(weaksum_t *sum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/checksum.h:74,1
    - Dst: weaksum_reset
      Src: /src/librsync/src/checksum.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sum
    - kind
    argTypes:
    - weaksum_t*
    - weaksum_kind_t
    assertStmts:
    - condition: (kind == RS_ROLLSUM || kind == RS_RABINKARP)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/librsync/src/checksum.h
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: weaksum_init
    functionSourceFile: /src/librsync/src/checksum.h
    functionUses: 1
    functionsReached:
    - assert
    - weaksum_reset
    linkageType: ''
    returnType: void
    signature: void weaksum_init(weaksum_t *sum, weaksum_kind_t kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sum
    argTypes:
    - weaksum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: weaksum_count
    functionSourceFile: /src/librsync/src/checksum.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t weaksum_count(weaksum_t *sum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RollsumUpdate
      Src: /src/librsync/src/checksum.h:89,1
    - Dst: rabinkarp_update
      Src: /src/librsync/src/checksum.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sum
    - buf
    - len
    argTypes:
    - weaksum_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: weaksum_update
    functionSourceFile: /src/librsync/src/checksum.h
    functionUses: 1
    functionsReached:
    - RollsumUpdate
    - rabinkarp_update
    linkageType: ''
    returnType: void
    signature: "void weaksum_update(weaksum_t *sum, const unsigned char *buf,\n                                  size_t
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RollsumRotate
      Src: /src/librsync/src/checksum.h:98,1
    - Dst: rabinkarp_rotate
      Src: /src/librsync/src/checksum.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sum
    - out
    - in
    argTypes:
    - weaksum_t*
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: weaksum_rotate
    functionSourceFile: /src/librsync/src/checksum.h
    functionUses: 1
    functionsReached:
    - rabinkarp_rotate
    - RollsumRotate
    linkageType: ''
    returnType: void
    signature: "void weaksum_rotate(weaksum_t *sum, unsigned char out,\n                                  unsigned
      char in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RollsumRollin
      Src: /src/librsync/src/checksum.h:106,1
    - Dst: rabinkarp_rollin
      Src: /src/librsync/src/checksum.h:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sum
    - in
    argTypes:
    - weaksum_t*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: weaksum_rollin
    functionSourceFile: /src/librsync/src/checksum.h
    functionUses: 1
    functionsReached:
    - rabinkarp_rollin
    - RollsumRollin
    linkageType: ''
    returnType: void
    signature: void weaksum_rollin(weaksum_t *sum, unsigned char in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RollsumRollout
      Src: /src/librsync/src/checksum.h:114,1
    - Dst: rabinkarp_rollout
      Src: /src/librsync/src/checksum.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sum
    - out
    argTypes:
    - weaksum_t*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: weaksum_rollout
    functionSourceFile: /src/librsync/src/checksum.h
    functionUses: 1
    functionsReached:
    - rabinkarp_rollout
    - RollsumRollout
    linkageType: ''
    returnType: void
    signature: void weaksum_rollout(weaksum_t *sum, unsigned char out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mix32
      Src: /src/librsync/src/checksum.h:123,1
    - Dst: RollsumDigest
      Src: /src/librsync/src/checksum.h:123,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/src/checksum.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sum
    argTypes:
    - weaksum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: weaksum_digest
    functionSourceFile: /src/librsync/src/checksum.h
    functionUses: 1
    functionsReached:
    - RollsumDigest
    - mix32
    - rabinkarp_digest
    linkageType: ''
    returnType: rs_weak_sum_t
    signature: rs_weak_sum_t weaksum_digest(weaksum_t *sum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - to_buf
    - from
    - from_len
    argTypes:
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: rs_hexify
    functionSourceFile: /src/librsync/src/hex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rs_hexify(char *to_buf, void const *from, int from_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - job
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: rs_job_check
    functionSourceFile: /src/librsync/src/job.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_job_check(job)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/librsync/src/hashtable.c:45,1
    - Dst: calloc
      Src: /src/librsync/src/hashtable.c:47,1
    - Dst: _hashtable_free
      Src: /src/librsync/src/hashtable.c:48,1
    - Dst: calloc
      Src: /src/librsync/src/hashtable.c:55,1
    - Dst: _hashtable_free
      Src: /src/librsync/src/hashtable.c:56,1
    - Dst: assert
      Src: /src/librsync/src/hashtable.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts:
    - condition: (t->tmask == (unsigned)-1 >> t->bshift)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/librsync/src/hashtable.c
    constantsTouched: []
    func_position:
      end: 66
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: _hashtable_new
    functionSourceFile: /src/librsync/src/hashtable.c
    functionUses: 1
    functionsReached:
    - assert
    - calloc
    - _hashtable_free
    linkageType: ''
    returnType: hashtable_t
    signature: hashtable_t *_hashtable_new(int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/librsync/src/hashtable.c:71,1
    - Dst: free
      Src: /src/librsync/src/hashtable.c:73,1
    - Dst: free
      Src: /src/librsync/src/hashtable.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: _hashtable_free
    functionSourceFile: /src/librsync/src/hashtable.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _hashtable_free(hashtable_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: rs_scoop_avail
    functionSourceFile: /src/librsync/src/scoop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rs_scoop_avail(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_avail
      Src: /src/librsync/src/scoop.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: rs_scoop_eof
    functionSourceFile: /src/librsync/src/scoop.h
    functionUses: 0
    functionsReached:
    - rs_scoop_avail
    linkageType: ''
    returnType: bool
    signature: bool rs_scoop_eof(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: rs_scoop_buf
    functionSourceFile: /src/librsync/src/scoop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *rs_scoop_buf(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: rs_scoop_len
    functionSourceFile: /src/librsync/src/scoop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rs_scoop_len(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_len
      Src: /src/librsync/src/scoop.h:130,1
    - Dst: rs_scoop_buf
      Src: /src/librsync/src/scoop.h:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - job
    - len
    argTypes:
    - rs_job_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: rs_scoop_getbuf
    functionSourceFile: /src/librsync/src/scoop.h
    functionUses: 0
    functionsReached:
    - rs_scoop_len
    - rs_scoop_buf
    linkageType: ''
    returnType: void
    signature: void *rs_scoop_getbuf(rs_job_t *job, size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_getbuf
      Src: /src/librsync/src/scoop.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - job
    - len
    - ilen
    argTypes:
    - rs_job_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: rs_scoop_iterbuf
    functionSourceFile: /src/librsync/src/scoop.h
    functionUses: 0
    functionsReached:
    - rs_scoop_getbuf
    linkageType: ''
    returnType: void
    signature: void *rs_scoop_iterbuf(rs_job_t *job, size_t *len, size_t *ilen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_buf
      Src: /src/librsync/src/scoop.h:178,1
    - Dst: rs_scoop_advance
      Src: /src/librsync/src/scoop.h:179,1
    - Dst: rs_scoop_iterbuf
      Src: /src/librsync/src/scoop.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - job
    - len
    - ilen
    argTypes:
    - rs_job_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: rs_scoop_nextbuf
    functionSourceFile: /src/librsync/src/scoop.h
    functionUses: 0
    functionsReached:
    - rs_scoop_advance
    - rs_scoop_iterbuf
    - rs_scoop_buf
    linkageType: ''
    returnType: void
    signature: void *rs_scoop_nextbuf(rs_job_t *job, size_t *len, size_t *ilen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - magic
    - ','
    - block_len
    - ','
    - strong_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: rs_sig_args_check
    functionSourceFile: /src/librsync/src/sumset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_sig_args_check(magic, block_len, strong_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sig
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: rs_signature_check
    functionSourceFile: /src/librsync/src/sumset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_signature_check(sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - rs_signature_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: rs_signature_weaksum_kind
    functionSourceFile: /src/librsync/src/sumset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: weaksum_kind_t
    signature: "weaksum_kind_t rs_signature_weaksum_kind(rs_signature_t const\n                                                       *sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - rs_signature_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: rs_signature_strongsum_kind
    functionSourceFile: /src/librsync/src/sumset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: strongsum_kind_t
    signature: "strongsum_kind_t rs_signature_strongsum_kind(rs_signature_t const\n
      \                                                          *sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_calc_weak_sum
      Src: /src/librsync/src/sumset.h:132,1
    - Dst: rs_signature_weaksum_kind
      Src: /src/librsync/src/sumset.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sig
    - buf
    - len
    argTypes:
    - rs_signature_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: rs_signature_calc_weak_sum
    functionSourceFile: /src/librsync/src/sumset.h
    functionUses: 1
    functionsReached:
    - rs_signature_weaksum_kind
    - rs_calc_weak_sum
    linkageType: ''
    returnType: rs_weak_sum_t
    signature: "rs_weak_sum_t rs_signature_calc_weak_sum(rs_signature_t const\n                                                       *sig,
      void const *buf,\n                                                       size_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_calc_strong_sum
      Src: /src/librsync/src/sumset.h:140,1
    - Dst: rs_signature_strongsum_kind
      Src: /src/librsync/src/sumset.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sig
    - buf
    - len
    - sum
    argTypes:
    - rs_signature_t*
    - void*
    - size_t
    - rs_strong_sum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: rs_signature_calc_strong_sum
    functionSourceFile: /src/librsync/src/sumset.h
    functionUses: 1
    functionsReached:
    - rs_signature_strongsum_kind
    - rs_calc_strong_sum
    linkageType: ''
    returnType: void
    signature: "void rs_signature_calc_strong_sum(rs_signature_t const *sig,\n                                                void
      const *buf, size_t len,\n                                                rs_strong_sum_t
      *sum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: fopen
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 121
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fopen(f, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - o
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: fseek
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fseek(f, o, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - o
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: fseek
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fseek(f, o, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - o
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: fseek
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fseek(f, o, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: fstat
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fstat(f,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: fstat
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fstat(f,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: S_ISREG
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: fileno
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fileno(f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/librsync/src/fileutil.c:88,1
    - Dst: _setmode
      Src: /src/librsync/src/fileutil.c:91,1
    - Dst: _fileno
      Src: /src/librsync/src/fileutil.c:91,1
    - Dst: _setmode
      Src: /src/librsync/src/fileutil.c:96,1
    - Dst: _fileno
      Src: /src/librsync/src/fileutil.c:96,1
    - Dst: fopen
      Src: /src/librsync/src/fileutil.c:103,1
    - Dst: rs_error
      Src: /src/librsync/src/fileutil.c:105,1
    - Dst: fclose
      Src: /src/librsync/src/fileutil.c:106,1
    - Dst: exit
      Src: /src/librsync/src/fileutil.c:107,1
    - Dst: fopen
      Src: /src/librsync/src/fileutil.c:111,1
    - Dst: rs_error
      Src: /src/librsync/src/fileutil.c:112,1
    - Dst: strerror
      Src: /src/librsync/src/fileutil.c:113,1
    - Dst: exit
      Src: /src/librsync/src/fileutil.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - filename
    - mode
    - force
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 118
    functionName: rs_file_open
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 0
    functionsReached:
    - _setmode
    - _fileno
    - exit
    - fopen
    - strerror
    - strcmp
    - fclose
    - rs_error
    linkageType: ''
    returnType: FILE
    signature: FILE *rs_file_open(char const *filename, char const *mode, int force)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/librsync/src/fileutil.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: rs_file_close
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: int
    signature: int rs_file_close(FILE *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/librsync/src/fileutil.c:130,1
    - Dst: fileno
      Src: /src/librsync/src/fileutil.c:130,1
    - Dst: S_ISREG
      Src: /src/librsync/src/fileutil.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: rs_file_size
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 0
    functionsReached:
    - fstat
    - fileno
    - S_ISREG
    linkageType: ''
    returnType: rs_long_t
    signature: rs_long_t rs_file_size(FILE *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/librsync/src/fileutil.c:139,1
    - Dst: rs_error
      Src: /src/librsync/src/fileutil.c:140,1
    - Dst: strerror
      Src: /src/librsync/src/fileutil.c:140,1
    - Dst: fread
      Src: /src/librsync/src/fileutil.c:143,1
    - Dst: ferror
      Src: /src/librsync/src/fileutil.c:146,1
    - Dst: rs_error
      Src: /src/librsync/src/fileutil.c:147,1
    - Dst: strerror
      Src: /src/librsync/src/fileutil.c:147,1
    - Dst: rs_error
      Src: /src/librsync/src/fileutil.c:150,1
    - Dst: fileno
      Src: /src/librsync/src/fileutil.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - arg
    - pos
    - len
    - buf
    argTypes:
    - void*
    - rs_long_t
    - size_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: rs_file_copy_cb
    functionSourceFile: /src/librsync/src/fileutil.c
    functionUses: 0
    functionsReached:
    - strerror
    - fread
    - fileno
    - fseek
    - ferror
    - rs_error
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_file_copy_cb(void *arg, rs_long_t pos, size_t *len, void
      **buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sum
    argTypes:
    - Rollsum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: RollsumInit
    functionSourceFile: /src/librsync/src/rollsum.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RollsumInit(Rollsum *sum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sum
    - out
    - in
    argTypes:
    - Rollsum*
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: RollsumRotate
    functionSourceFile: /src/librsync/src/rollsum.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RollsumRotate(Rollsum *sum, unsigned char out,\n                                 unsigned
      char in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sum
    - in
    argTypes:
    - Rollsum*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: RollsumRollin
    functionSourceFile: /src/librsync/src/rollsum.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RollsumRollin(Rollsum *sum, unsigned char in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sum
    - out
    argTypes:
    - Rollsum*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: RollsumRollout
    functionSourceFile: /src/librsync/src/rollsum.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RollsumRollout(Rollsum *sum, unsigned char out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sum
    argTypes:
    - Rollsum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: RollsumDigest
    functionSourceFile: /src/librsync/src/rollsum.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t RollsumDigest(Rollsum *sum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: rs_alloc_struct
    functionSourceFile: /src/librsync/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_alloc_struct(type)
  - 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: UNUSED
    functionSourceFile: /src/librsync/src/util.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(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: UNUSED
    functionSourceFile: /src/librsync/src/util.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(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: UNUSED
    functionSourceFile: /src/librsync/src/util.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_tube_write
      Src: /src/librsync/src/netint.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - job
    - val
    argTypes:
    - rs_job_t*
    - rs_byte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: rs_squirt_byte
    functionSourceFile: /src/librsync/src/netint.c
    functionUses: 0
    functionsReached:
    - rs_tube_write
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_squirt_byte(rs_job_t *job, rs_byte_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/netint.c:49,1
    - Dst: rs_tube_write
      Src: /src/librsync/src/netint.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - job
    - val
    - len
    argTypes:
    - rs_job_t*
    - rs_long_t
    - int
    assertStmts:
    - condition: (len <= RS_MAX_INT_BYTES)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/librsync/src/netint.c
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: rs_squirt_netint
    functionSourceFile: /src/librsync/src/netint.c
    functionUses: 0
    functionsReached:
    - rs_tube_write
    - assert
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_squirt_netint(rs_job_t *job, rs_long_t val, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_squirt_netint
      Src: /src/librsync/src/netint.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - job
    - val
    argTypes:
    - rs_job_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: rs_squirt_n4
    functionSourceFile: /src/librsync/src/netint.c
    functionUses: 0
    functionsReached:
    - rs_squirt_netint
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_squirt_n4(rs_job_t *job, int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_read
      Src: /src/librsync/src/netint.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - job
    - val
    argTypes:
    - rs_job_t*
    - rs_byte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: rs_suck_byte
    functionSourceFile: /src/librsync/src/netint.c
    functionUses: 0
    functionsReached:
    - rs_scoop_read
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_suck_byte(rs_job_t *job, rs_byte_t *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/netint.c:80,1
    - Dst: rs_scoop_read
      Src: /src/librsync/src/netint.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - job
    - val
    - len
    argTypes:
    - rs_job_t*
    - rs_long_t*
    - int
    assertStmts:
    - condition: (len <= RS_MAX_INT_BYTES)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/librsync/src/netint.c
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: rs_suck_netint
    functionSourceFile: /src/librsync/src/netint.c
    functionUses: 0
    functionsReached:
    - assert
    - rs_scoop_read
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_suck_netint(rs_job_t *job, rs_long_t *val, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_suck_netint
      Src: /src/librsync/src/netint.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - job
    - val
    argTypes:
    - rs_job_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: rs_suck_n4
    functionSourceFile: /src/librsync/src/netint.c
    functionUses: 0
    functionsReached:
    - rs_suck_netint
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_suck_n4(rs_job_t *job, int *val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/netint.c:101,1
    - Dst: assert
      Src: /src/librsync/src/netint.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - val
    argTypes:
    - rs_long_t
    assertStmts:
    - condition: (val >= 0)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/librsync/src/netint.c
    - condition: (!(val & ~(rs_long_t)0xffffffffffffffff))
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/librsync/src/netint.c
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: rs_int_len
    functionSourceFile: /src/librsync/src/netint.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int rs_int_len(rs_long_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_signature_init
      Src: /src/librsync/src/mksum.c:51,1
    - Dst: rs_squirt_n4
      Src: /src/librsync/src/mksum.c:54,1
    - Dst: rs_squirt_n4
      Src: /src/librsync/src/mksum.c:55,1
    - Dst: rs_squirt_n4
      Src: /src/librsync/src/mksum.c:56,1
    - Dst: rs_trace
      Src: /src/librsync/src/mksum.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 63
    functionName: rs_sig_s_header
    functionSourceFile: /src/librsync/src/mksum.c
    functionUses: 0
    functionsReached:
    - rs_signature_init
    - rs_trace
    - rs_squirt_n4
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_sig_s_header(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_signature_calc_weak_sum
      Src: /src/librsync/src/mksum.c:73,1
    - Dst: rs_signature_calc_strong_sum
      Src: /src/librsync/src/mksum.c:74,1
    - Dst: rs_squirt_n4
      Src: /src/librsync/src/mksum.c:75,1
    - Dst: rs_tube_write
      Src: /src/librsync/src/mksum.c:76,1
    - Dst: rs_trace_enabled
      Src: /src/librsync/src/mksum.c:77,1
    - Dst: rs_hexify
      Src: /src/librsync/src/mksum.c:79,1
    - Dst: rs_trace
      Src: /src/librsync/src/mksum.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - job
    - block
    - len
    argTypes:
    - rs_job_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: rs_sig_do_block
    functionSourceFile: /src/librsync/src/mksum.c
    functionUses: 0
    functionsReached:
    - rs_tube_write
    - rs_trace_enabled
    - rs_trace
    - rs_hexify
    - rs_signature_calc_weak_sum
    - rs_signature_calc_strong_sum
    - rs_squirt_n4
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_sig_do_block(rs_job_t *job, const void *block, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_read
      Src: /src/librsync/src/mksum.c:96,1
    - Dst: rs_scoop_read_rest
      Src: /src/librsync/src/mksum.c:99,1
    - Dst: rs_trace
      Src: /src/librsync/src/mksum.c:103,1
    - Dst: rs_strerror
      Src: /src/librsync/src/mksum.c:103,1
    - Dst: rs_trace
      Src: /src/librsync/src/mksum.c:106,1
    - Dst: rs_sig_do_block
      Src: /src/librsync/src/mksum.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 108
    functionName: rs_sig_s_generate
    functionSourceFile: /src/librsync/src/mksum.c
    functionUses: 0
    functionsReached:
    - rs_sig_do_block
    - rs_scoop_read_rest
    - rs_scoop_read
    - rs_trace
    - rs_strerror
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_sig_s_generate(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_new
      Src: /src/librsync/src/mksum.c:115,1
    - Dst: rs_alloc_struct
      Src: /src/librsync/src/mksum.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - block_len
    - strong_len
    - sig_magic
    argTypes:
    - size_t
    - size_t
    - rs_magic_number
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: rs_sig_begin
    functionSourceFile: /src/librsync/src/mksum.c
    functionUses: 1
    functionsReached:
    - rs_alloc_struct
    - rs_job_new
    linkageType: ''
    returnType: rs_job_t
    signature: "rs_job_t *rs_sig_begin(size_t block_len, size_t strong_len,\n                       rs_magic_number
      sig_magic)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/librsync/src/util.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: rs_bzero
    functionSourceFile: /src/librsync/src/util.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void rs_bzero(void *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/librsync/src/util.c:42,1
    - Dst: rs_fatal
      Src: /src/librsync/src/util.c:43,1
    - Dst: rs_bzero
      Src: /src/librsync/src/util.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - size
    - name
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: rs_alloc_struct0
    functionSourceFile: /src/librsync/src/util.c
    functionUses: 0
    functionsReached:
    - rs_bzero
    - malloc
    - rs_fatal
    linkageType: ''
    returnType: void
    signature: void *rs_alloc_struct0(size_t size, char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/librsync/src/util.c:53,1
    - Dst: rs_fatal
      Src: /src/librsync/src/util.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - size
    - name
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: rs_alloc
    functionSourceFile: /src/librsync/src/util.c
    functionUses: 0
    functionsReached:
    - malloc
    - rs_fatal
    linkageType: ''
    returnType: void
    signature: void *rs_alloc(size_t size, char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/librsync/src/util.c:64,1
    - Dst: rs_fatal
      Src: /src/librsync/src/util.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - size
    - name
    argTypes:
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: rs_realloc
    functionSourceFile: /src/librsync/src/util.c
    functionUses: 0
    functionsReached:
    - rs_fatal
    - realloc
    linkageType: ''
    returnType: void
    signature: void *rs_realloc(void *ptr, size_t size, char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - rs_long_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: rs_long_ln2
    functionSourceFile: /src/librsync/src/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rs_long_ln2(rs_long_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - rs_long_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: rs_long_sqrt
    functionSourceFile: /src/librsync/src/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rs_long_sqrt(rs_long_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/sumset.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - sig
    - weak_sum
    - strong_sum
    - strong_len
    argTypes:
    - rs_block_sig_t*
    - rs_weak_sum_t
    - rs_strong_sum_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: rs_block_sig_init
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void rs_block_sig_init(rs_block_sig_t *sig, rs_weak_sum_t weak_sum,\n
      \                             rs_strong_sum_t *strong_sum, int strong_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - rs_block_sig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: rs_block_sig_hash
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned rs_block_sig_hash(const rs_block_sig_t *sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_block_sig_init
      Src: /src/librsync/src/sumset.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - match
    - sig
    - weak_sum
    - strong_sum
    - buf
    - len
    argTypes:
    - rs_block_match_t*
    - rs_signature_t*
    - rs_weak_sum_t
    - rs_strong_sum_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: rs_block_match_init
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 0
    functionsReached:
    - rs_block_sig_init
    linkageType: ''
    returnType: void
    signature: "void rs_block_match_init(rs_block_match_t *match, rs_signature_t *sig,\n
      \                               rs_weak_sum_t weak_sum,\n                                rs_strong_sum_t
      *strong_sum, const void *buf,\n                                size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_signature_calc_strong_sum
      Src: /src/librsync/src/sumset.c:71,1
    - Dst: memcmp
      Src: /src/librsync/src/sumset.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - match
    - block_sig
    argTypes:
    - rs_block_match_t*
    - rs_block_sig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: rs_block_match_cmp
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 0
    functionsReached:
    - memcmp
    - rs_signature_calc_strong_sum
    linkageType: ''
    returnType: int
    signature: "int rs_block_match_cmp(rs_block_match_t *match,\n                                     const
      rs_block_sig_t *block_sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - rs_signature_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: rs_block_sig_size
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rs_block_sig_size(const rs_signature_t *sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_block_sig_size
      Src: /src/librsync/src/sumset.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sig
    - block_idx
    argTypes:
    - rs_signature_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: rs_block_sig_ptr
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 0
    functionsReached:
    - rs_block_sig_size
    linkageType: ''
    returnType: rs_block_sig_t
    signature: "rs_block_sig_t *rs_block_sig_ptr(const rs_signature_t *sig,\n                                               int
      block_idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_block_sig_size
      Src: /src/librsync/src/sumset.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sig
    - block_sig
    argTypes:
    - rs_signature_t*
    - rs_block_sig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: rs_block_sig_idx
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 0
    functionsReached:
    - rs_block_sig_size
    linkageType: ''
    returnType: int
    signature: "int rs_block_sig_idx(const rs_signature_t *sig,\n                                   rs_block_sig_t
      *block_sig)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rs_error
      Src: /src/librsync/src/sumset.c:134,1
    - Dst: rs_long_sqrt
      Src: /src/librsync/src/sumset.c:145,1
    - Dst: rs_long_ln2
      Src: /src/librsync/src/sumset.c:163,1
    - Dst: rs_long_ln2
      Src: /src/librsync/src/sumset.c:164,1
    - Dst: rs_warn
      Src: /src/librsync/src/sumset.c:171,1
    - Dst: rs_error
      Src: /src/librsync/src/sumset.c:175,1
    - Dst: rs_sig_args_check
      Src: /src/librsync/src/sumset.c:179,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - old_fsize
    - magic
    - block_len
    - strong_len
    argTypes:
    - rs_long_t
    - rs_magic_number*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 181
    functionName: rs_sig_args
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 2
    functionsReached:
    - rs_sig_args_check
    - rs_long_ln2
    - rs_warn
    - rs_long_sqrt
    - rs_error
    linkageType: ''
    returnType: rs_result
    signature: "rs_result rs_sig_args(rs_long_t old_fsize, rs_magic_number * magic,\n
      \                     size_t *block_len, size_t *strong_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_sig_args
      Src: /src/librsync/src/sumset.c:190,1
    - Dst: rs_alloc
      Src: /src/librsync/src/sumset.c:203,1
    - Dst: rs_block_sig_size
      Src: /src/librsync/src/sumset.c:203,1
    - Dst: rs_signature_check
      Src: /src/librsync/src/sumset.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - sig
    - magic
    - block_len
    - strong_len
    - sig_fsize
    argTypes:
    - rs_signature_t*
    - rs_magic_number
    - size_t
    - size_t
    - rs_long_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 213
    functionName: rs_signature_init
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 2
    functionsReached:
    - rs_signature_check
    - rs_alloc
    - rs_block_sig_size
    - rs_sig_args
    linkageType: ''
    returnType: rs_result
    signature: "rs_result rs_signature_init(rs_signature_t *sig, rs_magic_number magic,\n
      \                           size_t block_len, size_t strong_len,\n                            rs_long_t
      sig_fsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_free
      Src: /src/librsync/src/sumset.c:217,1
    - Dst: free
      Src: /src/librsync/src/sumset.c:218,1
    - Dst: rs_bzero
      Src: /src/librsync/src/sumset.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - rs_signature_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: rs_signature_done
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 1
    functionsReached:
    - free
    - rs_bzero
    - hashtable_free
    linkageType: ''
    returnType: void
    signature: void rs_signature_done(rs_signature_t *sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_signature_check
      Src: /src/librsync/src/sumset.c:226,1
    - Dst: rs_signature_weaksum_kind
      Src: /src/librsync/src/sumset.c:228,1
    - Dst: mix32
      Src: /src/librsync/src/sumset.c:229,1
    - Dst: rs_realloc
      Src: /src/librsync/src/sumset.c:234,1
    - Dst: rs_block_sig_size
      Src: /src/librsync/src/sumset.c:234,1
    - Dst: rs_block_sig_ptr
      Src: /src/librsync/src/sumset.c:237,1
    - Dst: rs_block_sig_init
      Src: /src/librsync/src/sumset.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - sig
    - weak_sum
    - strong_sum
    argTypes:
    - rs_signature_t*
    - rs_weak_sum_t
    - rs_strong_sum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 240
    functionName: rs_signature_add_block
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 1
    functionsReached:
    - rs_signature_weaksum_kind
    - mix32
    - rs_realloc
    - rs_block_sig_ptr
    - rs_block_sig_init
    - rs_block_sig_size
    - rs_signature_check
    linkageType: ''
    returnType: rs_block_sig_t
    signature: "rs_block_sig_t *rs_signature_add_block(rs_signature_t *sig,\n                                       rs_weak_sum_t
      weak_sum,\n                                       rs_strong_sum_t *strong_sum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_signature_check
      Src: /src/librsync/src/sumset.c:248,1
    - Dst: rs_block_match_init
      Src: /src/librsync/src/sumset.c:249,1
    - Dst: hashtable_find
      Src: /src/librsync/src/sumset.c:250,1
    - Dst: rs_block_sig_idx
      Src: /src/librsync/src/sumset.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - sig
    - weak_sum
    - buf
    - len
    argTypes:
    - rs_signature_t*
    - rs_weak_sum_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 254
    functionName: rs_signature_find_match
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 1
    functionsReached:
    - hashtable_find
    - rs_block_sig_idx
    - rs_block_match_init
    - rs_signature_check
    linkageType: ''
    returnType: rs_long_t
    signature: "rs_long_t rs_signature_find_match(rs_signature_t *sig, rs_weak_sum_t
      weak_sum,\n                                  void const *buf, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_log
      Src: /src/librsync/src/sumset.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - rs_signature_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 272
    functionName: rs_signature_log_stats
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 0
    functionsReached:
    - rs_log
    linkageType: ''
    returnType: void
    signature: void rs_signature_log_stats(rs_signature_t const *sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_signature_check
      Src: /src/librsync/src/sumset.c:280,1
    - Dst: hashtable_new
      Src: /src/librsync/src/sumset.c:281,1
    - Dst: rs_block_sig_ptr
      Src: /src/librsync/src/sumset.c:285,1
    - Dst: rs_block_match_init
      Src: /src/librsync/src/sumset.c:286,1
    - Dst: hashtable_find
      Src: /src/librsync/src/sumset.c:287,1
    - Dst: hashtable_add
      Src: /src/librsync/src/sumset.c:288,1
    - Dst: hashtable_stats_init
      Src: /src/librsync/src/sumset.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - sig
    argTypes:
    - rs_signature_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 292
    functionName: rs_build_hash_table
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 2
    functionsReached:
    - hashtable_new
    - rs_signature_check
    - hashtable_stats_init
    - rs_block_sig_ptr
    - hashtable_add
    - rs_block_match_init
    - hashtable_find
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_build_hash_table(rs_signature_t *sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_signature_done
      Src: /src/librsync/src/sumset.c:296,1
    - Dst: free
      Src: /src/librsync/src/sumset.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - psums
    argTypes:
    - rs_signature_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: rs_free_sumset
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 1
    functionsReached:
    - free
    - rs_signature_done
    linkageType: ''
    returnType: void
    signature: void rs_free_sumset(rs_signature_t *psums)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_log
      Src: /src/librsync/src/sumset.c:306,1
    - Dst: rs_block_sig_ptr
      Src: /src/librsync/src/sumset.c:311,1
    - Dst: rs_hexify
      Src: /src/librsync/src/sumset.c:312,1
    - Dst: rs_log
      Src: /src/librsync/src/sumset.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sums
    argTypes:
    - rs_signature_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: rs_sumset_dump
    functionSourceFile: /src/librsync/src/sumset.c
    functionUses: 0
    functionsReached:
    - rs_block_sig_ptr
    - rs_hexify
    - rs_log
    linkageType: ''
    returnType: void
    signature: void rs_sumset_dump(rs_signature_t const *sums)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rs_filebuf_new
      Src: /src/librsync/src/whole.c:54,1
    - Dst: rs_filebuf_new
      Src: /src/librsync/src/whole.c:56,1
    - Dst: rs_job_drive
      Src: /src/librsync/src/whole.c:58,1
    - Dst: rs_filebuf_free
      Src: /src/librsync/src/whole.c:61,1
    - Dst: rs_filebuf_free
      Src: /src/librsync/src/whole.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - job
    - in_file
    - out_file
    - inbuflen
    - outbuflen
    argTypes:
    - rs_job_t*
    - FILE*
    - FILE*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 65
    functionName: rs_whole_run
    functionSourceFile: /src/librsync/src/whole.c
    functionUses: 0
    functionsReached:
    - rs_job_drive
    - rs_filebuf_new
    - rs_filebuf_free
    linkageType: ''
    returnType: rs_result
    signature: "rs_result rs_whole_run(rs_job_t *job, FILE *in_file, FILE *out_file,\n
      \                      int inbuflen, int outbuflen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_file_size
      Src: /src/librsync/src/whole.c:73,1
    - Dst: rs_sig_args
      Src: /src/librsync/src/whole.c:76,1
    - Dst: rs_sig_begin
      Src: /src/librsync/src/whole.c:79,1
    - Dst: rs_whole_run
      Src: /src/librsync/src/whole.c:81,1
    - Dst: memcpy
      Src: /src/librsync/src/whole.c:84,1
    - Dst: rs_job_free
      Src: /src/librsync/src/whole.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - old_file
    - sig_file
    - block_len
    - strong_len
    - sig_magic
    - stats
    argTypes:
    - FILE*
    - FILE*
    - size_t
    - size_t
    - rs_magic_number
    - rs_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: rs_sig_file
    functionSourceFile: /src/librsync/src/whole.c
    functionUses: 0
    functionsReached:
    - memcpy
    - rs_file_size
    - rs_job_free
    - rs_sig_args
    - rs_sig_begin
    - rs_whole_run
    linkageType: ''
    returnType: rs_result
    signature: "rs_result rs_sig_file(FILE *old_file, FILE *sig_file, size_t block_len,\n
      \                     size_t strong_len, rs_magic_number sig_magic,\n                      rs_stats_t
      *stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_loadsig_begin
      Src: /src/librsync/src/whole.c:96,1
    - Dst: rs_file_size
      Src: /src/librsync/src/whole.c:98,1
    - Dst: rs_whole_run
      Src: /src/librsync/src/whole.c:100,1
    - Dst: memcpy
      Src: /src/librsync/src/whole.c:102,1
    - Dst: rs_job_free
      Src: /src/librsync/src/whole.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - sig_file
    - sumset
    - stats
    argTypes:
    - FILE*
    - rs_signature_t**
    - rs_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: rs_loadsig_file
    functionSourceFile: /src/librsync/src/whole.c
    functionUses: 0
    functionsReached:
    - memcpy
    - rs_file_size
    - rs_job_free
    - rs_loadsig_begin
    - rs_whole_run
    linkageType: ''
    returnType: rs_result
    signature: "rs_result rs_loadsig_file(FILE *sig_file, rs_signature_t **sumset,\n
      \                         rs_stats_t *stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_delta_begin
      Src: /src/librsync/src/whole.c:114,1
    - Dst: rs_whole_run
      Src: /src/librsync/src/whole.c:116,1
    - Dst: memcpy
      Src: /src/librsync/src/whole.c:119,1
    - Dst: rs_job_free
      Src: /src/librsync/src/whole.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - sig
    - new_file
    - delta_file
    - stats
    argTypes:
    - rs_signature_t*
    - FILE*
    - FILE*
    - rs_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: rs_delta_file
    functionSourceFile: /src/librsync/src/whole.c
    functionUses: 0
    functionsReached:
    - memcpy
    - rs_delta_begin
    - rs_whole_run
    - rs_job_free
    linkageType: ''
    returnType: rs_result
    signature: "rs_result rs_delta_file(rs_signature_t *sig, FILE *new_file, FILE
      *delta_file,\n                        rs_stats_t *stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_patch_begin
      Src: /src/librsync/src/whole.c:130,1
    - Dst: rs_whole_run
      Src: /src/librsync/src/whole.c:132,1
    - Dst: memcpy
      Src: /src/librsync/src/whole.c:135,1
    - Dst: rs_job_free
      Src: /src/librsync/src/whole.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - basis_file
    - delta_file
    - new_file
    - stats
    argTypes:
    - FILE*
    - FILE*
    - FILE*
    - rs_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: rs_patch_file
    functionSourceFile: /src/librsync/src/whole.c
    functionUses: 0
    functionsReached:
    - memcpy
    - rs_patch_begin
    - rs_whole_run
    - rs_job_free
    linkageType: ''
    returnType: rs_result
    signature: "rs_result rs_patch_file(FILE *basis_file, FILE *delta_file, FILE *new_file,\n
      \                       rs_stats_t *stats)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_alloc_struct
      Src: /src/librsync/src/job.c:44,1
    - Dst: time
      Src: /src/librsync/src/job.c:51,1
    - Dst: rs_trace
      Src: /src/librsync/src/job.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - job_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: rs_job_new
    functionSourceFile: /src/librsync/src/job.c
    functionUses: 1
    functionsReached:
    - rs_alloc_struct
    - rs_trace
    - time
    linkageType: ''
    returnType: rs_job_t
    signature: rs_job_t *rs_job_new(char const *job_name, rs_result (*statefn)(rs_job_t
      *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/librsync/src/job.c:60,1
    - Dst: rs_free_sumset
      Src: /src/librsync/src/job.c:62,1
    - Dst: rs_bzero
      Src: /src/librsync/src/job.c:63,1
    - Dst: free
      Src: /src/librsync/src/job.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: rs_job_free
    functionSourceFile: /src/librsync/src/job.c
    functionUses: 8
    functionsReached:
    - free
    - rs_bzero
    - rs_free_sumset
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_job_free(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_check
      Src: /src/librsync/src/job.c:71,1
    - Dst: assert
      Src: /src/librsync/src/job.c:72,1
    - Dst: assert
      Src: /src/librsync/src/job.c:73,1
    - Dst: rs_tube_is_idle
      Src: /src/librsync/src/job.c:73,1
    - Dst: time
      Src: /src/librsync/src/job.c:76,1
    - Dst: rs_error
      Src: /src/librsync/src/job.c:78,1
    - Dst: rs_strerror
      Src: /src/librsync/src/job.c:78,1
    - Dst: rs_trace
      Src: /src/librsync/src/job.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - job
    - result
    argTypes:
    - rs_job_t*
    - rs_result
    assertStmts:
    - condition: (result != RS_RUNNING && result != RS_BLOCKED)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/librsync/src/job.c
    - condition: (rs_tube_is_idle(job) || result != RS_DONE)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/librsync/src/job.c
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: rs_job_complete
    functionSourceFile: /src/librsync/src/job.c
    functionUses: 0
    functionsReached:
    - rs_tube_is_idle
    - assert
    - rs_job_check
    - rs_trace
    - rs_strerror
    - rs_error
    - time
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_job_complete(rs_job_t *job, rs_result result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_check
      Src: /src/librsync/src/job.c:90,1
    - Dst: assert
      Src: /src/librsync/src/job.c:91,1
    - Dst: rs_job_work
      Src: /src/librsync/src/job.c:95,1
    - Dst: rs_error
      Src: /src/librsync/src/job.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - job
    - buffers
    argTypes:
    - rs_job_t*
    - rs_buffers_t*
    assertStmts:
    - condition: (buffers)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/librsync/src/job.c
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: rs_job_iter
    functionSourceFile: /src/librsync/src/job.c
    functionUses: 4
    functionsReached:
    - assert
    - rs_job_check
    - rs_error
    - rs_job_work
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_job_iter(rs_job_t *job, rs_buffers_t *buffers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_check
      Src: /src/librsync/src/job.c:112,1
    - Dst: assert
      Src: /src/librsync/src/job.c:113,1
    - Dst: rs_tube_catchup
      Src: /src/librsync/src/job.c:117,1
    - Dst: rs_job_t*::statefn
      Src: /src/librsync/src/job.c:119,1
    - Dst: rs_job_complete
      Src: /src/librsync/src/job.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - job
    - buffers
    argTypes:
    - rs_job_t*
    - rs_buffers_t*
    assertStmts:
    - condition: (buffers)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/librsync/src/job.c
    constantsTouched: []
    func_position:
      end: 132
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 132
    functionName: rs_job_work
    functionSourceFile: /src/librsync/src/job.c
    functionUses: 1
    functionsReached:
    - rs_job_t*::statefn
    - assert
    - rs_job_check
    - rs_tube_catchup
    - rs_job_complete
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_job_work(rs_job_t *job, rs_buffers_t *buffers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: rs_job_statistics
    functionSourceFile: /src/librsync/src/job.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rs_stats_t
    signature: rs_stats_t *rs_job_statistics(rs_job_t *job)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rs_bzero
      Src: /src/librsync/src/job.c:144,1
    - Dst: in_cb
      Src: /src/librsync/src/job.c:148,1
    - Dst: rs_job_iter
      Src: /src/librsync/src/job.c:153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - job
    - buf
    - in_cb
    - in_opaque
    - out_cb
    - out_opaque
    argTypes:
    - rs_job_t*
    - rs_buffers_t*
    - rs_driven_cb
    - void*
    - rs_driven_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 165
    functionName: rs_job_drive
    functionSourceFile: /src/librsync/src/job.c
    functionUses: 1
    functionsReached:
    - rs_bzero
    - in_cb
    - rs_job_iter
    linkageType: ''
    returnType: rs_result
    signature: "rs_result rs_job_drive(rs_job_t *job, rs_buffers_t *buf, rs_driven_cb
      in_cb,\n                       void *in_opaque, rs_driven_cb out_cb, void *out_opaque)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/librsync/src/base64.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 57
    functionName: rs_unbase64
    functionSourceFile: /src/librsync/src/base64.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: size_t
    signature: size_t rs_unbase64(char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/librsync/src/base64.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - n
    - out
    argTypes:
    - unsigned char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 89
    functionName: rs_base64
    functionSourceFile: /src/librsync/src/base64.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void rs_base64(unsigned char const *buf, int n, char *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - h
    argTypes:
    - hashtable_t*
    - unsigned const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: hashtable_setbloom
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hashtable_setbloom(hashtable_t *t, unsigned const h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - h
    argTypes:
    - hashtable_t*
    - unsigned const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: hashtable_getbloom
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hashtable_getbloom(hashtable_t *t, unsigned const h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: mix32
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned mix32(unsigned h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: nozero
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned nozero(unsigned h)
  - 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: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: _JOIN2
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _JOIN2(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: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: _JOIN
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _JOIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: _KEY_HASH
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _KEY_HASH(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: _KEY_HASH
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _KEY_HASH(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - t
    - ','
    - hk
    - ','
    - i
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: _for_probe
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _for_probe(t, hk, i, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: _stats_inc
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _stats_inc(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashtable_new
      Src: /src/librsync/src/hashtable.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: NAME_new
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached:
    - _hashtable_new
    linkageType: ''
    returnType: hashtable_t
    signature: hashtable_t *NAME_new(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hashtable_free
      Src: /src/librsync/src/hashtable.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: NAME_free
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached:
    - _hashtable_free
    linkageType: ''
    returnType: void
    signature: void NAME_free(hashtable_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: NAME_stats_init
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NAME_stats_init(hashtable_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _KEY_HASH
      Src: /src/librsync/src/hashtable.h:298,1
    - Dst: assert
      Src: /src/librsync/src/hashtable.h:300,1
    - Dst: hashtable_setbloom
      Src: /src/librsync/src/hashtable.h:304,1
    - Dst: _for_probe
      Src: /src/librsync/src/hashtable.h:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - t
    - e
    argTypes:
    - hashtable_t*
    - ENTRY_t*
    assertStmts:
    - condition: (e != NULL)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/librsync/src/hashtable.h
    constantsTouched: []
    func_position:
      end: 310
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 310
    functionName: NAME_add
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached:
    - assert
    - _KEY_HASH
    - hashtable_setbloom
    - _for_probe
    linkageType: ''
    returnType: ENTRY_t
    signature: ENTRY_t *NAME_add(hashtable_t *t, ENTRY_t *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/hashtable.h:324,1
    - Dst: _KEY_HASH
      Src: /src/librsync/src/hashtable.h:325,1
    - Dst: _stats_inc
      Src: /src/librsync/src/hashtable.h:328,1
    - Dst: hashtable_getbloom
      Src: /src/librsync/src/hashtable.h:330,1
    - Dst: _stats_inc
      Src: /src/librsync/src/hashtable.h:334,1
    - Dst: _stats_inc
      Src: /src/librsync/src/hashtable.h:336,1
    - Dst: MATCH_cmp
      Src: /src/librsync/src/hashtable.h:337,1
    - Dst: _stats_inc
      Src: /src/librsync/src/hashtable.h:338,1
    - Dst: _stats_inc
      Src: /src/librsync/src/hashtable.h:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - t
    - m
    argTypes:
    - hashtable_t*
    - MATCH_t*
    assertStmts:
    - condition: (m != NULL)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/librsync/src/hashtable.h
    constantsTouched: []
    func_position:
      end: 346
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 346
    functionName: NAME_find
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached:
    - hashtable_getbloom
    - assert
    - _stats_inc
    - _KEY_HASH
    - MATCH_cmp
    linkageType: ''
    returnType: ENTRY_t
    signature: ENTRY_t *NAME_find(hashtable_t *t, MATCH_t *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _stats_inc
      Src: /src/librsync/src/hashtable.h:334,1
    - Dst: _stats_inc
      Src: /src/librsync/src/hashtable.h:336,1
    - Dst: MATCH_cmp
      Src: /src/librsync/src/hashtable.h:337,1
    - Dst: _stats_inc
      Src: /src/librsync/src/hashtable.h:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 342
    functionName: _for_probe
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 1
    functionsReached:
    - _stats_inc
    - MATCH_cmp
    linkageType: ''
    returnType: void
    signature: void _for_probe(t, hm, i, he)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/hashtable.h:367,1
    - Dst: assert
      Src: /src/librsync/src/hashtable.h:368,1
    - Dst: NAME_next
      Src: /src/librsync/src/hashtable.h:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - t
    - i
    argTypes:
    - hashtable_t*
    - int*
    assertStmts:
    - condition: (t != NULL)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/librsync/src/hashtable.h
    - condition: (i != NULL)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/librsync/src/hashtable.h
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: NAME_iter
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 0
    functionsReached:
    - assert
    - NAME_next
    linkageType: ''
    returnType: ENTRY_t
    signature: ENTRY_t *NAME_iter(hashtable_t *t, int *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/hashtable.h:385,1
    - Dst: assert
      Src: /src/librsync/src/hashtable.h:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - t
    - i
    argTypes:
    - hashtable_t*
    - int*
    assertStmts:
    - condition: (t != NULL)
      pos:
        line_end: 384
        line_start: 384
        source_file: /src/librsync/src/hashtable.h
    - condition: (i != NULL)
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/librsync/src/hashtable.h
    constantsTouched: []
    func_position:
      end: 391
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 391
    functionName: NAME_next
    functionSourceFile: /src/librsync/src/hashtable.h
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: ENTRY_t
    signature: ENTRY_t *NAME_next(hashtable_t *t, int *i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/scoop.c:71,1
    - Dst: rs_alloc
      Src: /src/librsync/src/scoop.c:78,1
    - Dst: memcpy
      Src: /src/librsync/src/scoop.c:80,1
    - Dst: free
      Src: /src/librsync/src/scoop.c:82,1
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:84,1
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:89,1
    - Dst: memmove
      Src: /src/librsync/src/scoop.c:91,1
    - Dst: assert
      Src: /src/librsync/src/scoop.c:99,1
    - Dst: memcpy
      Src: /src/librsync/src/scoop.c:102,1
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - job
    - len
    argTypes:
    - rs_job_t*
    - size_t
    assertStmts:
    - condition: (len > job->scoop_avail)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/librsync/src/scoop.c
    - condition: "(job->scoop_next + tocopy + job->scoop_avail <=\n           job->scoop_buf
        + job->scoop_alloc)"
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/librsync/src/scoop.c
    constantsTouched: []
    func_position:
      end: 107
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 107
    functionName: rs_scoop_input
    functionSourceFile: /src/librsync/src/scoop.c
    functionUses: 0
    functionsReached:
    - memmove
    - memcpy
    - assert
    - rs_alloc
    - rs_trace
    - free
    linkageType: ''
    returnType: void
    signature: void rs_scoop_input(rs_job_t *job, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:126,1
    - Dst: assert
      Src: /src/librsync/src/scoop.c:127,1
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:131,1
    - Dst: assert
      Src: /src/librsync/src/scoop.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - job
    - len
    argTypes:
    - rs_job_t*
    - size_t
    assertStmts:
    - condition: (len <= job->scoop_avail)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/librsync/src/scoop.c
    - condition: (len <= stream->avail_in)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/librsync/src/scoop.c
    constantsTouched: []
    func_position:
      end: 136
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 136
    functionName: rs_scoop_advance
    functionSourceFile: /src/librsync/src/scoop.c
    functionUses: 1
    functionsReached:
    - assert
    - rs_trace
    linkageType: ''
    returnType: void
    signature: void rs_scoop_advance(rs_job_t *job, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_check
      Src: /src/librsync/src/scoop.c:151,1
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:156,1
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:160,1
    - Dst: rs_scoop_input
      Src: /src/librsync/src/scoop.c:162,1
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:166,1
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:172,1
    - Dst: rs_trace
      Src: /src/librsync/src/scoop.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - job
    - len
    - ptr
    argTypes:
    - rs_job_t*
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 179
    functionName: rs_scoop_readahead
    functionSourceFile: /src/librsync/src/scoop.c
    functionUses: 0
    functionsReached:
    - rs_job_check
    - rs_scoop_input
    - rs_trace
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_scoop_readahead(rs_job_t *job, size_t len, void **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_readahead
      Src: /src/librsync/src/scoop.c:196,1
    - Dst: rs_scoop_advance
      Src: /src/librsync/src/scoop.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - job
    - len
    - ptr
    argTypes:
    - rs_job_t*
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: rs_scoop_read
    functionSourceFile: /src/librsync/src/scoop.c
    functionUses: 3
    functionsReached:
    - rs_scoop_advance
    - rs_scoop_readahead
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_scoop_read(rs_job_t *job, size_t len, void **ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_avail
      Src: /src/librsync/src/scoop.c:214,1
    - Dst: rs_scoop_read
      Src: /src/librsync/src/scoop.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - job
    - len
    - ptr
    argTypes:
    - rs_job_t*
    - size_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: rs_scoop_read_rest
    functionSourceFile: /src/librsync/src/scoop.c
    functionUses: 1
    functionsReached:
    - rs_scoop_read
    - rs_scoop_avail
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_scoop_read_rest(rs_job_t *job, size_t *len, void **ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_check
      Src: /src/librsync/src/delta.c:129,1
    - Dst: rs_tube_catchup
      Src: /src/librsync/src/delta.c:131,1
    - Dst: rs_getinput
      Src: /src/librsync/src/delta.c:134,1
    - Dst: rs_findmatch
      Src: /src/librsync/src/delta.c:139,1
    - Dst: rs_appendmatch
      Src: /src/librsync/src/delta.c:141,1
    - Dst: weaksum_reset
      Src: /src/librsync/src/delta.c:142,1
    - Dst: weaksum_rotate
      Src: /src/librsync/src/delta.c:145,1
    - Dst: rs_appendmiss
      Src: /src/librsync/src/delta.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 162
    functionName: rs_delta_s_scan
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 0
    functionsReached:
    - rs_appendmiss
    - rs_appendmatch
    - rs_findmatch
    - weaksum_reset
    - rs_job_check
    - weaksum_rotate
    - rs_tube_catchup
    - rs_getinput
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_delta_s_scan(rs_job_t *job)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_check
      Src: /src/librsync/src/delta.c:171,1
    - Dst: rs_tube_catchup
      Src: /src/librsync/src/delta.c:173,1
    - Dst: rs_getinput
      Src: /src/librsync/src/delta.c:176,1
    - Dst: rs_findmatch
      Src: /src/librsync/src/delta.c:181,1
    - Dst: rs_appendmatch
      Src: /src/librsync/src/delta.c:183,1
    - Dst: weaksum_reset
      Src: /src/librsync/src/delta.c:184,1
    - Dst: weaksum_rollout
      Src: /src/librsync/src/delta.c:187,1
    - Dst: rs_trace
      Src: /src/librsync/src/delta.c:188,1
    - Dst: weaksum_count
      Src: /src/librsync/src/delta.c:189,1
    - Dst: rs_appendmiss
      Src: /src/librsync/src/delta.c:190,1
    - Dst: rs_appendflush
      Src: /src/librsync/src/delta.c:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 202
    functionName: rs_delta_s_flush
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 0
    functionsReached:
    - rs_appendmiss
    - rs_appendmatch
    - rs_findmatch
    - weaksum_reset
    - rs_job_check
    - weaksum_count
    - rs_trace
    - weaksum_rollout
    - rs_appendflush
    - rs_tube_catchup
    - rs_getinput
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_delta_s_flush(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_emit_end_cmd
      Src: /src/librsync/src/delta.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: rs_delta_s_end
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 0
    functionsReached:
    - rs_emit_end_cmd
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_delta_s_end(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_avail
      Src: /src/librsync/src/delta.c:214,1
    - Dst: rs_scoop_readahead
      Src: /src/librsync/src/delta.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - job
    - block_len
    argTypes:
    - rs_job_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: rs_getinput
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 2
    functionsReached:
    - rs_scoop_readahead
    - rs_scoop_avail
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_getinput(rs_job_t *job, size_t block_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: weaksum_count
      Src: /src/librsync/src/delta.c:235,1
    - Dst: weaksum_update
      Src: /src/librsync/src/delta.c:242,1
    - Dst: rs_trace
      Src: /src/librsync/src/delta.c:244,1
    - Dst: weaksum_count
      Src: /src/librsync/src/delta.c:245,1
    - Dst: weaksum_count
      Src: /src/librsync/src/delta.c:248,1
    - Dst: rs_signature_find_match
      Src: /src/librsync/src/delta.c:251,1
    - Dst: weaksum_digest
      Src: /src/librsync/src/delta.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - job
    - match_pos
    - match_len
    argTypes:
    - rs_job_t*
    - rs_long_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 254
    functionName: rs_findmatch
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 2
    functionsReached:
    - weaksum_digest
    - rs_signature_find_match
    - weaksum_count
    - rs_trace
    - weaksum_update
    linkageType: ''
    returnType: int
    signature: "int rs_findmatch(rs_job_t *job, rs_long_t *match_pos,\n                               size_t
      *match_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_appendflush
      Src: /src/librsync/src/delta.c:268,1
    - Dst: rs_processmatch
      Src: /src/librsync/src/delta.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - job
    - match_pos
    - match_len
    argTypes:
    - rs_job_t*
    - rs_long_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 281
    functionName: rs_appendmatch
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 2
    functionsReached:
    - rs_appendflush
    - rs_processmatch
    linkageType: ''
    returnType: rs_result
    signature: "rs_result rs_appendmatch(rs_job_t *job, rs_long_t match_pos,\n                                       size_t
      match_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_appendflush
      Src: /src/librsync/src/delta.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - job
    - miss_len
    argTypes:
    - rs_job_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: rs_appendmiss
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 2
    functionsReached:
    - rs_appendflush
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_appendmiss(rs_job_t *job, size_t miss_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_trace
      Src: /src/librsync/src/delta.c:306,1
    - Dst: rs_emit_copy_cmd
      Src: /src/librsync/src/delta.c:308,1
    - Dst: rs_processmatch
      Src: /src/librsync/src/delta.c:310,1
    - Dst: rs_trace
      Src: /src/librsync/src/delta.c:313,1
    - Dst: rs_emit_literal_cmd
      Src: /src/librsync/src/delta.c:314,1
    - Dst: rs_processmiss
      Src: /src/librsync/src/delta.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 319
    functionName: rs_appendflush
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 3
    functionsReached:
    - rs_processmiss
    - rs_processmatch
    - rs_trace
    - rs_emit_literal_cmd
    - rs_emit_copy_cmd
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_appendflush(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/delta.c:334,1
    - Dst: rs_scoop_advance
      Src: /src/librsync/src/delta.c:335,1
    - Dst: rs_tube_catchup
      Src: /src/librsync/src/delta.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts:
    - condition: (job->copy_len == 0)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/librsync/src/delta.c
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: rs_processmatch
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 2
    functionsReached:
    - rs_scoop_advance
    - assert
    - rs_tube_catchup
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_processmatch(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/delta.c:357,1
    - Dst: rs_tube_copy
      Src: /src/librsync/src/delta.c:358,1
    - Dst: rs_tube_catchup
      Src: /src/librsync/src/delta.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts:
    - condition: (job->write_len > 0)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/librsync/src/delta.c
    constantsTouched: []
    func_position:
      end: 363
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 363
    functionName: rs_processmiss
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 1
    functionsReached:
    - assert
    - rs_tube_catchup
    - rs_tube_copy
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_processmiss(rs_job_t *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_avail
      Src: /src/librsync/src/delta.c:369,1
    - Dst: rs_trace
      Src: /src/librsync/src/delta.c:372,1
    - Dst: rs_emit_literal_cmd
      Src: /src/librsync/src/delta.c:373,1
    - Dst: rs_tube_copy
      Src: /src/librsync/src/delta.c:374,1
    - Dst: rs_scoop_eof
      Src: /src/librsync/src/delta.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 381
    functionName: rs_delta_s_slack
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 0
    functionsReached:
    - rs_scoop_eof
    - rs_tube_copy
    - rs_trace
    - rs_emit_literal_cmd
    - rs_scoop_avail
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_delta_s_slack(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_emit_delta_header
      Src: /src/librsync/src/delta.c:386,1
    - Dst: rs_trace
      Src: /src/librsync/src/delta.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: rs_delta_s_header
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 0
    functionsReached:
    - rs_emit_delta_header
    - rs_trace
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_delta_s_header(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_new
      Src: /src/librsync/src/delta.c:400,1
    - Dst: rs_signature_check
      Src: /src/librsync/src/delta.c:403,1
    - Dst: assert
      Src: /src/librsync/src/delta.c:405,1
    - Dst: weaksum_init
      Src: /src/librsync/src/delta.c:407,1
    - Dst: rs_signature_weaksum_kind
      Src: /src/librsync/src/delta.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sig
    argTypes:
    - rs_signature_t*
    assertStmts:
    - condition: (sig->hashtable)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/librsync/src/delta.c
    constantsTouched: []
    func_position:
      end: 410
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 410
    functionName: rs_delta_begin
    functionSourceFile: /src/librsync/src/delta.c
    functionUses: 2
    functionsReached:
    - rs_signature_weaksum_kind
    - assert
    - rs_job_new
    - weaksum_init
    - rs_signature_check
    linkageType: ''
    returnType: rs_job_t
    signature: rs_job_t *rs_delta_begin(rs_signature_t *sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_alloc_struct
      Src: /src/librsync/src/buf.c:45,1
    - Dst: rs_alloc
      Src: /src/librsync/src/buf.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - f
    - buf_len
    argTypes:
    - FILE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: rs_filebuf_new
    functionSourceFile: /src/librsync/src/buf.c
    functionUses: 1
    functionsReached:
    - rs_alloc_struct
    - rs_alloc
    linkageType: ''
    returnType: rs_filebuf_t
    signature: rs_filebuf_t *rs_filebuf_new(FILE *f, size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/librsync/src/buf.c:55,1
    - Dst: rs_bzero
      Src: /src/librsync/src/buf.c:56,1
    - Dst: free
      Src: /src/librsync/src/buf.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fb
    argTypes:
    - rs_filebuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: rs_filebuf_free
    functionSourceFile: /src/librsync/src/buf.c
    functionUses: 1
    functionsReached:
    - free
    - rs_bzero
    linkageType: ''
    returnType: void
    signature: void rs_filebuf_free(rs_filebuf_t *fb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/buf.c:71,1
    - Dst: assert
      Src: /src/librsync/src/buf.c:72,1
    - Dst: rs_trace
      Src: /src/librsync/src/buf.c:81,1
    - Dst: memmove
      Src: /src/librsync/src/buf.c:83,1
    - Dst: fread
      Src: /src/librsync/src/buf.c:86,1
    - Dst: feof
      Src: /src/librsync/src/buf.c:88,1
    - Dst: rs_trace
      Src: /src/librsync/src/buf.c:89,1
    - Dst: rs_error
      Src: /src/librsync/src/buf.c:92,1
    - Dst: strerror
      Src: /src/librsync/src/buf.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - job
    - buf
    - opaque
    argTypes:
    - rs_job_t*
    - rs_buffers_t*
    - void*
    assertStmts:
    - condition: (buf->next_in >= fb->buf)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/librsync/src/buf.c
    - condition: (buf->next_in + buf->avail_in <= fb->buf + fb->buf_len)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/librsync/src/buf.c
    constantsTouched: []
    func_position:
      end: 99
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 99
    functionName: rs_infilebuf_fill
    functionSourceFile: /src/librsync/src/buf.c
    functionUses: 0
    functionsReached:
    - memmove
    - strerror
    - assert
    - fread
    - rs_trace
    - feof
    - rs_error
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_infilebuf_fill(rs_job_t *job, rs_buffers_t *buf, void
      *opaque)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/buf.c:110,1
    - Dst: assert
      Src: /src/librsync/src/buf.c:115,1
    - Dst: assert
      Src: /src/librsync/src/buf.c:116,1
    - Dst: fwrite
      Src: /src/librsync/src/buf.c:120,1
    - Dst: rs_error
      Src: /src/librsync/src/buf.c:122,1
    - Dst: strerror
      Src: /src/librsync/src/buf.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - job
    - buf
    - opaque
    argTypes:
    - rs_job_t*
    - rs_buffers_t*
    - void*
    assertStmts:
    - condition: (buf->avail_out == 0)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/librsync/src/buf.c
    - condition: (buf->next_out + buf->avail_out == fb->buf + fb->buf_len)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/librsync/src/buf.c
    - condition: (buf->next_out >= fb->buf)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/librsync/src/buf.c
    constantsTouched: []
    func_position:
      end: 130
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 130
    functionName: rs_outfilebuf_drain
    functionSourceFile: /src/librsync/src/buf.c
    functionUses: 0
    functionsReached:
    - strerror
    - assert
    - fwrite
    - rs_error
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_outfilebuf_drain(rs_job_t *job, rs_buffers_t *buf, void
      *opaque)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - r
    argTypes:
    - rs_result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 75
    functionName: rs_strerror
    functionSourceFile: /src/librsync/src/msg.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *rs_strerror(rs_result r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hash
    - ','
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: PAR2X1
    functionSourceFile: /src/librsync/src/rabinkarp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAR2X1(hash,buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hash
    - ','
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: PAR2X2
    functionSourceFile: /src/librsync/src/rabinkarp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAR2X2(hash,buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hash
    - ','
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: PAR2X4
    functionSourceFile: /src/librsync/src/rabinkarp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAR2X4(hash,buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hash
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: PAR2X8
    functionSourceFile: /src/librsync/src/rabinkarp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAR2X8(hash,buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: rabinkarp_pow
    functionSourceFile: /src/librsync/src/rabinkarp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rabinkarp_pow(uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAR2X8
      Src: /src/librsync/src/rabinkarp.c:94,1
    - Dst: rabinkarp_pow
      Src: /src/librsync/src/rabinkarp.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - sum
    - buf
    - len
    argTypes:
    - rabinkarp_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: rabinkarp_update
    functionSourceFile: /src/librsync/src/rabinkarp.c
    functionUses: 3
    functionsReached:
    - rabinkarp_pow
    - PAR2X8
    linkageType: ''
    returnType: void
    signature: void rabinkarp_update(rabinkarp_t *sum, const unsigned char *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/librsync/src/rdiff.c:76,1
    - Dst: vsnprintf
      Src: /src/librsync/src/rdiff.c:77,1
    - Dst: va_end
      Src: /src/librsync/src/rdiff.c:78,1
    - Dst: fprintf
      Src: /src/librsync/src/rdiff.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - error
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: rdiff_usage
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - fprintf
    - va_end
    - vsnprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: void rdiff_usage(const char *error, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:85,1
    - Dst: rdiff_usage
      Src: /src/librsync/src/rdiff.c:86,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - opcon
    argTypes:
    - poptContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: rdiff_no_more_args
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - exit
    - poptGetArg
    - rdiff_usage
    linkageType: ''
    returnType: void
    signature: void rdiff_no_more_args(poptContext opcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdiff_usage
      Src: /src/librsync/src/rdiff.c:93,1
    - Dst: poptStrerror
      Src: /src/librsync/src/rdiff.c:93,1
    - Dst: poptBadOption
      Src: /src/librsync/src/rdiff.c:93,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opcon
    - error
    argTypes:
    - poptContext
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: bad_option
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - exit
    - poptBadOption
    - poptStrerror
    - rdiff_usage
    linkageType: ''
    returnType: void
    signature: void bad_option(poptContext opcon, int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/librsync/src/rdiff.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 118
    functionName: help
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/librsync/src/rdiff.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 148
    functionName: rdiff_show_version
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void rdiff_show_version(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: poptGetNextOpt
      Src: /src/librsync/src/rdiff.c:155,1
    - Dst: help
      Src: /src/librsync/src/rdiff.c:158,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:159,1
    - Dst: rdiff_show_version
      Src: /src/librsync/src/rdiff.c:161,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:162,1
    - Dst: rs_supports_trace
      Src: /src/librsync/src/rdiff.c:164,1
    - Dst: fprintf
      Src: /src/librsync/src/rdiff.c:165,1
    - Dst: rs_trace_set_level
      Src: /src/librsync/src/rdiff.c:167,1
    - Dst: poptGetOptArg
      Src: /src/librsync/src/rdiff.c:172,1
    - Dst: atoi
      Src: /src/librsync/src/rdiff.c:173,1
    - Dst: rdiff_usage
      Src: /src/librsync/src/rdiff.c:184,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:185,1
    - Dst: bad_option
      Src: /src/librsync/src/rdiff.c:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - opcon
    argTypes:
    - poptContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 191
    functionName: rdiff_options
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - exit
    - rs_supports_trace
    - help
    - rdiff_show_version
    - rs_trace_set_level
    - bad_option
    - poptGetNextOpt
    - fprintf
    - rdiff_usage
    - atoi
    - poptGetOptArg
    linkageType: ''
    returnType: void
    signature: void rdiff_options(poptContext opcon)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rs_file_open
      Src: /src/librsync/src/rdiff.c:201,1
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:201,1
    - Dst: rs_file_open
      Src: /src/librsync/src/rdiff.c:202,1
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:202,1
    - Dst: rdiff_no_more_args
      Src: /src/librsync/src/rdiff.c:204,1
    - Dst: strcmp
      Src: /src/librsync/src/rdiff.c:206,1
    - Dst: strcmp
      Src: /src/librsync/src/rdiff.c:208,1
    - Dst: rdiff_usage
      Src: /src/librsync/src/rdiff.c:211,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:212,1
    - Dst: strcmp
      Src: /src/librsync/src/rdiff.c:214,1
    - Dst: strcmp
      Src: /src/librsync/src/rdiff.c:217,1
    - Dst: rdiff_usage
      Src: /src/librsync/src/rdiff.c:218,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:219,1
    - Dst: rs_sig_file
      Src: /src/librsync/src/rdiff.c:223,1
    - Dst: rs_file_close
      Src: /src/librsync/src/rdiff.c:226,1
    - Dst: rs_file_close
      Src: /src/librsync/src/rdiff.c:227,1
    - Dst: rs_log_stats
      Src: /src/librsync/src/rdiff.c:232,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - opcon
    argTypes:
    - poptContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 235
    functionName: rdiff_sig
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - rs_file_open
    - exit
    - rs_log_stats
    - rdiff_no_more_args
    - poptGetArg
    - strcmp
    - rdiff_usage
    - rs_sig_file
    - rs_file_close
    linkageType: ''
    returnType: rs_result
    signature: rs_result rdiff_sig(poptContext opcon)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:245,1
    - Dst: rdiff_usage
      Src: /src/librsync/src/rdiff.c:246,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:248,1
    - Dst: rs_file_open
      Src: /src/librsync/src/rdiff.c:251,1
    - Dst: rs_file_open
      Src: /src/librsync/src/rdiff.c:252,1
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:252,1
    - Dst: rs_file_open
      Src: /src/librsync/src/rdiff.c:253,1
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:253,1
    - Dst: rdiff_no_more_args
      Src: /src/librsync/src/rdiff.c:255,1
    - Dst: rs_loadsig_file
      Src: /src/librsync/src/rdiff.c:257,1
    - Dst: rs_log_stats
      Src: /src/librsync/src/rdiff.c:262,1
    - Dst: rs_build_hash_table
      Src: /src/librsync/src/rdiff.c:264,1
    - Dst: rs_delta_file
      Src: /src/librsync/src/rdiff.c:267,1
    - Dst: rs_file_close
      Src: /src/librsync/src/rdiff.c:269,1
    - Dst: rs_file_close
      Src: /src/librsync/src/rdiff.c:270,1
    - Dst: rs_file_close
      Src: /src/librsync/src/rdiff.c:271,1
    - Dst: rs_signature_log_stats
      Src: /src/librsync/src/rdiff.c:274,1
    - Dst: rs_log_stats
      Src: /src/librsync/src/rdiff.c:275,1
    - Dst: rs_free_sumset
      Src: /src/librsync/src/rdiff.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - opcon
    argTypes:
    - poptContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 281
    functionName: rdiff_delta
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - exit
    - rs_file_open
    - rs_log_stats
    - rs_delta_file
    - rdiff_no_more_args
    - rs_free_sumset
    - poptGetArg
    - rs_signature_log_stats
    - rs_build_hash_table
    - rdiff_usage
    - rs_loadsig_file
    - rs_file_close
    linkageType: ''
    returnType: rs_result
    signature: rs_result rdiff_delta(poptContext opcon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:291,1
    - Dst: rdiff_usage
      Src: /src/librsync/src/rdiff.c:292,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:294,1
    - Dst: rs_file_open
      Src: /src/librsync/src/rdiff.c:297,1
    - Dst: rs_file_open
      Src: /src/librsync/src/rdiff.c:298,1
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:298,1
    - Dst: rs_file_open
      Src: /src/librsync/src/rdiff.c:299,1
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:299,1
    - Dst: rdiff_no_more_args
      Src: /src/librsync/src/rdiff.c:301,1
    - Dst: rs_patch_file
      Src: /src/librsync/src/rdiff.c:303,1
    - Dst: rs_file_close
      Src: /src/librsync/src/rdiff.c:305,1
    - Dst: rs_file_close
      Src: /src/librsync/src/rdiff.c:306,1
    - Dst: rs_file_close
      Src: /src/librsync/src/rdiff.c:307,1
    - Dst: rs_log_stats
      Src: /src/librsync/src/rdiff.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - opcon
    argTypes:
    - poptContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 313
    functionName: rdiff_patch
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - exit
    - rs_file_open
    - rs_log_stats
    - rdiff_no_more_args
    - poptGetArg
    - rdiff_usage
    - rs_patch_file
    - rs_file_close
    linkageType: ''
    returnType: rs_result
    signature: rs_result rdiff_patch(poptContext opcon)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: poptGetArg
      Src: /src/librsync/src/rdiff.c:319,1
    - Dst: isprefix
      Src: /src/librsync/src/rdiff.c:321,1
    - Dst: rdiff_sig
      Src: /src/librsync/src/rdiff.c:322,1
    - Dst: isprefix
      Src: /src/librsync/src/rdiff.c:323,1
    - Dst: rdiff_delta
      Src: /src/librsync/src/rdiff.c:324,1
    - Dst: isprefix
      Src: /src/librsync/src/rdiff.c:325,1
    - Dst: rdiff_patch
      Src: /src/librsync/src/rdiff.c:326,1
    - Dst: rdiff_usage
      Src: /src/librsync/src/rdiff.c:328,1
    - Dst: exit
      Src: /src/librsync/src/rdiff.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - opcon
    argTypes:
    - poptContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 331
    functionName: rdiff_action
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 0
    functionsReached:
    - rdiff_patch
    - exit
    - poptGetArg
    - rdiff_sig
    - isprefix
    - rdiff_usage
    - rdiff_delta
    linkageType: ''
    returnType: rs_result
    signature: rs_result rdiff_action(poptContext opcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poptGetContext
      Src: /src/librsync/src/rdiff.c:358,1
    - Dst: rdiff_options
      Src: /src/librsync/src/rdiff.c:359,1
    - Dst: rdiff_action
      Src: /src/librsync/src/rdiff.c:360,1
    - Dst: fprintf
      Src: /src/librsync/src/rdiff.c:363,1
    - Dst: rs_strerror
      Src: /src/librsync/src/rdiff.c:363,1
    - Dst: poptFreeContext
      Src: /src/librsync/src/rdiff.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 367
    functionName: main
    functionSourceFile: /src/librsync/src/rdiff.c
    functionUses: 3
    functionsReached:
    - rs_strerror
    - rdiff_action
    - rdiff_options
    - poptFreeContext
    - fprintf
    - poptGetContext
    linkageType: ''
    returnType: int
    signature: int main(const int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_trace
      Src: /src/librsync/src/emit.c:33,1
    - Dst: rs_squirt_n4
      Src: /src/librsync/src/emit.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: rs_emit_delta_header
    functionSourceFile: /src/librsync/src/emit.c
    functionUses: 1
    functionsReached:
    - rs_squirt_n4
    - rs_trace
    linkageType: ''
    returnType: void
    signature: void rs_emit_delta_header(rs_job_t *job)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rs_int_len
      Src: /src/librsync/src/emit.c:40,1
    - Dst: rs_trace
      Src: /src/librsync/src/emit.c:44,1
    - Dst: rs_trace
      Src: /src/librsync/src/emit.c:47,1
    - Dst: rs_trace
      Src: /src/librsync/src/emit.c:50,1
    - Dst: assert
      Src: /src/librsync/src/emit.c:52,1
    - Dst: rs_trace
      Src: /src/librsync/src/emit.c:54,1
    - Dst: rs_squirt_byte
      Src: /src/librsync/src/emit.c:57,1
    - Dst: rs_squirt_netint
      Src: /src/librsync/src/emit.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - job
    - len
    argTypes:
    - rs_job_t*
    - int
    assertStmts:
    - condition: (param_len == 4)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/librsync/src/emit.c
    constantsTouched: []
    func_position:
      end: 64
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 64
    functionName: rs_emit_literal_cmd
    functionSourceFile: /src/librsync/src/emit.c
    functionUses: 2
    functionsReached:
    - rs_squirt_netint
    - rs_int_len
    - assert
    - rs_squirt_byte
    - rs_trace
    linkageType: ''
    returnType: void
    signature: void rs_emit_literal_cmd(rs_job_t *job, int len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rs_int_len
      Src: /src/librsync/src/emit.c:70,1
    - Dst: rs_int_len
      Src: /src/librsync/src/emit.c:71,1
    - Dst: assert
      Src: /src/librsync/src/emit.c:81,1
    - Dst: assert
      Src: /src/librsync/src/emit.c:90,1
    - Dst: rs_trace
      Src: /src/librsync/src/emit.c:94,1
    - Dst: rs_squirt_byte
      Src: /src/librsync/src/emit.c:96,1
    - Dst: rs_squirt_netint
      Src: /src/librsync/src/emit.c:97,1
    - Dst: rs_squirt_netint
      Src: /src/librsync/src/emit.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - job
    - where
    - len
    argTypes:
    - rs_job_t*
    - rs_long_t
    - rs_long_t
    assertStmts:
    - condition: (len_bytes == 8)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/librsync/src/emit.c
    - condition: (where_bytes == 1)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/librsync/src/emit.c
    constantsTouched: []
    func_position:
      end: 103
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 103
    functionName: rs_emit_copy_cmd
    functionSourceFile: /src/librsync/src/emit.c
    functionUses: 1
    functionsReached:
    - rs_squirt_netint
    - rs_int_len
    - assert
    - rs_squirt_byte
    - rs_trace
    linkageType: ''
    returnType: void
    signature: void rs_emit_copy_cmd(rs_job_t *job, rs_long_t where, rs_long_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_trace
      Src: /src/librsync/src/emit.c:109,1
    - Dst: rs_squirt_byte
      Src: /src/librsync/src/emit.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: rs_emit_end_cmd
    functionSourceFile: /src/librsync/src/emit.c
    functionUses: 1
    functionsReached:
    - rs_squirt_byte
    - rs_trace
    linkageType: ''
    returnType: void
    signature: void rs_emit_end_cmd(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - kind
    argTypes:
    - enum rs_op_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: rs_op_kind_name
    functionSourceFile: /src/librsync/src/command.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *rs_op_kind_name(enum rs_op_kind kind)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RollsumInit
      Src: /src/librsync/src/checksum.c:38,1
    - Dst: RollsumUpdate
      Src: /src/librsync/src/checksum.c:39,1
    - Dst: RollsumDigest
      Src: /src/librsync/src/checksum.c:40,1
    - Dst: rabinkarp_init
      Src: /src/librsync/src/checksum.c:43,1
    - Dst: rabinkarp_update
      Src: /src/librsync/src/checksum.c:44,1
    - Dst: rabinkarp_digest
      Src: /src/librsync/src/checksum.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - kind
    - buf
    - len
    argTypes:
    - weaksum_kind_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: rs_calc_weak_sum
    functionSourceFile: /src/librsync/src/checksum.c
    functionUses: 2
    functionsReached:
    - rabinkarp_update
    - rabinkarp_digest
    - RollsumDigest
    - RollsumUpdate
    - RollsumInit
    - rabinkarp_init
    linkageType: ''
    returnType: rs_weak_sum_t
    signature: rs_weak_sum_t rs_calc_weak_sum(weaksum_kind_t kind, void const *buf,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_mdfour
      Src: /src/librsync/src/checksum.c:63,1
    - Dst: blake2b_init
      Src: /src/librsync/src/checksum.c:66,1
    - Dst: blake2b_update
      Src: /src/librsync/src/checksum.c:67,1
    - Dst: blake2b_final
      Src: /src/librsync/src/checksum.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - kind
    - buf
    - len
    - sum
    argTypes:
    - strongsum_kind_t
    - void*
    - size_t
    - rs_strong_sum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: rs_calc_strong_sum
    functionSourceFile: /src/librsync/src/checksum.c
    functionUses: 2
    functionsReached:
    - blake2b_update
    - blake2b_final
    - blake2b_init
    - rs_mdfour
    linkageType: ''
    returnType: void
    signature: "void rs_calc_strong_sum(strongsum_kind_t kind, void const *buf, size_t
      len,\n                        rs_strong_sum_t *sum)"
  - 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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: F
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 83
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: G
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: H
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: lshift
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lshift(x,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: ROUND1
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND1(a,b,c,d,k,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: ROUND2
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND2(a,b,c,d,k,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ROUND3
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND3(a,b,c,d,k,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:75,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:76,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:77,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:78,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:79,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:80,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:81,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:82,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:83,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:84,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:85,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:86,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:87,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:88,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:89,1
    - Dst: ROUND1
      Src: /src/librsync/src/mdfour.c:90,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:92,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:93,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:94,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:95,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:96,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:97,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:98,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:99,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:100,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:101,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:102,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:103,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:104,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:105,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:106,1
    - Dst: ROUND2
      Src: /src/librsync/src/mdfour.c:107,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:109,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:110,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:111,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:112,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:113,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:114,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:115,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:116,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:117,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:118,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:119,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:120,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:121,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:122,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:123,1
    - Dst: ROUND3
      Src: /src/librsync/src/mdfour.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 2
    argNames:
    - m
    - p
    argTypes:
    - rs_mdfour_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 135
    functionName: rs_mdfour64
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached:
    - ROUND3
    - ROUND2
    - ROUND1
    linkageType: ''
    returnType: void
    signature: void rs_mdfour64(rs_mdfour_t *m, const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: copy4
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy4( /* @out@ */ unsigned char *out, uint32_t const x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - unsigned char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: copy8
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy8( /* @out@ */ unsigned char *out, uint64_t const x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - M
    - in
    argTypes:
    - uint32_t*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: copy64
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy64( /* @out@ */ uint32_t *M, unsigned char const *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy64
      Src: /src/librsync/src/mdfour.c:188,1
    - Dst: rs_mdfour64
      Src: /src/librsync/src/mdfour.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - md
    - p
    argTypes:
    - rs_mdfour_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: rs_mdfour_block
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached:
    - rs_mdfour64
    - copy64
    linkageType: ''
    returnType: void
    signature: void rs_mdfour_block(rs_mdfour_t *md, void const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_mdfour64
      Src: /src/librsync/src/mdfour.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - p
    argTypes:
    - rs_mdfour_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: rs_mdfour_block
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached:
    - rs_mdfour64
    linkageType: ''
    returnType: void
    signature: void rs_mdfour_block(rs_mdfour_t *md, void const *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/mdfour.c:214,1
    - Dst: rs_mdfour64
      Src: /src/librsync/src/mdfour.c:215,1
    - Dst: rs_mdfour64
      Src: /src/librsync/src/mdfour.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - md
    - p
    argTypes:
    - rs_mdfour_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 219
    functionName: rs_mdfour_block
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached:
    - memcpy
    - rs_mdfour64
    linkageType: ''
    returnType: void
    signature: void rs_mdfour_block(rs_mdfour_t *md, void const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/librsync/src/mdfour.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - md
    argTypes:
    - rs_mdfour_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 236
    functionName: rs_mdfour_begin
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void rs_mdfour_begin(rs_mdfour_t *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy8
      Src: /src/librsync/src/mdfour.c:258,1
    - Dst: copy4
      Src: /src/librsync/src/mdfour.c:262,1
    - Dst: copy4
      Src: /src/librsync/src/mdfour.c:263,1
    - Dst: rs_mdfour_update
      Src: /src/librsync/src/mdfour.c:268,1
    - Dst: rs_mdfour_update
      Src: /src/librsync/src/mdfour.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - m
    argTypes:
    - rs_mdfour_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 271
    functionName: rs_mdfour_tail
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached:
    - copy4
    - rs_mdfour_update
    - copy8
    linkageType: ''
    returnType: void
    signature: void rs_mdfour_tail(rs_mdfour_t *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/mdfour.c:290,1
    - Dst: rs_mdfour_block
      Src: /src/librsync/src/mdfour.c:291,1
    - Dst: rs_mdfour_block
      Src: /src/librsync/src/mdfour.c:299,1
    - Dst: memcpy
      Src: /src/librsync/src/mdfour.c:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - md
    - in_void
    - n
    argTypes:
    - rs_mdfour_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 308
    functionName: rs_mdfour_update
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 1
    functionsReached:
    - memcpy
    - rs_mdfour_block
    linkageType: ''
    returnType: void
    signature: void rs_mdfour_update(rs_mdfour_t *md, void const *in_void, size_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_mdfour_tail
      Src: /src/librsync/src/mdfour.c:312,1
    - Dst: copy4
      Src: /src/librsync/src/mdfour.c:314,1
    - Dst: copy4
      Src: /src/librsync/src/mdfour.c:315,1
    - Dst: copy4
      Src: /src/librsync/src/mdfour.c:316,1
    - Dst: copy4
      Src: /src/librsync/src/mdfour.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - md
    - out
    argTypes:
    - rs_mdfour_t*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 318
    functionName: rs_mdfour_result
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 0
    functionsReached:
    - copy4
    - rs_mdfour_tail
    linkageType: ''
    returnType: void
    signature: void rs_mdfour_result(rs_mdfour_t *md, unsigned char *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_mdfour_begin
      Src: /src/librsync/src/mdfour.c:324,1
    - Dst: rs_mdfour_update
      Src: /src/librsync/src/mdfour.c:325,1
    - Dst: rs_mdfour_result
      Src: /src/librsync/src/mdfour.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - n
    argTypes:
    - unsigned char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: rs_mdfour
    functionSourceFile: /src/librsync/src/mdfour.c
    functionUses: 1
    functionsReached:
    - rs_mdfour_result
    - rs_mdfour_begin
    - rs_mdfour_update
    linkageType: ''
    returnType: void
    signature: void rs_mdfour(unsigned char *out, void const *in, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sum
    argTypes:
    - rabinkarp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: rabinkarp_init
    functionSourceFile: /src/librsync/src/rabinkarp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rabinkarp_init(rabinkarp_t *sum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sum
    - out
    - in
    argTypes:
    - rabinkarp_t*
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: rabinkarp_rotate
    functionSourceFile: /src/librsync/src/rabinkarp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rabinkarp_rotate(rabinkarp_t *sum, unsigned char out,\n                                    unsigned
      char in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sum
    - in
    argTypes:
    - rabinkarp_t*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: rabinkarp_rollin
    functionSourceFile: /src/librsync/src/rabinkarp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rabinkarp_rollin(rabinkarp_t *sum, unsigned char in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sum
    - out
    argTypes:
    - rabinkarp_t*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: rabinkarp_rollout
    functionSourceFile: /src/librsync/src/rabinkarp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rabinkarp_rollout(rabinkarp_t *sum, unsigned char out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sum
    argTypes:
    - rabinkarp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: rabinkarp_digest
    functionSourceFile: /src/librsync/src/rabinkarp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rabinkarp_digest(rabinkarp_t *sum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/tube.c:68,1
    - Dst: memcpy
      Src: /src/librsync/src/tube.c:72,1
    - Dst: memmove
      Src: /src/librsync/src/tube.c:78,1
    - Dst: rs_trace
      Src: /src/librsync/src/tube.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/librsync/src/tube.c
    constantsTouched: []
    func_position:
      end: 82
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 82
    functionName: rs_tube_catchup_write
    functionSourceFile: /src/librsync/src/tube.c
    functionUses: 0
    functionsReached:
    - memmove
    - assert
    - memcpy
    - rs_trace
    linkageType: ''
    returnType: void
    signature: void rs_tube_catchup_write(rs_job_t *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/tube.c:90,1
    - Dst: assert
      Src: /src/librsync/src/tube.c:91,1
    - Dst: rs_scoop_avail
      Src: /src/librsync/src/tube.c:94,1
    - Dst: rs_scoop_iterbuf
      Src: /src/librsync/src/tube.c:104,1
    - Dst: rs_scoop_nextbuf
      Src: /src/librsync/src/tube.c:105,1
    - Dst: memcpy
      Src: /src/librsync/src/tube.c:106,1
    - Dst: rs_trace
      Src: /src/librsync/src/tube.c:111,1
    - Dst: rs_scoop_avail
      Src: /src/librsync/src/tube.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts:
    - condition: (job->write_len == 0)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/librsync/src/tube.c
    - condition: (job->copy_len > 0)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/librsync/src/tube.c
    constantsTouched: []
    func_position:
      end: 114
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 114
    functionName: rs_tube_catchup_copy
    functionSourceFile: /src/librsync/src/tube.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - rs_scoop_nextbuf
    - rs_trace
    - rs_scoop_iterbuf
    - rs_scoop_avail
    linkageType: ''
    returnType: void
    signature: void rs_tube_catchup_copy(rs_job_t *job)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rs_tube_catchup_write
      Src: /src/librsync/src/tube.c:123,1
    - Dst: rs_tube_catchup_copy
      Src: /src/librsync/src/tube.c:129,1
    - Dst: rs_scoop_eof
      Src: /src/librsync/src/tube.c:131,1
    - Dst: rs_error
      Src: /src/librsync/src/tube.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 139
    functionName: rs_tube_catchup
    functionSourceFile: /src/librsync/src/tube.c
    functionUses: 5
    functionsReached:
    - rs_scoop_eof
    - rs_tube_catchup_copy
    - rs_error
    - rs_tube_catchup_write
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_tube_catchup(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: rs_tube_is_idle
    functionSourceFile: /src/librsync/src/tube.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rs_tube_is_idle(rs_job_t const *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/tube.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - job
    - len
    argTypes:
    - rs_job_t*
    - size_t
    assertStmts:
    - condition: (job->copy_len == 0)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/librsync/src/tube.c
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: rs_tube_copy
    functionSourceFile: /src/librsync/src/tube.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void rs_tube_copy(rs_job_t *job, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/tube.c:176,1
    - Dst: assert
      Src: /src/librsync/src/tube.c:177,1
    - Dst: memcpy
      Src: /src/librsync/src/tube.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - job
    - buf
    - len
    argTypes:
    - rs_job_t*
    - void*
    - size_t
    assertStmts:
    - condition: (job->copy_len == 0)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/librsync/src/tube.c
    - condition: (len <= sizeof(job->write_buf) - job->write_len)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/librsync/src/tube.c
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: rs_tube_write
    functionSourceFile: /src/librsync/src/tube.c
    functionUses: 3
    functionsReached:
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: void rs_tube_write(rs_job_t *job, const void *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_trace_enabled
      Src: /src/librsync/src/readsums.c:43,1
    - Dst: rs_hexify
      Src: /src/librsync/src/readsums.c:45,1
    - Dst: rs_trace
      Src: /src/librsync/src/readsums.c:46,1
    - Dst: rs_signature_add_block
      Src: /src/librsync/src/readsums.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - job
    - strong
    argTypes:
    - rs_job_t*
    - rs_strong_sum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: rs_loadsig_add_sum
    functionSourceFile: /src/librsync/src/readsums.c
    functionUses: 0
    functionsReached:
    - rs_signature_add_block
    - rs_trace_enabled
    - rs_trace
    - rs_hexify
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_loadsig_add_sum(rs_job_t *job, rs_strong_sum_t *strong)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_suck_n4
      Src: /src/librsync/src/readsums.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: rs_loadsig_s_weak
    functionSourceFile: /src/librsync/src/readsums.c
    functionUses: 0
    functionsReached:
    - rs_suck_n4
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_loadsig_s_weak(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_scoop_read
      Src: /src/librsync/src/readsums.c:75,1
    - Dst: rs_loadsig_add_sum
      Src: /src/librsync/src/readsums.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 5
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: rs_loadsig_s_strong
    functionSourceFile: /src/librsync/src/readsums.c
    functionUses: 0
    functionsReached:
    - rs_loadsig_add_sum
    - rs_scoop_read
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_loadsig_s_strong(rs_job_t *job)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rs_suck_n4
      Src: /src/librsync/src/readsums.c:87,1
    - Dst: rs_error
      Src: /src/librsync/src/readsums.c:90,1
    - Dst: rs_trace
      Src: /src/librsync/src/readsums.c:93,1
    - Dst: rs_signature_init
      Src: /src/librsync/src/readsums.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: rs_loadsig_s_stronglen
    functionSourceFile: /src/librsync/src/readsums.c
    functionUses: 0
    functionsReached:
    - rs_suck_n4
    - rs_signature_init
    - rs_trace
    - rs_error
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_loadsig_s_stronglen(rs_job_t *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_suck_n4
      Src: /src/librsync/src/readsums.c:109,1
    - Dst: rs_error
      Src: /src/librsync/src/readsums.c:112,1
    - Dst: rs_trace
      Src: /src/librsync/src/readsums.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: rs_loadsig_s_blocklen
    functionSourceFile: /src/librsync/src/readsums.c
    functionUses: 0
    functionsReached:
    - rs_suck_n4
    - rs_trace
    - rs_error
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_loadsig_s_blocklen(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_suck_n4
      Src: /src/librsync/src/readsums.c:127,1
    - Dst: rs_trace
      Src: /src/librsync/src/readsums.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: rs_loadsig_s_magic
    functionSourceFile: /src/librsync/src/readsums.c
    functionUses: 0
    functionsReached:
    - rs_suck_n4
    - rs_trace
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_loadsig_s_magic(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_new
      Src: /src/librsync/src/readsums.c:139,1
    - Dst: rs_alloc_struct
      Src: /src/librsync/src/readsums.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - signature
    argTypes:
    - rs_signature_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: rs_loadsig_begin
    functionSourceFile: /src/librsync/src/readsums.c
    functionUses: 2
    functionsReached:
    - rs_alloc_struct
    - rs_job_new
    linkageType: ''
    returnType: rs_job_t
    signature: rs_job_t *rs_loadsig_begin(rs_signature_t **signature)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_suck_byte
      Src: /src/librsync/src/patch.c:55,1
    - Dst: rs_trace
      Src: /src/librsync/src/patch.c:58,1
    - Dst: rs_op_kind_name
      Src: /src/librsync/src/patch.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: rs_patch_s_cmdbyte
    functionSourceFile: /src/librsync/src/patch.c
    functionUses: 0
    functionsReached:
    - rs_op_kind_name
    - rs_suck_byte
    - rs_trace
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_patch_s_cmdbyte(rs_job_t *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/src/patch.c:77,1
    - Dst: rs_scoop_readahead
      Src: /src/librsync/src/patch.c:78,1
    - Dst: rs_suck_netint
      Src: /src/librsync/src/patch.c:82,1
    - Dst: assert
      Src: /src/librsync/src/patch.c:84,1
    - Dst: rs_suck_netint
      Src: /src/librsync/src/patch.c:86,1
    - Dst: assert
      Src: /src/librsync/src/patch.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts:
    - condition: (len)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/librsync/src/patch.c
    - condition: (result == RS_DONE)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/librsync/src/patch.c
    - condition: (result == RS_DONE)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/librsync/src/patch.c
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: rs_patch_s_params
    functionSourceFile: /src/librsync/src/patch.c
    functionUses: 0
    functionsReached:
    - rs_suck_netint
    - assert
    - rs_scoop_readahead
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_patch_s_params(rs_job_t *job)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rs_trace
      Src: /src/librsync/src/patch.c:96,1
    - Dst: rs_error
      Src: /src/librsync/src/patch.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: rs_patch_s_run
    functionSourceFile: /src/librsync/src/patch.c
    functionUses: 0
    functionsReached:
    - rs_error
    - rs_trace
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_patch_s_run(rs_job_t *job)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rs_trace
      Src: /src/librsync/src/patch.c:119,1
    - Dst: rs_error
      Src: /src/librsync/src/patch.c:121,1
    - Dst: rs_tube_copy
      Src: /src/librsync/src/patch.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: rs_patch_s_literal
    functionSourceFile: /src/librsync/src/patch.c
    functionUses: 0
    functionsReached:
    - rs_error
    - rs_trace
    - rs_tube_copy
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_patch_s_literal(rs_job_t *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_trace
      Src: /src/librsync/src/patch.c:138,1
    - Dst: rs_error
      Src: /src/librsync/src/patch.c:140,1
    - Dst: rs_error
      Src: /src/librsync/src/patch.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: rs_patch_s_copy
    functionSourceFile: /src/librsync/src/patch.c
    functionUses: 0
    functionsReached:
    - rs_error
    - rs_trace
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_patch_s_copy(rs_job_t *job)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rs_trace
      Src: /src/librsync/src/patch.c:172,1
    - Dst: rs_trace
      Src: /src/librsync/src/patch.c:177,1
    - Dst: rs_strerror
      Src: /src/librsync/src/patch.c:177,1
    - Dst: rs_trace
      Src: /src/librsync/src/patch.c:180,1
    - Dst: assert
      Src: /src/librsync/src/patch.c:182,1
    - Dst: rs_warn
      Src: /src/librsync/src/patch.c:185,1
    - Dst: memcpy
      Src: /src/librsync/src/patch.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts:
    - condition: (len <= req)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/librsync/src/patch.c
    constantsTouched: []
    func_position:
      end: 201
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 201
    functionName: rs_patch_s_copying
    functionSourceFile: /src/librsync/src/patch.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - rs_trace
    - rs_warn
    - rs_strerror
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_patch_s_copying(rs_job_t *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_suck_n4
      Src: /src/librsync/src/patch.c:209,1
    - Dst: rs_error
      Src: /src/librsync/src/patch.c:212,1
    - Dst: rs_trace
      Src: /src/librsync/src/patch.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - job
    argTypes:
    - rs_job_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: rs_patch_s_header
    functionSourceFile: /src/librsync/src/patch.c
    functionUses: 0
    functionsReached:
    - rs_suck_n4
    - rs_trace
    - rs_error
    linkageType: ''
    returnType: rs_result
    signature: rs_result rs_patch_s_header(rs_job_t *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rs_job_new
      Src: /src/librsync/src/patch.c:223,1
    - Dst: rs_mdfour_begin
      Src: /src/librsync/src/patch.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - copy_cb
    - copy_arg
    argTypes:
    - rs_copy_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: rs_patch_begin
    functionSourceFile: /src/librsync/src/patch.c
    functionUses: 2
    functionsReached:
    - rs_mdfour_begin
    - rs_job_new
    linkageType: ''
    returnType: rs_job_t
    signature: rs_job_t *rs_patch_begin(rs_copy_cb * copy_cb, void *copy_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: rs_trace_enabled
    functionSourceFile: /src/librsync/src/trace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_trace_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: rs_trace
    functionSourceFile: /src/librsync/src/trace.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_trace(...)
  - 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: rs_trace_enabled
    functionSourceFile: /src/librsync/src/trace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_trace_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: rs_log
    functionSourceFile: /src/librsync/src/trace.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_log(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: rs_warn
    functionSourceFile: /src/librsync/src/trace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_warn(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: rs_error
    functionSourceFile: /src/librsync/src/trace.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_error(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: rs_fatal
    functionSourceFile: /src/librsync/src/trace.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rs_fatal(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_impl
    argTypes:
    - rs_trace_fn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: rs_trace_to
    functionSourceFile: /src/librsync/src/trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rs_trace_to(rs_trace_fn_t *new_impl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - rs_loglevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: rs_trace_set_level
    functionSourceFile: /src/librsync/src/trace.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rs_trace_set_level(rs_loglevel level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/librsync/src/trace.c:75,1
    - Dst: snprintf
      Src: /src/librsync/src/trace.c:77,1
    - Dst: snprintf
      Src: /src/librsync/src/trace.c:80,1
    - Dst: rs_trace_impl
      Src: /src/librsync/src/trace.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - flags
    - fn
    - fmt
    - va
    argTypes:
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: rs_log_va
    functionSourceFile: /src/librsync/src/trace.c
    functionUses: 0
    functionsReached:
    - snprintf
    - vsnprintf
    - rs_trace_impl
    linkageType: ''
    returnType: void
    signature: void rs_log_va(int flags, char const *fn, char const *fmt, va_list
      va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/librsync/src/trace.c:92,1
    - Dst: rs_log_va
      Src: /src/librsync/src/trace.c:93,1
    - Dst: va_end
      Src: /src/librsync/src/trace.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - level
    - fn
    - fmt
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: rs_log0
    functionSourceFile: /src/librsync/src/trace.c
    functionUses: 0
    functionsReached:
    - va_end
    - rs_log_va
    - va_start
    linkageType: ''
    returnType: void
    signature: void rs_log0(int level, char const *fn, char const *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/librsync/src/trace.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - msg
    argTypes:
    - rs_loglevel
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: rs_trace_stderr
    functionSourceFile: /src/librsync/src/trace.c
    functionUses: 0
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void rs_trace_stderr(rs_loglevel UNUSED(level), char const *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: rs_supports_trace
    functionSourceFile: /src/librsync/src/trace.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rs_supports_trace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2-impl.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: load32
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE load32( const void *src )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2-impl.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 70
    functionName: load64
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE load64( const void *src )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2-impl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: load16
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE load16( const void *src )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2-impl.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - void*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: store16
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE store16( void *dst, uint16_t w )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2-impl.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: store32
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE store32( void *dst, uint32_t w )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2-impl.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: store64
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE store64( void *dst, uint64_t w )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: load48
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE load48( const void *src )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: store48
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE store48( void *dst, uint64_t w )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint32_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: rotr32
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE rotr32( const uint32_t w, const unsigned c )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint64_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: rotr64
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE rotr64( const uint64_t w, const unsigned c )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset_v
      Src: /src/librsync/src/blake2/blake2-impl.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: secure_zero_memory
    functionSourceFile: /src/librsync/src/blake2/blake2-impl.h
    functionUses: 0
    functionsReached:
    - memset_v
    linkageType: ''
    returnType: BLAKE2_INLINE
    signature: BLAKE2_INLINE secure_zero_memory(void *v, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: blake2b_set_lastnode
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void blake2b_set_lastnode( blake2b_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: blake2b_is_lastblock
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_is_lastblock( const blake2b_state *S )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_set_lastnode
      Src: /src/librsync/src/blake2/blake2b-ref.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: blake2b_set_lastblock
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - blake2b_set_lastnode
    linkageType: ''
    returnType: void
    signature: void blake2b_set_lastblock( blake2b_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - inc
    argTypes:
    - blake2b_state*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: blake2b_increment_counter
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void blake2b_increment_counter( blake2b_state *S, const uint64_t inc
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/librsync/src/blake2/blake2b-ref.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: blake2b_init0
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void blake2b_init0( blake2b_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init0
      Src: /src/librsync/src/blake2/blake2b-ref.c:86,1
    - Dst: load64
      Src: /src/librsync/src/blake2/blake2b-ref.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - blake2b_state*
    - blake2b_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: blake2b_init_param
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - load64
    - blake2b_init0
    linkageType: ''
    returnType: int
    signature: int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/librsync/src/blake2/blake2b-ref.c:108,1
    - Dst: store32
      Src: /src/librsync/src/blake2/blake2b-ref.c:109,1
    - Dst: store32
      Src: /src/librsync/src/blake2/blake2b-ref.c:110,1
    - Dst: memset
      Src: /src/librsync/src/blake2/blake2b-ref.c:113,1
    - Dst: memset
      Src: /src/librsync/src/blake2/blake2b-ref.c:114,1
    - Dst: memset
      Src: /src/librsync/src/blake2/blake2b-ref.c:115,1
    - Dst: blake2b_init_param
      Src: /src/librsync/src/blake2/blake2b-ref.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2b_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: blake2b_init
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 1
    functionsReached:
    - blake2b_init_param
    - store32
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2b_init( blake2b_state *S, size_t outlen )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/librsync/src/blake2/blake2b-ref.c:132,1
    - Dst: store32
      Src: /src/librsync/src/blake2/blake2b-ref.c:133,1
    - Dst: store32
      Src: /src/librsync/src/blake2/blake2b-ref.c:134,1
    - Dst: memset
      Src: /src/librsync/src/blake2/blake2b-ref.c:137,1
    - Dst: memset
      Src: /src/librsync/src/blake2/blake2b-ref.c:138,1
    - Dst: memset
      Src: /src/librsync/src/blake2/blake2b-ref.c:139,1
    - Dst: blake2b_init_param
      Src: /src/librsync/src/blake2/blake2b-ref.c:141,1
    - Dst: memset
      Src: /src/librsync/src/blake2/blake2b-ref.c:145,1
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2b-ref.c:146,1
    - Dst: blake2b_update
      Src: /src/librsync/src/blake2/blake2b-ref.c:147,1
    - Dst: secure_zero_memory
      Src: /src/librsync/src/blake2/blake2b-ref.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2b_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 151
    functionName: blake2b_init_key
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - memcpy
    - blake2b_update
    - blake2b_init_param
    - store32
    - secure_zero_memory
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key,
      size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: G
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(r,i,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: ROUND
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64
      Src: /src/librsync/src/blake2/blake2b-ref.c:184,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:200,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:201,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:202,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:203,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:204,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:205,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:206,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:207,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:208,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:209,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:210,1
    - Dst: ROUND
      Src: /src/librsync/src/blake2/blake2b-ref.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - S
    - block
    argTypes:
    - blake2b_state*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 216
    functionName: blake2b_compress
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - load64
    - ROUND
    linkageType: ''
    returnType: void
    signature: void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES]
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2b-ref.c:231,1
    - Dst: blake2b_increment_counter
      Src: /src/librsync/src/blake2/blake2b-ref.c:232,1
    - Dst: blake2b_compress
      Src: /src/librsync/src/blake2/blake2b-ref.c:233,1
    - Dst: blake2b_increment_counter
      Src: /src/librsync/src/blake2/blake2b-ref.c:236,1
    - Dst: blake2b_compress
      Src: /src/librsync/src/blake2/blake2b-ref.c:237,1
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2b-ref.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - S
    - pin
    - inlen
    argTypes:
    - blake2b_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 246
    functionName: blake2b_update
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 2
    functionsReached:
    - memcpy
    - blake2b_increment_counter
    - blake2b_compress
    linkageType: ''
    returnType: int
    signature: int blake2b_update( blake2b_state *S, const void *pin, size_t inlen
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_is_lastblock
      Src: /src/librsync/src/blake2/blake2b-ref.c:256,1
    - Dst: blake2b_increment_counter
      Src: /src/librsync/src/blake2/blake2b-ref.c:259,1
    - Dst: blake2b_set_lastblock
      Src: /src/librsync/src/blake2/blake2b-ref.c:260,1
    - Dst: memset
      Src: /src/librsync/src/blake2/blake2b-ref.c:261,1
    - Dst: blake2b_compress
      Src: /src/librsync/src/blake2/blake2b-ref.c:262,1
    - Dst: store64
      Src: /src/librsync/src/blake2/blake2b-ref.c:265,1
    - Dst: memcpy
      Src: /src/librsync/src/blake2/blake2b-ref.c:267,1
    - Dst: secure_zero_memory
      Src: /src/librsync/src/blake2/blake2b-ref.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2b_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 270
    functionName: blake2b_final
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 1
    functionsReached:
    - memcpy
    - blake2b_is_lastblock
    - blake2b_set_lastblock
    - store64
    - blake2b_compress
    - secure_zero_memory
    - blake2b_increment_counter
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2b_final( blake2b_state *S, void *out, size_t outlen )
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init_key
      Src: /src/librsync/src/blake2/blake2b-ref.c:290,1
    - Dst: blake2b_init
      Src: /src/librsync/src/blake2/blake2b-ref.c:294,1
    - Dst: blake2b_update
      Src: /src/librsync/src/blake2/blake2b-ref.c:297,1
    - Dst: blake2b_final
      Src: /src/librsync/src/blake2/blake2b-ref.c:298,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 6
    argNames:
    - out
    - outlen
    - in
    - inlen
    - key
    - keylen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 300
    functionName: blake2b
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - blake2b_final
    - blake2b_init_key
    - blake2b_init
    - blake2b_update
    linkageType: ''
    returnType: int
    signature: int blake2b( void *out, size_t outlen, const void *in, size_t inlen,
      const void *key, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b
      Src: /src/librsync/src/blake2/blake2b-ref.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - out
    - outlen
    - in
    - inlen
    - key
    - keylen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 5
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: blake2
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - blake2b
    linkageType: ''
    returnType: int
    signature: int blake2( void *out, size_t outlen, const void *in, size_t inlen,
      const void *key, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b
      Src: /src/librsync/src/blake2/blake2b-ref.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 5
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: crypto_hash
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - blake2b
    linkageType: ''
    returnType: int
    signature: int crypto_hash( unsigned char *out, unsigned char *in, unsigned long
      long inlen )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: blake2b
      Src: /src/librsync/src/blake2/blake2b-ref.c:332,1
    - Dst: memcmp
      Src: /src/librsync/src/blake2/blake2b-ref.c:334,1
    - Dst: blake2b_init_key
      Src: /src/librsync/src/blake2/blake2b-ref.c:349,1
    - Dst: blake2b_update
      Src: /src/librsync/src/blake2/blake2b-ref.c:354,1
    - Dst: blake2b_update
      Src: /src/librsync/src/blake2/blake2b-ref.c:360,1
    - Dst: blake2b_final
      Src: /src/librsync/src/blake2/blake2b-ref.c:363,1
    - Dst: memcmp
      Src: /src/librsync/src/blake2/blake2b-ref.c:367,1
    - Dst: puts
      Src: /src/librsync/src/blake2/blake2b-ref.c:373,1
    - Dst: puts
      Src: /src/librsync/src/blake2/blake2b-ref.c:376,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 378
    functionName: main
    functionSourceFile: /src/librsync/src/blake2/blake2b-ref.c
    functionUses: 3
    functionsReached:
    - blake2b_final
    - blake2b_update
    - blake2b_init_key
    - puts
    - memcmp
    - blake2b
    linkageType: ''
    returnType: int
    signature: int main( void )
  - 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: BLAKE2_PACKED
    functionSourceFile: /src/librsync/src/blake2/blake2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_PACKED(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: BLAKE2_PACKED
    functionSourceFile: /src/librsync/src/blake2/blake2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_PACKED(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/librsync/examples/stream/server.c:45,1
    - Dst: accept_connection
      Src: /src/librsync/examples/stream/server.c:46,1
    - Dst: puts
      Src: /src/librsync/examples/stream/server.c:51,1
    - Dst: recv_signature
      Src: /src/librsync/examples/stream/server.c:53,1
    - Dst: close
      Src: /src/librsync/examples/stream/server.c:55,1
    - Dst: puts
      Src: /src/librsync/examples/stream/server.c:59,1
    - Dst: send_delta
      Src: /src/librsync/examples/stream/server.c:60,1
    - Dst: rs_free_sumset
      Src: /src/librsync/examples/stream/server.c:61,1
    - Dst: close
      Src: /src/librsync/examples/stream/server.c:63,1
    - Dst: close
      Src: /src/librsync/examples/stream/server.c:67,1
    - Dst: puts
      Src: /src/librsync/examples/stream/server.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 70
    functionName: main
    functionSourceFile: /src/librsync/examples/stream/server.c
    functionUses: 3
    functionsReached:
    - accept_connection
    - send_delta
    - puts
    - rs_free_sumset
    - recv_signature
    - close
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/librsync/examples/stream/server.c:74,1
    - Dst: perror
      Src: /src/librsync/examples/stream/server.c:76,1
    - Dst: setsockopt
      Src: /src/librsync/examples/stream/server.c:82,1
    - Dst: htons
      Src: /src/librsync/examples/stream/server.c:87,1
    - Dst: htons
      Src: /src/librsync/examples/stream/server.c:88,1
    - Dst: bind
      Src: /src/librsync/examples/stream/server.c:91,1
    - Dst: perror
      Src: /src/librsync/examples/stream/server.c:93,1
    - Dst: close
      Src: /src/librsync/examples/stream/server.c:94,1
    - Dst: listen
      Src: /src/librsync/examples/stream/server.c:100,1
    - Dst: perror
      Src: /src/librsync/examples/stream/server.c:102,1
    - Dst: close
      Src: /src/librsync/examples/stream/server.c:103,1
    - Dst: accept
      Src: /src/librsync/examples/stream/server.c:109,1
    - Dst: close
      Src: /src/librsync/examples/stream/server.c:114,1
    - Dst: perror
      Src: /src/librsync/examples/stream/server.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 122
    functionName: accept_connection
    functionSourceFile: /src/librsync/examples/stream/server.c
    functionUses: 1
    functionsReached:
    - bind
    - accept
    - htons
    - listen
    - socket
    - setsockopt
    - perror
    - close
    linkageType: ''
    returnType: int
    signature: int accept_connection(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rs_loadsig_begin
      Src: /src/librsync/examples/stream/server.c:125,1
    - Dst: assert
      Src: /src/librsync/examples/stream/server.c:126,1
    - Dst: memmove
      Src: /src/librsync/examples/stream/server.c:136,1
    - Dst: recv_message
      Src: /src/librsync/examples/stream/server.c:140,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/server.c:142,1
    - Dst: rs_job_iter
      Src: /src/librsync/examples/stream/server.c:150,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/server.c:152,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/server.c:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - sock
    - sig
    argTypes:
    - int
    - rs_signature_t**
    assertStmts:
    - condition: (job != NULL)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/librsync/examples/stream/server.c
    constantsTouched: []
    func_position:
      end: 161
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 161
    functionName: recv_signature
    functionSourceFile: /src/librsync/examples/stream/server.c
    functionUses: 1
    functionsReached:
    - memmove
    - assert
    - recv_message
    - rs_job_free
    - rs_job_iter
    - rs_loadsig_begin
    linkageType: ''
    returnType: int
    signature: int recv_signature(int sock, rs_signature_t **sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rs_build_hash_table
      Src: /src/librsync/examples/stream/server.c:165,1
    - Dst: rs_file_open
      Src: /src/librsync/examples/stream/server.c:171,1
    - Dst: assert
      Src: /src/librsync/examples/stream/server.c:172,1
    - Dst: rs_delta_begin
      Src: /src/librsync/examples/stream/server.c:175,1
    - Dst: assert
      Src: /src/librsync/examples/stream/server.c:176,1
    - Dst: memmove
      Src: /src/librsync/examples/stream/server.c:187,1
    - Dst: fread
      Src: /src/librsync/examples/stream/server.c:191,1
    - Dst: ferror
      Src: /src/librsync/examples/stream/server.c:193,1
    - Dst: perror
      Src: /src/librsync/examples/stream/server.c:194,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/server.c:195,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/server.c:196,1
    - Dst: feof
      Src: /src/librsync/examples/stream/server.c:199,1
    - Dst: rs_job_iter
      Src: /src/librsync/examples/stream/server.c:206,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/server.c:208,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/server.c:209,1
    - Dst: assert
      Src: /src/librsync/examples/stream/server.c:214,1
    - Dst: assert
      Src: /src/librsync/examples/stream/server.c:217,1
    - Dst: send_message
      Src: /src/librsync/examples/stream/server.c:218,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/server.c:220,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/server.c:221,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/server.c:230,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/server.c:231,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - sock
    - sig
    - fname
    argTypes:
    - int
    - rs_signature_t*
    - char*
    assertStmts:
    - condition: (file != NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/librsync/examples/stream/server.c
    - condition: (present <= BUFFER_SIZE)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/librsync/examples/stream/server.c
    - condition: (bufs.next_out >= out_buf)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/librsync/examples/stream/server.c
    - condition: (job != NULL)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/librsync/examples/stream/server.c
    constantsTouched: []
    func_position:
      end: 233
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 233
    functionName: send_delta
    functionSourceFile: /src/librsync/examples/stream/server.c
    functionUses: 1
    functionsReached:
    - memmove
    - rs_file_open
    - assert
    - fread
    - rs_job_free
    - feof
    - rs_build_hash_table
    - rs_job_iter
    - send_message
    - perror
    - rs_delta_begin
    - ferror
    - rs_file_close
    linkageType: ''
    returnType: int
    signature: int send_delta(int sock, rs_signature_t *sig, const char *fname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/librsync/examples/stream/client.c:53,1
    - Dst: connect_to_server
      Src: /src/librsync/examples/stream/client.c:54,1
    - Dst: puts
      Src: /src/librsync/examples/stream/client.c:59,1
    - Dst: send_signature
      Src: /src/librsync/examples/stream/client.c:60,1
    - Dst: close
      Src: /src/librsync/examples/stream/client.c:62,1
    - Dst: puts
      Src: /src/librsync/examples/stream/client.c:66,1
    - Dst: recv_delta_and_patch_file
      Src: /src/librsync/examples/stream/client.c:67,1
    - Dst: close
      Src: /src/librsync/examples/stream/client.c:69,1
    - Dst: close
      Src: /src/librsync/examples/stream/client.c:73,1
    - Dst: puts
      Src: /src/librsync/examples/stream/client.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/librsync/examples/stream/client.c
    functionUses: 3
    functionsReached:
    - connect_to_server
    - puts
    - recv_delta_and_patch_file
    - send_signature
    - close
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/librsync/examples/stream/client.c:80,1
    - Dst: perror
      Src: /src/librsync/examples/stream/client.c:82,1
    - Dst: inet_addr
      Src: /src/librsync/examples/stream/client.c:89,1
    - Dst: htons
      Src: /src/librsync/examples/stream/client.c:90,1
    - Dst: connect
      Src: /src/librsync/examples/stream/client.c:93,1
    - Dst: perror
      Src: /src/librsync/examples/stream/client.c:95,1
    - Dst: close
      Src: /src/librsync/examples/stream/client.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ip_addr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 101
    functionName: connect_to_server
    functionSourceFile: /src/librsync/examples/stream/client.c
    functionUses: 1
    functionsReached:
    - inet_addr
    - htons
    - socket
    - perror
    - connect
    - close
    linkageType: ''
    returnType: int
    signature: int connect_to_server(const char *ip_addr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/librsync/examples/stream/client.c:105,1
    - Dst: open
      Src: /src/librsync/examples/stream/client.c:107,1
    - Dst: close
      Src: /src/librsync/examples/stream/client.c:109,1
    - Dst: rs_file_open
      Src: /src/librsync/examples/stream/client.c:114,1
    - Dst: assert
      Src: /src/librsync/examples/stream/client.c:115,1
    - Dst: rs_file_size
      Src: /src/librsync/examples/stream/client.c:118,1
    - Dst: rs_sig_args
      Src: /src/librsync/examples/stream/client.c:123,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/client.c:125,1
    - Dst: rs_sig_begin
      Src: /src/librsync/examples/stream/client.c:130,1
    - Dst: assert
      Src: /src/librsync/examples/stream/client.c:131,1
    - Dst: memmove
      Src: /src/librsync/examples/stream/client.c:145,1
    - Dst: fread
      Src: /src/librsync/examples/stream/client.c:149,1
    - Dst: ferror
      Src: /src/librsync/examples/stream/client.c:151,1
    - Dst: perror
      Src: /src/librsync/examples/stream/client.c:152,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/client.c:153,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/client.c:154,1
    - Dst: feof
      Src: /src/librsync/examples/stream/client.c:159,1
    - Dst: assert
      Src: /src/librsync/examples/stream/client.c:160,1
    - Dst: rs_job_iter
      Src: /src/librsync/examples/stream/client.c:167,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/client.c:169,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/client.c:170,1
    - Dst: assert
      Src: /src/librsync/examples/stream/client.c:174,1
    - Dst: assert
      Src: /src/librsync/examples/stream/client.c:178,1
    - Dst: send_message
      Src: /src/librsync/examples/stream/client.c:179,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/client.c:181,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/client.c:182,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/client.c:192,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/client.c:193,1
    - Dst: printf
      Src: /src/librsync/examples/stream/client.c:195,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - sock
    - fname
    argTypes:
    - int
    - char*
    assertStmts:
    - condition: (job != NULL)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/librsync/examples/stream/client.c
    - condition: (file != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/librsync/examples/stream/client.c
    - condition: (bufs.eof_in != 0)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/librsync/examples/stream/client.c
    - condition: (bufs.next_out >= out_buf)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/librsync/examples/stream/client.c
    - condition: (present <= BUFFER_SIZE)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/librsync/examples/stream/client.c
    constantsTouched: []
    func_position:
      end: 198
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 198
    functionName: send_signature
    functionSourceFile: /src/librsync/examples/stream/client.c
    functionUses: 1
    functionsReached:
    - memmove
    - rs_file_open
    - rs_file_size
    - assert
    - fread
    - printf
    - rs_job_free
    - feof
    - rs_job_iter
    - send_message
    - open
    - strcmp
    - rs_sig_args
    - rs_sig_begin
    - ferror
    - perror
    - close
    - rs_file_close
    linkageType: ''
    returnType: int
    signature: int send_signature(int sock, const char *fname)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/librsync/examples/stream/client.c:201,1
    - Dst: snprintf
      Src: /src/librsync/examples/stream/client.c:206,1
    - Dst: fputs
      Src: /src/librsync/examples/stream/client.c:208,1
    - Dst: rs_file_open
      Src: /src/librsync/examples/stream/client.c:215,1
    - Dst: assert
      Src: /src/librsync/examples/stream/client.c:216,1
    - Dst: rs_file_open
      Src: /src/librsync/examples/stream/client.c:219,1
    - Dst: assert
      Src: /src/librsync/examples/stream/client.c:220,1
    - Dst: rs_patch_begin
      Src: /src/librsync/examples/stream/client.c:222,1
    - Dst: assert
      Src: /src/librsync/examples/stream/client.c:223,1
    - Dst: memmove
      Src: /src/librsync/examples/stream/client.c:237,1
    - Dst: recv_message
      Src: /src/librsync/examples/stream/client.c:241,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/client.c:244,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/client.c:245,1
    - Dst: rs_job_iter
      Src: /src/librsync/examples/stream/client.c:254,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/client.c:257,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/client.c:258,1
    - Dst: assert
      Src: /src/librsync/examples/stream/client.c:263,1
    - Dst: fwrite
      Src: /src/librsync/examples/stream/client.c:266,1
    - Dst: perror
      Src: /src/librsync/examples/stream/client.c:268,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/client.c:270,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/client.c:271,1
    - Dst: rs_file_close
      Src: /src/librsync/examples/stream/client.c:281,1
    - Dst: rs_job_free
      Src: /src/librsync/examples/stream/client.c:282,1
    - Dst: printf
      Src: /src/librsync/examples/stream/client.c:284,1
    - Dst: rename
      Src: /src/librsync/examples/stream/client.c:287,1
    - Dst: perror
      Src: /src/librsync/examples/stream/client.c:289,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - sock
    - fname_old
    argTypes:
    - int
    - char*
    assertStmts:
    - condition: (old != NULL)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/librsync/examples/stream/client.c
    - condition: (new != NULL)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/librsync/examples/stream/client.c
    - condition: (bufs.next_out >= out_buf)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/librsync/examples/stream/client.c
    - condition: (job != NULL)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/librsync/examples/stream/client.c
    constantsTouched: []
    func_position:
      end: 295
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 295
    functionName: recv_delta_and_patch_file
    functionSourceFile: /src/librsync/examples/stream/client.c
    functionUses: 1
    functionsReached:
    - memmove
    - rs_file_open
    - snprintf
    - assert
    - recv_message
    - fputs
    - printf
    - rs_job_free
    - rs_job_iter
    - fwrite
    - rs_patch_begin
    - strcmp
    - perror
    - rename
    - rs_file_close
    linkageType: ''
    returnType: int
    signature: int recv_delta_and_patch_file(int sock, const char *fname_old)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/librsync/examples/stream/common.h:61,1
    - Dst: htons
      Src: /src/librsync/examples/stream/common.h:71,1
    - Dst: write
      Src: /src/librsync/examples/stream/common.h:74,1
    - Dst: perror
      Src: /src/librsync/examples/stream/common.h:81,1
    - Dst: write
      Src: /src/librsync/examples/stream/common.h:91,1
    - Dst: perror
      Src: /src/librsync/examples/stream/common.h:98,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - sock
    - msg
    - len
    - eof
    argTypes:
    - int
    - char*
    - size_t
    - int
    assertStmts:
    - condition: (len <= BUFFER_SIZE)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/librsync/examples/stream/common.h
    constantsTouched: []
    func_position:
      end: 106
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 106
    functionName: send_message
    functionSourceFile: /src/librsync/examples/stream/common.h
    functionUses: 2
    functionsReached:
    - assert
    - write
    - perror
    - htons
    linkageType: ''
    returnType: int
    signature: int send_message(int sock, const char *msg, size_t len, int eof)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/librsync/examples/stream/common.h:113,1
    - Dst: perror
      Src: /src/librsync/examples/stream/common.h:120,1
    - Dst: ntohs
      Src: /src/librsync/examples/stream/common.h:125,1
    - Dst: read
      Src: /src/librsync/examples/stream/common.h:137,1
    - Dst: perror
      Src: /src/librsync/examples/stream/common.h:144,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - sock
    - msg
    - len
    - eof
    argTypes:
    - int
    - char*
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 152
    functionName: recv_message
    functionSourceFile: /src/librsync/examples/stream/common.h
    functionUses: 2
    functionsReached:
    - ntohs
    - read
    - perror
    linkageType: ''
    returnType: int
    signature: int recv_message(int sock, char *msg, size_t *len, int *eof)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_newline.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 5
    argNames:
    - ptr
    - type
    - endptr
    - lenptr
    - utf
    argTypes:
    - PCRE2_SPTR
    - uint32_t
    - PCRE2_SPTR
    - uint32_t*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 145
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_newline.c
    functionUses: 0
    functionsReached:
    - GETCHAR
    linkageType: ''
    returnType: BOOL
    signature: "BOOL PRIV(is_newline)(PCRE2_SPTR ptr, uint32_t type, PCRE2_SPTR endptr,\n
      \ uint32_t *lenptr, BOOL utf)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_newline.c:178,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_newline.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 5
    argNames:
    - ptr
    - type
    - startptr
    - lenptr
    - utf
    argTypes:
    - PCRE2_SPTR
    - uint32_t
    - PCRE2_SPTR
    - uint32_t*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 241
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_newline.c
    functionUses: 0
    functionsReached:
    - BACKCHAR
    - GETCHAR
    linkageType: ''
    returnType: BOOL
    signature: "BOOL PRIV(was_newline)(PCRE2_SPTR ptr, uint32_t type, PCRE2_SPTR startptr,\n
      \ uint32_t *lenptr, BOOL utf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: max_fast_forward_char_pair_offset
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE max_fast_forward_char_pair_offset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:70,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:71,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:73,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - compiler
    - reg
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: jump_if_utf_char_start
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - OP2
    - CMP
    linkageType: ''
    returnType: struct sljit_jump
    signature: struct sljit_jump *jump_if_utf_char_start(struct sljit_compiler *compiler,
      sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chr
    argTypes:
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 100
    functionName: character_to_int32
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 character_to_int32(PCRE2_UCHAR chr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:106,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:107,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:117,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - compiler
    - dst_xmm_reg
    - src_general_reg
    - offset
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: load_from_mem_sse2
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    - sljit_emit_op_custom
    linkageType: ''
    returnType: void
    signature: void load_from_mem_sse2(struct sljit_compiler *compiler, sljit_s32
      dst_xmm_reg, sljit_s32 src_general_reg, sljit_s8 offset)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:133,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:146,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:159,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:171,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:180,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:189,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 7
    argNames:
    - compiler
    - compare_type
    - step
    - dst_ind
    - cmp1_ind
    - cmp2_ind
    - tmp_ind
    argTypes:
    - struct sljit_compiler*
    - vector_compare_type
    - int
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 201
    functionName: fast_forward_char_pair_sse2_compare
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    - sljit_emit_op_custom
    linkageType: ''
    returnType: void
    signature: "void fast_forward_char_pair_sse2_compare(struct sljit_compiler *compiler,
      vector_compare_type compare_type,\n  int step, sljit_s32 dst_ind, sljit_s32
      cmp1_ind, sljit_s32 cmp2_ind, sljit_s32 tmp_ind)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:216,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:217,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:225,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:232,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:239,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:241,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:245,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:245,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:247,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:254,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:258,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:258,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:262,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:265,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:273,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:279,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:283,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:285,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:286,1
    - Dst: load_from_mem_sse2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:288,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:290,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:297,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:299,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:300,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:302,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:304,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:307,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:309,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:311,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:313,1
    - Dst: load_from_mem_sse2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:315,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:317,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:324,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:326,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:328,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:334,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:336,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:340,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:341,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:342,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:343,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:346,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:346,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:351,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:353,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:353,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:353,1
    - Dst: jump_if_utf_char_start
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:355,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:357,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:357,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:358,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:358,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:359,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:360,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:362,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 83
    argCount: 4
    argNames:
    - common
    - char1
    - char2
    - offset
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 365
    functionName: fast_forward_char_simd
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - jump_if_utf_char_start
    - SLJIT_MEM1
    - IN_UCHARS
    - CMOV
    - CMP
    - JUMPTO
    - load_from_mem_sse2
    - SLJIT_ASSERT
    - OP2
    - character_to_int32
    - add_jump
    - JUMPHERE
    - OP1
    - CMPTO
    - is_powerof2
    - fast_forward_char_pair_sse2_compare
    - sljit_get_register_index
    - SLJIT_UNUSED_ARG
    - sljit_emit_op_custom
    - LABEL
    linkageType: ''
    returnType: void
    signature: void fast_forward_char_simd(compiler_common *common, PCRE2_UCHAR char1,
      PCRE2_UCHAR char2, sljit_s32 offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:377,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:378,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:391,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:398,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:398,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:399,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:400,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:404,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:404,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:406,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:413,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:417,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:417,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:421,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:424,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:432,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:438,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:441,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:442,1
    - Dst: load_from_mem_sse2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:444,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:446,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:453,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:455,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:456,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:458,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:460,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:463,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:465,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:467,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:467,1
    - Dst: load_from_mem_sse2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:469,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:471,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:478,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:480,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:482,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:488,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:490,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:491,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:491,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:493,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 65
    argCount: 3
    argNames:
    - common
    - char1
    - char2
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 495
    functionName: fast_requested_char_simd
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - LABEL
    - is_powerof2
    - character_to_int32
    - add_jump
    - OP2
    - JUMPHERE
    - fast_forward_char_pair_sse2_compare
    - sljit_get_register_index
    - OP1
    - CMP
    - load_from_mem_sse2
    - CMPTO
    - SLJIT_ASSERT
    - sljit_emit_op_custom
    linkageType: ''
    returnType: jump_list
    signature: jump_list *fast_requested_char_simd(compiler_common *common, PCRE2_UCHAR
      char1, PCRE2_UCHAR char2)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:510,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:511,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:512,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:513,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:529,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:530,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:530,1
    - Dst: max_fast_forward_char_pair_offset
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:530,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:531,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:536,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:536,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:537,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:538,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:538,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:540,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:541,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:544,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:544,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:545,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:545,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:553,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:553,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:557,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:560,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:560,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:561,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:561,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:567,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:567,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:568,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:568,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:573,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:578,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:582,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:582,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:586,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:589,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:589,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:590,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:590,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:596,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:596,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:597,1
    - Dst: character_to_int32
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:597,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:602,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:607,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:617,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:622,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:626,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:631,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:635,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:638,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:639,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:640,1
    - Dst: load_from_mem_sse2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:642,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:644,1
    - Dst: load_from_mem_sse2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:646,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:647,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:649,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:656,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:664,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:666,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:668,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:672,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:673,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:681,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:688,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:691,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:692,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:694,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:696,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:699,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:701,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:702,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:702,1
    - Dst: load_from_mem_sse2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:704,1
    - Dst: load_from_mem_sse2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:705,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:709,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:710,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:718,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:725,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:727,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:729,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:735,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:737,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:739,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:739,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:744,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:744,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:744,1
    - Dst: jump_if_utf_char_start
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:746,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:748,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:748,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:749,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:751,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:751,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:753,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:757,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:757,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:760,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 137
    argCount: 7
    argNames:
    - common
    - offs1
    - char1a
    - char1b
    - offs2
    - char2a
    - char2b
    argTypes:
    - compiler_common*
    - sljit_s32
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    - sljit_s32
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 761
    functionName: fast_forward_char_pair_simd
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - jump_if_utf_char_start
    - IN_UCHARS
    - SLJIT_MEM1
    - CMOV
    - CMP
    - load_from_mem_sse2
    - SLJIT_ASSERT
    - OP2
    - character_to_int32
    - add_jump
    - JUMPHERE
    - OP1
    - CMPTO
    - is_powerof2
    - JUMP
    - fast_forward_char_pair_sse2_compare
    - max_fast_forward_char_pair_offset
    - sljit_get_register_index
    - sljit_emit_op_custom
    - LABEL
    linkageType: ''
    returnType: void
    signature: "void fast_forward_char_pair_simd(compiler_common *common, sljit_s32
      offs1,\n  PCRE2_UCHAR char1a, PCRE2_UCHAR char1b, sljit_s32 offs2, PCRE2_UCHAR
      char2a, PCRE2_UCHAR char2b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - sljit_u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 788
    functionName: utf_continue
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE utf_continue(sljit_u8 *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 795
    functionName: VLD1Q
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLD1Q(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 809
    functionName: VLD1Q
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLD1Q(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 823
    functionName: VLD1Q
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLD1Q(X)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:870,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:870,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:871,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:871,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:874,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:875,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:876,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:882,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:886,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:886,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:886,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:886,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:886,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:886,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:887,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:889,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:889,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:889,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:889,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:889,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:889,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:890,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:892,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:892,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:892,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:892,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:892,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:892,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:893,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:899,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:903,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:907,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:907,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:907,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:907,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:907,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:907,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:908,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:910,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:910,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:910,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:910,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:910,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:910,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:911,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:913,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:913,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:913,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:913,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:913,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:913,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:914,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:921,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:925,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:925,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:925,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:925,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:925,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:925,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:926,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:928,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:928,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:928,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:928,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:928,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:928,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:929,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:931,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:931,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:931,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:931,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:931,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:931,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:932,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:937,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:937,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:938,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:938,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:941,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:943,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:946,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:949,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - common
    - char1
    - char2
    - offset
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 950
    functionName: fast_forward_char_simd
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - is_powerof2
    - SLJIT_ARG4
    - add_jump
    - SLJIT_ARG3
    - JUMPHERE
    - SLJIT_RET
    - SLJIT_MEM1
    - SLJIT_ARG2
    - OP1
    - sljit_emit_icall
    - CMP
    - SLJIT_ARG1
    - SLJIT_FUNC_OFFSET
    linkageType: ''
    returnType: void
    signature: void fast_forward_char_simd(compiler_common *common, PCRE2_UCHAR char1,
      PCRE2_UCHAR char2, sljit_s32 offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:963,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:964,1
    - Dst: VORRQ
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:965,1
    - Dst: VORRQ
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:970,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctype
    - dst
    - cmp1
    - cmp2
    argTypes:
    - compare_type
    - vect_t
    - vect_t
    - vect_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 973
    functionName: fast_forward_char_pair_compare
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - VCEQQ
    - VORRQ
    linkageType: ''
    returnType: vect_t
    signature: vect_t fast_forward_char_pair_compare(compare_type ctype, vect_t dst,
      vect_t cmp1, vect_t cmp2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 986
    functionName: max_fast_forward_char_pair_offset
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE max_fast_forward_char_pair_offset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:991,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:992,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:997,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:997,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:997,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:999,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:999,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:999,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:999,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1001,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1001,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1001,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1001,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1001,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1001,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1001,1
    - Dst: C
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - vect_t
    - sljit_u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1009
    functionName: shift_left_n_lanes
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    - VDUPQ
    - C
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE shift_left_n_lanes(vect_t a, sljit_u8 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 995
    functionName: C
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(X)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1052,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1055,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1056,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1056,1
    - Dst: max_fast_forward_char_pair_offset
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1056,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1057,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1060,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1060,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1064,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1067,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1067,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1068,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1068,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1070,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1071,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1074,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1075,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1076,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1081,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1087,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1087,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1087,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1087,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1087,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1087,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1088,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1091,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1091,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1091,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1091,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1091,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1091,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1092,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1096,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1096,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1096,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1096,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1096,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1096,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1097,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1100,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1100,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1100,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1100,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1100,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1100,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1101,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1106,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1106,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1106,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1106,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1106,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1106,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1107,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1110,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1110,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1110,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1110,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1110,1
    - Dst: SLJIT_ARG4
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1110,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1111,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1115,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1115,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1118,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1119,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1122,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1124,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 7
    argNames:
    - common
    - offs1
    - char1a
    - char1b
    - offs2
    - char2a
    - char2b
    argTypes:
    - compiler_common*
    - sljit_s32
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    - sljit_s32
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1125
    functionName: fast_forward_char_pair_simd
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - OP2
    - SLJIT_ARG4
    - add_jump
    - SLJIT_ARG3
    - SLJIT_FUNC_OFFSET
    - JUMPHERE
    - SLJIT_RET
    - IN_UCHARS
    - SLJIT_MEM1
    - max_fast_forward_char_pair_offset
    - CMOV
    - SLJIT_ARG2
    - OP1
    - sljit_emit_icall
    - CMP
    - SLJIT_ARG1
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: "void fast_forward_char_pair_simd(compiler_common *common, sljit_s32
      offs1,\n  PCRE2_UCHAR char1a, PCRE2_UCHAR char1b, sljit_s32 offs2, PCRE2_UCHAR
      char2a, PCRE2_UCHAR char2b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - compiler
    - vlbb
    - dst_vreg
    - base_reg
    - index_reg
    argTypes:
    - struct sljit_compiler*
    - BOOL
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1141
    functionDepth: 0
    functionLinenumber: 1141
    functionLinenumberEnd: 1151
    functionName: load_from_mem_vector
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - sljit_emit_op_custom
    linkageType: ''
    returnType: void
    signature: "void load_from_mem_vector(struct sljit_compiler *compiler, BOOL vlbb,
      sljit_s32 dst_vreg,\n  sljit_s32 base_reg, sljit_s32 index_reg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1160,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1171,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1177,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1180,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1183,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - compiler
    - step
    - dst_vreg
    - chr
    - tmp_general_reg
    argTypes:
    - struct sljit_compiler*
    - int
    - sljit_s32
    - PCRE2_UCHAR
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1192
    functionName: replicate_imm_vector
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - sljit_get_register_index
    - OP1
    - SLJIT_ASSERT
    - sljit_emit_op_custom
    linkageType: ''
    returnType: void
    signature: "void replicate_imm_vector(struct sljit_compiler *compiler, int step,
      sljit_s32 dst_vreg,\n  PCRE2_UCHAR chr, sljit_s32 tmp_general_reg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1201,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1209,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1221,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1233,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 7
    argNames:
    - compiler
    - compare_type
    - step
    - dst_ind
    - cmp1_ind
    - cmp2_ind
    - tmp_ind
    argTypes:
    - struct sljit_compiler*
    - vector_compare_type
    - int
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1244
    functionName: fast_forward_char_pair_sse2_compare
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 3
    functionsReached:
    - SLJIT_ASSERT
    - sljit_emit_op_custom
    linkageType: ''
    returnType: void
    signature: "void fast_forward_char_pair_sse2_compare(struct sljit_compiler *compiler,
      vector_compare_type compare_type,\n  int step, sljit_s32 dst_ind, sljit_s32
      cmp1_ind, sljit_s32 cmp2_ind, sljit_s32 tmp_ind)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1259,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1260,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1269,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1276,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1283,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1285,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1289,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1297,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1305,1
    - Dst: replicate_imm_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1312,1
    - Dst: replicate_imm_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1315,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1326,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1330,1
    - Dst: load_from_mem_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1333,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1334,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1339,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1345,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1350,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1356,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1363,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1365,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1366,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1368,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1371,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1373,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1375,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1377,1
    - Dst: load_from_mem_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1379,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1384,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1390,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1395,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1401,1
    - Dst: sljit_set_current_flags
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1404,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1405,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1411,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1413,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1415,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1419,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1420,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1421,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1422,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1425,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1425,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1430,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1432,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1432,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1432,1
    - Dst: jump_if_utf_char_start
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1434,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1436,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1436,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1437,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1437,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1439,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1440,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1442,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 106
    argCount: 4
    argNames:
    - common
    - char1
    - char2
    - offset
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1445
    functionName: fast_forward_char_simd
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - jump_if_utf_char_start
    - SLJIT_MEM1
    - IN_UCHARS
    - CMOV
    - CMP
    - JUMPTO
    - OP2
    - add_jump
    - JUMPHERE
    - OP1
    - is_powerof2
    - fast_forward_char_pair_sse2_compare
    - sljit_get_register_index
    - SLJIT_UNUSED_ARG
    - sljit_emit_op_custom
    - LABEL
    - replicate_imm_vector
    - load_from_mem_vector
    - sljit_set_current_flags
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void fast_forward_char_simd(compiler_common *common, PCRE2_UCHAR char1,
      PCRE2_UCHAR char2, sljit_s32 offset)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1457,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1458,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1472,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1479,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1479,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1483,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1491,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1499,1
    - Dst: replicate_imm_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1506,1
    - Dst: replicate_imm_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1509,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1520,1
    - Dst: load_from_mem_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1523,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1524,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1529,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1535,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1540,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1546,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1553,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1555,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1556,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1558,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1561,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1563,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1565,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1565,1
    - Dst: load_from_mem_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1567,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1572,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1578,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1583,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1589,1
    - Dst: sljit_set_current_flags
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1592,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1593,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1599,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1601,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1603,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1604,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1604,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 85
    argCount: 3
    argNames:
    - common
    - char1
    - char2
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1607
    functionName: fast_requested_char_simd
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - is_powerof2
    - OP2
    - add_jump
    - replicate_imm_vector
    - JUMPHERE
    - load_from_mem_vector
    - fast_forward_char_pair_sse2_compare
    - sljit_set_current_flags
    - sljit_get_register_index
    - CMP
    - JUMPTO
    - LABEL
    - sljit_emit_op_custom
    linkageType: ''
    returnType: jump_list
    signature: jump_list *fast_requested_char_simd(compiler_common *common, PCRE2_UCHAR
      char1, PCRE2_UCHAR char2)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1626,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1627,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1628,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1629,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1641,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1642,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1642,1
    - Dst: max_fast_forward_char_pair_offset
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1642,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1643,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1650,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1662,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1672,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1672,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1673,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1674,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1674,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1676,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1677,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1680,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1680,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1681,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1681,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1682,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1686,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1692,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1700,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1707,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1715,1
    - Dst: replicate_imm_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1722,1
    - Dst: replicate_imm_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1725,1
    - Dst: replicate_imm_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1727,1
    - Dst: replicate_imm_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1730,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1733,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1741,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1744,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1747,1
    - Dst: load_from_mem_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1748,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1749,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1750,1
    - Dst: load_from_mem_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1751,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1752,1
    - Dst: load_from_mem_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1754,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1755,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1759,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1760,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1767,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1773,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1779,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1781,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1782,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1784,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1785,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1788,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1790,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1791,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1791,1
    - Dst: load_from_mem_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1793,1
    - Dst: load_from_mem_vector
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1794,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1798,1
    - Dst: fast_forward_char_pair_sse2_compare
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1799,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1806,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1812,1
    - Dst: sljit_set_current_flags
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1814,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1815,1
    - Dst: sljit_emit_op_custom
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1821,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1823,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1825,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1827,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1827,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1832,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1834,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1834,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1834,1
    - Dst: jump_if_utf_char_start
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1836,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1838,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1838,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1839,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1839,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1842,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1843,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1844,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1846,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1850,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1850,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_simd_inc.h:1853,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 131
    argCount: 7
    argNames:
    - common
    - offs1
    - char1a
    - char1b
    - offs2
    - char2a
    - char2b
    argTypes:
    - compiler_common*
    - sljit_s32
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    - sljit_s32
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1611
    functionDepth: 2
    functionLinenumber: 1611
    functionLinenumberEnd: 1854
    functionName: fast_forward_char_pair_simd
    functionSourceFile: /src/pcre2/src/pcre2_jit_simd_inc.h
    functionUses: 0
    functionsReached:
    - jump_if_utf_char_start
    - IN_UCHARS
    - SLJIT_MEM1
    - CMOV
    - CMP
    - JUMPTO
    - SLJIT_ASSERT
    - OP2
    - add_jump
    - JUMPHERE
    - OP1
    - is_powerof2
    - JUMP
    - fast_forward_char_pair_sse2_compare
    - max_fast_forward_char_pair_offset
    - sljit_get_register_index
    - sljit_emit_op_custom
    - replicate_imm_vector
    - load_from_mem_vector
    - sljit_set_current_flags
    - LABEL
    linkageType: ''
    returnType: void
    signature: "void fast_forward_char_pair_simd(compiler_common *common, sljit_s32
      offs1,\n  PCRE2_UCHAR char1a, PCRE2_UCHAR char1b, sljit_s32 offs2, PCRE2_UCHAR
      char2a, PCRE2_UCHAR char2b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: PUTCHARS
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTCHARS(string)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: PUTCHARS
      Src: /src/pcre2/src/pcre2_convert.c:148,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_convert.c:170,1
    - Dst: PUTCHARS
      Src: /src/pcre2/src/pcre2_convert.c:184,1
    - Dst: islower
      Src: /src/pcre2/src/pcre2_convert.c:195,1
    - Dst: PUTCHARS
      Src: /src/pcre2/src/pcre2_convert.c:200,1
    - Dst: PUTCHARS
      Src: /src/pcre2/src/pcre2_convert.c:217,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_convert.c:219,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_convert.c:219,1
    - Dst: PUTCHARS
      Src: /src/pcre2/src/pcre2_convert.c:229,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_convert.c:246,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_convert.c:246,1
    - Dst: PUTCHARS
      Src: /src/pcre2/src/pcre2_convert.c:267,1
    - Dst: PUTCHARS
      Src: /src/pcre2/src/pcre2_convert.c:273,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2_convert.c:282,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2_convert.c:284,1
    - Dst: PUTCHARS
      Src: /src/pcre2/src/pcre2_convert.c:284,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2_convert.c:340,1
    - Dst: PUTCHARS
      Src: /src/pcre2/src/pcre2_convert.c:343,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_convert.c:347,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_convert.c:347,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 159
    argCount: 9
    argNames:
    - pattype
    - pattern
    - plength
    - utf
    - use_buffer
    - use_length
    - bufflenptr
    - dummyrun
    - ccontext
    argTypes:
    - uint32_t
    - PCRE2_SPTR
    - PCRE2_SIZE
    - BOOL
    - PCRE2_UCHAR*
    - PCRE2_SIZE
    - PCRE2_SIZE*
    - BOOL
    - pcre2_convert_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 360
    functionName: convert_posix
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - memcpy
    - isdigit
    - CU2BYTES
    - strchr
    - GETCHARLENTEST
    - islower
    - PUTCHARS
    linkageType: ''
    returnType: int
    signature: "int convert_posix(uint32_t pattype, PCRE2_SPTR pattern, PCRE2_SIZE
      plength,\n  BOOL utf, PCRE2_UCHAR *use_buffer, PCRE2_SIZE use_length,\n  PCRE2_SIZE
      *bufflenptr, BOOL dummyrun, pcre2_convert_context *ccontext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - chr
    argTypes:
    - pcre2_output_context*
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 391
    functionName: convert_glob_write
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void convert_glob_write(pcre2_output_context *out, PCRE2_UCHAR chr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - length
    argTypes:
    - pcre2_output_context*
    - PCRE2_SIZE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 420
    functionName: convert_glob_write_str
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void convert_glob_write_str(pcre2_output_context *out, PCRE2_SIZE length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:436,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - separator
    - with_escape
    argTypes:
    - pcre2_output_context*
    - PCRE2_UCHAR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 439
    functionName: convert_glob_print_separator
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - convert_glob_write
    linkageType: ''
    returnType: void
    signature: "void convert_glob_print_separator(pcre2_output_context *out,\n  PCRE2_UCHAR
      separator, BOOL with_escape)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:456,1
    - Dst: convert_glob_print_separator
      Src: /src/pcre2/src/pcre2_convert.c:458,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - out
    - separator
    - with_escape
    argTypes:
    - pcre2_output_context*
    - PCRE2_UCHAR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 461
    functionName: convert_glob_print_wildcard
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - convert_glob_print_separator
    - convert_glob_write_str
    - convert_glob_write
    linkageType: ''
    returnType: void
    signature: "void convert_glob_print_wildcard(pcre2_output_context *out,\n  PCRE2_UCHAR
      separator, BOOL with_escape)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:516,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - from
    - pattern_end
    - out
    argTypes:
    - PCRE2_SPTR*
    - PCRE2_SPTR
    - pcre2_output_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 529
    functionName: convert_glob_parse_class
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - convert_glob_write
    linkageType: ''
    returnType: int
    signature: "int convert_glob_parse_class(PCRE2_SPTR *from, PCRE2_SPTR pattern_end,\n
      \ pcre2_output_context *out)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/pcre2/src/pcre2_convert.c:546,1
    - Dst: isalpha
      Src: /src/pcre2/src/pcre2_convert.c:547,1
    - Dst: iscntrl
      Src: /src/pcre2/src/pcre2_convert.c:550,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2_convert.c:551,1
    - Dst: isgraph
      Src: /src/pcre2/src/pcre2_convert.c:552,1
    - Dst: islower
      Src: /src/pcre2/src/pcre2_convert.c:553,1
    - Dst: isprint
      Src: /src/pcre2/src/pcre2_convert.c:554,1
    - Dst: ispunct
      Src: /src/pcre2/src/pcre2_convert.c:555,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2_convert.c:556,1
    - Dst: isupper
      Src: /src/pcre2/src/pcre2_convert.c:557,1
    - Dst: isalnum
      Src: /src/pcre2/src/pcre2_convert.c:558,1
    - Dst: isxdigit
      Src: /src/pcre2/src/pcre2_convert.c:559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 2
    argNames:
    - class_index
    - c
    argTypes:
    - int
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 561
    functionName: convert_glob_char_in_class
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - iscntrl
    - isalpha
    - ispunct
    - isxdigit
    - isdigit
    - isalnum
    - isspace
    - isupper
    - islower
    - isprint
    - isgraph
    linkageType: ''
    returnType: BOOL
    signature: BOOL convert_glob_char_in_class(int class_index, PCRE2_UCHAR c)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:624,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:627,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:636,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_convert.c:645,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:649,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:657,1
    - Dst: convert_glob_print_separator
      Src: /src/pcre2/src/pcre2_convert.c:659,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:660,1
    - Dst: convert_glob_parse_class
      Src: /src/pcre2/src/pcre2_convert.c:672,1
    - Dst: convert_glob_char_in_class
      Src: /src/pcre2/src/pcre2_convert.c:682,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:690,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_convert.c:693,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_convert.c:700,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_convert.c:724,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:735,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:739,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 108
    argCount: 8
    argNames:
    - from
    - pattern_end
    - out
    - utf
    - separator
    - with_escape
    - escape
    - no_wildsep
    argTypes:
    - PCRE2_SPTR*
    - PCRE2_SPTR
    - pcre2_output_context*
    - BOOL
    - PCRE2_UCHAR
    - BOOL
    - PCRE2_UCHAR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 744
    functionName: convert_glob_parse_range
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - convert_glob_write_str
    - convert_glob_write
    - convert_glob_char_in_class
    - GETCHARINCTEST
    - convert_glob_parse_class
    - convert_glob_print_separator
    linkageType: ''
    returnType: int
    signature: "int convert_glob_parse_range(PCRE2_SPTR *from, PCRE2_SPTR pattern_end,\n
      \ pcre2_output_context *out, BOOL utf, PCRE2_UCHAR separator,\n  BOOL with_escape,
      PCRE2_UCHAR escape, BOOL no_wildsep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:764,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - pcre2_output_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 766
    functionName: convert_glob_print_commit
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - convert_glob_write_str
    - convert_glob_write
    linkageType: ''
    returnType: void
    signature: void convert_glob_print_commit(pcre2_output_context *out)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/pcre2/src/pcre2_convert.c:816,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:827,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:844,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:857,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:890,1
    - Dst: convert_glob_print_separator
      Src: /src/pcre2/src/pcre2_convert.c:892,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:893,1
    - Dst: convert_glob_print_commit
      Src: /src/pcre2/src/pcre2_convert.c:899,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:906,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:917,1
    - Dst: convert_glob_print_separator
      Src: /src/pcre2/src/pcre2_convert.c:919,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:924,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:955,1
    - Dst: convert_glob_print_commit
      Src: /src/pcre2/src/pcre2_convert.c:959,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:963,1
    - Dst: convert_glob_print_wildcard
      Src: /src/pcre2/src/pcre2_convert.c:965,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:971,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:978,1
    - Dst: convert_glob_print_wildcard
      Src: /src/pcre2/src/pcre2_convert.c:980,1
    - Dst: convert_glob_parse_range
      Src: /src/pcre2/src/pcre2_convert.c:986,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2_convert.c:1002,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:1003,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:1005,1
    - Dst: convert_glob_write_str
      Src: /src/pcre2/src/pcre2_convert.c:1014,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:1018,1
    - Dst: convert_glob_write
      Src: /src/pcre2/src/pcre2_convert.c:1020,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 157
    argCount: 9
    argNames:
    - options
    - pattern
    - plength
    - utf
    - use_buffer
    - use_length
    - bufflenptr
    - dummyrun
    - ccontext
    argTypes:
    - uint32_t
    - PCRE2_SPTR
    - PCRE2_SIZE
    - BOOL
    - PCRE2_UCHAR*
    - PCRE2_SIZE
    - PCRE2_SIZE*
    - BOOL
    - pcre2_convert_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 1034
    functionName: convert_glob
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - convert_glob_print_commit
    - convert_glob_write_str
    - convert_glob_write
    - convert_glob_print_wildcard
    - convert_glob_parse_range
    - strchr
    - convert_glob_print_separator
    linkageType: ''
    returnType: int
    signature: "int convert_glob(uint32_t options, PCRE2_SPTR pattern, PCRE2_SIZE
      plength,\n  BOOL utf, PCRE2_UCHAR *use_buffer, PCRE2_SIZE use_length,\n  PCRE2_SIZE
      *bufflenptr, BOOL dummyrun, pcre2_convert_context *ccontext)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_convert.c:1078,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_convert.c:1080,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_convert.c:1094,1
    - Dst: convert_glob
      Src: /src/pcre2/src/pcre2_convert.c:1123,1
    - Dst: convert_posix
      Src: /src/pcre2/src/pcre2_convert.c:1129,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_convert.c:1146,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 6
    argNames:
    - pattern
    - plength
    - options
    - buffptr
    - bufflenptr
    - ccontext
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SIZE
    - uint32_t
    - PCRE2_UCHAR**
    - PCRE2_SIZE*
    - pcre2_convert_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1056
    functionDepth: 4
    functionLinenumber: 1056
    functionLinenumberEnd: 1158
    functionName: pcre2_pattern_convert
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - convert_posix
    - PRIV
    - convert_glob
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_pattern_convert(PCRE2_SPTR pattern, PCRE2_SIZE
      plength, uint32_t options,\n  PCRE2_UCHAR **buffptr, PCRE2_SIZE *bufflenptr,\n
      \ pcre2_convert_context *ccontext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_memctl*::free
      Src: /src/pcre2/src/pcre2_convert.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - converted
    argTypes:
    - PCRE2_UCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1180
    functionName: pcre2_converted_pattern_free
    functionSourceFile: /src/pcre2/src/pcre2_convert.c
    functionUses: 0
    functionsReached:
    - pcre2_memctl*::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_converted_pattern_free(PCRE2_UCHAR *converted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: STRING
    functionSourceFile: /src/pcre2/src/pcre2_error.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: XSTRING
    functionSourceFile: /src/pcre2/src/pcre2_error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSTRING(s)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_general_context*::memctl::malloc
      Src: /src/pcre2/src/pcre2_maketables.c:85,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2_maketables.c:86,1
    - Dst: tolower
      Src: /src/pcre2/src/pcre2_maketables.c:97,1
    - Dst: islower
      Src: /src/pcre2/src/pcre2_maketables.c:101,1
    - Dst: toupper
      Src: /src/pcre2/src/pcre2_maketables.c:101,1
    - Dst: tolower
      Src: /src/pcre2/src/pcre2_maketables.c:101,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_maketables.c:116,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2_maketables.c:119,1
    - Dst: isupper
      Src: /src/pcre2/src/pcre2_maketables.c:120,1
    - Dst: islower
      Src: /src/pcre2/src/pcre2_maketables.c:121,1
    - Dst: isalnum
      Src: /src/pcre2/src/pcre2_maketables.c:122,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2_maketables.c:124,1
    - Dst: isxdigit
      Src: /src/pcre2/src/pcre2_maketables.c:125,1
    - Dst: isgraph
      Src: /src/pcre2/src/pcre2_maketables.c:126,1
    - Dst: isprint
      Src: /src/pcre2/src/pcre2_maketables.c:127,1
    - Dst: ispunct
      Src: /src/pcre2/src/pcre2_maketables.c:128,1
    - Dst: iscntrl
      Src: /src/pcre2/src/pcre2_maketables.c:129,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2_maketables.c:141,1
    - Dst: isalpha
      Src: /src/pcre2/src/pcre2_maketables.c:142,1
    - Dst: islower
      Src: /src/pcre2/src/pcre2_maketables.c:143,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2_maketables.c:144,1
    - Dst: isalnum
      Src: /src/pcre2/src/pcre2_maketables.c:145,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 48
    argCount: 1
    argNames:
    - gcontext
    argTypes:
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 150
    functionName: PCRE2_CALL_CONVENTION::pcre2_maketables
    functionSourceFile: /src/pcre2/src/pcre2_maketables.c
    functionUses: 0
    functionsReached:
    - tolower
    - iscntrl
    - isalpha
    - ispunct
    - isxdigit
    - toupper
    - isdigit
    - isalnum
    - isspace
    - isupper
    - islower
    - pcre2_general_context*::memctl::malloc
    - malloc
    - isprint
    - isgraph
    - memset
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: 'PCRE2_EXP_DEFN * PCRE2_CALL_CONVENTION

      pcre2_maketables(pcre2_general_context *gcontext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_general_context*::memctl::free
      Src: /src/pcre2/src/pcre2_maketables.c:157,1
    - Dst: free
      Src: /src/pcre2/src/pcre2_maketables.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - gcontext
    - tables
    argTypes:
    - pcre2_general_context*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: pcre2_maketables_free
    functionSourceFile: /src/pcre2/src/pcre2_maketables.c
    functionUses: 0
    functionsReached:
    - free
    - pcre2_general_context*::memctl::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_maketables_free(pcre2_general_context *gcontext,
      const uint8_t *tables)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_pattern_info.c:192,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 135
    argCount: 3
    argNames:
    - code
    - what
    - where
    argTypes:
    - pcre2_code*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 248
    functionName: pcre2_pattern_info
    functionSourceFile: /src/pcre2/src/pcre2_pattern_info.c
    functionUses: 2
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_pattern_info(const pcre2_code *code, uint32_t
      what, void *where)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_pattern_info.c:361,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_pattern_info.c:363,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_pattern_info.c:363,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_pattern_info.c:380,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_pattern_info.c:388,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_pattern_info.c:397,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_pattern_info.c:401,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_pattern_info.c:402,1
    - Dst: callback
      Src: /src/pcre2/src/pcre2_pattern_info.c:407,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_pattern_info.c:409,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_pattern_info.c:413,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_pattern_info.c:414,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_pattern_info.c:416,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_pattern_info.c:418,1
    - Dst: callback
      Src: /src/pcre2/src/pcre2_pattern_info.c:420,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_pattern_info.c:422,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_pattern_info.c:426,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 130
    argCount: 2
    argNames:
    - code
    - callout_data
    argTypes:
    - pcre2_code*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 430
    functionName: pcre2_callout_enumerate
    functionSourceFile: /src/pcre2/src/pcre2_pattern_info.c
    functionUses: 0
    functionsReached:
    - GET_EXTRALEN
    - callback
    - HAS_EXTRALEN
    - PRIV
    - GET
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_callout_enumerate(const pcre2_code *code,\n  int
      (*callback)(pcre2_callout_enumerate_block *, void *), void *callout_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match_data.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - oveccount
    - gcontext
    argTypes:
    - uint32_t
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: pcre2_match_data_create
    functionSourceFile: /src/pcre2/src/pcre2_match_data.c
    functionUses: 1
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: void
    signature: void pcre2_match_data_create(uint32_t oveccount, pcre2_general_context
      *gcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_create
      Src: /src/pcre2/src/pcre2_match_data.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - code
    - gcontext
    argTypes:
    - pcre2_code*
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: pcre2_match_data_create_from_pattern
    functionSourceFile: /src/pcre2/src/pcre2_match_data.c
    functionUses: 7
    functionsReached:
    - pcre2_match_data_create
    linkageType: ''
    returnType: void
    signature: "void pcre2_match_data_create_from_pattern(const pcre2_code *code,\n
      \ pcre2_general_context *gcontext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data*::memctl::free
      Src: /src/pcre2/src/pcre2_match_data.c:99,1
    - Dst: pcre2_match_data*::memctl::free
      Src: /src/pcre2/src/pcre2_match_data.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - match_data
    argTypes:
    - pcre2_match_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: pcre2_match_data_free
    functionSourceFile: /src/pcre2/src/pcre2_match_data.c
    functionUses: 8
    functionsReached:
    - pcre2_match_data*::memctl::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_match_data_free(pcre2_match_data *match_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - match_data
    argTypes:
    - pcre2_match_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: pcre2_get_mark
    functionSourceFile: /src/pcre2/src/pcre2_match_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_get_mark(pcre2_match_data *match_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - match_data
    argTypes:
    - pcre2_match_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: pcre2_get_ovector_pointer
    functionSourceFile: /src/pcre2/src/pcre2_match_data.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pcre2_get_ovector_pointer(pcre2_match_data *match_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - match_data
    argTypes:
    - pcre2_match_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pcre2_get_ovector_count
    functionSourceFile: /src/pcre2/src/pcre2_match_data.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_get_ovector_count(pcre2_match_data *match_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - match_data
    argTypes:
    - pcre2_match_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: pcre2_get_startchar
    functionSourceFile: /src/pcre2/src/pcre2_match_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_get_startchar(pcre2_match_data *match_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - match_data
    argTypes:
    - pcre2_match_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: pcre2_get_match_data_size
    functionSourceFile: /src/pcre2/src/pcre2_match_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_get_match_data_size(pcre2_match_data *match_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: STRING
    functionSourceFile: /src/pcre2/src/pcre2_config.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: XSTRING
    functionSourceFile: /src/pcre2/src/pcre2_config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSTRING(s)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_config.c:157,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2_config.c:159,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_config.c:159,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_config.c:203,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2_config.c:208,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_config.c:208,1
    - Dst: XSTRING
      Src: /src/pcre2/src/pcre2_config.c:242,1
    - Dst: XSTRING
      Src: /src/pcre2/src/pcre2_config.c:243,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2_config.c:245,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_config.c:245,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 86
    argCount: 2
    argNames:
    - what
    - where
    argTypes:
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 250
    functionName: pcre2_config
    functionSourceFile: /src/pcre2/src/pcre2_config.c
    functionUses: 0
    functionsReached:
    - PRIV
    - XSTRING
    - strlen
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_config(uint32_t what, void *where)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PRINTABLE
      Src: /src/pcre2/src/pcre2_printint.c:116,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:116,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:117,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:118,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:137,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:143,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:145,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:150,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:156,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:167,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:171,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:180,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 3
    argNames:
    - f
    - ptr
    - utf
    argTypes:
    - FILE*
    - PCRE2_SPTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 184
    functionName: print_char
    functionSourceFile: /src/pcre2/src/pcre2_printint.c
    functionUses: 0
    functionsReached:
    - PRIV
    - PRINTABLE
    - fprintf
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int print_char(FILE *f, PCRE2_SPTR ptr, BOOL utf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRINTABLE
      Src: /src/pcre2/src/pcre2_printint.c:210,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:210,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - f
    - ptr
    argTypes:
    - FILE*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: print_custring
    functionSourceFile: /src/pcre2/src/pcre2_printint.c
    functionUses: 0
    functionsReached:
    - PRINTABLE
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_custring(FILE *f, PCRE2_SPTR ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRINTABLE
      Src: /src/pcre2/src/pcre2_printint.c:220,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:220,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - f
    - ptr
    - len
    argTypes:
    - FILE*
    - PCRE2_SPTR
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 222
    functionName: print_custring_bylen
    functionSourceFile: /src/pcre2/src/pcre2_printint.c
    functionUses: 0
    functionsReached:
    - PRINTABLE
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_custring_bylen(FILE *f, PCRE2_SPTR ptr, PCRE2_UCHAR len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:240,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:242,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:242,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:244,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ptype
    - pvalue
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: get_ucpname
    functionSourceFile: /src/pcre2/src/pcre2_printint.c
    functionUses: 0
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: char
    signature: 'char *

      get_ucpname(unsigned int ptype, unsigned int pvalue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:276,1
    - Dst: get_ucpname
      Src: /src/pcre2/src/pcre2_printint.c:276,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:282,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:283,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:284,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - f
    - code
    - before
    - after
    argTypes:
    - FILE*
    - PCRE2_SPTR
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 287
    functionName: print_prop
    functionSourceFile: /src/pcre2/src/pcre2_printint.c
    functionUses: 0
    functionsReached:
    - PRIV
    - get_ucpname
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_prop(FILE *f, PCRE2_SPTR code, const char *before, const
      char *after)
  - BBCount: 180
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:326,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:328,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:347,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:348,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:352,1
    - Dst: print_char
      Src: /src/pcre2/src/pcre2_printint.c:356,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:359,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:363,1
    - Dst: print_char
      Src: /src/pcre2/src/pcre2_printint.c:367,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:370,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:377,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:377,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:378,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:379,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:379,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:402,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:402,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:403,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:404,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:408,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:408,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:412,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:412,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:417,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:418,1
    - Dst: print_custring
      Src: /src/pcre2/src/pcre2_printint.c:419,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:420,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:420,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:425,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:427,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:429,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:434,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:435,1
    - Dst: print_custring
      Src: /src/pcre2/src/pcre2_printint.c:436,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:437,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:437,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:442,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:446,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:478,1
    - Dst: print_prop
      Src: /src/pcre2/src/pcre2_printint.c:484,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:487,1
    - Dst: print_char
      Src: /src/pcre2/src/pcre2_printint.c:489,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:490,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:503,1
    - Dst: print_char
      Src: /src/pcre2/src/pcre2_printint.c:504,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:505,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:506,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:507,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:507,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:508,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:509,1
    - Dst: print_prop
      Src: /src/pcre2/src/pcre2_printint.c:518,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:521,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:522,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:523,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:524,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:524,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:525,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:526,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:533,1
    - Dst: print_char
      Src: /src/pcre2/src/pcre2_printint.c:534,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:535,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:559,1
    - Dst: print_char
      Src: /src/pcre2/src/pcre2_printint.c:560,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:561,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:575,1
    - Dst: print_char
      Src: /src/pcre2/src/pcre2_printint.c:576,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:577,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:578,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:579,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:579,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:580,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:582,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:586,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:586,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:587,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:588,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:595,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:595,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:604,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:605,1
    - Dst: print_custring
      Src: /src/pcre2/src/pcre2_printint.c:606,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:607,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:607,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:613,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:614,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:614,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:619,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:620,1
    - Dst: print_custring_bylen
      Src: /src/pcre2/src/pcre2_printint.c:621,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:622,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:623,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_printint.c:625,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:628,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:628,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:628,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:629,1
    - Dst: print_prop
      Src: /src/pcre2/src/pcre2_printint.c:634,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:651,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_printint.c:655,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:661,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:690,1
    - Dst: PRINTABLE
      Src: /src/pcre2/src/pcre2_printint.c:691,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:691,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:692,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:695,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:696,1
    - Dst: PRINTABLE
      Src: /src/pcre2/src/pcre2_printint.c:697,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:697,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:698,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:731,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:735,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:739,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:743,1
    - Dst: get_ucpname
      Src: /src/pcre2/src/pcre2_printint.c:744,1
    - Dst: print_char
      Src: /src/pcre2/src/pcre2_printint.c:751,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:754,1
    - Dst: print_char
      Src: /src/pcre2/src/pcre2_printint.c:755,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:764,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:780,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:787,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_printint.c:788,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:789,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:790,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:791,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:792,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:810,1
    - Dst: print_custring_bylen
      Src: /src/pcre2/src/pcre2_printint.c:811,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:816,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:827,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_printint.c:832,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 402
    argCount: 3
    argNames:
    - re
    - f
    - print_lengths
    argTypes:
    - pcre2_code*
    - FILE*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 834
    functionName: pcre2_printint
    functionSourceFile: /src/pcre2/src/pcre2_printint.c
    functionUses: 0
    functionsReached:
    - print_char
    - print_custring_bylen
    - get_ucpname
    - PRINTABLE
    - print_prop
    - fprintf
    - GET
    - print_custring
    - PRIV
    - GET2
    linkageType: ''
    returnType: void
    signature: void pcre2_printint(pcre2_code *re, FILE *f, BOOL print_lengths)
  - 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: 799
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 799
    functionName: PCRE2_JOIN
    functionSourceFile: /src/pcre2/src/pcre2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JOIN(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: 800
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 800
    functionName: PCRE2_GLUE
    functionSourceFile: /src/pcre2/src/pcre2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GLUE(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 801
    functionName: PCRE2_SUFFIX
    functionSourceFile: /src/pcre2/src/pcre2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUFFIX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 978
    functionName: PCRE2_SUFFIX
    functionSourceFile: /src/pcre2/src/pcre2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUFFIX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 982
    functionName: PCRE2_SUFFIX
    functionSourceFile: /src/pcre2/src/pcre2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUFFIX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_misc.c:61,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_misc.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - current
    - allocator_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_jit_misc.c
    functionUses: 9
    functionsReached:
    - SLJIT_FREE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: void PRIV(jit_free_rodata)(void *current, void *allocator_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sljit_free_code
      Src: /src/pcre2/src/pcre2_jit_misc.c:92,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_misc.c:93,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_misc.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - executable_jit
    - memctl
    argTypes:
    - void*
    - pcre2_memctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_jit_misc.c
    functionUses: 10
    functionsReached:
    - sljit_free_code
    - SLJIT_FREE
    - PRIV
    linkageType: ''
    returnType: void
    signature: void PRIV(jit_free)(void *executable_jit, pcre2_memctl *memctl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_misc.c:112,1
    - Dst: sljit_free_unused_memory_exec
      Src: /src/pcre2/src/pcre2_jit_misc.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - gcontext
    argTypes:
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: pcre2_jit_free_unused_memory
    functionSourceFile: /src/pcre2/src/pcre2_jit_misc.c
    functionUses: 0
    functionsReached:
    - sljit_free_unused_memory_exec
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_jit_free_unused_memory(pcre2_general_context *gcontext)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_misc.c:145,1
    - Dst: sljit_allocate_stack
      Src: /src/pcre2/src/pcre2_jit_misc.c:147,1
    - Dst: pcre2_jit_stack*::memctl::free
      Src: /src/pcre2/src/pcre2_jit_misc.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - startsize
    - maxsize
    - gcontext
    argTypes:
    - size_t
    - size_t
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: pcre2_jit_stack_create
    functionSourceFile: /src/pcre2/src/pcre2_jit_misc.c
    functionUses: 0
    functionsReached:
    - sljit_allocate_stack
    - PRIV
    - pcre2_jit_stack*::memctl::free
    linkageType: ''
    returnType: void
    signature: "void pcre2_jit_stack_create(size_t startsize, size_t maxsize,\n  pcre2_general_context
      *gcontext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mcontext
    - callback
    - callback_data
    argTypes:
    - pcre2_match_context*
    - pcre2_jit_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 178
    functionName: pcre2_jit_stack_assign
    functionSourceFile: /src/pcre2/src/pcre2_jit_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_jit_stack_assign(pcre2_match_context *mcontext,
      pcre2_jit_callback callback,\n  void *callback_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sljit_free_stack
      Src: /src/pcre2/src/pcre2_jit_misc.c:193,1
    - Dst: pcre2_jit_stack*::memctl::free
      Src: /src/pcre2/src/pcre2_jit_misc.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - jit_stack
    argTypes:
    - pcre2_jit_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: pcre2_jit_stack_free
    functionSourceFile: /src/pcre2/src/pcre2_jit_misc.c
    functionUses: 0
    functionsReached:
    - sljit_free_stack
    - pcre2_jit_stack*::memctl::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_jit_stack_free(pcre2_jit_stack *jit_stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_get_platform_name
      Src: /src/pcre2/src/pcre2_jit_misc.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_jit_misc.c
    functionUses: 11
    functionsReached:
    - sljit_get_platform_name
    linkageType: ''
    returnType: char
    signature: 'char *

      PRIV(jit_get_target)(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/pcre2_jit_misc.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - executable_jit
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_jit_misc.c
    functionUses: 11
    functionsReached:
    - SLJIT_COMPILE_ASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t PRIV(jit_get_size)(void *executable_jit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: SET_BIT
    functionSourceFile: /src/pcre2/src/pcre2_study.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BIT(c)
  - BBCount: 225
    BranchProfiles: []
    Callsites:
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:116,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:158,1
    - Dst: find_minlength
      Src: /src/pcre2/src/pcre2_study.c:186,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:190,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:203,1
    - Dst: find_minlength
      Src: /src/pcre2/src/pcre2_study.c:207,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:212,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:239,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:253,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:276,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:280,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:289,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:290,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_study.c:315,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_study.c:315,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:333,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_study.c:336,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_study.c:336,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:341,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:400,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:408,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:420,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:422,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:424,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:447,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:478,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:481,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:490,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:496,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:498,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:502,1
    - Dst: find_minlength
      Src: /src/pcre2/src/pcre2_study.c:521,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:547,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:557,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:559,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:562,1
    - Dst: find_minlength
      Src: /src/pcre2/src/pcre2_study.c:580,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:620,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:643,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:644,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:651,1
    - Dst: find_minlength
      Src: /src/pcre2/src/pcre2_study.c:664,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:723,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_study.c:725,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_study.c:725,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:736,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:748,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 440
    argCount: 7
    argNames:
    - re
    - code
    - startcode
    - utf
    - recurses
    - countptr
    - backref_cache
    argTypes:
    - pcre2_real_code*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - BOOL
    - recurse_check*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 759
    functionName: find_minlength
    functionSourceFile: /src/pcre2/src/pcre2_study.c
    functionUses: 1
    functionsReached:
    - GET_EXTRALEN
    - HAS_EXTRALEN
    - GET
    - PRIV
    - find_minlength
    - GET2
    linkageType: ''
    returnType: int
    signature: "int find_minlength(const pcre2_real_code *re, PCRE2_SPTR code,\n  PCRE2_SPTR
      startcode, BOOL utf, recurse_check *recurses, int *countptr,\n  int *backref_cache)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:793,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:796,1
    - Dst: GETUTF8INC
      Src: /src/pcre2/src/pcre2_study.c:805,1
    - Dst: GETUTF16INC
      Src: /src/pcre2/src/pcre2_study.c:807,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_study.c:819,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:824,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:825,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:827,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:829,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:829,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_study.c:838,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:838,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - re
    - p
    - caseless
    - utf
    - ucp
    argTypes:
    - pcre2_real_code*
    - PCRE2_SPTR
    - BOOL
    - BOOL
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 842
    functionName: set_table_bit
    functionSourceFile: /src/pcre2/src/pcre2_study.c
    functionUses: 0
    functionsReached:
    - UCD_OTHERCASE
    - MAX_255
    - GETUTF8INC
    - PRIV
    - SET_BIT
    - GETUTF16INC
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: "PCRE2_SPTR set_table_bit(pcre2_real_code *re, PCRE2_SPTR p, BOOL caseless,
      BOOL utf,\n  BOOL ucp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:878,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:879,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - re
    - cbit_type
    - table_limit
    argTypes:
    - pcre2_real_code*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 883
    functionName: set_type_bits
    functionSourceFile: /src/pcre2/src/pcre2_study.c
    functionUses: 0
    functionsReached:
    - PRIV
    - SET_BIT
    linkageType: ''
    returnType: void
    signature: void set_type_bits(pcre2_real_code *re, int cbit_type, unsigned int
      table_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - re
    - cbit_type
    - table_limit
    argTypes:
    - pcre2_real_code*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 915
    functionName: set_nottype_bits
    functionSourceFile: /src/pcre2/src/pcre2_study.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_nottype_bits(pcre2_real_code *re, int cbit_type, unsigned
      int table_limit)
  - BBCount: 203
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:1072,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:1083,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:1090,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1094,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1094,1
    - Dst: set_start_bits
      Src: /src/pcre2/src/pcre2_study.c:1124,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:1131,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_study.c:1158,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:1162,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:1171,1
    - Dst: set_start_bits
      Src: /src/pcre2/src/pcre2_study.c:1180,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:1182,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:1190,1
    - Dst: set_table_bit
      Src: /src/pcre2/src/pcre2_study.c:1202,1
    - Dst: set_table_bit
      Src: /src/pcre2/src/pcre2_study.c:1211,1
    - Dst: set_table_bit
      Src: /src/pcre2/src/pcre2_study.c:1219,1
    - Dst: set_table_bit
      Src: /src/pcre2/src/pcre2_study.c:1225,1
    - Dst: set_table_bit
      Src: /src/pcre2/src/pcre2_study.c:1237,1
    - Dst: set_table_bit
      Src: /src/pcre2/src/pcre2_study.c:1248,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1259,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1260,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1266,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1267,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1275,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1276,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1277,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1278,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1286,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1296,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1297,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1298,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1299,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1305,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1306,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1314,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1315,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1321,1
    - Dst: set_nottype_bits
      Src: /src/pcre2/src/pcre2_study.c:1334,1
    - Dst: set_type_bits
      Src: /src/pcre2/src/pcre2_study.c:1339,1
    - Dst: set_nottype_bits
      Src: /src/pcre2/src/pcre2_study.c:1344,1
    - Dst: set_type_bits
      Src: /src/pcre2/src/pcre2_study.c:1349,1
    - Dst: set_nottype_bits
      Src: /src/pcre2/src/pcre2_study.c:1354,1
    - Dst: set_type_bits
      Src: /src/pcre2/src/pcre2_study.c:1359,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1398,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1399,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1405,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1406,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1414,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1415,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1416,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1417,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1425,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1433,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1434,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1435,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1436,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1442,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1443,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1451,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1452,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1458,1
    - Dst: set_nottype_bits
      Src: /src/pcre2/src/pcre2_study.c:1464,1
    - Dst: set_type_bits
      Src: /src/pcre2/src/pcre2_study.c:1468,1
    - Dst: set_nottype_bits
      Src: /src/pcre2/src/pcre2_study.c:1472,1
    - Dst: set_type_bits
      Src: /src/pcre2/src/pcre2_study.c:1476,1
    - Dst: set_nottype_bits
      Src: /src/pcre2/src/pcre2_study.c:1480,1
    - Dst: set_type_bits
      Src: /src/pcre2/src/pcre2_study.c:1484,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:1519,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_study.c:1564,1
    - Dst: SET_BIT
      Src: /src/pcre2/src/pcre2_study.c:1567,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:1576,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_study.c:1634,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_study.c:1646,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 426
    argCount: 5
    argNames:
    - re
    - code
    - utf
    - ucp
    - depthptr
    argTypes:
    - pcre2_real_code*
    - PCRE2_SPTR
    - BOOL
    - BOOL
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 1651
    functionName: set_start_bits
    functionSourceFile: /src/pcre2/src/pcre2_study.c
    functionUses: 1
    functionsReached:
    - set_start_bits
    - set_type_bits
    - GET2
    - set_table_bit
    - PRIV
    - SET_BIT
    - GET
    - set_nottype_bits
    - memset
    linkageType: ''
    returnType: int
    signature: "int set_start_bits(pcre2_real_code *re, PCRE2_SPTR code, BOOL utf,
      BOOL ucp,\n  int *depthptr)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: set_start_bits
      Src: /src/pcre2/src/pcre2_study.c:1691,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_study.c:1748,1
    - Dst: UCD_CASESET
      Src: /src/pcre2/src/pcre2_study.c:1753,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_study.c:1754,1
    - Dst: find_minlength
      Src: /src/pcre2/src/pcre2_study.c:1804,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 89
    argCount: 1
    argNames:
    - re
    argTypes:
    - pcre2_real_code*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1671
    functionDepth: 3
    functionLinenumber: 1671
    functionLinenumberEnd: 1823
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_study.c
    functionUses: 15
    functionsReached:
    - set_start_bits
    - TABLE_GET
    - UCD_OTHERCASE
    - find_minlength
    - UCD_CASESET
    linkageType: ''
    returnType: int
    signature: int PRIV(study)(pcre2_real_code *re)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_substring_nametable_scan
      Src: /src/pcre2/src/pcre2_substring.c:80,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_substring.c:86,1
    - Dst: pcre2_substring_copy_bynumber
      Src: /src/pcre2/src/pcre2_substring.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - match_data
    - stringname
    - buffer
    - sizeptr
    argTypes:
    - pcre2_match_data*
    - PCRE2_SPTR
    - PCRE2_UCHAR*
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 95
    functionName: pcre2_substring_copy_byname
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 0
    functionsReached:
    - pcre2_substring_nametable_scan
    - GET2
    - pcre2_substring_copy_bynumber
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substring_copy_byname(pcre2_match_data *match_data,
      PCRE2_SPTR stringname,\n  PCRE2_UCHAR *buffer, PCRE2_SIZE *sizeptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_substring_length_bynumber
      Src: /src/pcre2/src/pcre2_substring.c:126,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_substring.c:129,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_substring.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - match_data
    - stringnumber
    - buffer
    - sizeptr
    argTypes:
    - pcre2_match_data*
    - uint32_t
    - PCRE2_UCHAR*
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: pcre2_substring_copy_bynumber
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 1
    functionsReached:
    - memcpy
    - CU2BYTES
    - pcre2_substring_length_bynumber
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substring_copy_bynumber(pcre2_match_data *match_data,\n
      \ uint32_t stringnumber, PCRE2_UCHAR *buffer, PCRE2_SIZE *sizeptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_substring_nametable_scan
      Src: /src/pcre2/src/pcre2_substring.c:168,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_substring.c:174,1
    - Dst: pcre2_substring_get_bynumber
      Src: /src/pcre2/src/pcre2_substring.c:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - match_data
    - stringname
    - stringptr
    - sizeptr
    argTypes:
    - pcre2_match_data*
    - PCRE2_SPTR
    - PCRE2_UCHAR**
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: pcre2_substring_get_byname
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 0
    functionsReached:
    - pcre2_substring_nametable_scan
    - GET2
    - pcre2_substring_get_bynumber
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substring_get_byname(pcre2_match_data *match_data,\n
      \ PCRE2_SPTR stringname, PCRE2_UCHAR **stringptr, PCRE2_SIZE *sizeptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_substring_length_bynumber
      Src: /src/pcre2/src/pcre2_substring.c:215,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substring.c:217,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_substring.c:221,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_substring.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - match_data
    - stringnumber
    - stringptr
    - sizeptr
    argTypes:
    - pcre2_match_data*
    - uint32_t
    - PCRE2_UCHAR**
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 227
    functionName: pcre2_substring_get_bynumber
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 1
    functionsReached:
    - memcpy
    - PRIV
    - CU2BYTES
    - pcre2_substring_length_bynumber
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substring_get_bynumber(pcre2_match_data *match_data,\n
      \ uint32_t stringnumber, PCRE2_UCHAR **stringptr, PCRE2_SIZE *sizeptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_memctl*::free
      Src: /src/pcre2/src/pcre2_substring.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - string
    argTypes:
    - PCRE2_UCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: pcre2_substring_free
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 0
    functionsReached:
    - pcre2_memctl*::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_substring_free(PCRE2_UCHAR *string)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_substring_nametable_scan
      Src: /src/pcre2/src/pcre2_substring.c:275,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_substring.c:281,1
    - Dst: pcre2_substring_length_bynumber
      Src: /src/pcre2/src/pcre2_substring.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - match_data
    - stringname
    - sizeptr
    argTypes:
    - pcre2_match_data*
    - PCRE2_SPTR
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 290
    functionName: pcre2_substring_length_byname
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 0
    functionsReached:
    - pcre2_substring_nametable_scan
    - GET2
    - pcre2_substring_length_bynumber
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substring_length_byname(pcre2_match_data *match_data,\n
      \ PCRE2_SPTR stringname, PCRE2_SIZE *sizeptr)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - match_data
    - stringnumber
    - sizeptr
    argTypes:
    - pcre2_match_data*
    - uint32_t
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 346
    functionName: pcre2_substring_length_bynumber
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substring_length_bynumber(pcre2_match_data *match_data,\n
      \ uint32_t stringnumber, PCRE2_SIZE *sizeptr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_substring.c:393,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_substring.c:394,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substring.c:397,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_substring.c:422,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_substring.c:422,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - match_data
    - listptr
    - lengthsptr
    argTypes:
    - pcre2_match_data*
    - PCRE2_UCHAR***
    - PCRE2_SIZE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 431
    functionName: pcre2_substring_list_get
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PRIV
    - CU2BYTES
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substring_list_get(pcre2_match_data *match_data,
      PCRE2_UCHAR ***listptr,\n  PCRE2_SIZE **lengthsptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_memctl*::free
      Src: /src/pcre2/src/pcre2_substring.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - PCRE2_SPTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 452
    functionName: pcre2_substring_list_free
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 0
    functionsReached:
    - pcre2_memctl*::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_substring_list_free(PCRE2_SPTR *list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substring.c:492,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substring.c:502,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substring.c:507,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_substring.c:511,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - code
    - stringname
    - firstptr
    - lastptr
    argTypes:
    - pcre2_code*
    - PCRE2_SPTR
    - PCRE2_SPTR*
    - PCRE2_SPTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 520
    functionName: pcre2_substring_nametable_scan
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 3
    functionsReached:
    - PRIV
    - GET2
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substring_nametable_scan(const pcre2_code *code,
      PCRE2_SPTR stringname,\n  PCRE2_SPTR *firstptr, PCRE2_SPTR *lastptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_substring_nametable_scan
      Src: /src/pcre2/src/pcre2_substring.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - stringname
    argTypes:
    - pcre2_code*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 545
    functionName: pcre2_substring_number_from_name
    functionSourceFile: /src/pcre2/src/pcre2_substring.c
    functionUses: 0
    functionsReached:
    - pcre2_substring_nametable_scan
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substring_number_from_name(const pcre2_code *code,\n
      \ PCRE2_SPTR stringname)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_serialize.c:85,1
    - Dst: pcre2_memctl*::malloc
      Src: /src/pcre2/src/pcre2_serialize.c:109,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_serialize.c:113,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_serialize.c:124,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_serialize.c:130,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_serialize.c:142,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_serialize.c:144,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_serialize.c:146,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - codes
    - number_of_codes
    - serialized_bytes
    - serialized_size
    - gcontext
    argTypes:
    - pcre2_code**
    - int32_t
    - uint8_t**
    - PCRE2_SIZE*
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 155
    functionName: pcre2_serialize_encode
    functionSourceFile: /src/pcre2/src/pcre2_serialize.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PRIV
    - pcre2_memctl*::malloc
    - memset
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_serialize_encode(const pcre2_code **codes, int32_t
      number_of_codes,\n   uint8_t **serialized_bytes, PCRE2_SIZE *serialized_size,\n
      \  pcre2_general_context *gcontext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_serialize.c:168,1
    - Dst: pcre2_memctl*::malloc
      Src: /src/pcre2/src/pcre2_serialize.c:192,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_serialize.c:195,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_serialize.c:208,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_serialize.c:215,1
    - Dst: pcre2_memctl*::free
      Src: /src/pcre2/src/pcre2_serialize.c:219,1
    - Dst: pcre2_memctl*::free
      Src: /src/pcre2/src/pcre2_serialize.c:222,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_serialize.c:230,1
    - Dst: pcre2_memctl*::free
      Src: /src/pcre2/src/pcre2_serialize.c:236,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 4
    argNames:
    - codes
    - number_of_codes
    - bytes
    - gcontext
    argTypes:
    - pcre2_code**
    - int32_t
    - uint8_t*
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 251
    functionName: pcre2_serialize_decode
    functionSourceFile: /src/pcre2/src/pcre2_serialize.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PRIV
    - pcre2_memctl*::free
    - pcre2_memctl*::malloc
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_serialize_decode(pcre2_code **codes, int32_t
      number_of_codes,\n   const uint8_t *bytes, pcre2_general_context *gcontext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 269
    functionName: pcre2_serialize_get_number_of_codes
    functionSourceFile: /src/pcre2/src/pcre2_serialize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_serialize_get_number_of_codes(const uint8_t *bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_memctl*::free
      Src: /src/pcre2/src/pcre2_serialize.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 284
    functionName: pcre2_serialize_free
    functionSourceFile: /src/pcre2/src/pcre2_serialize.c
    functionUses: 0
    functionsReached:
    - pcre2_memctl*::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_serialize_free(uint8_t *bytes)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_xclass.c:109,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_xclass.c:121,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_xclass.c:122,1
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_xclass.c:136,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:151,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:164,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:165,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:183,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:190,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:191,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:223,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:224,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:237,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:249,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_xclass.c:250,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 107
    argCount: 3
    argNames:
    - c
    - data
    - utf
    argTypes:
    - uint32_t
    - PCRE2_SPTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 269
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_xclass.c
    functionUses: 21
    functionsReached:
    - PRIV
    - GET_UCD
    - GETCHARINC
    linkageType: ''
    returnType: BOOL
    signature: BOOL PRIV(xclass)(uint32_t c, PCRE2_SPTR data, BOOL utf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cvalue
    - buffer
    argTypes:
    - uint32_t
    - PCRE2_UCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_ord2utf.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PRIV(ord2utf)(uint32_t cvalue, PCRE2_UCHAR *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_ord2utf.c:87,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_ord2utf.c:88,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_ord2utf.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - cvalue
    - buffer
    argTypes:
    - uint32_t
    - PCRE2_UCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 117
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_ord2utf.c
    functionUses: 22
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PRIV(ord2utf)(uint32_t cvalue, PCRE2_UCHAR *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: executable_func
      Src: /src/pcre2/src/pcre2_jit_match.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - arguments
    - executable_func
    argTypes:
    - jit_arguments*
    - jit_function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: jit_machine_stack_exec
    functionSourceFile: /src/pcre2/src/pcre2_jit_match.c
    functionUses: 0
    functionsReached:
    - executable_func
    linkageType: ''
    returnType: SLJIT_NOINLINE
    signature: SLJIT_NOINLINE jit_machine_stack_exec(jit_arguments *arguments, jit_function
      executable_func)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_context*::jit_callback
      Src: /src/pcre2/src/pcre2_jit_match.c:140,1
    - Dst: "union {\n   void *executable_func;\n   jit_function call_executable_func;\n}::call_executable_func"
      Src: /src/pcre2/src/pcre2_jit_match.c:165,1
    - Dst: jit_machine_stack_exec
      Src: /src/pcre2/src/pcre2_jit_match.c:168,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 7
    argNames:
    - code
    - subject
    - length
    - start_offset
    - options
    - match_data
    - mcontext
    argTypes:
    - pcre2_code*
    - PCRE2_SPTR
    - PCRE2_SIZE
    - PCRE2_SIZE
    - uint32_t
    - pcre2_match_data*
    - pcre2_match_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 184
    functionName: pcre2_jit_match
    functionSourceFile: /src/pcre2/src/pcre2_jit_match.c
    functionUses: 0
    functionsReached:
    - pcre2_match_context*::jit_callback
    - jit_machine_stack_exec
    - "union {\n   void *executable_func;\n   jit_function call_executable_func;\n}::call_executable_func"
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_jit_match(const pcre2_code *code, PCRE2_SPTR
      subject, PCRE2_SIZE length,\n  PCRE2_SIZE start_offset, uint32_t options, pcre2_match_data
      *match_data,\n  pcre2_match_context *mcontext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/pcre2/src/pcre2_context.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - data
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: default_malloc
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *default_malloc(size_t size, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pcre2/src/pcre2_context.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - block
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: default_free
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void default_free(void *block, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/pcre2/src/pcre2_context.c:89,1
    - Dst: pcre2_memctl*::malloc
      Src: /src/pcre2/src/pcre2_context.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - size
    - memctl
    argTypes:
    - size_t
    - pcre2_memctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 22
    functionsReached:
    - malloc
    - pcre2_memctl*::malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PRIV(memctl_malloc)(size_t size, pcre2_memctl *memctl)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: private_malloc
      Src: /src/pcre2/src/pcre2_context.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - (*private_malloc)(size_t, void *)
    - memory_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: pcre2_general_context_create
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - private_malloc
    linkageType: ''
    returnType: void
    signature: "void pcre2_general_context_create(void *(*private_malloc)(size_t,
      void *),\n  void (*private_free)(void *, void *), void *memory_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_context.c:150,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_context.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - gcontext
    argTypes:
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: pcre2_compile_context_create
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: void
    signature: void pcre2_compile_context_create(pcre2_general_context *gcontext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_context.c:184,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_context.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - gcontext
    argTypes:
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: pcre2_match_context_create
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: void
    signature: void pcre2_match_context_create(pcre2_general_context *gcontext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_context.c:214,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_context.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - gcontext
    argTypes:
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: pcre2_convert_context_create
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: void
    signature: void pcre2_convert_context_create(pcre2_general_context *gcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_general_context*::memctl::malloc
      Src: /src/pcre2/src/pcre2_context.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gcontext
    argTypes:
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: pcre2_general_context_copy
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - pcre2_general_context*::memctl::malloc
    linkageType: ''
    returnType: void
    signature: void pcre2_general_context_copy(pcre2_general_context *gcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_compile_context*::memctl::malloc
      Src: /src/pcre2/src/pcre2_context.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ccontext
    argTypes:
    - pcre2_compile_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: pcre2_compile_context_copy
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - pcre2_compile_context*::memctl::malloc
    linkageType: ''
    returnType: void
    signature: void pcre2_compile_context_copy(pcre2_compile_context *ccontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_context*::memctl::malloc
      Src: /src/pcre2/src/pcre2_context.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mcontext
    argTypes:
    - pcre2_match_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: pcre2_match_context_copy
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - pcre2_match_context*::memctl::malloc
    linkageType: ''
    returnType: void
    signature: void pcre2_match_context_copy(pcre2_match_context *mcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_convert_context*::memctl::malloc
      Src: /src/pcre2/src/pcre2_context.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ccontext
    argTypes:
    - pcre2_convert_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: pcre2_convert_context_copy
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - pcre2_convert_context*::memctl::malloc
    linkageType: ''
    returnType: void
    signature: void pcre2_convert_context_copy(pcre2_convert_context *ccontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_general_context*::memctl::free
      Src: /src/pcre2/src/pcre2_context.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - gcontext
    argTypes:
    - pcre2_general_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: pcre2_general_context_free
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - pcre2_general_context*::memctl::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_general_context_free(pcre2_general_context *gcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_compile_context*::memctl::free
      Src: /src/pcre2/src/pcre2_context.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ccontext
    argTypes:
    - pcre2_compile_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: pcre2_compile_context_free
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - pcre2_compile_context*::memctl::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_compile_context_free(pcre2_compile_context *ccontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_context*::memctl::free
      Src: /src/pcre2/src/pcre2_context.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mcontext
    argTypes:
    - pcre2_match_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: pcre2_match_context_free
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - pcre2_match_context*::memctl::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_match_context_free(pcre2_match_context *mcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_convert_context*::memctl::free
      Src: /src/pcre2/src/pcre2_context.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ccontext
    argTypes:
    - pcre2_convert_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: pcre2_convert_context_free
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - pcre2_convert_context*::memctl::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_convert_context_free(pcre2_convert_context *ccontext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ccontext
    - tables
    argTypes:
    - pcre2_compile_context*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: pcre2_set_character_tables
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_set_character_tables(pcre2_compile_context *ccontext,\n
      \ const uint8_t *tables)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ccontext
    - value
    argTypes:
    - pcre2_compile_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: pcre2_set_bsr
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_bsr(pcre2_compile_context *ccontext, uint32_t
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ccontext
    - length
    argTypes:
    - pcre2_compile_context*
    - PCRE2_SIZE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: pcre2_set_max_pattern_length
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_max_pattern_length(pcre2_compile_context *ccontext,
      PCRE2_SIZE length)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ccontext
    - newline
    argTypes:
    - pcre2_compile_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 371
    functionName: pcre2_set_newline
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_newline(pcre2_compile_context *ccontext, uint32_t
      newline)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ccontext
    - limit
    argTypes:
    - pcre2_compile_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: pcre2_set_parens_nest_limit
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_parens_nest_limit(pcre2_compile_context *ccontext,
      uint32_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ccontext
    - options
    argTypes:
    - pcre2_compile_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 385
    functionName: pcre2_set_compile_extra_options
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_compile_extra_options(pcre2_compile_context
      *ccontext, uint32_t options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ccontext
    - user_data
    argTypes:
    - pcre2_compile_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 394
    functionName: pcre2_set_compile_recursion_guard
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_set_compile_recursion_guard(pcre2_compile_context
      *ccontext,\n  int (*guard)(uint32_t, void *), void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mcontext
    - callout_data
    argTypes:
    - pcre2_match_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: pcre2_set_callout
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_set_callout(pcre2_match_context *mcontext,\n
      \ int (*callout)(pcre2_callout_block *, void *), void *callout_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mcontext
    - substitute_callout_data
    argTypes:
    - pcre2_match_context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: pcre2_set_substitute_callout
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_set_substitute_callout(pcre2_match_context *mcontext,\n
      \ int (*substitute_callout)(pcre2_substitute_callout_block *, void *),\n    void
      *substitute_callout_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mcontext
    - limit
    argTypes:
    - pcre2_match_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: pcre2_set_heap_limit
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_heap_limit(pcre2_match_context *mcontext,
      uint32_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mcontext
    - limit
    argTypes:
    - pcre2_match_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: pcre2_set_match_limit
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_match_limit(pcre2_match_context *mcontext,
      uint32_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mcontext
    - limit
    argTypes:
    - pcre2_match_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 437
    functionName: pcre2_set_depth_limit
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_depth_limit(pcre2_match_context *mcontext,
      uint32_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mcontext
    - limit
    argTypes:
    - pcre2_match_context*
    - PCRE2_SIZE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: pcre2_set_offset_limit
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_offset_limit(pcre2_match_context *mcontext,
      PCRE2_SIZE limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_set_depth_limit
      Src: /src/pcre2/src/pcre2_context.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mcontext
    - limit
    argTypes:
    - pcre2_match_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: pcre2_set_recursion_limit
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - pcre2_set_depth_limit
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_recursion_limit(pcre2_match_context *mcontext,
      uint32_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mcontext
    - (*mymalloc)(size_t, void *)
    - mydata
    argTypes:
    - pcre2_match_context*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 465
    functionName: pcre2_set_recursion_memory_management
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_set_recursion_memory_management(pcre2_match_context
      *mcontext,\n  void *(*mymalloc)(size_t, void *), void (*myfree)(void *, void
      *),\n  void *mydata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ccontext
    - separator
    argTypes:
    - pcre2_convert_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 476
    functionName: pcre2_set_glob_separator
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_glob_separator(pcre2_convert_context *ccontext,
      uint32_t separator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ispunct
      Src: /src/pcre2/src/pcre2_context.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ccontext
    - escape
    argTypes:
    - pcre2_convert_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 485
    functionName: pcre2_set_glob_escape
    functionSourceFile: /src/pcre2/src/pcre2_context.c
    functionUses: 0
    functionsReached:
    - ispunct
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_set_glob_escape(pcre2_convert_context *ccontext,
      uint32_t escape)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_script_run.c:101,1
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_script_run.c:121,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_script_run.c:258,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_script_run.c:263,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_script_run.c:403,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_script_run.c:407,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_script_run.c:416,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_script_run.c:430,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 198
    argCount: 3
    argNames:
    - ptr
    - endptr
    - utf
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SPTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 439
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_script_run.c
    functionUses: 26
    functionsReached:
    - GETCHARINCTEST
    - PRIV
    - GET_UCD
    linkageType: ''
    returnType: BOOL
    signature: BOOL PRIV(script_run)(PCRE2_SPTR ptr, PCRE2_SPTR endptr, BOOL utf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: FWRITE_IGNORE
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FWRITE_IGNORE(a,b,c,d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bcopy
      Src: /src/pcre2/src/pcre2grep.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - d
    - s
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 553
    functionName: emulated_memmove
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - bcopy
    linkageType: ''
    returnType: void
    signature: 'void *

      emulated_memmove(void *d, const void *s, size_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: memmove
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memmove(d,s,n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 581
    functionName: ord2utf8
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ord2utf8(uint32_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/pcre2/src/pcre2grep.c:595,1
    - Dst: tolower
      Src: /src/pcre2/src/pcre2grep.c:596,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 600
    functionName: strcmpic
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int strcmpic(const char *str1, const char *str2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/pcre2/src/pcre2grep.c:620,1
    - Dst: strstr
      Src: /src/pcre2/src/pcre2grep.c:621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - gc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 629
    functionName: parse_grep_colors
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: char
    signature: 'char *

      parse_grep_colors(const char *gc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: $DESCRIPTOR
      Src: /src/pcre2/src/pcre2grep.c:652,1
    - Dst: $DESCRIPTOR
      Src: /src/pcre2/src/pcre2grep.c:653,1
    - Dst: sprintf
      Src: /src/pcre2/src/pcre2grep.c:654,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:655,1
    - Dst: lib$set_symbol
      Src: /src/pcre2/src/pcre2grep.c:656,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:661,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:664,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2grep.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 667
    functionName: pcre2grep_exit
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - $DESCRIPTOR
    - exit
    - strlen
    - fprintf
    - lib$set_symbol
    - sprintf
    linkageType: ''
    returnType: void
    signature: void pcre2grep_exit(int rc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:688,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:691,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:692,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:696,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - s
    - patlen
    - after
    argTypes:
    - char*
    - PCRE2_SIZE
    - patstr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 712
    functionName: add_pattern
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - free
    - pcre2grep_exit
    - malloc
    - fprintf
    linkageType: ''
    returnType: patstr
    signature: 'patstr *

      add_pattern(char *s, PCRE2_SIZE patlen, patstr *after)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2grep.c:732,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pc
    argTypes:
    - patstr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 735
    functionName: free_pattern_chain
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - free
    - pcre2_code_free
    linkageType: ''
    returnType: void
    signature: void free_pattern_chain(patstr *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fn
    argTypes:
    - fnstr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 756
    functionName: free_file_chain
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_file_chain(fnstr *fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 778
    functionName: iswild
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iswild(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 781
    functionName: BGR_RGB
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BGR_RGB(x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2grep.c:792,1
    - Dst: atoi
      Src: /src/pcre2/src/pcre2grep.c:794,1
    - Dst: BGR_RGB
      Src: /src/pcre2/src/pcre2grep.c:798,1
    - Dst: BGR_RGB
      Src: /src/pcre2/src/pcre2grep.c:800,1
    - Dst: BGR_RGB
      Src: /src/pcre2/src/pcre2grep.c:803,1
    - Dst: BGR_RGB
      Src: /src/pcre2/src/pcre2grep.c:804,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2grep.c:806,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 1
    argNames:
    - cs
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 811
    functionName: decode_ANSI_colour
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - atoi
    - isdigit
    - BGR_RGB
    linkageType: ''
    returnType: WORD
    signature: WORD decode_ANSI_colour(const char *cs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/pcre2/src/pcre2grep.c:819,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/pcre2/src/pcre2grep.c:821,1
    - Dst: CreateFile
      Src: /src/pcre2/src/pcre2grep.c:823,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/pcre2/src/pcre2grep.c:825,1
    - Dst: CloseHandle
      Src: /src/pcre2/src/pcre2grep.c:826,1
    - Dst: decode_ANSI_colour
      Src: /src/pcre2/src/pcre2grep.c:828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 832
    functionName: init_colour_output
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - decode_ANSI_colour
    - CloseHandle
    - CreateFile
    - GetConsoleScreenBufferInfo
    linkageType: ''
    returnType: void
    signature: void init_colour_output()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/pcre2/src/pcre2grep.c:867,1
    - Dst: S_ISDIR
      Src: /src/pcre2/src/pcre2grep.c:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 870
    functionName: isdirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - stat
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int isdirectory(char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/pcre2/src/pcre2grep.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 876
    functionName: opendirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - opendir
    linkageType: ''
    returnType: directory_type
    signature: 'directory_type *

      opendirectory(char *filename)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readdir
      Src: /src/pcre2/src/pcre2grep.c:883,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:885,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:885,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - dir
    argTypes:
    - directory_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 889
    functionName: readdirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - readdir
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      readdirectory(directory_type *dir)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/pcre2/src/pcre2grep.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dir
    argTypes:
    - directory_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: closedirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - closedir
    linkageType: ''
    returnType: void
    signature: void closedirectory(directory_type *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/pcre2/src/pcre2grep.c:904,1
    - Dst: S_ISREG
      Src: /src/pcre2/src/pcre2grep.c:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 907
    functionName: isregfile
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - stat
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int isregfile(char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: is_stdout_tty
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_stdout_tty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: is_file_tty
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_file_tty(FILE *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/pcre2/src/pcre2grep.c:933,1
    - Dst: fileno
      Src: /src/pcre2/src/pcre2grep.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 934
    functionName: is_stdout_tty
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - isatty
    - fileno
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_stdout_tty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/pcre2/src/pcre2grep.c:939,1
    - Dst: fileno
      Src: /src/pcre2/src/pcre2grep.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 940
    functionName: is_file_tty
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - isatty
    - fileno
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_file_tty(FILE *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:950,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:951,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 953
    functionName: print_match
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - FWRITE_IGNORE
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_match(const void *buf, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributes
      Src: /src/pcre2/src/pcre2grep.c:984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 988
    functionName: isdirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - GetFileAttributes
    linkageType: ''
    returnType: int
    signature: int isdirectory(char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:997,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:998,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:999,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1002,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:1003,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2grep.c:1005,1
    - Dst: iswild
      Src: /src/pcre2/src/pcre2grep.c:1006,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2grep.c:1009,1
    - Dst: FindFirstFile
      Src: /src/pcre2/src/pcre2grep.c:1010,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:1013,1
    - Dst: GetLastError
      Src: /src/pcre2/src/pcre2grep.c:1017,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:1018,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:1019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 1022
    functionName: opendirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - GetLastError
    - iswild
    - pcre2grep_exit
    - malloc
    - fprintf
    - free
    - FindFirstFile
    linkageType: ''
    returnType: directory_type
    signature: 'directory_type *

      opendirectory(char *filename)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FindNextFile
      Src: /src/pcre2/src/pcre2grep.c:1031,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:1038,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:1038,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - dir
    argTypes:
    - directory_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1044
    functionName: readdirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - strcmp
    - FindNextFile
    linkageType: ''
    returnType: char
    signature: 'char *

      readdirectory(directory_type *dir)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/pcre2/src/pcre2grep.c:1049,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dir
    argTypes:
    - directory_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1051
    functionName: closedirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - free
    - FindClose
    linkageType: ''
    returnType: void
    signature: void closedirectory(directory_type *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isdirectory
      Src: /src/pcre2/src/pcre2grep.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1062
    functionName: isregfile
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - isdirectory
    linkageType: ''
    returnType: int
    signature: int isregfile(char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _isatty
      Src: /src/pcre2/src/pcre2grep.c:1070,1
    - Dst: _fileno
      Src: /src/pcre2/src/pcre2grep.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1071
    functionName: is_stdout_tty
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - _fileno
    - _isatty
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_stdout_tty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _isatty
      Src: /src/pcre2/src/pcre2grep.c:1076,1
    - Dst: _fileno
      Src: /src/pcre2/src/pcre2grep.c:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1077
    functionName: is_file_tty
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - _fileno
    - _isatty
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_file_tty(FILE *f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1088,1
    - Dst: SetConsoleTextAttribute
      Src: /src/pcre2/src/pcre2grep.c:1089,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:1091,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1094,1
    - Dst: SetConsoleTextAttribute
      Src: /src/pcre2/src/pcre2grep.c:1095,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1097
    functionName: print_match
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - SetConsoleTextAttribute
    - FWRITE_IGNORE
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_match(const void *buf, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1111
    functionName: isdirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isdirectory(char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1112
    functionName: opendirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: directory_type
    signature: directory_type * opendirectory(char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dir
    argTypes:
    - directory_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1113
    functionName: readdirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *readdirectory(directory_type *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dir
    argTypes:
    - directory_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1114
    functionName: closedirectory
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void closedirectory(directory_type *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1121
    functionName: isregfile
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isregfile(char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1130
    functionName: is_stdout_tty
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_stdout_tty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1136
    functionName: is_file_tty
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_file_tty(FILE *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:1145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1146
    functionName: print_match
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - FWRITE_IGNORE
    linkageType: ''
    returnType: void
    signature: void print_match(const void *buf, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1169
    functionName: strerror
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strerror(int n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1182,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1185,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1187,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1191
    functionName: usage
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 17
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int usage(int rc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1204,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1205,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1206,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1210,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1212,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1215,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1218,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1221,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1225,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1229,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1231,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1234,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1235,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1243,1
    - Dst: sprintf
      Src: /src/pcre2/src/pcre2grep.c:1246,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:1247,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1248,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1252,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1255,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1256,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1257,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1258,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1259,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1260,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1262,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:1263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1264
    functionName: help
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 1
    functionsReached:
    - sprintf
    - strcpy
    - printf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:1286,1
    - Dst: pcre2_match
      Src: /src/pcre2/src/pcre2grep.c:1290,1
    - Dst: pcre2_match
      Src: /src/pcre2/src/pcre2grep.c:1298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - path
    - ip
    - ep
    argTypes:
    - char*
    - patstr*
    - patstr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1303
    functionName: test_incexc
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - pcre2_match
    - strlen
    linkageType: ''
    returnType: BOOL
    signature: BOOL test_incexc(char *path, patstr *ip, patstr *ep)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/pcre2/src/pcre2grep.c:1328,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2grep.c:1329,1
    - Dst: toupper
      Src: /src/pcre2/src/pcre2grep.c:1331,1
    - Dst: toupper
      Src: /src/pcre2/src/pcre2grep.c:1336,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2grep.c:1346,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:1347,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1349,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1353,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:1355,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:1355,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - option_data
    - op
    - longop
    argTypes:
    - char*
    - option_item*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1359
    functionName: decode_number
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - strlen
    - toupper
    - isdigit
    - isspace
    - strchr
    - pcre2grep_exit
    - fprintf
    - usage
    linkageType: ''
    returnType: long int
    signature: long int decode_number(char *option_data, option_item *op, BOOL longop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:1380,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1384,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:1385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - n
    - after
    argTypes:
    - int
    - omstr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1396
    functionName: add_number
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - pcre2grep_exit
    - malloc
    - fprintf
    linkageType: ''
    returnType: omstr
    signature: 'omstr *

      add_number(int n, omstr *after)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fgetc
      Src: /src/pcre2/src/pcre2grep.c:1426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - buffer
    - length
    - f
    argTypes:
    - char*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1432
    functionName: read_one_line
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - fgetc
    linkageType: ''
    returnType: PCRE2_SIZE
    signature: PCRE2_SIZE read_one_line(char *buffer, int length, FILE *f)
  - BBCount: 28
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 112
    argCount: 3
    argNames:
    - p
    - endptr
    - lenptr
    argTypes:
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1606
    functionName: end_of_line
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      end_of_line(char *p, char *endptr, int *lenptr)'
  - BBCount: 25
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 73
    argCount: 2
    argNames:
    - p
    - startptr
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1715
    functionName: previous_line
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      previous_line(char *p, char *startptr)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1739,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1743,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1747,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1730
    functionDepth: 0
    functionLinenumber: 1730
    functionLinenumberEnd: 1754
    functionName: write_final_newline
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_final_newline(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:1784,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1786,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1787,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:1788,1
    - Dst: write_final_newline
      Src: /src/pcre2/src/pcre2grep.c:1801,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - lastmatchnumber
    - lastmatchrestart
    - endptr
    - printname
    argTypes:
    - unsigned long int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1774
    functionDepth: 1
    functionLinenumber: 1774
    functionLinenumberEnd: 1804
    functionName: do_after_lines
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - end_of_line
    - FWRITE_IGNORE
    - write_final_newline
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void do_after_lines(unsigned long int lastmatchnumber, char *lastmatchrestart,\n
      \ char *endptr, const char *printname)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match
      Src: /src/pcre2/src/pcre2grep.c:1845,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1849,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1850,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1851,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:1852,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1853,1
    - Dst: pcre2_get_startchar
      Src: /src/pcre2/src/pcre2grep.c:1858,1
    - Dst: pcre2_get_error_message
      Src: /src/pcre2/src/pcre2grep.c:1859,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1860,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1867,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:1868,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - matchptr
    - length
    - options
    - startoffset
    - mrc
    argTypes:
    - char*
    - PCRE2_SIZE
    - unsigned int
    - PCRE2_SIZE
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1828
    functionDepth: 2
    functionLinenumber: 1828
    functionLinenumberEnd: 1874
    functionName: match_patterns
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - pcre2_get_startchar
    - pcre2_match
    - FWRITE_IGNORE
    - pcre2grep_exit
    - fprintf
    - pcre2_get_error_message
    linkageType: ''
    returnType: BOOL
    signature: "BOOL match_patterns(char *matchptr, PCRE2_SIZE length, unsigned int
      options,\n  PCRE2_SIZE startoffset, int *mrc)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1933,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2grep.c:1941,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:1944,1
    - Dst: isxdigit
      Src: /src/pcre2/src/pcre2grep.c:2017,1
    - Dst: isxdigit
      Src: /src/pcre2/src/pcre2grep.c:2052,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2054,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2060,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2076,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 129
    argCount: 5
    argNames:
    - begin
    - string
    - callout
    - value
    - last
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SPTR
    - BOOL
    - uint32_t*
    - PCRE2_SPTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 2084
    functionName: decode_dollar_escape
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - isxdigit
    - isdigit
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int decode_dollar_escape(PCRE2_SPTR begin, PCRE2_SPTR string, BOOL
      callout,\n  uint32_t *value, PCRE2_SPTR *last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_dollar_escape
      Src: /src/pcre2/src/pcre2grep.c:2111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - string
    - callout
    argTypes:
    - PCRE2_SPTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2116
    functionName: syntax_check_output_text
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - decode_dollar_escape
    linkageType: ''
    returnType: BOOL
    signature: BOOL syntax_check_output_text(PCRE2_SPTR string, BOOL callout)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: decode_dollar_escape
      Src: /src/pcre2/src/pcre2grep.c:2149,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2154,1
    - Dst: print_match
      Src: /src/pcre2/src/pcre2grep.c:2168,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2181,1
    - Dst: ord2utf8
      Src: /src/pcre2/src/pcre2grep.c:2184,1
    - Dst: fputc
      Src: /src/pcre2/src/pcre2grep.c:2185,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 5
    argNames:
    - string
    - callout
    - subject
    - ovector
    - capture_top
    argTypes:
    - PCRE2_SPTR
    - BOOL
    - PCRE2_SPTR
    - PCRE2_SIZE*
    - PCRE2_SIZE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2137
    functionDepth: 2
    functionLinenumber: 2137
    functionLinenumberEnd: 2192
    functionName: display_output_text
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - print_match
    - decode_dollar_escape
    - ord2utf8
    - fprintf
    - fputc
    linkageType: ''
    returnType: BOOL
    signature: "BOOL display_output_text(PCRE2_SPTR string, BOOL callout, PCRE2_SPTR
      subject,\n  PCRE2_SIZE *ovector, PCRE2_SIZE capture_top)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: syntax_check_output_text
      Src: /src/pcre2/src/pcre2grep.c:2276,1
    - Dst: display_output_text
      Src: /src/pcre2/src/pcre2grep.c:2277,1
    - Dst: decode_dollar_escape
      Src: /src/pcre2/src/pcre2grep.c:2301,1
    - Dst: ord2utf8
      Src: /src/pcre2/src/pcre2grep.c:2314,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:2332,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:2335,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:2338,1
    - Dst: decode_dollar_escape
      Src: /src/pcre2/src/pcre2grep.c:2364,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2grep.c:2372,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2grep.c:2380,1
    - Dst: ord2utf8
      Src: /src/pcre2/src/pcre2grep.c:2385,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2grep.c:2386,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:2397,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:2398,1
    - Dst: _spawnvp
      Src: /src/pcre2/src/pcre2grep.c:2420,1
    - Dst: $DESCRIPTOR
      Src: /src/pcre2/src/pcre2grep.c:2427,1
    - Dst: strcat
      Src: /src/pcre2/src/pcre2grep.c:2432,1
    - Dst: strcat
      Src: /src/pcre2/src/pcre2grep.c:2433,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:2436,1
    - Dst: lib$spawn
      Src: /src/pcre2/src/pcre2grep.c:2437,1
    - Dst: fork
      Src: /src/pcre2/src/pcre2grep.c:2443,1
    - Dst: execv
      Src: /src/pcre2/src/pcre2grep.c:2446,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2grep.c:2448,1
    - Dst: waitpid
      Src: /src/pcre2/src/pcre2grep.c:2451,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:2454,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:2455,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 121
    argCount: 2
    argNames:
    - calloutptr
    - unused
    argTypes:
    - pcre2_callout_block*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2243
    functionDepth: 3
    functionLinenumber: 2243
    functionLinenumberEnd: 2462
    functionName: pcre2grep_callout
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - $DESCRIPTOR
    - memcpy
    - decode_dollar_escape
    - fork
    - exit
    - strlen
    - ord2utf8
    - syntax_check_output_text
    - execv
    - strcat
    - malloc
    - lib$spawn
    - free
    - _spawnvp
    - display_output_text
    - waitpid
    linkageType: ''
    returnType: int
    signature: int pcre2grep_callout(pcre2_callout_block *calloutptr, void *unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gzread
      Src: /src/pcre2/src/pcre2grep.c:2479,1
    - Dst: BZ2_bzread
      Src: /src/pcre2/src/pcre2grep.c:2485,1
    - Dst: read_one_line
      Src: /src/pcre2/src/pcre2grep.c:2490,1
    - Dst: fread
      Src: /src/pcre2/src/pcre2grep.c:2491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - handle
    - frtype
    - buffer
    - length
    - input_line_buffered
    argTypes:
    - void*
    - int
    - char*
    - int
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2471
    functionDepth: 1
    functionLinenumber: 2471
    functionLinenumberEnd: 2492
    functionName: fill_buffer
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - fread
    - gzread
    - read_one_line
    - BZ2_bzread
    linkageType: ''
    returnType: int
    signature: "int fill_buffer(void *handle, int frtype, char *buffer, int length,\n
      \ BOOL input_line_buffered)"
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: is_file_tty
      Src: /src/pcre2/src/pcre2grep.c:2550,1
    - Dst: fill_buffer
      Src: /src/pcre2/src/pcre2grep.c:2554,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2grep.c:2570,1
    - Dst: is_file_tty
      Src: /src/pcre2/src/pcre2grep.c:2597,1
    - Dst: fseek
      Src: /src/pcre2/src/pcre2grep.c:2598,1
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:2611,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:2628,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2632,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2grep.c:2644,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:2649,1
    - Dst: fill_buffer
      Src: /src/pcre2/src/pcre2grep.c:2655,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2662,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:2687,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:2687,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:2689,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:2691,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:2692,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:2695,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:2695,1
    - Dst: strncpy
      Src: /src/pcre2/src/pcre2grep.c:2697,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:2700,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:2700,1
    - Dst: gettimeofday
      Src: /src/pcre2/src/pcre2grep.c:2704,1
    - Dst: perror
      Src: /src/pcre2/src/pcre2grep.c:2705,1
    - Dst: pcre_exec
      Src: /src/pcre2/src/pcre2grep.c:2709,1
    - Dst: gettimeofday
      Src: /src/pcre2/src/pcre2grep.c:2712,1
    - Dst: perror
      Src: /src/pcre2/src/pcre2grep.c:2713,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2grep.c:2719,1
    - Dst: match_patterns
      Src: /src/pcre2/src/pcre2grep.c:2736,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2770,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2779,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2798,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2799,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2804,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2810,1
    - Dst: display_output_text
      Src: /src/pcre2/src/pcre2grep.c:2818,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2821,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2840,1
    - Dst: print_match
      Src: /src/pcre2/src/pcre2grep.c:2841,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2848,1
    - Dst: fflush
      Src: /src/pcre2/src/pcre2grep.c:2854,1
    - Dst: pcre2_get_startchar
      Src: /src/pcre2/src/pcre2grep.c:2863,1
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:2881,1
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:2909,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2920,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2921,1
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:2922,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:2923,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2933,1
    - Dst: previous_line
      Src: /src/pcre2/src/pcre2grep.c:2951,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2955,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2961,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2962,1
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:2963,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:2964,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2975,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2976,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:2987,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:2988,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:2989,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:3015,1
    - Dst: print_match
      Src: /src/pcre2/src/pcre2grep.c:3016,1
    - Dst: pcre2_get_startchar
      Src: /src/pcre2/src/pcre2grep.c:3020,1
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:3049,1
    - Dst: match_patterns
      Src: /src/pcre2/src/pcre2grep.c:3063,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:3075,1
    - Dst: print_match
      Src: /src/pcre2/src/pcre2grep.c:3076,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:3084,1
    - Dst: FWRITE_IGNORE
      Src: /src/pcre2/src/pcre2grep.c:3089,1
    - Dst: fflush
      Src: /src/pcre2/src/pcre2grep.c:3095,1
    - Dst: write_final_newline
      Src: /src/pcre2/src/pcre2grep.c:3108,1
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:3122,1
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:3125,1
    - Dst: read_one_line
      Src: /src/pcre2/src/pcre2grep.c:3147,1
    - Dst: do_after_lines
      Src: /src/pcre2/src/pcre2grep.c:3163,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2grep.c:3169,1
    - Dst: fill_buffer
      Src: /src/pcre2/src/pcre2grep.c:3172,1
    - Dst: do_after_lines
      Src: /src/pcre2/src/pcre2grep.c:3187,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3196,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3207,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3208,1
    CyclomaticComplexity: 133
    EdgeCount: 133
    ICount: 308
    argCount: 4
    argNames:
    - handle
    - frtype
    - filename
    - printname
    argTypes:
    - void*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3215
      start: 2523
    functionDepth: 3
    functionLinenumber: 2523
    functionLinenumberEnd: 3215
    functionName: pcre2grep
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 0
    functionsReached:
    - match_patterns
    - is_file_tty
    - fill_buffer
    - FWRITE_IGNORE
    - free
    - fflush
    - write_final_newline
    - strlen
    - pcre2_get_startchar
    - previous_line
    - pcre2grep_exit
    - malloc
    - perror
    - strcpy
    - read_one_line
    - gettimeofday
    - memchr
    - end_of_line
    - print_match
    - pcre_exec
    - strncpy
    - fseek
    - printf
    - memmove
    - memcpy
    - do_after_lines
    - fprintf
    - display_output_text
    linkageType: ''
    returnType: int
    signature: int pcre2grep(void *handle, int frtype, const char *filename, const
      char *printname)
  - BBCount: 197
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3267,1
    - Dst: pcre2grep
      Src: /src/pcre2/src/pcre2grep.c:3269,1
    - Dst: strrchr
      Src: /src/pcre2/src/pcre2grep.c:3278,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2grep.c:3289,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3293,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2grep.c:3294,1
    - Dst: identifyzosfiletype
      Src: /src/pcre2/src/pcre2grep.c:3297,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2grep.c:3298,1
    - Dst: travelonpdsdir
      Src: /src/pcre2/src/pcre2grep.c:3304,1
    - Dst: isdirectory
      Src: /src/pcre2/src/pcre2grep.c:3324,1
    - Dst: test_incexc
      Src: /src/pcre2/src/pcre2grep.c:3327,1
    - Dst: opendirectory
      Src: /src/pcre2/src/pcre2grep.c:3334,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3339,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2grep.c:3340,1
    - Dst: readdirectory
      Src: /src/pcre2/src/pcre2grep.c:3344,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:3347,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:3347,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3350,1
    - Dst: sprintf
      Src: /src/pcre2/src/pcre2grep.c:3354,1
    - Dst: realpath
      Src: /src/pcre2/src/pcre2grep.c:3368,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3370,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:3372,1
    - Dst: strcat
      Src: /src/pcre2/src/pcre2grep.c:3376,1
    - Dst: strncmp
      Src: /src/pcre2/src/pcre2grep.c:3377,1
    - Dst: grep_or_recurse
      Src: /src/pcre2/src/pcre2grep.c:3383,1
    - Dst: closedirectory
      Src: /src/pcre2/src/pcre2grep.c:3388,1
    - Dst: iswild
      Src: /src/pcre2/src/pcre2grep.c:3394,1
    - Dst: opendirectory
      Src: /src/pcre2/src/pcre2grep.c:3399,1
    - Dst: readdirectory
      Src: /src/pcre2/src/pcre2grep.c:3409,1
    - Dst: sprintf
      Src: /src/pcre2/src/pcre2grep.c:3412,1
    - Dst: grep_or_recurse
      Src: /src/pcre2/src/pcre2grep.c:3413,1
    - Dst: closedirectory
      Src: /src/pcre2/src/pcre2grep.c:3418,1
    - Dst: NATIVE_ZOS
      Src: /src/pcre2/src/pcre2grep.c:3432,1
    - Dst: isregfile
      Src: /src/pcre2/src/pcre2grep.c:3435,1
    - Dst: test_incexc
      Src: /src/pcre2/src/pcre2grep.c:3437,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:3447,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3453,1
    - Dst: gzopen
      Src: /src/pcre2/src/pcre2grep.c:3455,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3459,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2grep.c:3460,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3472,1
    - Dst: BZ2_bzopen
      Src: /src/pcre2/src/pcre2grep.c:3474,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2grep.c:3488,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3498,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2grep.c:3499,1
    - Dst: pcre2grep
      Src: /src/pcre2/src/pcre2grep.c:3505,1
    - Dst: gzclose
      Src: /src/pcre2/src/pcre2grep.c:3512,1
    - Dst: BZ2_bzerror
      Src: /src/pcre2/src/pcre2grep.c:3526,1
    - Dst: BZ2_bzclose
      Src: /src/pcre2/src/pcre2grep.c:3529,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3533,1
    - Dst: BZ2_bzclose
      Src: /src/pcre2/src/pcre2grep.c:3537,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2grep.c:3544,1
    - Dst: help
      Src: /src/pcre2/src/pcre2grep.c:3563,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3563,1
    - Dst: add_number
      Src: /src/pcre2/src/pcre2grep.c:3581,1
    - Dst: pcre2_config
      Src: /src/pcre2/src/pcre2grep.c:3598,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3599,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3601,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3605,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3606,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:3606,1
    - Dst: sprintf
      Src: /src/pcre2/src/pcre2grep.c:3625,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:3631,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:3632,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:3633,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:3634,1
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:3682,1
    - Dst: add_pattern
      Src: /src/pcre2/src/pcre2grep.c:3687,1
    - Dst: pcre2_compile
      Src: /src/pcre2/src/pcre2grep.c:3691,1
    - Dst: pcre2_jit_compile
      Src: /src/pcre2/src/pcre2grep.c:3701,1
    - Dst: pcre2_get_error_message
      Src: /src/pcre2/src/pcre2grep.c:3709,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3713,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3719,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3722,1
    - Dst: ordin
      Src: /src/pcre2/src/pcre2grep.c:3723,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3754,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2grep.c:3761,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3764,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2grep.c:3764,1
    - Dst: read_one_line
      Src: /src/pcre2/src/pcre2grep.c:3770,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2grep.c:3772,1
    - Dst: add_pattern
      Src: /src/pcre2/src/pcre2grep.c:3781,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2grep.c:3784,1
    - Dst: compile_pattern
      Src: /src/pcre2/src/pcre2grep.c:3797,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2grep.c:3800,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2grep.c:3809,1
    - Dst: _setmode
      Src: /src/pcre2/src/pcre2grep.c:3843,1
    - Dst: _fileno
      Src: /src/pcre2/src/pcre2grep.c:3843,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3863,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:3863,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2grep.c:3871,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2grep.c:3890,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2grep.c:3891,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3899,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:3905,1
    - Dst: strncmp
      Src: /src/pcre2/src/pcre2grep.c:3906,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2grep.c:3928,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:3930,1
    - Dst: snprintf
      Src: /src/pcre2/src/pcre2grep.c:3932,1
    - Dst: snprintf
      Src: /src/pcre2/src/pcre2grep.c:3934,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3938,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3940,1
    - Dst: strncmp
      Src: /src/pcre2/src/pcre2grep.c:3943,1
    - Dst: strncmp
      Src: /src/pcre2/src/pcre2grep.c:3944,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3962,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3963,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:3963,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3974,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3977,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3980,1
    - Dst: sscanf
      Src: /src/pcre2/src/pcre2grep.c:3981,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3983,1
    - Dst: sscanf
      Src: /src/pcre2/src/pcre2grep.c:3984,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4006,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:4008,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:4008,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2grep.c:4025,1
    - Dst: handle_option
      Src: /src/pcre2/src/pcre2grep.c:4035,1
    - Dst: handle_option
      Src: /src/pcre2/src/pcre2grep.c:4045,1
    - Dst: add_number
      Src: /src/pcre2/src/pcre2grep.c:4065,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4084,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:4085,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:4085,1
    - Dst: decode_number
      Src: /src/pcre2/src/pcre2grep.c:4095,1
    - Dst: add_number
      Src: /src/pcre2/src/pcre2grep.c:4097,1
    - Dst: add_pattern
      Src: /src/pcre2/src/pcre2grep.c:4108,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:4108,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:4120,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4123,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4139,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4141,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4143,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4147,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:4149,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:4149,1
    - Dst: decode_number
      Src: /src/pcre2/src/pcre2grep.c:4162,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4187,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:4189,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:4189,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4200,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4201,1
    - Dst: syntax_check_output_text
      Src: /src/pcre2/src/pcre2grep.c:4209,1
    - Dst: pcre2_compile_context_create
      Src: /src/pcre2/src/pcre2grep.c:4215,1
    - Dst: pcre2_match_context_create
      Src: /src/pcre2/src/pcre2grep.c:4216,1
    - Dst: pcre2_match_data_create
      Src: /src/pcre2/src/pcre2grep.c:4217,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/pcre2/src/pcre2grep.c:4218,1
    - Dst: pcre2_set_callout
      Src: /src/pcre2/src/pcre2grep.c:4224,1
    - Dst: pcre2_set_heap_limit
      Src: /src/pcre2/src/pcre2grep.c:4229,1
    - Dst: pcre2_set_match_limit
      Src: /src/pcre2/src/pcre2grep.c:4230,1
    - Dst: pcre2_set_depth_limit
      Src: /src/pcre2/src/pcre2grep.c:4231,1
    - Dst: getenv
      Src: /src/pcre2/src/pcre2grep.c:4238,1
    - Dst: getenv
      Src: /src/pcre2/src/pcre2grep.c:4244,1
    - Dst: setlocale
      Src: /src/pcre2/src/pcre2grep.c:4253,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4255,1
    - Dst: pcre2_maketables
      Src: /src/pcre2/src/pcre2grep.c:4259,1
    - Dst: pcre2_set_character_tables
      Src: /src/pcre2/src/pcre2grep.c:4260,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4265,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4267,1
    - Dst: is_stdout_tty
      Src: /src/pcre2/src/pcre2grep.c:4269,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4272,1
    - Dst: is_stdout_tty
      Src: /src/pcre2/src/pcre2grep.c:4272,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4275,1
    - Dst: getenv
      Src: /src/pcre2/src/pcre2grep.c:4281,1
    - Dst: getenv
      Src: /src/pcre2/src/pcre2grep.c:4282,1
    - Dst: getenv
      Src: /src/pcre2/src/pcre2grep.c:4283,1
    - Dst: getenv
      Src: /src/pcre2/src/pcre2grep.c:4284,1
    - Dst: parse_grep_colors
      Src: /src/pcre2/src/pcre2grep.c:4285,1
    - Dst: getenv
      Src: /src/pcre2/src/pcre2grep.c:4285,1
    - Dst: getenv
      Src: /src/pcre2/src/pcre2grep.c:4286,1
    - Dst: strspn
      Src: /src/pcre2/src/pcre2grep.c:4289,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:4289,1
    - Dst: init_colour_output
      Src: /src/pcre2/src/pcre2grep.c:4292,1
    - Dst: strcmpic
      Src: /src/pcre2/src/pcre2grep.c:4304,1
    - Dst: pcre2_set_newline
      Src: /src/pcre2/src/pcre2grep.c:4307,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4310,1
    - Dst: pcre2_config
      Src: /src/pcre2/src/pcre2grep.c:4320,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4327,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4328,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4329,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4332,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4339,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4340,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4343,1
    - Dst: pcre2_set_compile_extra_options
      Src: /src/pcre2/src/pcre2grep.c:4350,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4357,1
    - Dst: pcre2_config
      Src: /src/pcre2/src/pcre2grep.c:4373,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4381,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:4386,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4390,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:4399,1
    - Dst: add_pattern
      Src: /src/pcre2/src/pcre2grep.c:4400,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:4400,1
    - Dst: compile_pattern
      Src: /src/pcre2/src/pcre2grep.c:4414,1
    - Dst: read_pattern_file
      Src: /src/pcre2/src/pcre2grep.c:4423,1
    - Dst: pcre2_jit_stack_create
      Src: /src/pcre2/src/pcre2grep.c:4431,1
    - Dst: pcre2_jit_stack_assign
      Src: /src/pcre2/src/pcre2grep.c:4433,1
    - Dst: pcre2_set_compile_extra_options
      Src: /src/pcre2/src/pcre2grep.c:4441,1
    - Dst: compile_pattern
      Src: /src/pcre2/src/pcre2grep.c:4451,1
    - Dst: read_pattern_file
      Src: /src/pcre2/src/pcre2grep.c:4461,1
    - Dst: read_pattern_file
      Src: /src/pcre2/src/pcre2grep.c:4467,1
    - Dst: pcre2grep
      Src: /src/pcre2/src/pcre2grep.c:4476,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4488,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2grep.c:4490,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4493,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2grep.c:4494,1
    - Dst: fgets
      Src: /src/pcre2/src/pcre2grep.c:4498,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:4501,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2grep.c:4502,1
    - Dst: grep_or_recurse
      Src: /src/pcre2/src/pcre2grep.c:4506,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2grep.c:4511,1
    - Dst: grep_or_recurse
      Src: /src/pcre2/src/pcre2grep.c:4522,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4532,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4533,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4542,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4543,1
    - Dst: pcre2_jit_stack_free
      Src: /src/pcre2/src/pcre2grep.c:4549,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:4552,1
    - Dst: pcre2_maketables_free
      Src: /src/pcre2/src/pcre2grep.c:4553,1
    - Dst: pcre2_compile_context_free
      Src: /src/pcre2/src/pcre2grep.c:4555,1
    - Dst: pcre2_match_context_free
      Src: /src/pcre2/src/pcre2grep.c:4556,1
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2grep.c:4557,1
    - Dst: free_pattern_chain
      Src: /src/pcre2/src/pcre2grep.c:4559,1
    - Dst: free_pattern_chain
      Src: /src/pcre2/src/pcre2grep.c:4560,1
    - Dst: free_pattern_chain
      Src: /src/pcre2/src/pcre2grep.c:4561,1
    - Dst: free_pattern_chain
      Src: /src/pcre2/src/pcre2grep.c:4562,1
    - Dst: free_pattern_chain
      Src: /src/pcre2/src/pcre2grep.c:4563,1
    - Dst: free_file_chain
      Src: /src/pcre2/src/pcre2grep.c:4565,1
    - Dst: free_file_chain
      Src: /src/pcre2/src/pcre2grep.c:4566,1
    - Dst: free_file_chain
      Src: /src/pcre2/src/pcre2grep.c:4567,1
    - Dst: free_file_chain
      Src: /src/pcre2/src/pcre2grep.c:4568,1
    - Dst: free
      Src: /src/pcre2/src/pcre2grep.c:4574,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:4577,1
    CyclomaticComplexity: 316
    EdgeCount: 316
    ICount: 734
    argCount: 3
    argNames:
    - pathname
    - dir_recurse
    - only_one_at_top
    argTypes:
    - char*
    - BOOL
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4582
      start: 3239
    functionDepth: 4
    functionLinenumber: 3239
    functionLinenumberEnd: 4582
    functionName: grep_or_recurse
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 1
    functionsReached:
    - pcre2_set_depth_limit
    - add_pattern
    - travelonpdsdir
    - fclose
    - strcmpic
    - test_incexc
    - BZ2_bzclose
    - gzopen
    - free_file_chain
    - snprintf
    - pcre2_maketables_free
    - NATIVE_ZOS
    - pcre2grep_exit
    - strcmp
    - pcre2_jit_stack_assign
    - ordin
    - strcpy
    - pcre2_jit_compile
    - end_of_line
    - _fileno
    - help
    - pcre2_jit_stack_free
    - isregfile
    - identifyzosfiletype
    - isdirectory
    - pcre2_get_ovector_pointer
    - pcre2_compile_context_create
    - iswild
    - closedirectory
    - compile_pattern
    - pcre2_config
    - pcre2_match_data_create
    - pcre2_set_callout
    - fgets
    - strerror
    - is_stdout_tty
    - pcre2_jit_stack_create
    - sscanf
    - strcat
    - opendirectory
    - init_colour_output
    - read_one_line
    - pcre2_set_match_limit
    - fopen
    - parse_grep_colors
    - pcre2_set_newline
    - pcre2_match_context_create
    - pcre2_compile_context_free
    - pcre2_set_compile_extra_options
    - pcre2_match_context_free
    - pcre2_match_data_free
    - free_pattern_chain
    - setlocale
    - pcre2_compile
    - fprintf
    - pcre2_get_error_message
    - _setmode
    - getenv
    - syntax_check_output_text
    - strspn
    - free
    - strrchr
    - BZ2_bzopen
    - grep_or_recurse
    - add_number
    - decode_number
    - strncmp
    - readdirectory
    - pcre2grep
    - handle_option
    - read_pattern_file
    - sprintf
    - strlen
    - gzclose
    - isdigit
    - strchr
    - malloc
    - BZ2_bzerror
    - isspace
    - pcre2_set_character_tables
    - realpath
    - pcre2_set_heap_limit
    - pcre2_maketables
    - usage
    linkageType: ''
    returnType: int
    signature: int grep_or_recurse(char *pathname, BOOL dir_recurse, BOOL only_one_at_top)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: help
      Src: /src/pcre2/src/pcre2grep.c:3563,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3563,1
    - Dst: add_number
      Src: /src/pcre2/src/pcre2grep.c:3581,1
    - Dst: pcre2_config
      Src: /src/pcre2/src/pcre2grep.c:3598,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3599,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3601,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3605,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3606,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:3606,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 101
    argCount: 2
    argNames:
    - letter
    - options
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3557
    functionDepth: 3
    functionLinenumber: 3557
    functionLinenumberEnd: 3610
    functionName: handle_option
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 1
    functionsReached:
    - pcre2_config
    - help
    - add_number
    - pcre2grep_exit
    - fprintf
    - usage
    linkageType: ''
    returnType: int
    signature: int handle_option(int letter, int options)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/pcre2/src/pcre2grep.c:3625,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:3631,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:3632,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:3633,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2grep.c:3634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3637
      start: 3620
    functionDepth: 0
    functionLinenumber: 3620
    functionLinenumberEnd: 3637
    functionName: ordin
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 1
    functionsReached:
    - strcpy
    - sprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      ordin(int n)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: end_of_line
      Src: /src/pcre2/src/pcre2grep.c:3682,1
    - Dst: add_pattern
      Src: /src/pcre2/src/pcre2grep.c:3687,1
    - Dst: pcre2_compile
      Src: /src/pcre2/src/pcre2grep.c:3691,1
    - Dst: pcre2_jit_compile
      Src: /src/pcre2/src/pcre2grep.c:3701,1
    - Dst: pcre2_get_error_message
      Src: /src/pcre2/src/pcre2grep.c:3709,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3713,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3719,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3722,1
    - Dst: ordin
      Src: /src/pcre2/src/pcre2grep.c:3723,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - p
    - options
    - fromfile
    - fromtext
    - count
    argTypes:
    - patstr*
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3727
      start: 3665
    functionDepth: 3
    functionLinenumber: 3665
    functionLinenumberEnd: 3727
    functionName: compile_pattern
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 1
    functionsReached:
    - pcre2_jit_compile
    - end_of_line
    - add_pattern
    - pcre2_compile
    - fprintf
    - ordin
    - pcre2_get_error_message
    linkageType: ''
    returnType: BOOL
    signature: "BOOL compile_pattern(patstr *p, int options, int fromfile, const char
      *fromtext,\n  int count)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3754,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2grep.c:3761,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3764,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2grep.c:3764,1
    - Dst: read_one_line
      Src: /src/pcre2/src/pcre2grep.c:3770,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2grep.c:3772,1
    - Dst: add_pattern
      Src: /src/pcre2/src/pcre2grep.c:3781,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2grep.c:3784,1
    - Dst: compile_pattern
      Src: /src/pcre2/src/pcre2grep.c:3797,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2grep.c:3800,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2grep.c:3809,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 3
    argNames:
    - name
    - patptr
    - patlastptr
    argTypes:
    - char*
    - patstr**
    - patstr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3811
      start: 3745
    functionDepth: 4
    functionLinenumber: 3745
    functionLinenumberEnd: 3811
    functionName: read_pattern_file
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 1
    functionsReached:
    - fopen
    - add_pattern
    - strerror
    - isspace
    - compile_pattern
    - strcmp
    - fclose
    - fprintf
    - read_one_line
    linkageType: ''
    returnType: BOOL
    signature: BOOL read_pattern_file(char *name, patstr **patptr, patstr **patlastptr)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/pcre2/src/pcre2grep.c:3843,1
    - Dst: _fileno
      Src: /src/pcre2/src/pcre2grep.c:3843,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3863,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:3863,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2grep.c:3871,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2grep.c:3890,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2grep.c:3891,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3899,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:3905,1
    - Dst: strncmp
      Src: /src/pcre2/src/pcre2grep.c:3906,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2grep.c:3928,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:3930,1
    - Dst: snprintf
      Src: /src/pcre2/src/pcre2grep.c:3932,1
    - Dst: snprintf
      Src: /src/pcre2/src/pcre2grep.c:3934,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3938,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3940,1
    - Dst: strncmp
      Src: /src/pcre2/src/pcre2grep.c:3943,1
    - Dst: strncmp
      Src: /src/pcre2/src/pcre2grep.c:3944,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:3962,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:3963,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:3963,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3974,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3977,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3980,1
    - Dst: sscanf
      Src: /src/pcre2/src/pcre2grep.c:3981,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:3983,1
    - Dst: sscanf
      Src: /src/pcre2/src/pcre2grep.c:3984,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4006,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:4008,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:4008,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2grep.c:4025,1
    - Dst: handle_option
      Src: /src/pcre2/src/pcre2grep.c:4035,1
    - Dst: handle_option
      Src: /src/pcre2/src/pcre2grep.c:4045,1
    - Dst: add_number
      Src: /src/pcre2/src/pcre2grep.c:4065,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4084,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:4085,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:4085,1
    - Dst: decode_number
      Src: /src/pcre2/src/pcre2grep.c:4095,1
    - Dst: add_number
      Src: /src/pcre2/src/pcre2grep.c:4097,1
    - Dst: add_pattern
      Src: /src/pcre2/src/pcre2grep.c:4108,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2grep.c:4108,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2grep.c:4120,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4123,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4139,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4141,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2grep.c:4143,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2grep.c:4147,1
    - Dst: pcre2grep_exit
      Src: /src/pcre2/src/pcre2grep.c:4149,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2grep.c:4149,1
    - Dst: decode_number
      Src: /src/pcre2/src/pcre2grep.c:4162,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 162
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4167
      start: 3821
    functionDepth: 4
    functionLinenumber: 3821
    functionLinenumberEnd: 4167
    functionName: main
    functionSourceFile: /src/pcre2/src/pcre2grep.c
    functionUses: 3
    functionsReached:
    - _setmode
    - _fileno
    - strncmp
    - snprintf
    - strlen
    - add_pattern
    - isdigit
    - handle_option
    - add_number
    - sscanf
    - strchr
    - decode_number
    - pcre2grep_exit
    - strcmp
    - malloc
    - fprintf
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_regerror
      Src: /src/pcre2/src/pcre2posix.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - errcode
    - preg
    - errbuf
    - errbuf_size
    argTypes:
    - int
    - regex_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: regerror
    functionSourceFile: /src/pcre2/src/pcre2posix.c
    functionUses: 1
    functionsReached:
    - pcre2_regerror
    linkageType: ''
    returnType: PCRE2POSIX_EXP_DEFN
    signature: PCRE2POSIX_EXP_DEFN regerror(int errcode, const regex_t *preg, char
      *errbuf, size_t errbuf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_regfree
      Src: /src/pcre2/src/pcre2posix.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - preg
    argTypes:
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: regfree
    functionSourceFile: /src/pcre2/src/pcre2posix.c
    functionUses: 1
    functionsReached:
    - pcre2_regfree
    linkageType: ''
    returnType: PCRE2POSIX_EXP_DEFN
    signature: PCRE2POSIX_EXP_DEFN regfree(regex_t *preg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_regcomp
      Src: /src/pcre2/src/pcre2posix.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - preg
    - pattern
    - cflags
    argTypes:
    - regex_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: regcomp
    functionSourceFile: /src/pcre2/src/pcre2posix.c
    functionUses: 1
    functionsReached:
    - pcre2_regcomp
    linkageType: ''
    returnType: PCRE2POSIX_EXP_DEFN
    signature: PCRE2POSIX_EXP_DEFN regcomp(regex_t *preg, const char *pattern, int
      cflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_regexec
      Src: /src/pcre2/src/pcre2posix.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - preg
    - string
    - nmatch
    - pmatch
    - eflags
    argTypes:
    - regex_t*
    - char*
    - size_t
    - regmatch_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: regexec
    functionSourceFile: /src/pcre2/src/pcre2posix.c
    functionUses: 1
    functionsReached:
    - pcre2_regexec
    linkageType: ''
    returnType: PCRE2POSIX_EXP_DEFN
    signature: "PCRE2POSIX_EXP_DEFN regexec(const regex_t *preg, const char *string,
      size_t nmatch,\n  regmatch_t pmatch[], int eflags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/pcre2/src/pcre2posix.c:255,1
    - Dst: snprintf
      Src: /src/pcre2/src/pcre2posix.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - errcode
    - preg
    - errbuf
    - errbuf_size
    argTypes:
    - int
    - regex_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 264
    functionName: pcre2_regerror
    functionSourceFile: /src/pcre2/src/pcre2posix.c
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: PCRE2POSIX_EXP_DEFN
    signature: "PCRE2POSIX_EXP_DEFN pcre2_regerror(int errcode, const regex_t *preg,
      char *errbuf,\n  size_t errbuf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2posix.c:275,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2posix.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - preg
    argTypes:
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: pcre2_regfree
    functionSourceFile: /src/pcre2/src/pcre2posix.c
    functionUses: 1
    functionsReached:
    - pcre2_match_data_free
    - pcre2_code_free
    linkageType: ''
    returnType: PCRE2POSIX_EXP_DEFN
    signature: PCRE2POSIX_EXP_DEFN pcre2_regfree(regex_t *preg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_compile
      Src: /src/pcre2/src/pcre2posix.c:316,1
    - Dst: pcre2_pattern_info
      Src: /src/pcre2/src/pcre2posix.c:337,1
    - Dst: pcre2_match_data_create
      Src: /src/pcre2/src/pcre2posix.c:340,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2posix.c:345,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - preg
    - pattern
    - cflags
    argTypes:
    - regex_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 350
    functionName: pcre2_regcomp
    functionSourceFile: /src/pcre2/src/pcre2posix.c
    functionUses: 1
    functionsReached:
    - pcre2_match_data_create
    - pcre2_pattern_info
    - pcre2_compile
    - pcre2_code_free
    linkageType: ''
    returnType: PCRE2POSIX_EXP_DEFN
    signature: PCRE2POSIX_EXP_DEFN pcre2_regcomp(regex_t *preg, const char *pattern,
      int cflags)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pcre2/src/pcre2posix.c:395,1
    - Dst: pcre2_match
      Src: /src/pcre2/src/pcre2posix.c:398,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/pcre2/src/pcre2posix.c:406,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 5
    argNames:
    - preg
    - string
    - nmatch
    - pmatch
    - eflags
    argTypes:
    - regex_t*
    - char*
    - size_t
    - regmatch_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 436
    functionName: pcre2_regexec
    functionSourceFile: /src/pcre2/src/pcre2posix.c
    functionUses: 1
    functionsReached:
    - pcre2_get_ovector_pointer
    - pcre2_match
    - strlen
    linkageType: ''
    returnType: PCRE2POSIX_EXP_DEFN
    signature: "PCRE2POSIX_EXP_DEFN pcre2_regexec(const regex_t *preg, const char
      *string, size_t nmatch,\n  regmatch_t pmatch[], int eflags)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2demo.c:105,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:108,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:119,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2demo.c:130,1
    - Dst: pcre2_compile
      Src: /src/pcre2/src/pcre2demo.c:138,1
    - Dst: pcre2_get_error_message
      Src: /src/pcre2/src/pcre2demo.c:151,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:152,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/pcre2/src/pcre2demo.c:171,1
    - Dst: pcre2_match
      Src: /src/pcre2/src/pcre2demo.c:175,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:190,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:194,1
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2demo.c:196,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2demo.c:197,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/pcre2/src/pcre2demo.c:204,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:205,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:218,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:229,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:232,1
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2demo.c:233,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2demo.c:234,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:245,1
    - Dst: pcre2_pattern_info
      Src: /src/pcre2/src/pcre2demo.c:259,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:264,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:267,1
    - Dst: pcre2_pattern_info
      Src: /src/pcre2/src/pcre2demo.c:272,1
    - Dst: pcre2_pattern_info
      Src: /src/pcre2/src/pcre2demo.c:277,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:290,1
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2demo.c:328,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2demo.c:329,1
    - Dst: pcre2_pattern_info
      Src: /src/pcre2/src/pcre2demo.c:337,1
    - Dst: pcre2_pattern_info
      Src: /src/pcre2/src/pcre2demo.c:343,1
    - Dst: pcre2_get_startchar
      Src: /src/pcre2/src/pcre2demo.c:375,1
    - Dst: pcre2_match
      Src: /src/pcre2/src/pcre2demo.c:390,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:436,1
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2demo.c:437,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2demo.c:438,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:444,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:450,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:458,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:461,1
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2demo.c:462,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2demo.c:463,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:474,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:477,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:480,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:484,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2demo.c:491,1
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2demo.c:492,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2demo.c:493,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 139
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 495
    functionName: main
    functionSourceFile: /src/pcre2/src/pcre2demo.c
    functionUses: 3
    functionsReached:
    - pcre2_match_data_free
    - strlen
    - pcre2_get_ovector_pointer
    - pcre2_match_data_create_from_pattern
    - pcre2_get_startchar
    - pcre2_match
    - pcre2_pattern_info
    - printf
    - strcmp
    - pcre2_compile
    - pcre2_get_error_message
    - pcre2_code_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - c
    - eptr
    - start_subject
    - end_subject
    - utf
    - xcount
    argTypes:
    - uint32_t
    - PCRE2_SPTR
    - PCRE2_SPTR
    - PCRE2_SPTR
    - BOOL
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_extuni.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: "PCRE2_SPTR PRIV(extuni)(uint32_t c, PCRE2_SPTR eptr, PCRE2_SPTR start_subject,\n
      \ PCRE2_SPTR end_subject, BOOL utf, int *xcount)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_extuni.c:95,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_extuni.c:101,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_extuni.c:102,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_extuni.c:103,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_extuni.c:112,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_extuni.c:121,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_extuni.c:122,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_extuni.c:126,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 6
    argNames:
    - c
    - eptr
    - start_subject
    - end_subject
    - utf
    - xcount
    argTypes:
    - uint32_t
    - PCRE2_SPTR
    - PCRE2_SPTR
    - PCRE2_SPTR
    - BOOL
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 144
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_extuni.c
    functionUses: 27
    functionsReached:
    - UCD_GRAPHBREAK
    - GETCHAR
    - GETCHARLEN
    - PRIV
    - BACKCHAR
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: "PCRE2_SPTR PRIV(extuni)(uint32_t c, PCRE2_SPTR eptr, PCRE2_SPTR start_subject,\n
      \ PCRE2_SPTR end_subject, BOOL utf, int *xcount)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:132,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 4
    argNames:
    - code
    - ptrptr
    - ptrend
    - last
    argTypes:
    - pcre2_code*
    - PCRE2_SPTR*
    - PCRE2_SPTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 163
    functionName: find_text_end
    functionSourceFile: /src/pcre2/src/pcre2_substitute.c
    functionUses: 0
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: int
    signature: "int find_text_end(const pcre2_code *code, PCRE2_SPTR *ptrptr, PCRE2_SPTR
      ptrend,\n  BOOL last)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 216
    functionName: CHECKMEMCPY
    functionSourceFile: /src/pcre2/src/pcre2_substitute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKMEMCPY(from,length)
  - BBCount: 102
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/pcre2/src/pcre2_substitute.c:284,1
    - Dst: pcre2_match_data_create
      Src: /src/pcre2/src/pcre2_substitute.c:295,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_substitute.c:298,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/pcre2/src/pcre2_substitute.c:305,1
    - Dst: pcre2_get_ovector_count
      Src: /src/pcre2/src/pcre2_substitute.c:306,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:317,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:318,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:326,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:351,1
    - Dst: pcre2_match
      Src: /src/pcre2/src/pcre2_substitute.c:367,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:417,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:466,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:476,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_substitute.c:582,1
    - Dst: find_text_end
      Src: /src/pcre2/src/pcre2_substitute.c:609,1
    - Dst: find_text_end
      Src: /src/pcre2/src/pcre2_substitute.c:616,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:639,1
    - Dst: pcre2_get_mark
      Src: /src/pcre2/src/pcre2_substitute.c:641,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:647,1
    - Dst: pcre2_substring_nametable_scan
      Src: /src/pcre2/src/pcre2_substitute.c:668,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_substitute.c:679,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_substitute.c:694,1
    - Dst: pcre2_substring_length_bynumber
      Src: /src/pcre2/src/pcre2_substitute.c:702,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_substitute.c:758,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_substitute.c:764,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:765,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_substitute.c:767,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:781,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:787,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:831,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_substitute.c:858,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_substitute.c:866,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:867,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_substitute.c:869,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_substitute.c:883,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:889,1
    - Dst: pcre2_match_context*::substitute_callout
      Src: /src/pcre2/src/pcre2_substitute.c:901,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:913,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:941,1
    - Dst: CHECKMEMCPY
      Src: /src/pcre2/src/pcre2_substitute.c:945,1
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2_substitute.c:967,1
    CyclomaticComplexity: 188
    EdgeCount: 188
    ICount: 441
    argCount: 11
    argNames:
    - code
    - subject
    - length
    - start_offset
    - options
    - match_data
    - mcontext
    - replacement
    - rlength
    - buffer
    - blength
    argTypes:
    - pcre2_code*
    - PCRE2_SPTR
    - PCRE2_SIZE
    - PCRE2_SIZE
    - uint32_t
    - pcre2_match_data*
    - pcre2_match_context*
    - PCRE2_SPTR
    - PCRE2_SIZE
    - PCRE2_UCHAR*
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 985
    functionName: pcre2_substitute
    functionSourceFile: /src/pcre2/src/pcre2_substitute.c
    functionUses: 1
    functionsReached:
    - pcre2_match_data_create
    - pcre2_match_context*::substitute_callout
    - GETCHARINCTEST
    - GET2
    - pcre2_get_mark
    - pcre2_match
    - CHECKMEMCPY
    - UCD_CHARTYPE
    - UCD_OTHERCASE
    - PRIV
    - pcre2_get_ovector_count
    - pcre2_substring_length_bynumber
    - find_text_end
    - memcpy
    - pcre2_match_data_free
    - pcre2_get_ovector_pointer
    - pcre2_match_data_create_from_pattern
    - pcre2_substring_nametable_scan
    - MAX_255
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_substitute(const pcre2_code *code, PCRE2_SPTR
      subject, PCRE2_SIZE length,\n  PCRE2_SIZE start_offset, uint32_t options, pcre2_match_data
      *match_data,\n  pcre2_match_context *mcontext, PCRE2_SPTR replacement, PCRE2_SIZE
      rlength,\n  PCRE2_UCHAR *buffer, PCRE2_SIZE *blength)"
  - 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: PRINTABLE
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTABLE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: PRINTABLE
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTABLE(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: XDIGIT
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: XDIGIT
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: PUTOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTOFFSET(s,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: GETOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETOFFSET(s,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: GETPLUSOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETPLUSOFFSET(s,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: READPLUSOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READPLUSOFFSET(s,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: SKIPOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIPOFFSET(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: PUTOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTOFFSET(s,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: GETOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETOFFSET(s,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: GETPLUSOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETPLUSOFFSET(s,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: READPLUSOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READPLUSOFFSET(s,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: SKIPOFFSET
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIPOFFSET(p)
  - 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: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: META_CODE
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: META_CODE(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: META_DATA
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: META_DATA(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: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: META_DIFF
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: META_DIFF(x,y)
  - 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: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: SETBIT
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBIT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: IS_DIGIT
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DIGIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: UPPER_CASE
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPPER_CASE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    functionName: UPPER_CASE
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPPER_CASE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    functionName: UPPER_CASE
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPPER_CASE(c)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:930,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:932,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:936,1
    - Dst: META_CODE
      Src: /src/pcre2/src/pcre2_compile.c:940,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:943,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:947,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:951,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:955,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:956,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:963,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:964,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:972,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:986,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:994,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:996,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1003,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1005,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1012,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1014,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1017,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1018,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1019,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1020,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1021,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1022,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1023,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1024,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1025,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1026,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1027,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1028,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1029,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1030,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1032,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1033,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1034,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1035,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1036,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1037,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1038,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1039,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1041,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1042,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1043,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1044,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1045,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1047,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1048,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1050,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1051,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1053,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1054,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1055,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1056,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1057,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1058,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1060,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1063,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1064,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1065,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1069,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1070,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1071,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1075,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1076,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1077,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1081,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1090,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1091,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1092,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1097,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1098,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1099,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1103,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1104,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1105,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1109,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1110,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1111,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1116,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1117,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1118,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1122,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1123,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1124,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1128,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1129,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1130,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1134,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1135,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1136,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1142,1
    - Dst: GETOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:1143,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1144,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1148,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1152,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1156,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1160,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1164,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1170,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1171,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1173,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:1176,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 276
    argCount: 1
    argNames:
    - cb
    argTypes:
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 1179
    functionName: show_parsed
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - GETOFFSET
    - META_DATA
    - META_CODE
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_parsed(compile_block *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_code*::memctl::malloc
      Src: /src/pcre2/src/pcre2_compile.c:1198,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:1200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - code
    argTypes:
    - pcre2_code*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1213
    functionName: pcre2_code_copy
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - pcre2_code*::memctl::malloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void pcre2_code_copy(const pcre2_code *code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_code*::memctl::malloc
      Src: /src/pcre2/src/pcre2_compile.c:1233,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:1235,1
    - Dst: pcre2_code*::memctl::malloc
      Src: /src/pcre2/src/pcre2_compile.c:1238,1
    - Dst: pcre2_code*::memctl::free
      Src: /src/pcre2/src/pcre2_compile.c:1242,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:1245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - code
    argTypes:
    - pcre2_code*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1252
    functionName: pcre2_code_copy_with_tables
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - pcre2_code*::memctl::malloc
    - memcpy
    - pcre2_code*::memctl::free
    linkageType: ''
    returnType: void
    signature: void pcre2_code_copy_with_tables(const pcre2_code *code)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:1268,1
    - Dst: pcre2_code*::memctl::free
      Src: /src/pcre2/src/pcre2_compile.c:1281,1
    - Dst: pcre2_code*::memctl::free
      Src: /src/pcre2/src/pcre2_compile.c:1285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - code
    argTypes:
    - pcre2_code*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1287
    functionName: pcre2_code_free
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 10
    functionsReached:
    - PRIV
    - pcre2_code*::memctl::free
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_code_free(pcre2_code *code)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1340,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1341,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 7
    argNames:
    - ptrptr
    - ptrend
    - allow_sign
    - max_value
    - max_error
    - intptr
    - errorcodeptr
    argTypes:
    - PCRE2_SPTR*
    - PCRE2_SPTR
    - int32_t
    - uint32_t
    - uint32_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1374
    functionName: read_number
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - IS_DIGIT
    linkageType: ''
    returnType: BOOL
    signature: "BOOL read_number(PCRE2_SPTR *ptrptr, PCRE2_SPTR ptrend, int32_t allow_sign,\n
      \ uint32_t max_value, uint32_t max_error, int *intptr, int *errorcodeptr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1418,1
    - Dst: read_number
      Src: /src/pcre2/src/pcre2_compile.c:1431,1
    - Dst: read_number
      Src: /src/pcre2/src/pcre2_compile.c:1443,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 5
    argNames:
    - ptrptr
    - ptrend
    - minp
    - maxp
    - errorcodeptr
    argTypes:
    - PCRE2_SPTR*
    - PCRE2_SPTR
    - uint32_t*
    - uint32_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1464
    functionName: read_repeat_counts
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - IS_DIGIT
    - read_number
    linkageType: ''
    returnType: BOOL
    signature: "BOOL read_repeat_counts(PCRE2_SPTR *ptrptr, PCRE2_SPTR ptrend, uint32_t
      *minp,\n  uint32_t *maxp, int *errorcodeptr)"
  - BBCount: 94
    BranchProfiles: []
    Callsites:
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_compile.c:1518,1
    - Dst: read_repeat_counts
      Src: /src/pcre2/src/pcre2_compile.c:1583,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1645,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1669,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1670,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1672,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1674,1
    - Dst: read_number
      Src: /src/pcre2/src/pcre2_compile.c:1740,1
    - Dst: read_number
      Src: /src/pcre2/src/pcre2_compile.c:1758,1
    - Dst: read_number
      Src: /src/pcre2/src/pcre2_compile.c:1805,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1901,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1902,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1929,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1946,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1976,1
    - Dst: XDIGIT
      Src: /src/pcre2/src/pcre2_compile.c:1979,1
    - Dst: UPPER_CASE
      Src: /src/pcre2/src/pcre2_compile.c:2011,1
    CyclomaticComplexity: 180
    EdgeCount: 180
    ICount: 306
    argCount: 8
    argNames:
    - ptrptr
    - ptrend
    - chptr
    - errorcodeptr
    - options
    - extra_options
    - isclass
    - cb
    argTypes:
    - PCRE2_SPTR*
    - PCRE2_SPTR
    - uint32_t*
    - int*
    - uint32_t
    - uint32_t
    - BOOL
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 1499
    functionDepth: 3
    functionLinenumber: 1499
    functionLinenumberEnd: 2059
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 30
    functionsReached:
    - XDIGIT
    - GETCHARINCTEST
    - UPPER_CASE
    - read_number
    - read_repeat_counts
    linkageType: ''
    returnType: int
    signature: "int PRIV(check_escape)(PCRE2_SPTR *ptrptr, PCRE2_SPTR ptrend, uint32_t
      *chptr,\n  int *errorcodeptr, uint32_t options, uint32_t extra_options, BOOL
      isclass,\n  compile_block *cb)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_compile.c:2123,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2135,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2141,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2141,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2141,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2144,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2145,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 6
    argNames:
    - ptrptr
    - negptr
    - ptypeptr
    - pdataptr
    - errorcodeptr
    - cb
    argTypes:
    - PCRE2_SPTR*
    - BOOL*
    - uint16_t*
    - uint16_t*
    - int*
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2157
    functionName: get_ucp
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    - MAX_255
    linkageType: ''
    returnType: BOOL
    signature: "BOOL get_ucp(PCRE2_SPTR *ptrptr, BOOL *negptr, uint16_t *ptypeptr,\n
      \ uint16_t *pdataptr, int *errorcodeptr, compile_block *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - ptrend
    - endptr
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SPTR
    - PCRE2_SPTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2207
    functionDepth: 0
    functionLinenumber: 2207
    functionLinenumberEnd: 2230
    functionName: check_posix_syntax
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL check_posix_syntax(PCRE2_SPTR ptr, PCRE2_SPTR ptrend, PCRE2_SPTR
      *endptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - PCRE2_SPTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2261
    functionName: check_posix_name
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: int
    signature: int check_posix_name(PCRE2_SPTR ptr, int len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_compile.c:2319,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_compile.c:2320,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2330,1
    - Dst: FORWARDCHARTEST
      Src: /src/pcre2/src/pcre2_compile.c:2333,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_compile.c:2335,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_compile.c:2336,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:2349,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_compile.c:2355,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 9
    argNames:
    - ptrptr
    - ptrend
    - utf
    - terminator
    - offsetptr
    - nameptr
    - namelenptr
    - errorcodeptr
    - cb
    argTypes:
    - PCRE2_SPTR*
    - PCRE2_SPTR
    - BOOL
    - uint32_t
    - PCRE2_SIZE*
    - PCRE2_SPTR*
    - uint32_t*
    - int*
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2293
    functionDepth: 1
    functionLinenumber: 2293
    functionLinenumberEnd: 2394
    functionName: read_name
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - FORWARDCHARTEST
    - GETCHAR
    - MAX_255
    - IS_DIGIT
    - UCD_CHARTYPE
    - PRIV
    linkageType: ''
    returnType: BOOL
    signature: "BOOL read_name(PCRE2_SPTR *ptrptr, PCRE2_SPTR ptrend, BOOL utf, uint32_t
      terminator,\n  PCRE2_SIZE *offsetptr, PCRE2_SPTR *nameptr, uint32_t *namelenptr,\n
      \ int *errorcodeptr, compile_block *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - ptr
    - pcalloutptr
    - auto_callout
    - parsed_pattern
    - cb
    argTypes:
    - PCRE2_SPTR
    - uint32_t**
    - BOOL
    - uint32_t*
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2418
    functionDepth: 0
    functionLinenumber: 2418
    functionLinenumberEnd: 2444
    functionName: manage_callouts
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t *\nmanage_callouts(PCRE2_SPTR ptr, uint32_t **pcalloutptr,
      BOOL auto_callout,\n  uint32_t *parsed_pattern, compile_block *cb)"
  - 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: 2507
      start: 2501
    functionDepth: 0
    functionLinenumber: 2501
    functionLinenumberEnd: 2507
    functionName: PARSED_LITERAL
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSED_LITERAL(c, p)
  - 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: 2509
      start: 2508
    functionDepth: 0
    functionLinenumber: 2508
    functionLinenumberEnd: 2509
    functionName: PARSED_LITERAL
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSED_LITERAL(c, p)
  - BBCount: 330
    BranchProfiles: []
    Callsites:
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_compile.c:2575,1
    - Dst: manage_callouts
      Src: /src/pcre2/src/pcre2_compile.c:2577,1
    - Dst: PARSED_LITERAL
      Src: /src/pcre2/src/pcre2_compile.c:2579,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_compile.c:2628,1
    - Dst: manage_callouts
      Src: /src/pcre2/src/pcre2_compile.c:2658,1
    - Dst: PARSED_LITERAL
      Src: /src/pcre2/src/pcre2_compile.c:2660,1
    - Dst: SUPPORT_UNICODE
      Src: /src/pcre2/src/pcre2_compile.c:2682,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2732,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_compile.c:2795,1
    - Dst: FORWARDCHARTEST
      Src: /src/pcre2/src/pcre2_compile.c:2802,1
    - Dst: read_repeat_counts
      Src: /src/pcre2/src/pcre2_compile.c:2830,1
    - Dst: manage_callouts
      Src: /src/pcre2/src/pcre2_compile.c:2833,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_compile.c:2854,1
    - Dst: PARSED_LITERAL
      Src: /src/pcre2/src/pcre2_compile.c:2917,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:2925,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_compile.c:2935,1
    - Dst: PARSED_LITERAL
      Src: /src/pcre2/src/pcre2_compile.c:2944,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:2966,1
    - Dst: get_ucp
      Src: /src/pcre2/src/pcre2_compile.c:3071,1
    - Dst: read_number
      Src: /src/pcre2/src/pcre2_compile.c:3108,1
    - Dst: read_name
      Src: /src/pcre2/src/pcre2_compile.c:3124,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:3135,1
    - Dst: read_repeat_counts
      Src: /src/pcre2/src/pcre2_compile.c:3176,1
    - Dst: PARSED_LITERAL
      Src: /src/pcre2/src/pcre2_compile.c:3180,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:3239,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:3240,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:3256,1
    - Dst: check_posix_syntax
      Src: /src/pcre2/src/pcre2_compile.c:3276,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_compile.c:3290,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:3295,1
    - Dst: check_posix_syntax
      Src: /src/pcre2/src/pcre2_compile.c:3366,1
    - Dst: check_posix_name
      Src: /src/pcre2/src/pcre2_compile.c:3394,1
    - Dst: PARSED_LITERAL
      Src: /src/pcre2/src/pcre2_compile.c:3485,1
    - Dst: PARSED_LITERAL
      Src: /src/pcre2/src/pcre2_compile.c:3493,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:3502,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_compile.c:3512,1
    - Dst: get_ucp
      Src: /src/pcre2/src/pcre2_compile.c:3618,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_compile.c:3655,1
    - Dst: CHMAX_255
      Src: /src/pcre2/src/pcre2_compile.c:3714,1
    - Dst: read_name
      Src: /src/pcre2/src/pcre2_compile.c:3719,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:3732,1
    - Dst: read_name
      Src: /src/pcre2/src/pcre2_compile.c:3821,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:3835,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:3922,1
    - Dst: read_name
      Src: /src/pcre2/src/pcre2_compile.c:4083,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:4087,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:4108,1
    - Dst: read_number
      Src: /src/pcre2/src/pcre2_compile.c:4118,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:4119,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:4134,1
    - Dst: read_name
      Src: /src/pcre2/src/pcre2_compile.c:4143,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:4147,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:4185,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4191,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4193,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4195,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:4228,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:4239,1
    - Dst: read_number
      Src: /src/pcre2/src/pcre2_compile.c:4309,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:4319,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4327,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:4344,1
    - Dst: read_number
      Src: /src/pcre2/src/pcre2_compile.c:4347,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:4353,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:4356,1
    - Dst: read_name
      Src: /src/pcre2/src/pcre2_compile.c:4392,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4409,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:4414,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:4429,1
    - Dst: PUTOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:4495,1
    - Dst: read_name
      Src: /src/pcre2/src/pcre2_compile.c:4535,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4575,1
    - Dst: compile_block*::cx::memctl::malloc
      Src: /src/pcre2/src/pcre2_compile.c:4601,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:4609,1
    - Dst: compile_block*::cx::memctl::free
      Src: /src/pcre2/src/pcre2_compile.c:4612,1
    - Dst: manage_callouts
      Src: /src/pcre2/src/pcre2_compile.c:4690,1
    CyclomaticComplexity: 553
    EdgeCount: 553
    ICount: 1317
    argCount: 4
    argNames:
    - ptr
    - options
    - has_lookbehind
    - cb
    argTypes:
    - PCRE2_SPTR
    - uint32_t
    - BOOL*
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4739
      start: 2513
    functionDepth: 3
    functionLinenumber: 2513
    functionLinenumberEnd: 4739
    functionName: parse_regex
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - FORWARDCHARTEST
    - CHMAX_255
    - GETCHARINCTEST
    - get_ucp
    - IS_NEWLINE
    - compile_block*::cx::memctl::free
    - check_posix_name
    - check_posix_syntax
    - IS_DIGIT
    - read_number
    - PRIV
    - read_repeat_counts
    - SUPPORT_UNICODE
    - manage_callouts
    - PARSED_LITERAL
    - memcpy
    - read_name
    - MAX_255
    - compile_block*::cx::memctl::malloc
    - PUTOFFSET
    linkageType: ''
    returnType: int
    signature: "int parse_regex(PCRE2_SPTR ptr, uint32_t options, BOOL *has_lookbehind,\n
      \ compile_block *cb)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:4772,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4773,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4788,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:4792,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:4796,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:4802,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:4804,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4812,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 2
    argNames:
    - code
    - skipassert
    argTypes:
    - PCRE2_SPTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4820
      start: 4760
    functionDepth: 1
    functionLinenumber: 4760
    functionLinenumberEnd: 4820
    functionName: first_significant_code
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    - GET
    linkageType: ''
    returnType: PCRE2_UCHAR
    signature: 'PCRE2_UCHAR *

      first_significant_code(PCRE2_SPTR code, BOOL skipassert)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UCD_CASESET
      Src: /src/pcre2/src/pcre2_compile.c:4858,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_compile.c:4864,1
    - Dst: UCD_CASESET
      Src: /src/pcre2/src/pcre2_compile.c:4878,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_compile.c:4878,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - cptr
    - d
    - ocptr
    - odptr
    argTypes:
    - uint32_t*
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4885
      start: 4846
    functionDepth: 0
    functionLinenumber: 4846
    functionLinenumberEnd: 4885
    functionName: get_othercase_range
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - UCD_OTHERCASE
    - UCD_CASESET
    linkageType: ''
    returnType: int
    signature: "int get_othercase_range(uint32_t *cptr, uint32_t d, uint32_t *ocptr,\n
      \ uint32_t *odptr)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_othercase_range
      Src: /src/pcre2/src/pcre2_compile.c:4937,1
    - Dst: add_list_to_class_internal
      Src: /src/pcre2/src/pcre2_compile.c:4941,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:4942,1
    - Dst: add_to_class_internal
      Src: /src/pcre2/src/pcre2_compile.c:4958,1
    - Dst: SETBIT
      Src: /src/pcre2/src/pcre2_compile.c:4968,1
    - Dst: SETBIT
      Src: /src/pcre2/src/pcre2_compile.c:4987,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:5004,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:5005,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:5010,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 6
    argNames:
    - classbits
    - uchardptr
    - options
    - cb
    - start
    - end
    argTypes:
    - uint8_t*
    - PCRE2_UCHAR**
    - uint32_t
    - compile_block*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5041
      start: 4913
    functionDepth: 1
    functionLinenumber: 4913
    functionLinenumberEnd: 5041
    functionName: add_to_class_internal
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached:
    - get_othercase_range
    - add_list_to_class_internal
    - add_to_class_internal
    - PRIV
    - SETBIT
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int add_to_class_internal(uint8_t *classbits, PCRE2_UCHAR
      **uchardptr,\n  uint32_t options, compile_block *cb, uint32_t start, uint32_t
      end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_to_class_internal
      Src: /src/pcre2/src/pcre2_compile.c:5079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - classbits
    - uchardptr
    - options
    - cb
    - p
    - except
    argTypes:
    - uint8_t*
    - PCRE2_UCHAR**
    - uint32_t
    - compile_block*
    - uint32_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5084
      start: 5068
    functionDepth: 2
    functionLinenumber: 5068
    functionLinenumberEnd: 5084
    functionName: add_list_to_class_internal
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached:
    - add_to_class_internal
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int add_list_to_class_internal(uint8_t *classbits, PCRE2_UCHAR
      **uchardptr,\n  uint32_t options, compile_block *cb, const uint32_t *p, unsigned
      int except)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_to_class_internal
      Src: /src/pcre2/src/pcre2_compile.c:5114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - classbits
    - uchardptr
    - options
    - cb
    - start
    - end
    argTypes:
    - uint8_t*
    - PCRE2_UCHAR**
    - uint32_t
    - compile_block*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5115
      start: 5108
    functionDepth: 2
    functionLinenumber: 5108
    functionLinenumberEnd: 5115
    functionName: add_to_class
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - add_to_class_internal
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int add_to_class(uint8_t *classbits, PCRE2_UCHAR **uchardptr,
      uint32_t options,\n  compile_block *cb, uint32_t start, uint32_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_to_class_internal
      Src: /src/pcre2/src/pcre2_compile.c:5155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - classbits
    - uchardptr
    - options
    - cb
    - p
    - except
    argTypes:
    - uint8_t*
    - PCRE2_UCHAR**
    - uint32_t
    - compile_block*
    - uint32_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5160
      start: 5142
    functionDepth: 2
    functionLinenumber: 5142
    functionLinenumberEnd: 5160
    functionName: add_list_to_class
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - add_to_class_internal
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int add_list_to_class(uint8_t *classbits, PCRE2_UCHAR **uchardptr,
      uint32_t options,\n  compile_block *cb, const uint32_t *p, unsigned int except)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5189,1
    - Dst: add_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - classbits
    - uchardptr
    - options
    - cb
    - p
    argTypes:
    - uint8_t*
    - PCRE2_UCHAR**
    - uint32_t
    - compile_block*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5198
      start: 5182
    functionDepth: 3
    functionLinenumber: 5182
    functionLinenumberEnd: 5198
    functionName: add_not_list_to_class
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - add_to_class
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int add_not_list_to_class(uint8_t *classbits, PCRE2_UCHAR
      **uchardptr,\n  uint32_t options, compile_block *cb, const uint32_t *p)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:5233,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_compile.c:5257,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:5262,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 6
    argNames:
    - name
    - length
    - indexptr
    - countptr
    - errorcodeptr
    - cb
    argTypes:
    - PCRE2_SPTR
    - uint32_t
    - int*
    - int*
    - int*
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5268
      start: 5221
    functionDepth: 1
    functionLinenumber: 5221
    functionLinenumberEnd: 5268
    functionName: find_dupname_details
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    - GET2
    linkageType: ''
    returnType: BOOL
    signature: "BOOL find_dupname_details(PCRE2_SPTR name, uint32_t length, int *indexptr,\n
      \ int *countptr, int *errorcodeptr, compile_block *cb)"
  - BBCount: 311
    BranchProfiles: []
    Callsites:
    - Dst: META_CODE
      Src: /src/pcre2/src/pcre2_compile.c:5410,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:5411,1
    - Dst: UCD_CASESET
      Src: /src/pcre2/src/pcre2_compile.c:5596,1
    - Dst: PUTCHAR
      Src: /src/pcre2/src/pcre2_compile.c:5607,1
    - Dst: UCD_CASESET
      Src: /src/pcre2/src/pcre2_compile.c:5622,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_compile.c:5628,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_compile.c:5634,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_compile.c:5684,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:5762,1
    - Dst: META_CODE
      Src: /src/pcre2/src/pcre2_compile.c:5812,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:5815,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:5821,1
    - Dst: add_list_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5870,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:5871,1
    - Dst: add_not_list_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5875,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:5876,1
    - Dst: add_list_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5880,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:5881,1
    - Dst: add_not_list_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5885,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:5886,1
    - Dst: add_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5960,1
    - Dst: add_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5968,1
    - Dst: add_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5976,1
    - Dst: add_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5985,1
    - Dst: add_to_class
      Src: /src/pcre2/src/pcre2_compile.c:5993,1
    - Dst: SUPPORT_UNICODE
      Src: /src/pcre2/src/pcre2_compile.c:6056,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:6070,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:6071,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2_compile.c:6096,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:6097,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:6103,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:6110,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:6129,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:6152,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:6157,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:6205,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:6213,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:6213,1
    - Dst: GETPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:6254,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:6266,1
    - Dst: PUT2
      Src: /src/pcre2/src/pcre2_compile.c:6271,1
    - Dst: PUT2
      Src: /src/pcre2/src/pcre2_compile.c:6314,1
    - Dst: find_dupname_details
      Src: /src/pcre2/src/pcre2_compile.c:6329,1
    - Dst: PUT2
      Src: /src/pcre2/src/pcre2_compile.c:6337,1
    - Dst: PUT2
      Src: /src/pcre2/src/pcre2_compile.c:6338,1
    - Dst: GETPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:6348,1
    - Dst: GETPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:6357,1
    - Dst: PUT2
      Src: /src/pcre2/src/pcre2_compile.c:6369,1
    - Dst: compile_regex
      Src: /src/pcre2/src/pcre2_compile.c:6474,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:6521,1
    - Dst: PUTINC
      Src: /src/pcre2/src/pcre2_compile.c:6573,1
    - Dst: PUTINC
      Src: /src/pcre2/src/pcre2_compile.c:6575,1
    - Dst: GETPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:6674,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:6686,1
    - Dst: find_dupname_details
      Src: /src/pcre2/src/pcre2_compile.c:6734,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:6739,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:6740,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:6750,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:6751,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:6754,1
    - Dst: SKIPOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:6770,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:6785,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:6786,1
    - Dst: GETPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:6789,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:6794,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:6816,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_compile.c:6927,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_compile.c:6930,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:6932,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:6932,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:6979,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:6981,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:7039,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7039,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2_compile.c:7054,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7054,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:7056,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:7058,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:7097,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2_compile.c:7143,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7143,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2_compile.c:7164,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7164,1
    - Dst: PUTINC
      Src: /src/pcre2/src/pcre2_compile.c:7174,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:7220,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7220,1
    - Dst: PUTINC
      Src: /src/pcre2/src/pcre2_compile.c:7275,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:7278,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7278,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:7290,1
    - Dst: PUTINC
      Src: /src/pcre2/src/pcre2_compile.c:7293,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:7294,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:7327,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:7352,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2_compile.c:7367,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7367,1
    - Dst: PUTINC
      Src: /src/pcre2/src/pcre2_compile.c:7372,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:7373,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:7462,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:7480,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:7490,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:7501,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7501,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:7528,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:7538,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7538,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:7580,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:7595,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_compile.c:7597,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_compile.c:7598,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:7612,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2_compile.c:7640,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7640,1
    - Dst: PUTINC
      Src: /src/pcre2/src/pcre2_compile.c:7645,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:7646,1
    - Dst: GETPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:7677,1
    - Dst: PUT2INC
      Src: /src/pcre2/src/pcre2_compile.c:7695,1
    - Dst: GETPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:7717,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:7726,1
    - Dst: PUT2
      Src: /src/pcre2/src/pcre2_compile.c:7742,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:7845,1
    - Dst: UCD_CASESET
      Src: /src/pcre2/src/pcre2_compile.c:7866,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:7890,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:7900,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:7900,1
    CyclomaticComplexity: 409
    EdgeCount: 409
    ICount: 1251
    argCount: 11
    argNames:
    - optionsptr
    - codeptr
    - pptrptr
    - errorcodeptr
    - firstcuptr
    - firstcuflagsptr
    - reqcuptr
    - reqcuflagsptr
    - bcptr
    - cb
    - lengthptr
    argTypes:
    - uint32_t*
    - PCRE2_UCHAR**
    - uint32_t**
    - int*
    - uint32_t*
    - int32_t*
    - uint32_t*
    - int32_t*
    - branch_chain*
    - compile_block*
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7966
      start: 5301
    functionDepth: 4
    functionLinenumber: 5301
    functionLinenumberEnd: 7966
    functionName: compile_branch
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - PUTCHAR
    - CU2BYTES
    - TABLE_GET
    - add_to_class
    - META_DATA
    - SKIPOFFSET
    - PUT2
    - compile_regex
    - add_not_list_to_class
    - PRIV
    - UCD_OTHERCASE
    - BACKCHAR
    - memset
    - find_dupname_details
    - META_CODE
    - SUPPORT_UNICODE
    - PUT2INC
    - GET
    - PUT
    - memmove
    - memcpy
    - GET_EXTRALEN
    - add_list_to_class
    - GETPLUSOFFSET
    - HAS_EXTRALEN
    - PUTINC
    - NOT_FIRSTCU
    - fprintf
    - UCD_CASESET
    linkageType: ''
    returnType: int
    signature: "int compile_branch(uint32_t *optionsptr, PCRE2_UCHAR **codeptr, uint32_t
      **pptrptr,\n  int *errorcodeptr, uint32_t *firstcuptr, int32_t *firstcuflagsptr,\n
      \ uint32_t *reqcuptr, int32_t *reqcuflagsptr, branch_chain *bcptr,\n  compile_block
      *cb, PCRE2_SIZE *lengthptr)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: compile_block*::cx::stack_guard
      Src: /src/pcre2/src/pcre2_compile.c:8026,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:8058,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_compile.c:8070,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:8079,1
    - Dst: PUTINC
      Src: /src/pcre2/src/pcre2_compile.c:8093,1
    - Dst: compile_branch
      Src: /src/pcre2/src/pcre2_compile.c:8101,1
    - Dst: META_CODE
      Src: /src/pcre2/src/pcre2_compile.c:8180,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:8187,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:8188,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:8198,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:8242,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:8250,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 102
    argCount: 12
    argNames:
    - options
    - codeptr
    - pptrptr
    - errorcodeptr
    - skipunits
    - firstcuptr
    - firstcuflagsptr
    - reqcuptr
    - reqcuflagsptr
    - bcptr
    - cb
    - lengthptr
    argTypes:
    - uint32_t
    - PCRE2_UCHAR**
    - uint32_t**
    - int*
    - uint32_t
    - uint32_t*
    - int32_t*
    - uint32_t*
    - int32_t*
    - branch_chain*
    - compile_block*
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8254
      start: 8001
    functionDepth: 5
    functionLinenumber: 8001
    functionLinenumberEnd: 8254
    functionName: compile_regex
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached:
    - GET2
    - GET
    - META_CODE
    - PUTINC
    - META_DATA
    - compile_branch
    - compile_block*::cx::stack_guard
    - PUT
    linkageType: ''
    returnType: int
    signature: "int compile_regex(uint32_t options, PCRE2_UCHAR **codeptr, uint32_t
      **pptrptr,\n  int *errorcodeptr, uint32_t skipunits, uint32_t *firstcuptr,\n
      \ int32_t *firstcuflagsptr, uint32_t *reqcuptr,int32_t *reqcuflagsptr,\n  branch_chain
      *bcptr, compile_block *cb, PCRE2_SIZE *lengthptr)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: first_significant_code
      Src: /src/pcre2/src/pcre2_compile.c:8305,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:8306,1
    - Dst: is_anchored
      Src: /src/pcre2/src/pcre2_compile.c:8314,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_compile.c:8323,1
    - Dst: is_anchored
      Src: /src/pcre2/src/pcre2_compile.c:8325,1
    - Dst: is_anchored
      Src: /src/pcre2/src/pcre2_compile.c:8332,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:8339,1
    - Dst: is_anchored
      Src: /src/pcre2/src/pcre2_compile.c:8340,1
    - Dst: is_anchored
      Src: /src/pcre2/src/pcre2_compile.c:8348,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:8372,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 33
    argCount: 5
    argNames:
    - code
    - bracket_map
    - cb
    - atomcount
    - inassert
    argTypes:
    - PCRE2_SPTR
    - unsigned int
    - compile_block*
    - int
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8376
      start: 8300
    functionDepth: 2
    functionLinenumber: 8300
    functionLinenumberEnd: 8376
    functionName: is_anchored
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached:
    - is_anchored
    - first_significant_code
    - GET
    - PRIV
    - GET2
    linkageType: ''
    returnType: BOOL
    signature: "BOOL is_anchored(PCRE2_SPTR code, unsigned int bracket_map, compile_block
      *cb,\n  int atomcount, BOOL inassert)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: first_significant_code
      Src: /src/pcre2/src/pcre2_compile.c:8410,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:8411,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:8423,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:8424,1
    - Dst: is_startline
      Src: /src/pcre2/src/pcre2_compile.c:8438,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:8439,1
    - Dst: first_significant_code
      Src: /src/pcre2/src/pcre2_compile.c:8443,1
    - Dst: is_startline
      Src: /src/pcre2/src/pcre2_compile.c:8452,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_compile.c:8461,1
    - Dst: is_startline
      Src: /src/pcre2/src/pcre2_compile.c:8463,1
    - Dst: is_startline
      Src: /src/pcre2/src/pcre2_compile.c:8470,1
    - Dst: is_startline
      Src: /src/pcre2/src/pcre2_compile.c:8478,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:8505,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 53
    argCount: 5
    argNames:
    - code
    - bracket_map
    - cb
    - atomcount
    - inassert
    argTypes:
    - PCRE2_SPTR
    - unsigned int
    - compile_block*
    - int
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8509
      start: 8405
    functionDepth: 2
    functionLinenumber: 8405
    functionLinenumberEnd: 8509
    functionName: is_startline
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached:
    - is_startline
    - first_significant_code
    - GET
    - PRIV
    - GET2
    linkageType: ''
    returnType: BOOL
    signature: "BOOL is_startline(PCRE2_SPTR code, unsigned int bracket_map, compile_block
      *cb,\n  int atomcount, BOOL inassert)"
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:8541,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:8542,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:8584,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_compile.c:8649,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_compile.c:8649,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 104
    argCount: 2
    argNames:
    - code
    - utf
    argTypes:
    - PCRE2_SPTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8657
      start: 8527
    functionDepth: 1
    functionLinenumber: 8527
    functionLinenumberEnd: 8657
    functionName: find_recurse
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - GET_EXTRALEN
    - PRIV
    - GET
    - HAS_EXTRALEN
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR find_recurse(PCRE2_SPTR code, BOOL utf)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: first_significant_code
      Src: /src/pcre2/src/pcre2_compile.c:8695,1
    - Dst: find_firstassertedcu
      Src: /src/pcre2/src/pcre2_compile.c:8713,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:8761,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 3
    argNames:
    - code
    - flags
    - inassert
    argTypes:
    - PCRE2_SPTR
    - int32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8767
      start: 8683
    functionDepth: 2
    functionLinenumber: 8683
    functionLinenumberEnd: 8767
    functionName: find_firstassertedcu
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached:
    - GET
    - first_significant_code
    - find_firstassertedcu
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t find_firstassertedcu(PCRE2_SPTR code, int32_t *flags, uint32_t
      inassert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_compile.c:8798,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:8798,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2_compile.c:8809,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:8810,1
    - Dst: PUT2
      Src: /src/pcre2/src/pcre2_compile.c:8819,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_compile.c:8820,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:8820,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_compile.c:8826,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:8827,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - cb
    - name
    - length
    - groupno
    - tablecount
    argTypes:
    - compile_block*
    - PCRE2_SPTR
    - int
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8828
      start: 8789
    functionDepth: 1
    functionLinenumber: 8789
    functionLinenumberEnd: 8828
    functionName: add_name_to_table
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - memmove
    - memcpy
    - CU2BYTES
    - PUT2
    - memcmp
    - memset
    linkageType: ''
    returnType: void
    signature: "void add_name_to_table(compile_block *cb, PCRE2_SPTR name, int length,\n
      \ unsigned int groupno, uint32_t tablecount)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: META_CODE
      Src: /src/pcre2/src/pcre2_compile.c:8865,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:8881,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:8885,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 2
    argNames:
    - pptr
    - skiptype
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8951
      start: 8858
    functionDepth: 1
    functionLinenumber: 8858
    functionLinenumberEnd: 8951
    functionName: parsed_skip
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - META_DATA
    - META_CODE
    linkageType: ''
    returnType: uint32_t
    signature: 'uint32_t *

      parsed_skip(uint32_t *pptr, uint32_t skiptype)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: parsed_skip
      Src: /src/pcre2/src/pcre2_compile.c:8995,1
    - Dst: get_branchlength
      Src: /src/pcre2/src/pcre2_compile.c:9004,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 7
    argNames:
    - pptrptr
    - isinline
    - errcodeptr
    - lcptr
    - group
    - recurses
    - cb
    argTypes:
    - uint32_t**
    - BOOL
    - int*
    - int*
    - int
    - parsed_recurse_check*
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9019
      start: 8977
    functionDepth: 2
    functionLinenumber: 8977
    functionLinenumberEnd: 9019
    functionName: get_grouplength
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 0
    functionsReached:
    - get_branchlength
    - parsed_skip
    linkageType: ''
    returnType: int
    signature: "int get_grouplength(uint32_t **pptrptr, BOOL isinline, int *errcodeptr,
      int *lcptr,\n   int group, parsed_recurse_check *recurses, compile_block *cb)"
  - BBCount: 96
    BranchProfiles: []
    Callsites:
    - Dst: META_CODE
      Src: /src/pcre2/src/pcre2_compile.c:9077,1
    - Dst: parsed_skip
      Src: /src/pcre2/src/pcre2_compile.c:9088,1
    - Dst: parsed_skip
      Src: /src/pcre2/src/pcre2_compile.c:9120,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:9142,1
    - Dst: check_lookbehinds
      Src: /src/pcre2/src/pcre2_compile.c:9164,1
    - Dst: set_lookbehind_lengths
      Src: /src/pcre2/src/pcre2_compile.c:9200,1
    - Dst: META_CODE
      Src: /src/pcre2/src/pcre2_compile.c:9221,1
    - Dst: GETPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:9224,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:9228,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:9261,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:9275,1
    - Dst: GETPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:9276,1
    - Dst: META_CODE
      Src: /src/pcre2/src/pcre2_compile.c:9288,1
    - Dst: parsed_skip
      Src: /src/pcre2/src/pcre2_compile.c:9295,1
    - Dst: get_grouplength
      Src: /src/pcre2/src/pcre2_compile.c:9309,1
    - Dst: parsed_skip
      Src: /src/pcre2/src/pcre2_compile.c:9324,1
    - Dst: META_DATA
      Src: /src/pcre2/src/pcre2_compile.c:9346,1
    - Dst: get_grouplength
      Src: /src/pcre2/src/pcre2_compile.c:9354,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 260
    argCount: 5
    argNames:
    - pptrptr
    - errcodeptr
    - lcptr
    - recurses
    - cb
    argTypes:
    - uint32_t**
    - int*
    - int*
    - parsed_recurse_check*
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9423
      start: 9041
    functionDepth: 3
    functionLinenumber: 9041
    functionLinenumberEnd: 9423
    functionName: get_branchlength
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached:
    - GETPLUSOFFSET
    - set_lookbehind_lengths
    - META_CODE
    - parsed_skip
    - check_lookbehinds
    - PRIV
    - META_DATA
    - get_grouplength
    linkageType: ''
    returnType: int
    signature: "int get_branchlength(uint32_t **pptrptr, int *errcodeptr, int *lcptr,\n
      \ parsed_recurse_check *recurses, compile_block *cb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: READPLUSOFFSET
      Src: /src/pcre2/src/pcre2_compile.c:9460,1
    - Dst: get_branchlength
      Src: /src/pcre2/src/pcre2_compile.c:9466,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - pptrptr
    - errcodeptr
    - lcptr
    - recurses
    - cb
    argTypes:
    - uint32_t**
    - int*
    - int*
    - parsed_recurse_check*
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9481
      start: 9452
    functionDepth: 4
    functionLinenumber: 9452
    functionLinenumberEnd: 9481
    functionName: set_lookbehind_lengths
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached:
    - get_branchlength
    - READPLUSOFFSET
    linkageType: ''
    returnType: BOOL
    signature: "BOOL set_lookbehind_lengths(uint32_t **pptrptr, int *errcodeptr, int
      *lcptr,\n  parsed_recurse_check *recurses, compile_block *cb)"
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: META_CODE
      Src: /src/pcre2/src/pcre2_compile.c:9522,1
    - Dst: set_lookbehind_lengths
      Src: /src/pcre2/src/pcre2_compile.c:9639,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 112
    argCount: 5
    argNames:
    - pptr
    - retptr
    - recurses
    - cb
    - lcptr
    argTypes:
    - uint32_t*
    - uint32_t**
    - parsed_recurse_check*
    - compile_block*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9646
      start: 9509
    functionDepth: 5
    functionLinenumber: 9509
    functionLinenumberEnd: 9646
    functionName: check_lookbehinds
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 1
    functionsReached:
    - set_lookbehind_lengths
    - META_CODE
    linkageType: ''
    returnType: int
    signature: "int check_lookbehinds(uint32_t *pptr, uint32_t **retptr,\n  parsed_recurse_check
      *recurses, compile_block *cb, int *lcptr)"
  - BBCount: 91
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:9740,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:9767,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:9781,1
    - Dst: VALGRIND_MAKE_MEM_NOACCESS
      Src: /src/pcre2/src/pcre2_compile.c:9843,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:9843,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:9861,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:9890,1
    - Dst: IS_DIGIT
      Src: /src/pcre2/src/pcre2_compile.c:9896,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:9948,1
    - Dst: pcre2_compile_context*::memctl::malloc
      Src: /src/pcre2/src/pcre2_compile.c:10051,1
    - Dst: parse_regex
      Src: /src/pcre2/src/pcre2_compile.c:10064,1
    - Dst: pcre2_compile_context*::memctl::malloc
      Src: /src/pcre2/src/pcre2_compile.c:10078,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_compile.c:10087,1
    - Dst: check_lookbehinds
      Src: /src/pcre2/src/pcre2_compile.c:10095,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:10102,1
    - Dst: show_parsed
      Src: /src/pcre2/src/pcre2_compile.c:10103,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:10111,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:10114,1
    - Dst: compile_regex
      Src: /src/pcre2/src/pcre2_compile.c:10136,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:10155,1
    - Dst: pcre2_compile_context*::memctl::malloc
      Src: /src/pcre2/src/pcre2_compile.c:10158,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_compile.c:10171,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_compile.c:10175,1
    - Dst: add_name_to_table
      Src: /src/pcre2/src/pcre2_compile.c:10224,1
    - Dst: compile_regex
      Src: /src/pcre2/src/pcre2_compile.c:10234,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:10257,1
    - Dst: VALGRIND_MAKE_MEM_NOACCESS
      Src: /src/pcre2/src/pcre2_compile.c:10259,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:10259,1
    - Dst: find_recurse
      Src: /src/pcre2/src/pcre2_compile.c:10277,1
    - Dst: find_recurse
      Src: /src/pcre2/src/pcre2_compile.c:10279,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_compile.c:10283,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:10305,1
    - Dst: PUT
      Src: /src/pcre2/src/pcre2_compile.c:10318,1
    - Dst: pcre2_printint
      Src: /src/pcre2/src/pcre2_compile.c:10326,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_compile.c:10327,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:10340,1
    - Dst: is_anchored
      Src: /src/pcre2/src/pcre2_compile.c:10354,1
    - Dst: find_firstassertedcu
      Src: /src/pcre2/src/pcre2_compile.c:10373,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_compile.c:10399,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_compile.c:10403,1
    - Dst: is_startline
      Src: /src/pcre2/src/pcre2_compile.c:10417,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_compile.c:10461,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_compile.c:10465,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_compile.c:10476,1
    - Dst: VALGRIND_MAKE_MEM_DEFINED
      Src: /src/pcre2/src/pcre2_compile.c:10502,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_compile.c:10502,1
    - Dst: pcre2_compile_context*::memctl::free
      Src: /src/pcre2/src/pcre2_compile.c:10505,1
    - Dst: pcre2_compile_context*::memctl::free
      Src: /src/pcre2/src/pcre2_compile.c:10507,1
    - Dst: pcre2_compile_context*::memctl::free
      Src: /src/pcre2/src/pcre2_compile.c:10509,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2_compile.c:10526,1
    CyclomaticComplexity: 158
    EdgeCount: 158
    ICount: 423
    argCount: 6
    argNames:
    - pattern
    - patlen
    - options
    - errorptr
    - erroroffset
    - ccontext
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SIZE
    - uint32_t
    - int*
    - PCRE2_SIZE*
    - pcre2_compile_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10529
      start: 9670
    functionDepth: 6
    functionLinenumber: 9670
    functionLinenumberEnd: 10529
    functionName: pcre2_compile
    functionSourceFile: /src/pcre2/src/pcre2_compile.c
    functionUses: 10
    functionsReached:
    - CU2BYTES
    - show_parsed
    - is_anchored
    - find_recurse
    - pcre2_compile_context*::memctl::malloc
    - VALGRIND_MAKE_MEM_DEFINED
    - parse_regex
    - IS_DIGIT
    - compile_regex
    - check_lookbehinds
    - UCD_OTHERCASE
    - PRIV
    - find_firstassertedcu
    - memset
    - is_startline
    - pcre2_printint
    - PUT
    - pcre2_compile_context*::memctl::free
    - add_name_to_table
    - VALGRIND_MAKE_MEM_NOACCESS
    - fprintf
    - GET
    - pcre2_code_free
    linkageType: ''
    returnType: void
    signature: "void pcre2_compile(PCRE2_SPTR pattern, PCRE2_SIZE patlen, uint32_t
      options,\n   int *errorptr, PCRE2_SIZE *erroroffset, pcre2_compile_context *ccontext)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:91,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:92,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:98,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:102,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:104,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:108,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:110,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:117,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:122,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:123,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:124,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:125,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:131,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:132,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:137,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:140,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:141,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:146,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:147,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:153,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:154,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:159,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:162,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:163,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:168,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:169,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:174,1
    - Dst: VDUPQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:178,1
    - Dst: VLD1Q
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:190,1
    - Dst: VANDQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:192,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:196,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:199,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:200,1
    - Dst: VORRQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:201,1
    - Dst: VORRQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:204,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:205,1
    - Dst: VLD1Q
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:215,1
    - Dst: VANDQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:217,1
    - Dst: shift_left_n_lanes
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:221,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:224,1
    - Dst: fast_forward_char_pair_compare
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:226,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:229,1
    - Dst: fast_forward_char_pair_compare
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:231,1
    - Dst: VANDQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:233,1
    - Dst: VST1Q
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:236,1
    - Dst: __builtin_ctzll
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:243,1
    - Dst: __builtin_ctzll
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:248,1
    - Dst: __builtin_ctzll
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:257,1
    - Dst: VLD1Q
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:265,1
    - Dst: VANDQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:267,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:272,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:275,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:276,1
    - Dst: VORRQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:277,1
    - Dst: VORRQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:280,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:281,1
    - Dst: VEXTQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:286,1
    - Dst: VLD1Q
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:288,1
    - Dst: VANDQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:290,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:295,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:296,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:299,1
    - Dst: fast_forward_char_pair_compare
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:301,1
    - Dst: VCEQQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:303,1
    - Dst: fast_forward_char_pair_compare
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:305,1
    - Dst: VANDQ
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:308,1
    - Dst: VST1Q
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:311,1
    - Dst: __builtin_ctzll
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:313,1
    - Dst: __builtin_ctzll
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:315,1
    - Dst: utf_continue
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:330,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:330,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:333,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_neon_inc.h:340,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 120
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 347
    functionName: FF_FUN
    functionSourceFile: /src/pcre2/src/pcre2_jit_neon_inc.h
    functionUses: 0
    functionsReached:
    - is_powerof2
    - fast_forward_char_pair_compare
    - VCEQQ
    - IN_UCHARS
    - VLD1Q
    - VST1Q
    - shift_left_n_lanes
    - VORRQ
    - VANDQ
    - SLJIT_UNUSED_ARG
    - VDUPQ
    - VEXTQ
    - utf_continue
    - __builtin_ctzll
    linkageType: ''
    returnType: sljit_u8
    signature: 'sljit_u8 * SLJIT_FUNC FF_FUN(sljit_u8 *str_end, sljit_u8 *str_ptr,
      sljit_uw offs1, sljit_uw offs2, sljit_uw chars)

      #undef FF_FUN'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: usage
    functionSourceFile: /src/pcre2/src/pcre2_dftables.c
    functionUses: 21
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2_dftables.c:111,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2_dftables.c:111,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2_dftables.c:113,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2_dftables.c:117,1
    - Dst: setlocale
      Src: /src/pcre2/src/pcre2_dftables.c:119,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:121,1
    - Dst: getenv
      Src: /src/pcre2/src/pcre2_dftables.c:124,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2_dftables.c:127,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:132,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:139,1
    - Dst: maketables
      Src: /src/pcre2/src/pcre2_dftables.c:145,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2_dftables.c:148,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:151,1
    - Dst: fwrite
      Src: /src/pcre2/src/pcre2_dftables.c:160,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:163,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2_dftables.c:167,1
    - Dst: free
      Src: /src/pcre2/src/pcre2_dftables.c:168,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:176,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:185,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:188,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:201,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:208,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:216,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:222,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:226,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:229,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:230,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:231,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:233,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:235,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:237,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:240,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:241,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:242,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:244,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:246,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:252,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:257,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:258,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:259,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:261,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:262,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:264,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:266,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:275,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:280,1
    - Dst: isprint
      Src: /src/pcre2/src/pcre2_dftables.c:281,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:281,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:282,1
    - Dst: isprint
      Src: /src/pcre2/src/pcre2_dftables.c:283,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:283,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:284,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:285,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:287,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:288,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:291,1
    - Dst: isprint
      Src: /src/pcre2/src/pcre2_dftables.c:292,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:292,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:293,1
    - Dst: isprint
      Src: /src/pcre2/src/pcre2_dftables.c:294,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:294,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:295,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_dftables.c:296,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2_dftables.c:298,1
    - Dst: free
      Src: /src/pcre2/src/pcre2_dftables.c:299,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 110
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 301
    functionName: main
    functionSourceFile: /src/pcre2/src/pcre2_dftables.c
    functionUses: 3
    functionsReached:
    - fopen
    - getenv
    - maketables
    - setlocale
    - fwrite
    - strcmp
    - fclose
    - fprintf
    - usage
    - free
    - isprint
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: GF_IDMASK
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GF_IDMASK(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: GF_DATAMASK
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GF_DATAMASK(a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/pcre2/src/pcre2_match.c:218,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:220,1
    - Dst: vfprintf
      Src: /src/pcre2/src/pcre2_match.c:221,1
    - Dst: va_end
      Src: /src/pcre2/src/pcre2_match.c:222,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:224,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:226,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:232,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:237,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - f
    - F
    - P
    - frame_size
    - mb
    - s
    argTypes:
    - FILE*
    - heapframe*
    - heapframe*
    - PCRE2_SIZE
    - match_block*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 241
    functionName: display_frames
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 0
    functionsReached:
    - va_end
    - fprintf
    - vfprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: "void display_frames(FILE *f, heapframe *F, heapframe *P, PCRE2_SIZE
      frame_size,\n  match_block *mb, const char *s, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:274,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:274,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:300,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:301,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:313,1
    - Dst: match_block*::callout
      Src: /src/pcre2/src/pcre2_match.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 3
    argNames:
    - F
    - mb
    - lengthptr
    argTypes:
    - heapframe*
    - match_block*
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 327
    functionName: do_callout
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 0
    functionsReached:
    - PRIV
    - GET
    - match_block*::callout
    linkageType: ''
    returnType: int
    signature: int do_callout(heapframe *F, match_block *mb, PCRE2_SIZE *lengthptr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:407,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:408,1
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_match.c:416,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:419,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:437,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:438,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:439,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:439,1
    - Dst: UCHAR21INCTEST
      Src: /src/pcre2/src/pcre2_match.c:458,1
    - Dst: UCHAR21INCTEST
      Src: /src/pcre2/src/pcre2_match.c:458,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_match.c:467,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_match.c:467,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 5
    argNames:
    - offset
    - caseless
    - F
    - mb
    - lengthptr
    argTypes:
    - PCRE2_SIZE
    - BOOL
    - heapframe*
    - match_block*
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 474
    functionName: match_ref
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 0
    functionsReached:
    - UCHAR21TEST
    - CU2BYTES
    - TABLE_GET
    - GETCHARINC
    - memcmp
    - PRIV
    - GET_UCD
    - UCHAR21INCTEST
    linkageType: ''
    returnType: int
    signature: "int match_ref(PCRE2_SIZE offset, BOOL caseless, heapframe *F, match_block
      *mb,\n  PCRE2_SIZE *lengthptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 523
    functionName: CHECK_PARTIAL
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PARTIAL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 531
    functionName: SCHECK_PARTIAL
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHECK_PARTIAL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ra
    - ','
    - rb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 544
    functionName: RMATCH
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RMATCH(ra,rb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ra
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: RRETURN
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RRETURN(ra)
  - BBCount: 1068
    BranchProfiles: []
    Callsites:
    - Dst: mb::mb
      Src: /src/pcre2/src/pcre2_match.c:664,1
    - Dst: memctl::malloc
      Src: /src/pcre2/src/pcre2_match.c:664,1
    - Dst: match_block*::memctl::free
      Src: /src/pcre2/src/pcre2_match.c:672,1
    - Dst: mb::mb
      Src: /src/pcre2/src/pcre2_match.c:673,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:679,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:682,1
    - Dst: GF_IDMASK
      Src: /src/pcre2/src/pcre2_match.c:683,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:686,1
    - Dst: GF_DATAMASK
      Src: /src/pcre2/src/pcre2_match.c:686,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:690,1
    - Dst: GF_DATAMASK
      Src: /src/pcre2/src/pcre2_match.c:690,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:694,1
    - Dst: GF_DATAMASK
      Src: /src/pcre2/src/pcre2_match.c:694,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:698,1
    - Dst: GF_DATAMASK
      Src: /src/pcre2/src/pcre2_match.c:698,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:702,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:706,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_match.c:713,1
    - Dst: GF_IDMASK
      Src: /src/pcre2/src/pcre2_match.c:734,1
    - Dst: GF_DATAMASK
      Src: /src/pcre2/src/pcre2_match.c:735,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:752,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:770,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:786,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:798,1
    - Dst: GF_IDMASK
      Src: /src/pcre2/src/pcre2_match.c:815,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:841,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:850,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_match.c:872,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:882,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:882,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:887,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:899,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:900,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:904,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:918,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:919,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:935,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:938,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:939,1
    - Dst: UCHAR21INC
      Src: /src/pcre2/src/pcre2_match.c:943,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:943,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:953,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:954,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:956,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:971,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:972,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:980,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:989,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:990,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:990,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:1003,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:1005,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1005,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:1014,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:1018,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1018,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:1022,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1022,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:1033,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:1034,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1034,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1048,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1049,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:1057,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:1058,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1061,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:1066,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1069,1
    - Dst: UCHAR21INC
      Src: /src/pcre2/src/pcre2_match.c:1078,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1084,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:1089,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1092,1
    - Dst: UCHAR21INC
      Src: /src/pcre2/src/pcre2_match.c:1103,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:1104,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1105,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1124,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1132,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1140,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1148,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:1216,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:1226,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:1227,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_match.c:1233,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_match.c:1233,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_match.c:1236,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_match.c:1236,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1240,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1241,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1251,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1252,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1253,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_match.c:1255,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_match.c:1255,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_match.c:1258,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_match.c:1258,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1262,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1263,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_match.c:1275,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_match.c:1275,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_match.c:1279,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_match.c:1279,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1283,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1295,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1296,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:1298,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:1323,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:1330,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:1333,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1341,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1342,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:1344,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1345,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1355,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1356,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1357,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1360,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1361,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:1363,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1364,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1378,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:1381,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1388,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1390,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1403,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1404,1
    - Dst: UCHAR21INCTEST
      Src: /src/pcre2/src/pcre2_match.c:1406,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1406,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1415,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1416,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1417,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1420,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1421,1
    - Dst: UCHAR21INCTEST
      Src: /src/pcre2/src/pcre2_match.c:1423,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1423,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1434,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:1438,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1445,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1447,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1478,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1485,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1493,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1526,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:1550,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:1564,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:1568,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1578,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1579,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:1581,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1582,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1594,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1595,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1597,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1612,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1613,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1614,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1617,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1618,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:1620,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1621,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1631,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1632,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1633,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1636,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1637,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1639,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1661,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:1664,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1676,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1677,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:1679,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1691,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1700,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1701,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1720,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1721,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:1723,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1724,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1735,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1736,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1738,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1752,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1753,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1754,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1757,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1758,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:1760,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1761,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1770,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1771,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1772,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1775,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1776,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1778,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1799,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:1802,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1814,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1815,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:1817,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1828,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1837,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1838,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1896,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:1897,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1917,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1918,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:1920,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1923,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1926,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1937,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1938,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1944,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1948,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1966,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1967,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1968,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1971,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1972,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:1974,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1977,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1980,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:1989,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1990,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1991,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:1994,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:1995,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2001,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2005,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2025,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:2028,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:2046,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2047,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:2049,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2060,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:2079,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2080,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2085,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:2112,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:2134,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:2135,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2152,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2153,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2155,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2156,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2156,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:2170,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2171,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2172,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2175,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2176,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2178,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2179,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2179,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2194,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:2198,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2202,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:2214,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2215,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:2218,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2221,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2242,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2243,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2245,1
    - Dst: CHMAX_255
      Src: /src/pcre2/src/pcre2_match.c:2246,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2247,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2254,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2255,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2257,1
    - Dst: CHMAX_255
      Src: /src/pcre2/src/pcre2_match.c:2258,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2259,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2266,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2267,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2269,1
    - Dst: CHMAX_255
      Src: /src/pcre2/src/pcre2_match.c:2270,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2271,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2278,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2279,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2281,1
    - Dst: CHMAX_255
      Src: /src/pcre2/src/pcre2_match.c:2282,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2283,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2290,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2291,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2293,1
    - Dst: CHMAX_255
      Src: /src/pcre2/src/pcre2_match.c:2294,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2295,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2302,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2303,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2305,1
    - Dst: CHMAX_255
      Src: /src/pcre2/src/pcre2_match.c:2306,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2307,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2314,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2315,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2317,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2320,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2325,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:2327,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2340,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2349,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2350,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2352,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2355,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2364,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2365,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2367,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2371,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2379,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2380,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2382,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2385,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2394,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2395,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2397,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2401,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2417,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2418,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2420,1
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_match.c:2423,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2428,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2435,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2439,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2440,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2445,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2450,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2456,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2457,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2458,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2471,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2475,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2476,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2482,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2483,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2485,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2489,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2493,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2495,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2503,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2524,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2525,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2529,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2530,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2533,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:2552,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:2559,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:2588,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2630,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2635,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2636,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2638,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2648,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2649,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2651,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_match.c:2652,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2656,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2665,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2666,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2668,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:2669,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2670,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2679,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2680,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2682,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_match.c:2683,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2684,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2693,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2694,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2696,1
    - Dst: UCD_SCRIPT
      Src: /src/pcre2/src/pcre2_match.c:2697,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2698,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2708,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2709,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2711,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:2712,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2714,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2728,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2729,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2731,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2736,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:2740,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2741,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2753,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2754,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2756,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:2757,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2760,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2770,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2771,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2773,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2774,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2780,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2784,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2796,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2797,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2799,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2803,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2823,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2824,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:2828,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:2829,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2832,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2848,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2849,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:2851,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2851,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:2856,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:2862,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2871,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2872,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:2875,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2880,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2889,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2890,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:2892,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2895,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:2898,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2911,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2922,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2923,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:2925,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2928,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2939,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2940,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:2942,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2946,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2956,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2957,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:2959,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2962,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2973,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2974,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:2976,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2980,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:2990,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2991,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:2993,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:2995,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3005,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3006,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:3008,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3010,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3022,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3023,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:3025,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3027,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:3029,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3039,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3040,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:3042,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3044,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3056,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3057,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:3059,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3061,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:3063,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3073,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3074,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:3076,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3078,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3101,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3102,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:3104,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3104,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3121,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3122,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3145,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3146,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3150,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3166,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3177,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3178,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3187,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3197,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3198,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3202,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3217,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3218,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3226,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3237,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3238,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3242,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3257,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3258,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3260,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3261,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3271,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3272,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3274,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3275,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3285,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3286,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3288,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3289,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3299,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3300,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3302,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3303,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3313,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3314,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3316,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3317,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3327,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3328,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3330,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3331,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3358,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3359,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3360,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3363,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3364,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3366,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3367,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3375,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3376,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3377,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3380,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3381,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3383,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_match.c:3384,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3388,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3395,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3396,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3397,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3400,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3401,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3403,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:3404,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3405,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3412,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3413,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3414,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3417,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3418,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3420,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_match.c:3421,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3422,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3429,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3430,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3431,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3434,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3435,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3437,1
    - Dst: UCD_SCRIPT
      Src: /src/pcre2/src/pcre2_match.c:3438,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3439,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3447,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3448,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3449,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3452,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3453,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3455,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:3456,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3459,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3471,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3472,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3473,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3476,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3477,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3479,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3484,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:3488,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3489,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3499,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3500,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3501,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3504,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3505,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3507,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:3508,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3512,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3520,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3521,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3522,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3525,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3526,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3528,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:3529,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3535,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3539,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3549,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3550,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3551,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3554,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3555,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3557,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3561,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3578,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3579,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3580,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3583,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3584,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:3588,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:3589,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3592,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3605,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3606,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3607,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3610,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3611,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:3613,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3613,1
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_match.c:3614,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3636,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:3639,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3653,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3661,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3670,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3677,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3686,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3692,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3697,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3702,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3707,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3712,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3717,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:3732,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3733,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3734,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3737,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3738,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:3740,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3741,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3764,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3781,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3794,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3801,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3818,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3825,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3835,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3836,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3840,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3841,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3845,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3846,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3850,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3851,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3855,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3856,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:3860,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:3861,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3890,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:3893,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3906,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:3909,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_match.c:3910,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3925,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:3928,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:3929,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3941,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:3944,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/src/pcre2_match.c:3945,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3957,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:3960,1
    - Dst: UCD_SCRIPT
      Src: /src/pcre2/src/pcre2_match.c:3961,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3974,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:3977,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:3978,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:3997,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:4000,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:4009,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4025,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:4028,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:4029,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4044,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:4047,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:4048,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4067,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_match.c:4070,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4094,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4095,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:4097,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4110,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_match.c:4115,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:4116,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4119,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4137,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4138,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:4147,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_match.c:4148,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_match.c:4150,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:4158,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_match.c:4159,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_match.c:4161,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:4162,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4182,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:4185,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:4190,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:4196,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4207,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:4211,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4217,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4228,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4239,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:4242,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:4246,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4271,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:4274,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4293,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:4296,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4313,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:4316,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4328,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:4331,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4343,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:4346,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4358,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:4361,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4373,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:4376,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4388,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_match.c:4391,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4410,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4411,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:4413,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:4415,1
    - Dst: UCHAR21
      Src: /src/pcre2/src/pcre2_match.c:4415,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4431,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:4434,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4454,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4464,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4491,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4512,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4533,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4554,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4575,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:4578,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4589,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:4592,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4603,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:4606,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4617,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:4620,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4631,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:4634,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4645,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_match.c:4648,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4663,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4664,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:4698,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:4699,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:4704,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:4714,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:4738,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:4739,1
    - Dst: match_ref
      Src: /src/pcre2/src/pcre2_match.c:4747,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4751,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4752,1
    - Dst: match_ref
      Src: /src/pcre2/src/pcre2_match.c:4781,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4785,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4786,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4802,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4803,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4804,1
    - Dst: match_ref
      Src: /src/pcre2/src/pcre2_match.c:4805,1
    - Dst: CHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:4809,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4810,1
    - Dst: match_ref
      Src: /src/pcre2/src/pcre2_match.c:4829,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4858,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4859,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4872,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4873,1
    - Dst: match_ref
      Src: /src/pcre2/src/pcre2_match.c:4880,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4886,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4926,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4927,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:4928,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:4934,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4935,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:4936,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:4944,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:4980,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:4991,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:4991,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:4997,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5009,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5015,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5016,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5028,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5058,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5064,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5064,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5065,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5071,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5083,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5100,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5100,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5103,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5108,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5109,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5110,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5126,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5127,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5159,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5159,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5160,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5178,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5184,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5186,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5210,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5210,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_match.c:5213,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5220,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5221,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5222,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5225,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5245,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5245,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5250,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5254,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5261,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5265,1
    - Dst: do_callout
      Src: /src/pcre2/src/pcre2_match.c:5287,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5288,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5289,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5310,1
    - Dst: do_callout
      Src: /src/pcre2/src/pcre2_match.c:5320,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5321,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5322,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5339,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5347,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5348,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5351,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5360,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5366,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5367,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5370,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5399,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5399,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_match.c:5404,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5422,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5436,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5446,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5456,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5466,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5467,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5485,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5491,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:5493,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5502,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5518,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5532,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:5544,1
    - Dst: GF_IDMASK
      Src: /src/pcre2/src/pcre2_match.c:5555,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_match.c:5557,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5562,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5605,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5616,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5623,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5623,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_match.c:5634,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_match.c:5642,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_match.c:5668,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5671,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5685,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5686,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_match.c:5687,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5693,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5694,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5709,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5714,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5722,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5729,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:5743,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:5749,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5754,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5776,1
    - Dst: WAS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:5780,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5781,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:5791,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:5797,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5802,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5807,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:5808,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5818,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_match.c:5847,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_match.c:5848,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:5859,1
    - Dst: CHMAX_255
      Src: /src/pcre2/src/pcre2_match.c:5865,1
    - Dst: SCHECK_PARTIAL
      Src: /src/pcre2/src/pcre2_match.c:5872,1
    - Dst: FORWARDCHARTEST
      Src: /src/pcre2/src/pcre2_match.c:5881,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_match.c:5882,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_match.c:5893,1
    - Dst: CHMAX_255
      Src: /src/pcre2/src/pcre2_match.c:5899,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5906,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5916,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5916,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5926,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5929,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5931,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5934,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5941,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5941,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5942,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5944,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5948,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5948,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5949,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5951,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5954,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5954,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5955,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5957,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5961,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5961,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5962,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5964,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5967,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5967,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5968,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5971,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5985,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:5988,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:5988,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5989,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:5998,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:6004,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:6004,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:6005,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:6008,1
    - Dst: RMATCH
      Src: /src/pcre2/src/pcre2_match.c:6012,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:6012,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:6013,1
    - Dst: RRETURN
      Src: /src/pcre2/src/pcre2_match.c:6016,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2_match.c:6050,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6055,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6055,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6055,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6055,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6055,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6055,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6055,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6055,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6056,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6056,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6056,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6056,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6056,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6056,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6056,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6056,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6057,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6057,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6057,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6057,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6057,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6057,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6057,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6057,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6058,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6058,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6058,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6058,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6058,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6058,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6058,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6058,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6059,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6059,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6059,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6059,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6062,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6062,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6066,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6066,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6066,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6066,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6066,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6066,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6066,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6067,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6067,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6067,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6067,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6067,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6067,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6067,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6068,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6068,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6068,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6068,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6068,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6068,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6068,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6069,1
    - Dst: LBL
      Src: /src/pcre2/src/pcre2_match.c:6069,1
    CyclomaticComplexity: 1478
    EdgeCount: 1478
    ICount: 3714
    argCount: 7
    argNames:
    - start_eptr
    - start_ecode
    - ovector
    - oveccount
    - top_bracket
    - frame_size
    - mb
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SPTR
    - PCRE2_SIZE*
    - uint16_t
    - uint16_t
    - PCRE2_SIZE
    - match_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6076
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 6076
    functionName: match
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 22
    functionsReached:
    - FORWARDCHARTEST
    - mb::mb
    - CHMAX_255
    - UCD_GRAPHBREAK
    - UCD_CATEGORY
    - GF_IDMASK
    - CU2BYTES
    - GETCHARINCTEST
    - GETCHARLEN
    - TABLE_GET
    - GETCHARINC
    - memcmp
    - do_callout
    - GET2
    - IS_NEWLINE
    - LBL
    - CHECK_PARTIAL
    - ACROSSCHAR
    - UCD_CHARTYPE
    - PRIV
    - UCD_OTHERCASE
    - BACKCHAR
    - memctl::malloc
    - GETCHAR
    - match_ref
    - UCHAR21TEST
    - UCHAR21INC
    - GETCHARLENTEST
    - GET
    - UCD_SCRIPT
    - GET_UCD
    - UCHAR21INCTEST
    - WAS_NEWLINE
    - memcpy
    - SCHECK_PARTIAL
    - MAX_255
    - GF_DATAMASK
    - match_block*::memctl::free
    - UCHAR21
    - fprintf
    - RMATCH
    - RRETURN
    linkageType: ''
    returnType: int
    signature: "int match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, PCRE2_SIZE
      *ovector,\n  uint16_t oveccount, uint16_t top_bracket, PCRE2_SIZE frame_size,\n
      \ match_block *mb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6042
      start: 6041
    functionDepth: 0
    functionLinenumber: 6041
    functionLinenumberEnd: 6042
    functionName: LBL
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LBL(val)
  - BBCount: 108
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:6178,1
    - Dst: pcre2_match_data*::memctl::free
      Src: /src/pcre2/src/pcre2_match.c:6258,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_match.c:6292,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:6333,1
    - Dst: pcre2_jit_match
      Src: /src/pcre2/src/pcre2_match.c:6347,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_match.c:6353,1
    - Dst: pcre2_match_data*::memctl::malloc
      Src: /src/pcre2/src/pcre2_match.c:6354,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_match.c:6357,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_match.c:6408,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_match.c:6414,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:6468,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_match.c:6491,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:6512,1
    - Dst: match_block*::memctl::malloc
      Src: /src/pcre2/src/pcre2_match.c:6639,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_match.c:6650,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:6668,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:6671,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:6673,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_match.c:6690,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:6693,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_match.c:6695,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:6744,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:6747,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:6752,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:6767,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:6799,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_match.c:6821,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_match.c:6836,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:6859,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_match.c:6863,1
    - Dst: WAS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:6896,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:6899,1
    - Dst: WAS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:6904,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:6914,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_match.c:6928,1
    - Dst: UCHAR21INCTEST
      Src: /src/pcre2/src/pcre2_match.c:7002,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_match.c:7007,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_match.c:7010,1
    - Dst: UCHAR21INCTEST
      Src: /src/pcre2/src/pcre2_match.c:7023,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_match.c:7027,1
    - Dst: match
      Src: /src/pcre2/src/pcre2_match.c:7078,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_match.c:7122,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_match.c:7148,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_match.c:7218,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_match.c:7234,1
    - Dst: match_block*::memctl::free
      Src: /src/pcre2/src/pcre2_match.c:7265,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_match.c:7288,1
    - Dst: pcre2_match_data*::memctl::malloc
      Src: /src/pcre2/src/pcre2_match.c:7289,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_match.c:7292,1
    CyclomaticComplexity: 211
    EdgeCount: 211
    ICount: 469
    argCount: 7
    argNames:
    - code
    - subject
    - length
    - start_offset
    - options
    - match_data
    - mcontext
    argTypes:
    - pcre2_code*
    - PCRE2_SPTR
    - PCRE2_SIZE
    - PCRE2_SIZE
    - uint32_t
    - pcre2_match_data*
    - pcre2_match_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7330
      start: 6103
    functionDepth: 3
    functionLinenumber: 6103
    functionLinenumberEnd: 7330
    functionName: pcre2_match
    functionSourceFile: /src/pcre2/src/pcre2_match.c
    functionUses: 13
    functionsReached:
    - CU2BYTES
    - pcre2_match_data*::memctl::free
    - TABLE_GET
    - IS_NEWLINE
    - pcre2_jit_match
    - pcre2_match_data*::memctl::malloc
    - ACROSSCHAR
    - UCD_OTHERCASE
    - PRIV
    - memchr
    - memset
    - UCHAR21TEST
    - match
    - UCHAR21INCTEST
    - WAS_NEWLINE
    - memcpy
    - match_block*::memctl::malloc
    - match_block*::memctl::free
    - NOT_FIRSTCU
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_match(const pcre2_code *code, PCRE2_SPTR subject,
      PCRE2_SIZE length,\n  PCRE2_SIZE start_offset, uint32_t options, pcre2_match_data
      *match_data,\n  pcre2_match_context *mcontext)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_auto_possess.c:200,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:210,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:221,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:222,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:237,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:242,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:243,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:247,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - c
    - ptype
    - pdata
    - negated
    argTypes:
    - uint32_t
    - unsigned int
    - unsigned int
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 257
    functionName: check_char_prop
    functionSourceFile: /src/pcre2/src/pcre2_auto_possess.c
    functionUses: 0
    functionsReached:
    - PRIV
    - GET_UCD
    linkageType: ''
    returnType: BOOL
    signature: "BOOL check_char_prop(uint32_t c, unsigned int ptype, unsigned int
      pdata,\n  BOOL negated)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - PCRE2_UCHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: get_repeat_base
    functionSourceFile: /src/pcre2/src/pcre2_auto_possess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_UCHAR
    signature: PCRE2_UCHAR get_repeat_base(PCRE2_UCHAR c)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: get_repeat_base
      Src: /src/pcre2/src/pcre2_auto_possess.c:330,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_auto_possess.c:389,1
    - Dst: GETCHARINCTEST
      Src: /src/pcre2/src/pcre2_auto_possess.c:397,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_auto_possess.c:404,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:431,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:460,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_auto_possess.c:486,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 124
    argCount: 5
    argNames:
    - code
    - utf
    - ucp
    - fcc
    - list
    argTypes:
    - PCRE2_SPTR
    - BOOL
    - BOOL
    - uint8_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 495
    functionName: get_chr_property_list
    functionSourceFile: /src/pcre2/src/pcre2_auto_possess.c
    functionUses: 0
    functionsReached:
    - UCD_OTHERCASE
    - GET2
    - GETCHARINCTEST
    - PRIV
    - get_repeat_base
    - GET
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: "PCRE2_SPTR get_chr_property_list(PCRE2_SPTR code, BOOL utf, BOOL ucp,
      const uint8_t *fcc,\n  uint32_t *list)"
  - BBCount: 126
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:555,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:561,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:569,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:603,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:642,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:650,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:651,1
    - Dst: compare_opcodes
      Src: /src/pcre2/src/pcre2_auto_possess.c:658,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:661,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:674,1
    - Dst: compare_opcodes
      Src: /src/pcre2/src/pcre2_auto_possess.c:679,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:683,1
    - Dst: get_chr_property_list
      Src: /src/pcre2/src/pcre2_auto_possess.c:696,1
    - Dst: check_char_prop
      Src: /src/pcre2/src/pcre2_auto_possess.c:1052,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:1071,1
    CyclomaticComplexity: 151
    EdgeCount: 151
    ICount: 332
    argCount: 7
    argNames:
    - code
    - utf
    - ucp
    - cb
    - base_list
    - base_end
    - rec_limit
    argTypes:
    - PCRE2_SPTR
    - BOOL
    - BOOL
    - compile_block*
    - uint32_t*
    - PCRE2_SPTR
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 1091
    functionName: compare_opcodes
    functionSourceFile: /src/pcre2/src/pcre2_auto_possess.c
    functionUses: 1
    functionsReached:
    - get_chr_property_list
    - check_char_prop
    - compare_opcodes
    - PRIV
    - GET
    linkageType: ''
    returnType: BOOL
    signature: "BOOL compare_opcodes(PCRE2_SPTR code, BOOL utf, BOOL ucp, const compile_block
      *cb,\n  const uint32_t *base_list, PCRE2_SPTR base_end, int *rec_limit)"
  - BBCount: 105
    BranchProfiles: []
    Callsites:
    - Dst: get_repeat_base
      Src: /src/pcre2/src/pcre2_auto_possess.c:1133,1
    - Dst: get_chr_property_list
      Src: /src/pcre2/src/pcre2_auto_possess.c:1135,1
    - Dst: compare_opcodes
      Src: /src/pcre2/src/pcre2_auto_possess.c:1138,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:1182,1
    - Dst: get_chr_property_list
      Src: /src/pcre2/src/pcre2_auto_possess.c:1195,1
    - Dst: compare_opcodes
      Src: /src/pcre2/src/pcre2_auto_possess.c:1199,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:1254,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_auto_possess.c:1259,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_auto_possess.c:1274,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_auto_possess.c:1339,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_auto_possess.c:1339,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 171
    argCount: 2
    argNames:
    - code
    - cb
    argTypes:
    - PCRE2_UCHAR*
    - compile_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1346
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_auto_possess.c
    functionUses: 51
    functionsReached:
    - GET_EXTRALEN
    - compare_opcodes
    - HAS_EXTRALEN
    - get_chr_property_list
    - PRIV
    - get_repeat_base
    - GET
    linkageType: ''
    returnType: int
    signature: int PRIV(auto_possessify)(PCRE2_UCHAR *code, const compile_block *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: PUT
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: GET
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: PUT
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: GET
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: PUT
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: GET
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: PUT
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: GET
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: PUT
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: GET
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: PUT
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: GET
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: GET2
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET2(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: PUT2
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT2(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: GET2
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET2(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: PUT2
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT2(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: MAX_255
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_255(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - table
    - ','
    - default
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: TABLE_GET
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_GET(c, table, default)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: CHMAX_255
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHMAX_255(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: CHMAX_255
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHMAX_255(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: CHMAX_255
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHMAX_255(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: MAX_255
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_255(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - table
    - ','
    - default
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: TABLE_GET
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_GET(c, table, default)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: UCHAR21
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UCHAR21(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: UCHAR21TEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UCHAR21TEST(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: UCHAR21INC
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UCHAR21INC(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: UCHAR21INCTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UCHAR21INCTEST(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: GETCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHAR(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: GETCHARTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARTEST(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: GETCHARINC
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINC(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: GETCHARINCTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINCTEST(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - eptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: GETCHARLEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARLEN(c, eptr, len)
  - 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: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: PUTCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTCHAR(c, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: HAS_EXTRALEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_EXTRALEN(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: GET_EXTRALEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_EXTRALEN(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: NOT_FIRSTCU
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_FIRSTCU(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: GETCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHAR(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: GETCHARTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARTEST(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: GETCHARINC
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINC(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: GETCHARINCTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINCTEST(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - eptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: GETCHARLEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARLEN(c, eptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - eptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: GETCHARLENTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARLENTEST(c, eptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: BACKCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BACKCHAR(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: FORWARDCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORWARDCHAR(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - eptr
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: FORWARDCHARTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORWARDCHARTEST(eptr,end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - condition
    - ','
    - eptr
    - ','
    - action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: ACROSSCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACROSSCHAR(condition, eptr, action)
  - 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: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: PUTCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTCHAR(c, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: HAS_EXTRALEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_EXTRALEN(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: GET_EXTRALEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_EXTRALEN(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: NOT_FIRSTCU
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_FIRSTCU(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: GETUTF16
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETUTF16(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: GETCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHAR(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: GETCHARTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARTEST(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: GETUTF16INC
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETUTF16INC(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: GETCHARINC
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINC(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: GETCHARINCTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINCTEST(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - eptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: GETUTF16LEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETUTF16LEN(c, eptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - eptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: GETCHARLEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARLEN(c, eptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - eptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: GETCHARLENTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARLENTEST(c, eptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: BACKCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BACKCHAR(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: FORWARDCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORWARDCHAR(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - eptr
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: FORWARDCHARTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORWARDCHARTEST(eptr,end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - condition
    - ','
    - eptr
    - ','
    - action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: ACROSSCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACROSSCHAR(condition, eptr, action)
  - 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: 465
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 465
    functionName: PUTCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTCHAR(c, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: HAS_EXTRALEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_EXTRALEN(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: GET_EXTRALEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_EXTRALEN(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: NOT_FIRSTCU
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_FIRSTCU(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: GETCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHAR(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: GETCHARTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARTEST(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: GETCHARINC
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINC(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: GETCHARINCTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINCTEST(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - eptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: GETCHARLEN
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARLEN(c, eptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - eptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 516
    functionName: GETCHARLENTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARLENTEST(c, eptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: BACKCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BACKCHAR(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 529
    functionName: FORWARDCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORWARDCHAR(eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - eptr
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 530
    functionName: FORWARDCHARTEST
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORWARDCHARTEST(eptr,end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - condition
    - ','
    - eptr
    - ','
    - action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    functionName: ACROSSCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACROSSCHAR(condition, eptr, action)
  - 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: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: PUTCHAR
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTCHAR(c, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 546
    functionName: CU2BYTES
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CU2BYTES(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 547
    functionName: BYTES2CU
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTES2CU(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 548
    functionName: PUTINC
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTINC(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 549
    functionName: PUT2INC
    functionSourceFile: /src/pcre2/src/pcre2_intmodedep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT2INC(a,n,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: INTERACTIVE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERACTIVE(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: _setmode
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _setmode(handle, mode)
  - 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: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: glue
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: glue(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: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: G
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: PRINTABLE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTABLE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: PRINTABLE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTABLE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: PRINTOK
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTOK(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRIV(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: U32OVERFLOW
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32OVERFLOW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: U32OVERFLOW
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32OVERFLOW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: S32OVERFLOW
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S32OVERFLOW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: S32OVERFLOW
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S32OVERFLOW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: PCRE2_SUFFIX
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUFFIX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: PCRE2_SUFFIX
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUFFIX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: PCRE2_SUFFIX
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUFFIX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: PCRE2_SUFFIX
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUFFIX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 606
    functionName: CO
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CO(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 607
    functionName: MO
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MO(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 608
    functionName: PO
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PO(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 609
    functionName: PD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 610
    functionName: DO
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1022
    functionName: CAST8VAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAST8VAR(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: 1023
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1023
    functionName: SET
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(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: 1024
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1024
    functionName: SETPLUS
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETPLUS(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: 1025
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1025
    functionName: strlen8
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strlen8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1042
    functionName: CASTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTFLD(t,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1046
    functionName: CASTVAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTVAR(t,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1051
    functionName: CODE_UNIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODE_UNIT(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: 1058
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1058
    functionName: CONCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCTXCPY(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: 1066
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    functionName: CONVERT_COPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_COPY(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1073
    functionName: DATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATCTXCPY(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: 1076
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1076
    functionName: FLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLD(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: 1083
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1083
    functionName: PATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATCTXCPY(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - lv
    - ','
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1091
    functionName: PCHARS
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARS(lv, p, offset, len, utf, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1099
    functionName: PCHARSV
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARSV(p, offset, len, utf, f)
  - 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: 1110
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1110
    functionName: PCRE2_CALLOUT_ENUMERATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CALLOUT_ENUMERATE(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1118
    functionName: PCRE2_CODE_COPY_FROM_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_FROM_VOID(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: 1126
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1126
    functionName: PCRE2_CODE_COPY_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_TO_VOID(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: 1134
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1134
    functionName: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1142
    functionName: PCRE2_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_COMPILE(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1147
    functionName: PCRE2_CONVERTED_PATTERN_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CONVERTED_PATTERN_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - )
    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: 1155
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1155
    functionName: PCRE2_DFA_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1163
    functionName: PCRE2_GET_ERROR_MESSAGE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_ERROR_MESSAGE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1171
    functionName: PCRE2_GET_OVECTOR_COUNT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_OVECTOR_COUNT(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: 1179
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1179
    functionName: PCRE2_GET_STARTCHAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_STARTCHAR(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1184
    functionName: PCRE2_JIT_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_COMPILE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1189
    functionName: PCRE2_JIT_FREE_UNUSED_MEMORY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_FREE_UNUSED_MEMORY(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1197
    functionName: PCRE2_JIT_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_MATCH(a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1205
    functionName: PCRE2_JIT_STACK_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_CREATE(a,b,c,d)
  - 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: 1213
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1213
    functionName: PCRE2_JIT_STACK_ASSIGN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_ASSIGN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1221
    functionName: PCRE2_JIT_STACK_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1226
    functionName: PCRE2_MAKETABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MAKETABLES(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1234
    functionName: PCRE2_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH(a,b,c,d,e,f,g,h)
  - 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: 1242
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1242
    functionName: PCRE2_MATCH_DATA_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE(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: 1250
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1250
    functionName: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1258
    functionName: PCRE2_MATCH_DATA_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1266
    functionName: PCRE2_PATTERN_CONVERT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_CONVERT(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1274
    functionName: PCRE2_PATTERN_INFO
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_INFO(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1282
    functionName: PCRE2_PRINTINT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PRINTINT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1290
    functionName: PCRE2_SERIALIZE_DECODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_DECODE(r,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1298
    functionName: PCRE2_SERIALIZE_ENCODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_ENCODE(r,a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1306
    functionName: PCRE2_SERIALIZE_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1315
    functionName: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES(r,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1322
    functionName: PCRE2_SET_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1330
    functionName: PCRE2_SET_CHARACTER_TABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CHARACTER_TABLES(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: 1338
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1338
    functionName: PCRE2_SET_COMPILE_RECURSION_GUARD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_COMPILE_RECURSION_GUARD(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1346
    functionName: PCRE2_SET_DEPTH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_DEPTH_LIMIT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1354
    functionName: PCRE2_SET_GLOB_SEPARATOR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_SEPARATOR(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1355
    functionDepth: 0
    functionLinenumber: 1355
    functionLinenumberEnd: 1362
    functionName: PCRE2_SET_GLOB_ESCAPE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_ESCAPE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1370
    functionName: PCRE2_SET_HEAP_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_HEAP_LIMIT(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: 1378
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1378
    functionName: PCRE2_SET_MATCH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MATCH_LIMIT(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: 1386
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1386
    functionName: PCRE2_SET_MAX_PATTERN_LENGTH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MAX_PATTERN_LENGTH(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: 1394
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1394
    functionName: PCRE2_SET_OFFSET_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_OFFSET_LIMIT(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: 1402
      start: 1395
    functionDepth: 0
    functionLinenumber: 1395
    functionLinenumberEnd: 1402
    functionName: PCRE2_SET_PARENS_NEST_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_PARENS_NEST_LIMIT(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: 1413
      start: 1403
    functionDepth: 0
    functionLinenumber: 1403
    functionLinenumberEnd: 1413
    functionName: PCRE2_SET_SUBSTITUTE_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_SUBSTITUTE_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1424
    functionName: PCRE2_SUBSTITUTE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTITUTE(a,b,c,d,e,f,g,h,i,j,k,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1432
    functionName: PCRE2_SUBSTRING_COPY_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1440
    functionName: PCRE2_SUBSTRING_COPY_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1446
    functionName: PCRE2_SUBSTRING_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1454
    functionName: PCRE2_SUBSTRING_GET_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1462
    functionName: PCRE2_SUBSTRING_GET_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1470
    functionName: PCRE2_SUBSTRING_LENGTH_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNAME(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1478
    functionName: PCRE2_SUBSTRING_LENGTH_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNUMBER(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1479
    functionDepth: 0
    functionLinenumber: 1479
    functionLinenumberEnd: 1486
    functionName: PCRE2_SUBSTRING_LIST_GET
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_GET(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1494
    functionName: PCRE2_SUBSTRING_LIST_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1502
    functionName: PCRE2_SUBSTRING_NUMBER_FROM_NAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_NUMBER_FROM_NAME(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1507
    functionName: PTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1512
    functionName: SETFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLD(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1517
    functionName: SETFLDVEC
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLDVEC(x,y,v,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1518
    functionDepth: 0
    functionLinenumber: 1518
    functionLinenumberEnd: 1522
    functionName: SETOP
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETOP(x,y,z)
  - 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: 1530
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1530
    functionName: SETCASTPTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETCASTPTR(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1534
    functionName: STRLEN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRLEN(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1535
    functionDepth: 0
    functionLinenumber: 1535
    functionLinenumberEnd: 1539
    functionName: SUB1
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB1(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: 1544
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1544
    functionName: SUB2
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB2(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1549
    functionName: TEST
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(x,r,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - f
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1554
    functionName: TESTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTFLD(x,f,r,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1591
    functionName: CASTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTFLD(t,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1595
    functionName: CASTVAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTVAR(t,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1600
    functionName: CODE_UNIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODE_UNIT(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: 1606
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1606
    functionName: CONCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCTXCPY(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: 1611
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1611
    functionName: CONVERT_COPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_COPY(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1617
    functionName: DATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATCTXCPY(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: 1620
      start: 1618
    functionDepth: 0
    functionLinenumber: 1618
    functionLinenumberEnd: 1620
    functionName: FLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLD(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: 1626
      start: 1621
    functionDepth: 0
    functionLinenumber: 1621
    functionLinenumberEnd: 1626
    functionName: PATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATCTXCPY(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - lv
    - ','
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1632
    functionName: PCHARS
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARS(lv, p, offset, len, utf, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1638
    functionName: PCHARSV
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARSV(p, offset, len, utf, f)
  - 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: 1646
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1646
    functionName: PCRE2_CALLOUT_ENUMERATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CALLOUT_ENUMERATE(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1652
    functionName: PCRE2_CODE_COPY_FROM_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_FROM_VOID(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: 1658
      start: 1653
    functionDepth: 0
    functionLinenumber: 1653
    functionLinenumberEnd: 1658
    functionName: PCRE2_CODE_COPY_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_TO_VOID(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: 1664
      start: 1659
    functionDepth: 0
    functionLinenumber: 1659
    functionLinenumberEnd: 1664
    functionName: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1670
    functionName: PCRE2_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_COMPILE(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1671
    functionDepth: 0
    functionLinenumber: 1671
    functionLinenumberEnd: 1676
    functionName: PCRE2_CONVERTED_PATTERN_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CONVERTED_PATTERN_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - )
    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: 1684
      start: 1677
    functionDepth: 0
    functionLinenumber: 1677
    functionLinenumberEnd: 1684
    functionName: PCRE2_DFA_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1690
    functionName: PCRE2_GET_ERROR_MESSAGE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_ERROR_MESSAGE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1691
    functionDepth: 0
    functionLinenumber: 1691
    functionLinenumberEnd: 1696
    functionName: PCRE2_GET_OVECTOR_COUNT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_OVECTOR_COUNT(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: 1702
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1702
    functionName: PCRE2_GET_STARTCHAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_STARTCHAR(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1703
    functionDepth: 0
    functionLinenumber: 1703
    functionLinenumberEnd: 1708
    functionName: PCRE2_JIT_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_COMPILE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1709
    functionDepth: 0
    functionLinenumber: 1709
    functionLinenumberEnd: 1714
    functionName: PCRE2_JIT_FREE_UNUSED_MEMORY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_FREE_UNUSED_MEMORY(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1715
    functionDepth: 0
    functionLinenumber: 1715
    functionLinenumberEnd: 1722
    functionName: PCRE2_JIT_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_MATCH(a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1723
    functionDepth: 0
    functionLinenumber: 1723
    functionLinenumberEnd: 1729
    functionName: PCRE2_JIT_STACK_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_CREATE(a,b,c,d)
  - 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: 1734
      start: 1729
    functionDepth: 0
    functionLinenumber: 1729
    functionLinenumberEnd: 1734
    functionName: PCRE2_JIT_STACK_ASSIGN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_ASSIGN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1735
    functionDepth: 0
    functionLinenumber: 1735
    functionLinenumberEnd: 1740
    functionName: PCRE2_JIT_STACK_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1741
    functionDepth: 0
    functionLinenumber: 1741
    functionLinenumberEnd: 1746
    functionName: PCRE2_MAKETABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MAKETABLES(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1747
    functionDepth: 0
    functionLinenumber: 1747
    functionLinenumberEnd: 1754
    functionName: PCRE2_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH(a,b,c,d,e,f,g,h)
  - 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: 1760
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1760
    functionName: PCRE2_MATCH_DATA_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE(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: 1766
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1766
    functionName: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1767
    functionDepth: 0
    functionLinenumber: 1767
    functionLinenumberEnd: 1772
    functionName: PCRE2_MATCH_DATA_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1773
    functionDepth: 0
    functionLinenumber: 1773
    functionLinenumberEnd: 1778
    functionName: PCRE2_PATTERN_CONVERT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_CONVERT(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1779
    functionDepth: 0
    functionLinenumber: 1779
    functionLinenumberEnd: 1784
    functionName: PCRE2_PATTERN_INFO
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_INFO(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1785
    functionDepth: 0
    functionLinenumber: 1785
    functionLinenumberEnd: 1790
    functionName: PCRE2_PRINTINT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PRINTINT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1791
    functionDepth: 0
    functionLinenumber: 1791
    functionLinenumberEnd: 1796
    functionName: PCRE2_SERIALIZE_DECODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_DECODE(r,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1797
    functionDepth: 0
    functionLinenumber: 1797
    functionLinenumberEnd: 1802
    functionName: PCRE2_SERIALIZE_ENCODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_ENCODE(r,a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1803
    functionDepth: 0
    functionLinenumber: 1803
    functionLinenumberEnd: 1808
    functionName: PCRE2_SERIALIZE_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1814
    functionName: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES(r,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1815
    functionDepth: 0
    functionLinenumber: 1815
    functionLinenumberEnd: 1822
    functionName: PCRE2_SET_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1828
    functionName: PCRE2_SET_CHARACTER_TABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CHARACTER_TABLES(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: 1834
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1834
    functionName: PCRE2_SET_COMPILE_RECURSION_GUARD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_COMPILE_RECURSION_GUARD(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1840
    functionName: PCRE2_SET_DEPTH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_DEPTH_LIMIT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1841
    functionDepth: 0
    functionLinenumber: 1841
    functionLinenumberEnd: 1846
    functionName: PCRE2_SET_GLOB_ESCAPE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_ESCAPE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1852
    functionName: PCRE2_SET_GLOB_SEPARATOR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_SEPARATOR(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1853
    functionDepth: 0
    functionLinenumber: 1853
    functionLinenumberEnd: 1858
    functionName: PCRE2_SET_HEAP_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_HEAP_LIMIT(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: 1864
      start: 1859
    functionDepth: 0
    functionLinenumber: 1859
    functionLinenumberEnd: 1864
    functionName: PCRE2_SET_MATCH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MATCH_LIMIT(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: 1870
      start: 1865
    functionDepth: 0
    functionLinenumber: 1865
    functionLinenumberEnd: 1870
    functionName: PCRE2_SET_MAX_PATTERN_LENGTH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MAX_PATTERN_LENGTH(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: 1876
      start: 1871
    functionDepth: 0
    functionLinenumber: 1871
    functionLinenumberEnd: 1876
    functionName: PCRE2_SET_OFFSET_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_OFFSET_LIMIT(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: 1882
      start: 1877
    functionDepth: 0
    functionLinenumber: 1877
    functionLinenumberEnd: 1882
    functionName: PCRE2_SET_PARENS_NEST_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_PARENS_NEST_LIMIT(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: 1890
      start: 1883
    functionDepth: 0
    functionLinenumber: 1883
    functionLinenumberEnd: 1890
    functionName: PCRE2_SET_SUBSTITUTE_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_SUBSTITUTE_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1900
    functionName: PCRE2_SUBSTITUTE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTITUTE(a,b,c,d,e,f,g,h,i,j,k,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1901
    functionDepth: 0
    functionLinenumber: 1901
    functionLinenumberEnd: 1908
    functionName: PCRE2_SUBSTRING_COPY_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1916
    functionName: PCRE2_SUBSTRING_COPY_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1917
    functionDepth: 0
    functionLinenumber: 1917
    functionLinenumberEnd: 1921
    functionName: PCRE2_SUBSTRING_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1929
    functionName: PCRE2_SUBSTRING_GET_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1937
    functionName: PCRE2_SUBSTRING_GET_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1938
    functionDepth: 0
    functionLinenumber: 1938
    functionLinenumberEnd: 1943
    functionName: PCRE2_SUBSTRING_LENGTH_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNAME(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1949
    functionName: PCRE2_SUBSTRING_LENGTH_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNUMBER(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1950
    functionDepth: 0
    functionLinenumber: 1950
    functionLinenumberEnd: 1957
    functionName: PCRE2_SUBSTRING_LIST_GET
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_GET(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1958
    functionDepth: 0
    functionLinenumber: 1958
    functionLinenumberEnd: 1963
    functionName: PCRE2_SUBSTRING_LIST_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1964
    functionDepth: 0
    functionLinenumber: 1964
    functionLinenumberEnd: 1969
    functionName: PCRE2_SUBSTRING_NUMBER_FROM_NAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_NUMBER_FROM_NAME(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1970
    functionDepth: 0
    functionLinenumber: 1970
    functionLinenumberEnd: 1973
    functionName: PTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1977
    functionName: SETFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLD(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1978
    functionDepth: 0
    functionLinenumber: 1978
    functionLinenumberEnd: 1981
    functionName: SETFLDVEC
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLDVEC(x,y,v,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1982
    functionDepth: 0
    functionLinenumber: 1982
    functionLinenumberEnd: 1985
    functionName: SETOP
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETOP(x,y,z)
  - 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: 1991
      start: 1986
    functionDepth: 0
    functionLinenumber: 1986
    functionLinenumberEnd: 1991
    functionName: SETCASTPTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETCASTPTR(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1995
      start: 1992
    functionDepth: 0
    functionLinenumber: 1992
    functionLinenumberEnd: 1995
    functionName: STRLEN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRLEN(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1996
    functionDepth: 0
    functionLinenumber: 1996
    functionLinenumberEnd: 2001
    functionName: SUB1
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB1(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: 2007
      start: 2002
    functionDepth: 0
    functionLinenumber: 2002
    functionLinenumberEnd: 2007
    functionName: SUB2
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB2(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2011
    functionName: TEST
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(x,r,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - f
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 2012
    functionDepth: 0
    functionLinenumber: 2012
    functionLinenumberEnd: 2015
    functionName: TESTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTFLD(x,f,r,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2025
    functionDepth: 0
    functionLinenumber: 2025
    functionLinenumberEnd: 2026
    functionName: CASTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTFLD(t,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2027
    functionName: CASTVAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTVAR(t,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2028
    functionName: CODE_UNIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODE_UNIT(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: 2029
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2029
    functionName: CONCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCTXCPY(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: 2030
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2030
    functionName: CONVERT_COPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_COPY(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2031
    functionName: DATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATCTXCPY(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: 2032
      start: 2031
    functionDepth: 0
    functionLinenumber: 2031
    functionLinenumberEnd: 2032
    functionName: FLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLD(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: 2033
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2033
    functionName: PATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATCTXCPY(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - lv
    - ','
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2033
    functionDepth: 0
    functionLinenumber: 2033
    functionLinenumberEnd: 2035
    functionName: PCHARS
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARS(lv, p, offset, len, utf, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2035
    functionDepth: 0
    functionLinenumber: 2035
    functionLinenumberEnd: 2037
    functionName: PCHARSV
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARSV(p, offset, len, utf, f)
  - 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: 2040
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2040
    functionName: PCRE2_CALLOUT_ENUMERATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CALLOUT_ENUMERATE(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2040
    functionDepth: 0
    functionLinenumber: 2040
    functionLinenumberEnd: 2041
    functionName: PCRE2_CODE_COPY_FROM_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_FROM_VOID(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: 2042
      start: 2041
    functionDepth: 0
    functionLinenumber: 2041
    functionLinenumberEnd: 2042
    functionName: PCRE2_CODE_COPY_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_TO_VOID(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: 2043
      start: 2042
    functionDepth: 0
    functionLinenumber: 2042
    functionLinenumberEnd: 2043
    functionName: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2043
    functionDepth: 0
    functionLinenumber: 2043
    functionLinenumberEnd: 2045
    functionName: PCRE2_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_COMPILE(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2045
    functionDepth: 0
    functionLinenumber: 2045
    functionLinenumberEnd: 2047
    functionName: PCRE2_CONVERTED_PATTERN_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CONVERTED_PATTERN_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - )
    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: 2049
      start: 2047
    functionDepth: 0
    functionLinenumber: 2047
    functionLinenumberEnd: 2049
    functionName: PCRE2_DFA_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2051
    functionName: PCRE2_GET_ERROR_MESSAGE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_ERROR_MESSAGE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2051
    functionDepth: 0
    functionLinenumber: 2051
    functionLinenumberEnd: 2052
    functionName: PCRE2_GET_OVECTOR_COUNT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_OVECTOR_COUNT(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: 2053
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2053
    functionName: PCRE2_GET_STARTCHAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_STARTCHAR(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2053
    functionDepth: 0
    functionLinenumber: 2053
    functionLinenumberEnd: 2054
    functionName: PCRE2_JIT_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_COMPILE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2054
    functionDepth: 0
    functionLinenumber: 2054
    functionLinenumberEnd: 2055
    functionName: PCRE2_JIT_FREE_UNUSED_MEMORY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_FREE_UNUSED_MEMORY(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2055
    functionDepth: 0
    functionLinenumber: 2055
    functionLinenumberEnd: 2057
    functionName: PCRE2_JIT_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_MATCH(a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2059
    functionName: PCRE2_JIT_STACK_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_CREATE(a,b,c,d)
  - 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: 2061
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2061
    functionName: PCRE2_JIT_STACK_ASSIGN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_ASSIGN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2061
    functionDepth: 0
    functionLinenumber: 2061
    functionLinenumberEnd: 2062
    functionName: PCRE2_JIT_STACK_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2062
    functionDepth: 0
    functionLinenumber: 2062
    functionLinenumberEnd: 2063
    functionName: PCRE2_MAKETABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MAKETABLES(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2063
    functionDepth: 0
    functionLinenumber: 2063
    functionLinenumberEnd: 2065
    functionName: PCRE2_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH(a,b,c,d,e,f,g,h)
  - 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: 2066
      start: 2065
    functionDepth: 0
    functionLinenumber: 2065
    functionLinenumberEnd: 2066
    functionName: PCRE2_MATCH_DATA_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE(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: 2068
      start: 2066
    functionDepth: 0
    functionLinenumber: 2066
    functionLinenumberEnd: 2068
    functionName: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2068
    functionDepth: 0
    functionLinenumber: 2068
    functionLinenumberEnd: 2069
    functionName: PCRE2_MATCH_DATA_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2070
    functionName: PCRE2_PATTERN_CONVERT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_CONVERT(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2070
    functionDepth: 0
    functionLinenumber: 2070
    functionLinenumberEnd: 2071
    functionName: PCRE2_PATTERN_INFO
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_INFO(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2071
    functionDepth: 0
    functionLinenumber: 2071
    functionLinenumberEnd: 2072
    functionName: PCRE2_PRINTINT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PRINTINT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2074
    functionName: PCRE2_SERIALIZE_DECODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_DECODE(r,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2074
    functionDepth: 0
    functionLinenumber: 2074
    functionLinenumberEnd: 2076
    functionName: PCRE2_SERIALIZE_ENCODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_ENCODE(r,a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2076
    functionDepth: 0
    functionLinenumber: 2076
    functionLinenumberEnd: 2077
    functionName: PCRE2_SERIALIZE_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2077
    functionDepth: 0
    functionLinenumber: 2077
    functionLinenumberEnd: 2079
    functionName: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES(r,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2081
    functionName: PCRE2_SET_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2081
    functionDepth: 0
    functionLinenumber: 2081
    functionLinenumberEnd: 2082
    functionName: PCRE2_SET_CHARACTER_TABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CHARACTER_TABLES(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: 2084
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2084
    functionName: PCRE2_SET_COMPILE_RECURSION_GUARD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_COMPILE_RECURSION_GUARD(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2085
    functionName: PCRE2_SET_DEPTH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_DEPTH_LIMIT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2085
    functionDepth: 0
    functionLinenumber: 2085
    functionLinenumberEnd: 2086
    functionName: PCRE2_SET_GLOB_ESCAPE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_ESCAPE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2087
    functionName: PCRE2_SET_GLOB_SEPARATOR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_SEPARATOR(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2087
    functionDepth: 0
    functionLinenumber: 2087
    functionLinenumberEnd: 2088
    functionName: PCRE2_SET_HEAP_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_HEAP_LIMIT(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: 2089
      start: 2088
    functionDepth: 0
    functionLinenumber: 2088
    functionLinenumberEnd: 2089
    functionName: PCRE2_SET_MATCH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MATCH_LIMIT(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: 2090
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2090
    functionName: PCRE2_SET_MAX_PATTERN_LENGTH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MAX_PATTERN_LENGTH(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: 2091
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2091
    functionName: PCRE2_SET_OFFSET_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_OFFSET_LIMIT(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: 2092
      start: 2091
    functionDepth: 0
    functionLinenumber: 2091
    functionLinenumberEnd: 2092
    functionName: PCRE2_SET_PARENS_NEST_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_PARENS_NEST_LIMIT(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: 2095
      start: 2092
    functionDepth: 0
    functionLinenumber: 2092
    functionLinenumberEnd: 2095
    functionName: PCRE2_SET_SUBSTITUTE_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_SUBSTITUTE_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2098
    functionName: PCRE2_SUBSTITUTE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTITUTE(a,b,c,d,e,f,g,h,i,j,k,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2098
    functionDepth: 0
    functionLinenumber: 2098
    functionLinenumberEnd: 2100
    functionName: PCRE2_SUBSTRING_COPY_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2100
    functionDepth: 0
    functionLinenumber: 2100
    functionLinenumberEnd: 2102
    functionName: PCRE2_SUBSTRING_COPY_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2102
    functionDepth: 0
    functionLinenumber: 2102
    functionLinenumberEnd: 2103
    functionName: PCRE2_SUBSTRING_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2103
    functionDepth: 0
    functionLinenumber: 2103
    functionLinenumberEnd: 2105
    functionName: PCRE2_SUBSTRING_GET_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2105
    functionDepth: 0
    functionLinenumber: 2105
    functionLinenumberEnd: 2107
    functionName: PCRE2_SUBSTRING_GET_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2107
    functionDepth: 0
    functionLinenumber: 2107
    functionLinenumberEnd: 2109
    functionName: PCRE2_SUBSTRING_LENGTH_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNAME(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2109
    functionDepth: 0
    functionLinenumber: 2109
    functionLinenumberEnd: 2111
    functionName: PCRE2_SUBSTRING_LENGTH_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNUMBER(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2111
    functionDepth: 0
    functionLinenumber: 2111
    functionLinenumberEnd: 2113
    functionName: PCRE2_SUBSTRING_LIST_GET
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_GET(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2113
    functionDepth: 0
    functionLinenumber: 2113
    functionLinenumberEnd: 2115
    functionName: PCRE2_SUBSTRING_LIST_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2115
    functionDepth: 0
    functionLinenumber: 2115
    functionLinenumberEnd: 2117
    functionName: PCRE2_SUBSTRING_NUMBER_FROM_NAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_NUMBER_FROM_NAME(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2117
    functionDepth: 0
    functionLinenumber: 2117
    functionLinenumberEnd: 2118
    functionName: PTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2118
    functionDepth: 0
    functionLinenumber: 2118
    functionLinenumberEnd: 2119
    functionName: SETFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLD(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2120
    functionName: SETFLDVEC
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLDVEC(x,y,v,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2120
    functionDepth: 0
    functionLinenumber: 2120
    functionLinenumberEnd: 2121
    functionName: SETOP
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETOP(x,y,z)
  - 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: 2122
      start: 2121
    functionDepth: 0
    functionLinenumber: 2121
    functionLinenumberEnd: 2122
    functionName: SETCASTPTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETCASTPTR(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2122
    functionDepth: 0
    functionLinenumber: 2122
    functionLinenumberEnd: 2123
    functionName: STRLEN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRLEN(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2123
    functionDepth: 0
    functionLinenumber: 2123
    functionLinenumberEnd: 2124
    functionName: SUB1
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB1(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: 2125
      start: 2124
    functionDepth: 0
    functionLinenumber: 2124
    functionLinenumberEnd: 2125
    functionName: SUB2
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB2(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2125
    functionDepth: 0
    functionLinenumber: 2125
    functionLinenumberEnd: 2126
    functionName: TEST
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(x,r,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - f
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2127
    functionName: TESTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTFLD(x,f,r,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2132
    functionDepth: 0
    functionLinenumber: 2132
    functionLinenumberEnd: 2133
    functionName: CASTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTFLD(t,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2133
    functionDepth: 0
    functionLinenumber: 2133
    functionLinenumberEnd: 2134
    functionName: CASTVAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTVAR(t,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2134
    functionDepth: 0
    functionLinenumber: 2134
    functionLinenumberEnd: 2135
    functionName: CODE_UNIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODE_UNIT(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: 2136
      start: 2135
    functionDepth: 0
    functionLinenumber: 2135
    functionLinenumberEnd: 2136
    functionName: CONCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCTXCPY(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: 2137
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2137
    functionName: CONVERT_COPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_COPY(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2137
    functionDepth: 0
    functionLinenumber: 2137
    functionLinenumberEnd: 2138
    functionName: DATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATCTXCPY(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: 2139
      start: 2138
    functionDepth: 0
    functionLinenumber: 2138
    functionLinenumberEnd: 2139
    functionName: FLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLD(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: 2140
      start: 2139
    functionDepth: 0
    functionLinenumber: 2139
    functionLinenumberEnd: 2140
    functionName: PATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATCTXCPY(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - lv
    - ','
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2140
    functionDepth: 0
    functionLinenumber: 2140
    functionLinenumberEnd: 2142
    functionName: PCHARS
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARS(lv, p, offset, len, utf, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2142
    functionDepth: 0
    functionLinenumber: 2142
    functionLinenumberEnd: 2144
    functionName: PCHARSV
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARSV(p, offset, len, utf, f)
  - 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: 2147
      start: 2144
    functionDepth: 0
    functionLinenumber: 2144
    functionLinenumberEnd: 2147
    functionName: PCRE2_CALLOUT_ENUMERATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CALLOUT_ENUMERATE(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2147
    functionDepth: 0
    functionLinenumber: 2147
    functionLinenumberEnd: 2148
    functionName: PCRE2_CODE_COPY_FROM_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_FROM_VOID(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: 2149
      start: 2148
    functionDepth: 0
    functionLinenumber: 2148
    functionLinenumberEnd: 2149
    functionName: PCRE2_CODE_COPY_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_TO_VOID(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: 2150
      start: 2149
    functionDepth: 0
    functionLinenumber: 2149
    functionLinenumberEnd: 2150
    functionName: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2150
    functionDepth: 0
    functionLinenumber: 2150
    functionLinenumberEnd: 2152
    functionName: PCRE2_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_COMPILE(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2152
    functionDepth: 0
    functionLinenumber: 2152
    functionLinenumberEnd: 2154
    functionName: PCRE2_CONVERTED_PATTERN_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CONVERTED_PATTERN_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - )
    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: 2156
      start: 2154
    functionDepth: 0
    functionLinenumber: 2154
    functionLinenumberEnd: 2156
    functionName: PCRE2_DFA_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2156
    functionDepth: 0
    functionLinenumber: 2156
    functionLinenumberEnd: 2158
    functionName: PCRE2_GET_ERROR_MESSAGE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_ERROR_MESSAGE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2159
    functionName: PCRE2_GET_OVECTOR_COUNT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_OVECTOR_COUNT(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: 2160
      start: 2159
    functionDepth: 0
    functionLinenumber: 2159
    functionLinenumberEnd: 2160
    functionName: PCRE2_GET_STARTCHAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_STARTCHAR(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2160
    functionDepth: 0
    functionLinenumber: 2160
    functionLinenumberEnd: 2161
    functionName: PCRE2_JIT_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_COMPILE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2161
    functionDepth: 0
    functionLinenumber: 2161
    functionLinenumberEnd: 2162
    functionName: PCRE2_JIT_FREE_UNUSED_MEMORY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_FREE_UNUSED_MEMORY(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2164
    functionName: PCRE2_JIT_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_MATCH(a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2164
    functionDepth: 0
    functionLinenumber: 2164
    functionLinenumberEnd: 2166
    functionName: PCRE2_JIT_STACK_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_CREATE(a,b,c,d)
  - 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: 2168
      start: 2166
    functionDepth: 0
    functionLinenumber: 2166
    functionLinenumberEnd: 2168
    functionName: PCRE2_JIT_STACK_ASSIGN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_ASSIGN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2168
    functionDepth: 0
    functionLinenumber: 2168
    functionLinenumberEnd: 2169
    functionName: PCRE2_JIT_STACK_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2169
    functionDepth: 0
    functionLinenumber: 2169
    functionLinenumberEnd: 2170
    functionName: PCRE2_MAKETABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MAKETABLES(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2172
    functionName: PCRE2_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH(a,b,c,d,e,f,g,h)
  - 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: 2173
      start: 2172
    functionDepth: 0
    functionLinenumber: 2172
    functionLinenumberEnd: 2173
    functionName: PCRE2_MATCH_DATA_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE(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: 2175
      start: 2173
    functionDepth: 0
    functionLinenumber: 2173
    functionLinenumberEnd: 2175
    functionName: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2175
    functionDepth: 0
    functionLinenumber: 2175
    functionLinenumberEnd: 2176
    functionName: PCRE2_MATCH_DATA_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2176
    functionDepth: 0
    functionLinenumber: 2176
    functionLinenumberEnd: 2177
    functionName: PCRE2_PATTERN_CONVERT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_CONVERT(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2177
    functionDepth: 0
    functionLinenumber: 2177
    functionLinenumberEnd: 2178
    functionName: PCRE2_PATTERN_INFO
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_INFO(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2178
    functionDepth: 0
    functionLinenumber: 2178
    functionLinenumberEnd: 2179
    functionName: PCRE2_PRINTINT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PRINTINT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2179
    functionDepth: 0
    functionLinenumber: 2179
    functionLinenumberEnd: 2181
    functionName: PCRE2_SERIALIZE_DECODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_DECODE(r,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2181
    functionDepth: 0
    functionLinenumber: 2181
    functionLinenumberEnd: 2183
    functionName: PCRE2_SERIALIZE_ENCODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_ENCODE(r,a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2184
    functionName: PCRE2_SERIALIZE_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2186
    functionName: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES(r,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2188
    functionName: PCRE2_SET_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2188
    functionDepth: 0
    functionLinenumber: 2188
    functionLinenumberEnd: 2189
    functionName: PCRE2_SET_CHARACTER_TABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CHARACTER_TABLES(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: 2191
      start: 2189
    functionDepth: 0
    functionLinenumber: 2189
    functionLinenumberEnd: 2191
    functionName: PCRE2_SET_COMPILE_RECURSION_GUARD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_COMPILE_RECURSION_GUARD(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2191
    functionDepth: 0
    functionLinenumber: 2191
    functionLinenumberEnd: 2192
    functionName: PCRE2_SET_DEPTH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_DEPTH_LIMIT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2192
    functionDepth: 0
    functionLinenumber: 2192
    functionLinenumberEnd: 2193
    functionName: PCRE2_SET_GLOB_ESCAPE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_ESCAPE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2193
    functionDepth: 0
    functionLinenumber: 2193
    functionLinenumberEnd: 2194
    functionName: PCRE2_SET_GLOB_SEPARATOR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_SEPARATOR(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2194
    functionDepth: 0
    functionLinenumber: 2194
    functionLinenumberEnd: 2195
    functionName: PCRE2_SET_HEAP_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_HEAP_LIMIT(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: 2196
      start: 2195
    functionDepth: 0
    functionLinenumber: 2195
    functionLinenumberEnd: 2196
    functionName: PCRE2_SET_MATCH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MATCH_LIMIT(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: 2197
      start: 2196
    functionDepth: 0
    functionLinenumber: 2196
    functionLinenumberEnd: 2197
    functionName: PCRE2_SET_MAX_PATTERN_LENGTH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MAX_PATTERN_LENGTH(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: 2198
      start: 2197
    functionDepth: 0
    functionLinenumber: 2197
    functionLinenumberEnd: 2198
    functionName: PCRE2_SET_OFFSET_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_OFFSET_LIMIT(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: 2199
      start: 2198
    functionDepth: 0
    functionLinenumber: 2198
    functionLinenumberEnd: 2199
    functionName: PCRE2_SET_PARENS_NEST_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_PARENS_NEST_LIMIT(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: 2202
      start: 2199
    functionDepth: 0
    functionLinenumber: 2199
    functionLinenumberEnd: 2202
    functionName: PCRE2_SET_SUBSTITUTE_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_SUBSTITUTE_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2202
    functionDepth: 0
    functionLinenumber: 2202
    functionLinenumberEnd: 2205
    functionName: PCRE2_SUBSTITUTE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTITUTE(a,b,c,d,e,f,g,h,i,j,k,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2207
    functionName: PCRE2_SUBSTRING_COPY_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2207
    functionDepth: 0
    functionLinenumber: 2207
    functionLinenumberEnd: 2209
    functionName: PCRE2_SUBSTRING_COPY_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2209
    functionDepth: 0
    functionLinenumber: 2209
    functionLinenumberEnd: 2210
    functionName: PCRE2_SUBSTRING_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2212
    functionName: PCRE2_SUBSTRING_GET_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2212
    functionDepth: 0
    functionLinenumber: 2212
    functionLinenumberEnd: 2214
    functionName: PCRE2_SUBSTRING_GET_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2214
    functionDepth: 0
    functionLinenumber: 2214
    functionLinenumberEnd: 2216
    functionName: PCRE2_SUBSTRING_LENGTH_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNAME(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2216
    functionDepth: 0
    functionLinenumber: 2216
    functionLinenumberEnd: 2218
    functionName: PCRE2_SUBSTRING_LENGTH_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNUMBER(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2218
    functionDepth: 0
    functionLinenumber: 2218
    functionLinenumberEnd: 2220
    functionName: PCRE2_SUBSTRING_LIST_GET
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_GET(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2220
    functionDepth: 0
    functionLinenumber: 2220
    functionLinenumberEnd: 2222
    functionName: PCRE2_SUBSTRING_LIST_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2222
    functionDepth: 0
    functionLinenumber: 2222
    functionLinenumberEnd: 2224
    functionName: PCRE2_SUBSTRING_NUMBER_FROM_NAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_NUMBER_FROM_NAME(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2224
    functionDepth: 0
    functionLinenumber: 2224
    functionLinenumberEnd: 2225
    functionName: PTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2225
    functionDepth: 0
    functionLinenumber: 2225
    functionLinenumberEnd: 2226
    functionName: SETFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLD(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2226
    functionDepth: 0
    functionLinenumber: 2226
    functionLinenumberEnd: 2227
    functionName: SETFLDVEC
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLDVEC(x,y,v,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2227
    functionDepth: 0
    functionLinenumber: 2227
    functionLinenumberEnd: 2228
    functionName: SETOP
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETOP(x,y,z)
  - 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: 2229
      start: 2228
    functionDepth: 0
    functionLinenumber: 2228
    functionLinenumberEnd: 2229
    functionName: SETCASTPTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETCASTPTR(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2229
    functionDepth: 0
    functionLinenumber: 2229
    functionLinenumberEnd: 2230
    functionName: STRLEN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRLEN(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2230
    functionDepth: 0
    functionLinenumber: 2230
    functionLinenumberEnd: 2231
    functionName: SUB1
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB1(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: 2232
      start: 2231
    functionDepth: 0
    functionLinenumber: 2231
    functionLinenumberEnd: 2232
    functionName: SUB2
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB2(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2232
    functionDepth: 0
    functionLinenumber: 2232
    functionLinenumberEnd: 2233
    functionName: TEST
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(x,r,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - f
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2233
    functionDepth: 0
    functionLinenumber: 2233
    functionLinenumberEnd: 2234
    functionName: TESTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTFLD(x,f,r,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2240
    functionName: CASTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTFLD(t,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2240
    functionDepth: 0
    functionLinenumber: 2240
    functionLinenumberEnd: 2241
    functionName: CASTVAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASTVAR(t,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2241
    functionDepth: 0
    functionLinenumber: 2241
    functionLinenumberEnd: 2242
    functionName: CODE_UNIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODE_UNIT(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: 2243
      start: 2242
    functionDepth: 0
    functionLinenumber: 2242
    functionLinenumberEnd: 2243
    functionName: CONCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCTXCPY(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: 2244
      start: 2243
    functionDepth: 0
    functionLinenumber: 2243
    functionLinenumberEnd: 2244
    functionName: CONVERT_COPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_COPY(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2244
    functionDepth: 0
    functionLinenumber: 2244
    functionLinenumberEnd: 2245
    functionName: DATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATCTXCPY(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: 2246
      start: 2245
    functionDepth: 0
    functionLinenumber: 2245
    functionLinenumberEnd: 2246
    functionName: FLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLD(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: 2247
      start: 2246
    functionDepth: 0
    functionLinenumber: 2246
    functionLinenumberEnd: 2247
    functionName: PATCTXCPY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATCTXCPY(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - lv
    - ','
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2247
    functionDepth: 0
    functionLinenumber: 2247
    functionLinenumberEnd: 2249
    functionName: PCHARS
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARS(lv, p, offset, len, utf, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - p
    - ','
    - offset
    - ','
    - len
    - ','
    - utf
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2249
    functionDepth: 0
    functionLinenumber: 2249
    functionLinenumberEnd: 2251
    functionName: PCHARSV
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCHARSV(p, offset, len, utf, f)
  - 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: 2254
      start: 2251
    functionDepth: 0
    functionLinenumber: 2251
    functionLinenumberEnd: 2254
    functionName: PCRE2_CALLOUT_ENUMERATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CALLOUT_ENUMERATE(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2254
    functionDepth: 0
    functionLinenumber: 2254
    functionLinenumberEnd: 2255
    functionName: PCRE2_CODE_COPY_FROM_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_FROM_VOID(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: 2256
      start: 2255
    functionDepth: 0
    functionLinenumber: 2255
    functionLinenumberEnd: 2256
    functionName: PCRE2_CODE_COPY_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_TO_VOID(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: 2257
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2257
    functionName: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2257
    functionDepth: 0
    functionLinenumber: 2257
    functionLinenumberEnd: 2259
    functionName: PCRE2_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_COMPILE(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2259
    functionDepth: 0
    functionLinenumber: 2259
    functionLinenumberEnd: 2261
    functionName: PCRE2_CONVERTED_PATTERN_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_CONVERTED_PATTERN_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - )
    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: 2263
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2263
    functionName: PCRE2_DFA_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_DFA_MATCH(a,b,c,d,e,f,g,h,i,j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2265
    functionName: PCRE2_GET_ERROR_MESSAGE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_ERROR_MESSAGE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2265
    functionDepth: 0
    functionLinenumber: 2265
    functionLinenumberEnd: 2266
    functionName: PCRE2_GET_OVECTOR_COUNT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_OVECTOR_COUNT(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: 2267
      start: 2266
    functionDepth: 0
    functionLinenumber: 2266
    functionLinenumberEnd: 2267
    functionName: PCRE2_GET_STARTCHAR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_GET_STARTCHAR(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2267
    functionDepth: 0
    functionLinenumber: 2267
    functionLinenumberEnd: 2268
    functionName: PCRE2_JIT_COMPILE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_COMPILE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2269
    functionName: PCRE2_JIT_FREE_UNUSED_MEMORY
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_FREE_UNUSED_MEMORY(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2269
    functionDepth: 0
    functionLinenumber: 2269
    functionLinenumberEnd: 2271
    functionName: PCRE2_JIT_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_MATCH(a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2273
    functionName: PCRE2_JIT_STACK_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_CREATE(a,b,c,d)
  - 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: 2275
      start: 2273
    functionDepth: 0
    functionLinenumber: 2273
    functionLinenumberEnd: 2275
    functionName: PCRE2_JIT_STACK_ASSIGN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_ASSIGN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2275
    functionDepth: 0
    functionLinenumber: 2275
    functionLinenumberEnd: 2276
    functionName: PCRE2_JIT_STACK_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_JIT_STACK_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2276
    functionDepth: 0
    functionLinenumber: 2276
    functionLinenumberEnd: 2277
    functionName: PCRE2_MAKETABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MAKETABLES(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2277
    functionDepth: 0
    functionLinenumber: 2277
    functionLinenumberEnd: 2279
    functionName: PCRE2_MATCH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH(a,b,c,d,e,f,g,h)
  - 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: 2280
      start: 2279
    functionDepth: 0
    functionLinenumber: 2279
    functionLinenumberEnd: 2280
    functionName: PCRE2_MATCH_DATA_CREATE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE(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: 2282
      start: 2280
    functionDepth: 0
    functionLinenumber: 2280
    functionLinenumberEnd: 2282
    functionName: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2282
    functionDepth: 0
    functionLinenumber: 2282
    functionLinenumberEnd: 2283
    functionName: PCRE2_MATCH_DATA_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_MATCH_DATA_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2283
    functionDepth: 0
    functionLinenumber: 2283
    functionLinenumberEnd: 2284
    functionName: PCRE2_PATTERN_CONVERT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_CONVERT(a,b,c,d,e,f,g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2284
    functionDepth: 0
    functionLinenumber: 2284
    functionLinenumberEnd: 2285
    functionName: PCRE2_PATTERN_INFO
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PATTERN_INFO(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2285
    functionDepth: 0
    functionLinenumber: 2285
    functionLinenumberEnd: 2286
    functionName: PCRE2_PRINTINT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_PRINTINT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2286
    functionDepth: 0
    functionLinenumber: 2286
    functionLinenumberEnd: 2288
    functionName: PCRE2_SERIALIZE_DECODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_DECODE(r,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2288
    functionDepth: 0
    functionLinenumber: 2288
    functionLinenumberEnd: 2290
    functionName: PCRE2_SERIALIZE_ENCODE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_ENCODE(r,a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2290
    functionDepth: 0
    functionLinenumber: 2290
    functionLinenumberEnd: 2291
    functionName: PCRE2_SERIALIZE_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2291
    functionDepth: 0
    functionLinenumber: 2291
    functionLinenumberEnd: 2293
    functionName: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES(r,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2293
    functionDepth: 0
    functionLinenumber: 2293
    functionLinenumberEnd: 2295
    functionName: PCRE2_SET_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2295
    functionDepth: 0
    functionLinenumber: 2295
    functionLinenumberEnd: 2296
    functionName: PCRE2_SET_CHARACTER_TABLES
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_CHARACTER_TABLES(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: 2298
      start: 2296
    functionDepth: 0
    functionLinenumber: 2296
    functionLinenumberEnd: 2298
    functionName: PCRE2_SET_COMPILE_RECURSION_GUARD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_COMPILE_RECURSION_GUARD(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2299
    functionName: PCRE2_SET_DEPTH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_DEPTH_LIMIT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2299
    functionDepth: 0
    functionLinenumber: 2299
    functionLinenumberEnd: 2300
    functionName: PCRE2_SET_GLOB_ESCAPE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_ESCAPE(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2301
    functionName: PCRE2_SET_GLOB_SEPARATOR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_GLOB_SEPARATOR(r,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2301
    functionDepth: 0
    functionLinenumber: 2301
    functionLinenumberEnd: 2302
    functionName: PCRE2_SET_HEAP_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_HEAP_LIMIT(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: 2303
      start: 2302
    functionDepth: 0
    functionLinenumber: 2302
    functionLinenumberEnd: 2303
    functionName: PCRE2_SET_MATCH_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MATCH_LIMIT(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: 2304
      start: 2303
    functionDepth: 0
    functionLinenumber: 2303
    functionLinenumberEnd: 2304
    functionName: PCRE2_SET_MAX_PATTERN_LENGTH
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_MAX_PATTERN_LENGTH(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: 2305
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2305
    functionName: PCRE2_SET_OFFSET_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_OFFSET_LIMIT(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: 2306
      start: 2305
    functionDepth: 0
    functionLinenumber: 2305
    functionLinenumberEnd: 2306
    functionName: PCRE2_SET_PARENS_NEST_LIMIT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_PARENS_NEST_LIMIT(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: 2309
      start: 2306
    functionDepth: 0
    functionLinenumber: 2306
    functionLinenumberEnd: 2309
    functionName: PCRE2_SET_SUBSTITUTE_CALLOUT
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SET_SUBSTITUTE_CALLOUT(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - ','
    - k
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2309
    functionDepth: 0
    functionLinenumber: 2309
    functionLinenumberEnd: 2312
    functionName: PCRE2_SUBSTITUTE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTITUTE(a,b,c,d,e,f,g,h,i,j,k,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2312
    functionDepth: 0
    functionLinenumber: 2312
    functionLinenumberEnd: 2314
    functionName: PCRE2_SUBSTRING_COPY_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2314
    functionDepth: 0
    functionLinenumber: 2314
    functionLinenumberEnd: 2316
    functionName: PCRE2_SUBSTRING_COPY_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_COPY_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 2317
    functionName: PCRE2_SUBSTRING_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2317
    functionDepth: 0
    functionLinenumber: 2317
    functionLinenumberEnd: 2319
    functionName: PCRE2_SUBSTRING_GET_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNAME(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2319
    functionDepth: 0
    functionLinenumber: 2319
    functionLinenumberEnd: 2321
    functionName: PCRE2_SUBSTRING_GET_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_GET_BYNUMBER(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2321
    functionDepth: 0
    functionLinenumber: 2321
    functionLinenumberEnd: 2323
    functionName: PCRE2_SUBSTRING_LENGTH_BYNAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNAME(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2323
    functionDepth: 0
    functionLinenumber: 2323
    functionLinenumberEnd: 2325
    functionName: PCRE2_SUBSTRING_LENGTH_BYNUMBER
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LENGTH_BYNUMBER(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2325
    functionDepth: 0
    functionLinenumber: 2325
    functionLinenumberEnd: 2327
    functionName: PCRE2_SUBSTRING_LIST_GET
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_GET(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2327
    functionDepth: 0
    functionLinenumber: 2327
    functionLinenumberEnd: 2329
    functionName: PCRE2_SUBSTRING_LIST_FREE
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_LIST_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2329
    functionDepth: 0
    functionLinenumber: 2329
    functionLinenumberEnd: 2331
    functionName: PCRE2_SUBSTRING_NUMBER_FROM_NAME
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCRE2_SUBSTRING_NUMBER_FROM_NAME(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2331
    functionDepth: 0
    functionLinenumber: 2331
    functionLinenumberEnd: 2332
    functionName: PTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2332
    functionDepth: 0
    functionLinenumber: 2332
    functionLinenumberEnd: 2333
    functionName: SETFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLD(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2334
    functionName: SETFLDVEC
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFLDVEC(x,y,v,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2335
    functionName: SETOP
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETOP(x,y,z)
  - 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: 2336
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2336
    functionName: SETCASTPTR
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETCASTPTR(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2336
    functionDepth: 0
    functionLinenumber: 2336
    functionLinenumberEnd: 2337
    functionName: STRLEN
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRLEN(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2337
    functionDepth: 0
    functionLinenumber: 2337
    functionLinenumberEnd: 2338
    functionName: SUB1
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB1(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: 2339
      start: 2338
    functionDepth: 0
    functionLinenumber: 2338
    functionLinenumberEnd: 2339
    functionName: SUB2
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB2(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2339
    functionDepth: 0
    functionLinenumber: 2339
    functionLinenumberEnd: 2340
    functionName: TEST
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(x,r,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - f
    - ','
    - r
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2341
    functionName: TESTFLD
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTFLD(x,f,r,y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bcopy
      Src: /src/pcre2/src/pcre2test.c:2689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - d
    - s
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2685
    functionDepth: 0
    functionLinenumber: 2685
    functionLinenumberEnd: 2708
    functionName: emulated_memmove
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - bcopy
    linkageType: ''
    returnType: void
    signature: 'void *

      emulated_memmove(void *d, const void *s, size_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2710
    functionDepth: 0
    functionLinenumber: 2710
    functionLinenumberEnd: 2711
    functionName: memmove
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memmove(d,s,n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2727
    functionDepth: 0
    functionLinenumber: 2727
    functionLinenumberEnd: 2732
    functionName: strerror
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strerror(int n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:2745,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2751,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2755,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2757,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2765,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - size
    - data
    argTypes:
    - PCRE2_SIZE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2743
    functionDepth: 0
    functionLinenumber: 2743
    functionLinenumberEnd: 2770
    functionName: my_malloc
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - malloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *my_malloc(PCRE2_SIZE size, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2780,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2785,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2796,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2798,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2800,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:2802,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - block
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2772
    functionDepth: 0
    functionLinenumber: 2772
    functionLinenumberEnd: 2803
    functionName: my_free
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void my_free(void *block, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - depth
    - user_data
    argTypes:
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2819
    functionDepth: 0
    functionLinenumber: 2819
    functionLinenumberEnd: 2824
    functionName: stack_guard
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stack_guard(uint32_t depth, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2831
    functionDepth: 0
    functionLinenumber: 2831
    functionLinenumberEnd: 2836
    functionName: jit_callback
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_JIT_STACK
    signature: 'PCRE2_JIT_STACK *

      jit_callback(void *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - utf8bytes
    - vptr
    argTypes:
    - PCRE2_SPTR8
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2859
    functionDepth: 0
    functionLinenumber: 2859
    functionLinenumberEnd: 2898
    functionName: utf82ord
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int utf82ord(PCRE2_SPTR8 utf8bytes, uint32_t *vptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PRINTOK
      Src: /src/pcre2/src/pcre2test.c:2923,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2925,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2933,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2938,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:2943,1
    - Dst: sprintf
      Src: /src/pcre2/src/pcre2test.c:2944,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - c
    - utf
    - f
    argTypes:
    - uint32_t
    - BOOL
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2917
    functionDepth: 1
    functionLinenumber: 2917
    functionLinenumberEnd: 2947
    functionName: pchar
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - PRINTOK
    - sprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int pchar(uint32_t c, BOOL utf, FILE *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PCRE2_SPTR16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2956
    functionDepth: 0
    functionLinenumber: 2956
    functionLinenumberEnd: 2961
    functionName: strlen16
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strlen16(PCRE2_SPTR16 p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PCRE2_SPTR32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2971
    functionDepth: 0
    functionLinenumber: 2971
    functionLinenumberEnd: 2976
    functionName: strlen32
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strlen32(PCRE2_SPTR32 p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: utf82ord
      Src: /src/pcre2/src/pcre2test.c:2999,1
    - Dst: pchar
      Src: /src/pcre2/src/pcre2test.c:3004,1
    - Dst: pchar
      Src: /src/pcre2/src/pcre2test.c:3009,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - p
    - length
    - utf
    - f
    argTypes:
    - PCRE2_SPTR8
    - int
    - BOOL
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3013
      start: 2990
    functionDepth: 2
    functionLinenumber: 2990
    functionLinenumberEnd: 3013
    functionName: pchars8
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - pchar
    - utf82ord
    linkageType: ''
    returnType: int
    signature: int pchars8(PCRE2_SPTR8 p, int length, BOOL utf, FILE *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pchar
      Src: /src/pcre2/src/pcre2test.c:3044,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - p
    - length
    - utf
    - f
    argTypes:
    - PCRE2_SPTR16
    - int
    - BOOL
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3027
    functionDepth: 2
    functionLinenumber: 3027
    functionLinenumberEnd: 3047
    functionName: pchars16
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - pchar
    linkageType: ''
    returnType: int
    signature: int pchars16(PCRE2_SPTR16 p, int length, BOOL utf, FILE *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pchar
      Src: /src/pcre2/src/pcre2test.c:3070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - p
    - length
    - utf
    - f
    argTypes:
    - PCRE2_SPTR32
    - int
    - BOOL
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3062
    functionDepth: 2
    functionLinenumber: 3062
    functionLinenumberEnd: 3073
    functionName: pchars32
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - pchar
    linkageType: ''
    returnType: int
    signature: int pchars32(PCRE2_SPTR32 p, int length, BOOL utf, FILE *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - cvalue
    - utf8bytes
    argTypes:
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3095
    functionDepth: 0
    functionLinenumber: 3095
    functionLinenumberEnd: 3111
    functionName: ord2utf8
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ord2utf8(uint32_t cvalue, uint8_t *utf8bytes)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:3158,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:3161,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3164,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:3166,1
    - Dst: utf82ord
      Src: /src/pcre2/src/pcre2test.c:3178,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - p
    - utf
    - lenptr
    argTypes:
    - uint8_t*
    - int
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3195
      start: 3150
    functionDepth: 0
    functionLinenumber: 3150
    functionLinenumberEnd: 3195
    functionName: to16
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - exit
    - utf82ord
    - malloc
    - fprintf
    - free
    linkageType: ''
    returnType: PCRE2_SIZE
    signature: PCRE2_SIZE to16(uint8_t *p, int utf, PCRE2_SIZE *lenptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:3245,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:3248,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3251,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:3253,1
    - Dst: utf82ord
      Src: /src/pcre2/src/pcre2test.c:3275,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - p
    - utf
    - lenptr
    argTypes:
    - uint8_t*
    - int
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3286
      start: 3237
    functionDepth: 0
    functionLinenumber: 3237
    functionLinenumberEnd: 3286
    functionName: to32
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - exit
    - utf82ord
    - malloc
    - fprintf
    - free
    linkageType: ''
    returnType: PCRE2_SIZE
    signature: PCRE2_SIZE to32(uint8_t *p, int utf, PCRE2_SIZE *lenptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - subject
    - offset
    - count
    - utf
    argTypes:
    - uint8_t*
    - PCRE2_SIZE
    - uint32_t
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3339
      start: 3312
    functionDepth: 0
    functionLinenumber: 3312
    functionLinenumberEnd: 3339
    functionName: backchars
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_SIZE
    signature: PCRE2_SIZE backchars(uint8_t *subject, PCRE2_SIZE offset, uint32_t
      count, BOOL utf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:3360,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:3361,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3365,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:3366,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:3369,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:3370,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:3374,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:3375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3379
      start: 3356
    functionDepth: 1
    functionLinenumber: 3356
    functionLinenumberEnd: 3379
    functionName: expand_input_buffers
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - exit
    - memcpy
    - malloc
    - fprintf
    - free
    linkageType: ''
    returnType: void
    signature: void expand_input_buffers(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INTERACTIVE
      Src: /src/pcre2/src/pcre2test.c:3425,1
    - Dst: readline
      Src: /src/pcre2/src/pcre2test.c:3428,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:3430,1
    - Dst: add_history
      Src: /src/pcre2/src/pcre2test.c:3431,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:3433,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:3436,1
    - Dst: INTERACTIVE
      Src: /src/pcre2/src/pcre2test.c:3444,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:3444,1
    - Dst: fgets
      Src: /src/pcre2/src/pcre2test.c:3445,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:3449,1
    - Dst: INTERACTIVE
      Src: /src/pcre2/src/pcre2test.c:3464,1
    - Dst: feof
      Src: /src/pcre2/src/pcre2test.c:3464,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3466,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3467,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:3468,1
    - Dst: expand_input_buffers
      Src: /src/pcre2/src/pcre2test.c:3476,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - f
    - start
    - prompt
    argTypes:
    - FILE*
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3483
      start: 3407
    functionDepth: 2
    functionLinenumber: 3407
    functionLinenumberEnd: 3483
    functionName: extend_inputline
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - readline
    - exit
    - INTERACTIVE
    - fgets
    - expand_input_buffers
    - strlen
    - fprintf
    - printf
    - feof
    - add_history
    - free
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      extend_inputline(FILE *f, uint8_t *start, const char *prompt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/pcre2/src/pcre2test.c:3505,1
    - Dst: tolower
      Src: /src/pcre2/src/pcre2test.c:3505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - s
    - t
    - n
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3509
      start: 3500
    functionDepth: 0
    functionLinenumber: 3500
    functionLinenumberEnd: 3509
    functionName: strncmpic
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int strncmpic(const uint8_t *s, const uint8_t *t, int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:3535,1
    - Dst: strncmp
      Src: /src/pcre2/src/pcre2test.c:3536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3547
      start: 3526
    functionDepth: 1
    functionLinenumber: 3526
    functionLinenumberEnd: 3547
    functionName: scan_modifiers
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int scan_modifiers(const uint8_t *p, unsigned int len)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3586,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:3594,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:3595,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:3599,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:3600,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3626,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3628,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 5
    argNames:
    - m
    - ctx
    - pctl
    - dctl
    - c
    argTypes:
    - modstruct*
    - int
    - patctl*
    - datctl*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3633
      start: 3572
    functionDepth: 1
    functionLinenumber: 3572
    functionLinenumberEnd: 3633
    functionName: check_modifier
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - PTR
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void *

      check_modifier(modstruct *m, int ctx, patctl *pctl, datctl *dctl, uint32_t c)'
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:3678,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:3686,1
    - Dst: scan_modifiers
      Src: /src/pcre2/src/pcre2test.c:3702,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3715,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3717,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3728,1
    - Dst: scan_modifiers
      Src: /src/pcre2/src/pcre2test.c:3740,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:3741,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3744,1
    - Dst: check_modifier
      Src: /src/pcre2/src/pcre2test.c:3751,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3778,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3783,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3792,1
    - Dst: check_modifier
      Src: /src/pcre2/src/pcre2test.c:3801,1
    - Dst: strncmpic
      Src: /src/pcre2/src/pcre2test.c:3815,1
    - Dst: strncmpic
      Src: /src/pcre2/src/pcre2test.c:3827,1
    - Dst: strncmpic
      Src: /src/pcre2/src/pcre2test.c:3829,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2test.c:3845,1
    - Dst: strncmpic
      Src: /src/pcre2/src/pcre2test.c:3849,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:3865,1
    - Dst: strtoul
      Src: /src/pcre2/src/pcre2test.c:3866,1
    - Dst: U32OVERFLOW
      Src: /src/pcre2/src/pcre2test.c:3867,1
    - Dst: strtoul
      Src: /src/pcre2/src/pcre2test.c:3871,1
    - Dst: U32OVERFLOW
      Src: /src/pcre2/src/pcre2test.c:3872,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:3884,1
    - Dst: strtoul
      Src: /src/pcre2/src/pcre2test.c:3885,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:3903,1
    - Dst: strtoul
      Src: /src/pcre2/src/pcre2test.c:3904,1
    - Dst: U32OVERFLOW
      Src: /src/pcre2/src/pcre2test.c:3905,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:3911,1
    - Dst: strtol
      Src: /src/pcre2/src/pcre2test.c:3912,1
    - Dst: S32OVERFLOW
      Src: /src/pcre2/src/pcre2test.c:3913,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:3920,1
    - Dst: strncmpic
      Src: /src/pcre2/src/pcre2test.c:3921,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:3939,1
    - Dst: strtol
      Src: /src/pcre2/src/pcre2test.c:3943,1
    - Dst: S32OVERFLOW
      Src: /src/pcre2/src/pcre2test.c:3944,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3953,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3971,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:3974,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3977,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:3981,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:3992,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:3996,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4004,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4017,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4025,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 270
    argCount: 4
    argNames:
    - p
    - ctx
    - pctl
    - dctl
    argTypes:
    - uint8_t*
    - int
    - patctl*
    - datctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4027
      start: 3659
    functionDepth: 2
    functionLinenumber: 3659
    functionLinenumberEnd: 4027
    functionName: decode_modifiers
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - scan_modifiers
    - memcpy
    - strncmpic
    - check_modifier
    - strlen
    - isdigit
    - isspace
    - U32OVERFLOW
    - strtol
    - strchr
    - strtoul
    - fprintf
    - S32OVERFLOW
    linkageType: ''
    returnType: BOOL
    signature: BOOL decode_modifiers(uint8_t *p, int ctx, patctl *pctl, datctl *dctl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PCRE2_PATTERN_INFO
      Src: /src/pcre2/src/pcre2test.c:4049,1
    - Dst: PCRE2_PATTERN_INFO
      Src: /src/pcre2/src/pcre2test.c:4050,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4054,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4057,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:4059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - what
    - where
    - unsetok
    argTypes:
    - int
    - void*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4045
    functionDepth: 1
    functionLinenumber: 4045
    functionLinenumberEnd: 4062
    functionName: pattern_info
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 4
    functionsReached:
    - PCRE2_PATTERN_INFO
    - FLD
    - fprintf
    linkageType: ''
    returnType: int
    signature: int pattern_info(int what, void *where, BOOL unsetok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - s
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4081
      start: 4076
    functionDepth: 0
    functionLinenumber: 4076
    functionLinenumberEnd: 4081
    functionName: prmsg
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void prmsg(const char **msg, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - controls
    - controls2
    - before
    argTypes:
    - uint32_t
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4152
      start: 4102
    functionDepth: 0
    functionLinenumber: 4102
    functionLinenumberEnd: 4152
    functionName: show_controls
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_controls(uint32_t controls, uint32_t controls2, const char
      *before)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4173,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - options
    - before
    - after
    argTypes:
    - uint32_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4207
      start: 4170
    functionDepth: 0
    functionLinenumber: 4170
    functionLinenumberEnd: 4207
    functionName: show_compile_options
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_compile_options(uint32_t options, const char *before, const
      char *after)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4228,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - options
    - before
    - after
    argTypes:
    - uint32_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4238
      start: 4224
    functionDepth: 0
    functionLinenumber: 4224
    functionLinenumberEnd: 4238
    functionName: show_compile_extra_options
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void show_compile_extra_options(uint32_t options, const char *before,\n
      \ const char *after)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4249
    functionDepth: 0
    functionLinenumber: 4249
    functionLinenumberEnd: 4266
    functionName: show_match_options
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_match_options(uint32_t options)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4295,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4296,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4297,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4298,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4302,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4305
      start: 4275
    functionDepth: 2
    functionLinenumber: 4275
    functionLinenumberEnd: 4305
    functionName: show_memory_info
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - pattern_info
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_memory_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4317,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4319
      start: 4313
    functionDepth: 2
    functionLinenumber: 4313
    functionLinenumberEnd: 4319
    functionName: show_framesize
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - pattern_info
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_framesize(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCRE2_GET_ERROR_MESSAGE
      Src: /src/pcre2/src/pcre2test.c:4331,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4334,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4339,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - errorcode
    - before
    - after
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4344
      start: 4327
    functionDepth: 1
    functionLinenumber: 4327
    functionLinenumberEnd: 4344
    functionName: print_error_message
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PCRE2_GET_ERROR_MESSAGE
    linkageType: ''
    returnType: BOOL
    signature: BOOL print_error_message(int errorcode, const char *before, const char
      *after)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:4367,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4371,1
    - Dst: CODE_UNIT
      Src: /src/pcre2/src/pcre2test.c:4374,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4375,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:4376,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4384,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4386,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - cb
    - callout_data
    argTypes:
    - pcre2_callout_enumerate_block_8*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4393
      start: 4363
    functionDepth: 1
    functionLinenumber: 4363
    functionLinenumberEnd: 4393
    functionName: callout_callback
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - CODE_UNIT
    - FLD
    - PCHARSV
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int callout_callback(pcre2_callout_enumerate_block_8 *cb,\n  void
      *callout_data)"
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:4415,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4419,1
    - Dst: PCRE2_PRINTINT
      Src: /src/pcre2/src/pcre2test.c:4420,1
    - Dst: PCRE2_PATTERN_INFO
      Src: /src/pcre2/src/pcre2test.c:4436,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4441,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4455,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4469,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4485,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4486,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4487,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4488,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4489,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4490,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4491,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4492,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4493,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4494,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4495,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4496,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4497,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4498,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4499,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4500,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4501,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4505,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4508,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4511,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4514,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4517,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4520,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4524,1
    - Dst: STRLEN
      Src: /src/pcre2/src/pcre2test.c:4528,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4529,1
    - Dst: ord2utf8
      Src: /src/pcre2/src/pcre2test.c:4545,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4546,1
    - Dst: ord2utf8
      Src: /src/pcre2/src/pcre2test.c:4561,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4562,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4568,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:4573,1
    - Dst: putc
      Src: /src/pcre2/src/pcre2test.c:4576,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4580,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4584,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4588,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4596,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4597,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4598,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4600,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4601,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:4602,1
    - Dst: show_compile_options
      Src: /src/pcre2/src/pcre2test.c:4622,1
    - Dst: show_compile_options
      Src: /src/pcre2/src/pcre2test.c:4625,1
    - Dst: show_compile_options
      Src: /src/pcre2/src/pcre2test.c:4626,1
    - Dst: show_compile_extra_options
      Src: /src/pcre2/src/pcre2test.c:4631,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4633,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:4636,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4637,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:4640,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4645,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4649,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4653,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4657,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4661,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4665,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4675,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:4680,1
    - Dst: PRINTOK
      Src: /src/pcre2/src/pcre2test.c:4682,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4683,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4686,1
    - Dst: pchar
      Src: /src/pcre2/src/pcre2test.c:4687,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4688,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4695,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4702,1
    - Dst: PRINTOK
      Src: /src/pcre2/src/pcre2test.c:4705,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4707,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4712,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4717,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:4723,1
    - Dst: PRINTOK
      Src: /src/pcre2/src/pcre2test.c:4725,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4726,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4729,1
    - Dst: pchar
      Src: /src/pcre2/src/pcre2test.c:4730,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4731,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:4735,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4736,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:4740,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4741,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4745,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:4746,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4748,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4750,1
    - Dst: PCRE2_CALLOUT_ENUMERATE
      Src: /src/pcre2/src/pcre2test.c:4759,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4762,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:4763,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 200
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4770
      start: 4411
    functionDepth: 2
    functionLinenumber: 4411
    functionLinenumberEnd: 4770
    functionName: show_pattern_info
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - FLD
    - putc
    - PCRE2_CALLOUT_ENUMERATE
    - STRLEN
    - ord2utf8
    - show_compile_options
    - print_error_message
    - PCRE2_PRINTINT
    - show_compile_extra_options
    - PRINTOK
    - fprintf
    - PCRE2_PATTERN_INFO
    - pattern_info
    - PCHARSV
    - pchar
    linkageType: ''
    returnType: int
    signature: int show_pattern_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4790,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:4791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - rc
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4792
      start: 4787
    functionDepth: 2
    functionLinenumber: 4787
    functionLinenumberEnd: 4792
    functionName: serial_error
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - print_error_message
    - fprintf
    linkageType: ''
    returnType: BOOL
    signature: BOOL serial_error(int rc, const char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:4816,1
    - Dst: strlen8
      Src: /src/pcre2/src/pcre2test.c:4817,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:4818,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4822,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2test.c:4827,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4830,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2test.c:4830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - buffptr
    - mode
    - fptr
    - name
    argTypes:
    - uint8_t*
    - char*
    - FILE**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4835
      start: 4811
    functionDepth: 1
    functionLinenumber: 4811
    functionLinenumberEnd: 4835
    functionName: open_file
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - strlen8
    - fopen
    - strerror
    - isspace
    - fprintf
    linkageType: ''
    returnType: int
    signature: int open_file(uint8_t *buffptr, const char *mode, FILE **fptr, const
      char *name)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:4872,1
    - Dst: strncmp
      Src: /src/pcre2/src/pcre2test.c:4873,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:4874,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4885,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4892,1
    - Dst: decode_modifiers
      Src: /src/pcre2/src/pcre2test.c:4906,1
    - Dst: decode_modifiers
      Src: /src/pcre2/src/pcre2test.c:4914,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:4925,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:4929,1
    - Dst: strncmpic
      Src: /src/pcre2/src/pcre2test.c:4930,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:4931,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:4937,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4950,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2test.c:4953,1
    - Dst: decode_modifiers
      Src: /src/pcre2/src/pcre2test.c:4954,1
    - Dst: SET
      Src: /src/pcre2/src/pcre2test.c:4959,1
    - Dst: PCRE2_CODE_COPY_FROM_VOID
      Src: /src/pcre2/src/pcre2test.c:4963,1
    - Dst: PCRE2_JIT_COMPILE
      Src: /src/pcre2/src/pcre2test.c:4968,1
    - Dst: show_memory_info
      Src: /src/pcre2/src/pcre2test.c:4970,1
    - Dst: show_framesize
      Src: /src/pcre2/src/pcre2test.c:4971,1
    - Dst: show_pattern_info
      Src: /src/pcre2/src/pcre2test.c:4974,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:4984,1
    - Dst: open_file
      Src: /src/pcre2/src/pcre2test.c:4988,1
    - Dst: PCRE2_SERIALIZE_ENCODE
      Src: /src/pcre2/src/pcre2test.c:4991,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2test.c:4995,1
    - Dst: serial_error
      Src: /src/pcre2/src/pcre2test.c:4996,1
    - Dst: fputc
      Src: /src/pcre2/src/pcre2test.c:5006,1
    - Dst: fwrite
      Src: /src/pcre2/src/pcre2test.c:5007,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5009,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2test.c:5010,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2test.c:5014,1
    - Dst: PCRE2_SERIALIZE_FREE
      Src: /src/pcre2/src/pcre2test.c:5015,1
    - Dst: SET
      Src: /src/pcre2/src/pcre2test.c:5018,1
    - Dst: SUB1
      Src: /src/pcre2/src/pcre2test.c:5019,1
    - Dst: SET
      Src: /src/pcre2/src/pcre2test.c:5021,1
    - Dst: open_file
      Src: /src/pcre2/src/pcre2test.c:5027,1
    - Dst: fgetc
      Src: /src/pcre2/src/pcre2test.c:5031,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:5033,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5036,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2test.c:5038,1
    - Dst: fread
      Src: /src/pcre2/src/pcre2test.c:5042,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2test.c:5043,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5047,1
    - Dst: PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
      Src: /src/pcre2/src/pcre2test.c:5052,1
    - Dst: serial_error
      Src: /src/pcre2/src/pcre2test.c:5055,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5061,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5064,1
    - Dst: PCRE2_SERIALIZE_DECODE
      Src: /src/pcre2/src/pcre2test.c:5067,1
    - Dst: serial_error
      Src: /src/pcre2/src/pcre2test.c:5071,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:5077,1
    - Dst: open_file
      Src: /src/pcre2/src/pcre2test.c:5083,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:5088,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:5089,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5094,1
    - Dst: fread
      Src: /src/pcre2/src/pcre2test.c:5097,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5099,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2test.c:5103,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 172
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5108
      start: 4854
    functionDepth: 3
    functionLinenumber: 4854
    functionLinenumberEnd: 5108
    functionName: process_command
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strncmpic
    - fclose
    - PCRE2_SERIALIZE_FREE
    - fputc
    - free
    - PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
    - strlen
    - serial_error
    - PCRE2_JIT_COMPILE
    - malloc
    - PCRE2_SERIALIZE_ENCODE
    - SUB1
    - SET
    - memset
    - show_framesize
    - show_pattern_info
    - isspace
    - fread
    - PCRE2_SERIALIZE_DECODE
    - PCRE2_CODE_COPY_FROM_VOID
    - show_memory_info
    - open_file
    - decode_modifiers
    - fwrite
    - fprintf
    - PCRE2_CONFIG
    - fgetc
    linkageType: ''
    returnType: int
    signature: int process_command(void)
  - BBCount: 122
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5146,1
    - Dst: PATCTXCPY
      Src: /src/pcre2/src/pcre2test.c:5153,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:5154,1
    - Dst: extend_inputline
      Src: /src/pcre2/src/pcre2test.c:5167,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5169,1
    - Dst: INTERACTIVE
      Src: /src/pcre2/src/pcre2test.c:5172,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5172,1
    - Dst: decode_modifiers
      Src: /src/pcre2/src/pcre2test.c:5188,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5202,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5207,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5217,1
    - Dst: show_controls
      Src: /src/pcre2/src/pcre2test.c:5229,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5230,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:5255,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5268,1
    - Dst: isxdigit
      Src: /src/pcre2/src/pcre2test.c:5281,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5283,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5289,1
    - Dst: isxdigit
      Src: /src/pcre2/src/pcre2test.c:5293,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5295,1
    - Dst: toupper
      Src: /src/pcre2/src/pcre2test.c:5299,1
    - Dst: toupper
      Src: /src/pcre2/src/pcre2test.c:5300,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:5301,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:5302,1
    - Dst: strtoul
      Src: /src/pcre2/src/pcre2test.c:5338,1
    - Dst: U32OVERFLOW
      Src: /src/pcre2/src/pcre2test.c:5339,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5341,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5351,1
    - Dst: expand_input_buffers
      Src: /src/pcre2/src/pcre2test.c:5373,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:5381,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5390,1
    - Dst: strncpy
      Src: /src/pcre2/src/pcre2test.c:5397,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5406,1
    - Dst: setlocale
      Src: /src/pcre2/src/pcre2test.c:5409,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5411,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:5414,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2test.c:5416,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:5417,1
    - Dst: PCRE2_MAKETABLES
      Src: /src/pcre2/src/pcre2test.c:5418,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5432,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5440,1
    - Dst: PCRE2_SET_CHARACTER_TABLES
      Src: /src/pcre2/src/pcre2test.c:5444,1
    - Dst: PCRE2_SET_COMPILE_RECURSION_GUARD
      Src: /src/pcre2/src/pcre2test.c:5450,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5467,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:5474,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:5475,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:5476,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:5477,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:5478,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:5479,1
    - Dst: show_compile_options
      Src: /src/pcre2/src/pcre2test.c:5483,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:5488,1
    - Dst: show_compile_extra_options
      Src: /src/pcre2/src/pcre2test.c:5491,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:5492,1
    - Dst: show_controls
      Src: /src/pcre2/src/pcre2test.c:5500,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:5505,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:5506,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:5507,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:5508,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:5509,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5511,1
    - Dst: regcomp
      Src: /src/pcre2/src/pcre2test.c:5530,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:5545,1
    - Dst: regerror
      Src: /src/pcre2/src/pcre2test.c:5546,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5553,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5556,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2test.c:5557,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5558,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5576,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5596,1
    - Dst: show_controls
      Src: /src/pcre2/src/pcre2test.c:5602,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5605,1
    - Dst: show_controls
      Src: /src/pcre2/src/pcre2test.c:5610,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5613,1
    - Dst: to16
      Src: /src/pcre2/src/pcre2test.c:5622,1
    - Dst: to32
      Src: /src/pcre2/src/pcre2test.c:5626,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5632,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5637,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5642,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:5665,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5668,1
    - Dst: CONCTXCPY
      Src: /src/pcre2/src/pcre2test.c:5678,1
    - Dst: PCRE2_SET_GLOB_ESCAPE
      Src: /src/pcre2/src/pcre2test.c:5684,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5687,1
    - Dst: PCRE2_SET_GLOB_SEPARATOR
      Src: /src/pcre2/src/pcre2test.c:5696,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5699,1
    - Dst: PCRE2_PATTERN_CONVERT
      Src: /src/pcre2/src/pcre2test.c:5706,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5711,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:5713,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:5720,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5721,1
    - Dst: CONVERT_COPY
      Src: /src/pcre2/src/pcre2test.c:5723,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:5730,1
    - Dst: PCRE2_CONVERTED_PATTERN_FREE
      Src: /src/pcre2/src/pcre2test.c:5732,1
    - Dst: VALGRIND_MAKE_MEM_NOACCESS
      Src: /src/pcre2/src/pcre2test.c:5755,1
    - Dst: VALGRIND_MAKE_MEM_NOACCESS
      Src: /src/pcre2/src/pcre2test.c:5762,1
    - Dst: VALGRIND_MAKE_MEM_NOACCESS
      Src: /src/pcre2/src/pcre2test.c:5769,1
    - Dst: SETFLD
      Src: /src/pcre2/src/pcre2test.c:5783,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:5790,1
    - Dst: clock
      Src: /src/pcre2/src/pcre2test.c:5805,1
    - Dst: PCRE2_COMPILE
      Src: /src/pcre2/src/pcre2test.c:5806,1
    - Dst: clock
      Src: /src/pcre2/src/pcre2test.c:5809,1
    - Dst: TEST
      Src: /src/pcre2/src/pcre2test.c:5810,1
    - Dst: SUB1
      Src: /src/pcre2/src/pcre2test.c:5811,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5814,1
    - Dst: PCRE2_COMPILE
      Src: /src/pcre2/src/pcre2test.c:5821,1
    - Dst: TEST
      Src: /src/pcre2/src/pcre2test.c:5828,1
    - Dst: SUB1
      Src: /src/pcre2/src/pcre2test.c:5838,1
    - Dst: PCRE2_COMPILE
      Src: /src/pcre2/src/pcre2test.c:5839,1
    - Dst: clock
      Src: /src/pcre2/src/pcre2test.c:5842,1
    - Dst: PCRE2_JIT_COMPILE
      Src: /src/pcre2/src/pcre2test.c:5843,1
    - Dst: clock
      Src: /src/pcre2/src/pcre2test.c:5844,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5847,1
    - Dst: PCRE2_JIT_COMPILE
      Src: /src/pcre2/src/pcre2test.c:5853,1
    - Dst: VALGRIND_MAKE_MEM_UNDEFINED
      Src: /src/pcre2/src/pcre2test.c:5866,1
    - Dst: VALGRIND_MAKE_MEM_UNDEFINED
      Src: /src/pcre2/src/pcre2test.c:5873,1
    - Dst: VALGRIND_MAKE_MEM_UNDEFINED
      Src: /src/pcre2/src/pcre2test.c:5879,1
    - Dst: TEST
      Src: /src/pcre2/src/pcre2test.c:5887,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5889,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:5891,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:5901,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5903,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:5911,1
    - Dst: pattern_info
      Src: /src/pcre2/src/pcre2test.c:5916,1
    - Dst: SETFLD
      Src: /src/pcre2/src/pcre2test.c:5924,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:5924,1
    - Dst: show_memory_info
      Src: /src/pcre2/src/pcre2test.c:5929,1
    - Dst: show_framesize
      Src: /src/pcre2/src/pcre2test.c:5930,1
    - Dst: show_pattern_info
      Src: /src/pcre2/src/pcre2test.c:5933,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5944,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:5947,1
    - Dst: SET
      Src: /src/pcre2/src/pcre2test.c:5948,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:5959,1
    - Dst: PCRE2_CODE_COPY_TO_VOID
      Src: /src/pcre2/src/pcre2test.c:5964,1
    - Dst: PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
      Src: /src/pcre2/src/pcre2test.c:5968,1
    CyclomaticComplexity: 157
    EdgeCount: 157
    ICount: 449
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5973
      start: 5128
    functionDepth: 3
    functionLinenumber: 5128
    functionLinenumberEnd: 5973
    functionName: process_pattern
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - PCRE2_CODE_COPY_TO_VOID
    - FLD
    - PCRE2_MAKETABLES
    - fprintf
    - PCRE2_SET_CHARACTER_TABLES
    - show_memory_info
    - memcmp
    - free
    - PCRE2_COMPILE
    - extend_inputline
    - VALGRIND_MAKE_MEM_UNDEFINED
    - isdigit
    - print_error_message
    - PCRE2_SET_GLOB_SEPARATOR
    - PCRE2_JIT_COMPILE
    - strcmp
    - malloc
    - regerror
    - SUB1
    - strcpy
    - TEST
    - SET
    - regcomp
    - to16
    - show_framesize
    - strncpy
    - show_pattern_info
    - isspace
    - show_controls
    - PCRE2_PATTERN_CONVERT
    - PCRE2_CONVERTED_PATTERN_FREE
    - clock
    - CONCTXCPY
    - PCHARSV
    - CONVERT_COPY
    - memcpy
    - PCRE2_SET_COMPILE_RECURSION_GUARD
    - INTERACTIVE
    - isxdigit
    - to32
    - toupper
    - decode_modifiers
    - U32OVERFLOW
    - setlocale
    - show_compile_options
    - prmsg
    - show_compile_extra_options
    - SETFLD
    - PTR
    - PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
    - strtoul
    - PATCTXCPY
    - PCRE2_SET_GLOB_ESCAPE
    - expand_input_buffers
    - VALGRIND_MAKE_MEM_NOACCESS
    - pattern_info
    linkageType: ''
    returnType: int
    signature: int process_pattern(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PCRE2_SET_MATCH_LIMIT
      Src: /src/pcre2/src/pcre2test.c:6001,1
    - Dst: PCRE2_SET_DEPTH_LIMIT
      Src: /src/pcre2/src/pcre2test.c:6002,1
    - Dst: PCRE2_SET_HEAP_LIMIT
      Src: /src/pcre2/src/pcre2test.c:6003,1
    - Dst: PCRE2_SET_HEAP_LIMIT
      Src: /src/pcre2/src/pcre2test.c:6011,1
    - Dst: PCRE2_SET_MATCH_LIMIT
      Src: /src/pcre2/src/pcre2test.c:6015,1
    - Dst: PCRE2_SET_DEPTH_LIMIT
      Src: /src/pcre2/src/pcre2test.c:6019,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:6026,1
    - Dst: PCRE2_DFA_MATCH
      Src: /src/pcre2/src/pcre2test.c:6029,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:6031,1
    - Dst: PCRE2_JIT_MATCH
      Src: /src/pcre2/src/pcre2test.c:6035,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:6036,1
    - Dst: PCRE2_MATCH
      Src: /src/pcre2/src/pcre2test.c:6041,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:6042,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6049,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6069,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6074,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - pp
    - ulen
    - errnumber
    - msg
    argTypes:
    - uint8_t*
    - PCRE2_SIZE
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6084
      start: 5993
    functionDepth: 1
    functionLinenumber: 5993
    functionLinenumberEnd: 6084
    functionName: check_match_limit
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - PCRE2_JIT_MATCH
    - PCRE2_SET_MATCH_LIMIT
    - PCRE2_DFA_MATCH
    - PTR
    - PCRE2_SET_DEPTH_LIMIT
    - PCRE2_MATCH
    - malloc
    - fprintf
    - PCRE2_SET_HEAP_LIMIT
    linkageType: ''
    returnType: int
    signature: int check_match_limit(uint8_t *pp, PCRE2_SIZE ulen, int errnumber,
      const char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:6108,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6111,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6115,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6118,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6121,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6127,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6132,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - scb
    - data_ptr
    argTypes:
    - pcre2_substitute_callout_block_8*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6137
      start: 6103
    functionDepth: 1
    functionLinenumber: 6103
    functionLinenumberEnd: 6137
    functionName: substitute_callout_function
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - FLD
    - PCHARSV
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int substitute_callout_function(pcre2_substitute_callout_block_8 *scb,\n
      \ void *data_ptr)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:6164,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6181,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6185,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6189,1
    - Dst: CODE_UNIT
      Src: /src/pcre2/src/pcre2test.c:6204,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6205,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6207,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6215,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6216,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6224,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6225,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6228,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6230,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6233,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6236,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6247,1
    - Dst: PCHARS
      Src: /src/pcre2/src/pcre2test.c:6251,1
    - Dst: PCHARS
      Src: /src/pcre2/src/pcre2test.c:6261,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6266,1
    - Dst: PCHARS
      Src: /src/pcre2/src/pcre2test.c:6271,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6273,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6282,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6283,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6287,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6288,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6293,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6294,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6298,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6299,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6303,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6306,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6309,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6311,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6321,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6324,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6325,1
    - Dst: putc
      Src: /src/pcre2/src/pcre2test.c:6326,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6338,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 100
    argCount: 2
    argNames:
    - cb
    - callout_data_ptr
    argTypes:
    - pcre2_callout_block_8*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6356
      start: 6158
    functionDepth: 1
    functionLinenumber: 6158
    functionLinenumberEnd: 6356
    functionName: callout_function
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - FLD
    - putc
    - PCHARS
    - fprintf
    - CODE_UNIT
    - PCHARSV
    linkageType: ''
    returnType: int
    signature: int callout_function(pcre2_callout_block_8 *cb, void *callout_data_ptr)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PCRE2_SUBSTRING_COPY_BYNUMBER
      Src: /src/pcre2/src/pcre2test.c:6389,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6392,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:6393,1
    - Dst: PCRE2_SUBSTRING_LENGTH_BYNUMBER
      Src: /src/pcre2/src/pcre2test.c:6397,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6400,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:6401,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6405,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6408,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6409,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6410,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:6423,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2test.c:6430,1
    - Dst: to16
      Src: /src/pcre2/src/pcre2test.c:6433,1
    - Dst: to32
      Src: /src/pcre2/src/pcre2test.c:6436,1
    - Dst: PCRE2_SUBSTRING_NUMBER_FROM_NAME
      Src: /src/pcre2/src/pcre2test.c:6439,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6441,1
    - Dst: PCRE2_SUBSTRING_COPY_BYNAME
      Src: /src/pcre2/src/pcre2test.c:6444,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6447,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:6448,1
    - Dst: PCRE2_SUBSTRING_LENGTH_BYNAME
      Src: /src/pcre2/src/pcre2test.c:6452,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6455,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:6456,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6460,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6463,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6464,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6465,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6466,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6467,1
    - Dst: PCRE2_SUBSTRING_GET_BYNUMBER
      Src: /src/pcre2/src/pcre2test.c:6480,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6483,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:6484,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6488,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6489,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6490,1
    - Dst: PCRE2_SUBSTRING_FREE
      Src: /src/pcre2/src/pcre2test.c:6491,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:6504,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2test.c:6511,1
    - Dst: to16
      Src: /src/pcre2/src/pcre2test.c:6514,1
    - Dst: to32
      Src: /src/pcre2/src/pcre2test.c:6517,1
    - Dst: PCRE2_SUBSTRING_NUMBER_FROM_NAME
      Src: /src/pcre2/src/pcre2test.c:6520,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6522,1
    - Dst: PCRE2_SUBSTRING_GET_BYNAME
      Src: /src/pcre2/src/pcre2test.c:6524,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6527,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:6528,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6532,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6533,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6534,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6535,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6536,1
    - Dst: PCRE2_SUBSTRING_FREE
      Src: /src/pcre2/src/pcre2test.c:6537,1
    - Dst: PCRE2_SUBSTRING_LIST_GET
      Src: /src/pcre2/src/pcre2test.c:6549,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6552,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:6553,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6559,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:6560,1
    - Dst: putc
      Src: /src/pcre2/src/pcre2test.c:6561,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6564,1
    - Dst: PCRE2_SUBSTRING_LIST_FREE
      Src: /src/pcre2/src/pcre2test.c:6565,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 121
    argCount: 2
    argNames:
    - utf
    - capcount
    argTypes:
    - BOOL
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6570
      start: 6374
    functionDepth: 2
    functionLinenumber: 6374
    functionLinenumberEnd: 6570
    functionName: copy_and_get
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - PCRE2_SUBSTRING_GET_BYNAME
    - PCRE2_SUBSTRING_LIST_FREE
    - PCRE2_SUBSTRING_LENGTH_BYNUMBER
    - to16
    - putc
    - strlen
    - to32
    - PCRE2_SUBSTRING_GET_BYNUMBER
    - print_error_message
    - PCRE2_SUBSTRING_LENGTH_BYNAME
    - PCRE2_SUBSTRING_LIST_GET
    - PCRE2_SUBSTRING_NUMBER_FROM_NAME
    - PCRE2_SUBSTRING_COPY_BYNUMBER
    - fprintf
    - PCRE2_SUBSTRING_COPY_BYNAME
    - strcpy
    - PCRE2_SUBSTRING_FREE
    - PCHARSV
    linkageType: ''
    returnType: BOOL
    signature: BOOL copy_and_get(BOOL utf, int capcount)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6598,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6600,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6602,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ovector
    - oveccount
    argTypes:
    - PCRE2_SIZE*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6607
      start: 6589
    functionDepth: 0
    functionLinenumber: 6589
    functionLinenumberEnd: 6607
    functionName: show_ovector
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_ovector(PCRE2_SIZE *ovector, uint32_t oveccount)
  - BBCount: 205
    BranchProfiles: []
    Callsites:
    - Dst: DATCTXCPY
      Src: /src/pcre2/src/pcre2test.c:6658,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:6659,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2test.c:6662,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:6675,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:6677,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:6681,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:6682,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:6685,1
    - Dst: utf82ord
      Src: /src/pcre2/src/pcre2test.c:6695,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6698,1
    - Dst: VALGRIND_MAKE_MEM_UNDEFINED
      Src: /src/pcre2/src/pcre2test.c:6708,1
    - Dst: realloc
      Src: /src/pcre2/src/pcre2test.c:6720,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6723,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:6724,1
    - Dst: SETCASTPTR
      Src: /src/pcre2/src/pcre2test.c:6727,1
    - Dst: CAST8VAR
      Src: /src/pcre2/src/pcre2test.c:6745,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6750,1
    - Dst: strtol
      Src: /src/pcre2/src/pcre2test.c:6754,1
    - Dst: S32OVERFLOW
      Src: /src/pcre2/src/pcre2test.c:6755,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6757,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6764,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6771,1
    - Dst: CAST8VAR
      Src: /src/pcre2/src/pcre2test.c:6775,1
    - Dst: realloc
      Src: /src/pcre2/src/pcre2test.c:6781,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6784,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:6785,1
    - Dst: SETCASTPTR
      Src: /src/pcre2/src/pcre2test.c:6787,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2test.c:6793,1
    - Dst: CAST8VAR
      Src: /src/pcre2/src/pcre2test.c:6793,1
    - Dst: SETPLUS
      Src: /src/pcre2/src/pcre2test.c:6794,1
    - Dst: HASUTF8EXTRALEN
      Src: /src/pcre2/src/pcre2test.c:6813,1
    - Dst: GETUTF8INC
      Src: /src/pcre2/src/pcre2test.c:6813,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:6834,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:6843,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6846,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6851,1
    - Dst: isxdigit
      Src: /src/pcre2/src/pcre2test.c:6866,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6869,1
    - Dst: tolower
      Src: /src/pcre2/src/pcre2test.c:6871,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:6871,1
    - Dst: isxdigit
      Src: /src/pcre2/src/pcre2test.c:6887,1
    - Dst: tolower
      Src: /src/pcre2/src/pcre2test.c:6889,1
    - Dst: isdigit
      Src: /src/pcre2/src/pcre2test.c:6889,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6911,1
    - Dst: CAST8VAR
      Src: /src/pcre2/src/pcre2test.c:6914,1
    - Dst: isalnum
      Src: /src/pcre2/src/pcre2test.c:6918,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6920,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6937,1
    - Dst: ord2utf8
      Src: /src/pcre2/src/pcre2test.c:6941,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6947,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6949,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6963,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6980,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:6982,1
    - Dst: SET
      Src: /src/pcre2/src/pcre2test.c:6999,1
    - Dst: CASTVAR
      Src: /src/pcre2/src/pcre2test.c:7000,1
    - Dst: decode_modifiers
      Src: /src/pcre2/src/pcre2test.c:7006,1
    - Dst: show_controls
      Src: /src/pcre2/src/pcre2test.c:7022,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7023,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7033,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7038,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7046,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2test.c:7062,1
    - Dst: VALGRIND_MAKE_MEM_NOACCESS
      Src: /src/pcre2/src/pcre2test.c:7064,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:7080,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:7082,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:7084,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:7086,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:7087,1
    - Dst: prmsg
      Src: /src/pcre2/src/pcre2test.c:7088,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7092,1
    - Dst: show_match_options
      Src: /src/pcre2/src/pcre2test.c:7093,1
    - Dst: show_controls
      Src: /src/pcre2/src/pcre2test.c:7099,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7104,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:7108,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7111,1
    - Dst: regexec
      Src: /src/pcre2/src/pcre2test.c:7129,1
    - Dst: regerror
      Src: /src/pcre2/src/pcre2test.c:7132,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7133,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7136,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7138,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7150,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7156,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7159,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:7160,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7161,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7166,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:7169,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7170,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:7174,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7183,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:7189,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7191,1
    - Dst: PTR
      Src: /src/pcre2/src/pcre2test.c:7204,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7213,1
    - Dst: PCRE2_JIT_STACK_FREE
      Src: /src/pcre2/src/pcre2test.c:7222,1
    - Dst: PCRE2_JIT_STACK_CREATE
      Src: /src/pcre2/src/pcre2test.c:7223,1
    - Dst: PCRE2_JIT_STACK_ASSIGN
      Src: /src/pcre2/src/pcre2test.c:7226,1
    - Dst: PCRE2_JIT_STACK_ASSIGN
      Src: /src/pcre2/src/pcre2test.c:7233,1
    - Dst: PCRE2_JIT_STACK_FREE
      Src: /src/pcre2/src/pcre2test.c:7234,1
    - Dst: PCRE2_JIT_STACK_ASSIGN
      Src: /src/pcre2/src/pcre2test.c:7244,1
    - Dst: PCRE2_MATCH_DATA_FREE
      Src: /src/pcre2/src/pcre2test.c:7252,1
    - Dst: PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
      Src: /src/pcre2/src/pcre2test.c:7253,1
    - Dst: PCRE2_GET_OVECTOR_COUNT
      Src: /src/pcre2/src/pcre2test.c:7254,1
    - Dst: SETFLD
      Src: /src/pcre2/src/pcre2test.c:7258,1
    - Dst: PCRE2_MATCH_DATA_FREE
      Src: /src/pcre2/src/pcre2test.c:7263,1
    - Dst: PCRE2_MATCH_DATA_CREATE
      Src: /src/pcre2/src/pcre2test.c:7264,1
    - Dst: CASTVAR
      Src: /src/pcre2/src/pcre2test.c:7267,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7269,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:7275,1
    - Dst: PCRE2_GET_OVECTOR_COUNT
      Src: /src/pcre2/src/pcre2test.c:7276,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7282,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7317,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7320,1
    - Dst: PCRE2_MATCH
      Src: /src/pcre2/src/pcre2test.c:7331,1
    - Dst: SETCASTPTR
      Src: /src/pcre2/src/pcre2test.c:7351,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7364,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7369,1
    - Dst: valid_utf
      Src: /src/pcre2/src/pcre2test.c:7383,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:7383,1
    - Dst: HASUTF8EXTRALEN
      Src: /src/pcre2/src/pcre2test.c:7407,1
    - Dst: GETUTF8INC
      Src: /src/pcre2/src/pcre2test.c:7407,1
    - Dst: ord2utf8
      Src: /src/pcre2/src/pcre2test.c:7410,1
    - Dst: SET
      Src: /src/pcre2/src/pcre2test.c:7431,1
    - Dst: PCRE2_SET_SUBSTITUTE_CALLOUT
      Src: /src/pcre2/src/pcre2test.c:7439,1
    - Dst: PCRE2_SET_SUBSTITUTE_CALLOUT
      Src: /src/pcre2/src/pcre2test.c:7443,1
    - Dst: PCRE2_SUBSTITUTE
      Src: /src/pcre2/src/pcre2test.c:7446,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7452,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7454,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7455,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:7456,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7459,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7463,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:7464,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7467,1
    - Dst: show_ovector
      Src: /src/pcre2/src/pcre2test.c:7473,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7510,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:7514,1
    - Dst: clock
      Src: /src/pcre2/src/pcre2test.c:7515,1
    - Dst: PCRE2_DFA_MATCH
      Src: /src/pcre2/src/pcre2test.c:7518,1
    - Dst: clock
      Src: /src/pcre2/src/pcre2test.c:7526,1
    - Dst: PCRE2_JIT_MATCH
      Src: /src/pcre2/src/pcre2test.c:7529,1
    - Dst: clock
      Src: /src/pcre2/src/pcre2test.c:7537,1
    - Dst: PCRE2_MATCH
      Src: /src/pcre2/src/pcre2test.c:7540,1
    - Dst: clock
      Src: /src/pcre2/src/pcre2test.c:7545,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7546,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:7559,1
    - Dst: check_match_limit
      Src: /src/pcre2/src/pcre2test.c:7562,1
    - Dst: check_match_limit
      Src: /src/pcre2/src/pcre2test.c:7565,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:7568,1
    - Dst: check_match_limit
      Src: /src/pcre2/src/pcre2test.c:7572,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7578,1
    - Dst: PCRE2_SET_CALLOUT
      Src: /src/pcre2/src/pcre2test.c:7590,1
    - Dst: PCRE2_SET_CALLOUT
      Src: /src/pcre2/src/pcre2test.c:7598,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:7606,1
    - Dst: PCRE2_DFA_MATCH
      Src: /src/pcre2/src/pcre2test.c:7609,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7614,1
    - Dst: PCRE2_JIT_MATCH
      Src: /src/pcre2/src/pcre2test.c:7621,1
    - Dst: PCRE2_MATCH
      Src: /src/pcre2/src/pcre2test.c:7624,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7628,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7643,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7649,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:7660,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7661,1
    - Dst: CASTFLD
      Src: /src/pcre2/src/pcre2test.c:7664,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7665,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7691,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7693,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7725,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7729,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7735,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7749,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7751,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:7771,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:7772,1
    - Dst: PCHARS
      Src: /src/pcre2/src/pcre2test.c:7779,1
    - Dst: PCHARS
      Src: /src/pcre2/src/pcre2test.c:7780,1
    - Dst: PCHARS
      Src: /src/pcre2/src/pcre2test.c:7781,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7783,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7784,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7785,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7786,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7787,1
    - Dst: PCRE2_GET_STARTCHAR
      Src: /src/pcre2/src/pcre2test.c:7797,1
    - Dst: PCHARS
      Src: /src/pcre2/src/pcre2test.c:7798,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:7799,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7801,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7804,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7805,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:7813,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7815,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:7823,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7826,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7834,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:7835,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7836,1
    - Dst: TESTFLD
      Src: /src/pcre2/src/pcre2test.c:7843,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7845,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7847,1
    - Dst: copy_and_get
      Src: /src/pcre2/src/pcre2test.c:7852,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:7869,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7873,1
    - Dst: TESTFLD
      Src: /src/pcre2/src/pcre2test.c:7875,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7877,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7882,1
    - Dst: PCHARS
      Src: /src/pcre2/src/pcre2test.c:7885,1
    - Dst: PCHARSV
      Src: /src/pcre2/src/pcre2test.c:7886,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7889,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7890,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7895,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7896,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7897,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7901,1
    - Dst: copy_and_get
      Src: /src/pcre2/src/pcre2test.c:7906,1
    - Dst: show_ovector
      Src: /src/pcre2/src/pcre2test.c:7911,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:7933,1
    - Dst: CODE_UNIT
      Src: /src/pcre2/src/pcre2test.c:7940,1
    - Dst: CODE_UNIT
      Src: /src/pcre2/src/pcre2test.c:7941,1
    - Dst: SETFLDVEC
      Src: /src/pcre2/src/pcre2test.c:7958,1
    - Dst: SETFLDVEC
      Src: /src/pcre2/src/pcre2test.c:7959,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7972,1
    - Dst: TESTFLD
      Src: /src/pcre2/src/pcre2test.c:7974,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7976,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7980,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7981,1
    - Dst: show_ovector
      Src: /src/pcre2/src/pcre2test.c:7986,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7991,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:7995,1
    - Dst: print_error_message
      Src: /src/pcre2/src/pcre2test.c:7996,1
    - Dst: PCRE2_GET_STARTCHAR
      Src: /src/pcre2/src/pcre2test.c:8001,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8002,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8004,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:8020,1
    - Dst: FLD
      Src: /src/pcre2/src/pcre2test.c:8021,1
    - Dst: PCRE2_GET_STARTCHAR
      Src: /src/pcre2/src/pcre2test.c:8056,1
    CyclomaticComplexity: 314
    EdgeCount: 314
    ICount: 780
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8106
      start: 6623
    functionDepth: 3
    functionLinenumber: 6623
    functionLinenumberEnd: 8106
    functionName: process_data
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - PCRE2_SUBSTITUTE
    - FLD
    - TESTFLD
    - SETFLDVEC
    - ord2utf8
    - PCRE2_MATCH_DATA_CREATE
    - CASTVAR
    - copy_and_get
    - valid_utf
    - PCRE2_JIT_STACK_FREE
    - CASTFLD
    - free
    - PCRE2_SET_CALLOUT
    - PCRE2_MATCH_DATA_FREE
    - tolower
    - check_match_limit
    - strlen
    - PCRE2_GET_STARTCHAR
    - VALGRIND_MAKE_MEM_UNDEFINED
    - isdigit
    - PCRE2_DFA_MATCH
    - HASUTF8EXTRALEN
    - print_error_message
    - utf82ord
    - PCRE2_GET_OVECTOR_COUNT
    - PCRE2_MATCH
    - malloc
    - regerror
    - CODE_UNIT
    - SETPLUS
    - strcpy
    - PCRE2_JIT_STACK_CREATE
    - SET
    - CAST8VAR
    - isspace
    - show_controls
    - DATCTXCPY
    - PCRE2_SET_SUBSTITUTE_CALLOUT
    - PCRE2_JIT_STACK_ASSIGN
    - clock
    - GETUTF8INC
    - PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
    - regexec
    - PCHARSV
    - memmove
    - memcpy
    - exit
    - PCRE2_JIT_MATCH
    - isxdigit
    - SETCASTPTR
    - isalnum
    - decode_modifiers
    - PTR
    - strtol
    - prmsg
    - SETFLD
    - VALGRIND_MAKE_MEM_NOACCESS
    - show_ovector
    - fprintf
    - PCHARS
    - show_match_options
    - S32OVERFLOW
    - realloc
    linkageType: ''
    returnType: int
    signature: int process_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8119,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8120,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8122
      start: 8115
    functionDepth: 0
    functionLinenumber: 8115
    functionLinenumberEnd: 8122
    functionName: print_version
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_version(FILE *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8134,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8136
      start: 8130
    functionDepth: 0
    functionLinenumber: 8130
    functionLinenumberEnd: 8136
    functionName: print_unicode_version
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_unicode_version(FILE *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8149
      start: 8144
    functionDepth: 0
    functionLinenumber: 8144
    functionLinenumberEnd: 8149
    functionName: print_jit_target
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_jit_target(FILE *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8168,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8170,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - optval
    - isc
    argTypes:
    - uint32_t
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8173
      start: 8165
    functionDepth: 0
    functionLinenumber: 8165
    functionLinenumberEnd: 8173
    functionName: print_newline_config
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_newline_config(uint32_t optval, BOOL isc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8184,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8185,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8187,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8189,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8191,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8193,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8196,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8199,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8201,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8202,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8203,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8204,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8205,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8206,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8207,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8208,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8209,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8210,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8211,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8212,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8213,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8214,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8215,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8216,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8217,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8218,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8219,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8220,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8221,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8222,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8223,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8224,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8225,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8226,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8227,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8228,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8229,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8230,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8231,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8232,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8233,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8234,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8236
      start: 8181
    functionDepth: 0
    functionLinenumber: 8181
    functionLinenumberEnd: 8236
    functionName: usage
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8263,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8267,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8274,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8275,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8280,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8285,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8289,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8290,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8294,1
    - Dst: print_newline_config
      Src: /src/pcre2/src/pcre2test.c:8295,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2test.c:8309,1
    - Dst: vms_setsymbol
      Src: /src/pcre2/src/pcre2test.c:8311,1
    - Dst: $DESCRIPTOR
      Src: /src/pcre2/src/pcre2test.c:8320,1
    - Dst: $DESCRIPTOR
      Src: /src/pcre2/src/pcre2test.c:8321,1
    - Dst: strcpy
      Src: /src/pcre2/src/pcre2test.c:8323,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:8324,1
    - Dst: sprintf
      Src: /src/pcre2/src/pcre2test.c:8325,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:8326,1
    - Dst: lib$set_symbol
      Src: /src/pcre2/src/pcre2test.c:8327,1
    - Dst: print_version
      Src: /src/pcre2/src/pcre2test.c:8336,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8337,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8340,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8342,1
    - Dst: pcrz_cpversion
      Src: /src/pcre2/src/pcre2test.c:8342,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8346,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8347,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8348,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8349,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8352,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8355,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8358,1
    - Dst: print_unicode_version
      Src: /src/pcre2/src/pcre2test.c:8359,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8360,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8362,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8364,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8367,1
    - Dst: print_jit_target
      Src: /src/pcre2/src/pcre2test.c:8368,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8369,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8373,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8376,1
    - Dst: print_newline_config
      Src: /src/pcre2/src/pcre2test.c:8377,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8378,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8379,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8382,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8383,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8384,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8385,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8386,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8387,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8388,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8389,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8390,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8391,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8392,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8393,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8396,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8398,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8400,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 95
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8404
      start: 8253
    functionDepth: 1
    functionLinenumber: 8253
    functionLinenumberEnd: 8404
    functionName: c_option
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - $DESCRIPTOR
    - lib$set_symbol
    - strlen
    - pcrz_cpversion
    - print_unicode_version
    - vms_setsymbol
    - print_newline_config
    - printf
    - print_jit_target
    - strcmp
    - fprintf
    - PCRE2_CONFIG
    - strcpy
    - sprintf
    - print_version
    linkageType: ''
    returnType: int
    signature: int c_option(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - m
    - for_pattern
    argTypes:
    - modstruct*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8418
      start: 8412
    functionDepth: 0
    functionLinenumber: 8412
    functionLinenumberEnd: 8418
    functionName: display_one_modifier
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void display_one_modifier(modstruct *m, BOOL for_pattern)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8466,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8479,1
    - Dst: display_one_modifier
      Src: /src/pcre2/src/pcre2test.c:8484,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2test.c:8487,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8488,1
    - Dst: display_one_modifier
      Src: /src/pcre2/src/pcre2test.c:8489,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8491,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - for_pattern
    - title
    argTypes:
    - BOOL
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8493
      start: 8436
    functionDepth: 1
    functionLinenumber: 8436
    functionLinenumberEnd: 8493
    functionName: display_selected_modifiers
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - strlen
    - printf
    - display_one_modifier
    linkageType: ''
    returnType: void
    signature: void display_selected_modifiers(BOOL for_pattern, const char *title)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8504,1
    - Dst: display_selected_modifiers
      Src: /src/pcre2/src/pcre2test.c:8509,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8510,1
    - Dst: display_selected_modifiers
      Src: /src/pcre2/src/pcre2test.c:8511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8512
      start: 8501
    functionDepth: 2
    functionLinenumber: 8501
    functionLinenumberEnd: 8512
    functionName: display_modifiers
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 0
    functionsReached:
    - display_selected_modifiers
    - printf
    linkageType: ''
    returnType: void
    signature: void display_modifiers(void)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: PO
      Src: /src/pcre2/src/pcre2test.c:8540,1
    - Dst: DO
      Src: /src/pcre2/src/pcre2test.c:8540,1
    - Dst: PO
      Src: /src/pcre2/src/pcre2test.c:8540,1
    - Dst: DO
      Src: /src/pcre2/src/pcre2test.c:8540,1
    - Dst: PO
      Src: /src/pcre2/src/pcre2test.c:8541,1
    - Dst: DO
      Src: /src/pcre2/src/pcre2test.c:8541,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8543,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8552,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8553,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8555,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8556,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8558,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8559,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8561,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8562,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8564,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8570,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8571,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8573,1
    - Dst: PCRE2_CONFIG
      Src: /src/pcre2/src/pcre2test.c:8580,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:8586,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:8587,1
    - Dst: _setmode
      Src: /src/pcre2/src/pcre2test.c:8595,1
    - Dst: _fileno
      Src: /src/pcre2/src/pcre2test.c:8595,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2test.c:8602,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2test.c:8605,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8623,1
    - Dst: display_modifiers
      Src: /src/pcre2/src/pcre2test.c:8625,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8631,1
    - Dst: c_option
      Src: /src/pcre2/src/pcre2test.c:8633,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8642,1
    - Dst: pcre2_set_bsr_8
      Src: /src/pcre2/src/pcre2test.c:8646,1
    - Dst: pcre2_set_newline_8
      Src: /src/pcre2/src/pcre2test.c:8647,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8649,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:8651,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8655,1
    - Dst: pcre2_config_16
      Src: /src/pcre2/src/pcre2test.c:8659,1
    - Dst: pcre2_set_bsr_16
      Src: /src/pcre2/src/pcre2test.c:8660,1
    - Dst: pcre2_set_newline_16
      Src: /src/pcre2/src/pcre2test.c:8661,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8663,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:8665,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8669,1
    - Dst: pcre2_config_32
      Src: /src/pcre2/src/pcre2test.c:8673,1
    - Dst: pcre2_set_bsr_32
      Src: /src/pcre2/src/pcre2test.c:8674,1
    - Dst: pcre2_set_newline_32
      Src: /src/pcre2/src/pcre2test.c:8675,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8677,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:8679,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8685,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8689,1
    - Dst: strtoul
      Src: /src/pcre2/src/pcre2test.c:8690,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8693,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:8694,1
    - Dst: U32OVERFLOW
      Src: /src/pcre2/src/pcre2test.c:8699,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8701,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:8702,1
    - Dst: getrlimit
      Src: /src/pcre2/src/pcre2test.c:8705,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8709,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:8713,1
    - Dst: setrlimit
      Src: /src/pcre2/src/pcre2test.c:8715,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8718,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2test.c:8719,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:8720,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8729,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8734,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8735,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8736,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8737,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8738,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8739,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8739,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8740,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8746,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8753,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8753,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8754,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8754,1
    - Dst: strtoul
      Src: /src/pcre2/src/pcre2test.c:8758,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8762,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:8763,1
    - Dst: U32OVERFLOW
      Src: /src/pcre2/src/pcre2test.c:8765,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8767,1
    - Dst: exit
      Src: /src/pcre2/src/pcre2test.c:8768,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8780,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8781,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2test.c:8783,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8789,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8790,1
    - Dst: print_version
      Src: /src/pcre2/src/pcre2test.c:8792,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8799,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8805,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:8811,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8817,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8829,1
    - Dst: usage
      Src: /src/pcre2/src/pcre2test.c:8830,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:8854,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8857,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2test.c:8869,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8872,1
    - Dst: strtol
      Src: /src/pcre2/src/pcre2test.c:8884,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:8887,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8891,1
    - Dst: PCRE2_GET_ERROR_MESSAGE
      Src: /src/pcre2/src/pcre2test.c:8892,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8898,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8902,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8906,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:8914,1
    - Dst: PCRE2_SET_PARENS_NEST_LIMIT
      Src: /src/pcre2/src/pcre2test.c:8985,1
    - Dst: decode_modifiers
      Src: /src/pcre2/src/pcre2test.c:8993,1
    - Dst: decode_modifiers
      Src: /src/pcre2/src/pcre2test.c:8995,1
    - Dst: strcmp
      Src: /src/pcre2/src/pcre2test.c:9006,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2test.c:9008,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:9011,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2test.c:9011,1
    - Dst: INTERACTIVE
      Src: /src/pcre2/src/pcre2test.c:9018,1
    - Dst: using_history
      Src: /src/pcre2/src/pcre2test.c:9018,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2test.c:9023,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2test.c:9026,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2test.c:9026,1
    - Dst: print_version
      Src: /src/pcre2/src/pcre2test.c:9034,1
    - Dst: SET
      Src: /src/pcre2/src/pcre2test.c:9036,1
    - Dst: TEST
      Src: /src/pcre2/src/pcre2test.c:9047,1
    - Dst: extend_inputline
      Src: /src/pcre2/src/pcre2test.c:9052,1
    - Dst: INTERACTIVE
      Src: /src/pcre2/src/pcre2test.c:9054,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:9054,1
    - Dst: fflush
      Src: /src/pcre2/src/pcre2test.c:9055,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:9063,1
    - Dst: regfree
      Src: /src/pcre2/src/pcre2test.c:9069,1
    - Dst: TEST
      Src: /src/pcre2/src/pcre2test.c:9074,1
    - Dst: SUB1
      Src: /src/pcre2/src/pcre2test.c:9076,1
    - Dst: SET
      Src: /src/pcre2/src/pcre2test.c:9077,1
    - Dst: setlocale
      Src: /src/pcre2/src/pcre2test.c:9080,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:9086,1
    - Dst: process_data
      Src: /src/pcre2/src/pcre2test.c:9088,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:9100,1
    - Dst: process_command
      Src: /src/pcre2/src/pcre2test.c:9101,1
    - Dst: strchr
      Src: /src/pcre2/src/pcre2test.c:9104,1
    - Dst: process_pattern
      Src: /src/pcre2/src/pcre2test.c:9106,1
    - Dst: isspace
      Src: /src/pcre2/src/pcre2test.c:9112,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:9115,1
    - Dst: INTERACTIVE
      Src: /src/pcre2/src/pcre2test.c:9121,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:9124,1
    - Dst: INTERACTIVE
      Src: /src/pcre2/src/pcre2test.c:9132,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:9132,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:9137,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:9140,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:9144,1
    - Dst: fprintf
      Src: /src/pcre2/src/pcre2test.c:9149,1
    - Dst: INTERACTIVE
      Src: /src/pcre2/src/pcre2test.c:9158,1
    - Dst: clear_history
      Src: /src/pcre2/src/pcre2test.c:9158,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2test.c:9161,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2test.c:9162,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:9164,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:9165,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:9166,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:9167,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:9168,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:9169,1
    - Dst: PCRE2_MATCH_DATA_FREE
      Src: /src/pcre2/src/pcre2test.c:9170,1
    - Dst: SUB1
      Src: /src/pcre2/src/pcre2test.c:9171,1
    - Dst: SET
      Src: /src/pcre2/src/pcre2test.c:9175,1
    - Dst: SUB1
      Src: /src/pcre2/src/pcre2test.c:9176,1
    - Dst: PCRE2_JIT_FREE_UNUSED_MEMORY
      Src: /src/pcre2/src/pcre2test.c:9179,1
    - Dst: PCRE2_JIT_STACK_FREE
      Src: /src/pcre2/src/pcre2test.c:9182,1
    - Dst: regfree
      Src: /src/pcre2/src/pcre2test.c:9198,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:9205,1
    - Dst: free
      Src: /src/pcre2/src/pcre2test.c:9212,1
    CyclomaticComplexity: 142
    EdgeCount: 142
    ICount: 368
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9221
      start: 8520
    functionDepth: 4
    functionLinenumber: 8520
    functionLinenumberEnd: 9221
    functionName: main
    functionSourceFile: /src/pcre2/src/pcre2test.c
    functionUses: 3
    functionsReached:
    - _setmode
    - process_pattern
    - PCRE2_SET_PARENS_NEST_LIMIT
    - pcre2_set_bsr_32
    - process_command
    - PCRE2_JIT_STACK_FREE
    - pcre2_set_newline_8
    - regfree
    - fclose
    - free
    - pcre2_set_newline_16
    - getrlimit
    - PCRE2_MATCH_DATA_FREE
    - extend_inputline
    - fflush
    - display_modifiers
    - strerror
    - pcre2_set_bsr_8
    - c_option
    - PCRE2_GET_ERROR_MESSAGE
    - strchr
    - malloc
    - strcmp
    - pcre2_config_16
    - SUB1
    - memset
    - _fileno
    - SET
    - TEST
    - fopen
    - setrlimit
    - isspace
    - clear_history
    - printf
    - using_history
    - pcre2_config_32
    - pcre2_set_newline_32
    - PO
    - DO
    - process_data
    - exit
    - INTERACTIVE
    - U32OVERFLOW
    - decode_modifiers
    - setlocale
    - strtol
    - strtoul
    - pcre2_set_bsr_16
    - fprintf
    - usage
    - PCRE2_CONFIG
    - PCRE2_JIT_FREE_UNUSED_MEMORY
    - print_version
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRIV(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: strlen
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 430
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strlen(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: strncmp
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strncmp(s1,s2,m)
  - 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: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: memcmp
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memcmp(s,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: memcpy
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 143
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memcpy(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: memmove
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memmove(d,s,n)
  - 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: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: memset
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 128
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memset(s,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: memmove
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memmove(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: HASUTF8EXTRALEN
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASUTF8EXTRALEN(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: GETUTF8
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETUTF8(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - eptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 318
    functionName: GETUTF8INC
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETUTF8INC(c, eptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - eptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 355
    functionName: GETUTF8LEN
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETUTF8LEN(c, eptr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 490
    functionName: IS_NEWLINE
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NEWLINE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 504
    functionName: WAS_NEWLINE
    functionSourceFile: /src/pcre2/src/pcre2_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WAS_NEWLINE(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bcopy
      Src: /src/pcre2/src/pcre2_string_utils.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - d
    - s
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 85
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_string_utils.c
    functionUses: 51
    functionsReached:
    - bcopy
    linkageType: ''
    returnType: void
    signature: 'void *

      PRIV(memmove)(void *d, const void *s, size_t n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_string_utils.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PRIV(strcmp)(PCRE2_SPTR str1, PCRE2_SPTR str2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PCRE2_SPTR
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_string_utils.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PRIV(strcmp_c8)(PCRE2_SPTR str1, const char *str2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str1
    - str2
    - len
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SPTR
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_string_utils.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PRIV(strncmp)(PCRE2_SPTR str1, PCRE2_SPTR str2, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str1
    - str2
    - len
    argTypes:
    - PCRE2_SPTR
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_string_utils.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PRIV(strncmp_c8)(PCRE2_SPTR str1, const char *str2, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_string_utils.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_SIZE
    signature: PCRE2_SIZE PRIV(strlen)(PCRE2_SPTR str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PCRE2_UCHAR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_string_utils.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: PCRE2_SIZE
    signature: PCRE2_SIZE PRIV(strcpy_c8)(PCRE2_UCHAR *str1, const char *str2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:360,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:361,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:371,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:372,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 7
    argNames:
    - code
    - offsets
    - current_subject
    - ptr
    - mb
    - extracode
    - lengthptr
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SIZE*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - dfa_match_block*
    - PCRE2_SIZE
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 390
    functionName: do_callout
    functionSourceFile: /src/pcre2/src/pcre2_dfa_match.c
    functionUses: 1
    functionsReached:
    - PRIV
    - GET
    linkageType: ''
    returnType: int
    signature: "int do_callout(PCRE2_SPTR code, PCRE2_SIZE *offsets, PCRE2_SPTR current_subject,\n
      \ PCRE2_SPTR ptr, dfa_match_block *mb, PCRE2_SIZE extracode,\n  PCRE2_SIZE *lengthptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rws::rws
      Src: /src/pcre2/src/pcre2_dfa_match.c:420,1
    - Dst: mb::mb
      Src: /src/pcre2/src/pcre2_dfa_match.c:438,1
    - Dst: memctl::malloc
      Src: /src/pcre2/src/pcre2_dfa_match.c:438,1
    - Dst: size::size
      Src: /src/pcre2/src/pcre2_dfa_match.c:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - rwsptr
    - ovecsize
    - mb
    argTypes:
    - RWS_anchor**
    - unsigned int
    - dfa_match_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 449
    functionName: more_workspace
    functionSourceFile: /src/pcre2/src/pcre2_dfa_match.c
    functionUses: 0
    functionsReached:
    - memctl::malloc
    - mb::mb
    - rws::rws
    - size::size
    linkageType: ''
    returnType: int
    signature: int more_workspace(RWS_anchor **rwsptr, unsigned int ovecsize, dfa_match_block
      *mb)
  - 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: 489
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: ADD_ACTIVE
    functionSourceFile: /src/pcre2/src/pcre2_dfa_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ACTIVE(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 499
    functionName: ADD_ACTIVE_DATA
    functionSourceFile: /src/pcre2/src/pcre2_dfa_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ACTIVE_DATA(x,y,z)
  - 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: 508
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 508
    functionName: ADD_NEW
    functionSourceFile: /src/pcre2/src/pcre2_dfa_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_NEW(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 518
    functionName: ADD_NEW_DATA
    functionSourceFile: /src/pcre2/src/pcre2_dfa_match.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_NEW_DATA(x,y,z)
  - BBCount: 582
    BranchProfiles: []
    Callsites:
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:592,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:594,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_dfa_match.c:610,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:637,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:641,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:643,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:662,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_dfa_match.c:665,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:678,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:679,1
    - Dst: GETCHARLENTEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:728,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:763,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_dfa_match.c:811,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:873,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:876,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:876,1
    - Dst: memmove
      Src: /src/pcre2/src/pcre2_dfa_match.c:890,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:908,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:909,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:917,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:918,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:926,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:927,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:930,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:931,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:938,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:939,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:940,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:941,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:946,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:947,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:948,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:954,1
    - Dst: WAS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:961,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:962,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:971,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:977,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:982,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:994,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1006,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1014,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1019,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1023,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1034,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1037,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1047,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1061,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1062,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1072,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1077,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1078,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1088,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1097,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_dfa_match.c:1111,1
    - Dst: GETCHARTEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:1113,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_dfa_match.c:1119,1
    - Dst: FORWARDCHARTEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:1135,1
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/src/pcre2_dfa_match.c:1144,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1155,1
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_dfa_match.c:1172,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1185,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1199,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1200,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1217,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1223,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1224,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1229,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1250,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1267,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1280,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1289,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1298,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1311,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1319,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1328,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1341,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1349,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1369,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:1372,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1373,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1375,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1384,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1398,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:1406,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1407,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1409,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1425,1
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_dfa_match.c:1430,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1443,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1457,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1458,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1475,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1481,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1482,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1487,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1516,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1526,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1535,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1538,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1548,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:1565,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1576,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1590,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1613,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1623,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1646,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1666,1
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_dfa_match.c:1671,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1684,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1698,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1699,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1716,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1722,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1723,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1728,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:1757,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1776,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1786,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1788,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1806,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:1823,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1834,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1856,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1878,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1896,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:1919,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:1931,1
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_dfa_match.c:1937,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1950,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1964,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1965,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1982,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1988,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1989,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:1994,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2022,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2023,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2025,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2036,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:2047,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2051,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2052,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2054,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2065,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:2083,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2093,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2094,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2096,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2111,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2133,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2134,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2136,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2147,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2170,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2171,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2173,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2186,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2196,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2202,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2203,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2210,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2210,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2211,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:2226,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2230,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2254,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2260,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:2264,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2266,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2270,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2284,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2294,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2310,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2320,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2332,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2344,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2347,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2349,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2371,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2379,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2382,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2393,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2414,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2422,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2425,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2434,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2455,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2463,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2466,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2475,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2496,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2499,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2503,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2504,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2506,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2527,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2536,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2539,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2548,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2549,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2551,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2587,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:2588,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2602,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2610,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2618,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2627,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2634,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2642,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2650,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2651,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2654,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2656,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2663,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2665,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:2670,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2694,1
    - Dst: more_workspace
      Src: /src/pcre2/src/pcre2_dfa_match.c:2699,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2708,1
    - Dst: internal_dfa_match
      Src: /src/pcre2/src/pcre2_dfa_match.c:2710,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2726,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2734,1
    - Dst: do_callout
      Src: /src/pcre2/src/pcre2_dfa_match.c:2745,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2765,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2770,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2778,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2781,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2782,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2793,1
    - Dst: more_workspace
      Src: /src/pcre2/src/pcre2_dfa_match.c:2798,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2807,1
    - Dst: internal_dfa_match
      Src: /src/pcre2/src/pcre2_dfa_match.c:2809,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2826,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2828,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2841,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_dfa_match.c:2843,1
    - Dst: more_workspace
      Src: /src/pcre2/src/pcre2_dfa_match.c:2847,1
    - Dst: internal_dfa_match
      Src: /src/pcre2/src/pcre2_dfa_match.c:2872,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_dfa_match.c:2905,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:2910,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:2915,1
    - Dst: more_workspace
      Src: /src/pcre2/src/pcre2_dfa_match.c:2940,1
    - Dst: internal_dfa_match
      Src: /src/pcre2/src/pcre2_dfa_match.c:2961,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:2999,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:3013,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_dfa_match.c:3021,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:3023,1
    - Dst: more_workspace
      Src: /src/pcre2/src/pcre2_dfa_match.c:3039,1
    - Dst: internal_dfa_match
      Src: /src/pcre2/src/pcre2_dfa_match.c:3048,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:3068,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:3079,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3088,1
    - Dst: ADD_NEW
      Src: /src/pcre2/src/pcre2_dfa_match.c:3100,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3112,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_dfa_match.c:3122,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:3125,1
    - Dst: ADD_NEW_DATA
      Src: /src/pcre2/src/pcre2_dfa_match.c:3127,1
    - Dst: do_callout
      Src: /src/pcre2/src/pcre2_dfa_match.c:3142,1
    - Dst: ADD_ACTIVE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3146,1
    CyclomaticComplexity: 719
    EdgeCount: 719
    ICount: 1682
    argCount: 10
    argNames:
    - mb
    - this_start_code
    - current_subject
    - start_offset
    - offsets
    - offsetcount
    - workspace
    - wscount
    - rlevel
    - RWS
    argTypes:
    - dfa_match_block*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - PCRE2_SIZE
    - PCRE2_SIZE*
    - uint32_t
    - int*
    - int
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 3211
    functionName: internal_dfa_match
    functionSourceFile: /src/pcre2/src/pcre2_dfa_match.c
    functionUses: 1
    functionsReached:
    - FORWARDCHARTEST
    - UCD_CATEGORY
    - GETCHARLEN
    - TABLE_GET
    - ADD_NEW
    - do_callout
    - GET2
    - IS_NEWLINE
    - ADD_NEW_DATA
    - ACROSSCHAR
    - ADD_ACTIVE
    - PRIV
    - BACKCHAR
    - UCD_OTHERCASE
    - UCHAR21TEST
    - GETCHARTEST
    - GETCHARLENTEST
    - GET_UCD
    - WAS_NEWLINE
    - memmove
    - memcpy
    - internal_dfa_match
    - more_workspace
    - NOT_FIRSTCU
    - GET
    linkageType: ''
    returnType: int
    signature: "int internal_dfa_match(\n  dfa_match_block *mb,\n  PCRE2_SPTR this_start_code,\n
      \ PCRE2_SPTR current_subject,\n  PCRE2_SIZE start_offset,\n  PCRE2_SIZE *offsets,\n
      \ uint32_t offsetcount,\n  int *workspace,\n  int wscount,\n  uint32_t rlevel,\n
      \ int *RWS)"
  - BBCount: 85
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:3293,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:3391,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:3392,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:3393,1
    - Dst: NOT_FIRSTCU
      Src: /src/pcre2/src/pcre2_dfa_match.c:3488,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_dfa_match.c:3510,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:3529,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3533,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3536,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_dfa_match.c:3553,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3557,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3560,1
    - Dst: pcre2_match_data*::memctl::free
      Src: /src/pcre2/src/pcre2_dfa_match.c:3571,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3614,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_dfa_match.c:3617,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3622,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:3637,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:3665,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_dfa_match.c:3687,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_dfa_match.c:3702,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:3725,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_dfa_match.c:3729,1
    - Dst: WAS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3759,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_dfa_match.c:3762,1
    - Dst: WAS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3767,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:3777,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:3791,1
    - Dst: UCHAR21INCTEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:3859,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_dfa_match.c:3864,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_dfa_match.c:3867,1
    - Dst: UCHAR21INCTEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:3880,1
    - Dst: memchr
      Src: /src/pcre2/src/pcre2_dfa_match.c:3884,1
    - Dst: internal_dfa_match
      Src: /src/pcre2/src/pcre2_dfa_match.c:3916,1
    - Dst: CU2BYTES
      Src: /src/pcre2/src/pcre2_dfa_match.c:3945,1
    - Dst: pcre2_match_data*::memctl::malloc
      Src: /src/pcre2/src/pcre2_dfa_match.c:3946,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_dfa_match.c:3949,1
    - Dst: IS_NEWLINE
      Src: /src/pcre2/src/pcre2_dfa_match.c:3962,1
    - Dst: ACROSSCHAR
      Src: /src/pcre2/src/pcre2_dfa_match.c:3967,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:3976,1
    - Dst: UCHAR21TEST
      Src: /src/pcre2/src/pcre2_dfa_match.c:3978,1
    - Dst: dfa_match_block*::memctl::free
      Src: /src/pcre2/src/pcre2_dfa_match.c:3995,1
    CyclomaticComplexity: 166
    EdgeCount: 166
    ICount: 329
    argCount: 9
    argNames:
    - code
    - subject
    - length
    - start_offset
    - options
    - match_data
    - mcontext
    - workspace
    - wscount
    argTypes:
    - pcre2_code*
    - PCRE2_SPTR
    - PCRE2_SIZE
    - PCRE2_SIZE
    - uint32_t
    - pcre2_match_data*
    - pcre2_match_context*
    - int*
    - PCRE2_SIZE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3999
      start: 3239
    functionDepth: 2
    functionLinenumber: 3239
    functionLinenumberEnd: 3999
    functionName: pcre2_dfa_match
    functionSourceFile: /src/pcre2/src/pcre2_dfa_match.c
    functionUses: 0
    functionsReached:
    - memcpy
    - internal_dfa_match
    - WAS_NEWLINE
    - UCHAR21TEST
    - UCHAR21INCTEST
    - CU2BYTES
    - pcre2_match_data*::memctl::malloc
    - pcre2_match_data*::memctl::free
    - dfa_match_block*::memctl::free
    - ACROSSCHAR
    - TABLE_GET
    - NOT_FIRSTCU
    - UCD_OTHERCASE
    - PRIV
    - IS_NEWLINE
    - memchr
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: "PCRE2_EXP_DEFN pcre2_dfa_match(const pcre2_code *code, PCRE2_SPTR
      subject, PCRE2_SIZE length,\n  PCRE2_SIZE start_offset, uint32_t options, pcre2_match_data
      *match_data,\n  pcre2_match_context *mcontext, int *workspace, PCRE2_SIZE wscount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cb
    - callout_data
    argTypes:
    - pcre2_callout_block*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: callout_function
    functionSourceFile: /src/pcre2/src/pcre2_fuzzsupport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int callout_function(pcre2_callout_block *cb, void *callout_data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:80,1
    - Dst: rand
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:81,1
    - Dst: rand
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:82,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:114,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:115,1
    - Dst: pcre2_compile
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:144,1
    - Dst: pcre2_match_data_create
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:160,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:164,1
    - Dst: pcre2_match_context_create
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:172,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:176,1
    - Dst: pcre2_set_match_limit
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:180,1
    - Dst: pcre2_set_depth_limit
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:181,1
    - Dst: pcre2_set_callout
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:182,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:190,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:191,1
    - Dst: pcre2_match
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:205,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:209,1
    - Dst: pcre2_get_error_message
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:212,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:213,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:227,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:228,1
    - Dst: pcre2_dfa_match
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:241,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:246,1
    - Dst: pcre2_get_error_message
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:249,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:250,1
    - Dst: pcre2_code_free
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:258,1
    - Dst: pcre2_get_error_message
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:266,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:268,1
    - Dst: strstr
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:270,1
    - Dst: abort
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:270,1
    - Dst: pcre2_match_data_free
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:277,1
    - Dst: pcre2_match_context_free
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:278,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 73
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 281
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/pcre2/src/pcre2_fuzzsupport.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_create
    - pcre2_set_match_limit
    - pcre2_dfa_match
    - rand
    - pcre2_set_depth_limit
    - pcre2_match_data_free
    - strstr
    - pcre2_match_context_create
    - pcre2_match
    - printf
    - abort
    - srand
    - pcre2_compile
    - pcre2_get_error_message
    - pcre2_match_context_free
    - pcre2_set_callout
    - pcre2_code_free
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const unsigned char *data, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:293,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:309,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:310,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:311,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:312,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:313,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:315,1
    - Dst: memcpy
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:318,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:319,1
    - Dst: free
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:320,1
    - Dst: fopen
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:327,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:330,1
    - Dst: strerror
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:330,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:334,1
    - Dst: fseek
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:336,1
    - Dst: ftell
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:337,1
    - Dst: fseek
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:338,1
    - Dst: malloc
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:340,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:343,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:344,1
    - Dst: fread
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:348,1
    - Dst: fclose
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:349,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:352,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:355,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:356,1
    - Dst: free
      Src: /src/pcre2/src/pcre2_fuzzsupport.c:358,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 362
    functionName: main
    functionSourceFile: /src/pcre2/src/pcre2_fuzzsupport.c
    functionUses: 3
    functionsReached:
    - memcpy
    - ftell
    - fopen
    - strlen
    - strerror
    - fread
    - fseek
    - printf
    - malloc
    - free
    - fclose
    - LLVMFuzzerTestOneInput
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - allocator_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: SLJIT_MALLOC
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_MALLOC(size, allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - allocator_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: SLJIT_FREE
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_FREE(ptr, allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_memctl*::malloc
      Src: /src/pcre2/src/pcre2_jit_compile.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - allocator_data
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: pcre2_jit_malloc
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - pcre2_memctl*::malloc
    linkageType: ''
    returnType: void
    signature: void * pcre2_jit_malloc(size_t size, void *allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_memctl*::free
      Src: /src/pcre2/src/pcre2_jit_compile.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - allocator_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: pcre2_jit_free
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - pcre2_memctl*::free
    linkageType: ''
    returnType: void
    signature: void pcre2_jit_free(void *ptr, void *allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 543
    functionName: STACK
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 591
    functionName: OVECTOR
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVECTOR(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 592
    functionName: OVECTOR_PRIV
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVECTOR_PRIV(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 593
    functionName: PRIVATE_DATA
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRIVATE_DATA(cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 597
    functionName: IN_UCHARS
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_UCHARS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 601
    functionName: IN_UCHARS
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_UCHARS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 605
    functionName: IN_UCHARS
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_UCHARS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - op
    - ','
    - dst
    - ','
    - dstw
    - ','
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 614
    functionName: OP1
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP1(op, dst, dstw, src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - op
    - ','
    - dst
    - ','
    - dstw
    - ','
    - src1
    - ','
    - src1w
    - ','
    - src2
    - ','
    - src2w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 616
    functionName: OP2
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP2(op, dst, dstw, src1, src1w, src2, src2w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 618
    functionName: OP_SRC
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_SRC(op, src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 620
    functionName: LABEL
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LABEL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 622
    functionName: JUMP
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 624
    functionName: JUMPTO
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMPTO(type, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - jump
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 626
    functionName: JUMPHERE
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMPHERE(jump)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - jump
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 628
    functionName: SET_LABEL
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_LABEL(jump, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - src1
    - ','
    - src1w
    - ','
    - src2
    - ','
    - src2w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 630
    functionName: CMP
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP(type, src1, src1w, src2, src2w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - type
    - ','
    - src1
    - ','
    - src1w
    - ','
    - src2
    - ','
    - src2w
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 632
    functionName: CMPTO
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMPTO(type, src1, src1w, src2, src2w, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - op
    - ','
    - dst
    - ','
    - dstw
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 634
    functionName: OP_FLAGS
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_FLAGS(op, dst, dstw, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - dst_reg
    - ','
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 636
    functionName: CMOV
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMOV(type, dst_reg, src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - dstw
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 638
    functionName: GET_LOCAL_BASE
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LOCAL_BASE(dst, dstw, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - ptr
    - ','
    - end
    - ','
    - invalid_action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 708
    functionName: GETCHARINC_INVALID
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINC_INVALID(c, ptr, end, invalid_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - ptr
    - ','
    - start
    - ','
    - invalid_action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 771
    functionName: GETCHARBACK_INVALID
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARBACK_INVALID(c, ptr, start, invalid_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - ptr
    - ','
    - end
    - ','
    - invalid_action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 788
    functionName: GETCHARINC_INVALID
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINC_INVALID(c, ptr, end, invalid_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - ptr
    - ','
    - start
    - ','
    - invalid_action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 804
    functionName: GETCHARBACK_INVALID
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARBACK_INVALID(c, ptr, start, invalid_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - ptr
    - ','
    - end
    - ','
    - invalid_action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 817
    functionName: GETCHARINC_INVALID
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARINC_INVALID(c, ptr, end, invalid_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - ptr
    - ','
    - start
    - ','
    - invalid_action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 828
    functionName: GETCHARBACK_INVALID
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETCHARBACK_INVALID(c, ptr, start, invalid_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:834,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:835,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:836,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - cc
    argTypes:
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 839
    functionName: bracketend
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    - GET
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR bracketend(PCRE2_SPTR cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:844,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:847,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:851,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - cc
    argTypes:
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 853
    functionName: no_alternatives
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    - GET
    linkageType: ''
    returnType: int
    signature: int no_alternatives(PCRE2_SPTR cc)
  - BBCount: 170
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:869,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:961,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:1019,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1021,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1021,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:1039,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1048,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1052,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:1063,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 185
    argCount: 2
    argNames:
    - common
    - cc
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 1066
    functionName: next_opcode
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - GET_EXTRALEN
    - SLJIT_UNREACHABLE
    - HAS_EXTRALEN
    - SLJIT_UNUSED_ARG
    - PRIV
    - GET
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR next_opcode(compiler_common *common, PCRE2_SPTR cc)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1096,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1102,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1110,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1124,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1131,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1132,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1135,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:1158,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1158,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1162,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:1220,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 121
    argCount: 3
    argNames:
    - common
    - cc
    - ccend
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1068
    functionDepth: 2
    functionLinenumber: 1068
    functionLinenumberEnd: 1227
    functionName: check_opcode_types
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - next_opcode
    - GET2
    - bracketend
    - PRIV
    - GET
    linkageType: ''
    returnType: BOOL
    signature: BOOL check_opcode_types(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR
      ccend)
  - BBCount: 143
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:1250,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:1251,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1251,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:1252,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1254,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1322,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1322,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1393,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1393,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1433,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1433,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1442,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1481,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1488,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1489,1
    - Dst: detect_early_fail
      Src: /src/pcre2/src/pcre2_jit_compile.c:1492,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:1494,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:1505,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:1505,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1569,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 254
    argCount: 6
    argNames:
    - common
    - cc
    - private_data_start
    - depth
    - start
    - fast_forward_allowed
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - int*
    - sljit_s32
    - int
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1239
    functionDepth: 2
    functionLinenumber: 1239
    functionLinenumberEnd: 1574
    functionName: detect_early_fail
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 1
    functionsReached:
    - GET_EXTRALEN
    - GET2
    - HAS_EXTRALEN
    - bracketend
    - detect_early_fail
    - PRIVATE_DATA
    - SLJIT_ASSERT
    - GET
    linkageType: ''
    returnType: int
    signature: "int detect_early_fail(compiler_common *common, PCRE2_SPTR cc, int
      *private_data_start,\n   sljit_s32 depth, int start, BOOL fast_forward_allowed)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1594,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:1595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - cc
    argTypes:
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1576
    functionDepth: 1
    functionLinenumber: 1576
    functionLinenumberEnd: 1606
    functionName: get_class_iterator_size
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - GET2
    linkageType: ''
    returnType: int
    signature: int get_class_iterator_size(PCRE2_SPTR cc)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1610,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:1619,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:1624,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1633,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_jit_compile.c:1634,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:1634,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1652,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_jit_compile.c:1653,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:1653,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1661,1
    - Dst: memcmp
      Src: /src/pcre2/src/pcre2_jit_compile.c:1662,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:1662,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1677,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 56
    argCount: 2
    argNames:
    - common
    - begin
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1608
    functionDepth: 2
    functionLinenumber: 1608
    functionLinenumberEnd: 1692
    functionName: detect_repeat
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - IN_UCHARS
    - PRIVATE_DATA
    - bracketend
    - memcmp
    - GET
    linkageType: ''
    returnType: BOOL
    signature: BOOL detect_repeat(compiler_common *common, PCRE2_SPTR begin)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: detect_repeat
      Src: /src/pcre2/src/pcre2_jit_compile.c:1766,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1771,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1815,1
    - Dst: get_class_iterator_size
      Src: /src/pcre2/src/pcre2_jit_compile.c:1880,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:1885,1
    - Dst: get_class_iterator_size
      Src: /src/pcre2/src/pcre2_jit_compile.c:1886,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:1891,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:1892,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1910,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:1910,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1921,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 123
    argCount: 3
    argNames:
    - common
    - private_data_start
    - ccend
    argTypes:
    - compiler_common*
    - int*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1746
    functionDepth: 3
    functionLinenumber: 1746
    functionLinenumberEnd: 1929
    functionName: set_private_data_ptrs
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - GET_EXTRALEN
    - get_class_iterator_size
    - next_opcode
    - HAS_EXTRALEN
    - bracketend
    - detect_repeat
    - SLJIT_ASSERT
    - GET
    linkageType: ''
    returnType: void
    signature: void set_private_data_ptrs(compiler_common *common, int *private_data_start,
      PCRE2_SPTR ccend)
  - BBCount: 84
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:1943,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:1951,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:1958,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:1961,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:1966,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:1980,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:2104,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2105,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:2110,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 142
    argCount: 5
    argNames:
    - common
    - cc
    - ccend
    - recursive
    - needs_control_head
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - BOOL
    - BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 1932
    functionDepth: 2
    functionLinenumber: 1932
    functionLinenumberEnd: 2116
    functionName: get_framesize
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNLIKELY
    - SLJIT_ASSERT
    - next_opcode
    - bracketend
    linkageType: ''
    returnType: int
    signature: int get_framesize(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR
      ccend, BOOL recursive, BOOL *needs_control_head)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:2128,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2129,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:2131,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:2134,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:2136,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2139,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2144,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2147,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2147,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2147,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2148,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2148,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2148,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2150,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2150,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2161,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2164,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2164,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2165,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2165,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2167,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2167,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2177,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2177,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2177,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2178,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2178,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2178,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2180,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2180,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2186,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2186,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2187,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2187,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2189,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2189,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2195,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2195,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2196,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2196,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2198,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2198,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2211,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2211,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2212,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2212,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2214,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2214,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:2218,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2219,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2219,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2219,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2221,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2221,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2221,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2222,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2222,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2222,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2223,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2223,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2225,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2225,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:2232,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2233,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2237,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2237,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2238,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:2238,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 97
    argCount: 5
    argNames:
    - common
    - cc
    - ccend
    - stackpos
    - stacktop
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2118
    functionDepth: 2
    functionLinenumber: 2118
    functionLinenumberEnd: 2239
    functionName: init_frame
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - next_opcode
    - SLJIT_MEM1
    - bracketend
    - OP1
    - SLJIT_UNUSED_ARG
    - OVECTOR
    - STACK
    - SLJIT_ASSERT
    - GET2
    linkageType: ''
    returnType: void
    signature: void init_frame(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR
      ccend, int stackpos, int stacktop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2258,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2259,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:2259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - status
    - common
    argTypes:
    - delayed_mem_copy_status*
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2252
    functionDepth: 1
    functionLinenumber: 2252
    functionLinenumberEnd: 2265
    functionName: delayed_mem_copy_init
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - sljit_get_register_index
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void delayed_mem_copy_init(delayed_mem_copy_status *status, compiler_common
      *common)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2274,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:2279,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2280,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2283,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2283,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2285,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - status
    - load_base
    - load_offset
    - store_base
    - store_offset
    argTypes:
    - delayed_mem_copy_status*
    - int
    - sljit_sw
    - int
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2267
    functionDepth: 1
    functionLinenumber: 2267
    functionLinenumberEnd: 2290
    functionName: delayed_mem_copy_move
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - sljit_get_register_index
    - SLJIT_MEM1
    - OP1
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: "void delayed_mem_copy_move(delayed_mem_copy_status *status, int load_base,
      sljit_sw load_offset,\n  int store_base, sljit_sw store_offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2305,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2305,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:2308,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:2309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - status
    argTypes:
    - delayed_mem_copy_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2292
    functionDepth: 1
    functionLinenumber: 2292
    functionLinenumberEnd: 2314
    functionName: delayed_mem_copy_finish
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - sljit_get_register_index
    - SLJIT_MEM1
    - OP1
    linkageType: ''
    returnType: void
    signature: void delayed_mem_copy_finish(delayed_mem_copy_status *status)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2332,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2343,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2359,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2362,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2362,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2363,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2381,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2381,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:2390,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:2405,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2412,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2416,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2416,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2421,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2425,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2425,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2430,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2434,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2434,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2439,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2445,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2451,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:2460,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2464,1
    - Dst: get_class_iterator_size
      Src: /src/pcre2/src/pcre2_jit_compile.c:2465,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2473,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2497,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:2511,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2512,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2516,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 155
    argCount: 6
    argNames:
    - common
    - cc
    - ccend
    - needs_control_head
    - has_quit
    - has_accept
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - BOOL*
    - BOOL*
    - BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2318
    functionDepth: 2
    functionLinenumber: 2318
    functionLinenumberEnd: 2534
    functionName: get_recurse_data_length
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - GET_EXTRALEN
    - get_class_iterator_size
    - next_opcode
    - GET2
    - HAS_EXTRALEN
    - PRIVATE_DATA
    - SLJIT_ASSERT
    - GET
    linkageType: ''
    returnType: int
    signature: "int get_recurse_data_length(compiler_common *common, PCRE2_SPTR cc,
      PCRE2_SPTR ccend,\n  BOOL *needs_control_head, BOOL *has_quit, BOOL *has_accept)"
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2560,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2579,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:2585,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:2586,1
    - Dst: delayed_mem_copy_init
      Src: /src/pcre2/src/pcre2_jit_compile.c:2611,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2615,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2618,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2621,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2630,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2633,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2648,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2651,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2663,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2684,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2687,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2688,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2688,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2689,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2707,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:2713,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2714,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2715,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:2725,1
    - Dst: OVECTOR_PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:2728,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:2728,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:2735,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2736,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:2737,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2748,1
    - Dst: OVECTOR_PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:2749,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:2749,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:2755,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2759,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2768,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2772,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2772,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2780,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2781,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2785,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2785,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2793,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2794,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2798,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:2798,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2806,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2815,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2825,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:2835,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2839,1
    - Dst: get_class_iterator_size
      Src: /src/pcre2/src/pcre2_jit_compile.c:2840,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2844,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2849,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:2854,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2864,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2881,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:2892,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2893,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2899,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2903,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2906,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2909,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2919,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2923,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2926,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2929,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2939,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:2943,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2946,1
    - Dst: delayed_mem_copy_move
      Src: /src/pcre2/src/pcre2_jit_compile.c:2949,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 281
    argCount: 7
    argNames:
    - common
    - cc
    - ccend
    - type
    - stackptr
    - stacktop
    - has_quit
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - int
    - int
    - int
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2544
    functionDepth: 2
    functionLinenumber: 2544
    functionLinenumberEnd: 2956
    functionName: copy_recurse_data
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - GET_EXTRALEN
    - get_class_iterator_size
    - delayed_mem_copy_move
    - next_opcode
    - SLJIT_UNREACHABLE
    - HAS_EXTRALEN
    - PRIVATE_DATA
    - delayed_mem_copy_init
    - OVECTOR_PRIV
    - GET
    - OVECTOR
    - STACK
    - SLJIT_ASSERT
    - GET2
    linkageType: ''
    returnType: void
    signature: "void copy_recurse_data(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR
      ccend,\n  int type, int stackptr, int stacktop, BOOL has_quit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2780,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2776
    functionDepth: 1
    functionLinenumber: 2776
    functionLinenumberEnd: 2782
    functionName: if
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached:
    - PRIVATE_DATA
    linkageType: ''
    returnType: CASE_ITERATOR_PRIVATE_DATA_2A
    signature: CASE_ITERATOR_PRIVATE_DATA_2A if (PRIVATE_DATA(cc))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2793,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2789
    functionDepth: 1
    functionLinenumber: 2789
    functionLinenumberEnd: 2795
    functionName: if
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached:
    - PRIVATE_DATA
    linkageType: ''
    returnType: CASE_ITERATOR_PRIVATE_DATA_2B
    signature: CASE_ITERATOR_PRIVATE_DATA_2B if (PRIVATE_DATA(cc))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2802
    functionDepth: 1
    functionLinenumber: 2802
    functionLinenumberEnd: 2807
    functionName: if
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached:
    - PRIVATE_DATA
    linkageType: ''
    returnType: CASE_ITERATOR_TYPE_PRIVATE_DATA_1
    signature: CASE_ITERATOR_TYPE_PRIVATE_DATA_1 if (PRIVATE_DATA(cc))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2811
    functionDepth: 1
    functionLinenumber: 2811
    functionLinenumberEnd: 2817
    functionName: if
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached:
    - PRIVATE_DATA
    linkageType: ''
    returnType: CASE_ITERATOR_TYPE_PRIVATE_DATA_2A
    signature: CASE_ITERATOR_TYPE_PRIVATE_DATA_2A if (PRIVATE_DATA(cc))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2821
    functionDepth: 1
    functionLinenumber: 2821
    functionLinenumberEnd: 2827
    functionName: if
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached:
    - PRIVATE_DATA
    linkageType: ''
    returnType: CASE_ITERATOR_TYPE_PRIVATE_DATA_2B
    signature: CASE_ITERATOR_TYPE_PRIVATE_DATA_2B if (PRIVATE_DATA(cc))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:2965,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:2966,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:2975,1
    - Dst: set_then_offsets
      Src: /src/pcre2/src/pcre2_jit_compile.c:2982,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:2989,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 3
    argNames:
    - common
    - cc
    - current_offset
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - sljit_u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2963
    functionDepth: 2
    functionLinenumber: 2963
    functionLinenumberEnd: 2994
    functionName: set_then_offsets
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 1
    functionsReached:
    - set_then_offsets
    - GET
    - next_opcode
    - bracketend
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE set_then_offsets(compiler_common *common, PCRE2_SPTR cc,
      sljit_u8 *current_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 3003
    functionDepth: 0
    functionLinenumber: 3003
    functionLinenumberEnd: 3006
    functionName: is_powerof2
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE is_powerof2(unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - label
    argTypes:
    - jump_list*
    - struct sljit_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 3008
    functionDepth: 1
    functionLinenumber: 3008
    functionLinenumberEnd: 3017
    functionName: set_jumps
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SET_LABEL
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE set_jumps(jump_list *list, struct sljit_label *label)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sljit_alloc_memory
      Src: /src/pcre2/src/pcre2_jit_compile.c:3021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - list
    - jump
    argTypes:
    - struct sljit_compiler*
    - jump_list**
    - struct sljit_jump*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3019
    functionDepth: 1
    functionLinenumber: 3019
    functionLinenumberEnd: 3028
    functionName: add_jump
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 8
    functionsReached:
    - sljit_alloc_memory
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE add_jump(struct sljit_compiler *compiler, jump_list **list,
      struct sljit_jump *jump)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sljit_alloc_memory
      Src: /src/pcre2/src/pcre2_jit_compile.c:3033,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - common
    - start
    argTypes:
    - compiler_common*
    - struct sljit_jump*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 3030
    functionDepth: 1
    functionLinenumber: 3030
    functionLinenumberEnd: 3042
    functionName: add_stub
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - sljit_alloc_memory
    - LABEL
    linkageType: ''
    returnType: void
    signature: void add_stub(compiler_common *common, struct sljit_jump *start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3051,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3052,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3052,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3057
      start: 3044
    functionDepth: 2
    functionLinenumber: 3044
    functionLinenumberEnd: 3057
    functionName: flush_stubs
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - JUMP
    - add_jump
    - JUMPHERE
    - JUMPTO
    linkageType: ''
    returnType: void
    signature: void flush_stubs(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3063,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3064,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3059
    functionDepth: 2
    functionLinenumber: 3059
    functionLinenumberEnd: 3065
    functionName: count_match
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE count_match(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3072,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3073,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3075,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3076,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3077,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3078,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3078,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3079,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3079,1
    - Dst: add_stub
      Src: /src/pcre2/src/pcre2_jit_compile.c:3081,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - common
    - size
    argTypes:
    - compiler_common*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3082
      start: 3067
    functionDepth: 2
    functionLinenumber: 3067
    functionLinenumberEnd: 3082
    functionName: allocate_stack
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 1
    functionsReached:
    - add_stub
    - OP2
    - SLJIT_MEM1
    - OP1
    - CMP
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE allocate_stack(compiler_common *common, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3088,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - common
    - size
    argTypes:
    - compiler_common*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3084
    functionDepth: 1
    functionLinenumber: 3084
    functionLinenumberEnd: 3090
    functionName: free_stack
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 1
    functionsReached:
    - OP2
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE free_stack(compiler_common *common, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:3097,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:3097,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/pcre2_jit_compile.c:3100,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:3101,1
    - Dst: sljit_set_compiler_memory_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:3103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - common
    - size
    argTypes:
    - compiler_common*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3092
    functionDepth: 1
    functionLinenumber: 3092
    functionLinenumberEnd: 3110
    functionName: allocate_read_only_data
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_MALLOC
    - SLJIT_UNLIKELY
    - sljit_set_compiler_memory_error
    - sljit_get_compiler_error
    linkageType: ''
    returnType: sljit_uw
    signature: sljit_uw * allocate_read_only_data(compiler_common *common, sljit_uw
      size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3119,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3121,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3121,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3121,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3121,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3125,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3125,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:3125,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:3129,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3129,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3131,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3132,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3133,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:3134,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3134,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3135,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3136,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3140,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3141,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3142,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3143,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3143,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3144,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3145,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - common
    - length
    argTypes:
    - compiler_common*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3149
      start: 3112
    functionDepth: 1
    functionLinenumber: 3112
    functionLinenumberEnd: 3149
    functionName: reset_ovector
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - LABEL
    - OP2
    - SLJIT_MEM1
    - IN_UCHARS
    - sljit_emit_mem
    - SLJIT_OFFSETOF
    - OP1
    - JUMPTO
    - GET_LOCAL_BASE
    - OVECTOR
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE reset_ovector(compiler_common *common, int length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3160,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3164,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3164,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:3168,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/pcre2_jit_compile.c:3168,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3170,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3177,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3177,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3181,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3185,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3187,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3188,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3188,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3189,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3190,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3190,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3191,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3191,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3192,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3195,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3195,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3198,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3151
    functionDepth: 1
    functionLinenumber: 3151
    functionLinenumberEnd: 3199
    functionName: reset_early_fail
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - LABEL
    - OP2
    - SLJIT_MEM1
    - sljit_get_register_index
    - OP1
    - sljit_has_cpu_feature
    - CMPTO
    - GET_LOCAL_BASE
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE reset_early_fail(compiler_common *common)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3207,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3210,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3210,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:3210,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3214,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3214,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:3214,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:3218,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3218,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3220,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3221,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3222,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:3223,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3223,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3224,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3225,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3229,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3230,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3231,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3232,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3232,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3233,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3234,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3235,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3240,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3240,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3240,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3242,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3245,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3245,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3247,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3247,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3249,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3249,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3249,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3251,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3251,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3252,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3252,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3252,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - common
    - length
    argTypes:
    - compiler_common*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3253
      start: 3201
    functionDepth: 1
    functionLinenumber: 3201
    functionLinenumberEnd: 3253
    functionName: do_reset_match
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - LABEL
    - OP2
    - SLJIT_MEM1
    - sljit_emit_mem
    - SLJIT_OFFSETOF
    - OP1
    - JUMPTO
    - GET_LOCAL_BASE
    - OVECTOR
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE do_reset_match(compiler_common *common, int length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:3265,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3270,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - current
    - skip_arg
    argTypes:
    - sljit_sw*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3255
    functionDepth: 1
    functionLinenumber: 3255
    functionLinenumberEnd: 3277
    functionName: do_search_mark
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    - SLJIT_ASSERT
    - SLJIT_UNREACHABLE
    linkageType: ''
    returnType: sljit_sw
    signature: sljit_sw do_search_mark(sljit_sw *current, PCRE2_SPTR skip_arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3286,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3286,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:3286,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3287,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3287,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:3287,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3291,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3292,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3292,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3294,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3294,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3295,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3295,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3295,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3296,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3296,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3296,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3298,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3298,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3298,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3299,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3299,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3299,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3300,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3304,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3304,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3305,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3305,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3305,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3307,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3307,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3308,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3308,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3308,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3309,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3309,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3309,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3311,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3311,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3311,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3312,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3312,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:3315,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3315,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3317,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3318,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3318,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3318,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3320,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:3323,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3323,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3326,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3326,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3327,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3330,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3331,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3334,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3337,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3338,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3338,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3340,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3341,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:3346,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3346,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3348,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3349,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3352,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:3353,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3353,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3354,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3355,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3356,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3360,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3361,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:3364,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3365,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3365,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3366,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3367,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3368,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3369,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 62
    argCount: 2
    argNames:
    - common
    - topbracket
    argTypes:
    - compiler_common*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3374
      start: 3279
    functionDepth: 1
    functionLinenumber: 3279
    functionLinenumberEnd: 3374
    functionName: copy_ovector
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - SLJIT_MEM1
    - sljit_emit_mem
    - SLJIT_OFFSETOF
    - CMPTO
    - OP1
    - JUMPTO
    - SLJIT_ASSERT
    - GET_LOCAL_BASE
    - OVECTOR
    - LABEL
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE copy_ovector(compiler_common *common, int topbracket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3382,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3383,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3387,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3388,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3388,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3390,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3393,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3393,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3393,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3394,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3394,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3394,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3395,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3395,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3395,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3399,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3401,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3403,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3403,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3403,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3405,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3407,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3409,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3409,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:3409,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - common
    - quit
    argTypes:
    - compiler_common*
    - struct sljit_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3412
      start: 3376
    functionDepth: 1
    functionLinenumber: 3376
    functionLinenumberEnd: 3412
    functionName: return_with_partial_match
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - SLJIT_COMPILE_ASSERT
    - SLJIT_MEM1
    - SLJIT_OFFSETOF
    - OP1
    - JUMPTO
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE return_with_partial_match(compiler_common *common, struct
      sljit_label *quit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3423,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3423,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3426,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3427,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3427,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3428,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3432,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3432,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3433,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3433,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3436
      start: 3414
    functionDepth: 1
    functionLinenumber: 3414
    functionLinenumberEnd: 3436
    functionName: check_start_used_ptr
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - SLJIT_MEM1
    - OP1
    - CMP
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE check_start_used_ptr(compiler_common *common)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_jit_compile.c:3448,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3454,1
    - Dst: MAX_255
      Src: /src/pcre2/src/pcre2_jit_compile.c:3461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - common
    - cc
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3462
      start: 3438
    functionDepth: 1
    functionLinenumber: 3438
    functionLinenumberEnd: 3462
    functionName: char_has_othercase
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - UCD_OTHERCASE
    - GETCHAR
    - MAX_255
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE char_has_othercase(compiler_common *common, PCRE2_SPTR
      cc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3469,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:3471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - common
    - c
    argTypes:
    - compiler_common*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3472
      start: 3464
    functionDepth: 1
    functionLinenumber: 3464
    functionLinenumberEnd: 3472
    functionName: char_othercase
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - UCD_OTHERCASE
    - TABLE_GET
    linkageType: ''
    returnType: SLJIT_INLINE unsigned
    signature: SLJIT_INLINE unsigned char_othercase(compiler_common *common, unsigned
      int c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_jit_compile.c:3487,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3495,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:3500,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:3504,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3507,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3515,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:3523,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - common
    - cc
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3548
      start: 3474
    functionDepth: 1
    functionLinenumber: 3474
    functionLinenumberEnd: 3548
    functionName: char_get_othercase_bit
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - GET_EXTRALEN
    - is_powerof2
    - GETCHAR
    - TABLE_GET
    - UCD_OTHERCASE
    - SLJIT_ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int char_get_othercase_bit(compiler_common *common, PCRE2_SPTR
      cc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3556,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3562,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3562,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3564,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3564,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3567,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3567,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3571,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3573,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3573,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - common
    - force
    argTypes:
    - compiler_common*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3578
      start: 3550
    functionDepth: 2
    functionLinenumber: 3550
    functionLinenumberEnd: 3578
    functionName: check_partial
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - OP1
    - CMP
    - JUMPTO
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void check_partial(compiler_common *common, BOOL force)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3588,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3588,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3592,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3595,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3595,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3595,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3596,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3596,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3597,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3597,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3601,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3601,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3601,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3603,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3605,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3605,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - common
    - end_reached
    argTypes:
    - compiler_common*
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3580
    functionDepth: 2
    functionLinenumber: 3580
    functionLinenumberEnd: 3608
    functionName: check_str_end
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - OP1
    - CMP
    - JUMPTO
    linkageType: ''
    returnType: void
    signature: void check_str_end(compiler_common *common, jump_list **end_reached)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3617,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3617,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3622,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3624,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3624,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3624,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3626,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3626,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3626,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3630,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3630,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3631,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3631,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3636,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3638,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3638,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3640,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - common
    - backtracks
    argTypes:
    - compiler_common*
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3641
      start: 3610
    functionDepth: 2
    functionLinenumber: 3610
    functionLinenumberEnd: 3641
    functionName: detect_partial_match
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - OP1
    - CMP
    - JUMPTO
    linkageType: ''
    returnType: void
    signature: void detect_partial_match(compiler_common *common, jump_list **backtracks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3651,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3651,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3652,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3652,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3653,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3658,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3658,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3660,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3660,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3662
      start: 3643
    functionDepth: 2
    functionLinenumber: 3643
    functionLinenumberEnd: 3662
    functionName: process_partial_match
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - OP1
    - CMP
    - CMPTO
    linkageType: ''
    returnType: void
    signature: void process_partial_match(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:3668,1
    - Dst: process_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:3669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - common
    - label
    argTypes:
    - compiler_common*
    - struct sljit_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3670
      start: 3664
    functionDepth: 3
    functionLinenumber: 3664
    functionLinenumberEnd: 3670
    functionName: detect_partial_match_to
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - CMPTO
    - process_partial_match
    linkageType: ''
    returnType: void
    signature: void detect_partial_match_to(compiler_common *common, struct sljit_label
      *label)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3681,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3682,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3683,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3684,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3686,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3686,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3686,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3694,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3695,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3696,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3696,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3697,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3697,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3698,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3700,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3700,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3701,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3708,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3712,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3713,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3714,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3714,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3715,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3715,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3716,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3718,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3718,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3723,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3724,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3724,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3724,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3725,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3726,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3727,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3730,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3739,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3740,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3740,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3741,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3741,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3745,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3746,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:3747,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3748,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:3749,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 5
    argNames:
    - common
    - max
    - dst
    - dstw
    - backtracks
    argTypes:
    - compiler_common*
    - sljit_u32
    - sljit_s32
    - sljit_sw
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3672
    functionDepth: 2
    functionLinenumber: 3672
    functionLinenumberEnd: 3754
    functionName: peek_char
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - IN_UCHARS
    - CMOV
    - OP1
    - SLJIT_UNUSED_ARG
    - CMP
    linkageType: ''
    returnType: void
    signature: void peek_char(compiler_common *common, sljit_u32 max, sljit_s32 dst,
      sljit_sw dstw, jump_list **backtracks)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3766,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3767,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3769,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3769,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3769,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3777,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3780,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3780,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3782,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3782,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3785,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3785,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3786,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3795,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3796,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3796,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3798,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3798,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3802,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3803,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3805,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3805,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3805,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3806,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3807,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3808,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3809,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3811,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3816,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3817,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3817,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3818,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3818,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - common
    - max
    - backtracks
    argTypes:
    - compiler_common*
    - sljit_u32
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3822
      start: 3756
    functionDepth: 2
    functionLinenumber: 3756
    functionLinenumberEnd: 3822
    functionName: peek_char_back
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - IN_UCHARS
    - OP1
    - SLJIT_UNUSED_ARG
    - CMP
    linkageType: ''
    returnType: void
    signature: void peek_char_back(compiler_common *common, sljit_u32 max, jump_list
      **backtracks)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3843,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3844,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3845,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:3846,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:3847,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3849,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3849,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3849,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3850,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3850,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3860,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3863,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3863,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3865,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3865,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3868,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3868,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3869,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3873,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3876,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3878,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3878,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:3878,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3879,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3879,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3879,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3880,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3881,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3882,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3883,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3884,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3884,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3884,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3885,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3886,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3887,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3888,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3888,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3888,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3890,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3890,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3891,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3892,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3893,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3894,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3896,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3900,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3902,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3902,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:3902,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3903,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3903,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3903,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3904,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3905,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3906,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3907,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3908,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3908,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3908,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3910,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3910,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3911,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3912,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3913,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3914,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3916,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3920,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3920,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3924,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3924,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:3924,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3925,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3929,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3929,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3929,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3931,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3931,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3933,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3933,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:3933,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3934,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3935,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3936,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3937,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3939,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3941,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3950,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3951,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3954,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3954,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3956,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3956,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:3959,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3959,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3960,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3966,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3967,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3969,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3969,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3969,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3970,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3971,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3971,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3972,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3973,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3974,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3979,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/pcre2_jit_compile.c:3981,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3984,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3984,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3985,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:3987,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:3989,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:3993,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:3995,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:3995,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:3997,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:3998,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4006,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4007,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4007,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4008,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4008,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4012,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4013,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4014,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4015,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4016,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 141
    argCount: 5
    argNames:
    - common
    - min
    - max
    - backtracks
    - options
    argTypes:
    - compiler_common*
    - sljit_u32
    - sljit_u32
    - jump_list**
    - sljit_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4021
      start: 3829
    functionDepth: 2
    functionLinenumber: 3829
    functionLinenumberEnd: 4021
    functionName: read_char
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - IN_UCHARS
    - CMOV
    - OP1
    - SLJIT_UNUSED_ARG
    - CMP
    - sljit_has_cpu_feature
    - PRIV
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: "void read_char(compiler_common *common, sljit_u32 min, sljit_u32 max,\n
      \ jump_list **backtracks, sljit_u32 options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bitset
    - nclass
    argTypes:
    - sljit_u8*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4040
      start: 4025
    functionDepth: 0
    functionLinenumber: 4025
    functionLinenumberEnd: 4040
    functionName: is_char7_bitset
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_char7_bitset(const sljit_u8 *bitset, BOOL nclass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:4050,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4052,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4052,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4053,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4053,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4056,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4056,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4060,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4064,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4064,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4065,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4065,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4066,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4070,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4070,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4070,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4071,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - common
    - backtracks
    - negated
    argTypes:
    - compiler_common*
    - jump_list**
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4075
      start: 4042
    functionDepth: 2
    functionLinenumber: 4042
    functionLinenumberEnd: 4075
    functionName: read_char7_type
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - IN_UCHARS
    - OP1
    - CMP
    - PRIV
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void read_char7_type(compiler_common *common, jump_list **backtracks,
      BOOL negated)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:4090,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:4091,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4093,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4093,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4094,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4094,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4100,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4100,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4101,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4106,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4106,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4108,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4108,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4108,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4109,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4109,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4110,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4112,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4112,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4114,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4115,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4116,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4118,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4118,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4120,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4121,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4122,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4122,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4123,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4127,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4127,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4128,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4129,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4129,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4131,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4132,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4133,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4133,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4134,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4137,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4137,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4139,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4146,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4146,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4151,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4152,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4154,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4154,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4156,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4165,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/pcre2_jit_compile.c:4167,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4169,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4169,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4170,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4171,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4175,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4176,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4176,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4177,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4182,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4183,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4184,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4184,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4185,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4185,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4187,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4187,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4187,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4188,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4188,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4189,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4190,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4190,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4192,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 3
    argNames:
    - common
    - backtracks
    - negated
    argTypes:
    - compiler_common*
    - jump_list**
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4196
      start: 4079
    functionDepth: 2
    functionLinenumber: 4079
    functionLinenumberEnd: 4196
    functionName: read_char8_type
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - IN_UCHARS
    - CMOV
    - OP1
    - SLJIT_UNUSED_ARG
    - CMP
    - sljit_has_cpu_feature
    linkageType: ''
    returnType: void
    signature: void read_char8_type(compiler_common *common, jump_list **backtracks,
      BOOL negated)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4217,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4217,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4217,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4218,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4218,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4219,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4220,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4220,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4222,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4222,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4223,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4227,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4228,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4228,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4228,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4229,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4229,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4230,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4231,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4237,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4237,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4237,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4238,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4238,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4242,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4243,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4244,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4244,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4246,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4246,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4247,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4252,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4253,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4254,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4255,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4256,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4262,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4262,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4262,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4265,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4265,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4266,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4266,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4270,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4271,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4272,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4273,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:4279,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/pcre2_jit_compile.c:4280,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4282,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 3
    argNames:
    - common
    - backtracks
    - must_be_valid
    argTypes:
    - compiler_common*
    - jump_list**
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4283
      start: 4198
    functionDepth: 2
    functionLinenumber: 4198
    functionLinenumberEnd: 4283
    functionName: move_back
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - IN_UCHARS
    - OP_FLAGS
    - OP1
    - CMP
    - SLJIT_UNUSED_ARG
    - CMPTO
    - LABEL
    linkageType: ''
    returnType: void
    signature: void move_back(compiler_common *common, jump_list **backtracks, BOOL
      must_be_valid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4293,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4293,1
    - Dst: sljit_set_current_flags
      Src: /src/pcre2/src/pcre2_jit_compile.c:4294,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4295,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4295,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4301,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4301,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4302,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4302,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4306,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4307,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4307,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4308,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:4313,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:4314,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - common
    - nltype
    - backtracks
    - jumpifmatch
    argTypes:
    - compiler_common*
    - int
    - jump_list**
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4316
      start: 4285
    functionDepth: 2
    functionLinenumber: 4285
    functionLinenumberEnd: 4316
    functionName: check_newlinechar
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - JUMP
    - add_jump
    - JUMPHERE
    - sljit_set_current_flags
    - CMP
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void check_newlinechar(compiler_common *common, int nltype, jump_list
      **backtracks, BOOL jumpifmatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4328,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4329,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4329,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4329,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4330,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4331,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4332,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4335,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4336,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4338,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4339,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4339,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4340,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4342,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4343,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4343,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4343,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4344,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4345,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4346,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4348,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4349,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4351,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4352,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4352,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4353,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4356,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4357,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4357,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4357,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4358,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4359,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4359,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4360,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4361,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4362,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4321
    functionDepth: 1
    functionLinenumber: 4321
    functionLinenumberEnd: 4364
    functionName: do_utfreadchar
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - IN_UCHARS
    - OP1
    - OP_SRC
    linkageType: ''
    returnType: void
    signature: void do_utfreadchar(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4374,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4376,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4377,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4379,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4379,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4379,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4380,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4380,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4381,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4383,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4384,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4385,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4386,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4387,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4387,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4388,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4390,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4391,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4392,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4395,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4396,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4396,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4396,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4397,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4398,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4400
      start: 4366
    functionDepth: 1
    functionLinenumber: 4366
    functionLinenumberEnd: 4400
    functionName: do_utfreadtype8
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - IN_UCHARS
    - OP1
    - OP_SRC
    - CMP
    - PRIV
    linkageType: ''
    returnType: void
    signature: void do_utfreadtype8(compiler_common *common)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/pcre2_jit_compile.c:4409,1
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4416,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4418,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4421,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4421,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4424,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4426,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4428,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4428,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4428,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4429,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4431,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4432,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4433,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4435,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4436,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4438,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4438,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4439,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4441,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4444,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4444,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4444,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4445,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4446,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4447,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4450,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4451,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4455,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4457,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4458,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4460,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4462,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4465,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4466,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4470,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4471,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4472,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4472,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4476,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4477,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4481,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4482,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4484,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4487,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4487,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4487,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4488,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4489,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4490,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4493,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4494,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4498,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4500,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4503,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4504,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4508,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4510,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4511,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4513,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4514,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4514,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4515,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4518,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4518,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4518,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4519,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4521,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4522,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4523,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4525,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4526,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4528,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4531,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4532,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4534,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4534,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4534,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4535,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4536,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4537,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4540,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4541,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4545,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4548,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4548,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4551,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4553,1
    - Dst: sljit_set_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:4555,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4557,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4558,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 96
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4402
    functionDepth: 1
    functionLinenumber: 4402
    functionLinenumberEnd: 4559
    functionName: do_utfreadchar_invalid
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - JUMPHERE
    - IN_UCHARS
    - sljit_emit_fast_enter
    - SLJIT_MEM1
    - CMOV
    - OP1
    - OP_SRC
    - sljit_has_cpu_feature
    - CMP
    - CMPTO
    - sljit_set_label
    - LABEL
    linkageType: ''
    returnType: void
    signature: void do_utfreadchar_invalid(compiler_common *common)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4572,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:4576,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4579,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4580,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:4581,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4581,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4581,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:4582,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4582,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4582,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4585,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4585,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4585,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4586,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4586,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4589,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4590,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4591,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4591,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4593,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4595,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4596,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4600,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4601,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4601,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4601,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4602,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4602,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4604,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4605,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4607,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4608,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4609,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4612,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4613,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4614,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4614,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4614,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4615,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4615,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4616,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4617,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4619,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4620,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4620,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4622,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4623,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4624,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4626,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4627,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4630,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4631,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4633,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4634,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4637,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4638,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4639,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4641,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4641,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4641,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4642,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4642,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4644,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4645,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4647,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4648,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4650
      start: 4561
    functionDepth: 1
    functionLinenumber: 4561
    functionLinenumberEnd: 4650
    functionName: do_utfreadnewline_invalid
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - sljit_emit_mem
    - sljit_emit_fast_enter
    - SLJIT_MEM1
    - IN_UCHARS
    - OP1
    - OP_SRC
    - CMP
    - SLJIT_ASSERT
    - CMPTO
    - LABEL
    linkageType: ''
    returnType: void
    signature: void do_utfreadnewline_invalid(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4663,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4665,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4665,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4666,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4669,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4671,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4671,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4671,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4673,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4674,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4676,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4677,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4677,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4678,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4681,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4682,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4684,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4684,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4684,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4686,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4687,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4689,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4690,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4690,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4691,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4694,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4695,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4696,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4698,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4698,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4698,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4699,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4700,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4702,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4703,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4704,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4707,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4708,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4708,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4710,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4712,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4712,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4712,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4714,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4715,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4718,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4718,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4719,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4720,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4722,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4722,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4722,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4724,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4725,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4729,1
    - Dst: sljit_set_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:4730,1
    - Dst: sljit_set_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:4731,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4732,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4733,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4733,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4734,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4736,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4738,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4738,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4740,1
    - Dst: sljit_set_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:4742,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4743,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4744,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4744,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4746
      start: 4652
    functionDepth: 1
    functionLinenumber: 4652
    functionLinenumberEnd: 4746
    functionName: do_utfmoveback_invalid
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - IN_UCHARS
    - sljit_emit_fast_enter
    - SLJIT_MEM1
    - OP1
    - OP_SRC
    - CMP
    - CMPTO
    - sljit_set_label
    - LABEL
    linkageType: ''
    returnType: void
    signature: void do_utfmoveback_invalid(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4754,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4756,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4756,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4756,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4757,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4758,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4760,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4760,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4760,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4761,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4762,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4764,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4764,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4764,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4765,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4766,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4767,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4768,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4770,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4771,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4771,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4771,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4772,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4773,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4774,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4776,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4777,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4777,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4777,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4778,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4779,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4780,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4783
      start: 4748
    functionDepth: 1
    functionLinenumber: 4748
    functionLinenumberEnd: 4783
    functionName: do_utfpeakcharback
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - IN_UCHARS
    - OP1
    - OP_SRC
    - CMP
    linkageType: ''
    returnType: void
    signature: void do_utfpeakcharback(compiler_common *common)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/pcre2_jit_compile.c:4790,1
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4797,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4799,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4799,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4800,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4801,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4804,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4804,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4804,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4805,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4806,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4808,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4809,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4811,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4812,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4814,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4815,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4816,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4817,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4818,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4819,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4822,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4822,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4822,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4823,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4824,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4826,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4827,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4828,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4830,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4833,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4834,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4838,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4840,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4843,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4844,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4848,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4850,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4852,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4853,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4854,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4855,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4856,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4859,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4859,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4859,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4860,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4861,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4862,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4864,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4868,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:4869,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4873,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4875,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4876,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4878,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4879,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4879,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4880,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4883,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4883,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4883,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4884,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4885,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4887,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4888,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4889,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4890,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4891,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4894,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4894,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4894,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4895,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4896,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4898,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4899,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4901,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4902,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4905,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4905,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4905,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4906,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:4907,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:4909,1
    - Dst: sljit_set_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:4911,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4913,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4914,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 84
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4915
      start: 4785
    functionDepth: 1
    functionLinenumber: 4785
    functionLinenumberEnd: 4915
    functionName: do_utfpeakcharback_invalid
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - IN_UCHARS
    - sljit_emit_fast_enter
    - SLJIT_MEM1
    - CMOV
    - OP1
    - OP_SRC
    - sljit_has_cpu_feature
    - CMP
    - CMPTO
    - sljit_set_label
    - LABEL
    linkageType: ''
    returnType: void
    signature: void do_utfpeakcharback_invalid(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4929,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4932,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4933,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4935,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4935,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4935,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4936,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4937,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4937,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4939,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4940,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4941,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4943,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4944,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4946,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4947,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4948,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4949,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4951
      start: 4921
    functionDepth: 1
    functionLinenumber: 4921
    functionLinenumberEnd: 4951
    functionName: do_utfreadchar_invalid
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - IN_UCHARS
    - OP1
    - OP_SRC
    - CMP
    linkageType: ''
    returnType: void
    signature: void do_utfreadchar_invalid(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4962,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4965,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4967,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4967,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4967,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4968,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4970,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4971,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4972,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4973,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4974,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4975,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4977,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4979,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:4980,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4981,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:4982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4983
      start: 4953
    functionDepth: 1
    functionLinenumber: 4953
    functionLinenumberEnd: 4983
    functionName: do_utfreadnewline_invalid
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - IN_UCHARS
    - OP_FLAGS
    - OP1
    - OP_SRC
    - CMP
    linkageType: ''
    returnType: void
    signature: void do_utfreadnewline_invalid(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:4991,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4993,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4994,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4996,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:4996,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:4996,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:4997,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:4998,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5000,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5000,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5001,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:5002,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5004,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5005,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5006,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5008,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5008,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5009,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:5010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5011
      start: 4985
    functionDepth: 1
    functionLinenumber: 4985
    functionLinenumberEnd: 5011
    functionName: do_utfmoveback_invalid
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - IN_UCHARS
    - OP1
    - OP_SRC
    - CMP
    linkageType: ''
    returnType: void
    signature: void do_utfmoveback_invalid(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:5020,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5022,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5023,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5023,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5024,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5025,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5027,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5027,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5027,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5028,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5029,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5030,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5031,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5032,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5034,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:5035,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5037,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5038,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5039,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5041,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:5042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5043
      start: 5013
    functionDepth: 1
    functionLinenumber: 5013
    functionLinenumberEnd: 5043
    functionName: do_utfpeakcharback_invalid
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - IN_UCHARS
    - sljit_emit_fast_enter
    - SLJIT_MEM1
    - OP1
    - OP_SRC
    - CMP
    linkageType: ''
    returnType: void
    signature: void do_utfpeakcharback_invalid(compiler_common *common)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_jit_compile.c:5062,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5063,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5064,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5067,1
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:5069,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5074,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5075,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5076,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5080,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5081,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5082,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5082,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:5082,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5083,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5084,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5085,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5086,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:5086,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5087,1
    - Dst: SLJIT_MEM2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5087,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:5088,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5089
      start: 5051
    functionDepth: 1
    functionLinenumber: 5051
    functionLinenumberEnd: 5089
    functionName: do_getucd
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - SLJIT_MEM2
    - OP1
    - OP_SRC
    - CMP
    - PRIV
    - GET_UCD
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void do_getucd(compiler_common *common)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_UCD
      Src: /src/pcre2/src/pcre2_jit_compile.c:5102,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5103,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5104,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5107,1
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:5109,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5114,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5115,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5116,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5120,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5121,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5122,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5122,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:5122,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5123,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5124,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5125,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5126,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:5126,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5127,1
    - Dst: SLJIT_MEM2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5127,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5130,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:5130,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:5130,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5131,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5132,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5133,1
    - Dst: SLJIT_MEM2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5133,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:5135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5136
      start: 5091
    functionDepth: 1
    functionLinenumber: 5091
    functionLinenumberEnd: 5136
    functionName: do_getucdtype
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - SLJIT_OFFSETOF
    - SLJIT_MEM2
    - OP1
    - OP_SRC
    - CMP
    - PRIV
    - GET_UCD
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void do_getucdtype(compiler_common *common)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5162,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5167,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5168,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:5172,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5173,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5173,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5174,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5175,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5175,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5175,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5176,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5176,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5176,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5177,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5178,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5179,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5180,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5180,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5180,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5184,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:5185,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5187,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5187,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:5188,1
    - Dst: check_newlinechar
      Src: /src/pcre2/src/pcre2_jit_compile.c:5189,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5190,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5191,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5192,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5192,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:5193,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:5193,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5196,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5201,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5205,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5206,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5206,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:5206,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5209,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5209,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:5209,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5211,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5212,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5214,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5216,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5216,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:5216,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5219,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5222,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5222,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:5222,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5224,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5225,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5226,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5227,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5228,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:5229,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5229,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5230,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5231,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5231,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5234,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:5238,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5239,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5239,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5240,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5241,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5241,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5242,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5243,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5245,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5247,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5248,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:5251,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5260,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5260,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5263,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5265,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5265,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:5271,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5272,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5273,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5273,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5274,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5274,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5275,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5276,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5277,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5277,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5278,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5282,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5283,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5283,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:5283,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5284,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5285,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:5291,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5292,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5293,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5293,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5294,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5294,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5295,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5296,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5297,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5297,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5298,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5302,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/pcre2_jit_compile.c:5304,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5306,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5306,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5307,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:5308,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5312,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5313,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5314,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5315,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5320,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5324,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5325,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 122
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5329
      start: 5140
    functionDepth: 3
    functionLinenumber: 5140
    functionLinenumberEnd: 5329
    functionName: mainloop_entry
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - IN_UCHARS
    - SLJIT_MEM1
    - OP_FLAGS
    - CMOV
    - CMP
    - OP2
    - add_jump
    - JUMPHERE
    - OP1
    - set_jumps
    - read_char
    - CMPTO
    - PRIV
    - JUMP
    - SLJIT_OFFSETOF
    - sljit_has_cpu_feature
    - LABEL
    - check_newlinechar
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE *mainloop_entry(compiler_common *common)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - chr
    - chars
    - last
    argTypes:
    - PCRE2_UCHAR
    - fast_forward_char_data*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5364
      start: 5332
    functionDepth: 0
    functionLinenumber: 5332
    functionLinenumberEnd: 5364
    functionName: add_prefix_char
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE add_prefix_char(PCRE2_UCHAR chr, fast_forward_char_data
      *chars, BOOL last)
  - BBCount: 101
    BranchProfiles: []
    Callsites:
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:5425,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5443,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:5459,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:5459,1
    - Dst: scan_prefix
      Src: /src/pcre2/src/pcre2_jit_compile.c:5461,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:5472,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:5480,1
    - Dst: scan_prefix
      Src: /src/pcre2/src/pcre2_jit_compile.c:5483,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:5486,1
    - Dst: is_char7_bitset
      Src: /src/pcre2/src/pcre2_jit_compile.c:5496,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:5515,1
    - Dst: is_char7_bitset
      Src: /src/pcre2/src/pcre2_jit_compile.c:5521,1
    - Dst: is_char7_bitset
      Src: /src/pcre2/src/pcre2_jit_compile.c:5530,1
    - Dst: is_char7_bitset
      Src: /src/pcre2/src/pcre2_jit_compile.c:5539,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5574,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5584,1
    - Dst: scan_prefix
      Src: /src/pcre2/src/pcre2_jit_compile.c:5622,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5636,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5653,1
    - Dst: add_prefix_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:5661,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5696,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5696,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:5708,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:5708,1
    - Dst: char_has_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:5711,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_jit_compile.c:5716,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:5717,1
    - Dst: char_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:5717,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5726,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:5729,1
    - Dst: add_prefix_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:5749,1
    - Dst: add_prefix_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:5752,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 266
    argCount: 5
    argNames:
    - common
    - cc
    - chars
    - max_chars
    - rec_count
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - fast_forward_char_data*
    - int
    - sljit_u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5772
      start: 5366
    functionDepth: 2
    functionLinenumber: 5366
    functionLinenumberEnd: 5772
    functionName: scan_prefix
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 1
    functionsReached:
    - GET_EXTRALEN
    - UCD_OTHERCASE
    - is_char7_bitset
    - char_has_othercase
    - GETCHAR
    - add_prefix_char
    - char_othercase
    - HAS_EXTRALEN
    - bracketend
    - TABLE_GET
    - GET
    - PRIV
    - SLJIT_ASSERT
    - GET2
    - scan_prefix
    linkageType: ''
    returnType: int
    signature: int scan_prefix(compiler_common *common, PCRE2_SPTR cc, fast_forward_char_data
      *chars, int max_chars, sljit_u32 *rec_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5779,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5780,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5782,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - compiler
    - reg
    - label
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - struct sljit_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5787
      start: 5776
    functionDepth: 1
    functionLinenumber: 5776
    functionLinenumberEnd: 5787
    functionName: jumpto_if_not_utf_char_start
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - CMPTO
    - OP2
    linkageType: ''
    returnType: void
    signature: void jumpto_if_not_utf_char_start(struct sljit_compiler *compiler,
      sljit_s32 reg, struct sljit_label *label)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: max_fast_forward_char_pair_offset
      Src: /src/pcre2/src/pcre2_jit_compile.c:5808,1
    - Dst: fast_forward_char_pair_simd
      Src: /src/pcre2/src/pcre2_jit_compile.c:5835,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - common
    - chars
    - max
    argTypes:
    - compiler_common*
    - fast_forward_char_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5837
      start: 5794
    functionDepth: 3
    functionLinenumber: 5794
    functionLinenumberEnd: 5837
    functionName: check_fast_forward_char_pair_simd
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - fast_forward_char_pair_simd
    - max_fast_forward_char_pair_offset
    linkageType: ''
    returnType: BOOL
    signature: BOOL check_fast_forward_char_pair_simd(compiler_common *common, fast_forward_char_data
      *chars, int max)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5850,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5853,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5853,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5856,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5856,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5860,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5862,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5862,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5863,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:5864,1
    - Dst: fast_forward_char_simd
      Src: /src/pcre2/src/pcre2_jit_compile.c:5871,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5874,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5874,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5877,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:5883,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5885,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:5887,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5889,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5889,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5890,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5890,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5893,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5897,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5899,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5900,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:5904,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:5905,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5906,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5913,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5913,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5913,1
    - Dst: jumpto_if_not_utf_char_start
      Src: /src/pcre2/src/pcre2_jit_compile.c:5914,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5918,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:5918,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:5921,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:5924,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - common
    - char1
    - char2
    - offset
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - PCRE2_UCHAR
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5925
      start: 5841
    functionDepth: 3
    functionLinenumber: 5841
    functionLinenumberEnd: 5925
    functionName: fast_forward_first_char2
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - LABEL
    - OP2
    - is_powerof2
    - fast_forward_char_simd
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - IN_UCHARS
    - CMOV
    - jumpto_if_not_utf_char_start
    - OP1
    - CMP
    - CMPTO
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void fast_forward_first_char2(compiler_common *common, PCRE2_UCHAR
      char1, PCRE2_UCHAR char2, sljit_s32 offset)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: scan_prefix
      Src: /src/pcre2/src/pcre2_jit_compile.c:5949,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5957,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5967,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_compile.c:5969,1
    - Dst: check_fast_forward_char_pair_simd
      Src: /src/pcre2/src/pcre2_jit_compile.c:5979,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:5997,1
    - Dst: allocate_read_only_data
      Src: /src/pcre2/src/pcre2_jit_compile.c:6010,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:6013,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6013,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:6017,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6023,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6024,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:6047,1
    - Dst: fast_forward_first_char2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6054,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:6058,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6062,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6062,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6063,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6064,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6064,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6065,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6065,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6066,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:6067,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6071,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6071,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6072,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6072,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:6075,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6078,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6080,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6081,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6081,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6084,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6084,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6084,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6086,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6086,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6086,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6090,1
    - Dst: SLJIT_MEM2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6090,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6092,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6092,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6094,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6095,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6099,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6099,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6099,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6100,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6100,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6103,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6107,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6109,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6110,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6114,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6115,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6116,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6126,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6126,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6127,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6127,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6130,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6130,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6130,1
    - Dst: jumpto_if_not_utf_char_start
      Src: /src/pcre2/src/pcre2_jit_compile.c:6132,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6135,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6135,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6140,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6140,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6143,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6145,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6145,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 133
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 5927
    functionDepth: 4
    functionLinenumber: 5927
    functionLinenumberEnd: 6147
    functionName: fast_forward_first_n_chars
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - IN_UCHARS
    - SLJIT_MEM1
    - CMOV
    - CMP
    - SLJIT_ASSERT
    - OP2
    - add_jump
    - JUMPHERE
    - check_fast_forward_char_pair_simd
    - jumpto_if_not_utf_char_start
    - OP1
    - CMPTO
    - memset
    - scan_prefix
    - is_powerof2
    - JUMP
    - fast_forward_first_char2
    - allocate_read_only_data
    - SLJIT_MEM2
    - LABEL
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE fast_forward_first_n_chars(compiler_common *common)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:6157,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6160,1
    - Dst: fast_forward_first_char2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6165
      start: 6149
    functionDepth: 4
    functionLinenumber: 6149
    functionLinenumberEnd: 6165
    functionName: fast_forward_first_char
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - fast_forward_first_char2
    - UCD_OTHERCASE
    - TABLE_GET
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE fast_forward_first_char(compiler_common *common)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6180,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6181,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6181,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6191,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6192,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6192,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6192,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6193,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6193,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6193,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6197,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6197,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6197,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6198,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6198,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6198,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6200,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6202,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6202,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6203,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6204,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6206,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6208,1
    - Dst: fast_forward_char_pair_simd
      Src: /src/pcre2/src/pcre2_jit_compile.c:6210,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6211,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6211,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6216,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6219,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6220,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6220,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6220,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6221,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6221,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6221,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6225,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6225,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6225,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6226,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6226,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6226,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6228,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6230,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6230,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6231,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6232,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6234,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6236,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6238,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6239,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6239,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6240,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6241,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6241,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6241,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6242,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6242,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6242,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6243,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6244,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6246,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6247,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6250,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6253,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6259,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6260,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6260,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6260,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6263,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6263,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6263,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6266,1
    - Dst: move_back
      Src: /src/pcre2/src/pcre2_jit_compile.c:6269,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6271,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6271,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6273,1
    - Dst: fast_forward_char_simd
      Src: /src/pcre2/src/pcre2_jit_compile.c:6281,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6283,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6285,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6285,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6286,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6286,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6287,1
    - Dst: fast_forward_char_simd
      Src: /src/pcre2/src/pcre2_jit_compile.c:6291,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6293,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6293,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6296,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:6297,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:6304,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6305,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6307,1
    - Dst: check_newlinechar
      Src: /src/pcre2/src/pcre2_jit_compile.c:6308,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:6309,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6316,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6317,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6320,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6321,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6321,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6322,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6323,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6325,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6327,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6328,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6329,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6333,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6334,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6337,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 109
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6338
      start: 6167
    functionDepth: 3
    functionLinenumber: 6167
    functionLinenumberEnd: 6338
    functionName: fast_forward_newline
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - fast_forward_char_simd
    - JUMPHERE
    - SLJIT_MEM1
    - IN_UCHARS
    - move_back
    - OP_FLAGS
    - read_char
    - SLJIT_OFFSETOF
    - check_newlinechar
    - CMOV
    - OP1
    - set_jumps
    - CMP
    - fast_forward_char_pair_simd
    - CMPTO
    - LABEL
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE fast_forward_newline(compiler_common *common)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6355,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6355,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6356,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6357,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6357,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6358,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:6359,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6362,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6364,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6366,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6368,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6368,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6369,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6369,1
    - Dst: optimize_class
      Src: /src/pcre2/src/pcre2_jit_compile.c:6371,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6375,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6377,1
    - Dst: is_char7_bitset
      Src: /src/pcre2/src/pcre2_jit_compile.c:6379,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6380,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6382,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6383,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6384,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6384,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6387,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6388,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6392,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6393,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6395,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:6398,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6402,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6405,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6405,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6408,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6411,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6412
      start: 6342
    functionDepth: 2
    functionLinenumber: 6342
    functionLinenumberEnd: 6412
    functionName: fast_forward_start_bits
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - add_jump
    - optimize_class
    - is_char7_bitset
    - JUMPHERE
    - SLJIT_MEM1
    - IN_UCHARS
    - CMOV
    - OP1
    - set_jumps
    - CMP
    - JUMPTO
    - CMPTO
    - LABEL
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE fast_forward_start_bits(compiler_common *common)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:6425,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6426,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6426,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6427,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6427,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6428,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6429,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6432,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6432,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6434,1
    - Dst: TABLE_GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:6439,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6442,1
    - Dst: fast_requested_char_simd
      Src: /src/pcre2/src/pcre2_jit_compile.c:6449,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6454,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6455,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6455,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6457,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6457,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6460,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6464,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6466,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6467,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6471,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6472,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6475,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6475,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6476,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6478,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6480,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6483,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6483,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6485,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6486,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 4
    argNames:
    - common
    - req_char
    - caseless
    - has_firstchar
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - BOOL
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6488
      start: 6414
    functionDepth: 3
    functionLinenumber: 6414
    functionLinenumberEnd: 6488
    functionName: search_requested_char
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - LABEL
    - OP2
    - is_powerof2
    - fast_requested_char_simd
    - add_jump
    - JUMPHERE
    - IN_UCHARS
    - SLJIT_MEM1
    - OP1
    - CMP
    - TABLE_GET
    - JUMPTO
    - UCD_OTHERCASE
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE *search_requested_char(compiler_common *common, PCRE2_UCHAR
      req_char, BOOL caseless, BOOL has_firstchar)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:6496,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6497,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6500,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6501,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6501,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6502,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6504,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6507,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6507,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6507,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6508,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6508,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6508,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6509,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6513,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6513,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6514,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6514,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6515,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6516,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6516,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6517,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6518,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6518,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6520,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6522,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6523,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:6525,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6527,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6528,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6529,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6532,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6532,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6532,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6533,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6537,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6537,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6538,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6539,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6539,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6542
      start: 6490
    functionDepth: 1
    functionLinenumber: 6490
    functionLinenumberEnd: 6542
    functionName: do_revertframes
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - OP1
    - OP_SRC
    - CMP
    - JUMPTO
    - GET_LOCAL_BASE
    - LABEL
    linkageType: ''
    returnType: void
    signature: void do_revertframes(compiler_common *common)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:6558,1
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:6560,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6560,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6562,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6563,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6563,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:6563,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6564,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6565,1
    - Dst: peek_char_back
      Src: /src/pcre2/src/pcre2_jit_compile.c:6570,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6574,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6575,1
    - Dst: move_back
      Src: /src/pcre2/src/pcre2_jit_compile.c:6576,1
    - Dst: check_start_used_ptr
      Src: /src/pcre2/src/pcre2_jit_compile.c:6577,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6578,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6579,1
    - Dst: peek_char_back
      Src: /src/pcre2/src/pcre2_jit_compile.c:6586,1
    - Dst: move_back
      Src: /src/pcre2/src/pcre2_jit_compile.c:6589,1
    - Dst: check_start_used_ptr
      Src: /src/pcre2/src/pcre2_jit_compile.c:6590,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:6591,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6599,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6600,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6601,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6601,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6602,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6603,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6604,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6605,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6606,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6607,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6608,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6609,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6615,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6620,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6622,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6622,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6623,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6624,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6626,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6629,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6632,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6634,1
    - Dst: check_str_end
      Src: /src/pcre2/src/pcre2_jit_compile.c:6635,1
    - Dst: peek_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:6636,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6636,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6641,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6645,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6646,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6647,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6647,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6648,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6649,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6650,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6651,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6652,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6653,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6654,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6661,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6662,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6664,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6667,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6669,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6669,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6670,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6671,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6673,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6676,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:6679,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6679,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6681,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6681,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6682,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:6683,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:6688,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6688,1
    - Dst: peek_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:6690,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6690,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:6691,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6693,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6693,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6694,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:6695,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:6697,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:6697,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6698,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6698,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6699,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:6700,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 96
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6703
      start: 6544
    functionDepth: 3
    functionLinenumber: 6544
    functionLinenumberEnd: 6703
    functionName: check_wordboundary
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - check_start_used_ptr
    - SLJIT_MEM1
    - OP_FLAGS
    - peek_char
    - CMP
    - OP_SRC
    - OP2
    - add_jump
    - JUMPHERE
    - check_str_end
    - SLJIT_COMPILE_ASSERT
    - OP1
    - set_jumps
    - read_char
    - CMPTO
    - peek_char_back
    - JUMP
    - move_back
    - SLJIT_OFFSETOF
    - sljit_emit_fast_enter
    - LABEL
    linkageType: ''
    returnType: void
    signature: void check_wordboundary(compiler_common *common)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6754,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6754,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6763,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6763,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6769,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6770,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6770,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6773,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6773,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6779,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6779,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6782,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6783,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6783,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6786,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6786,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6790,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6790,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6793,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6794,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6794,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6797,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6797,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6804,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:6806,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6807,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6810,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6811,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6811,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6814,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6814,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6823,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6824,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6824,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6828,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6828,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6832,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6833,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6833,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6836,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6836,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6840,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6841,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6841,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6844,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6845,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6845,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6848,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6848,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:6852,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 101
    argCount: 5
    argNames:
    - common
    - bits
    - nclass
    - invert
    - backtracks
    argTypes:
    - compiler_common*
    - sljit_u8*
    - BOOL
    - BOOL
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6855
      start: 6705
    functionDepth: 2
    functionLinenumber: 6705
    functionLinenumberEnd: 6855
    functionName: optimize_class_ranges
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - is_powerof2
    - OP2
    - JUMP
    - add_jump
    - SLJIT_UNREACHABLE
    - CMP
    - SLJIT_ASSERT
    linkageType: ''
    returnType: BOOL
    signature: BOOL optimize_class_ranges(compiler_common *common, const sljit_u8
      *bits, BOOL nclass, BOOL invert, jump_list **backtracks)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/pcre2_jit_compile.c:6866,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6919,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:6920,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:6923,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6931,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:6932,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6939,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:6945,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:6946,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:6954,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:6954,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 5
    argNames:
    - common
    - bits
    - nclass
    - invert
    - backtracks
    argTypes:
    - compiler_common*
    - sljit_u8*
    - BOOL
    - BOOL
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6956
      start: 6857
    functionDepth: 2
    functionLinenumber: 6857
    functionLinenumberEnd: 6956
    functionName: optimize_class_chars
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - add_jump
    - OP_FLAGS
    - CMOV
    - OP1
    - sljit_has_cpu_feature
    - CMP
    linkageType: ''
    returnType: BOOL
    signature: BOOL optimize_class_chars(compiler_common *common, const sljit_u8 *bits,
      BOOL nclass, BOOL invert, jump_list **backtracks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: optimize_class_ranges
      Src: /src/pcre2/src/pcre2_jit_compile.c:6961,1
    - Dst: optimize_class_chars
      Src: /src/pcre2/src/pcre2_jit_compile.c:6963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - common
    - bits
    - nclass
    - invert
    - backtracks
    argTypes:
    - compiler_common*
    - sljit_u8*
    - BOOL
    - BOOL
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6964
      start: 6958
    functionDepth: 3
    functionLinenumber: 6958
    functionLinenumberEnd: 6964
    functionName: optimize_class
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 1
    functionsReached:
    - optimize_class_ranges
    - optimize_class_chars
    linkageType: ''
    returnType: BOOL
    signature: BOOL optimize_class(compiler_common *common, const sljit_u8 *bits,
      BOOL nclass, BOOL invert, jump_list **backtracks)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:7079,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7079,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7080,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7084,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7085,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7088,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7088,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7088,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:7090,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7091,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7091,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7091,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7092,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7092,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7092,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:7093,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7094,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7094,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:7095,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:7097,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7098,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7098,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7100,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7100,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7100,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7102,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7102,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7103,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7103,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:7105,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7106,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7106,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7106,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7107,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7107,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7107,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:7108,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7109,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7109,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:7110,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:7112,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7113,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7113,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7114,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7114,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:7118,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7119,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7119,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7120,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7120,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7121,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7121,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7122,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7122,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:7123,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7124,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7124,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:7125,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:7127,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7128,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7128,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7133,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7134,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:7137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 54
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7138
      start: 7060
    functionDepth: 1
    functionLinenumber: 7060
    functionLinenumberEnd: 7138
    functionName: do_casefulcmp
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - SLJIT_MEM1
    - sljit_emit_fast_enter
    - sljit_emit_mem
    - IN_UCHARS
    - OP1
    - OP_SRC
    - CMP
    - JUMPTO
    - LABEL
    linkageType: ''
    returnType: void
    signature: void do_casefulcmp(compiler_common *common)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7161,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7161,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7161,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7163,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7163,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7163,1
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:7166,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7166,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7167,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7169,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7169,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7173,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7174,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7177,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:7181,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7182,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7182,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7182,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7183,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7183,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7183,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7187,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7187,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7188,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7188,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:7190,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7191,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7191,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7191,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/pcre2_jit_compile.c:7192,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7192,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7192,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:7196,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7197,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7197,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7198,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7198,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7199,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7199,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:7203,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7205,1
    - Dst: SLJIT_MEM2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7205,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:7207,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:7208,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7210,1
    - Dst: SLJIT_MEM2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7210,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:7212,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7216,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7216,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:7218,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7219,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7219,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:7220,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:7222,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7223,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7223,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:7226,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:7226,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7230,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7231,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7234,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:7234,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:7235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 59
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7236
      start: 7140
    functionDepth: 1
    functionLinenumber: 7140
    functionLinenumberEnd: 7236
    functionName: do_caselesscmp
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMPHERE
    - sljit_emit_mem
    - IN_UCHARS
    - sljit_emit_fast_enter
    - SLJIT_MEM1
    - SLJIT_MEM2
    - OP1
    - OP_SRC
    - CMP
    - JUMPTO
    - LABEL
    linkageType: ''
    returnType: void
    signature: void do_caselesscmp(compiler_common *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7402
      start: 7393
    functionDepth: 0
    functionLinenumber: 7393
    functionLinenumberEnd: 7402
    functionName: SET_TYPE_OFFSET
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TYPE_OFFSET(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7412
      start: 7403
    functionDepth: 0
    functionLinenumber: 7403
    functionLinenumberEnd: 7412
    functionName: SET_CHAR_OFFSET
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CHAR_OFFSET(value)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8027,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8028,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8028,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8028,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8031,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8031,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8031,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8032,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8032,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8038,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8039,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8039,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8039,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8042,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8042,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8042,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8043,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8043,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8048,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8048,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8052,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8052,1
    - Dst: sljit_set_current_flags
      Src: /src/pcre2/src/pcre2_jit_compile.c:8056,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8057,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8057,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8062,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8065,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8065,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8066,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8066,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8066,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8068,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8068,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8071,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8072,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8073,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8074,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8075,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8076,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8076,1
    - Dst: check_partial
      Src: /src/pcre2/src/pcre2_jit_compile.c:8077,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8078,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8078,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8079,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8081,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8081,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8081,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8082,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8082,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8083,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8083,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8087,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8087,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8088,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8088,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8088,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8089,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8089,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8090,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8090,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8094,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8094,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8094,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8095,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8096,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8096,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8097,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8098,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8099,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8099,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8101,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8101,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8101,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8102,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8103,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8103,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8105,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8108,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8108,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8109,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8109,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8110,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8110,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8114,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8115,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8116,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8116,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8117,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8117,1
    - Dst: sljit_set_current_flags
      Src: /src/pcre2/src/pcre2_jit_compile.c:8118,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8119,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8119,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8120,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8122,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8123,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8125,1
    - Dst: check_partial
      Src: /src/pcre2/src/pcre2_jit_compile.c:8127,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8131,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8131,1
    - Dst: check_partial
      Src: /src/pcre2/src/pcre2_jit_compile.c:8133,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8139,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8140,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8140,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8140,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8143,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8143,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8143,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8144,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8144,1
    - Dst: compile_simple_assertion_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:8147,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8150,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8150,1
    - Dst: check_partial
      Src: /src/pcre2/src/pcre2_jit_compile.c:8151,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8156,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8159,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8160,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8160,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8160,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8163,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8163,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8163,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8164,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8164,1
    - Dst: check_partial
      Src: /src/pcre2/src/pcre2_jit_compile.c:8165,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8166,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8167,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8171,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8171,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8172,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8172,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8172,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8174,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8174,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8177,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8179,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8179,1
    - Dst: check_partial
      Src: /src/pcre2/src/pcre2_jit_compile.c:8180,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8181,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8181,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8182,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8185,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8185,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8185,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8186,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8186,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8187,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8187,1
    - Dst: peek_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8191,1
    - Dst: check_newlinechar
      Src: /src/pcre2/src/pcre2_jit_compile.c:8192,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8194,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8200,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8201,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8201,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8201,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8202,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8202,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8203,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8203,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8203,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8204,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8204,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8208,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8208,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8208,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8209,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8209,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8210,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8210,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8210,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8211,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8211,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8219,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8220,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8220,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8220,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8221,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8222,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8222,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8222,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8226,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8226,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8226,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8227,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8228,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8228,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8228,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8230,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8230,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8231,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8232,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8235,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8235,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8239,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8239,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8240,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8240,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8241,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8241,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8241,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8242,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8242,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8242,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8243,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8243,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8244,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8244,1
    - Dst: peek_char_back
      Src: /src/pcre2/src/pcre2_jit_compile.c:8248,1
    - Dst: check_newlinechar
      Src: /src/pcre2/src/pcre2_jit_compile.c:8249,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8251,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:8255,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8260,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8261,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8261,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8261,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8264,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8264,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:8264,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8268,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:8269,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8270,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8270,1
    - Dst: move_back
      Src: /src/pcre2/src/pcre2_jit_compile.c:8271,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8272,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:8273,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8278,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8278,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8279,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8279,1
    - Dst: check_start_used_ptr
      Src: /src/pcre2/src/pcre2_jit_compile.c:8281,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8284,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 203
    argCount: 4
    argNames:
    - common
    - type
    - cc
    - backtracks
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - PCRE2_SPTR
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8286
      start: 8013
    functionDepth: 3
    functionLinenumber: 8013
    functionLinenumberEnd: 8286
    functionName: compile_simple_assertion_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 1
    functionsReached:
    - compile_simple_assertion_matchingpath
    - check_start_used_ptr
    - SLJIT_MEM1
    - IN_UCHARS
    - SLJIT_UNREACHABLE
    - OP_FLAGS
    - peek_char
    - CMP
    - JUMPTO
    - OP2
    - add_jump
    - JUMPHERE
    - OP1
    - check_partial
    - read_char
    - JUMP
    - peek_char_back
    - move_back
    - SLJIT_OFFSETOF
    - sljit_set_current_flags
    - check_newlinechar
    - LABEL
    - GET
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR compile_simple_assertion_matchingpath(compiler_common *common,
      PCRE2_UCHAR type, PCRE2_SPTR cc, jump_list **backtracks)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GETCHARINC
      Src: /src/pcre2/src/pcre2_jit_compile.c:8305,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_jit_compile.c:8306,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:8316,1
    - Dst: BACKCHAR
      Src: /src/pcre2/src/pcre2_jit_compile.c:8331,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_jit_compile.c:8332,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_jit_compile.c:8334,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - args
    - cc
    argTypes:
    - jit_arguments*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8356
      start: 8292
    functionDepth: 1
    functionLinenumber: 8292
    functionLinenumberEnd: 8356
    functionName: do_extuni_utf
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - UCD_GRAPHBREAK
    - GETCHAR
    - GETCHARINC
    - PRIV
    - BACKCHAR
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR do_extuni_utf(jit_arguments *args, PCRE2_SPTR cc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GETCHARINC_INVALID
      Src: /src/pcre2/src/pcre2_jit_compile.c:8373,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_jit_compile.c:8374,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:8384,1
    - Dst: GETCHARBACK_INVALID
      Src: /src/pcre2/src/pcre2_jit_compile.c:8398,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_jit_compile.c:8400,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 2
    argNames:
    - args
    - cc
    argTypes:
    - jit_arguments*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8423
      start: 8360
    functionDepth: 1
    functionLinenumber: 8360
    functionLinenumberEnd: 8423
    functionName: do_extuni_utf_invalid
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    - UCD_GRAPHBREAK
    - GETCHARINC_INVALID
    - GETCHARBACK_INVALID
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR do_extuni_utf_invalid(jit_arguments *args, PCRE2_SPTR cc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_jit_compile.c:8441,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_jit_compile.c:8450,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:8452,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/src/pcre2_jit_compile.c:8473,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 2
    argNames:
    - args
    - cc
    argTypes:
    - jit_arguments*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8493
      start: 8425
    functionDepth: 0
    functionLinenumber: 8425
    functionLinenumberEnd: 8493
    functionName: do_extuni_no_utf
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    - UCD_GRAPHBREAK
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR do_extuni_no_utf(jit_arguments *args, PCRE2_SPTR cc)
  - BBCount: 71
    BranchProfiles: []
    Callsites:
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8515,1
    - Dst: is_char7_bitset
      Src: /src/pcre2/src/pcre2_jit_compile.c:8517,1
    - Dst: read_char7_type
      Src: /src/pcre2/src/pcre2_jit_compile.c:8518,1
    - Dst: read_char8_type
      Src: /src/pcre2/src/pcre2_jit_compile.c:8521,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8523,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8524,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8524,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8530,1
    - Dst: is_char7_bitset
      Src: /src/pcre2/src/pcre2_jit_compile.c:8532,1
    - Dst: read_char7_type
      Src: /src/pcre2/src/pcre2_jit_compile.c:8533,1
    - Dst: read_char8_type
      Src: /src/pcre2/src/pcre2_jit_compile.c:8536,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8537,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8538,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8538,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8544,1
    - Dst: is_char7_bitset
      Src: /src/pcre2/src/pcre2_jit_compile.c:8546,1
    - Dst: read_char7_type
      Src: /src/pcre2/src/pcre2_jit_compile.c:8547,1
    - Dst: read_char8_type
      Src: /src/pcre2/src/pcre2_jit_compile.c:8550,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8551,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8552,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8552,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8557,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8558,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8561,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8564,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8564,1
    - Dst: check_str_end
      Src: /src/pcre2/src/pcre2_jit_compile.c:8566,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8568,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8568,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8569,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8569,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:8570,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:8570,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8571,1
    - Dst: check_newlinechar
      Src: /src/pcre2/src/pcre2_jit_compile.c:8574,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8579,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8585,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8590,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8590,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8591,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8591,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8593,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8594,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8594,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:8594,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8595,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8597,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8598,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8599,1
    - Dst: OP_FLAGS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8600,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8601,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8602,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8604,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8609,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8609,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8614,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8615,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8615,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8627,1
    - Dst: compile_xclass_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:8628,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8634,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8635,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8636,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8640,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8640,1
    - Dst: check_str_end
      Src: /src/pcre2/src/pcre2_jit_compile.c:8642,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8643,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8643,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8644,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8645,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8645,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8646,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8647,1
    - Dst: check_newlinechar
      Src: /src/pcre2/src/pcre2_jit_compile.c:8648,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:8649,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:8649,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8650,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8651,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8657,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8660,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8662,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8664,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8664,1
    - Dst: sljit_set_current_flags
      Src: /src/pcre2/src/pcre2_jit_compile.c:8665,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8666,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8666,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8672,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8675,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8677,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8679,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8679,1
    - Dst: sljit_set_current_flags
      Src: /src/pcre2/src/pcre2_jit_compile.c:8680,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8681,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8681,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8687,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:8689,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8690,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_compile.c:8693,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_compile.c:8693,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8693,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8693,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:8694,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:8694,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:8694,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8696,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8696,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_compile.c:8698,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_compile.c:8698,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8698,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8698,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:8699,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:8699,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8701,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8701,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8704,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8708,1
    - Dst: check_partial
      Src: /src/pcre2/src/pcre2_jit_compile.c:8710,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8711,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:8720,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:8720,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8724,1
    - Dst: char_has_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:8726,1
    - Dst: char_get_othercase_bit
      Src: /src/pcre2/src/pcre2_jit_compile.c:8726,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8728,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8728,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8730,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8730,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8732,1
    - Dst: byte_sequence_compare
      Src: /src/pcre2/src/pcre2_jit_compile.c:8737,1
    - Dst: GETCHAR
      Src: /src/pcre2/src/pcre2_jit_compile.c:8743,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:8749,1
    - Dst: char_has_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:8749,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8752,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8752,1
    - Dst: char_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:8754,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8755,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:8757,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8757,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/pcre2_jit_compile.c:8759,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8761,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:8762,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8763,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8763,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8767,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8768,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8768,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8769,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8776,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8786,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8786,1
    - Dst: char_has_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:8787,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8788,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8788,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8792,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8793,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8793,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8796,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8796,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8797,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8798,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8798,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:8798,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8799,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8800,1
    - Dst: GETCHARLEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:8806,1
    - Dst: char_has_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:8813,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8815,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8816,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8816,1
    - Dst: char_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:8820,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8821,1
    - Dst: is_powerof2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8823,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8825,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8826,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8826,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8830,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8830,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8831,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8831,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8839,1
    - Dst: is_char7_bitset
      Src: /src/pcre2/src/pcre2_jit_compile.c:8842,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8844,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8846,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8849,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:8851,1
    - Dst: optimize_class
      Src: /src/pcre2/src/pcre2_jit_compile.c:8854,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8861,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8864,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8869,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8872,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8877,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8878,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8879,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:8879,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8880,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8881,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8882,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8882,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8886,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:8893,1
    - Dst: compile_xclass_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:8894,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:8895,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:8898,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 269
    argCount: 5
    argNames:
    - common
    - type
    - cc
    - backtracks
    - check_str_ptr
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - PCRE2_SPTR
    - jump_list**
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8900
      start: 8497
    functionDepth: 4
    functionLinenumber: 8497
    functionLinenumberEnd: 8900
    functionName: compile_char1_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - is_char7_bitset
    - SLJIT_MEM1
    - IN_UCHARS
    - SLJIT_UNREACHABLE
    - OP_FLAGS
    - CMOV
    - GETCHARLEN
    - CMP
    - char_get_othercase_bit
    - detect_partial_match
    - SLJIT_ASSERT
    - byte_sequence_compare
    - SLJIT_FUNC_OFFSET
    - OP2
    - add_jump
    - JUMPHERE
    - optimize_class
    - check_str_end
    - OP1
    - set_jumps
    - check_partial
    - read_char
    - PRIV
    - is_powerof2
    - JUMP
    - char_has_othercase
    - GETCHAR
    - char_othercase
    - sljit_has_cpu_feature
    - SLJIT_ARG1
    - compile_xclass_matchingpath
    - GET_EXTRALEN
    - read_char8_type
    - SLJIT_RET
    - read_char7_type
    - HAS_EXTRALEN
    - sljit_set_current_flags
    - SLJIT_ARG2
    - sljit_emit_icall
    - check_newlinechar
    - LABEL
    - GET
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR compile_char1_matchingpath(compiler_common *common, PCRE2_UCHAR
      type, PCRE2_SPTR cc, jump_list **backtracks, BOOL check_str_ptr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:8921,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:8922,1
    - Dst: char_has_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:8931,1
    - Dst: char_get_othercase_bit
      Src: /src/pcre2/src/pcre2_jit_compile.c:8931,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:8933,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:8934,1
    - Dst: char_has_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:8938,1
    - Dst: char_get_othercase_bit
      Src: /src/pcre2/src/pcre2_jit_compile.c:8938,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:8945,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:8953,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:8954,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:8954,1
    - Dst: byte_sequence_compare
      Src: /src/pcre2/src/pcre2_jit_compile.c:8960,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:8965,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 4
    argNames:
    - common
    - cc
    - ccend
    - backtracks
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8966
      start: 8902
    functionDepth: 5
    functionLinenumber: 8902
    functionLinenumberEnd: 8966
    functionName: compile_charn_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - GET_EXTRALEN
    - OP2
    - add_jump
    - char_has_othercase
    - IN_UCHARS
    - HAS_EXTRALEN
    - compile_char1_matchingpath
    - char_get_othercase_bit
    - CMP
    - byte_sequence_compare
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_charn_matchingpath(compiler_common *common, PCRE2_SPTR
      cc, PCRE2_SPTR ccend, jump_list **backtracks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - size
    - ','
    - ccstart
    - ','
    - error
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8984
      start: 8972
    functionDepth: 0
    functionLinenumber: 8972
    functionLinenumberEnd: 8984
    functionName: PUSH_BACKTRACK
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_BACKTRACK(size, ccstart, error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - ccstart
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8997
      start: 8985
    functionDepth: 0
    functionLinenumber: 8985
    functionLinenumberEnd: 8997
    functionName: PUSH_BACKTRACK_NOVALUE
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_BACKTRACK_NOVALUE(size, ccstart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8999
      start: 8998
    functionDepth: 0
    functionLinenumber: 8998
    functionLinenumberEnd: 8999
    functionName: BACKTRACK_AS
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BACKTRACK_AS(type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9004,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9005,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9009,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9011,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9011,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9011,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9016,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9017,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9017,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9018,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9018,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9018,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9018,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9022,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9023,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9023,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9025,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9025,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9025,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9025,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:9027,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9027,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - common
    - cc
    - backtracks
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - jump_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9028
      start: 9000
    functionDepth: 2
    functionLinenumber: 9000
    functionLinenumberEnd: 9028
    functionName: compile_dnref_search
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - LABEL
    - add_jump
    - SLJIT_MEM1
    - OP1
    - set_jumps
    - CMP
    - GET_LOCAL_BASE
    - OVECTOR
    - SLJIT_ASSERT
    - GET2
    linkageType: ''
    returnType: void
    signature: void compile_dnref_search(compiler_common *common, PCRE2_SPTR cc, jump_list
      **backtracks)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9049,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9050,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9050,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9050,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9053,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9053,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9053,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9053,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9056,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9056,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9061,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9064,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9064,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9064,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9066,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9066,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9069,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9069,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9071,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9071,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9072,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9072,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9073,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9073,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9075,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9076,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9078,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9079,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9080,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9083,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9084,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:9086,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9088,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9089,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9090,1
    - Dst: read_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:9093,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9095,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9097,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9099,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9099,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9101,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9102,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9103,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9105,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:9105,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9107,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9107,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:9107,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9108,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9108,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:9108,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9109,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9110,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9112,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9112,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9113,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9114,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:9114,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9116,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9117,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9117,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9118,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9119,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9120,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9121,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:9123,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9123,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9125,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9127,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9127,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9128,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9128,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9129,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9129,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9130,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9130,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9134,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9135,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9135,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9136,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9136,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9137,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9137,1
    - Dst: check_partial
      Src: /src/pcre2/src/pcre2_jit_compile.c:9139,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9140,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9140,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9143,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9144,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9144,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9145,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9145,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9146,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9146,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9153,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9153,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9153,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9155,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9155,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9158,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9160,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9161,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9163,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9165,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9165,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9166,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9166,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9170,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9171,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9173,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9174,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9175,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9176,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9177,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9177,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9178,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9178,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9179,1
    - Dst: check_partial
      Src: /src/pcre2/src/pcre2_jit_compile.c:9180,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9181,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9181,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9182,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9189,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9191,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 103
    argCount: 5
    argNames:
    - common
    - cc
    - backtracks
    - withchecks
    - emptyfail
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - jump_list**
    - BOOL
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9193
      start: 9030
    functionDepth: 3
    functionLinenumber: 9030
    functionLinenumberEnd: 9193
    functionName: compile_ref_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - LABEL
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - check_partial
    - PRIV
    - SLJIT_MEM1
    - SLJIT_OFFSETOF
    - CMPTO
    - OP1
    - set_jumps
    - CMP
    - JUMPTO
    - read_char
    - OVECTOR
    - SLJIT_ASSERT
    - GET2
    linkageType: ''
    returnType: void
    signature: void compile_ref_matchingpath(compiler_common *common, PCRE2_SPTR cc,
      jump_list **backtracks, BOOL withchecks, BOOL emptyfail)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: PUSH_BACKTRACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9209,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9212,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9217,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9241,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9242,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9246,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9254,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9256,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9256,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9256,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9257,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9257,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9257,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9258,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9258,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9258,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9260,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9264,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9264,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9264,1
    - Dst: compile_dnref_search
      Src: /src/pcre2/src/pcre2_jit_compile.c:9267,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9268,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9268,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9269,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9269,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9270,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9270,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9273,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9277,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9279,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9279,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9279,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9280,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9280,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9280,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9283,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9283,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9283,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9283,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9284,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9284,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9284,1
    - Dst: compile_dnref_search
      Src: /src/pcre2/src/pcre2_jit_compile.c:9288,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9289,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9289,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9290,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9290,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9291,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9291,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9296,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9296,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9298,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9300,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9300,1
    - Dst: compile_ref_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:9301,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9305,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9305,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9306,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9307,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9307,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9309,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9312,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9313,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9314,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9314,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9314,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9315,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9316,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9323,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9324,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9324,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9324,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9325,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9328,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:9329,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9329,1
    - Dst: count_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:9331,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9335,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9337,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9337,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9337,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9338,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9338,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9338,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9340,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9340,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9340,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9347,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9347,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9347,1
    - Dst: compile_dnref_search
      Src: /src/pcre2/src/pcre2_jit_compile.c:9350,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9351,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9351,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9352,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9352,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9352,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9353,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9353,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9356,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9356,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9356,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9357,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9363,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9363,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9363,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9363,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9364,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9364,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:9364,1
    - Dst: compile_dnref_search
      Src: /src/pcre2/src/pcre2_jit_compile.c:9368,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9369,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9369,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9370,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9370,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9370,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9371,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9371,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:9375,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9375,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9377,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9377,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9377,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9377,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9380,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9380,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9380,1
    - Dst: compile_ref_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:9381,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9382,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9382,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9382,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9386,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9386,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9386,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9387,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9388,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9388,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9388,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9389,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:9389,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9392,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9392,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9392,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9392,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9392,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9395,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9396,1
    - Dst: count_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:9398,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 146
    argCount: 3
    argNames:
    - common
    - cc
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9400
      start: 9195
    functionDepth: 4
    functionLinenumber: 9195
    functionLinenumberEnd: 9400
    functionName: compile_ref_iterator_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_MEM1
    - compile_dnref_search
    - PUSH_BACKTRACK
    - CMP
    - BACKTRACK_AS
    - JUMPTO
    - STACK
    - GET2
    - allocate_stack
    - OP2
    - add_jump
    - JUMPHERE
    - count_match
    - SLJIT_COMPILE_ASSERT
    - OP1
    - CMPTO
    - compile_ref_matchingpath
    - JUMP
    - OVECTOR
    - LABEL
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_ref_iterator_matchingpath(compiler_common *common,
      PCRE2_SPTR cc, backtrack_common *parent)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9408,1
    - Dst: PUSH_BACKTRACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9412,1
    - Dst: get_framesize
      Src: /src/pcre2/src/pcre2_jit_compile.c:9415,1
    - Dst: compile_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:9418,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:9418,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:9418,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:9419,1
    - Dst: sljit_alloc_memory
      Src: /src/pcre2/src/pcre2_jit_compile.c:9433,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:9434,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:9434,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:9449,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9452,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9452,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9454,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9456,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9456,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:9457,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - common
    - cc
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9459
      start: 9402
    functionDepth: 3
    functionLinenumber: 9402
    functionLinenumberEnd: 9459
    functionName: compile_recurse_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - LABEL
    - JUMP
    - add_jump
    - next_opcode
    - sljit_get_compiler_error
    - compile_matchingpath
    - SLJIT_UNLIKELY
    - bracketend
    - sljit_alloc_memory
    - PUSH_BACKTRACK
    - BACKTRACK_AS
    - CMP
    - JUMPTO
    - get_framesize
    - GET
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_recurse_matchingpath(compiler_common *common,
      PCRE2_SPTR cc, backtrack_common *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9470,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 3
    argNames:
    - arguments
    - callout_block
    - jit_ovector
    argTypes:
    - struct jit_arguments*
    - pcre2_callout_block*
    - PCRE2_SPTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9513
      start: 9461
    functionDepth: 1
    functionLinenumber: 9461
    functionLinenumberEnd: 9513
    functionName: do_callout
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached:
    - SLJIT_COMPILE_ASSERT
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 do_callout(struct jit_arguments *arguments, pcre2_callout_block
      *callout_block, PCRE2_SPTR *jit_ovector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9517
      start: 9515
    functionDepth: 0
    functionLinenumber: 9515
    functionLinenumberEnd: 9517
    functionName: CALLOUT_ARG_OFFSET
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALLOUT_ARG_OFFSET(arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:9524,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9524,1
    - Dst: PUSH_BACKTRACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9530,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9534,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9536,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9537,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9537,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9538,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9540,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9540,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9540,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9541,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9541,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9541,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9542,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9542,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9542,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9545,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9545,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9545,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9548,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9548,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:9548,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9550,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9550,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9550,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9550,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9551,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9551,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9551,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9551,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9563,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9566,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9566,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9566,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9567,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9567,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9567,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9568,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9568,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9568,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9569,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9569,1
    - Dst: CALLOUT_ARG_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9569,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9571,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9574,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9574,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9576,1
    - Dst: GET_LOCAL_BASE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9577,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_compile.c:9578,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9578,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9578,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9578,1
    - Dst: SLJIT_ARG3
      Src: /src/pcre2/src/pcre2_jit_compile.c:9578,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9578,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9579,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9579,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9580,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9583,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9584,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9584,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9586,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9586,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 3
    argNames:
    - common
    - cc
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9590
      start: 9518
    functionDepth: 3
    functionLinenumber: 9518
    functionLinenumberEnd: 9590
    functionName: compile_callout_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_MEM1
    - CALLOUT_ARG_OFFSET
    - PUSH_BACKTRACK
    - JUMPTO
    - SLJIT_FUNC_OFFSET
    - allocate_stack
    - OP2
    - add_jump
    - OP1
    - PRIV
    - JUMP
    - SLJIT_ARG3
    - SLJIT_OFFSETOF
    - free_stack
    - SLJIT_ARG1
    - SLJIT_RET
    - SLJIT_ARG2
    - sljit_emit_icall
    - GET_LOCAL_BASE
    - SLJIT_ASSERT
    - GET
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_callout_matchingpath(compiler_common *common,
      PCRE2_SPTR cc, backtrack_common *parent)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9602,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:9613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - cc
    argTypes:
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9623
      start: 9595
    functionDepth: 1
    functionLinenumber: 9595
    functionLinenumberEnd: 9623
    functionName: assert_needs_str_ptr_saving
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    - GET
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE assert_needs_str_ptr_saving(PCRE2_SPTR cc)
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9657,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:9661,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9662,1
    - Dst: get_framesize
      Src: /src/pcre2/src/pcre2_jit_compile.c:9663,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9667,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9670,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9675,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9675,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9675,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9676,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9677,1
    - Dst: assert_needs_str_ptr_saving
      Src: /src/pcre2/src/pcre2_jit_compile.c:9683,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9690,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9690,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9693,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9696,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9696,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9699,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9699,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9699,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9703,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9704,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9704,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9705,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9705,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9705,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9711,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9713,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9713,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9714,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9715,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9715,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9717,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9717,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9718,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9718,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9718,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9722,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9722,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9722,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9723,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9723,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9723,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9724,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9724,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9727,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9727,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9727,1
    - Dst: init_frame
      Src: /src/pcre2/src/pcre2_jit_compile.c:9729,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:9732,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9753,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9753,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9753,1
    - Dst: compile_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:9756,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:9757,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:9757,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9772,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:9774,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9780,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9780,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9782,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9785,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9785,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9785,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9785,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9792,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9792,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9794,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9794,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9794,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9794,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9798,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9798,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9800,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9800,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9800,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9800,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9801,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9801,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9802,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9812,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9812,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9812,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9812,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9817,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9817,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9817,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9820,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9820,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9820,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9821,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9821,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9821,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9822,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9822,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9824,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9825,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9825,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9825,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9830,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9830,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9830,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9830,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9833,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9833,1
    - Dst: compile_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:9835,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:9836,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:9836,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:9851,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9851,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:9857,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9862,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9870,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:9871,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9871,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9872,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9874,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9874,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9877,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9877,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9878,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9878,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9879,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9881,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9885,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9885,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9885,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9885,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9891,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9891,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9891,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9899,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9900,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9900,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9900,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9903,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9907,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9907,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9907,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9911,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9912,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9912,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9912,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:9915,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9916,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9916,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9918,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9920,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:9923,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9923,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9928,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9928,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9928,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9933,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9935,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9935,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9935,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9939,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9940,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9940,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9940,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9948,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9948,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9949,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9949,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9949,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9954,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9954,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9957,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9957,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9957,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9959,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9959,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9959,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:9963,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9964,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9964,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9964,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9965,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9965,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9965,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9972,1
    - Dst: SET_LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9973,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:9977,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:9978,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9981,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9981,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:9982,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:9982,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9983,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9983,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9983,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:9984,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9985,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9985,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:9987,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:9987,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9996,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:9996,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:9996,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10001,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10002,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10002,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10002,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10005,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10009,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10009,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10009,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10010,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10010,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10010,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10014,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10015,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10015,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10015,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10018,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10019,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10019,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10023,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:10026,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:10027,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10032,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:10033,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10033,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 284
    argCount: 4
    argNames:
    - common
    - cc
    - backtrack
    - conditional
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - assert_backtrack*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10050
      start: 9625
    functionDepth: 3
    functionLinenumber: 9625
    functionLinenumberEnd: 10050
    functionName: compile_assert_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_MEM1
    - SET_LABEL
    - CMP
    - JUMPTO
    - SLJIT_ASSERT
    - STACK
    - get_framesize
    - allocate_stack
    - OP2
    - add_jump
    - JUMPHERE
    - assert_needs_str_ptr_saving
    - OP1
    - set_jumps
    - memset
    - JUMP
    - PRIVATE_DATA
    - free_stack
    - sljit_get_compiler_error
    - compile_matchingpath
    - compile_backtrackingpath
    - SLJIT_UNLIKELY
    - init_frame
    - LABEL
    - GET
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR compile_assert_matchingpath(compiler_common *common, PCRE2_SPTR
      cc, assert_backtrack *backtrack, BOOL conditional)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10060,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10060,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10068,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10072,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10072,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10072,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10072,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10076,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10076,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10076,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10080,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10080,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10080,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10080,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10086,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10086,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10088,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10088,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10088,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10093,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10093,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10093,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10097,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10097,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 6
    argNames:
    - common
    - ket
    - framesize
    - private_data_ptr
    - has_alternatives
    - needs_control_head
    argTypes:
    - compiler_common*
    - PCRE2_UCHAR
    - int
    - int
    - BOOL
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10098
      start: 10052
    functionDepth: 2
    functionLinenumber: 10052
    functionLinenumberEnd: 10098
    functionName: match_once_common
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - SLJIT_MEM1
    - OP1
    - free_stack
    - STACK
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE match_once_common(compiler_common *common, PCRE2_UCHAR
      ket, int framesize, int private_data_ptr, BOOL has_alternatives, BOOL needs_control_head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10106,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10106,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10107,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10107,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10108,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10108,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10108,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10113,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10113,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10113,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10114,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10114,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10114,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10115,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10115,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10115,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10116,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10116,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10117,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10117,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10117,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10118,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10118,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10118,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10119,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10119,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - common
    - stacksize
    - offset
    - private_data_ptr
    argTypes:
    - compiler_common*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10123
      start: 10100
    functionDepth: 1
    functionLinenumber: 10100
    functionLinenumberEnd: 10123
    functionName: match_capture_common
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_MEM1
    - OP1
    - STACK
    - OVECTOR
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE match_capture_common(compiler_common *common, int stacksize,
      int offset, int private_data_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:10127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - endptr
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10130
      start: 10125
    functionDepth: 0
    functionLinenumber: 10125
    functionLinenumberEnd: 10130
    functionName: do_script_run
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR do_script_run(PCRE2_SPTR ptr, PCRE2_SPTR endptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:10136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - endptr
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10139
      start: 10134
    functionDepth: 0
    functionLinenumber: 10134
    functionLinenumberEnd: 10139
    functionName: do_script_run_utf
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR do_script_run_utf(PCRE2_SPTR ptr, PCRE2_SPTR endptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10147,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10149,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10149,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_compile.c:10151,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_compile.c:10151,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10151,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10151,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:10152,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:10152,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_compile.c:10154,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_compile.c:10154,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10154,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10154,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:10154,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10157,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:10158,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - common
    - private_data_ptr
    - parent
    argTypes:
    - compiler_common*
    - int
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10159
      start: 10143
    functionDepth: 2
    functionLinenumber: 10143
    functionLinenumberEnd: 10159
    functionName: match_script_run_common
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - add_jump
    - SLJIT_FUNC_OFFSET
    - SLJIT_RET
    - SLJIT_MEM1
    - SLJIT_ARG2
    - OP1
    - sljit_emit_icall
    - CMP
    - SLJIT_ARG1
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE match_script_run_common(compiler_common *common, int private_data_ptr,
      backtrack_common *parent)
  - BBCount: 99
    BranchProfiles: []
    Callsites:
    - Dst: PUSH_BACKTRACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10237,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:10248,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:10250,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:10252,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:10253,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:10254,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:10255,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10256,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10264,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10265,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:10266,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:10269,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10271,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:10276,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10282,1
    - Dst: OVECTOR_PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:10285,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10291,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10293,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:10299,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10300,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10301,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10303,1
    - Dst: get_framesize
      Src: /src/pcre2/src/pcre2_jit_compile.c:10303,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10314,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10319,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10319,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10319,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10324,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10324,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10324,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10329,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10329,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10329,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10332,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10333,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10337,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10338,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10338,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10338,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10340,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:10341,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10343,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10346,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10346,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10351,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10351,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10352,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10352,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10352,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10352,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:10354,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10358,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10359,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10359,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10359,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:10360,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10366,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10366,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10368,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10372,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10372,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10376,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10378,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10387,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10387,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10391,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10398,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10398,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10402,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10403,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10403,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10409,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10415,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10415,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10415,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10421,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10421,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10422,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10422,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10422,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10423,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10424,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10424,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10425,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10425,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10425,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10428,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10428,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10428,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10435,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10436,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10439,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10439,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10439,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10441,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10441,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10442,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10447,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10447,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10447,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10448,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10448,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10450,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10450,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10450,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10454,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10454,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10455,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10455,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10455,1
    - Dst: init_frame
      Src: /src/pcre2/src/pcre2_jit_compile.c:10457,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10457,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10465,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10465,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10466,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10467,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10467,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10468,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10468,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10469,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10469,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10470,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10470,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10470,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10471,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10471,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10471,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10475,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10475,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10476,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10477,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10477,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10478,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10478,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10478,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10484,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10484,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10485,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10486,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10486,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10487,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10487,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10487,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10492,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10493,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10493,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10493,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10501,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:10502,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10502,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10503,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10503,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10503,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10503,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10503,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10503,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10508,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10510,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10511,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10512,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10513,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10513,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10513,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10514,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10514,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10514,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10514,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10519,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10519,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10519,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10519,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10520,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10523,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:10524,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10524,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10524,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10530,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10531,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10542,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10550,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10561,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10562,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10563,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10566,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:10583,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10591,1
    - Dst: sljit_alloc_memory
      Src: /src/pcre2/src/pcre2_jit_compile.c:10593,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:10594,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:10594,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:10596,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10598,1
    - Dst: compile_assert_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:10599,1
    - Dst: compile_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:10603,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:10604,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:10604,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10608,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10608,1
    - Dst: match_once_common
      Src: /src/pcre2/src/pcre2_jit_compile.c:10611,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10611,1
    - Dst: match_script_run_common
      Src: /src/pcre2/src/pcre2_jit_compile.c:10614,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10620,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10620,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10636,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10642,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10642,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10642,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10649,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10649,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10649,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10651,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10651,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10651,1
    - Dst: match_capture_common
      Src: /src/pcre2/src/pcre2_jit_compile.c:10656,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:10662,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10671,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10671,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10671,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10673,1
    - Dst: sljit_emit_put_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:10673,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10673,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10673,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10676,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10676,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10682,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10682,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10683,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10683,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10683,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10691,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10691,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10692,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10692,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10692,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:10693,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10696,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10701,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10701,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:10707,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10707,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10710,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:10714,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:10717,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10718,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10718,1
    - Dst: count_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:10723,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10724,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10724,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10724,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:10725,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10730,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10730,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10731,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10732,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10732,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10732,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10736,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10736,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:10741,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:10744,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10748,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10750,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10750,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:10751,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10751,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10752,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10752,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10755,1
    - Dst: count_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:10761,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10770,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10770,1
    CyclomaticComplexity: 159
    EdgeCount: 159
    ICount: 374
    argCount: 3
    argNames:
    - common
    - cc
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10773
      start: 10214
    functionDepth: 4
    functionLinenumber: 10214
    functionLinenumberEnd: 10773
    functionName: compile_bracket_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - match_capture_common
    - SLJIT_MEM1
    - sljit_alloc_memory
    - PUSH_BACKTRACK
    - BACKTRACK_AS
    - CMP
    - JUMPTO
    - STACK
    - get_framesize
    - GET2
    - allocate_stack
    - OP2
    - add_jump
    - JUMPHERE
    - count_match
    - SLJIT_COMPILE_ASSERT
    - OP1
    - sljit_emit_put_label
    - CMPTO
    - memset
    - JUMP
    - match_once_common
    - PRIVATE_DATA
    - bracketend
    - free_stack
    - LABEL
    - match_script_run_common
    - sljit_get_compiler_error
    - compile_matchingpath
    - SLJIT_UNLIKELY
    - compile_assert_matchingpath
    - OVECTOR_PRIV
    - OVECTOR
    - init_frame
    - SLJIT_ASSERT
    - GET
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR compile_bracket_matchingpath(compiler_common *common, PCRE2_SPTR
      cc, backtrack_common *parent)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: PUSH_BACKTRACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10792,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:10800,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10801,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10802,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10812,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:10815,1
    - Dst: OVECTOR_PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:10816,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:10822,1
    - Dst: get_framesize
      Src: /src/pcre2/src/pcre2_jit_compile.c:10826,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10827,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10844,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10845,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10847,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10847,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10853,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10853,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10853,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10854,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10854,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10854,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10855,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10855,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10855,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10857,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10857,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10858,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10858,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10858,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10860,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10860,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10863,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10863,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10863,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10870,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10870,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10871,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10871,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10871,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10878,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10878,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10878,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10882,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10882,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10882,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:10894,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:10896,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10897,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10897,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10899,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10899,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10900,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10900,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10905,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10905,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10905,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10910,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10910,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10910,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10915,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10915,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10915,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10918,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10918,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10918,1
    - Dst: init_frame
      Src: /src/pcre2/src/pcre2_jit_compile.c:10919,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10924,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10924,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:10926,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:10931,1
    - Dst: compile_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:10933,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:10934,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:10934,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10940,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10940,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10944,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10944,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10945,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10945,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10945,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10946,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10946,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10948,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10948,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10949,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10949,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10949,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10954,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10954,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10954,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10955,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10955,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10955,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10960,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10960,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10960,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10960,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:10963,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10963,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10966,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10966,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10966,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10972,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10972,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10973,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10973,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10974,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10974,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10974,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10975,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10975,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10977,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10977,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10978,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10978,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:10978,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10982,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10982,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:10983,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10985,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10985,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10985,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10986,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10986,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10986,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10991,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10991,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10991,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10991,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:10994,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:10994,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10999,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:10999,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:10999,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11001,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11001,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11001,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11005,1
    - Dst: flush_stubs
      Src: /src/pcre2/src/pcre2_jit_compile.c:11006,1
    - Dst: compile_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11008,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:11009,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:11009,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11011,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11011,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11016,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11016,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11018,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11018,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11018,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11026,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11026,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11027,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11027,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11031,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11031,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11032,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11032,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11032,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11047,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11047,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11047,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11047,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11049,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11049,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11049,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11049,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11053,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11053,1
    - Dst: count_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11054,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 195
    argCount: 3
    argNames:
    - common
    - cc
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11056
      start: 10775
    functionDepth: 3
    functionLinenumber: 10775
    functionLinenumberEnd: 11056
    functionName: compile_bracketpos_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_MEM1
    - flush_stubs
    - BACKTRACK_AS
    - PUSH_BACKTRACK
    - CMP
    - JUMPTO
    - SLJIT_ASSERT
    - STACK
    - get_framesize
    - GET2
    - allocate_stack
    - OP2
    - add_jump
    - count_match
    - OP1
    - set_jumps
    - PRIVATE_DATA
    - sljit_get_compiler_error
    - compile_matchingpath
    - compile_backtrackingpath
    - SLJIT_UNLIKELY
    - OVECTOR_PRIV
    - OVECTOR
    - init_frame
    - LABEL
    - GET
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR compile_bracketpos_matchingpath(compiler_common *common,
      PCRE2_SPTR cc, backtrack_common *parent)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11096,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:11099,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11126,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11127,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11128,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11165,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11183,1
    - Dst: next_opcode
      Src: /src/pcre2/src/pcre2_jit_compile.c:11191,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:11198,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:11198,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 104
    argCount: 7
    argNames:
    - common
    - cc
    - opcode
    - type
    - max
    - exact
    - end
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - PCRE2_UCHAR*
    - PCRE2_UCHAR*
    - sljit_u32*
    - sljit_u32*
    - PCRE2_SPTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11201
      start: 11058
    functionDepth: 2
    functionLinenumber: 11058
    functionLinenumberEnd: 11201
    functionName: get_iterator_parameters
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - GET_EXTRALEN
    - next_opcode
    - HAS_EXTRALEN
    - GET
    - SLJIT_ASSERT
    - GET2
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE get_iterator_parameters(compiler_common *common, PCRE2_SPTR
      cc, PCRE2_UCHAR *opcode, PCRE2_UCHAR *type, sljit_u32 *max, sljit_u32 *exact,
      PCRE2_SPTR *end)
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:11210,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:11220,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11221,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11221,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11222,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11223,1
    - Dst: PUSH_BACKTRACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11229,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11241,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11245,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11245,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11245,1
    - Dst: get_iterator_parameters
      Src: /src/pcre2/src/pcre2_jit_compile.c:11247,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11256,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11263,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11271,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11271,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11272,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11272,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11273,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11274,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11275,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11276,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11277,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11281,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11282,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11283,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11284,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11285,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11290,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11294,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11294,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11295,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11295,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11296,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11297,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11298,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11298,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11300,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11300,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11308,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11312,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11313,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11315,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11316,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11316,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11316,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11317,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11317,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11317,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11320,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11320,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11322,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11323,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11323,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11326,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11326,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11327,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11328,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11329,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11329,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11333,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11334,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11334,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11334,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11335,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:11337,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11338,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11338,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11350,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11352,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11353,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11355,1
    - Dst: process_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11356,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11359,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11359,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11360,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11360,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11370,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11372,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11373,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11373,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11377,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:11378,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11382,1
    - Dst: process_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11383,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:11384,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11387,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11390,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11390,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11391,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11391,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_jit_compile.c:11403,1
    - Dst: char_has_othercase
      Src: /src/pcre2/src/pcre2_jit_compile.c:11407,1
    - Dst: char_get_othercase_bit
      Src: /src/pcre2/src/pcre2_jit_compile.c:11409,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11420,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11422,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11429,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11430,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11431,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11438,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11441,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11442,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11445,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11446,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11446,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11448,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11450,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11450,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:11451,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11453,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11454,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11454,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11454,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11456,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11457,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11460,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11461,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11462,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11466,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11467,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11467,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11471,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11472,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11474,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11474,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11475,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11476,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11476,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11476,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11478,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11482,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11483,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11484,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11488,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11489,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:11490,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11491,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11492,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11495,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11495,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11496,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11496,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11497,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11502,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11504,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11507,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11510,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11513,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11515,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11516,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11517,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11520,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11525,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11526,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11526,1
    - Dst: detect_partial_match_to
      Src: /src/pcre2/src/pcre2_jit_compile.c:11529,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11530,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11530,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11532,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11532,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11536,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11536,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11539,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11540,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11543,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11548,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11548,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11549,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11549,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11550,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11554,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11554,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11557,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11557,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11562,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11563,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11564,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11564,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11566,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11566,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11570,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11572,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11573,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11574,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11575,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11575,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11580,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11582,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11583,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11585,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11585,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11586,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11586,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11599,1
    - Dst: process_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11600,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11602,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11602,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11609,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11610,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11611,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11612,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11613,1
    - Dst: detect_partial_match_to
      Src: /src/pcre2/src/pcre2_jit_compile.c:11614,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11616,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11616,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11617,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11621,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11621,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11623,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11623,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11629,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11630,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11631,1
    - Dst: detect_partial_match_to
      Src: /src/pcre2/src/pcre2_jit_compile.c:11632,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11633,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11633,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11635,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11635,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11636,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11636,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11637,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11637,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11639,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11639,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11643,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11647,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11647,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11648,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11650,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11651,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11652,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11653,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11653,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11654,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11655,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11655,1
    - Dst: detect_partial_match_to
      Src: /src/pcre2/src/pcre2_jit_compile.c:11656,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11658,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11658,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11659,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11659,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11666,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11666,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11670,1
    - Dst: CMOV
      Src: /src/pcre2/src/pcre2_jit_compile.c:11671,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11675,1
    - Dst: process_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11676,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:11677,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11682,1
    - Dst: detect_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11684,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11685,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11686,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11687,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11688,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11688,1
    - Dst: detect_partial_match_to
      Src: /src/pcre2/src/pcre2_jit_compile.c:11689,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11690,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11690,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11692,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11692,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11693,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11693,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11694,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11694,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11698,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11699,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11700,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11701,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:11702,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:11702,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11703,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:11707,1
    - Dst: count_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:11711,1
    CyclomaticComplexity: 100
    EdgeCount: 100
    ICount: 338
    argCount: 3
    argNames:
    - common
    - cc
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11713
      start: 11203
    functionDepth: 5
    functionLinenumber: 11203
    functionLinenumberEnd: 11713
    functionName: compile_iterator_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - process_partial_match
    - SLJIT_MEM1
    - IN_UCHARS
    - SLJIT_UNREACHABLE
    - CMOV
    - PUSH_BACKTRACK
    - CMP
    - BACKTRACK_AS
    - JUMPTO
    - SLJIT_ASSERT
    - char_get_othercase_bit
    - get_iterator_parameters
    - STACK
    - detect_partial_match
    - allocate_stack
    - OP2
    - add_jump
    - JUMPHERE
    - count_match
    - compile_char1_matchingpath
    - OP1
    - set_jumps
    - CMPTO
    - JUMP
    - char_has_othercase
    - PRIVATE_DATA
    - detect_partial_match_to
    - HAS_EXTRALEN
    - LABEL
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR compile_iterator_matchingpath(compiler_common *common, PCRE2_SPTR
      cc, backtrack_common *parent)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PUSH_BACKTRACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11720,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11724,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11724,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11729,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11729,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11735,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11735,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11737,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11742,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11742,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11742,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:11742,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11744,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11744,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:11744,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11748,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11749,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11749,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:11749,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11752,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11752,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:11752,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11754,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11755,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11755,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11756,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11758,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11758,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11760,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11762,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11762,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:11762,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11764,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11764,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:11766,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:11767,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:11767,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - common
    - cc
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11769
      start: 11715
    functionDepth: 2
    functionLinenumber: 11715
    functionLinenumberEnd: 11769
    functionName: compile_fail_accept_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    - SLJIT_MEM1
    - SLJIT_OFFSETOF
    - OP1
    - PUSH_BACKTRACK
    - CMP
    - JUMPTO
    - CMPTO
    - OVECTOR
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_fail_accept_matchingpath(compiler_common *common,
      PCRE2_SPTR cc, backtrack_common *parent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11774,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11782,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11782,1
    - Dst: OVECTOR_PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:11782,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11784,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11784,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:11784,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11786,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11786,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:11786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - common
    - cc
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11788
      start: 11771
    functionDepth: 1
    functionLinenumber: 11771
    functionLinenumberEnd: 11788
    functionName: compile_close_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_MEM1
    - OP1
    - OVECTOR_PRIV
    - OVECTOR
    - GET2
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_close_matchingpath(compiler_common *common, PCRE2_SPTR
      cc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PUSH_BACKTRACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11801,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11805,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11806,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11806,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11806,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11813,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11814,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11815,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11815,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11816,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11816,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:11816,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - common
    - cc
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11820
      start: 11790
    functionDepth: 3
    functionLinenumber: 11790
    functionLinenumberEnd: 11820
    functionName: compile_control_verb_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - allocate_stack
    - SLJIT_MEM1
    - SLJIT_OFFSETOF
    - OP1
    - PUSH_BACKTRACK
    - STACK
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_control_verb_matchingpath(compiler_common *common,
      PCRE2_SPTR cc, backtrack_common *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PUSH_BACKTRACK_NOVALUE
      Src: /src/pcre2/src/pcre2_jit_compile.c:11831,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11832,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11833,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11834,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11835,1
    - Dst: get_framesize
      Src: /src/pcre2/src/pcre2_jit_compile.c:11835,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11837,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11840,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11840,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11841,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:11843,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11843,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11845,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11845,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11846,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11846,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11846,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11846,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11847,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11847,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11847,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11848,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11848,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11848,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:11850,1
    - Dst: init_frame
      Src: /src/pcre2/src/pcre2_jit_compile.c:11852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - common
    - cc
    - ccend
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11853
      start: 11824
    functionDepth: 3
    functionLinenumber: 11824
    functionLinenumberEnd: 11853
    functionName: compile_then_trap_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - allocate_stack
    - OP2
    - PUSH_BACKTRACK_NOVALUE
    - SLJIT_MEM1
    - OP1
    - BACKTRACK_AS
    - STACK
    - get_framesize
    - init_frame
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_then_trap_matchingpath(compiler_common *common,
      PCRE2_SPTR cc, PCRE2_SPTR ccend, backtrack_common *parent)
  - BBCount: 157
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11862,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:11866,1
    - Dst: compile_then_trap_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11870,1
    - Dst: compile_simple_assertion_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11888,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11910,1
    - Dst: PUSH_BACKTRACK_NOVALUE
      Src: /src/pcre2/src/pcre2_jit_compile.c:11914,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11915,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11915,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:11915,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:11916,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11917,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11917,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:11917,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11918,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:11918,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:11918,1
    - Dst: compile_charn_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11925,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11927,1
    - Dst: compile_iterator_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:11995,1
    - Dst: compile_iterator_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12001,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12003,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:12008,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:12008,1
    - Dst: compile_iterator_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12009,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12011,1
    - Dst: compile_ref_iterator_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12018,1
    - Dst: compile_ref_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12021,1
    - Dst: compile_ref_iterator_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12029,1
    - Dst: compile_dnref_search
      Src: /src/pcre2/src/pcre2_jit_compile.c:12032,1
    - Dst: compile_ref_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12033,1
    - Dst: compile_recurse_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12039,1
    - Dst: compile_callout_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12044,1
    - Dst: PUSH_BACKTRACK_NOVALUE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12051,1
    - Dst: compile_assert_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12052,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12052,1
    - Dst: PUSH_BACKTRACK_NOVALUE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12056,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:12057,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12060,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12061,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12061,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12061,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12065,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12066,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12066,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12066,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12067,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12067,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12067,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12069,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12069,1
    - Dst: count_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:12070,1
    - Dst: compile_bracket_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12083,1
    - Dst: compile_bracket_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12088,1
    - Dst: PUSH_BACKTRACK_NOVALUE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12091,1
    - Dst: compile_assert_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12092,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12092,1
    - Dst: compile_bracketpos_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12101,1
    - Dst: PUSH_BACKTRACK_NOVALUE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12105,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12106,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12107,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12107,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12108,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12110,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12111,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12111,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12111,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12112,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12113,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12113,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12114,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12114,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:12114,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12117,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12117,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12118,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12118,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12119,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12119,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12119,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12120,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12120,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12120,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12121,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12121,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12121,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12122,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12122,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12122,1
    - Dst: compile_control_verb_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12135,1
    - Dst: compile_fail_accept_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12141,1
    - Dst: compile_close_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12145,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:12149,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12153,1
    - Dst: PUSH_BACKTRACK_NOVALUE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12163,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12164,1
    - Dst: BACKTRACK_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12165,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12168,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 264
    argCount: 4
    argNames:
    - common
    - cc
    - ccend
    - parent
    argTypes:
    - compiler_common*
    - PCRE2_SPTR
    - PCRE2_SPTR
    - backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12169
      start: 11855
    functionDepth: 6
    functionLinenumber: 11855
    functionLinenumberEnd: 12169
    functionName: compile_matchingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 4
    functionsReached:
    - compile_simple_assertion_matchingpath
    - SLJIT_MEM1
    - compile_ref_iterator_matchingpath
    - compile_dnref_search
    - SLJIT_UNREACHABLE
    - BACKTRACK_AS
    - STACK
    - allocate_stack
    - PUSH_BACKTRACK_NOVALUE
    - compile_bracket_matchingpath
    - compile_control_verb_matchingpath
    - count_match
    - compile_callout_matchingpath
    - compile_bracketpos_matchingpath
    - compile_char1_matchingpath
    - OP1
    - compile_ref_matchingpath
    - bracketend
    - SLJIT_OFFSETOF
    - compile_fail_accept_matchingpath
    - LABEL
    - compile_iterator_matchingpath
    - compile_close_matchingpath
    - compile_assert_matchingpath
    - compile_recurse_matchingpath
    - compile_then_trap_matchingpath
    - OVECTOR
    - SLJIT_ASSERT
    - GET
    - compile_charn_matchingpath
    linkageType: ''
    returnType: void
    signature: void compile_matchingpath(compiler_common *common, PCRE2_SPTR cc, PCRE2_SPTR
      ccend, backtrack_common *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - current
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12183
      start: 12175
    functionDepth: 0
    functionLinenumber: 12175
    functionLinenumberEnd: 12183
    functionName: COMPILE_BACKTRACKINGPATH
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILE_BACKTRACKINGPATH(current)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12185
      start: 12184
    functionDepth: 0
    functionLinenumber: 12184
    functionLinenumberEnd: 12185
    functionName: CURRENT_AS
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_AS(type)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:12197,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12198,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12198,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12199,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12200,1
    - Dst: get_iterator_parameters
      Src: /src/pcre2/src/pcre2_jit_compile.c:12202,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12210,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12211,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12211,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12211,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12212,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12212,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12212,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12213,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12214,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12214,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12218,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12220,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12221,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12222,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12222,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12224,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12225,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12226,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12226,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12226,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12227,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12228,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12229,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12229,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12230,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12230,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12230,1
    - Dst: move_back
      Src: /src/pcre2/src/pcre2_jit_compile.c:12231,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12232,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12236,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12237,1
    - Dst: move_back
      Src: /src/pcre2/src/pcre2_jit_compile.c:12238,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12239,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12240,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12240,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12242,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12244,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12249,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12250,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12251,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12252,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12252,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12253,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12253,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12255,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12259,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12260,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12261,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12262,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12262,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12264,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12265,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12266,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12267,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12267,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12269,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12269,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12271,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12275,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12276,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12277,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12277,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12278,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12279,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12279,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12279,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12280,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12281,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12282,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12282,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12283,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12285,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12289,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12290,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12291,1
    - Dst: compile_char1_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12292,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12293,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12293,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12294,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12294,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12295,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12297,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12307,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12311,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12311,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 94
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12312
      start: 12186
    functionDepth: 5
    functionLinenumber: 12186
    functionLinenumberEnd: 12312
    functionName: compile_iterator_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_MEM1
    - IN_UCHARS
    - SLJIT_UNREACHABLE
    - CMP
    - JUMPTO
    - SLJIT_ASSERT
    - get_iterator_parameters
    - STACK
    - OP2
    - add_jump
    - JUMPHERE
    - compile_char1_matchingpath
    - set_jumps
    - OP1
    - CMPTO
    - JUMP
    - move_back
    - PRIVATE_DATA
    - free_stack
    - CURRENT_AS
    - LABEL
    linkageType: ''
    returnType: void
    signature: void compile_iterator_backtrackingpath(compiler_common *common, struct
      backtrack_common *current)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12326,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12326,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12327,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12327,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12327,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12328,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12329,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12329,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12333,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12333,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12333,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12334,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12334,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12335,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12335,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12337
      start: 12314
    functionDepth: 2
    functionLinenumber: 12314
    functionLinenumberEnd: 12337
    functionName: compile_ref_iterator_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_MEM1
    - OP1
    - set_jumps
    - free_stack
    - CMPTO
    - STACK
    - LABEL
    - CURRENT_AS
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_ref_iterator_backtrackingpath(compiler_common
      *common, struct backtrack_common *current)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12344,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12346,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12348,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12348,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12350,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12351,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12351,1
    - Dst: compile_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12354,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12356,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12357
      start: 12339
    functionDepth: 2
    functionLinenumber: 12339
    functionLinenumberEnd: 12357
    functionName: compile_recurse_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - JUMP
    - add_jump
    - compile_backtrackingpath
    - set_jumps
    - JUMPTO
    - CMPTO
    - LABEL
    - CURRENT_AS
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_recurse_backtrackingpath(compiler_common *common,
      struct backtrack_common *current)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12366,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12375,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12376,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12376,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12376,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12379,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12381,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12381,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12385,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12385,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12385,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12386,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12386,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12387,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12396,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12396,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12396,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12397,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12397,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12398,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12401,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12402,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12407,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12407,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12407,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12408,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12408,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12409,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12409,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12409,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12410,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12410,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12411,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12411,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12411,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12413,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12413,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12416,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12416,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12421,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12422,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12422,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12422,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12423,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12423,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12424,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12426
      start: 12359
    functionDepth: 2
    functionLinenumber: 12359
    functionLinenumberEnd: 12426
    functionName: compile_assert_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - LABEL
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - OP1
    - set_jumps
    - free_stack
    - CMP
    - JUMPTO
    - CMPTO
    - STACK
    - SLJIT_ASSERT
    - CURRENT_AS
    linkageType: ''
    returnType: void
    signature: void compile_assert_backtrackingpath(compiler_common *common, struct
      backtrack_common *current)
  - BBCount: 85
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12433,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:12458,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:12460,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:12462,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:12463,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:12464,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12465,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:12472,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:12474,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:12474,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12475,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12477,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:12478,1
    - Dst: no_alternatives
      Src: /src/pcre2/src/pcre2_jit_compile.c:12481,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12486,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12487,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12493,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12493,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12493,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12494,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12496,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12496,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12498,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12498,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12505,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12505,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12505,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12506,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12507,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12514,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12514,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12514,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12518,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12518,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12521,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12526,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12527,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12527,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12527,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12530,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12530,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12531,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12531,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12531,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12531,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12531,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12535,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12538,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12538,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12540,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12542,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12542,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12542,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12546,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12546,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12546,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12547,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12548,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12552,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12552,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12553,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12560,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12561,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12561,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12561,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12562,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12562,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12562,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12563,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12563,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12564,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12564,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12564,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12565,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12566,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12566,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12566,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12567,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12567,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12567,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12571,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12571,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12571,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12572,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12572,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12572,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12573,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12574,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12574,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12574,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12575,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12575,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12575,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:12579,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12581,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12583,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12583,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12584,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12584,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12585,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12585,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12587,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:12589,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:12589,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12594,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12594,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12594,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12595,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12598,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12603,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12603,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12603,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12604,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12608,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12610,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12610,1
    - Dst: sljit_set_put_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:12611,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12611,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12611,1
    - Dst: sljit_emit_op0
      Src: /src/pcre2/src/pcre2_jit_compile.c:12612,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12615,1
    - Dst: COMPILE_BACKTRACKINGPATH
      Src: /src/pcre2/src/pcre2_jit_compile.c:12618,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12620,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12620,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:12622,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:12622,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12627,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12628,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12631,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12631,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12632,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12632,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12633,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12633,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12633,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12634,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12635,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12635,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12637,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12638,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12638,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12638,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12640,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12642,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12643,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12644,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12644,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12644,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12647,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:12662,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12668,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12668,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12670,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12670,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12670,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12673,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12673,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12673,1
    - Dst: compile_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12675,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:12676,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:12676,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12680,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12680,1
    - Dst: match_script_run_common
      Src: /src/pcre2/src/pcre2_jit_compile.c:12683,1
    - Dst: match_once_common
      Src: /src/pcre2/src/pcre2_jit_compile.c:12689,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12689,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12695,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12695,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12711,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12717,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12717,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12717,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12724,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12724,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12724,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12726,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12726,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12726,1
    - Dst: match_capture_common
      Src: /src/pcre2/src/pcre2_jit_compile.c:12731,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12736,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12736,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12736,1
    - Dst: sljit_emit_put_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:12738,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12738,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12738,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12744,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12744,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12745,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12745,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12745,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12748,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12748,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12754,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12758,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12759,1
    - Dst: sljit_set_put_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:12764,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12764,1
    - Dst: sljit_emit_op0
      Src: /src/pcre2/src/pcre2_jit_compile.c:12765,1
    - Dst: COMPILE_BACKTRACKINGPATH
      Src: /src/pcre2/src/pcre2_jit_compile.c:12769,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12771,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12771,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12772,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12778,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12779,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12782,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12782,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12783,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12783,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12784,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12784,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12784,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12785,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12786,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12786,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12788,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12793,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12801,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12801,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12801,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12802,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12802,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12802,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12803,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12804,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12804,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12804,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12805,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12805,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12805,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12809,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12809,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12809,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12810,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12811,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12811,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12816,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12816,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12816,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12816,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12817,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:12821,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12824,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12827,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12836,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12838,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12840,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12841,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12841,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12841,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12841,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12841,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12844,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12844,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12844,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12846,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12847,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12847,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12853,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12853,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12854,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12854,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12855,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12859,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12859,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12859,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12861,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12863,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12863,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12866,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12866,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12866,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12867,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12867,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12868,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12869,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12874,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12874,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12874,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12880,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12881,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12883,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12885,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12889,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12889,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12889,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12890,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12890,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12891,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 318
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12893
      start: 12428
    functionDepth: 7
    functionLinenumber: 12428
    functionLinenumberEnd: 12893
    functionName: compile_bracket_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - match_capture_common
    - SLJIT_MEM1
    - no_alternatives
    - CMP
    - JUMPTO
    - SLJIT_ASSERT
    - STACK
    - GET2
    - allocate_stack
    - OP2
    - add_jump
    - JUMPHERE
    - sljit_emit_ijump
    - sljit_set_put_label
    - OP1
    - sljit_emit_op0
    - set_jumps
    - sljit_emit_put_label
    - CMPTO
    - JUMP
    - match_once_common
    - PRIVATE_DATA
    - bracketend
    - free_stack
    - CURRENT_AS
    - match_script_run_common
    - sljit_get_compiler_error
    - COMPILE_BACKTRACKINGPATH
    - compile_matchingpath
    - SLJIT_UNLIKELY
    - OVECTOR
    - LABEL
    - GET
    linkageType: ''
    returnType: void
    signature: void compile_bracket_backtrackingpath(compiler_common *common, struct
      backtrack_common *current)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12901,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12905,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12906,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12906,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12906,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12907,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12907,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12907,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12908,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12908,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12908,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12910,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12910,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12910,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12911,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12911,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:12911,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12913,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12913,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12915,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12915,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12916,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12916,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12920,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12920,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12920,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12921,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12921,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:12922,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12922,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12926,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:12927,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12927,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:12929,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12929,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12930,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12932,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12932,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12932,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12932,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12932,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12932,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12933
      start: 12895
    functionDepth: 2
    functionLinenumber: 12895
    functionLinenumberEnd: 12933
    functionName: compile_bracketpos_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - CURRENT_AS
    - SLJIT_MEM1
    - OP1
    - set_jumps
    - free_stack
    - OVECTOR
    - STACK
    - LABEL
    - GET2
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_bracketpos_backtrackingpath(compiler_common *common,
      struct backtrack_common *current)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compile_bracket_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12945,1
    - Dst: compile_bracket_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12946,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:12950,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:12952,1
    - Dst: compile_assert_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:12954,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12957
      start: 12935
    functionDepth: 8
    functionLinenumber: 12935
    functionLinenumberEnd: 12957
    functionName: compile_braminzero_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - compile_bracket_matchingpath
    - compile_assert_matchingpath
    - compile_bracket_backtrackingpath
    - SLJIT_ASSERT
    - CURRENT_AS
    - memset
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_braminzero_backtrackingpath(compiler_common *common,
      struct backtrack_common *current)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:12970,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12972,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12972,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12973,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12974,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12975,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:12977,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12978,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12978,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12978,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:12979,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12980,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12980,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12980,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12981,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:12981,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:12981,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12982,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12982,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12987,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12987,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:12996,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:12996,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:12998,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13004,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13005,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13005,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13006,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_compile.c:13007,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_compile.c:13007,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13007,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_compile.c:13007,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:13007,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13009,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:13010,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13010,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13015,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13015,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13015,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13017,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:13018,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13018,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13019
      start: 12959
    functionDepth: 2
    functionLinenumber: 12959
    functionLinenumberEnd: 13019
    functionName: compile_control_verb_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_FUNC_OFFSET
    - SLJIT_RET
    - SLJIT_MEM1
    - SLJIT_ARG2
    - OP1
    - sljit_emit_icall
    - CMP
    - SLJIT_ARG1
    - JUMPTO
    - SLJIT_ASSERT
    - CMPTO
    - STACK
    - LABEL
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_control_verb_backtrackingpath(compiler_common
      *common, struct backtrack_common *current)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:13027,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:13029,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:13033,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13036,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13036,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13036,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13037,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13038,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13040,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:13040,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13040,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:13042,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:13044,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13044,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:13045,1
    - Dst: CURRENT_AS
      Src: /src/pcre2/src/pcre2_jit_compile.c:13045,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13047,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13047,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13047,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13048,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13050,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13051,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13052
      start: 13021
    functionDepth: 2
    functionLinenumber: 13021
    functionLinenumberEnd: 13052
    functionName: compile_then_trap_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - OP2
    - JUMP
    - add_jump
    - JUMPHERE
    - SLJIT_MEM1
    - OP1
    - free_stack
    - set_jumps
    - STACK
    - LABEL
    - CURRENT_AS
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_then_trap_backtrackingpath(compiler_common *common,
      struct backtrack_common *current)
  - BBCount: 118
    BranchProfiles: []
    Callsites:
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13062,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13062,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13066,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13066,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13066,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13067,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13068,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13068,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:13068,1
    - Dst: compile_iterator_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13141,1
    - Dst: compile_ref_iterator_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13148,1
    - Dst: compile_recurse_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13152,1
    - Dst: compile_assert_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13159,1
    - Dst: compile_bracket_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13172,1
    - Dst: compile_bracket_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13177,1
    - Dst: compile_assert_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13179,1
    - Dst: compile_bracketpos_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13187,1
    - Dst: compile_braminzero_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13191,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13195,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13195,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13195,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13197,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13197,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13197,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13198,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13199,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13199,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13201,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13201,1
    - Dst: compile_control_verb_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13210,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13216,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:13218,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13218,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13220,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13228,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13228,1
    - Dst: compile_then_trap_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13233,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13237,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 165
    argCount: 2
    argNames:
    - common
    - current
    argTypes:
    - compiler_common*
    - struct backtrack_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13243
      start: 13054
    functionDepth: 9
    functionLinenumber: 13054
    functionLinenumberEnd: 13243
    functionName: compile_backtrackingpath
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 3
    functionsReached:
    - SLJIT_MEM1
    - SLJIT_UNREACHABLE
    - JUMPTO
    - compile_assert_backtrackingpath
    - compile_bracket_backtrackingpath
    - STACK
    - compile_ref_iterator_backtrackingpath
    - compile_braminzero_backtrackingpath
    - add_jump
    - OP1
    - set_jumps
    - compile_then_trap_backtrackingpath
    - JUMP
    - compile_iterator_backtrackingpath
    - compile_control_verb_backtrackingpath
    - free_stack
    - compile_bracketpos_backtrackingpath
    - OVECTOR
    - LABEL
    - compile_recurse_backtrackingpath
    linkageType: ''
    returnType: void
    signature: void compile_backtrackingpath(compiler_common *common, struct backtrack_common
      *current)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:13250,1
    - Dst: get_recurse_data_length
      Src: /src/pcre2/src/pcre2_jit_compile.c:13254,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13266,1
    - Dst: no_alternatives
      Src: /src/pcre2/src/pcre2_jit_compile.c:13268,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13272,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13273,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13274,1
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:13276,1
    - Dst: count_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:13277,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13284,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13286,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13286,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13286,1
    - Dst: copy_recurse_data
      Src: /src/pcre2/src/pcre2_jit_compile.c:13288,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13291,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13291,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13294,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13294,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13297,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13297,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13297,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:13299,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:13305,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13312,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13312,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13312,1
    - Dst: compile_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13314,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:13315,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:13315,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13318,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13319,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13319,1
    - Dst: sljit_emit_put_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:13324,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13324,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13324,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13326,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13326,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13326,1
    - Dst: add_jump
      Src: /src/pcre2/src/pcre2_jit_compile.c:13329,1
    - Dst: JUMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13329,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13334,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13335,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13336,1
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:13338,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13341,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13341,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13341,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13343,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13343,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13343,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13345,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13345,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13345,1
    - Dst: copy_recurse_data
      Src: /src/pcre2/src/pcre2_jit_compile.c:13347,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13351,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13351,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13351,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13352,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/pcre2_jit_compile.c:13356,1
    - Dst: sljit_set_put_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:13357,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13357,1
    - Dst: sljit_emit_op0
      Src: /src/pcre2/src/pcre2_jit_compile.c:13358,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13361,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13364,1
    - Dst: sljit_set_put_label
      Src: /src/pcre2/src/pcre2_jit_compile.c:13368,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13368,1
    - Dst: sljit_emit_op0
      Src: /src/pcre2/src/pcre2_jit_compile.c:13369,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13373,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13376,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13377,1
    - Dst: compile_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13383,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:13384,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:13384,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13386,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13386,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_jit_compile.c:13392,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13397,1
    - Dst: copy_recurse_data
      Src: /src/pcre2/src/pcre2_jit_compile.c:13399,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13401,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13401,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13401,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13402,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13403,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:13404,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13408,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13410,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13410,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13411,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13411,1
    - Dst: copy_recurse_data
      Src: /src/pcre2/src/pcre2_jit_compile.c:13412,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13413,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13418,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13419,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13422,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13422,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13422,1
    - Dst: copy_recurse_data
      Src: /src/pcre2/src/pcre2_jit_compile.c:13424,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13426,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13426,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13426,1
    - Dst: free_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13427,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13428,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:13429,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13434,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13436,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13436,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13438,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13438,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13439,1
    - Dst: allocate_stack
      Src: /src/pcre2/src/pcre2_jit_compile.c:13441,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13442,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13442,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13442,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13445,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13445,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13447,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13447,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13447,1
    - Dst: copy_recurse_data
      Src: /src/pcre2/src/pcre2_jit_compile.c:13449,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13451,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13451,1
    - Dst: STACK
      Src: /src/pcre2/src/pcre2_jit_compile.c:13451,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13452,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:13453,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 122
    argCount: 1
    argNames:
    - common
    argTypes:
    - compiler_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13454
      start: 13245
    functionDepth: 10
    functionLinenumber: 13245
    functionLinenumberEnd: 13454
    functionName: compile_recurse
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 0
    functionsReached:
    - SLJIT_MEM1
    - no_alternatives
    - get_recurse_data_length
    - OP_SRC
    - CMP
    - JUMPTO
    - STACK
    - allocate_stack
    - add_jump
    - JUMPHERE
    - count_match
    - sljit_emit_ijump
    - sljit_set_put_label
    - set_jumps
    - OP1
    - sljit_emit_op0
    - sljit_emit_put_label
    - memset
    - JUMP
    - bracketend
    - free_stack
    - LABEL
    - sljit_get_compiler_error
    - compile_matchingpath
    - compile_backtrackingpath
    - sljit_emit_fast_enter
    - SLJIT_UNLIKELY
    - copy_recurse_data
    - SLJIT_ASSERT
    - GET
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE compile_recurse(compiler_common *common)
  - BBCount: 92
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13489,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13492,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:13492,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:13492,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:13492,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13494,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:13494,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:13494,1
    - Dst: sljit_get_register_index
      Src: /src/pcre2/src/pcre2_jit_compile.c:13494,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:13499,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:13500,1
    - Dst: bracketend
      Src: /src/pcre2/src/pcre2_jit_compile.c:13580,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/pcre2_jit_compile.c:13584,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:13588,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:13590,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13593,1
    - Dst: check_opcode_types
      Src: /src/pcre2/src/pcre2_jit_compile.c:13598,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13600,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:13645,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:13649,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13651,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/pcre2_jit_compile.c:13655,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13658,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:13661,1
    - Dst: detect_early_fail
      Src: /src/pcre2/src/pcre2_jit_compile.c:13666,1
    - Dst: set_private_data_ptrs
      Src: /src/pcre2/src/pcre2_jit_compile.c:13668,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13670,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13674,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13675,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:13682,1
    - Dst: set_then_offsets
      Src: /src/pcre2/src/pcre2_jit_compile.c:13683,1
    - Dst: sljit_create_compiler
      Src: /src/pcre2/src/pcre2_jit_compile.c:13686,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13689,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13690,1
    - Dst: sljit_emit_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:13696,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13696,1
    - Dst: reset_ovector
      Src: /src/pcre2/src/pcre2_jit_compile.c:13699,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13701,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13701,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13703,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13704,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13705,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13705,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:13705,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13706,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13706,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:13706,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13707,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13707,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:13707,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13708,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13708,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:13708,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13709,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13709,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:13709,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13710,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13710,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:13710,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:13711,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13712,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13712,1
    - Dst: reset_early_fail
      Src: /src/pcre2/src/pcre2_jit_compile.c:13715,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13718,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13718,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13720,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13720,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13722,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13722,1
    - Dst: mainloop_entry
      Src: /src/pcre2/src/pcre2_jit_compile.c:13727,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13728,1
    - Dst: fast_forward_first_n_chars
      Src: /src/pcre2/src/pcre2_jit_compile.c:13732,1
    - Dst: fast_forward_first_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:13735,1
    - Dst: fast_forward_newline
      Src: /src/pcre2/src/pcre2_jit_compile.c:13737,1
    - Dst: fast_forward_start_bits
      Src: /src/pcre2/src/pcre2_jit_compile.c:13739,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13743,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13747,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:13748,1
    - Dst: IN_UCHARS
      Src: /src/pcre2/src/pcre2_jit_compile.c:13748,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13749,1
    - Dst: search_requested_char
      Src: /src/pcre2/src/pcre2_jit_compile.c:13752,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13755,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13755,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:13755,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13757,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13757,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13759,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13759,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13761,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13761,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:13761,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:13763,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13764,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13764,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13769,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13769,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13770,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13770,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13771,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13774,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13774,1
    - Dst: compile_matchingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13776,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:13777,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:13777,1
    - Dst: sljit_free_compiler
      Src: /src/pcre2/src/pcre2_jit_compile.c:13779,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13780,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13781,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:13782,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13787,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13791,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13791,1
    - Dst: OVECTOR
      Src: /src/pcre2/src/pcre2_jit_compile.c:13791,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13792,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13795,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13797,1
    - Dst: copy_ovector
      Src: /src/pcre2/src/pcre2_jit_compile.c:13800,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13801,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13803,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13805,1
    - Dst: SET_LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13807,1
    - Dst: sljit_emit_op0
      Src: /src/pcre2/src/pcre2_jit_compile.c:13809,1
    - Dst: sljit_emit_return
      Src: /src/pcre2/src/pcre2_jit_compile.c:13810,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13814,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13815,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13815,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13816,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13817,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13821,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13825,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13826,1
    - Dst: return_with_partial_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:13827,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13831,1
    - Dst: compile_backtrackingpath
      Src: /src/pcre2/src/pcre2_jit_compile.c:13832,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:13833,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:13833,1
    - Dst: sljit_free_compiler
      Src: /src/pcre2/src/pcre2_jit_compile.c:13835,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13836,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13837,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:13838,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13842,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13843,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13848,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13848,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13849,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13849,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13850,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13850,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13851,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13851,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13852,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13858,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13858,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13861,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13861,1
    - Dst: PRIVATE_DATA
      Src: /src/pcre2/src/pcre2_jit_compile.c:13862,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13873,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13874,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13875,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13876,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13879,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13883,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13888,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13888,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13891,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13891,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13893,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13894,1
    - Dst: flush_stubs
      Src: /src/pcre2/src/pcre2_jit_compile.c:13896,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13900,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13901,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13902,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13902,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:13902,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:13903,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13904,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:13905,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13906,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13907,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13907,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:13907,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13908,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13909,1
    - Dst: compile_recurse
      Src: /src/pcre2/src/pcre2_jit_compile.c:13921,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/pcre2_jit_compile.c:13922,1
    - Dst: sljit_get_compiler_error
      Src: /src/pcre2/src/pcre2_jit_compile.c:13922,1
    - Dst: sljit_free_compiler
      Src: /src/pcre2/src/pcre2_jit_compile.c:13924,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13925,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13926,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:13927,1
    - Dst: flush_stubs
      Src: /src/pcre2/src/pcre2_jit_compile.c:13930,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13938,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13938,1
    - Dst: sljit_emit_fast_enter
      Src: /src/pcre2/src/pcre2_jit_compile.c:13940,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13940,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:13942,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13944,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13944,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13945,1
    - Dst: OP2
      Src: /src/pcre2/src/pcre2_jit_compile.c:13946,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13947,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13947,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/pcre2_jit_compile.c:13947,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13948,1
    - Dst: sljit_emit_icall
      Src: /src/pcre2/src/pcre2_jit_compile.c:13950,1
    - Dst: SLJIT_RET
      Src: /src/pcre2/src/pcre2_jit_compile.c:13950,1
    - Dst: SLJIT_ARG1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13950,1
    - Dst: SLJIT_ARG2
      Src: /src/pcre2/src/pcre2_jit_compile.c:13950,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:13950,1
    - Dst: CMP
      Src: /src/pcre2/src/pcre2_jit_compile.c:13952,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13953,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13954,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13955,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13955,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13956,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13956,1
    - Dst: OP_SRC
      Src: /src/pcre2/src/pcre2_jit_compile.c:13957,1
    - Dst: JUMPHERE
      Src: /src/pcre2/src/pcre2_jit_compile.c:13960,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13962,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13963,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13966,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13966,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:13967,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:13968,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13972,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13972,1
    - Dst: do_revertframes
      Src: /src/pcre2/src/pcre2_jit_compile.c:13973,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13977,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13977,1
    - Dst: check_wordboundary
      Src: /src/pcre2/src/pcre2_jit_compile.c:13978,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13982,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13982,1
    - Dst: check_anynewline
      Src: /src/pcre2/src/pcre2_jit_compile.c:13983,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13987,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13987,1
    - Dst: check_hspace
      Src: /src/pcre2/src/pcre2_jit_compile.c:13988,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13992,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13992,1
    - Dst: check_vspace
      Src: /src/pcre2/src/pcre2_jit_compile.c:13993,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:13997,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:13997,1
    - Dst: do_casefulcmp
      Src: /src/pcre2/src/pcre2_jit_compile.c:13998,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14002,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14002,1
    - Dst: do_caselesscmp
      Src: /src/pcre2/src/pcre2_jit_compile.c:14003,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14007,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14007,1
    - Dst: do_reset_match
      Src: /src/pcre2/src/pcre2_jit_compile.c:14008,1
    - Dst: CMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:14009,1
    - Dst: OP1
      Src: /src/pcre2/src/pcre2_jit_compile.c:14010,1
    - Dst: JUMPTO
      Src: /src/pcre2/src/pcre2_jit_compile.c:14011,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14017,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14017,1
    - Dst: do_utfreadchar
      Src: /src/pcre2/src/pcre2_jit_compile.c:14018,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14022,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14022,1
    - Dst: do_utfreadtype8
      Src: /src/pcre2/src/pcre2_jit_compile.c:14023,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14027,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14027,1
    - Dst: do_utfpeakcharback
      Src: /src/pcre2/src/pcre2_jit_compile.c:14028,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14034,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14034,1
    - Dst: do_utfreadchar_invalid
      Src: /src/pcre2/src/pcre2_jit_compile.c:14035,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14039,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14039,1
    - Dst: do_utfreadnewline_invalid
      Src: /src/pcre2/src/pcre2_jit_compile.c:14040,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14044,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14044,1
    - Dst: do_utfmoveback_invalid
      Src: /src/pcre2/src/pcre2_jit_compile.c:14045,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14049,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14049,1
    - Dst: do_utfpeakcharback_invalid
      Src: /src/pcre2/src/pcre2_jit_compile.c:14050,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14055,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14055,1
    - Dst: do_getucd
      Src: /src/pcre2/src/pcre2_jit_compile.c:14056,1
    - Dst: set_jumps
      Src: /src/pcre2/src/pcre2_jit_compile.c:14060,1
    - Dst: LABEL
      Src: /src/pcre2/src/pcre2_jit_compile.c:14060,1
    - Dst: do_getucdtype
      Src: /src/pcre2/src/pcre2_jit_compile.c:14061,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:14065,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/pcre2_jit_compile.c:14066,1
    - Dst: sljit_generate_code
      Src: /src/pcre2/src/pcre2_jit_compile.c:14068,1
    - Dst: sljit_get_generated_code_size
      Src: /src/pcre2/src/pcre2_jit_compile.c:14069,1
    - Dst: sljit_free_compiler
      Src: /src/pcre2/src/pcre2_jit_compile.c:14070,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:14074,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/pcre2_jit_compile.c:14083,1
    - Dst: sljit_free_code
      Src: /src/pcre2/src/pcre2_jit_compile.c:14088,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_jit_compile.c:14089,1
    - Dst: memset
      Src: /src/pcre2/src/pcre2_jit_compile.c:14092,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/pcre2_jit_compile.c:14104,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 451
    argCount: 2
    argNames:
    - code
    - mode
    argTypes:
    - pcre2_code*
    - sljit_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14109
      start: 13462
    functionDepth: 11
    functionLinenumber: 13462
    functionLinenumberEnd: 14109
    functionName: jit_compile
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached:
    - copy_ovector
    - sljit_emit_return
    - reset_early_fail
    - do_utfreadchar_invalid
    - do_utfpeakcharback
    - sljit_free_code
    - SLJIT_MEM1
    - IN_UCHARS
    - check_vspace
    - do_utfreadnewline_invalid
    - search_requested_char
    - flush_stubs
    - sljit_free_compiler
    - CMP
    - OP_SRC
    - JUMPTO
    - SLJIT_FUNC_OFFSET
    - do_getucd
    - OP2
    - reset_ovector
    - fast_forward_start_bits
    - JUMPHERE
    - SLJIT_FREE
    - do_utfmoveback_invalid
    - do_utfpeakcharback_invalid
    - fast_forward_newline
    - OP1
    - set_jumps
    - sljit_emit_op0
    - do_caselesscmp
    - do_utfreadchar
    - SLJIT_MALLOC
    - CMPTO
    - PRIV
    - fast_forward_first_char
    - memset
    - set_then_offsets
    - do_revertframes
    - do_getucdtype
    - do_utfreadtype8
    - check_anynewline
    - bracketend
    - SLJIT_OFFSETOF
    - sljit_get_register_index
    - PRIVATE_DATA
    - compile_recurse
    - sljit_get_generated_code_size
    - SLJIT_ARG1
    - fast_forward_first_n_chars
    - check_opcode_types
    - sljit_emit_enter
    - LABEL
    - sljit_generate_code
    - sljit_get_compiler_error
    - compile_matchingpath
    - compile_backtrackingpath
    - SLJIT_RET
    - sljit_emit_fast_enter
    - SLJIT_UNLIKELY
    - do_casefulcmp
    - do_reset_match
    - return_with_partial_match
    - detect_early_fail
    - SLJIT_ARG2
    - sljit_create_compiler
    - check_hspace
    - sljit_emit_icall
    - set_private_data_ptrs
    - OVECTOR
    - SET_LABEL
    - SLJIT_ASSERT
    - check_wordboundary
    - mainloop_entry
    linkageType: ''
    returnType: int
    signature: int jit_compile(pcre2_code *code, sljit_u32 mode)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_MALLOC_EXEC
      Src: /src/pcre2/src/pcre2_jit_compile.c:14205,1
    - Dst: SLJIT_FREE_EXEC
      Src: /src/pcre2/src/pcre2_jit_compile.c:14211,1
    - Dst: SLJIT_EXEC_OFFSET
      Src: /src/pcre2/src/pcre2_jit_compile.c:14211,1
    - Dst: jit_compile
      Src: /src/pcre2/src/pcre2_jit_compile.c:14225,1
    - Dst: jit_compile
      Src: /src/pcre2/src/pcre2_jit_compile.c:14233,1
    - Dst: jit_compile
      Src: /src/pcre2/src/pcre2_jit_compile.c:14241,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 2
    argNames:
    - code
    - options
    argTypes:
    - pcre2_code*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14249
      start: 14131
    functionDepth: 12
    functionLinenumber: 14131
    functionLinenumberEnd: 14249
    functionName: pcre2_jit_compile
    functionSourceFile: /src/pcre2/src/pcre2_jit_compile.c
    functionUses: 2
    functionsReached:
    - jit_compile
    - SLJIT_FREE_EXEC
    - SLJIT_MALLOC_EXEC
    - SLJIT_EXEC_OFFSET
    linkageType: ''
    returnType: PCRE2_EXP_DEFN
    signature: PCRE2_EXP_DEFN pcre2_jit_compile(pcre2_code *code, uint32_t options)
  - BBCount: 86
    BranchProfiles: []
    Callsites:
    - Dst: GET
      Src: /src/pcre2/src/pcre2_find_bracket.c:83,1
    - Dst: GET
      Src: /src/pcre2/src/pcre2_find_bracket.c:84,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_find_bracket.c:91,1
    - Dst: GET2
      Src: /src/pcre2/src/pcre2_find_bracket.c:99,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_find_bracket.c:101,1
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_find_bracket.c:144,1
    - Dst: HAS_EXTRALEN
      Src: /src/pcre2/src/pcre2_find_bracket.c:209,1
    - Dst: GET_EXTRALEN
      Src: /src/pcre2/src/pcre2_find_bracket.c:209,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 112
    argCount: 3
    argNames:
    - code
    - utf
    - number
    argTypes:
    - PCRE2_SPTR
    - BOOL
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 217
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_find_bracket.c
    functionUses: 79
    functionsReached:
    - GET_EXTRALEN
    - HAS_EXTRALEN
    - GET
    - PRIV
    - GET2
    linkageType: ''
    returnType: PCRE2_SPTR
    signature: PCRE2_SPTR PRIV(find_bracket)(PCRE2_SPTR code, BOOL utf, int number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - string
    - length
    - erroroffset
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SIZE
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_valid_utf.c
    functionUses: 79
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PRIV(valid_utf)(PCRE2_SPTR string, PCRE2_SIZE length, PCRE2_SIZE
      *erroroffset)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/src/pcre2_valid_utf.c:155,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 156
    argCount: 3
    argNames:
    - string
    - length
    - erroroffset
    argTypes:
    - PCRE2_SPTR
    - PCRE2_SIZE
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 395
    functionName: PRIV
    functionSourceFile: /src/pcre2/src/pcre2_valid_utf.c
    functionUses: 80
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: int
    signature: int PRIV(valid_utf)(PCRE2_SPTR string, PCRE2_SIZE length, PCRE2_SIZE
      *erroroffset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_config_8
      Src: /src/pcre2/src/pcre2_jit_test.c:104,1
    - Dst: pcre2_config_16
      Src: /src/pcre2/src/pcre2_jit_test.c:106,1
    - Dst: pcre2_config_32
      Src: /src/pcre2/src/pcre2_jit_test.c:108,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:111,1
    - Dst: regression_tests
      Src: /src/pcre2/src/pcre2_jit_test.c:114,1
    - Dst: invalid_utf8_regression_tests
      Src: /src/pcre2/src/pcre2_jit_test.c:115,1
    - Dst: invalid_utf16_regression_tests
      Src: /src/pcre2/src/pcre2_jit_test.c:116,1
    - Dst: invalid_utf32_regression_tests
      Src: /src/pcre2/src/pcre2_jit_test.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: main
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 3
    functionsReached:
    - invalid_utf8_regression_tests
    - invalid_utf32_regression_tests
    - invalid_utf16_regression_tests
    - printf
    - regression_tests
    - pcre2_config_8
    - pcre2_config_16
    - pcre2_config_32
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: BSR
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSR(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: GET_NEWLINE
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_NEWLINE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: GET_BSR
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BSR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 911
    functionName: callback8
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pcre2_jit_stack_8
    signature: pcre2_jit_stack_8 * callback8(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 918
    functionName: callback16
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pcre2_jit_stack_16
    signature: pcre2_jit_stack_16 * callback16(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 925
    functionName: callback32
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pcre2_jit_stack_32
    signature: pcre2_jit_stack_32 * callback32(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_jit_stack_create_8
      Src: /src/pcre2/src/pcre2_jit_test.c:934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 936
    functionName: getstack8
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - pcre2_jit_stack_create_8
    linkageType: ''
    returnType: pcre2_jit_stack_8
    signature: pcre2_jit_stack_8 *getstack8(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_jit_stack_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:942,1
    - Dst: pcre2_jit_stack_assign_8
      Src: /src/pcre2/src/pcre2_jit_test.c:947,1
    - Dst: getstack8
      Src: /src/pcre2/src/pcre2_jit_test.c:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mcontext
    argTypes:
    - pcre2_match_context_8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 948
    functionName: setstack8
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - getstack8
    - pcre2_jit_stack_free_8
    - pcre2_jit_stack_assign_8
    linkageType: ''
    returnType: void
    signature: void setstack8(pcre2_match_context_8 *mcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_jit_stack_create_16
      Src: /src/pcre2/src/pcre2_jit_test.c:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 959
    functionName: getstack16
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - pcre2_jit_stack_create_16
    linkageType: ''
    returnType: pcre2_jit_stack_16
    signature: pcre2_jit_stack_16 *getstack16(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_jit_stack_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:965,1
    - Dst: pcre2_jit_stack_assign_16
      Src: /src/pcre2/src/pcre2_jit_test.c:970,1
    - Dst: getstack16
      Src: /src/pcre2/src/pcre2_jit_test.c:970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mcontext
    argTypes:
    - pcre2_match_context_16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 971
    functionName: setstack16
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - getstack16
    - pcre2_jit_stack_free_16
    - pcre2_jit_stack_assign_16
    linkageType: ''
    returnType: void
    signature: void setstack16(pcre2_match_context_16 *mcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_jit_stack_create_32
      Src: /src/pcre2/src/pcre2_jit_test.c:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 982
    functionName: getstack32
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - pcre2_jit_stack_create_32
    linkageType: ''
    returnType: pcre2_jit_stack_32
    signature: pcre2_jit_stack_32 *getstack32(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_jit_stack_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:988,1
    - Dst: pcre2_jit_stack_assign_32
      Src: /src/pcre2/src/pcre2_jit_test.c:993,1
    - Dst: getstack32
      Src: /src/pcre2/src/pcre2_jit_test.c:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mcontext
    argTypes:
    - pcre2_match_context_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 994
    functionName: setstack32
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - pcre2_jit_stack_assign_32
    - getstack32
    - pcre2_jit_stack_free_32
    linkageType: ''
    returnType: void
    signature: void setstack32(pcre2_match_context_32 *mcontext)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - input
    - output
    - offsetmap
    - max_length
    argTypes:
    - PCRE2_SPTR8
    - PCRE2_UCHAR16*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1045
    functionName: convert_utf8_to_utf16
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int convert_utf8_to_utf16(PCRE2_SPTR8 input, PCRE2_UCHAR16 *output,
      int *offsetmap, int max_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input
    - output
    - max_length
    argTypes:
    - PCRE2_SPTR8
    - PCRE2_UCHAR16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1061
    functionName: copy_char8_to_char16
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int copy_char8_to_char16(PCRE2_SPTR8 input, PCRE2_UCHAR16 *output,
      int max_length)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - input
    - output
    - offsetmap
    - max_length
    argTypes:
    - PCRE2_SPTR8
    - PCRE2_UCHAR32*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1105
    functionName: convert_utf8_to_utf32
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int convert_utf8_to_utf32(PCRE2_SPTR8 input, PCRE2_UCHAR32 *output,
      int *offsetmap, int max_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input
    - output
    - max_length
    argTypes:
    - PCRE2_SPTR8
    - PCRE2_UCHAR32*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1121
    functionName: copy_char8_to_char32
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int copy_char8_to_char32(PCRE2_SPTR8 input, PCRE2_UCHAR32 *output,
      int max_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1138
    functionName: check_ascii
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_ascii(const char *input)
  - BBCount: 84
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_config_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1206,1
    - Dst: pcre2_config_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1208,1
    - Dst: pcre2_config_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1210,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1213,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1214,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1216,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1217,1
    - Dst: pcre2_config_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1220,1
    - Dst: pcre2_config_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1222,1
    - Dst: pcre2_config_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1224,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1230,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1233,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1236,1
    - Dst: check_ascii
      Src: /src/pcre2/src/pcre2_jit_test.c:1244,1
    - Dst: check_ascii
      Src: /src/pcre2/src/pcre2_jit_test.c:1244,1
    - Dst: pcre2_compile_context_create_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1255,1
    - Dst: GET_NEWLINE
      Src: /src/pcre2/src/pcre2_jit_test.c:1257,1
    - Dst: pcre2_set_newline_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1258,1
    - Dst: GET_NEWLINE
      Src: /src/pcre2/src/pcre2_jit_test.c:1258,1
    - Dst: GET_BSR
      Src: /src/pcre2/src/pcre2_jit_test.c:1259,1
    - Dst: pcre2_set_bsr_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1260,1
    - Dst: GET_BSR
      Src: /src/pcre2/src/pcre2_jit_test.c:1260,1
    - Dst: pcre2_compile_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1263,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1268,1
    - Dst: pcre2_compile_context_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1270,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1273,1
    - Dst: convert_utf8_to_utf16
      Src: /src/pcre2/src/pcre2_jit_test.c:1277,1
    - Dst: copy_char8_to_char16
      Src: /src/pcre2/src/pcre2_jit_test.c:1279,1
    - Dst: pcre2_compile_context_create_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1282,1
    - Dst: GET_NEWLINE
      Src: /src/pcre2/src/pcre2_jit_test.c:1284,1
    - Dst: pcre2_set_newline_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1285,1
    - Dst: GET_NEWLINE
      Src: /src/pcre2/src/pcre2_jit_test.c:1285,1
    - Dst: GET_BSR
      Src: /src/pcre2/src/pcre2_jit_test.c:1286,1
    - Dst: pcre2_set_bsr_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1287,1
    - Dst: GET_BSR
      Src: /src/pcre2/src/pcre2_jit_test.c:1287,1
    - Dst: pcre2_compile_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1290,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1295,1
    - Dst: pcre2_compile_context_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1297,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1300,1
    - Dst: convert_utf8_to_utf32
      Src: /src/pcre2/src/pcre2_jit_test.c:1304,1
    - Dst: copy_char8_to_char32
      Src: /src/pcre2/src/pcre2_jit_test.c:1306,1
    - Dst: pcre2_compile_context_create_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1309,1
    - Dst: GET_NEWLINE
      Src: /src/pcre2/src/pcre2_jit_test.c:1311,1
    - Dst: pcre2_set_newline_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1312,1
    - Dst: GET_NEWLINE
      Src: /src/pcre2/src/pcre2_jit_test.c:1312,1
    - Dst: GET_BSR
      Src: /src/pcre2/src/pcre2_jit_test.c:1313,1
    - Dst: pcre2_set_bsr_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1314,1
    - Dst: GET_BSR
      Src: /src/pcre2/src/pcre2_jit_test.c:1314,1
    - Dst: pcre2_compile_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1317,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1322,1
    - Dst: pcre2_compile_context_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1324,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1327,1
    - Dst: setstack8
      Src: /src/pcre2/src/pcre2_jit_test.c:1333,1
    - Dst: setstack16
      Src: /src/pcre2/src/pcre2_jit_test.c:1336,1
    - Dst: setstack32
      Src: /src/pcre2/src/pcre2_jit_test.c:1339,1
    - Dst: pcre2_match_data_create_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1346,1
    - Dst: pcre2_match_data_create_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1347,1
    - Dst: pcre2_match_context_create_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1348,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1350,1
    - Dst: pcre2_match_data_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1351,1
    - Dst: pcre2_match_data_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1352,1
    - Dst: pcre2_match_context_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1353,1
    - Dst: pcre2_code_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1354,1
    - Dst: pcre2_get_ovector_pointer_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1357,1
    - Dst: pcre2_get_ovector_pointer_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1358,1
    - Dst: pcre2_set_match_limit_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1363,1
    - Dst: pcre2_match_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1366,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2_jit_test.c:1366,1
    - Dst: pcre2_jit_compile_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1369,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1370,1
    - Dst: setstack8
      Src: /src/pcre2/src/pcre2_jit_test.c:1372,1
    - Dst: pcre2_match_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1373,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2_jit_test.c:1373,1
    - Dst: pcre2_jit_stack_assign_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1376,1
    - Dst: getstack8
      Src: /src/pcre2/src/pcre2_jit_test.c:1376,1
    - Dst: pcre2_jit_match_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1377,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2_jit_test.c:1377,1
    - Dst: pcre2_match_data_create_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1386,1
    - Dst: pcre2_match_data_create_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1387,1
    - Dst: pcre2_match_context_create_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1388,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1390,1
    - Dst: pcre2_match_data_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1391,1
    - Dst: pcre2_match_data_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1392,1
    - Dst: pcre2_match_context_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1393,1
    - Dst: pcre2_code_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1394,1
    - Dst: pcre2_get_ovector_pointer_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1397,1
    - Dst: pcre2_get_ovector_pointer_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1398,1
    - Dst: pcre2_set_match_limit_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1403,1
    - Dst: convert_utf8_to_utf16
      Src: /src/pcre2/src/pcre2_jit_test.c:1407,1
    - Dst: copy_char8_to_char16
      Src: /src/pcre2/src/pcre2_jit_test.c:1409,1
    - Dst: pcre2_match_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1411,1
    - Dst: pcre2_jit_compile_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1414,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1415,1
    - Dst: setstack16
      Src: /src/pcre2/src/pcre2_jit_test.c:1417,1
    - Dst: pcre2_match_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1418,1
    - Dst: pcre2_jit_stack_assign_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1421,1
    - Dst: getstack16
      Src: /src/pcre2/src/pcre2_jit_test.c:1421,1
    - Dst: pcre2_jit_match_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1422,1
    - Dst: pcre2_match_data_create_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1431,1
    - Dst: pcre2_match_data_create_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1432,1
    - Dst: pcre2_match_context_create_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1433,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1435,1
    - Dst: pcre2_match_data_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1436,1
    - Dst: pcre2_match_data_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1437,1
    - Dst: pcre2_match_context_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1438,1
    - Dst: pcre2_code_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1439,1
    - Dst: pcre2_get_ovector_pointer_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1442,1
    - Dst: pcre2_get_ovector_pointer_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1443,1
    - Dst: pcre2_set_match_limit_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1448,1
    - Dst: convert_utf8_to_utf32
      Src: /src/pcre2/src/pcre2_jit_test.c:1452,1
    - Dst: copy_char8_to_char32
      Src: /src/pcre2/src/pcre2_jit_test.c:1454,1
    - Dst: pcre2_match_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1456,1
    - Dst: pcre2_jit_compile_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1459,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1460,1
    - Dst: setstack32
      Src: /src/pcre2/src/pcre2_jit_test.c:1462,1
    - Dst: pcre2_match_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1463,1
    - Dst: pcre2_jit_stack_assign_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1466,1
    - Dst: getstack32
      Src: /src/pcre2/src/pcre2_jit_test.c:1466,1
    - Dst: pcre2_jit_match_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1467,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1491,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1498,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1505,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1512,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1520,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1528,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1572,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1580,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1588,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1601,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1612,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1621,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1632,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1641,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1652,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1665,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1671,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1680,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1686,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1695,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1701,1
    - Dst: pcre2_get_mark_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1711,1
    - Dst: pcre2_get_mark_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1711,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1712,1
    - Dst: pcre2_get_mark_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1718,1
    - Dst: pcre2_get_mark_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1718,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1719,1
    - Dst: pcre2_get_mark_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1725,1
    - Dst: pcre2_get_mark_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1725,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1726,1
    - Dst: pcre2_code_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1734,1
    - Dst: pcre2_match_data_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1735,1
    - Dst: pcre2_match_data_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1736,1
    - Dst: pcre2_match_context_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1737,1
    - Dst: pcre2_code_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1740,1
    - Dst: pcre2_match_data_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1741,1
    - Dst: pcre2_match_data_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1742,1
    - Dst: pcre2_match_context_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:1743,1
    - Dst: pcre2_code_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1746,1
    - Dst: pcre2_match_data_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1747,1
    - Dst: pcre2_match_data_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1748,1
    - Dst: pcre2_match_context_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:1749,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1755,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1758,1
    - Dst: fflush
      Src: /src/pcre2/src/pcre2_jit_test.c:1763,1
    - Dst: setstack8
      Src: /src/pcre2/src/pcre2_jit_test.c:1767,1
    - Dst: setstack16
      Src: /src/pcre2/src/pcre2_jit_test.c:1770,1
    - Dst: setstack32
      Src: /src/pcre2/src/pcre2_jit_test.c:1773,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1777,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1780,1
    CyclomaticComplexity: 150
    EdgeCount: 150
    ICount: 384
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1783
    functionName: regression_tests
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 1
    functionsReached:
    - pcre2_match_data_create_8
    - pcre2_get_ovector_pointer_8
    - check_ascii
    - pcre2_jit_stack_assign_8
    - convert_utf8_to_utf32
    - pcre2_set_bsr_32
    - pcre2_get_mark_16
    - pcre2_get_ovector_pointer_32
    - setstack16
    - pcre2_match_32
    - pcre2_set_newline_8
    - pcre2_config_8
    - pcre2_get_ovector_pointer_16
    - convert_utf8_to_utf16
    - pcre2_set_newline_16
    - pcre2_jit_match_8
    - fflush
    - pcre2_match_8
    - pcre2_match_data_create_32
    - strlen
    - pcre2_set_bsr_8
    - getstack16
    - pcre2_compile_context_create_16
    - copy_char8_to_char32
    - pcre2_jit_compile_32
    - pcre2_set_match_limit_32
    - pcre2_get_mark_8
    - pcre2_compile_8
    - pcre2_jit_stack_assign_16
    - pcre2_compile_32
    - pcre2_config_16
    - pcre2_match_context_free_32
    - pcre2_match_data_free_16
    - pcre2_match_data_create_16
    - getstack32
    - pcre2_jit_compile_8
    - pcre2_set_match_limit_8
    - pcre2_set_match_limit_16
    - pcre2_match_16
    - pcre2_match_context_create_16
    - pcre2_jit_match_32
    - pcre2_compile_16
    - pcre2_jit_stack_assign_32
    - pcre2_compile_context_free_32
    - printf
    - pcre2_compile_context_create_32
    - setstack32
    - pcre2_jit_compile_16
    - pcre2_match_context_create_32
    - pcre2_match_data_free_8
    - pcre2_code_free_32
    - pcre2_match_context_free_8
    - pcre2_compile_context_free_8
    - pcre2_jit_match_16
    - pcre2_config_32
    - pcre2_set_newline_32
    - setstack8
    - pcre2_get_mark_32
    - pcre2_match_data_free_32
    - getstack8
    - pcre2_match_context_create_8
    - pcre2_match_context_free_16
    - pcre2_code_free_8
    - GET_NEWLINE
    - copy_char8_to_char16
    - pcre2_compile_context_free_16
    - pcre2_code_free_16
    - pcre2_set_bsr_16
    - pcre2_compile_context_create_8
    - GET_BSR
    linkageType: ''
    returnType: int
    signature: int regression_tests(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1792,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1799,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1804,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:1810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - pattern_index
    - type
    - result
    - match_start
    - match_end
    - ovector
    argTypes:
    - int
    - char*
    - int
    - int
    - int
    - PCRE2_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1787
    functionDepth: 0
    functionLinenumber: 1787
    functionLinenumberEnd: 1816
    functionName: check_invalid_utf_result
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: "int check_invalid_utf_result(int pattern_index, const char *type,
      int result,\n\tint match_start, int match_end, PCRE2_SIZE *ovector)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_get_ovector_pointer_8
      Src: /src/pcre2/src/pcre2_jit_test.c:1998,1
    - Dst: pcre2_compile_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2003,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2007,1
    - Dst: pcre2_jit_compile_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2011,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2012,1
    - Dst: pcre2_code_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2013,1
    - Dst: strlen
      Src: /src/pcre2/src/pcre2_jit_test.c:2017,1
    - Dst: pcre2_jit_match_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2020,1
    - Dst: check_invalid_utf_result
      Src: /src/pcre2/src/pcre2_jit_test.c:2023,1
    - Dst: pcre2_code_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2024,1
    - Dst: pcre2_jit_match_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2030,1
    - Dst: check_invalid_utf_result
      Src: /src/pcre2/src/pcre2_jit_test.c:2033,1
    - Dst: pcre2_code_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2034,1
    - Dst: pcre2_code_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2039,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - current
    - pattern_index
    - i
    - ccontext
    - mdata
    argTypes:
    - struct invalid_utf8_regression_test_case*
    - int
    - int
    - pcre2_compile_context_8*
    - pcre2_match_data_8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 1992
    functionDepth: 1
    functionLinenumber: 1992
    functionLinenumberEnd: 2041
    functionName: run_invalid_utf8_test
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - pcre2_get_ovector_pointer_8
    - strlen
    - check_invalid_utf_result
    - printf
    - pcre2_code_free_8
    - pcre2_compile_8
    - pcre2_jit_match_8
    - pcre2_jit_compile_8
    linkageType: ''
    returnType: int
    signature: "int run_invalid_utf8_test(const struct invalid_utf8_regression_test_case
      *current,\n\tint pattern_index, int i, pcre2_compile_context_8 *ccontext, pcre2_match_data_8
      *mdata)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2051,1
    - Dst: pcre2_compile_context_create_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2053,1
    - Dst: pcre2_set_newline_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2054,1
    - Dst: pcre2_match_data_create_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2055,1
    - Dst: run_invalid_utf8_test
      Src: /src/pcre2/src/pcre2_jit_test.c:2064,1
    - Dst: run_invalid_utf8_test
      Src: /src/pcre2/src/pcre2_jit_test.c:2066,1
    - Dst: pcre2_set_newline_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2069,1
    - Dst: run_invalid_utf8_test
      Src: /src/pcre2/src/pcre2_jit_test.c:2070,1
    - Dst: pcre2_set_newline_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2072,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2079,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2081,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2085,1
    - Dst: pcre2_match_data_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2087,1
    - Dst: pcre2_compile_context_free_8
      Src: /src/pcre2/src/pcre2_jit_test.c:2088,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2091,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2094,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2043
    functionDepth: 2
    functionLinenumber: 2043
    functionLinenumberEnd: 2097
    functionName: invalid_utf8_regression_tests
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 1
    functionsReached:
    - pcre2_match_data_create_8
    - printf
    - pcre2_match_data_free_8
    - pcre2_set_newline_8
    - run_invalid_utf8_test
    - pcre2_compile_context_create_8
    - pcre2_compile_context_free_8
    linkageType: ''
    returnType: int
    signature: int invalid_utf8_regression_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2101
    functionDepth: 0
    functionLinenumber: 2101
    functionLinenumberEnd: 2104
    functionName: invalid_utf8_regression_tests
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int invalid_utf8_regression_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_get_ovector_pointer_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2208,1
    - Dst: pcre2_compile_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2213,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2217,1
    - Dst: pcre2_jit_compile_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2221,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2222,1
    - Dst: pcre2_code_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2223,1
    - Dst: pcre2_jit_match_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2236,1
    - Dst: check_invalid_utf_result
      Src: /src/pcre2/src/pcre2_jit_test.c:2239,1
    - Dst: pcre2_code_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2240,1
    - Dst: pcre2_jit_match_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2246,1
    - Dst: check_invalid_utf_result
      Src: /src/pcre2/src/pcre2_jit_test.c:2249,1
    - Dst: pcre2_code_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2250,1
    - Dst: pcre2_code_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2255,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 5
    argNames:
    - current
    - pattern_index
    - i
    - ccontext
    - mdata
    argTypes:
    - struct invalid_utf16_regression_test_case*
    - int
    - int
    - pcre2_compile_context_16*
    - pcre2_match_data_16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2201
    functionDepth: 1
    functionLinenumber: 2201
    functionLinenumberEnd: 2257
    functionName: run_invalid_utf16_test
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - pcre2_compile_16
    - check_invalid_utf_result
    - printf
    - pcre2_jit_compile_16
    - pcre2_code_free_16
    - pcre2_get_ovector_pointer_16
    - pcre2_jit_match_16
    linkageType: ''
    returnType: int
    signature: "int run_invalid_utf16_test(const struct invalid_utf16_regression_test_case
      *current,\n\tint pattern_index, int i, pcre2_compile_context_16 *ccontext, pcre2_match_data_16
      *mdata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2267,1
    - Dst: pcre2_compile_context_create_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2269,1
    - Dst: pcre2_set_newline_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2270,1
    - Dst: pcre2_match_data_create_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2271,1
    - Dst: run_invalid_utf16_test
      Src: /src/pcre2/src/pcre2_jit_test.c:2278,1
    - Dst: run_invalid_utf16_test
      Src: /src/pcre2/src/pcre2_jit_test.c:2280,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2287,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2289,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2293,1
    - Dst: pcre2_match_data_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2295,1
    - Dst: pcre2_compile_context_free_16
      Src: /src/pcre2/src/pcre2_jit_test.c:2296,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2299,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2302,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2259
    functionDepth: 2
    functionLinenumber: 2259
    functionLinenumberEnd: 2305
    functionName: invalid_utf16_regression_tests
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 1
    functionsReached:
    - pcre2_compile_context_create_16
    - printf
    - pcre2_compile_context_free_16
    - run_invalid_utf16_test
    - pcre2_match_data_free_16
    - pcre2_match_data_create_16
    - pcre2_set_newline_16
    linkageType: ''
    returnType: int
    signature: int invalid_utf16_regression_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2309
    functionDepth: 0
    functionLinenumber: 2309
    functionLinenumberEnd: 2312
    functionName: invalid_utf16_regression_tests
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int invalid_utf16_regression_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_get_ovector_pointer_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2395,1
    - Dst: pcre2_compile_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2400,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2404,1
    - Dst: pcre2_jit_compile_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2408,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2409,1
    - Dst: pcre2_code_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2410,1
    - Dst: pcre2_jit_match_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2423,1
    - Dst: check_invalid_utf_result
      Src: /src/pcre2/src/pcre2_jit_test.c:2426,1
    - Dst: pcre2_code_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2427,1
    - Dst: pcre2_jit_match_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2433,1
    - Dst: check_invalid_utf_result
      Src: /src/pcre2/src/pcre2_jit_test.c:2436,1
    - Dst: pcre2_code_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2437,1
    - Dst: pcre2_code_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 5
    argNames:
    - current
    - pattern_index
    - i
    - ccontext
    - mdata
    argTypes:
    - struct invalid_utf32_regression_test_case*
    - int
    - int
    - pcre2_compile_context_32*
    - pcre2_match_data_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2388
    functionDepth: 1
    functionLinenumber: 2388
    functionLinenumberEnd: 2444
    functionName: run_invalid_utf32_test
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 0
    functionsReached:
    - pcre2_jit_match_32
    - check_invalid_utf_result
    - pcre2_jit_compile_32
    - pcre2_get_ovector_pointer_32
    - printf
    - pcre2_code_free_32
    - pcre2_compile_32
    linkageType: ''
    returnType: int
    signature: "int run_invalid_utf32_test(const struct invalid_utf32_regression_test_case
      *current,\n\tint pattern_index, int i, pcre2_compile_context_32 *ccontext, pcre2_match_data_32
      *mdata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2454,1
    - Dst: pcre2_compile_context_create_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2456,1
    - Dst: pcre2_set_newline_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2457,1
    - Dst: pcre2_match_data_create_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2458,1
    - Dst: run_invalid_utf32_test
      Src: /src/pcre2/src/pcre2_jit_test.c:2465,1
    - Dst: run_invalid_utf32_test
      Src: /src/pcre2/src/pcre2_jit_test.c:2467,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2474,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2476,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2480,1
    - Dst: pcre2_match_data_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2482,1
    - Dst: pcre2_compile_context_free_32
      Src: /src/pcre2/src/pcre2_jit_test.c:2483,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2486,1
    - Dst: printf
      Src: /src/pcre2/src/pcre2_jit_test.c:2489,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2446
    functionDepth: 2
    functionLinenumber: 2446
    functionLinenumberEnd: 2492
    functionName: invalid_utf32_regression_tests
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 1
    functionsReached:
    - pcre2_match_data_create_32
    - run_invalid_utf32_test
    - pcre2_compile_context_create_32
    - printf
    - pcre2_compile_context_free_32
    - pcre2_set_newline_32
    - pcre2_match_data_free_32
    linkageType: ''
    returnType: int
    signature: int invalid_utf32_regression_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2496
    functionDepth: 0
    functionLinenumber: 2496
    functionLinenumberEnd: 2499
    functionName: invalid_utf32_regression_tests
    functionSourceFile: /src/pcre2/src/pcre2_jit_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int invalid_utf32_regression_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: sljit_get_platform_name
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_get_platform_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: RD
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RD(rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: RT
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RT(rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: RN
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RN(rn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rt2
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: RT2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RT2(rt2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: RM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RM(rm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: VD
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VD(vd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: VT
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VT(vt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: VN
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VN(vn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: VM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VM(vm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:139,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - compiler
    - ins
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: push_inst
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_ins ins)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:148,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:148,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:148,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:149,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:149,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:149,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:150,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:150,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:150,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:151,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - compiler
    - dst
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: emit_imm64_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - push_inst
    - RD
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_imm64_const(struct sljit_compiler *compiler, sljit_s32
      dst, sljit_uw imm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:167,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - jump
    - code_ptr
    - code
    - executable_offset
    argTypes:
    - struct sljit_jump*
    - sljit_ins*
    - sljit_ins*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 206
    functionName: detect_jump_type
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE detect_jump_type(struct sljit_jump *jump, sljit_ins *code_ptr,
      sljit_ins *code, sljit_sw executable_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - put_label
    - max_label
    argTypes:
    - struct sljit_put_label*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: put_label_get_length
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE put_label_get_length(struct sljit_put_label *put_label,
      sljit_uw max_label)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:242,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:243,1
    - Dst: check_sljit_generate_code
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:243,1
    - Dst: reverse_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:244,1
    - Dst: SLJIT_MALLOC_EXEC
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:246,1
    - Dst: PTR_FAIL_WITH_EXEC_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:247,1
    - Dst: SLJIT_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:253,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:266,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:267,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:268,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:269,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:273,1
    - Dst: detect_jump_type
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:279,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:287,1
    - Dst: put_label_get_length
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:289,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:289,1
    - Dst: compute_next_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:292,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:302,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:307,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:308,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:309,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:310,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:311,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:320,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:321,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:328,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:329,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:334,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:335,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:369,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:370,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:372,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:373,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 113
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 375
    functionName: sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 2
    functionsReached:
    - PTR_FAIL_WITH_EXEC_IF
    - SLJIT_MALLOC_EXEC
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_EXEC_OFFSET
    - compute_next_addr
    - CHECK_PTR
    - put_label_get_length
    - SLJIT_CACHE_FLUSH
    - reverse_buf
    - detect_jump_type
    - check_sljit_generate_code
    - CHECK_ERROR_PTR
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - feature_type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 396
    functionName: sljit_has_cpu_feature
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_has_cpu_feature(sljit_s32 feature_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 428
    functionName: COUNT_TRAILING_ZERO
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_TRAILING_ZERO(value, result)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:445,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:451,1
    - Dst: COUNT_TRAILING_ZERO
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:473,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:477,1
    - Dst: COUNT_TRAILING_ZERO
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:479,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 2
    argNames:
    - imm
    - len
    argTypes:
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 493
    functionName: logical_imm
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    - COUNT_TRAILING_ZERO
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_ins
    signature: sljit_ins logical_imm(sljit_sw imm, sljit_s32 len)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:505,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:505,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:508,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:508,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:512,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:512,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:514,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:514,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:516,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:516,1
    - Dst: logical_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:518,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:520,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:520,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:520,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:522,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:522,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:522,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:523,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:523,1
    - Dst: logical_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:526,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:528,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:528,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:528,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:532,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:532,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:534,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:534,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:534,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:535,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:535,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:561,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:561,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:561,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:564,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:564,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:564,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:577,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:577,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:577,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:580,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:580,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:580,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 3
    argNames:
    - compiler
    - dst
    - simm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 584
    functionName: load_immediate
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - push_inst
    - RD
    - RN
    - logical_imm
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32
      dst, sljit_sw simm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flag_bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 598
    functionName: CHECK_FLAGS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FLAGS(flag_bits)
  - BBCount: 71
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:610,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:616,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:616,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:635,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:636,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:638,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:639,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:639,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:649,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:650,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:650,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:650,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:653,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:654,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:654,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:654,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:658,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:659,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:659,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:659,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:662,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:663,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:663,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:663,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:666,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:667,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:667,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:667,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:670,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:670,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:670,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:670,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:671,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:671,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:671,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:674,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:674,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:674,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:674,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:675,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:675,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:675,1
    - Dst: logical_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:679,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:682,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:683,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:683,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:683,1
    - Dst: logical_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:686,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:693,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:693,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:693,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:693,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:700,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:700,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:700,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:700,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:704,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:704,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:704,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:704,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:715,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:715,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:715,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:715,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:719,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:719,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:719,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:719,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:723,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:731,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:731,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:739,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:739,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:749,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:752,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:752,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:752,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:752,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:754,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:755,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:755,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:755,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:757,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:760,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:760,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:760,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:762,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:763,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:763,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:763,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:765,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:768,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:768,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:768,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:770,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:773,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:773,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:773,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:773,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:775,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:778,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:778,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:778,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:780,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:781,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:781,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:781,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:781,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:781,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:784,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:788,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:788,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:788,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:788,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:790,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:791,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:791,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:791,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:793,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:795,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:795,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:795,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:795,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:797,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:798,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:798,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:798,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:798,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:800,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:802,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:802,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:802,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:802,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:804,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:805,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:805,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:805,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:805,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:809,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:809,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:809,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:809,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:809,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:811,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:811,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:811,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:811,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:811,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:812,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:812,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:812,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:812,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:812,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:813,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:813,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:813,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:813,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:815,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:815,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:815,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:815,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:815,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:816,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:816,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:816,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:816,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:816,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:816,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:817,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:817,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:817,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:817,1
    - Dst: CHECK_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:819,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:820,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:820,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:820,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:820,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:822,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:822,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:822,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:822,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:822,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:825,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:825,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:825,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:825,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:825,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:828,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:828,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:828,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:828,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:828,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:831,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:831,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:831,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:831,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:831,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:834,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:834,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:834,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:834,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:834,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:837,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:843,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:843,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:843,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:843,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 224
    argCount: 5
    argNames:
    - compiler
    - flags
    - dst
    - arg1
    - arg2
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 845
    functionName: emit_op_imm
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - RN
    - load_immediate
    - SLJIT_UNREACHABLE
    - SLJIT_UNLIKELY
    - push_inst
    - RM
    - RT2
    - RD
    - CHECK_FLAGS
    - SLJIT_ASSERT
    - logical_imm
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_op_imm(struct sljit_compiler *compiler, sljit_s32 flags,
      sljit_s32 dst, sljit_sw arg1, sljit_sw arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 856
    functionName: MEM_SIZE_SHIFT
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM_SIZE_SHIFT(flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MEM_SIZE_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:860,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:866,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:868,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:872,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:872,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:873,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:873,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:873,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:875,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:875,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:875,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:875,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:875,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:875,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:876,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:876,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:876,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:882,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:882,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:886,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:886,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:886,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:891,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:891,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:891,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:895,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:895,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:895,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:895,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:898,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:898,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:898,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:903,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:903,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:903,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:905,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:905,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:907,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:907,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:907,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:907,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 6
    argNames:
    - compiler
    - flags
    - reg
    - arg
    - argw
    - tmp_reg
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 908
    functionName: emit_op_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - RN
    - RT
    - load_immediate
    - SLJIT_UNLIKELY
    - OFFS_REG
    - push_inst
    - RM
    - MEM_SIZE_SHIFT
    - RD
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_op_mem(struct sljit_compiler *compiler, sljit_s32 flags,
      sljit_s32 reg,\n\tsljit_s32 arg, sljit_sw argw, sljit_s32 tmp_reg)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:920,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:921,1
    - Dst: check_sljit_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:921,1
    - Dst: set_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:922,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:924,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:931,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:931,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:931,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:931,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:932,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:936,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:936,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:936,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:936,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:938,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:938,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:938,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:938,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:949,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:949,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:949,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:949,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:949,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:959,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:959,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:959,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:959,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:959,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:965,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:965,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:965,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:965,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:968,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:968,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:968,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:968,1
    - Dst: get_arg_count
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:970,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:973,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:973,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:973,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:973,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:973,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:975,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:975,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:975,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:975,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:975,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:977,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:977,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:977,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:977,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:977,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:984,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:984,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:984,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:984,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:985,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:985,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:985,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:985,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:990,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:990,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:990,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:990,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:991,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:991,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:991,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:991,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:995,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:995,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:995,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:995,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:999,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:999,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:999,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1000,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1000,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1000,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1000,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1001,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1001,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1001,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1001,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1002,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1002,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1002,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1002,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1003,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1003,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1004,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1004,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1004,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1004,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1010,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1010,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1010,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1010,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1011,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1011,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1011,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1011,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1014,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1014,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1014,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1014,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1016,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1016,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1016,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1016,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1019,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1019,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1019,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1019,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1020,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1020,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1020,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1020,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1023,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1023,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1023,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1023,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1029,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1029,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1029,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1029,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1033,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1033,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1033,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1033,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 89
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 1038
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_enter
    - RT
    - CHECK
    - set_emit_enter
    - CHECK_ERROR
    - push_inst
    - get_arg_count
    - GET_SAVED_REGISTERS_SIZE
    - RT2
    - RM
    - RD
    - RN
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1046,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1047,1
    - Dst: check_sljit_set_context
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1047,1
    - Dst: set_set_context
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1048,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1056
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - set_set_context
    - CHECK
    - check_sljit_set_context
    - CHECK_ERROR
    - GET_SAVED_REGISTERS_SIZE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1063,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1064,1
    - Dst: check_sljit_emit_return
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1064,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1066,1
    - Dst: emit_mov_before_return
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1066,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1068,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1076,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1076,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1076,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1076,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1076,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1078,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1078,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1078,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1078,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1079,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1083,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1083,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1083,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1083,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1087,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1087,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1087,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1087,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1089,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1089,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1089,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1089,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1089,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1100,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1100,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1100,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1100,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1100,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1110,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1110,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1110,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1110,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1110,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1116,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1116,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1116,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1116,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1119,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1119,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1119,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1119,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1120,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1120,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1121
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - RT
    - CHECK
    - CHECK_ERROR
    - RD
    - push_inst
    - GET_SAVED_REGISTERS_SIZE
    - RT2
    - emit_mov_before_return
    - RN
    - check_sljit_emit_return
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1131,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1132,1
    - Dst: check_sljit_emit_op0
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1132,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1134,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1137,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1139,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1142,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1142,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1142,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1142,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1142,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1143,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1143,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1143,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1143,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1143,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1143,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1144,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1144,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1144,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1144,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1147,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1147,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1147,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1147,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1147,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1148,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1148,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1148,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1148,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1148,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1149,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1149,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1149,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1149,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1149,1
    - Dst: RT2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1149,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1150,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1150,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1150,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1150,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1153,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1153,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1153,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1160
    functionName: sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 4
    functionsReached:
    - FAIL_IF
    - CHECK
    - check_sljit_emit_op0
    - CHECK_ERROR
    - push_inst
    - GET_OPCODE
    - RM
    - RT2
    - RD
    - RN
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op0(struct sljit_compiler *compiler,
      sljit_s32 op)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1167,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1169,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1170,1
    - Dst: check_sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1170,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1171,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1172,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1174,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1176,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1179,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1180,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1218,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1224,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1224,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1228,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1228,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1231,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1235,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1247,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1247,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1251,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1253,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1254,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1256
    functionName: sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - HAS_FLAGS
    - SLOW_IS_REG
    - CHECK
    - SLJIT_UNREACHABLE
    - GET_ALL_FLAGS
    - SLJIT_UNLIKELY
    - FAST_IS_REG
    - CHECK_ERROR
    - emit_op_imm
    - GET_OPCODE
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_op1
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1265,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1266,1
    - Dst: check_sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1266,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1267,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1268,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1269,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1271,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1274,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1275,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1287,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1287,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1292,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1292,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1306,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1306,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1311
    functionName: sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - HAS_FLAGS
    - FAIL_IF
    - SLOW_IS_REG
    - CHECK
    - CHECK_ERROR
    - check_sljit_emit_op2
    - GET_OPCODE
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - emit_op_imm
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1316,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1317,1
    - Dst: check_sljit_emit_op_src
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1317,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1318,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1322,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1323,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1323,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1323,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1323,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1323,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1325,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1325,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1327,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1327,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1334,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1347,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1351
    functionName: sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - CHECK
    - check_sljit_emit_op_src
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - emit_op_mem
    - RM
    - ADJUST_LOCAL_OFFSET
    - RD
    - SLJIT_ASSERT
    - RN
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_src(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1355,1
    - Dst: check_sljit_get_register_index
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1357
    functionName: sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 13
    functionsReached:
    - check_sljit_get_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1361,1
    - Dst: check_sljit_get_float_register_index
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1363
    functionName: sljit_get_float_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - check_sljit_get_float_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_float_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1368,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1369,1
    - Dst: check_sljit_emit_op_custom
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1369,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1372
    functionName: sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 12
    functionsReached:
    - check_sljit_emit_op_custom
    - CHECK
    - push_inst
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MEM_SIZE_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1380,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1383,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1391,1
    - Dst: VT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1391,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1392,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1392,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1392,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1394,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1394,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1394,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1394,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1394,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1394,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1395,1
    - Dst: VT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1395,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1395,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1401,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1401,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1405,1
    - Dst: VT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1405,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1405,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1410,1
    - Dst: VT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1410,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1410,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1413,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1413,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1413,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1413,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1416,1
    - Dst: VT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1416,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1416,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1421,1
    - Dst: VT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1421,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1421,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1423,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1423,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1424,1
    - Dst: VT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1424,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1424,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1424,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 5
    argNames:
    - compiler
    - flags
    - reg
    - arg
    - argw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1425
    functionName: emit_fop_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - load_immediate
    - VT
    - OFFS_REG
    - RD
    - push_inst
    - RM
    - MEM_SIZE_SHIFT
    - SLJIT_ASSERT
    - RN
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_fop_mem(struct sljit_compiler *compiler, sljit_s32 flags,
      sljit_s32 reg, sljit_s32 arg, sljit_sw argw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1431,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1434,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1438,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1442,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1442,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1442,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1442,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1445,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1447
    functionName: sljit_emit_fop1_conv_sw_from_f64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_fop_mem
    - FAST_IS_REG
    - push_inst
    - GET_OPCODE
    - emit_op_mem
    - RD
    - VN
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1453,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1456,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1460,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1460,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1464,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1467,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1467,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1471,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1471,1
    - Dst: VD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1471,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1471,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1476
    functionName: sljit_emit_fop1_conv_f64_from_sw
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - load_immediate
    - FAST_IS_REG
    - emit_fop_mem
    - push_inst
    - GET_OPCODE
    - emit_op_mem
    - VD
    - RN
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1486,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1491,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1495,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1495,1
    - Dst: VM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - compiler
    - op
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1496
    functionName: sljit_emit_fop1_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - VN
    - push_inst
    - VM
    - emit_fop_mem
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_cmp(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1505,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1507,1
    - Dst: SELECT_FOP1_OPERATION_WITH_CHECKS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1508,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1511,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1514,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1514,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1518,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1522,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1522,1
    - Dst: VD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1522,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1522,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1528,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1528,1
    - Dst: VD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1528,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1528,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1531,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1531,1
    - Dst: VD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1531,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1531,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1534,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1534,1
    - Dst: VD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1534,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1534,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1539,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1541
    functionName: sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SELECT_FOP1_OPERATION_WITH_CHECKS
    - SLJIT_COMPILE_ASSERT
    - emit_fop_mem
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - GET_OPCODE
    - VD
    - VN
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1551,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1552,1
    - Dst: check_sljit_emit_fop2
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1552,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1553,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1554,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1555,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1557,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1559,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1563,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1567,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1569,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1569,1
    - Dst: VD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1569,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1569,1
    - Dst: VM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1569,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1572,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1572,1
    - Dst: VD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1572,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1572,1
    - Dst: VM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1572,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1575,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1575,1
    - Dst: VD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1575,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1575,1
    - Dst: VM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1575,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1578,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1578,1
    - Dst: VD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1578,1
    - Dst: VN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1578,1
    - Dst: VM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1578,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1584,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1543
    functionDepth: 1
    functionLinenumber: 1543
    functionLinenumberEnd: 1585
    functionName: sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - emit_fop_mem
    - push_inst
    - GET_OPCODE
    - VD
    - VM
    - ADJUST_LOCAL_OFFSET
    - VN
    - check_sljit_emit_fop2
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1593,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1594,1
    - Dst: check_sljit_emit_fast_enter
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1594,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1595,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1597,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1598,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1598,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1598,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1598,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1602
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 20
    functionsReached:
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - check_sljit_emit_fast_enter
    - push_inst
    - emit_op_mem
    - RM
    - ADJUST_LOCAL_OFFSET
    - RD
    - RN
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1665
    functionName: get_cc
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    linkageType: ''
    returnType: sljit_uw
    signature: sljit_uw get_cc(struct sljit_compiler *compiler, sljit_s32 type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1671,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1672,1
    - Dst: check_sljit_emit_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1672,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1677,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1678,1
    - Dst: set_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1681
    functionName: sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - set_label
    - ensure_abuf
    - check_sljit_emit_label
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_label(struct sljit_compiler *compiler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1687,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1688,1
    - Dst: check_sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1688,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1690,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1691,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1692,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1697,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1697,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1697,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1702,1
    - Dst: emit_imm64_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1702,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1704,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1704,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1707
    functionName: sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - set_jump
    - check_sljit_emit_jump
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - emit_imm64_const
    - CHECK_ERROR_PTR
    - RN
    - ensure_abuf
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_jump(struct sljit_compiler *compiler,
      sljit_s32 type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1712,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1713,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1713,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1721
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - CHECK_PTR
    - sljit_emit_jump
    - check_sljit_emit_call
    - CHECK_ERROR_PTR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1729,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1730,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1732,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1733,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1734,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1738,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1738,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1742,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1742,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1746,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1746,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1751,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1751,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1751,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1752,1
    - Dst: emit_imm64_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1752,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1754,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1754,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1723
    functionDepth: 2
    functionLinenumber: 1723
    functionLinenumberEnd: 1756
    functionName: emit_cmp_to0
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - RN
    - RT
    - load_immediate
    - ADJUST_LOCAL_OFFSET
    - FAST_IS_REG
    - PTR_FAIL_IF
    - push_inst
    - emit_imm64_const
    - emit_op_mem
    - set_jump
    - SLJIT_ASSERT
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE * emit_cmp_to0(struct sljit_compiler *compiler, sljit_s32
      type,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1762,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1763,1
    - Dst: check_sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1763,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1764,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1768,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1768,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1771,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1771,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1775,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1776,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1777,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1780,1
    - Dst: emit_imm64_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1780,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1782,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1758
    functionDepth: 2
    functionLinenumber: 1758
    functionLinenumberEnd: 1783
    functionName: sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - set_jump
    - CHECK
    - CHECK_ERROR
    - push_inst
    - emit_imm64_const
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - RN
    - ensure_abuf
    - check_sljit_emit_ijump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_ijump(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 src, sljit_sw srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1789,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1790,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1790,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1785
    functionDepth: 1
    functionLinenumber: 1785
    functionLinenumberEnd: 1798
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 8
    functionsReached:
    - check_sljit_emit_icall
    - CHECK
    - sljit_emit_ijump
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1807,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1808,1
    - Dst: check_sljit_emit_op_flags
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1808,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1809,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1811,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1812,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1814,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1815,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1815,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1815,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1815,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1815,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1818,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1819,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1825,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1836,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1836,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1840,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1840,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1840,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1840,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1840,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1841,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1841,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1800
    functionDepth: 1
    functionLinenumber: 1800
    functionLinenumberEnd: 1846
    functionName: sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - HAS_FLAGS
    - check_sljit_emit_op_flags
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - emit_op_imm
    - push_inst
    - GET_OPCODE
    - emit_op_mem
    - RM
    - ADJUST_LOCAL_OFFSET
    - RD
    - RN
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1855,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1856,1
    - Dst: check_sljit_emit_cmov
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1856,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1858,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1861,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1861,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1866,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1869,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1869,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1869,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1848
    functionDepth: 1
    functionLinenumber: 1848
    functionLinenumberEnd: 1870
    functionName: sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_cmov
    - CHECK
    - load_immediate
    - SLJIT_UNLIKELY
    - CHECK_ERROR
    - push_inst
    - RM
    - RD
    - RN
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_cmov(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1878,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1879,1
    - Dst: check_sljit_emit_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1879,1
    - Dst: MEM_SIZE_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1890,1
    - Dst: MEM_SIZE_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1895,1
    - Dst: MEM_SIZE_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1900,1
    - Dst: MEM_SIZE_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1905,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1908,1
    - Dst: MEM_SIZE_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1909,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1919,1
    - Dst: RT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1919,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1919,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 5
    argNames:
    - compiler
    - type
    - reg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1872
    functionDepth: 1
    functionLinenumber: 1872
    functionLinenumberEnd: 1920
    functionName: sljit_emit_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 7
    functionsReached:
    - check_sljit_emit_mem
    - RT
    - CHECK
    - SLJIT_UNREACHABLE
    - CHECK_ERROR
    - push_inst
    - MEM_SIZE_SHIFT
    - RN
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_mem(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 reg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1928,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1929,1
    - Dst: check_sljit_emit_fmem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1929,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1948,1
    - Dst: VT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1948,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1948,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - compiler
    - type
    - freg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1922
    functionDepth: 1
    functionLinenumber: 1922
    functionLinenumberEnd: 1949
    functionName: sljit_emit_fmem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - RN
    - CHECK
    - CHECK_ERROR
    - push_inst
    - VT
    - check_sljit_emit_fmem
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fmem(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 freg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1956,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1957,1
    - Dst: check_sljit_get_local_base
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1957,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1959,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1961,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1971,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1971,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1971,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1971,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1973,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1973,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1973,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1973,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1977,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1977,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1977,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1977,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1981,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1981,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1983,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1983,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1983,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1983,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1983,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1986,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1987,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - offset
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1951
    functionDepth: 1
    functionLinenumber: 1951
    functionLinenumberEnd: 1989
    functionName: sljit_get_local_base
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - RN
    - check_sljit_get_local_base
    - CHECK
    - load_immediate
    - SLJIT_UNLIKELY
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - emit_op_mem
    - RM
    - RD
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_local_base(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1996,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1997,1
    - Dst: check_sljit_emit_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1997,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:1998,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2000,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2001,1
    - Dst: set_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2002,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2004,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2005,1
    - Dst: emit_imm64_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2005,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2008,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1991
    functionDepth: 2
    functionLinenumber: 1991
    functionLinenumberEnd: 2010
    functionName: sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 1
    functionsReached:
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - emit_imm64_const
    - set_const
    - check_sljit_emit_const
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_const(struct sljit_compiler *compiler,
      sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2017,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2018,1
    - Dst: check_sljit_emit_put_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2018,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2019,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2021,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2022,1
    - Dst: emit_imm64_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2022,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2024,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2025,1
    - Dst: set_put_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2026,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2029,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2012
    functionDepth: 2
    functionLinenumber: 2012
    functionLinenumberEnd: 2032
    functionName: sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 4
    functionsReached:
    - set_put_label
    - check_sljit_emit_put_label
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - emit_imm64_const
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_put_label(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2038,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2040,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2043,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2049,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2050,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2034
    functionDepth: 1
    functionLinenumber: 2034
    functionLinenumberEnd: 2052
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_CACHE_FLUSH
    - SLJIT_UNUSED_ARG
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_64.c:2056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2054
    functionDepth: 0
    functionLinenumber: 2054
    functionLinenumberEnd: 2057
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_64.c
    functionUses: 0
    functionsReached:
    - sljit_set_jump_addr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: SLJIT_R
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_R(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: SLJIT_S
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: SLJIT_FR
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_FR(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: SLJIT_FS
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_FS(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: SLJIT_DEF_RET
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_DEF_RET(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: SLJIT_DEF_ARG1
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_DEF_ARG1(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: SLJIT_DEF_ARG2
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_DEF_ARG2(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: SLJIT_DEF_ARG3
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_DEF_ARG3(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: SLJIT_DEF_ARG4
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_DEF_ARG4(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: SLJIT_RET
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_RET(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: SLJIT_ARG1
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ARG1(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: SLJIT_ARG2
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ARG2(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: SLJIT_ARG3
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ARG3(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: SLJIT_ARG4
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ARG4(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 514
    functionName: sljit_get_compiler_error
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_get_compiler_error(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: sljit_get_executable_offset
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_get_executable_offset(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 572
    functionName: sljit_get_generated_code_size
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_get_generated_code_size(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: SLJIT_MEM0
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_MEM0()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 766
    functionName: SLJIT_MEM1
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 77
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_MEM1(r1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r1
    - ','
    - r2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 767
    functionName: SLJIT_MEM2
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_MEM2(r1, r2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condition
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 860
    functionName: SLJIT_SET
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_SET(condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - struct sljit_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1380
    functionName: sljit_get_label_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_get_label_addr(struct sljit_label *label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jump
    argTypes:
    - struct sljit_jump*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1381
    functionName: sljit_get_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_get_jump_addr(struct sljit_jump *jump)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - const_
    argTypes:
    - struct sljit_const*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1382
    functionName: sljit_get_const_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_get_const_addr(struct sljit_const *const_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1403
    functionName: SLJIT_OFFSETOF
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_OFFSETOF(base, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1459
    functionName: SLJIT_FUNC_OFFSET
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_FUNC_OFFSET(func_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1465
    functionName: SLJIT_FUNC_OFFSET
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_FUNC_OFFSET(func_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: ASM_SLJIT_CLZ
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_SLJIT_CLZ(src, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: PUSH_RLDICR
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_RLDICR(reg, shift)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:49,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:49,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:49,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:49,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:52,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:52,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:52,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:52,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:55,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:55,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:55,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:55,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:55,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:56,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:56,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:56,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:56,1
    - Dst: ASM_SLJIT_CLZ
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:61,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:62,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:67,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:67,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:67,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:67,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:67,1
    - Dst: PUSH_RLDICR
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:69,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:73,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:73,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:73,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:73,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:73,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:74,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:74,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:74,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:74,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:74,1
    - Dst: PUSH_RLDICR
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:76,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:84,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:84,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:84,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:84,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:84,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:85,1
    - Dst: PUSH_RLDICR
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:85,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:86,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:86,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:86,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:90,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:90,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:90,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:90,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:90,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:91,1
    - Dst: PUSH_RLDICR
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:91,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:92,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:92,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:92,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:92,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:93,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:93,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:93,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:93,1
    - Dst: ASM_SLJIT_CLZ
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:96,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:100,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:100,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:100,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:100,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:100,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:103,1
    - Dst: PUSH_RLDICR
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:103,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:104,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:104,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:104,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:104,1
    - Dst: PUSH_RLDICR
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:105,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:109,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:109,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:109,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:109,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:109,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:110,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:110,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:110,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:110,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:110,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:111,1
    - Dst: PUSH_RLDICR
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:111,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:112,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:112,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:112,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:112,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:112,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:113,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:113,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:113,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 3
    argNames:
    - compiler
    - reg
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 114
    functionName: load_immediate
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 7
    functionsReached:
    - FAIL_IF
    - IMM
    - PUSH_RLDICR
    - S
    - ASM_SLJIT_CLZ
    - push_inst
    - A
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32
      reg, sljit_sw imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - from
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: INS_CLEAR_LEFT
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INS_CLEAR_LEFT(dst, src, from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: UN_EXTS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UN_EXTS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: BIN_EXTS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIN_EXTS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: BIN_IMM_EXTS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIN_IMM_EXTS()
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:151,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:153,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:153,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:153,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:153,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:158,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:161,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:161,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:161,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:162,1
    - Dst: INS_CLEAR_LEFT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:162,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:165,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:171,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:174,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:174,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:174,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:175,1
    - Dst: INS_CLEAR_LEFT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:175,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:178,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:178,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:178,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:180,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:186,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:189,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:189,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:189,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:190,1
    - Dst: INS_CLEAR_LEFT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:190,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:193,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:198,1
    - Dst: UN_EXTS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:199,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:200,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:200,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:200,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:200,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:200,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:203,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:206,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:206,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:206,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:207,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:207,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:207,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:207,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:207,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:207,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:208,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:208,1
    - Dst: UN_EXTS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:211,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:213,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:213,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:213,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:213,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:213,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:216,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:218,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:218,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:218,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:219,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:219,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:219,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:224,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:224,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:224,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:226,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:226,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:226,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:230,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:230,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:230,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:230,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:230,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:230,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:230,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:232,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:232,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:238,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:241,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:241,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:241,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:244,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:244,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:244,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:244,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:248,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:248,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:248,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:251,1
    - Dst: BIN_IMM_EXTS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:252,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:253,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:253,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:253,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:257,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:257,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:257,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:257,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:259,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:259,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:259,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:259,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:259,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:260,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:260,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:263,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:263,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:263,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:263,1
    - Dst: BIN_EXTS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:264,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:266,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:266,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:266,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:266,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:266,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:267,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:267,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:267,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:267,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:267,1
    - Dst: BIN_EXTS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:270,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:271,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:271,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:271,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:271,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:276,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:276,1
    - Dst: CRD
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:276,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:276,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:279,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:279,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:279,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:281,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:281,1
    - Dst: CRD
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:281,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:281,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:281,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:284,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:284,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:284,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:284,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:289,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:289,1
    - Dst: CRD
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:289,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:289,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:292,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:292,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:292,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:294,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:294,1
    - Dst: CRD
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:294,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:294,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:294,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:297,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:297,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:297,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:297,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:302,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:302,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:302,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:304,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:304,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:304,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:308,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:308,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:308,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:308,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:308,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:308,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:308,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:310,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:310,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:316,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:317,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:317,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:317,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:321,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:321,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:321,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:321,1
    - Dst: BIN_EXTS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:322,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:324,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:324,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:324,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:324,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:324,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:325,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:325,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:325,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:325,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:325,1
    - Dst: BIN_EXTS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:328,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:329,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:329,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:329,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:329,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:333,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:334,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:334,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:334,1
    - Dst: BIN_EXTS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:336,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:338,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:338,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:338,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:338,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:338,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:338,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:339,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:339,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:339,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:339,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:339,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:339,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:343,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:344,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:344,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:344,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:347,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:348,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:348,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:348,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:350,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:350,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:350,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:350,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:350,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:354,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:355,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:355,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:355,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:358,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:359,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:359,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:359,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:362,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:363,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:363,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:363,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:363,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:363,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:364,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:364,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:364,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:364,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:366,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:366,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:366,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:366,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:366,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:370,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:371,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:371,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:371,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:374,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:375,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:375,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:375,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:378,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:379,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:379,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:379,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:379,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:379,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:380,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:380,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:380,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:380,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:382,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:382,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:382,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:382,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:382,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:386,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:389,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:389,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:389,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:389,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:392,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:392,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:392,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:394,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:394,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:394,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:394,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:394,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:398,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:401,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:401,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:401,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:401,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:404,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:404,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:404,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:406,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:406,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:406,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:406,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:406,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:410,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:413,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:413,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:413,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:413,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:416,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:416,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:416,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:416,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:418,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:418,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:418,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:418,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:418,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:421,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 239
    argCount: 6
    argNames:
    - compiler
    - op
    - flags
    - dst
    - src1
    - src2
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 423
    functionName: emit_single_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - UN_EXTS
    - IMM
    - OE
    - BIN_IMM_EXTS
    - BIN_EXTS
    - SLJIT_UNREACHABLE
    - INS_CLEAR_LEFT
    - S
    - push_inst
    - RC
    - CRD
    - RLDI
    - B
    - A
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_single_op(struct sljit_compiler *compiler, sljit_s32
      op, sljit_s32 flags,\n\tsljit_s32 dst, sljit_s32 src1, sljit_s32 src2)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:450,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:450,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:450,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:450,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:450,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:467,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:467,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:467,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:467,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:467,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - compiler
    - arg_types
    - src
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 478
    functionName: call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - S
    - push_inst
    - B
    - A
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32
      arg_types, sljit_s32 *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:482,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:482,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:482,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:482,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:482,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:483,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:483,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:483,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:483,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:483,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:484,1
    - Dst: PUSH_RLDICR
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:484,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:485,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:485,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:485,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:485,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:485,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:486,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:486,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:486,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - reg
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 487
    functionName: emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - IMM
    - PUSH_RLDICR
    - S
    - push_inst
    - A
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_const(struct sljit_compiler *compiler, sljit_s32
      reg, sljit_sw init_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:492,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:494,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:499,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:500,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 502
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 1
    functionsReached:
    - SLJIT_UPDATE_WX_FLAGS
    - SLJIT_CACHE_FLUSH
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativePPC_64.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_64.c
    functionUses: 0
    functionsReached:
    - sljit_set_jump_addr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:38,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:38,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:38,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:38,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:41,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:41,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:41,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:41,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:44,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:44,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:44,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:44,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:45,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:45,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:45,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:45,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:74,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:79,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:79,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:79,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:79,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:81,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:81,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:81,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:81,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:81,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:87,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:88,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:88,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:88,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:88,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:89,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:89,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:89,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:89,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:111,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:113,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:113,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:113,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:113,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:113,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:114,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:114,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:114,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:114,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:114,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:115,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:115,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:115,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:115,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:115,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:118,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:118,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:118,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:118,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 3
    argNames:
    - compiler
    - dst_ar
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 119
    functionName: load_immediate
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 7
    functionsReached:
    - FAIL_IF
    - SH_IMM
    - IMM
    - DA
    - TA
    - push_inst
    - SLJIT_ASSERT
    - SA
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32
      dst_ar, sljit_sw imm)
  - 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: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: SELECT_OP
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SELECT_OP(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op_imm
    - ','
    - op_norm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: EMIT_LOGICAL
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_LOGICAL(op_imm, op_norm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - op_dimm
    - ','
    - op_dimm32
    - ','
    - op_imm
    - ','
    - op_dv
    - ','
    - op_v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 159
    functionName: EMIT_SHIFT
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_SHIFT(op_dimm, op_dimm32, op_imm, op_dv, op_v)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:166,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:169,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:171,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:171,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:171,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:171,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:171,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:171,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:176,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:179,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:179,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:179,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:179,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:179,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:179,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:180,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:180,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:180,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:180,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:180,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:182,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:182,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:182,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:182,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:182,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:185,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:191,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:194,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:194,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:194,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:194,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:194,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:194,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:195,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:195,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:195,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:195,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:195,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:197,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:197,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:197,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:197,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:197,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:200,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:205,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:206,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:206,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:206,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:206,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:206,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:206,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:207,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:207,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:207,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:207,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:207,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:210,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:211,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:211,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:211,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:211,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:211,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:214,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:216,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:216,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:216,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:216,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:216,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:218,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:218,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:218,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:218,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:218,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:218,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:222,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:225,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:225,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:225,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:225,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:225,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:225,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:227,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:227,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:227,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:227,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:227,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:227,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:227,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:229,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:230,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:230,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:230,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:230,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:230,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:230,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:231,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:231,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:231,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:231,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:234,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:234,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:234,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:234,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:234,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:234,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:234,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:236,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:236,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:236,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:236,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:236,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:237,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:237,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:237,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:237,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:237,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:238,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:238,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:238,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:238,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:238,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:238,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:238,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:240,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:240,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:240,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:240,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:240,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:240,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:240,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:241,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:241,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:241,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:241,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:242,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:242,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:242,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:242,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:242,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:242,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:247,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:248,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:248,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:253,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:253,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:253,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:253,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:253,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:255,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:255,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:255,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:255,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:255,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:258,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:258,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:258,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:258,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:258,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:258,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:262,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:262,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:262,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:262,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:262,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:264,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:264,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:264,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:264,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:264,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:264,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:265,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:265,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:265,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:265,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:265,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:270,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:270,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:270,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:270,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:270,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:270,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:270,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:274,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:274,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:274,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:274,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:274,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:276,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:276,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:276,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:276,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:276,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:276,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:279,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:279,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:279,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:279,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:279,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:282,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:282,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:282,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:282,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:282,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:282,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:282,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:287,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:287,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:287,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:287,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:287,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:290,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:290,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:290,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:290,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:290,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:290,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:290,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:291,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:291,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:291,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:291,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:291,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:292,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:292,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:292,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:292,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:292,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:294,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:294,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:294,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:294,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:294,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:294,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:295,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:295,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:295,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:295,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:295,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:298,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:298,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:303,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:303,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:303,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:303,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:303,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:305,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:305,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:305,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:305,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:305,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:305,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:306,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:306,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:306,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:306,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:306,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:309,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:309,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:309,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:309,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:309,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:309,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:309,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:312,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:312,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:312,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:312,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:312,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:314,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:314,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:314,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:314,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:314,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:314,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:314,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:317,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:317,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:317,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:317,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:317,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:319,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:319,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:319,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:319,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:319,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:319,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:319,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:324,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:324,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:324,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:324,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:324,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:326,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:326,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:326,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:326,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:330,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:330,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:330,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:330,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:330,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:330,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:338,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:338,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:339,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:339,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:339,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:339,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:339,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:342,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:342,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:343,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:343,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:343,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:343,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:343,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:348,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:348,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:352,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:352,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:352,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:352,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:352,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:352,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:357,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:357,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:358,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:358,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:358,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:358,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:358,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:360,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:360,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:362,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:362,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:362,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:362,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:362,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:364,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:364,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:365,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:365,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:365,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:365,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:365,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:367,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:367,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:369,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:369,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:369,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:369,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:369,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:376,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:376,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:376,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:376,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:376,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:376,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:378,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:378,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:378,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:378,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:378,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:378,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:382,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:382,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:382,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:382,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:382,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:382,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:384,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:384,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:384,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:384,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:384,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:384,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:389,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:390,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:390,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:395,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:395,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:395,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:395,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:395,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:397,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:397,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:397,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:397,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:397,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:400,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:400,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:400,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:400,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:400,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:400,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:403,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:403,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:403,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:403,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:403,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:406,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:406,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:406,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:406,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:406,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:406,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:406,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:410,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:410,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:410,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:410,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:410,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:412,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:412,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:412,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:412,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:412,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:412,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:415,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:415,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:415,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:415,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:415,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:418,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:418,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:418,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:418,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:418,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:418,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:418,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:423,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:423,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:423,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:423,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:423,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:423,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:423,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:424,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:424,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:424,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:424,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:424,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:425,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:425,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:425,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:425,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:425,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:427,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:427,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:427,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:427,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:427,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:427,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:428,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:428,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:428,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:428,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:428,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:432,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:432,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:432,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:432,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:432,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:432,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:437,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:437,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:441,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:441,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:441,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:441,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:441,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:443,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:443,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:443,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:443,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:443,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:443,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:443,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:447,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:447,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:447,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:447,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:447,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:449,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:449,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:449,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:449,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:449,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:449,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:449,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:453,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:453,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:453,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:453,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:453,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:453,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:455,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:455,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:455,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:455,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:455,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:455,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:455,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:456,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:456,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:456,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:456,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:459,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:461,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:463,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:463,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:463,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:463,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:463,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:463,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:466,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:466,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:466,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:466,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:466,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:467,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:467,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:467,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:467,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:468,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:468,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:468,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:470,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:470,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:470,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:470,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:470,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:471,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:471,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:471,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:476,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:476,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:476,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:476,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:476,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:476,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:476,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:477,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:477,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:477,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:477,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:477,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:477,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:479,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:479,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:479,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:479,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:479,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:480,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:480,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:480,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:481,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:481,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:481,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:481,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:483,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:483,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:483,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:483,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:483,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:483,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:484,1
    - Dst: SELECT_OP
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:484,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:484,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:484,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:484,1
    - Dst: EMIT_LOGICAL
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:487,1
    - Dst: EMIT_LOGICAL
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:491,1
    - Dst: EMIT_LOGICAL
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:495,1
    - Dst: EMIT_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:499,1
    - Dst: EMIT_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:503,1
    - Dst: EMIT_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:507,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:511,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 271
    argCount: 6
    argNames:
    - compiler
    - op
    - flags
    - dst
    - src1
    - src2
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 513
    functionName: emit_single_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 0
    functionsReached:
    - SH_IMM
    - SLJIT_UNREACHABLE
    - IMM
    - DA
    - T
    - SA
    - FAIL_IF
    - S
    - GET_OPCODE
    - GET_FLAG_TYPE
    - EMIT_SHIFT
    - DR
    - SLJIT_UNLIKELY
    - EMIT_LOGICAL
    - push_inst
    - TA
    - SELECT_OP
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_single_op(struct sljit_compiler *compiler, sljit_s32
      op, sljit_s32 flags,\n\tsljit_s32 dst, sljit_s32 src1, sljit_sw src2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:517,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:517,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:517,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:517,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:517,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:518,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:518,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:518,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:518,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:518,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:518,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:519,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:519,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:519,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:519,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:519,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:519,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:520,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:520,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:520,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:520,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:520,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:520,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:521,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:521,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:521,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:521,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:521,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:521,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:522,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:522,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:522,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:522,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - compiler
    - dst
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - SH_IMM
    - IMM
    - DR
    - S
    - T
    - push_inst
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_const(struct sljit_compiler *compiler, sljit_s32
      dst, sljit_sw init_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:528,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:530,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:535,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:536,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 538
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 2
    functionsReached:
    - SLJIT_UPDATE_WX_FLAGS
    - SLJIT_CACHE_FLUSH
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 0
    functionsReached:
    - sljit_set_jump_addr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:554,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:580,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:580,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:582,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:582,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:588,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:588,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:590,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:590,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:596,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:596,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:596,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:598,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:598,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:598,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:606,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:606,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - compiler
    - arg_types
    - ins_ptr
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_ins*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 617
    functionName: call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - FS
    - FD
    - DA
    - S
    - TA
    - push_inst
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32
      arg_types, sljit_ins *ins_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:625,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:626,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:626,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:628,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:629,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:630,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:633,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:633,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:635,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:635,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:637,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:637,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:640,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:640,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:640,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:640,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:642,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 645
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 2
    functionsReached:
    - set_jump
    - DR
    - DA
    - check_sljit_emit_call
    - S
    - call_with_args
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - emit_const
    - CHECK_ERROR_PTR
    - SLJIT_ASSERT
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:653,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:654,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:654,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:656,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:656,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:659,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:659,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:659,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:660,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:661,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:661,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:661,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:661,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:661,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:661,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:663,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:664,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:664,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:664,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:667,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:667,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:670,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:670,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:670,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:670,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_64.c:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 672
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
    functionUses: 9
    functionsReached:
    - FAIL_IF
    - DR
    - DA
    - CHECK
    - load_immediate
    - FAST_IS_REG
    - CHECK_ERROR
    - S
    - call_with_args
    - push_inst
    - TA
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_icall
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - allocator_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: SLJIT_MALLOC
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_MALLOC(size, allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - allocator_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: SLJIT_FREE
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_FREE(ptr, allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dest
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: SLJIT_MEMCPY
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_MEMCPY(dest, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dest
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: SLJIT_MEMMOVE
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_MEMMOVE(dest, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: SLJIT_ZEROMEM
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ZEROMEM(dest, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: SLJIT_LIKELY
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: SLJIT_UNLIKELY
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: SLJIT_LIKELY
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: SLJIT_UNLIKELY
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: SLJIT_UNUSED_ARG
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_UNUSED_ARG(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 327
    functionName: SLJIT_CACHE_FLUSH
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_CACHE_FLUSH(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: SLJIT_CACHE_FLUSH
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_CACHE_FLUSH(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: SLJIT_CACHE_FLUSH
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_CACHE_FLUSH(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: SLJIT_CACHE_FLUSH
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_CACHE_FLUSH(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: SLJIT_CACHE_FLUSH
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_CACHE_FLUSH(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 371
    functionName: SLJIT_CACHE_FLUSH
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_CACHE_FLUSH(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: SLJIT_CACHE_FLUSH
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_CACHE_FLUSH(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: SLJIT_CACHE_FLUSH
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_CACHE_FLUSH(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 457
    functionName: SLJIT_W
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_W(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: SLJIT_W
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_W(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 462
    functionName: SLJIT_W
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_W(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    functionName: SLJIT_W
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_W(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - exec_allocator_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: SLJIT_BUILTIN_MALLOC_EXEC
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_BUILTIN_MALLOC_EXEC(size, exec_allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - exec_allocator_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: SLJIT_BUILTIN_FREE_EXEC
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_BUILTIN_FREE_EXEC(ptr, exec_allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - exec_allocator_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 625
    functionName: SLJIT_MALLOC_EXEC
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_MALLOC_EXEC(size, exec_allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - exec_allocator_data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 629
    functionName: SLJIT_FREE_EXEC
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_FREE_EXEC(ptr, exec_allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: SLJIT_EXEC_OFFSET
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_EXEC_OFFSET(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 636
    functionName: SLJIT_EXEC_OFFSET
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_EXEC_OFFSET(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: SLJIT_HALT_PROCESS
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_HALT_PROCESS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 802
    functionName: SLJIT_ASSERT
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 79
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 812
    functionName: SLJIT_UNREACHABLE
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 823
    functionName: SLJIT_ASSERT
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 79
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 825
    functionName: SLJIT_UNREACHABLE
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - description
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: SLJIT_COMPILE_ASSERT
    functionSourceFile: /src/pcre2/src/sljit/sljitConfigInternal.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_COMPILE_ASSERT(x, description)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VirtualAlloc
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: alloc_chunk
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached:
    - VirtualAlloc
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE * alloc_chunk(sljit_uw size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:91,1
    - Dst: VirtualFree
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chunk
    - size
    argTypes:
    - void*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: free_chunk
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached:
    - VirtualFree
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE free_chunk(void *chunk, sljit_uw size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:122,1
    - Dst: atoi
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:125,1
    - Dst: get_page_alignment
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:126,1
    - Dst: mmap
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:128,1
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 138
    functionName: get_map_jit_flag
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached:
    - munmap
    - uname
    - mmap
    - get_page_alignment
    - atoi
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE get_map_jit_flag()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - from
    - ','
    - to
    - ','
    - enable_exec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: SLJIT_UPDATE_WX_FLAGS
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_UPDATE_WX_FLAGS(from, to, enable_exec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_jit_write_protect_np
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable_exec
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: apple_update_wx_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached:
    - pthread_jit_write_protect_np
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE apple_update_wx_flags(sljit_s32 enable_exec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PROT_MAX
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:174,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:180,1
    - Dst: open_dev_zero
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:180,1
    - Dst: mmap
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:186,1
    - Dst: mprotect
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:190,1
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:191,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - size
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 198
    functionName: alloc_chunk
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached:
    - munmap
    - mprotect
    - SLJIT_UNLIKELY
    - PROT_MAX
    - open_dev_zero
    - mmap
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE * alloc_chunk(sljit_uw size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chunk
    - size
    argTypes:
    - void*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: free_chunk
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE free_chunk(void *chunk, sljit_uw size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: AS_BLOCK_HEADER
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_BLOCK_HEADER(base, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: AS_FREE_BLOCK
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_FREE_BLOCK(base, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: MEM_START
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM_START(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: ALIGN_SIZE
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_SIZE(size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - free_block
    - size
    argTypes:
    - struct free_block*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: sljit_insert_free_block
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_insert_free_block(struct free_block *free_block,
      sljit_uw size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - free_block
    argTypes:
    - struct free_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 259
    functionName: sljit_remove_free_block
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_remove_free_block(struct free_block *free_block)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ALLOCATOR_LOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:268,1
    - Dst: ALIGN_SIZE
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:271,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:277,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:282,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:284,1
    - Dst: sljit_remove_free_block
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:287,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:293,1
    - Dst: MEM_START
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:294,1
    - Dst: alloc_chunk
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:300,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:302,1
    - Dst: AS_FREE_BLOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:316,1
    - Dst: sljit_insert_free_block
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:318,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:319,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:325,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:329,1
    - Dst: MEM_START
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 1
    argNames:
    - size
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 331
    functionName: sljit_malloc_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached:
    - ALIGN_SIZE
    - AS_FREE_BLOCK
    - sljit_insert_free_block
    - AS_BLOCK_HEADER
    - alloc_chunk
    - sljit_remove_free_block
    - SLJIT_ALLOCATOR_LOCK
    - SLJIT_ALLOCATOR_UNLOCK
    - MEM_START
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_malloc_exec(sljit_uw size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ALLOCATOR_LOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:338,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:339,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:343,1
    - Dst: AS_FREE_BLOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:347,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:348,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:350,1
    - Dst: sljit_insert_free_block
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:355,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:358,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:359,1
    - Dst: sljit_remove_free_block
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:361,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:362,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:367,1
    - Dst: sljit_remove_free_block
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:371,1
    - Dst: free_chunk
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:372,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:376,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 378
    functionName: sljit_free_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 0
    functionsReached:
    - AS_FREE_BLOCK
    - sljit_insert_free_block
    - AS_BLOCK_HEADER
    - sljit_remove_free_block
    - SLJIT_UNLIKELY
    - free_chunk
    - SLJIT_ALLOCATOR_LOCK
    - SLJIT_ALLOCATOR_UNLOCK
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_exec(void* ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ALLOCATOR_LOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:385,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:386,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:392,1
    - Dst: sljit_remove_free_block
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:394,1
    - Dst: free_chunk
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:395,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:400,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:401,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitExecAllocator.c:402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 403
    functionName: sljit_free_unused_memory_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitExecAllocator.c
    functionUses: 1
    functionsReached:
    - AS_BLOCK_HEADER
    - sljit_remove_free_block
    - free_chunk
    - SLJIT_ALLOCATOR_LOCK
    - SLJIT_ALLOCATOR_UNLOCK
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_unused_memory_exec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: sljit_get_platform_name
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_get_platform_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: S
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 175
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: T
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 190
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: D
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: FT
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FT(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: FS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: FD
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FD(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: SA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SA(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: TA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TA(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: DA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DA(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - imm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMM(imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - imm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: SH_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SH_IMM(imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: DR
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DR(dr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: FR
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR(dr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: HI
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HI(opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: LO
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LO(opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:293,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:294,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - compiler
    - ins
    - delay_slot
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: push_inst
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 34
    functionsReached:
    - SLJIT_ASSERT
    - FAIL_IF
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_ins ins,
      sljit_s32 delay_slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - flags
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: invert_branch
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE invert_branch(sljit_s32 flags)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:332,1
    - Dst: invert_branch
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:359,1
    - Dst: invert_branch
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:374,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 104
    argCount: 4
    argNames:
    - jump
    - code_ptr
    - code
    - executable_offset
    argTypes:
    - struct sljit_jump*
    - sljit_ins*
    - sljit_ins*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 444
    functionName: detect_jump_type
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 1
    functionsReached:
    - SLJIT_ASSERT
    - invert_branch
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE * detect_jump_type(struct sljit_jump *jump, sljit_ins
      *code_ptr, sljit_ins *code, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - code_ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: sljit_cache_flush
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - SLJIT_CACHE_FLUSH
    linkageType: ''
    returnType: void
    signature: void sljit_cache_flush(void* code, void* code_ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - put_label
    - max_label
    argTypes:
    - struct sljit_put_label*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 469
    functionName: put_label_get_length
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE put_label_get_length(struct sljit_put_label *put_label,
      sljit_uw max_label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:478,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:479,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:479,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:482,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:483,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:483,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:484,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:484,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:484,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:485,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:485,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:485,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:489,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:489,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:490,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:490,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:490,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:491,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:491,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:491,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:492,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:492,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:492,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:493,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:493,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:493,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:497,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:497,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - put_label
    argTypes:
    - struct sljit_put_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 498
    functionName: put_label_set
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - SH_IMM
    - IMM
    - S
    - T
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE put_label_set(struct sljit_put_label *put_label)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:519,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:520,1
    - Dst: check_sljit_generate_code
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:520,1
    - Dst: reverse_buf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:521,1
    - Dst: SLJIT_MALLOC_EXEC
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:523,1
    - Dst: PTR_FAIL_WITH_EXEC_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:524,1
    - Dst: SLJIT_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:530,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:543,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:544,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:545,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:546,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:550,1
    - Dst: detect_jump_type
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:560,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:568,1
    - Dst: put_label_get_length
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:571,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:571,1
    - Dst: compute_next_addr
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:576,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:591,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:592,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:593,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:594,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:595,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:604,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:605,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:610,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:610,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:621,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:626,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:648,1
    - Dst: put_label_set
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:652,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:661,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:662,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:665,1
    - Dst: sljit_cache_flush
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:668,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:670,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 120
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 672
    functionName: sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 3
    functionsReached:
    - PTR_FAIL_WITH_EXEC_IF
    - SLJIT_MALLOC_EXEC
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_EXEC_OFFSET
    - compute_next_addr
    - sljit_cache_flush
    - CHECK_PTR
    - put_label_get_length
    - SLJIT_CACHE_FLUSH
    - reverse_buf
    - detect_jump_type
    - check_sljit_generate_code
    - CHECK_ERROR_PTR
    - put_label_set
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - feature_type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 701
    functionName: sljit_has_cpu_feature
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_has_cpu_feature(sljit_s32 feature_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:759,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:760,1
    - Dst: check_sljit_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:760,1
    - Dst: set_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:761,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:763,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:773,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:773,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:773,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:773,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:773,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:773,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:774,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:778,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:778,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:778,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:779,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:779,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:779,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:779,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:779,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:779,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:780,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:780,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:780,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:780,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:780,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:780,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:781,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:786,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:786,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:786,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:786,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:791,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:791,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:791,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:791,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:796,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:796,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:796,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:796,1
    - Dst: get_arg_count
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:799,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:802,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:802,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:802,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:802,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:802,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:802,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:804,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:804,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:804,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:804,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:804,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:804,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:806,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:806,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:806,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:806,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:806,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:806,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 809
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - IMM
    - check_sljit_emit_enter
    - DR
    - CHECK
    - set_emit_enter
    - load_immediate
    - SA
    - S
    - CHECK_ERROR
    - T
    - push_inst
    - TA
    - get_arg_count
    - GET_SAVED_REGISTERS_SIZE
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:815,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:816,1
    - Dst: check_sljit_set_context
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:816,1
    - Dst: set_set_context
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:817,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 826
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - set_set_context
    - CHECK
    - check_sljit_set_context
    - CHECK_ERROR
    - GET_SAVED_REGISTERS_SIZE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:833,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:834,1
    - Dst: check_sljit_emit_return
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:834,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:836,1
    - Dst: emit_mov_before_return
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:836,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:840,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:842,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:842,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:842,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:843,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:843,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:843,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:843,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:843,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:843,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:844,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:848,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:848,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:848,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:848,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:849,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:853,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:853,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:853,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:853,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:853,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:859,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:859,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:859,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:859,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:859,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:863,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:865,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:865,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:865,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:867,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:867,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:867,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:867,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:869,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:869,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:869,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:869,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 870
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - IMM
    - DR
    - CHECK
    - load_immediate
    - SA
    - S
    - CHECK_ERROR
    - T
    - push_inst
    - TA
    - GET_SAVED_REGISTERS_SIZE
    - emit_mov_before_return
    - SLJIT_ASSERT
    - check_sljit_emit_return
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - 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: 881
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 881
    functionName: ARCH_32_64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCH_32_64(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: 883
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 883
    functionName: ARCH_32_64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCH_32_64(a, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:917,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:921,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:923,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:923,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:923,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:924,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - compiler
    - flags
    - reg_ar
    - arg
    - argw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 928
    functionName: getput_arg_fast
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - IMM
    - SLJIT_UNLIKELY
    - S
    - push_inst
    - TA
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 getput_arg_fast(struct sljit_compiler *compiler, sljit_s32
      flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:935,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - arg
    - argw
    - next_arg
    - next_argw
    argTypes:
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 953
    functionName: can_cache
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 can_cache(sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg,
      sljit_sw next_argw)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:960,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:971,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:976,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:982,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:982,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:982,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:988,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:988,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:988,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:988,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:988,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:988,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:989,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:989,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:989,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:991,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:991,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:991,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:991,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:991,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:992,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:992,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:992,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:996,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:999,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:999,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:999,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:999,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:999,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:999,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:999,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1005,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1005,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1005,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1005,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1005,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1005,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1005,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1006,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1009,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1009,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1009,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1009,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1009,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1009,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1010,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1010,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1010,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1015,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1015,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1015,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1015,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1015,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1015,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1018,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1018,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1018,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1023,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1023,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1023,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1023,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1023,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1023,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1027,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1027,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1027,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1032,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1032,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1032,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1036,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1036,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1036,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1036,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1036,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1036,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1037,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1037,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1037,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1040,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1040,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1040,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1040,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1040,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1041,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1041,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1041,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 7
    argNames:
    - compiler
    - flags
    - reg_ar
    - arg
    - argw
    - next_arg
    - next_argw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 1042
    functionName: getput_arg
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SH_IMM
    - IMM
    - DR
    - DA
    - load_immediate
    - SLJIT_UNLIKELY
    - SA
    - S
    - T
    - OFFS_REG
    - push_inst
    - TA
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 getput_arg(struct sljit_compiler *compiler, sljit_s32 flags,
      sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg, sljit_sw
      next_argw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1048,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1056,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1061,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1064,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1065,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1065,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1065,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1065,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1065,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1065,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1066,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1066,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1066,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1066,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1066,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1069,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1069,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1069,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1069,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1069,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1069,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1070,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1070,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1070,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1073,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1073,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1076,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1076,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1076,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1076,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1076,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1078,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1078,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1078,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - compiler
    - flags
    - reg_ar
    - arg
    - argw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1079
    functionName: emit_op_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 13
    functionsReached:
    - FAIL_IF
    - SH_IMM
    - DR
    - DA
    - load_immediate
    - SLJIT_UNLIKELY
    - OFFS_REG
    - S
    - T
    - push_inst
    - TA
    - getput_arg_fast
    - SA
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_op_mem(struct sljit_compiler *compiler, sljit_s32
      flags, sljit_s32 reg_ar, sljit_s32 arg, sljit_sw argw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1083,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - compiler
    - flags
    - reg
    - arg1
    - arg1w
    - arg2
    - arg2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1086
    functionName: emit_op_mem2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - getput_arg_fast
    - getput_arg
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_op_mem2(struct sljit_compiler *compiler, sljit_s32
      flags, sljit_s32 reg, sljit_s32 arg1, sljit_sw arg1w, sljit_s32 arg2, sljit_sw
      arg2w)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1107,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1108,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1108,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1111,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1117,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1117,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1144,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1150,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1150,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1150,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1157,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1157,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1158,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1165,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1174,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1174,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1174,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1185,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1185,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1186,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1193,1
    - Dst: can_cache
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1194,1
    - Dst: can_cache
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1194,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1195,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1195,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1195,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1196,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1196,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1196,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1199,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1199,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1199,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1200,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1200,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1200,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1204,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1204,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1204,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1206,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1206,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1206,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1208,1
    - Dst: emit_single_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1208,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1212,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1212,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1215,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1215,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 96
    argCount: 9
    argNames:
    - compiler
    - op
    - flags
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1219
    functionName: emit_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - HAS_FLAGS
    - FAIL_IF
    - can_cache
    - DR
    - load_immediate
    - SLJIT_UNLIKELY
    - FAST_IS_REG
    - getput_arg
    - emit_single_op
    - getput_arg_fast
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32
      flags,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1227,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1228,1
    - Dst: check_sljit_emit_op0
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1228,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1230,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1233,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1235,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1240,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1240,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1240,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1240,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1240,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1240,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1241,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1241,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1241,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1241,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1241,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1241,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1243,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1243,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1243,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1243,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1243,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1243,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1244,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1244,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1244,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1244,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1244,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1244,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1246,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1246,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1246,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1246,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1246,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1246,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1247,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1247,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1247,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1247,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1247,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1250,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1250,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1250,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1250,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1252,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1252,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1252,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1252,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1254,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1254,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1254,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1254,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1255,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1255,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1255,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1261,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1265,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1265,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1265,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1265,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1265,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1265,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1266,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1266,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1266,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1266,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1266,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1266,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1269,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1269,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1269,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1269,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1269,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1269,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1270,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1270,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1270,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1270,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1270,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1270,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1273,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1273,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1273,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1273,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1273,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1273,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1274,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1274,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1274,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1274,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1274,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1274,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1276,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1276,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1276,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1276,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1276,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1276,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1277,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1277,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1277,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1277,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1277,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1280,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1280,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1281,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1281,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1285,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1285,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1285,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1285,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1287,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1287,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1287,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1287,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1289,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1289,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1289,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1289,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1291,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1291,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1291,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1291,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1292,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1292,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1292,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1300
    functionName: sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - DR
    - CHECK
    - SLJIT_COMPILE_ASSERT
    - check_sljit_emit_op0
    - CHECK_ERROR
    - S
    - T
    - push_inst
    - GET_OPCODE
    - TA
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op0(struct sljit_compiler *compiler,
      sljit_s32 op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1308,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1308,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1308,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1310,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1310,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1310,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1311,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1311,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1311,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1316,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1317,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1317,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1317,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1317,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1317,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1317,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1317,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1318,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1318,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1318,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1321,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1321,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1321,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - compiler
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1322
    functionName: emit_prefetch
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SH_IMM
    - IMM
    - DR
    - load_immediate
    - SLJIT_UNLIKELY
    - OFFS_REG
    - S
    - T
    - push_inst
    - D
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_prefetch(struct sljit_compiler *compiler,\n        sljit_s32
      src, sljit_sw srcw)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1335,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1336,1
    - Dst: check_sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1336,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1337,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1338,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1341,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1345,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1348,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1352,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1354,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1359,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1361,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1365,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1368,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1371,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1374,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1377,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1381,1
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1381,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1384,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1393
    functionName: sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - emit_op
    - CHECK
    - SLJIT_UNREACHABLE
    - GET_ALL_FLAGS
    - CHECK_ERROR
    - GET_OPCODE
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_op1
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1406,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1407,1
    - Dst: check_sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1407,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1408,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1409,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1410,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1412,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1425,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1429,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1434,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1438,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1443,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1459,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1462,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1468
    functionName: sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - HAS_FLAGS
    - emit_op
    - CHECK
    - SLJIT_UNREACHABLE
    - CHECK_ERROR
    - check_sljit_emit_op2
    - GET_OPCODE
    - ADJUST_LOCAL_OFFSET
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1473,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1474,1
    - Dst: check_sljit_emit_op_src
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1474,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1475,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1479,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1480,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1480,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1480,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1480,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1480,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1482,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1482,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1484,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1484,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1484,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1485,1
    - Dst: emit_prefetch
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1500
    functionName: sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - DA
    - CHECK
    - check_sljit_emit_op_src
    - FAST_IS_REG
    - CHECK_ERROR
    - S
    - push_inst
    - TA
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - emit_prefetch
    - SA
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_src(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1504,1
    - Dst: check_sljit_get_register_index
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1506
    functionName: sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 14
    functionsReached:
    - check_sljit_get_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1510,1
    - Dst: check_sljit_get_float_register_index
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1510,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1512
    functionName: sljit_get_float_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - FR
    - check_sljit_get_float_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_float_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1517,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1518,1
    - Dst: check_sljit_emit_op_custom
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1518,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1521
    functionName: sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 13
    functionsReached:
    - check_sljit_emit_op_custom
    - CHECK
    - push_inst
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1527
    functionDepth: 0
    functionLinenumber: 1527
    functionLinenumberEnd: 1528
    functionName: FLOAT_DATA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLOAT_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1528
    functionDepth: 0
    functionLinenumber: 1528
    functionLinenumberEnd: 1529
    functionName: FMT
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FMT(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1537,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1541,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1541,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1541,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1541,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1545,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1545,1
    - Dst: FMT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1545,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1545,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1545,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1547,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1548,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1548,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1548,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1551,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1556
    functionName: sljit_emit_fop1_conv_sw_from_f64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - FS
    - FD
    - FAST_IS_REG
    - T
    - FR
    - push_inst
    - GET_OPCODE
    - emit_op_mem2
    - FLOAT_DATA
    - FMT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1565,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1568,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1570,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1571,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1571,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1571,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1571,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1574,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1574,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1574,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1578,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1581,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1581,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1581,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1582,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1582,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1582,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1582,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1585,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1585,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1585,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1585,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1588,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1588,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1588,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1594
    functionName: sljit_emit_fop1_conv_f64_from_sw
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - DR
    - FS
    - FD
    - load_immediate
    - FAST_IS_REG
    - T
    - FR
    - push_inst
    - GET_OPCODE
    - emit_op_mem2
    - FLOAT_DATA
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1603,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1603,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1603,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1603,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1608,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1608,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1608,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1608,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1612,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1626,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1626,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1626,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1630,1
    - Dst: FMT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1630,1
    - Dst: FT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1630,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1630,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - compiler
    - op
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1631
    functionName: sljit_emit_fop1_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - FS
    - FR
    - push_inst
    - emit_op_mem2
    - FLOAT_DATA
    - FMT
    - SLJIT_ASSERT
    - GET_FLAG_TYPE
    - FT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_cmp(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1639,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1643,1
    - Dst: SELECT_FOP1_OPERATION_WITH_CHECKS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1644,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1646,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1649,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1652,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1652,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1652,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1652,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1656,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1660,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1660,1
    - Dst: FMT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1660,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1660,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1660,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1666,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1666,1
    - Dst: FMT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1666,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1666,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1666,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1669,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1669,1
    - Dst: FMT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1669,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1669,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1669,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1672,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1672,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1672,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1672,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1678,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1678,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1678,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1633
    functionDepth: 1
    functionLinenumber: 1633
    functionLinenumberEnd: 1680
    functionName: sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SELECT_FOP1_OPERATION_WITH_CHECKS
    - FS
    - FD
    - SLJIT_COMPILE_ASSERT
    - FAST_IS_REG
    - CHECK_ERROR
    - FR
    - push_inst
    - GET_OPCODE
    - emit_op_mem2
    - FLOAT_DATA
    - FMT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1689,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1690,1
    - Dst: check_sljit_emit_fop2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1690,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1691,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1692,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1693,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1698,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1701,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1701,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1701,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1702,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1709,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1709,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1709,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1710,1
    - Dst: can_cache
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1717,1
    - Dst: can_cache
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1717,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1718,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1718,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1718,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1718,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1719,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1719,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1719,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1719,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1722,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1722,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1722,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1722,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1723,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1723,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1723,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1723,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1727,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1727,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1727,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1727,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1729,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1729,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1729,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1729,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1736,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1738,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1738,1
    - Dst: FMT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1738,1
    - Dst: FT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1738,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1738,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1738,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1742,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1742,1
    - Dst: FMT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1742,1
    - Dst: FT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1742,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1742,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1742,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1746,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1746,1
    - Dst: FMT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1746,1
    - Dst: FT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1746,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1746,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1746,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1750,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1750,1
    - Dst: FMT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1750,1
    - Dst: FT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1750,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1750,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1750,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1755,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1755,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1755,1
    - Dst: FR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1755,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1682
    functionDepth: 1
    functionLinenumber: 1682
    functionLinenumberEnd: 1758
    functionName: sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - FS
    - FD
    - CHECK
    - FMT
    - FAST_IS_REG
    - CHECK_ERROR
    - FR
    - push_inst
    - getput_arg
    - GET_OPCODE
    - emit_op_mem2
    - FLOAT_DATA
    - ADJUST_LOCAL_OFFSET
    - getput_arg_fast
    - can_cache
    - check_sljit_emit_fop2
    - FT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1766,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1767,1
    - Dst: check_sljit_emit_fast_enter
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1767,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1768,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1770,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1771,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1771,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1771,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1771,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1774,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1777
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 21
    functionsReached:
    - FAIL_IF
    - D
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - check_sljit_emit_fast_enter
    - push_inst
    - TA
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - SA
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1787,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1788,1
    - Dst: check_sljit_emit_label
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1788,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1793,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1794,1
    - Dst: set_label
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1783
    functionDepth: 1
    functionLinenumber: 1783
    functionLinenumberEnd: 1798
    functionName: sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - set_label
    - ensure_abuf
    - check_sljit_emit_label
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_label(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1810
    functionName: BR_Z
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BR_Z(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1815
    functionName: BR_NZ
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BR_NZ(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1818
    functionDepth: 0
    functionLinenumber: 1818
    functionLinenumberEnd: 1822
    functionName: BR_T
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BR_T()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1822
    functionDepth: 0
    functionLinenumber: 1822
    functionLinenumberEnd: 1826
    functionName: BR_F
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BR_F()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1833
    functionName: BR_T
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BR_T()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1833
    functionDepth: 0
    functionLinenumber: 1833
    functionLinenumberEnd: 1837
    functionName: BR_F
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BR_F()
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1847,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1848,1
    - Dst: check_sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1848,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1850,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1851,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1852,1
    - Dst: BR_NZ
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1857,1
    - Dst: BR_Z
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1860,1
    - Dst: BR_Z
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1867,1
    - Dst: BR_NZ
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1874,1
    - Dst: BR_T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1880,1
    - Dst: BR_F
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1886,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1899,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1899,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1901,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1901,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1904,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1904,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1904,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1907,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1907,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1907,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1907,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1911,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1911,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1840
    functionDepth: 1
    functionLinenumber: 1840
    functionLinenumberEnd: 1913
    functionName: sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 3
    functionsReached:
    - set_jump
    - DA
    - check_sljit_emit_jump
    - BR_T
    - S
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - emit_const
    - CHECK_ERROR_PTR
    - BR_F
    - BR_Z
    - BR_NZ
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_jump(struct sljit_compiler *compiler,
      sljit_s32 type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1915
    functionDepth: 0
    functionLinenumber: 1915
    functionLinenumberEnd: 1924
    functionName: RESOLVE_IMM1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESOLVE_IMM1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1925
    functionDepth: 0
    functionLinenumber: 1925
    functionLinenumberEnd: 1934
    functionName: RESOLVE_IMM2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESOLVE_IMM2()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1943,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1944,1
    - Dst: check_sljit_emit_cmp
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1944,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1945,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1946,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1952,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1952,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1952,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1956,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1956,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1956,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1960,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1961,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1962,1
    - Dst: RESOLVE_IMM1
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1966,1
    - Dst: RESOLVE_IMM2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1967,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1969,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1969,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1971,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1971,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1971,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1971,1
    - Dst: RESOLVE_IMM2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1976,1
    - Dst: RESOLVE_IMM1
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:1998,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2018,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2018,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2018,1
    - Dst: RESOLVE_IMM1
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2022,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2024,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2024,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2024,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2024,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2024,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2024,1
    - Dst: RESOLVE_IMM2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2026,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2027,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2027,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2027,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2027,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2027,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2027,1
    - Dst: RESOLVE_IMM2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2032,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2034,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2034,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2034,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2034,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2034,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2034,1
    - Dst: RESOLVE_IMM1
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2036,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2037,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2037,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2037,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2037,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2037,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2037,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2043,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2043,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2043,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2043,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2046,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2046,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2047,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2047,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2047,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2049,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2049,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 99
    argCount: 6
    argNames:
    - compiler
    - type
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 1935
    functionDepth: 1
    functionLinenumber: 1935
    functionLinenumberEnd: 2051
    functionName: sljit_emit_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 1
    functionsReached:
    - set_jump
    - IMM
    - DR
    - RESOLVE_IMM1
    - RESOLVE_IMM2
    - S
    - T
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - emit_op_mem2
    - TA
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_cmp
    - CHECK_ERROR_PTR
    - ensure_abuf
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_cmp(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2069,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2070,1
    - Dst: check_sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2070,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2071,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2074,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2075,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2076,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2082,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2082,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2086,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2086,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2086,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2090,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2090,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2090,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2093,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2093,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2065
    functionDepth: 1
    functionLinenumber: 2065
    functionLinenumberEnd: 2095
    functionName: sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - set_jump
    - DR
    - CHECK
    - S
    - CHECK_ERROR
    - push_inst
    - emit_op_mem
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - ensure_abuf
    - check_sljit_emit_ijump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_ijump(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 src, sljit_sw srcw)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2109,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2110,1
    - Dst: check_sljit_emit_op_flags
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2110,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2111,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2113,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2118,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2118,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2124,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2124,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2124,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2129,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2129,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2129,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2129,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2129,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2138,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2138,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2138,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2138,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2138,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2152,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2152,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2152,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2152,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2154,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2154,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2154,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2154,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2156,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2156,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2156,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2156,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2156,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2157,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2157,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2157,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2157,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2157,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2167,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2167,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2167,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2167,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2167,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2173,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2176,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2176,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2176,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2176,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2181,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2182,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2182,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2182,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2182,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2182,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2182,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2187,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2188,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2189
    functionName: sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - SH_IMM
    - ADJUST_LOCAL_OFFSET
    - emit_op
    - IMM
    - FS
    - DA
    - FAST_IS_REG
    - emit_op_mem2
    - emit_op_mem
    - SA
    - FAIL_IF
    - CHECK
    - CHECK_ERROR
    - GET_OPCODE
    - DR
    - check_sljit_emit_op_flags
    - push_inst
    - TA
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2199,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2200,1
    - Dst: check_sljit_emit_cmov
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2200,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2204,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2209,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2209,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2209,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2218,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2221,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2228,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2235,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2250,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2251,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2255,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2255,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2255,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2255,1
    - Dst: sljit_emit_cmov_generic
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2260
    functionName: sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_cmov
    - DR
    - CHECK
    - load_immediate
    - SLJIT_UNREACHABLE
    - SLJIT_UNLIKELY
    - S
    - CHECK_ERROR
    - TA
    - push_inst
    - D
    - sljit_emit_cmov_generic
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_cmov(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2267,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2268,1
    - Dst: check_sljit_emit_const
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2268,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2269,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2271,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2272,1
    - Dst: set_const
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2273,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2275,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2276,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2276,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2279,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2262
    functionDepth: 1
    functionLinenumber: 2262
    functionLinenumberEnd: 2282
    functionName: sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 2
    functionsReached:
    - emit_op
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - set_const
    - check_sljit_emit_const
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_const(struct sljit_compiler *compiler,
      sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2289,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2290,1
    - Dst: check_sljit_emit_put_label
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2290,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2291,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2293,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2294,1
    - Dst: set_put_label
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2295,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2297,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2299,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2299,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2301,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2301,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2306,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_common.c:2306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2284
    functionDepth: 1
    functionLinenumber: 2284
    functionLinenumberEnd: 2309
    functionName: sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
    functionUses: 5
    functionsReached:
    - set_put_label
    - emit_op
    - check_sljit_emit_put_label
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_put_label(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:33,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:34,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:35,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - compiler
    - opcode
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_u8
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: emit_do_imm
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - INC_SIZE
    - sljit_unaligned_store_sw
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_do_imm(struct sljit_compiler *compiler, sljit_u8 opcode,
      sljit_sw imm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:55,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - jump
    - code_ptr
    - executable_offset
    argTypes:
    - struct sljit_jump*
    - sljit_u8*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 66
    functionName: generate_far_jump_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached:
    - sljit_unaligned_store_sw
    - get_jump_code
    linkageType: ''
    returnType: sljit_u8
    signature: sljit_u8 * generate_far_jump_code(struct sljit_jump *jump, sljit_u8
      *code_ptr, sljit_sw executable_offset)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:75,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:76,1
    - Dst: check_sljit_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:76,1
    - Dst: set_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:77,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:80,1
    - Dst: emit_endbranch
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:80,1
    - Dst: get_arg_count
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:82,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:111,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:112,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:114,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:115,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:123,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:125,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:127,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:166,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:185,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:185,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:187,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:187,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:189,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:189,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:192,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:193,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:195,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:197,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:197,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:198,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:198,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:198,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:200,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:200,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:200,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:203,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:204,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:206,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:211,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:211,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:215,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:219,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:222,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:222,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:222,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:227,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:227,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:227,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:231,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:232,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:234,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:237,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:240,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:240,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:243,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:243,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 113
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 245
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 4
    functionsReached:
    - FAIL_IF
    - sljit_unaligned_store_sw
    - check_sljit_emit_enter
    - emit_non_cum_binary
    - CHECK
    - set_emit_enter
    - SLJIT_MEM1
    - emit_mov
    - CHECK_ERROR
    - PUSH_REG
    - emit_cum_binary
    - get_arg_count
    - SLJIT_ASSERT
    - EMIT_MOV
    - emit_endbranch
    - BINARY_OPCODE
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:251,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:252,1
    - Dst: check_sljit_set_context
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:252,1
    - Dst: set_set_context
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:253,1
    - Dst: get_arg_count
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 287
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 3
    functionsReached:
    - set_set_context
    - CHECK
    - check_sljit_set_context
    - CHECK_ERROR
    - get_arg_count
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:294,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:295,1
    - Dst: check_sljit_emit_return
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:295,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:296,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:298,1
    - Dst: emit_mov_before_return
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:298,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:300,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:304,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:304,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:306,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:306,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:309,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:309,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:309,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:319,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:320,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:322,1
    - Dst: POP_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:325,1
    - Dst: POP_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:327,1
    - Dst: POP_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:329,1
    - Dst: POP_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:330,1
    - Dst: RET_I16
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:333,1
    - Dst: RET
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:335,1
    - Dst: RET
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:337,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 341
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 4
    functionsReached:
    - FAIL_IF
    - POP_REG
    - ensure_buf
    - CHECK
    - SLJIT_MEM1
    - CHECK_ERROR
    - emit_cum_binary
    - RET
    - RET_I16
    - EMIT_MOV
    - emit_mov_before_return
    - BINARY_OPCODE
    - INC_SIZE
    - SLJIT_ASSERT
    - check_sljit_emit_return
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:360,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:362,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:364,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:366,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:367,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:371,1
    - Dst: TO_OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:395,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:424,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:426,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:427,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:430,1
    - Dst: TO_OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:466,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:478,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:485,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:492,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:497,1
    - Dst: sljit_unaligned_store_s16
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:505,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:507,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 115
    argCount: 6
    argNames:
    - compiler
    - size
    - a
    - imma
    - b
    - immb
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 511
    functionName: emit_x86_instruction
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached:
    - TO_OFFS_REG
    - sljit_unaligned_store_sw
    - sljit_unaligned_store_s16
    - OFFS_REG
    - PTR_FAIL_IF
    - SLJIT_ASSERT
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: sljit_u8
    signature: "sljit_u8 * emit_x86_instruction(struct sljit_compiler *compiler, sljit_s32
      size,\n\t/* The register or immediate operand. */\n\tsljit_s32 a, sljit_sw imma,\n\t/*
      The general operand (not immediate). */\n\tsljit_s32 b, sljit_sw immb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - arg_types
    - word_arg_count_ptr
    argTypes:
    - sljit_s32
    - sljit_s32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 548
    functionName: c_fast_call_get_stack_size
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 c_fast_call_get_stack_size(sljit_s32 arg_types, sljit_s32
      *word_arg_count_ptr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:557,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:558,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:559,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:560,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:564,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:564,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:566,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:566,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:566,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:577,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:577,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:577,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:582,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:582,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:582,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:588,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:588,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:592,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:592,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:604,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:605,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:606,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:611,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:612,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:613,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 5
    argNames:
    - compiler
    - arg_types
    - stack_size
    - word_arg_count
    - swap_args
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 621
    functionName: c_fast_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_sse2_store
    - emit_non_cum_binary
    - SLJIT_MEM1
    - PUSH_REG
    - EMIT_MOV
    - BINARY_OPCODE
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 c_fast_call_with_args(struct sljit_compiler *compiler,\n\tsljit_s32
      arg_types, sljit_s32 stack_size, sljit_s32 word_arg_count, sljit_s32 swap_args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - compiler
    - arg_types
    - word_arg_count_ptr
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 660
    functionName: cdecl_call_get_stack_size
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 cdecl_call_get_stack_size(struct sljit_compiler *compiler,
      sljit_s32 arg_types, sljit_s32 *word_arg_count_ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:668,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:668,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:671,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:671,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:671,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:682,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:682,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:682,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:687,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:687,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:687,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:692,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - compiler
    - arg_types
    - stack_size
    - word_arg_count
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 701
    functionName: cdecl_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_non_cum_binary
    - SLJIT_MEM1
    - EMIT_MOV
    - BINARY_OPCODE
    - emit_sse2_store
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 cdecl_call_with_args(struct sljit_compiler *compiler,\n\tsljit_s32
      arg_types, sljit_s32 stack_size, sljit_s32 word_arg_count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:710,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:710,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:710,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:718,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:719,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:720,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:725,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - compiler
    - arg_types
    - stack_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 726
    functionName: post_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SLJIT_MEM1
    - emit_cum_binary
    - BINARY_OPCODE
    - INC_SIZE
    - ensure_buf
    - emit_sse2_load
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 post_call_with_args(struct sljit_compiler *compiler,\n\tsljit_s32
      arg_types, sljit_s32 stack_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:735,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:736,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:736,1
    - Dst: c_fast_call_get_stack_size
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:740,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:741,1
    - Dst: c_fast_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:741,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:748,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:749,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:751,1
    - Dst: post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:751,1
    - Dst: cdecl_call_get_stack_size
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:756,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:757,1
    - Dst: cdecl_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:757,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:764,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:765,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:767,1
    - Dst: post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:767,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 769
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 3
    functionsReached:
    - cdecl_call_with_args
    - c_fast_call_with_args
    - cdecl_call_get_stack_size
    - check_sljit_emit_call
    - CHECK_PTR
    - PTR_FAIL_IF
    - c_fast_call_get_stack_size
    - CHECK_ERROR_PTR
    - sljit_emit_jump
    - post_call_with_args
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:781,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:782,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:782,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:785,1
    - Dst: c_fast_call_get_stack_size
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:788,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:792,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:796,1
    - Dst: TO_OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:797,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:801,1
    - Dst: c_fast_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:801,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:810,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:810,1
    - Dst: post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:815,1
    - Dst: cdecl_call_get_stack_size
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:819,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:820,1
    - Dst: cdecl_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:820,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:829,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:829,1
    - Dst: post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:834,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 835
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 10
    functionsReached:
    - FAIL_IF
    - cdecl_call_with_args
    - TO_OFFS_REG
    - c_fast_call_with_args
    - cdecl_call_get_stack_size
    - CHECK
    - sljit_emit_ijump
    - OFFS_REG
    - CHECK_ERROR
    - c_fast_call_get_stack_size
    - check_sljit_emit_icall
    - SLJIT_ASSERT
    - post_call_with_args
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:841,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:842,1
    - Dst: check_sljit_emit_fast_enter
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:842,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:843,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:845,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:851,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:853,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:854,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:856,1
    - Dst: POP_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:857,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:862,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 866
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 22
    functionsReached:
    - FAIL_IF
    - POP_REG
    - CHECK
    - emit_x86_instruction
    - FAST_IS_REG
    - CHECK_ERROR
    - check_sljit_emit_fast_enter
    - ADJUST_LOCAL_OFFSET
    - CHECK_EXTRA_REGS
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:872,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:874,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:875,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:876,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:878,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:879,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:882,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:883,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:887,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:888,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:889,1
    - Dst: RET
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - compiler
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 894
    functionName: emit_fast_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_x86_instruction
    - FAST_IS_REG
    - PUSH_REG
    - RET
    - CHECK_EXTRA_REGS
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_fast_return(struct sljit_compiler *compiler, sljit_s32
      src, sljit_sw srcw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has_shadow_stack
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:902,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:905,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:906,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:918,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:918,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:920,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:920,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:922,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:922,1
    - Dst: adjust_shadow_stack
      Src: /src/pcre2/src/sljit/sljitNativeX86_32.c:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 928
    functionName: skip_frames_before_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_32.c
    functionUses: 0
    functionsReached:
    - adjust_shadow_stack
    - SLJIT_MEM1
    - cpu_has_shadow_stack
    - EMIT_MOV
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 skip_frames_before_return(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: sljit_get_platform_name
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_get_platform_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sync_cache_range
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - sljit_ins*
    - sljit_ins*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 90
    functionName: ppc_cache_flush
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached:
    - _sync_cache_range
    linkageType: ''
    returnType: void
    signature: void ppc_cache_flush(sljit_ins *from, sljit_ins *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: D
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 107
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D(d)
  - 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: S
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 200
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: A
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: A(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: B
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 125
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B(b)
  - 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: C
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: FD
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FD(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: FS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FS(fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fa
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: FA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FA(fa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: FB
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FB(fb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: FC
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FC(fc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - imm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMM(imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: CRD
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRD(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: OE
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OE(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: RC
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RC(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: HI
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HI(opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: LO
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LO(opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - sh
    - ','
    - mb
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: RLDI
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RLDI(dst, src, sh, mb, type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - func_ptr
    - context
    - addr
    - func
    argTypes:
    - void**
    - struct sljit_function_context*
    - sljit_sw
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: sljit_set_function_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_function_context(void** func_ptr,
      struct sljit_function_context* context, sljit_sw addr, void* func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:252,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - compiler
    - ins
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 257
    functionName: push_inst
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 55
    functionsReached:
    - FAIL_IF
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_ins ins)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:276,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 4
    argNames:
    - jump
    - code_ptr
    - code
    - executable_offset
    argTypes:
    - struct sljit_jump*
    - sljit_ins*
    - sljit_ins*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 328
    functionName: detect_jump_type
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 2
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE detect_jump_type(struct sljit_jump *jump, sljit_ins *code_ptr,
      sljit_ins *code, sljit_sw executable_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - put_label
    - max_label
    argTypes:
    - struct sljit_put_label*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 346
    functionName: put_label_get_length
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE put_label_get_length(struct sljit_put_label *put_label,
      sljit_uw max_label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:355,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:356,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:356,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:356,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:360,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:361,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:361,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:361,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:364,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:364,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:364,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:365,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:365,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:365,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:369,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:370,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:370,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:370,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:374,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:374,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - put_label
    argTypes:
    - struct sljit_put_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 375
    functionName: put_label_set
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 1
    functionsReached:
    - IMM
    - S
    - RLDI
    - A
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE put_label_set(struct sljit_put_label *put_label)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:396,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:397,1
    - Dst: check_sljit_generate_code
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:397,1
    - Dst: reverse_buf
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:398,1
    - Dst: SLJIT_MALLOC_EXEC
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:407,1
    - Dst: PTR_FAIL_WITH_EXEC_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:408,1
    - Dst: SLJIT_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:414,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:427,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:428,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:429,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:430,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:435,1
    - Dst: detect_jump_type
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:445,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:460,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:485,1
    - Dst: put_label_get_length
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:488,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:488,1
    - Dst: compute_next_addr
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:493,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:503,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:508,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:509,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:510,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:511,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:514,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:516,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:528,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:529,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:533,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:539,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:540,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:544,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:557,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:563,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:584,1
    - Dst: put_label_set
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:588,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:597,1
    - Dst: sljit_set_function_context
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:604,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:607,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:609,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:610,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 164
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 617
    functionName: sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 4
    functionsReached:
    - PTR_FAIL_WITH_EXEC_IF
    - SLJIT_MALLOC_EXEC
    - SLJIT_ADD_EXEC_OFFSET
    - sljit_set_function_context
    - SLJIT_EXEC_OFFSET
    - compute_next_addr
    - CHECK_PTR
    - put_label_get_length
    - SLJIT_CACHE_FLUSH
    - reverse_buf
    - detect_jump_type
    - check_sljit_generate_code
    - CHECK_ERROR_PTR
    - put_label_set
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - feature_type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 639
    functionName: sljit_has_cpu_feature
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_has_cpu_feature(sljit_s32 feature_type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:705,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:706,1
    - Dst: check_sljit_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:706,1
    - Dst: set_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:707,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:709,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:709,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:709,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:711,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:711,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:711,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:711,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:711,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:716,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:716,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:716,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:716,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:716,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:721,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:721,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:721,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:721,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:721,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:724,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:724,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:727,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:727,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:727,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:727,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:727,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:729,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:729,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:729,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:729,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:729,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:732,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:732,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:732,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:732,1
    - Dst: get_arg_count
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:734,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:737,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:737,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:737,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:737,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:737,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:739,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:739,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:739,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:739,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:739,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:741,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:741,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:741,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:741,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:741,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:743,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:749,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:749,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:749,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:749,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:749,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:751,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:751,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:752,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:752,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:752,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:752,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:752,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:756,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:756,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:756,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:756,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:756,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:758,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:758,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:759,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:759,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:759,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:759,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:759,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 764
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - IMM
    - check_sljit_emit_enter
    - CHECK
    - set_emit_enter
    - load_immediate
    - S
    - CHECK_ERROR
    - push_inst
    - get_arg_count
    - GET_SAVED_REGISTERS_SIZE
    - B
    - A
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:770,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:771,1
    - Dst: check_sljit_set_context
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:771,1
    - Dst: set_set_context
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:772,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 777
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 4
    functionsReached:
    - set_set_context
    - CHECK
    - check_sljit_set_context
    - CHECK_ERROR
    - GET_SAVED_REGISTERS_SIZE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:783,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:784,1
    - Dst: check_sljit_emit_return
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:784,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:786,1
    - Dst: emit_mov_before_return
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:786,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:789,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:789,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:789,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:789,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:789,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:791,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:791,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:792,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:792,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:792,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:792,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:792,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:796,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:796,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:796,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:796,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:796,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:798,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:798,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:798,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:798,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:798,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:801,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:805,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:805,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:805,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:805,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:805,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:811,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:811,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:811,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:811,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:811,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:815,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:815,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:815,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:815,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:815,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:816,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:818,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:818,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:818,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:819,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 822
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - IMM
    - CHECK
    - load_immediate
    - S
    - CHECK_ERROR
    - push_inst
    - GET_SAVED_REGISTERS_SIZE
    - emit_mov_before_return
    - B
    - A
    - SLJIT_ASSERT
    - check_sljit_emit_return
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - 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: 845
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 845
    functionName: ARCH_32_64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCH_32_64(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - inst
    - ','
    - flags
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 847
    functionName: INST_CODE_AND_DST
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INST_CODE_AND_DST(inst, flags, reg)
  - 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: 849
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 849
    functionName: ARCH_32_64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCH_32_64(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - inst
    - ','
    - flags
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 851
    functionName: INST_CODE_AND_DST
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INST_CODE_AND_DST(inst, flags, reg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1076,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1085,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1090,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1090,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1094,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1094,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1099,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1107,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1107,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1111,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1111,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1115,1
    - Dst: emit_single_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1115,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 9
    argNames:
    - compiler
    - op
    - input_flags
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1121
    functionName: emit_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - SLOW_IS_REG
    - load_immediate
    - FAST_IS_REG
    - emit_op_mem
    - emit_single_op
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32
      input_flags,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1129,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1130,1
    - Dst: check_sljit_emit_op0
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1130,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1132,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1136,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1139,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1139,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1139,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1139,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1139,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1141,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1141,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1141,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1141,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1141,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1142,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1142,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1142,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1142,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1144,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1144,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1144,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1144,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1144,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1145,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1145,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1145,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1145,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1149,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1149,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1149,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1149,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1149,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1151,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1151,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1151,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1151,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1151,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1152,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1152,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1152,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1152,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1152,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1154,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1154,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1154,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1154,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1154,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1155,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1155,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1155,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1155,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1155,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1157,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1157,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1157,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1157,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1161,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1161,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1161,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1161,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1163,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1163,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1163,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1171
    functionName: sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 6
    functionsReached:
    - FAIL_IF
    - CHECK
    - check_sljit_emit_op0
    - CHECK_ERROR
    - S
    - push_inst
    - GET_OPCODE
    - B
    - A
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op0(struct sljit_compiler *compiler,
      sljit_s32 op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1178,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1178,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1178,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1180,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1180,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1182,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1182,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1182,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1188,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1188,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1188,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1188,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1191,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1191,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1191,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1191,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1191,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1193,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1193,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1193,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1193,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1195,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1195,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - compiler
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1196
    functionName: emit_prefetch
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - load_immediate
    - OFFS_REG
    - S
    - push_inst
    - RLDI
    - B
    - A
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_prefetch(struct sljit_compiler *compiler,\n        sljit_s32
      src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - type_flags
    - ','
    - type_cast
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1200
    functionName: EMIT_MOV
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_MOV(type, type_flags, type_cast)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1205,1
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1206,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1208,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1209,1
    - Dst: check_sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1209,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1210,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1211,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1213,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1217,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1218,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1218,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1218,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1220,1
    - Dst: TYPE_CAST_NEEDED
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1221,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1240,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1253,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1257,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1260,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1264,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1267,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1270,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1273,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1276,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1279,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1279,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1283,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1285,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1290
    functionName: sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 3
    functionsReached:
    - HAS_FLAGS
    - FAIL_IF
    - TYPE_CAST_NEEDED
    - emit_op
    - CHECK
    - GET_ALL_FLAGS
    - S
    - CHECK_ERROR
    - FAST_IS_REG
    - push_inst
    - GET_OPCODE
    - EMIT_MOV
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_op1
    - GET_FLAG_TYPE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1296
    functionName: TEST_SL_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_SL_IMM(src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1299
    functionName: TEST_UL_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_UL_IMM(src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1303
    functionName: TEST_SH_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_SH_IMM(src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1306
    functionName: TEST_SH_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_SH_IMM(src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1310
    functionName: TEST_UH_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_UH_IMM(src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1314
    functionName: TEST_ADD_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ADD_IMM(src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1317
    functionName: TEST_ADD_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ADD_IMM(src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1322
    functionName: TEST_UI_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_UI_IMM(src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1325
    functionName: TEST_UI_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_UI_IMM(src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1331
    functionName: TEST_ADD_FORM1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ADD_FORM1(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1334
    functionName: TEST_SUB_FORM2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_SUB_FORM2(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1337
    functionName: TEST_SUB_FORM3
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_SUB_FORM3(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1340
    functionName: TEST_ADD_FORM1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ADD_FORM1(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1342
    functionName: TEST_SUB_FORM2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_SUB_FORM2(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1344
    functionName: TEST_SUB_FORM3
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_SUB_FORM3(op)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1351,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1353,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1354,1
    - Dst: check_sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1354,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1355,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1356,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1357,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1359,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1375,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1379,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1380,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1380,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1380,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1382,1
    - Dst: TEST_ADD_FORM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1384,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1385,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1387,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1388,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1390,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1392,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1394,1
    - Dst: TEST_SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1396,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1398,1
    - Dst: TEST_SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1400,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1402,1
    - Dst: TEST_ADD_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1405,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1407,1
    - Dst: TEST_ADD_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1409,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1411,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1417,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1419,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1421,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1423,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1425,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1428,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1429,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1431,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1433,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1435,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1438,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1438,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1438,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1441,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1444,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1444,1
    - Dst: TEST_UL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1446,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1448,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1450,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1455,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1457,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1460,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1461,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1463,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1465,1
    - Dst: TEST_SUB_FORM2
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1468,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1471,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1473,1
    - Dst: TEST_SUB_FORM3
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1476,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1477,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1479,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1481,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1481,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1484,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1486,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1489,1
    - Dst: TEST_SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1490,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1492,1
    - Dst: TEST_ADD_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1495,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1497,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1502,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1502,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1502,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1505,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1512,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1513,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1515,1
    - Dst: TEST_SL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1517,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1519,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1523,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1523,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1523,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1524,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1530,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1530,1
    - Dst: TEST_UL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1531,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1533,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1533,1
    - Dst: TEST_UL_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1535,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1537,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1537,1
    - Dst: TEST_UH_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1539,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1541,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1541,1
    - Dst: TEST_UH_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1543,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1545,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1545,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1548,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1548,1
    - Dst: TEST_UI_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1550,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1552,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1552,1
    - Dst: TEST_UI_IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1554,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1556,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1556,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1559,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1559,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1570,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1570,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1572,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1572,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 188
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1576
    functionName: sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 3
    functionsReached:
    - ADJUST_LOCAL_OFFSET
    - TEST_SUB_FORM3
    - HAS_FLAGS
    - emit_op
    - TEST_UL_IMM
    - TEST_ADD_IMM
    - TEST_UI_IMM
    - FAIL_IF
    - CHECK
    - TEST_SL_IMM
    - S
    - CHECK_ERROR
    - TEST_SH_IMM
    - GET_OPCODE
    - GET_FLAG_TYPE
    - TEST_UH_IMM
    - TEST_ADD_FORM1
    - check_sljit_emit_op2
    - push_inst
    - TEST_SUB_FORM2
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1585,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1586,1
    - Dst: check_sljit_emit_op_src
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1586,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1587,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1591,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1592,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1592,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1592,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1594,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1594,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1595,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1595,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1595,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1598,1
    - Dst: emit_prefetch
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1609
    functionName: sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - emit_op
    - CHECK
    - check_sljit_emit_op_src
    - FAST_IS_REG
    - CHECK_ERROR
    - S
    - push_inst
    - ADJUST_LOCAL_OFFSET
    - emit_prefetch
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_src(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1613,1
    - Dst: check_sljit_get_register_index
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1611
    functionDepth: 1
    functionLinenumber: 1611
    functionLinenumberEnd: 1615
    functionName: sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 15
    functionsReached:
    - check_sljit_get_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1619,1
    - Dst: check_sljit_get_float_register_index
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1621
    functionName: sljit_get_float_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 3
    functionsReached:
    - check_sljit_get_float_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_float_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1626,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1627,1
    - Dst: check_sljit_emit_op_custom
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1627,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1630
    functionName: sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 14
    functionsReached:
    - check_sljit_emit_op_custom
    - CHECK
    - push_inst
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1636
    functionDepth: 0
    functionLinenumber: 1636
    functionLinenumberEnd: 1637
    functionName: FLOAT_DATA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLOAT_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - single
    - ','
    - double
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1638
    functionName: SELECT_FOP
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SELECT_FOP(op, single, double)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1660,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1660,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1660,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1665,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1666,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1666,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1666,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1666,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1669,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1670,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1670,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1670,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1671,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1671,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1673,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1676,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1676,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1676,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1676,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1679,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1680,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1680,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1681,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1681,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1681,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1681,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1681,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1682,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1682,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1685,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1691,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1691,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1691,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1691,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1691,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1693,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1693,1
    - Dst: RLDI
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1693,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1693,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1698,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1707,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1707,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1712,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1712,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1712,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1712,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1713
    functionName: sljit_emit_fop1_conv_sw_from_f64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - FS
    - FD
    - load_immediate
    - SLJIT_MEM1
    - OFFS_REG
    - FAST_IS_REG
    - S
    - push_inst
    - GET_OPCODE
    - emit_op_mem
    - FB
    - FLOAT_DATA
    - RLDI
    - B
    - A
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1721,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1724,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1726,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1726,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1729,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1730,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1731,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1731,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1731,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1731,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1733,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1733,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1737,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1738,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1738,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1738,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1739,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1739,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1739,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1742,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1742,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1744,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1744,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1744,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1744,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1747,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1747,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1749,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1749,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1749,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1754,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1758,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1758,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1762,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1763,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1763,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1772,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1772,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1772,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1772,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1774,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1774,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1774,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1774,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1775,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1775,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1775,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1776,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1776,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1776,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1777,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1777,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1777,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1777,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1778,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1778,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1778,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1779,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1779,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1779,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1780,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1780,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1780,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1782,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1782,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1782,1
    - Dst: FA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1782,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1782,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1785,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1785,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1787,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1787,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1787,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1715
    functionDepth: 1
    functionLinenumber: 1715
    functionLinenumberEnd: 1791
    functionName: sljit_emit_fop1_conv_f64_from_sw
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - FD
    - load_immediate
    - SLJIT_MEM1
    - FA
    - FAST_IS_REG
    - S
    - push_inst
    - GET_OPCODE
    - emit_op_mem
    - FB
    - FLOAT_DATA
    - A
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1798,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1798,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1798,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1803,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1803,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1803,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1807,1
    - Dst: CRD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1807,1
    - Dst: FA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1807,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - compiler
    - op
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1793
    functionDepth: 1
    functionLinenumber: 1793
    functionLinenumberEnd: 1808
    functionName: sljit_emit_fop1_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - FA
    - push_inst
    - CRD
    - emit_op_mem
    - FB
    - FLOAT_DATA
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_cmp(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1816,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1818,1
    - Dst: SELECT_FOP1_OPERATION_WITH_CHECKS
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1819,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1821,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1824,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1827,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1827,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1827,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1831,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1835,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1835,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1835,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1835,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1842,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1842,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1842,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1842,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1848,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1848,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1848,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1848,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1851,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1851,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1851,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1851,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1856,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1856,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1856,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1810
    functionDepth: 1
    functionLinenumber: 1810
    functionLinenumberEnd: 1858
    functionName: sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SELECT_FOP1_OPERATION_WITH_CHECKS
    - FD
    - SLJIT_COMPILE_ASSERT
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - GET_OPCODE
    - emit_op_mem
    - FB
    - FLOAT_DATA
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1867,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1868,1
    - Dst: check_sljit_emit_fop2
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1868,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1869,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1870,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1871,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1873,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1876,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1876,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1876,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1881,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1881,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1881,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1885,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1887,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1887,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1887,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1887,1
    - Dst: FA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1887,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1887,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1891,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1891,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1891,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1891,1
    - Dst: FA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1891,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1891,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1895,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1895,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1895,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1895,1
    - Dst: FA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1895,1
    - Dst: FC
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1895,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1899,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1899,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1899,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1899,1
    - Dst: FA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1899,1
    - Dst: FB
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1899,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1904,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1904,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1904,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1860
    functionDepth: 1
    functionLinenumber: 1860
    functionLinenumberEnd: 1907
    functionName: sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - FD
    - CHECK
    - FA
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - GET_OPCODE
    - emit_op_mem
    - FB
    - FLOAT_DATA
    - ADJUST_LOCAL_OFFSET
    - SELECT_FOP
    - FC
    - check_sljit_emit_fop2
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1917,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1918,1
    - Dst: check_sljit_emit_fast_enter
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1918,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1919,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1921,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1922,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1922,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1925,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1925,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1925,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1915
    functionDepth: 1
    functionLinenumber: 1915
    functionLinenumberEnd: 1927
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 23
    functionsReached:
    - FAIL_IF
    - emit_op
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - check_sljit_emit_fast_enter
    - push_inst
    - ADJUST_LOCAL_OFFSET
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1937,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1938,1
    - Dst: check_sljit_emit_label
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1938,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1943,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1944,1
    - Dst: set_label
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:1945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1933
    functionDepth: 1
    functionLinenumber: 1933
    functionLinenumberEnd: 1947
    functionName: sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 3
    functionsReached:
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - set_label
    - ensure_abuf
    - check_sljit_emit_label
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_label(struct sljit_compiler *compiler)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 1
    argNames:
    - type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 2008
    functionName: get_bo_bi_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_ins
    signature: sljit_ins get_bo_bi_flags(sljit_s32 type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2015,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2016,1
    - Dst: check_sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2016,1
    - Dst: get_bo_bi_flags
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2018,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2022,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2023,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2024,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2035,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2035,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2036,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2036,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2036,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2038,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2010
    functionDepth: 2
    functionLinenumber: 2010
    functionLinenumberEnd: 2040
    functionName: sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 5
    functionsReached:
    - set_jump
    - check_sljit_emit_jump
    - S
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - emit_const
    - CHECK_ERROR_PTR
    - get_bo_bi_flags
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_jump(struct sljit_compiler *compiler,
      sljit_s32 type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2045,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2046,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2046,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2049,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2049,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2058
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 4
    functionsReached:
    - check_sljit_emit_call
    - call_with_args
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - sljit_emit_jump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2065,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2066,1
    - Dst: check_sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2066,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2067,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2069,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2072,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2072,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2072,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2072,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2072,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2082,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2083,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2084,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2090,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2090,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2094,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2094,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2098,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2098,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2098,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2102
    functionName: sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 7
    functionsReached:
    - FAIL_IF
    - emit_op
    - set_jump
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - S
    - push_inst
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - B
    - A
    - ensure_abuf
    - check_sljit_emit_ijump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_ijump(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 src, sljit_sw srcw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2108,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2109,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2109,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2113,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2114,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2114,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2118,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2118,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2127
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 11
    functionsReached:
    - FAIL_IF
    - emit_op
    - CHECK
    - sljit_emit_ijump
    - CHECK_ERROR
    - call_with_args
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_icall
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2137,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2138,1
    - Dst: check_sljit_emit_op_flags
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2138,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2139,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2147,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2148,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2151,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2151,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2232,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2236,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2236,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2236,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2237,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2237,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2237,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2237,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2240,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2240,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2240,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2240,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2245,1
    - Dst: sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2253,1
    - Dst: sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2254,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2255
    functionName: sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_op_flags
    - CHECK
    - SLJIT_UNREACHABLE
    - FAST_IS_REG
    - CHECK_ERROR
    - S
    - sljit_emit_op2
    - push_inst
    - GET_OPCODE
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - A
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2261,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2262,1
    - Dst: check_sljit_emit_cmov
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2262,1
    - Dst: sljit_emit_cmov_generic
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2257
    functionDepth: 1
    functionLinenumber: 2257
    functionLinenumberEnd: 2265
    functionName: sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 3
    functionsReached:
    - CHECK
    - check_sljit_emit_cmov
    - sljit_emit_cmov_generic
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_cmov(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2274,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2275,1
    - Dst: check_sljit_emit_mem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2275,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2321,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2329,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2337,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2337,1
    - Dst: INST_CODE_AND_DST
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2337,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2337,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2337,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2337,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2353,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2353,1
    - Dst: INST_CODE_AND_DST
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2353,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2353,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2353,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2357,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2357,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2357,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 5
    argNames:
    - compiler
    - type
    - reg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2267
    functionDepth: 1
    functionLinenumber: 2267
    functionLinenumberEnd: 2359
    functionName: sljit_emit_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 8
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_mem
    - IMM
    - CHECK
    - SLJIT_UNREACHABLE
    - SLJIT_UNLIKELY
    - OFFS_REG
    - S
    - CHECK_ERROR
    - push_inst
    - INST_CODE_AND_DST
    - B
    - A
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_mem(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 reg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2368,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2369,1
    - Dst: check_sljit_emit_fmem
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2369,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2374,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2386,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2391,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2393,1
    - Dst: INST_CODE_AND_DST
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2393,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2393,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2393,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2393,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2397,1
    - Dst: INST_CODE_AND_DST
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2397,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2397,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - compiler
    - type
    - freg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2361
    functionDepth: 1
    functionLinenumber: 2361
    functionLinenumberEnd: 2398
    functionName: sljit_emit_fmem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 2
    functionsReached:
    - IMM
    - CHECK
    - SLJIT_UNLIKELY
    - OFFS_REG
    - CHECK_ERROR
    - push_inst
    - FLOAT_DATA
    - INST_CODE_AND_DST
    - B
    - A
    - check_sljit_emit_fmem
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fmem(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 freg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2405,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2406,1
    - Dst: check_sljit_emit_const
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2406,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2407,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2409,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2410,1
    - Dst: set_const
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2411,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2413,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2414,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2414,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2417,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2400
    functionDepth: 1
    functionLinenumber: 2400
    functionLinenumberEnd: 2420
    functionName: sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 3
    functionsReached:
    - emit_op
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - set_const
    - check_sljit_emit_const
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_const(struct sljit_compiler *compiler,
      sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2427,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2428,1
    - Dst: check_sljit_emit_put_label
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2428,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2429,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2431,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2432,1
    - Dst: set_put_label
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2433,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2435,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2437,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2437,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2439,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2439,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2444,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativePPC_common.c:2444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2447
    functionName: sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_common.c
    functionUses: 6
    functionsReached:
    - set_put_label
    - emit_op
    - check_sljit_emit_put_label
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_put_label(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:32,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:32,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:32,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:32,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:35,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:35,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:35,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:35,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:37,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:37,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:37,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:37,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:37,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:38,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:38,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:38,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - compiler
    - reg
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: load_immediate
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_32.c
    functionUses: 22
    functionsReached:
    - FAIL_IF
    - IMM
    - S
    - push_inst
    - A
    - D
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32
      reg, sljit_sw imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - from
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: INS_CLEAR_LEFT
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INS_CLEAR_LEFT(dst, src, from)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:52,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:54,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:54,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:54,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:54,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:59,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:62,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:62,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:62,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:63,1
    - Dst: INS_CLEAR_LEFT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:63,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:66,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:66,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:66,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:68,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:74,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:77,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:77,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:77,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:78,1
    - Dst: INS_CLEAR_LEFT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:78,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:81,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:86,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:87,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:87,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:87,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:87,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:87,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:90,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:92,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:92,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:92,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:92,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:92,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:95,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:96,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:96,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:96,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:101,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:101,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:101,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:101,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:101,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:101,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:106,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:109,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:109,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:109,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:112,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:112,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:112,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:112,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:116,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:116,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:116,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:119,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:120,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:120,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:120,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:122,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:124,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:124,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:124,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:124,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:126,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:126,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:126,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:126,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:126,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:127,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:127,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:127,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:127,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:127,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:130,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:130,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:130,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:130,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:135,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:135,1
    - Dst: CRD
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:135,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:135,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:138,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:138,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:138,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:140,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:140,1
    - Dst: CRD
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:140,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:140,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:140,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:143,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:143,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:143,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:143,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:148,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:148,1
    - Dst: CRD
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:148,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:148,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:151,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:151,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:151,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:153,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:153,1
    - Dst: CRD
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:153,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:153,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:153,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:156,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:156,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:156,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:156,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:161,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:161,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:161,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:161,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:161,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:161,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:166,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:167,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:167,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:167,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:171,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:171,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:171,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:171,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:173,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:173,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:173,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:173,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:173,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:174,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:174,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:174,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:174,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:174,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:177,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:177,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:177,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:177,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:181,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:182,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:182,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:182,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:184,1
    - Dst: OE
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:184,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:184,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:184,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:184,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:184,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:188,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:189,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:189,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:189,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:192,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:193,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:193,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:193,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:195,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:195,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:195,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:195,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:195,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:199,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:200,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:200,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:200,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:203,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:204,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:204,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:204,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:207,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:208,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:208,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:208,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:208,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:208,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:209,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:209,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:209,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:209,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:211,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:211,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:211,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:211,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:211,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:215,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:216,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:216,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:216,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:219,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:220,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:220,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:220,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:223,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:224,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:224,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:224,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:224,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:224,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:225,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:225,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:225,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:225,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:227,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:227,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:227,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:227,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:227,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:231,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:233,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:233,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:233,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:233,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:235,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:235,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:235,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:235,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:235,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:239,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:241,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:241,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:241,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:241,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:243,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:243,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:243,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:243,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:243,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:247,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:249,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:249,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:249,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:249,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:251,1
    - Dst: RC
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:251,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:251,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:251,1
    - Dst: B
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:251,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:254,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 178
    argCount: 6
    argNames:
    - compiler
    - op
    - flags
    - dst
    - src1
    - src2
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 256
    functionName: emit_single_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_32.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - IMM
    - OE
    - SLJIT_UNREACHABLE
    - INS_CLEAR_LEFT
    - S
    - push_inst
    - RC
    - CRD
    - B
    - A
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_single_op(struct sljit_compiler *compiler, sljit_s32
      op, sljit_s32 flags,\n\tsljit_s32 dst, sljit_s32 src1, sljit_s32 src2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:260,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:260,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:260,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:260,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:260,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:261,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:261,1
    - Dst: A
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:261,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - compiler
    - reg
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_32.c
    functionUses: 11
    functionsReached:
    - FAIL_IF
    - IMM
    - S
    - push_inst
    - A
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_const(struct sljit_compiler *compiler, sljit_s32
      reg, sljit_sw init_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:267,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:269,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:270,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:273,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:274,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_32.c
    functionUses: 3
    functionsReached:
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_CACHE_FLUSH
    - SLJIT_UNUSED_ARG
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativePPC_32.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativePPC_32.c
    functionUses: 0
    functionsReached:
    - sljit_set_jump_addr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - from
    - ','
    - to
    - ','
    - enable_exec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: SLJIT_UPDATE_WX_FLAGS
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_UPDATE_WX_FLAGS(from, to, enable_exec)
  - 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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: check_se_protected
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_se_protected(ptr, 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: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: check_se_protected
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_se_protected(ptr, size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:84,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:87,1
    - Dst: sysctl
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: netbsd_se_protected
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached:
    - sysctl
    - SLJIT_UNLIKELY
    - getpid
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE netbsd_se_protected(void)
  - 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: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: check_se_protected
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_se_protected(ptr, size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_LIKELY
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:98,1
    - Dst: mprotect
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:98,1
    - Dst: mprotect
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: generic_se_protected
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached:
    - SLJIT_LIKELY
    - mprotect
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE generic_se_protected(void *ptr, sljit_uw size)
  - 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: SLJIT_SE_LOCK
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_SE_LOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: SLJIT_SE_UNLOCK
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_SE_UNLOCK()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:127,1
    - Dst: PROT_MAX
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:131,1
    - Dst: mmap
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:135,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:140,1
    - Dst: SLJIT_SE_LOCK
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:141,1
    - Dst: check_se_protected
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:142,1
    - Dst: SLJIT_SE_UNLOCK
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:143,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:144,1
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - size
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 152
    functionName: sljit_malloc_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached:
    - check_se_protected
    - munmap
    - SLJIT_SE_UNLOCK
    - SLJIT_UNLIKELY
    - PROT_MAX
    - mmap
    - SLJIT_SE_LOCK
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_malloc_exec(sljit_uw size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: sljit_free_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_exec(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_page_alignment
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:166,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:171,1
    - Dst: mprotect
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - from
    - to
    - enable_exec
    argTypes:
    - void*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 177
    functionName: sljit_update_wx_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached:
    - get_page_alignment
    - mprotect
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void sljit_update_wx_flags(void *from, void *to, sljit_s32 enable_exec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VirtualAlloc
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: sljit_malloc_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached:
    - VirtualAlloc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_malloc_exec(sljit_uw size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_page_alignment
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:201,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:203,1
    - Dst: VirtualFree
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: sljit_free_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached:
    - get_page_alignment
    - VirtualFree
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_exec(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_page_alignment
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:211,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:216,1
    - Dst: VirtualProtect
      Src: /src/pcre2/src/sljit/sljitWXExecAllocator.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - from
    - to
    - enable_exec
    argTypes:
    - void*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: sljit_update_wx_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 0
    functionsReached:
    - get_page_alignment
    - VirtualProtect
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void sljit_update_wx_flags(void *from, void *to, sljit_s32 enable_exec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: sljit_free_unused_memory_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitWXExecAllocator.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_unused_memory_exec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: sljit_get_platform_name
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_get_platform_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - w
    - ','
    - do
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: CHECK_EXTRA_REGS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_EXTRA_REGS(p, w, do)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: IS_HALFWORD
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HALFWORD(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: NOT_HALFWORD
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_HALFWORD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: INC_SIZE
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INC_SIZE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: PUSH_REG
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH_REG(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: POP_REG
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POP_REG(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: RET
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: RET_I16
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_I16(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mod
    - ','
    - reg
    - ','
    - rm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: MOV_RM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOV_RM(mod, reg, rm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_MEMCPY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - value
    argTypes:
    - void*
    - sljit_s16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: sljit_unaligned_store_s16
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 1
    functionsReached:
    - SLJIT_MEMCPY
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_unaligned_store_s16(void *addr, sljit_s16 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_MEMCPY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - value
    argTypes:
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: sljit_unaligned_store_s32
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - SLJIT_MEMCPY
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_unaligned_store_s32(void *addr, sljit_s32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_MEMCPY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - value
    argTypes:
    - void*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: sljit_unaligned_store_sw
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - SLJIT_MEMCPY
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_unaligned_store_sw(void *addr, sljit_sw value)
  - BBCount: 21
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 1
    argNames:
    - type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 426
    functionName: get_jump_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: sljit_u8
    signature: sljit_u8 get_jump_code(sljit_s32 type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: generate_far_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:450,1
    - Dst: get_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:466,1
    - Dst: get_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:471,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - jump
    - code_ptr
    - code
    - executable_offset
    argTypes:
    - struct sljit_jump*
    - sljit_u8*
    - sljit_u8*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 484
    functionName: generate_near_jump_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - generate_far_jump_code
    - get_jump_code
    linkageType: ''
    returnType: sljit_u8
    signature: sljit_u8 * generate_near_jump_code(struct sljit_jump *jump, sljit_u8
      *code_ptr, sljit_u8 *code, sljit_sw executable_offset)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:502,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:503,1
    - Dst: check_sljit_generate_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:503,1
    - Dst: reverse_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:504,1
    - Dst: SLJIT_MALLOC_EXEC
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:507,1
    - Dst: PTR_FAIL_WITH_EXEC_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:508,1
    - Dst: SLJIT_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:516,1
    - Dst: SLJIT_MEMCPY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:525,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:532,1
    - Dst: generate_near_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:539,1
    - Dst: generate_far_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:542,1
    - Dst: generate_far_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:544,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:554,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:555,1
    - Dst: generate_put_label_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:558,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:558,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:566,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:570,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:571,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:572,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:573,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:574,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:581,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:586,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:588,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:589,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:594,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:596,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:597,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:603,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:612,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:615,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:616,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:619,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:620,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:631,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:633,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:633,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 100
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 635
    functionName: sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 5
    functionsReached:
    - PTR_FAIL_WITH_EXEC_IF
    - SLJIT_MALLOC_EXEC
    - SLJIT_ADD_EXEC_OFFSET
    - sljit_unaligned_store_sw
    - SLJIT_EXEC_OFFSET
    - generate_near_jump_code
    - generate_put_label_code
    - CHECK_PTR
    - generate_far_jump_code
    - reverse_buf
    - check_sljit_generate_code
    - CHECK_ERROR_PTR
    - sljit_unaligned_store_s32
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    - SLJIT_MEMCPY
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:645,1
    - Dst: get_cpu_features
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:659,1
    - Dst: get_cpu_features
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:668,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - feature_type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 677
    functionName: sljit_has_cpu_feature
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 8
    functionsReached:
    - get_cpu_features
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_has_cpu_feature(sljit_s32 feature_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 684
    functionName: BINARY_OPCODE
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_OPCODE(opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - compiler
    - ','
    - dst
    - ','
    - dstw
    - ','
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 703
    functionName: EMIT_MOV
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_MOV(compiler, dst, dstw, src, srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:719,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:720,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:721,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 734
    functionName: emit_endbranch
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - INC_SIZE
    - ensure_buf
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_endbranch(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:749,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:750,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - compiler
    - reg
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 760
    functionName: emit_rdssp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_rdssp(struct sljit_compiler *compiler, sljit_s32
      reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:773,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:774,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - compiler
    - reg
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 784
    functionName: emit_incssp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_incssp(struct sljit_compiler *compiler, sljit_s32
      reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_ssp
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 795
    functionName: cpu_has_shadow_stack
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 1
    functionsReached:
    - _get_ssp
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE cpu_has_shadow_stack(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:807,1
    - Dst: emit_rdssp
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:807,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:811,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:814,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:815,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:816,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:821,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:821,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:826,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:831,1
    - Dst: emit_cmp_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:831,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:835,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:836,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:837,1
    - Dst: get_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:838,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:847,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:850,1
    - Dst: emit_incssp
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:850,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:853,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:854,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:855,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:861,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:862,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:863,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:864,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:865,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 5
    argNames:
    - compiler
    - src
    - srcw
    - base
    - disp
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 868
    functionName: adjust_shadow_stack
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - emit_cmp_binary
    - SLJIT_MEM1
    - emit_incssp
    - emit_rdssp
    - SLJIT_UNUSED_ARG
    - EMIT_MOV
    - get_jump_code
    - SLJIT_ASSERT
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE adjust_shadow_stack(struct sljit_compiler *compiler,\n\tsljit_s32
      src, sljit_sw srcw, sljit_s32 base, sljit_sw disp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:882,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:884,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:885,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:886,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:891,1
    - Dst: emit_do_imm
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:893,1
    - Dst: NOT_HALFWORD
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:896,1
    - Dst: emit_load_imm64
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:897,1
    - Dst: emit_do_imm32
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:900,1
    - Dst: NOT_HALFWORD
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:904,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:907,1
    - Dst: emit_load_imm64
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:907,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:908,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:909,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:914,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:915,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:919,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:920,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:921,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:928,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:929,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:931,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:932,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 5
    argNames:
    - compiler
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 935
    functionName: emit_mov
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - emit_load_imm64
    - emit_x86_instruction
    - FAST_IS_REG
    - emit_do_imm
    - NOT_HALFWORD
    - emit_do_imm32
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_mov(struct sljit_compiler *compiler,\n\tsljit_s32 dst,
      sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:944,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:945,1
    - Dst: check_sljit_emit_op0
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:945,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:947,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:949,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:950,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:951,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:955,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:956,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:957,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:968,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:973,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:980,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:982,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:985,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:986,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:988,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:990,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:996,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1000,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1001,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1002,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1006,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1007,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1008,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1011,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1012,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1013,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1021,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1022,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1023,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1032,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1033,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1034,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1067,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1070,1
    - Dst: emit_endbranch
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1074,1
    - Dst: skip_frames_before_return
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1076,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 100
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 1080
    functionName: sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 7
    functionsReached:
    - FAIL_IF
    - emit_endbranch
    - skip_frames_before_return
    - CHECK
    - SLJIT_COMPILE_ASSERT
    - emit_x86_instruction
    - check_sljit_emit_op0
    - CHECK_ERROR
    - GET_OPCODE
    - EMIT_MOV
    - SLJIT_ASSERT
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op0(struct sljit_compiler *compiler,
      sljit_s32 op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1089
    functionName: ENCODE_PREFIX
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_PREFIX(prefix)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1105,1
    - Dst: emit_do_imm
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1107,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1109,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1110,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1115,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1116,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1121,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1123,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1126,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1127,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1135,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1137,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1137,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1140,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1141,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1142,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1148,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1151,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1152,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1155,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1156,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1160,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1161,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1170,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1171,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 6
    argNames:
    - compiler
    - sign
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1174
    functionName: emit_mov_byte
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SLOW_IS_REG
    - emit_x86_instruction
    - FAST_IS_REG
    - emit_do_imm
    - EMIT_MOV
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_mov_byte(struct sljit_compiler *compiler, sljit_s32
      sign,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1241,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1254
    functionName: emit_prefetch
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - emit_x86_instruction
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_prefetch(struct sljit_compiler *compiler, sljit_s32
      op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1268,1
    - Dst: emit_do_imm
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1270,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1272,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1273,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1278,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1279,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1284,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1286,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1289,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1290,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1296,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - compiler
    - sign
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1256
    functionDepth: 2
    functionLinenumber: 1256
    functionLinenumberEnd: 1302
    functionName: emit_mov_half
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - emit_do_imm
    - FAIL_IF
    - emit_x86_instruction
    - FAST_IS_REG
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_mov_half(struct sljit_compiler *compiler, sljit_s32
      sign,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1312,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1313,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1319,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1322,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1323,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1324,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1325,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1331,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1332,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1333,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - compiler
    - opcode
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_u8
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1338
    functionName: emit_unary
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SLJIT_UNLIKELY
    - emit_x86_instruction
    - FAST_IS_REG
    - EMIT_MOV
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_unary(struct sljit_compiler *compiler, sljit_u8 opcode,\n\tsljit_s32
      dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1349,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1350,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1351,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1352,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1355,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1356,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1361,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1362,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1363,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1366,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1367,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 5
    argNames:
    - compiler
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1371
    functionName: emit_not_with_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - EMIT_MOV
    - emit_x86_instruction
    - FAST_IS_REG
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_not_with_flags(struct sljit_compiler *compiler,\n\tsljit_s32
      dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1384,1
    - Dst: get_cpu_features
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1387,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1389,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1391,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1392,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1399,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1400,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1403,1
    - Dst: SLJIT_MEM0
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1403,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1405,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1410,1
    - Dst: sljit_emit_cmov_generic
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1410,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1412,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1415,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1417,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1418,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1423,1
    - Dst: sljit_emit_cmov_generic
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1423,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1425,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1428,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 6
    argNames:
    - compiler
    - op_flags
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1434
    functionName: emit_clz
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - get_cpu_features
    - SLJIT_MEM0
    - emit_x86_instruction
    - FAST_IS_REG
    - SLJIT_UNUSED_ARG
    - EMIT_MOV
    - sljit_emit_cmov_generic
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_clz(struct sljit_compiler *compiler, sljit_s32 op_flags,\n\tsljit_s32
      dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1440,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1445,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1446,1
    - Dst: check_sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1446,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1447,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1448,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1450,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1451,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1456,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1463,1
    - Dst: TYPE_CAST_NEEDED
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1464,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1505,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1506,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1511,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1512,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1512,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1524,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1524,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1527,1
    - Dst: emit_mov_byte
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1527,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1530,1
    - Dst: emit_mov_byte
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1530,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1533,1
    - Dst: emit_mov_half
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1533,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1536,1
    - Dst: emit_mov_half
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1536,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1540,1
    - Dst: emit_mov_int
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1540,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1543,1
    - Dst: emit_mov_int
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1543,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1549,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1550,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1550,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1557,1
    - Dst: emit_not_with_flags
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1558,1
    - Dst: emit_unary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1559,1
    - Dst: emit_unary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1562,1
    - Dst: emit_clz
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1565,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 94
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1436
    functionDepth: 3
    functionLinenumber: 1436
    functionLinenumberEnd: 1569
    functionName: sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - emit_mov
    - SLJIT_MEM1
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_op1
    - emit_mov_int
    - GET_ALL_FLAGS
    - FAST_IS_REG
    - TYPE_CAST_NEEDED
    - FAIL_IF
    - CHECK
    - CHECK_ERROR
    - emit_unary
    - GET_OPCODE
    - emit_clz
    - emit_mov_byte
    - CHECK_EXTRA_REGS
    - emit_not_with_flags
    - SLJIT_UNLIKELY
    - emit_mov_half
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - op_imm
    - ','
    - op_mr
    - ','
    - immw
    - ','
    - arg
    - ','
    - argw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1585
    functionName: BINARY_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_IMM(op_imm, op_mr, immw, arg, argw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op_eax_imm
    - ','
    - immw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1588
    functionName: BINARY_EAX_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_EAX_IMM(op_eax_imm, immw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - op_imm
    - ','
    - op_mr
    - ','
    - immw
    - ','
    - arg
    - ','
    - argw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1595
    functionName: BINARY_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_IMM(op_imm, op_mr, immw, arg, argw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op_eax_imm
    - ','
    - immw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1596
    functionDepth: 0
    functionLinenumber: 1596
    functionLinenumberEnd: 1598
    functionName: BINARY_EAX_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_EAX_IMM(op_eax_imm, immw)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1815,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1819,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1820,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1825,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1826,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1832,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1838,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1839,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1841,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1842,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1843,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1848,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1849,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1851,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1852,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1853,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1854,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1858,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1859,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1861,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1862,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1863,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1864,1
    - Dst: if
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1867,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1868,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1869,1
    - Dst: emit_load_imm64
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1869,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1870,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1871,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1881,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1882,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1884,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1885,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1886,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1891,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1892,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1894,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1895,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1896,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1897,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1901,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1902,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1904,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1905,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1906,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1907,1
    - Dst: if
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1910,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1911,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1912,1
    - Dst: emit_load_imm64
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1912,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1913,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1914,1
    - Dst: ADDRESSING_DEPENDS_ON
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1922,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1924,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1925,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1926,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1932,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 88
    argCount: 7
    argNames:
    - compiler
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1807
    functionDepth: 2
    functionLinenumber: 1807
    functionLinenumberEnd: 1935
    functionName: emit_mul
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_load_imm64
    - sljit_unaligned_store_sw
    - SLOW_IS_REG
    - emit_x86_instruction
    - ADDRESSING_DEPENDS_ON
    - EMIT_MOV
    - if
    - sljit_unaligned_store_s32
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_mul(struct sljit_compiler *compiler,\n\tsljit_s32 dst,
      sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1858,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1859,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1861,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1862,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1863,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1857
    functionDepth: 2
    functionLinenumber: 1857
    functionLinenumberEnd: 1865
    functionName: if
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - emit_x86_instruction
    - sljit_unaligned_store_s32
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: else
    signature: else if (IS_HALFWORD(src1w))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1901,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1902,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1904,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1905,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1906,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1900
    functionDepth: 2
    functionLinenumber: 1900
    functionLinenumberEnd: 1908
    functionName: if
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - emit_x86_instruction
    - sljit_unaligned_store_s32
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: else
    signature: else if (IS_HALFWORD(src2w))
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2165,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2166,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2171,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2172,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2173,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2178,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2179,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2180,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2182,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2185,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2186,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2187,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2188,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2193,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2194,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2195,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2197,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2202,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2203,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2204,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2205,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2207,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2209,1
    - Dst: ADDRESSING_DEPENDS_ON
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2209,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2211,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2212,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2213,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2214,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2215,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2217,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2222,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2224,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2224,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2225,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2226,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2227,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2229,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2229,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2231,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2232,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2233,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2234,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2236,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2239,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 72
    argCount: 8
    argNames:
    - compiler
    - mode
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_u8
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2155
    functionDepth: 3
    functionLinenumber: 2155
    functionLinenumberEnd: 2243
    functionName: emit_shift
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SLOW_IS_REG
    - emit_mov
    - SLJIT_MEM1
    - emit_x86_instruction
    - FAST_IS_REG
    - ADDRESSING_DEPENDS_ON
    - EMIT_MOV
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_shift(struct sljit_compiler *compiler,\n\tsljit_u8
      mode,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: emit_shift
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2255,1
    - Dst: emit_shift
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2258,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2261,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2263,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2263,1
    - Dst: emit_shift
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2268,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2270,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2271,1
    - Dst: emit_cmp_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2271,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2273,1
    - Dst: emit_shift
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2273,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2275,1
    - Dst: emit_cmp_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 9
    argNames:
    - compiler
    - mode
    - set_flags
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_u8
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2245
    functionDepth: 4
    functionLinenumber: 2245
    functionLinenumberEnd: 2278
    functionName: emit_shift_with_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_cmp_binary
    - emit_shift
    - emit_mov
    - FAST_IS_REG
    - emit_cum_binary
    - BINARY_OPCODE
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_shift_with_flags(struct sljit_compiler *compiler,\n\tsljit_u8
      mode, sljit_s32 set_flags,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1,
      sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw src2w)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2285,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2286,1
    - Dst: check_sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2286,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2287,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2288,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2289,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2291,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2292,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2293,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2298,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2301,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2303,1
    - Dst: emit_lea_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2304,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2307,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2307,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2310,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2310,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2313,1
    - Dst: emit_lea_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2314,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2316,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2317,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2317,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2317,1
    - Dst: emit_unary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2318,1
    - Dst: emit_cmp_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2323,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2324,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2324,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2327,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2327,1
    - Dst: emit_mul
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2330,1
    - Dst: emit_test_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2333,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2334,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2334,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2337,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2337,1
    - Dst: emit_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2340,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2340,1
    - Dst: emit_shift_with_flags
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2343,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2343,1
    - Dst: emit_shift_with_flags
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2346,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2346,1
    - Dst: emit_shift_with_flags
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2349,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2349,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2280
    functionDepth: 5
    functionLinenumber: 2280
    functionLinenumberEnd: 2354
    functionName: sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 5
    functionsReached:
    - HAS_FLAGS
    - emit_lea_binary
    - FAIL_IF
    - emit_cmp_binary
    - SLOW_IS_REG
    - CHECK
    - emit_non_cum_binary
    - emit_mul
    - CHECK_ERROR
    - check_sljit_emit_op2
    - emit_cum_binary
    - emit_unary
    - GET_OPCODE
    - emit_test_binary
    - emit_shift_with_flags
    - ADJUST_LOCAL_OFFSET
    - CHECK_EXTRA_REGS
    - BINARY_OPCODE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2359,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2360,1
    - Dst: check_sljit_emit_op_src
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2360,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2361,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2363,1
    - Dst: emit_fast_return
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2367,1
    - Dst: cpu_has_shadow_stack
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2370,1
    - Dst: adjust_shadow_stack
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2372,1
    - Dst: emit_prefetch
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2356
    functionDepth: 3
    functionLinenumber: 2356
    functionLinenumberEnd: 2381
    functionName: sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - adjust_shadow_stack
    - CHECK
    - check_sljit_emit_op_src
    - CHECK_ERROR
    - cpu_has_shadow_stack
    - ADJUST_LOCAL_OFFSET
    - CHECK_EXTRA_REGS
    - emit_fast_return
    - emit_prefetch
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_src(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2385,1
    - Dst: check_sljit_get_register_index
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2383
    functionDepth: 1
    functionLinenumber: 2383
    functionLinenumberEnd: 2391
    functionName: sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 16
    functionsReached:
    - check_sljit_get_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2395,1
    - Dst: check_sljit_get_float_register_index
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2393
    functionDepth: 1
    functionLinenumber: 2393
    functionLinenumberEnd: 2401
    functionName: sljit_get_float_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - check_sljit_get_float_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_float_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2408,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2409,1
    - Dst: check_sljit_emit_op_custom
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2409,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2411,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2412,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2413,1
    - Dst: SLJIT_MEMCPY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2403
    functionDepth: 1
    functionLinenumber: 2403
    functionLinenumberEnd: 2416
    functionName: sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 15
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_op_custom
    - CHECK
    - CHECK_ERROR
    - INC_SIZE
    - ensure_buf
    - SLJIT_MEMCPY
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2426
    functionDepth: 0
    functionLinenumber: 2426
    functionLinenumberEnd: 2439
    functionName: init_compiler
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_compiler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2446,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - compiler
    - opcode
    - single
    - xmm1
    - xmm2
    - xmm2w
    argTypes:
    - struct sljit_compiler*
    - sljit_u8
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2441
    functionDepth: 1
    functionLinenumber: 2441
    functionLinenumberEnd: 2451
    functionName: emit_sse2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_x86_instruction
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_sse2(struct sljit_compiler *compiler, sljit_u8 opcode,\n\tsljit_s32
      single, sljit_s32 xmm1, sljit_s32 xmm2, sljit_sw xmm2w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2458,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - compiler
    - opcode
    - pref66
    - xmm1
    - xmm2
    - xmm2w
    argTypes:
    - struct sljit_compiler*
    - sljit_u8
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2453
    functionDepth: 1
    functionLinenumber: 2453
    functionLinenumberEnd: 2463
    functionName: emit_sse2_logic
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_x86_instruction
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_sse2_logic(struct sljit_compiler *compiler, sljit_u8
      opcode,\n\tsljit_s32 pref66, sljit_s32 xmm1, sljit_s32 xmm2, sljit_sw xmm2w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_sse2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - compiler
    - single
    - dst
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2465
    functionDepth: 2
    functionLinenumber: 2465
    functionLinenumberEnd: 2469
    functionName: emit_sse2_load
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 1
    functionsReached:
    - emit_sse2
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_sse2_load(struct sljit_compiler *compiler,\n\tsljit_s32
      single, sljit_s32 dst, sljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emit_sse2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - compiler
    - single
    - dst
    - dstw
    - src
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2471
    functionDepth: 2
    functionLinenumber: 2471
    functionLinenumberEnd: 2475
    functionName: emit_sse2_store
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 2
    functionsReached:
    - emit_sse2
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_sse2_store(struct sljit_compiler *compiler,\n\tsljit_s32
      single, sljit_s32 dst, sljit_sw dstw, sljit_s32 src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2481,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2485,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2489,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2490,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2477
    functionDepth: 3
    functionLinenumber: 2477
    functionLinenumberEnd: 2497
    functionName: sljit_emit_fop1_conv_sw_from_f64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_mov
    - emit_x86_instruction
    - FAST_IS_REG
    - GET_OPCODE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2503,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2507,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2513,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2516,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2521,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2522,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2499
    functionDepth: 3
    functionLinenumber: 2499
    functionLinenumberEnd: 2532
    functionName: sljit_emit_fop1_conv_f64_from_sw
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_x86_instruction
    - FAST_IS_REG
    - GET_OPCODE
    - EMIT_MOV
    - emit_sse2_store
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2538,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2539,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2539,1
    - Dst: emit_sse2_logic
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - compiler
    - op
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2534
    functionDepth: 3
    functionLinenumber: 2534
    functionLinenumberEnd: 2544
    functionName: sljit_emit_fop1_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_sse2_logic
    - emit_sse2_load
    - FAST_IS_REG
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_cmp(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2556,1
    - Dst: SELECT_FOP1_OPERATION_WITH_CHECKS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2557,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2559,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2560,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2561,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2562,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2563,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2564,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2564,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2565,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2568,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2569,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2570,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2574,1
    - Dst: emit_sse2_logic
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2574,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2577,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2577,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2581,1
    - Dst: emit_sse2_logic
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2581,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2583,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2587,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2590,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2590,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2594,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2594,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2597,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2599,1
    - Dst: emit_sse2_logic
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2599,1
    - Dst: SLJIT_MEM0
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2599,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2603,1
    - Dst: emit_sse2_logic
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2603,1
    - Dst: SLJIT_MEM0
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2603,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2608,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2546
    functionDepth: 3
    functionLinenumber: 2546
    functionLinenumberEnd: 2610
    functionName: sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - SLJIT_MEM0
    - SELECT_FOP1_OPERATION_WITH_CHECKS
    - emit_sse2_logic
    - FAST_IS_REG
    - CHECK_ERROR
    - GET_OPCODE
    - emit_sse2_load
    - emit_sse2_store
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2619,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2620,1
    - Dst: check_sljit_emit_fop2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2620,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2621,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2622,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2623,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2629,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2639,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2639,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2642,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2642,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2647,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2647,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2650,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2652,1
    - Dst: emit_sse2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2652,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2656,1
    - Dst: emit_sse2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2656,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2660,1
    - Dst: emit_sse2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2660,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2664,1
    - Dst: emit_sse2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2664,1
    - Dst: emit_sse2_store
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2669,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2671
      start: 2612
    functionDepth: 3
    functionLinenumber: 2612
    functionLinenumberEnd: 2671
    functionName: sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - FAIL_IF
    - emit_sse2
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - GET_OPCODE
    - ADJUST_LOCAL_OFFSET
    - emit_sse2_load
    - emit_sse2_store
    - check_sljit_emit_fop2
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2682,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2683,1
    - Dst: check_sljit_emit_label
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2683,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2688,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2689,1
    - Dst: set_label
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2690,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2692,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2677
    functionDepth: 1
    functionLinenumber: 2677
    functionLinenumberEnd: 2699
    functionName: sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - set_label
    - ensure_buf
    - ensure_abuf
    - check_sljit_emit_label
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_label(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2706,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2707,1
    - Dst: check_sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2707,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2709,1
    - Dst: PTR_FAIL_IF_NULL
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2710,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2711,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2721,1
    - Dst: PTR_FAIL_IF_NULL
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2701
    functionDepth: 1
    functionLinenumber: 2701
    functionLinenumberEnd: 2727
    functionName: sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 7
    functionsReached:
    - set_jump
    - PTR_FAIL_IF_NULL
    - check_sljit_emit_jump
    - CHECK_PTR
    - CHECK_ERROR_PTR
    - ensure_buf
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_jump(struct sljit_compiler *compiler,
      sljit_s32 type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2734,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2735,1
    - Dst: check_sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2735,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2736,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2738,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2741,1
    - Dst: FAIL_IF_NULL
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2742,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2743,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2753,1
    - Dst: FAIL_IF_NULL
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2754,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2764,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2729
    functionDepth: 1
    functionLinenumber: 2729
    functionLinenumberEnd: 2770
    functionName: sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 9
    functionsReached:
    - FAIL_IF
    - set_jump
    - CHECK
    - FAIL_IF_NULL
    - emit_x86_instruction
    - CHECK_ERROR
    - ADJUST_LOCAL_OFFSET
    - CHECK_EXTRA_REGS
    - ensure_buf
    - ensure_abuf
    - check_sljit_emit_ijump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_ijump(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 src, sljit_sw srcw)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2785,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2786,1
    - Dst: check_sljit_emit_op_flags
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2786,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2788,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2789,1
    - Dst: get_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2793,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2796,1
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2796,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2796,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2797,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2798,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2799,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2811,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2811,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2813,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2814,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2815,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2830,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2831,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2832,1
    - Dst: sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2839,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2843,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2843,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2846,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2847,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2848,1
    - Dst: get_cpu_features
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2862,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2865,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2867,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2869,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2870,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2871,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2880,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2881,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2882,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2896,1
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2896,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2896,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2897,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2900,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2901,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2902,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2913,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2914,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2915,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2931,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2932,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2933,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2946,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2947,1
    - Dst: sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2953,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 123
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2772
    functionDepth: 3
    functionLinenumber: 2772
    functionLinenumberEnd: 2955
    functionName: sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - FAIL_IF
    - get_cpu_features
    - check_sljit_emit_op_flags
    - emit_mov
    - CHECK
    - GET_ALL_FLAGS
    - FAST_IS_REG
    - CHECK_ERROR
    - sljit_emit_op2
    - GET_OPCODE
    - get_jump_code
    - ADJUST_LOCAL_OFFSET
    - CHECK_EXTRA_REGS
    - EMIT_MOV
    - INC_SIZE
    - SLJIT_ASSERT
    - ensure_buf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2963,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2964,1
    - Dst: check_sljit_emit_cmov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2964,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2969,1
    - Dst: sljit_emit_cmov_generic
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2970,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2972,1
    - Dst: sljit_emit_cmov_generic
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2973,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2977,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2984,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2985,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2990,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2991,1
    - Dst: get_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2993,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2957
    functionDepth: 1
    functionLinenumber: 2957
    functionLinenumberEnd: 2995
    functionName: sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_cmov
    - CHECK
    - SLJIT_UNLIKELY
    - emit_x86_instruction
    - CHECK_ERROR
    - sljit_has_cpu_feature
    - EMIT_MOV
    - get_jump_code
    - CHECK_EXTRA_REGS
    - sljit_emit_cmov_generic
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_cmov(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:2999,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3000,1
    - Dst: check_sljit_get_local_base
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3000,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3001,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3003,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3009,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3009,1
    - Dst: NOT_HALFWORD
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3012,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3013,1
    - Dst: emit_load_imm64
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3013,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3015,1
    - Dst: emit_lea_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3015,1
    - Dst: emit_lea_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3018,1
    - Dst: emit_lea_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3024,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3025,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - offset
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 2997
    functionDepth: 3
    functionLinenumber: 2997
    functionLinenumberEnd: 3026
    functionName: sljit_get_local_base
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - emit_load_imm64
    - emit_lea_binary
    - check_sljit_get_local_base
    - emit_mov
    - CHECK
    - SLJIT_MEM1
    - CHECK_ERROR
    - NOT_HALFWORD
    - ADJUST_LOCAL_OFFSET
    - CHECK_EXTRA_REGS
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_local_base(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3036,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3037,1
    - Dst: check_sljit_emit_const
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3037,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3038,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3040,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3042,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3043,1
    - Dst: set_const
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3044,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3048,1
    - Dst: emit_load_imm64
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3050,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3053,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3057,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3058,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3065,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3028
    functionDepth: 3
    functionLinenumber: 3028
    functionLinenumberEnd: 3070
    functionName: sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - emit_load_imm64
    - ensure_buf
    - emit_mov
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - set_const
    - check_sljit_emit_const
    - ADJUST_LOCAL_OFFSET
    - CHECK_EXTRA_REGS
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_const(struct sljit_compiler *compiler,
      sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3081,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3082,1
    - Dst: check_sljit_emit_put_label
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3082,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3083,1
    - Dst: CHECK_EXTRA_REGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3085,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3087,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3088,1
    - Dst: set_put_label
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3089,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3093,1
    - Dst: emit_load_imm64
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3095,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3098,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3105,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3111,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3118
      start: 3072
    functionDepth: 3
    functionLinenumber: 3072
    functionLinenumberEnd: 3118
    functionName: sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 7
    functionsReached:
    - set_put_label
    - emit_load_imm64
    - ensure_buf
    - emit_mov
    - check_sljit_emit_put_label
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - ADJUST_LOCAL_OFFSET
    - CHECK_EXTRA_REGS
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_put_label(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3122,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3124,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3126,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3128,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3120
    functionDepth: 2
    functionLinenumber: 3120
    functionLinenumberEnd: 3131
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 4
    functionsReached:
    - SLJIT_UPDATE_WX_FLAGS
    - sljit_unaligned_store_sw
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3135,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3137,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3138,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeX86_common.c:3139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3133
    functionDepth: 2
    functionLinenumber: 3133
    functionLinenumberEnd: 3140
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_common.c
    functionUses: 0
    functionsReached:
    - SLJIT_UPDATE_WX_FLAGS
    - sljit_unaligned_store_sw
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: sljit_get_platform_name
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_get_platform_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: gpr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE gpr(sljit_s32 r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ins
    argTypes:
    - sljit_ins
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: sizeof_ins
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sizeof_ins(sljit_ins ins)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:147,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - compiler
    - ins
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: push_inst
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 78
    functionsReached:
    - FAIL_IF
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_ins ins)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_ins
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:157,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ptr
    - ins
    argTypes:
    - void**
    - sljit_ins
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: encode_inst
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - sizeof_ins
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 encode_inst(void **ptr, sljit_ins ins)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status_flags_state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: SLJIT_ADD_SUB_NO_COMPARE
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ADD_SUB_NO_COMPARE(status_flags_state)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ADD_SUB_NO_COMPARE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:186,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:187,1
    - Dst: SLJIT_ADD_SUB_NO_COMPARE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:199,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:200,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 265
    functionName: get_cc
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 3
    functionsReached:
    - SLJIT_UNREACHABLE
    - GET_FLAG_TYPE
    - SLJIT_ADD_SUB_NO_COMPARE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE get_cc(struct sljit_compiler *compiler, sljit_s32 type)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - x
    argTypes:
    - facility_bit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 313
    functionName: have_facility_static
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE have_facility_static(facility_bit x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:318,1
    - Dst: getauxval
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:319,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 323
    functionName: get_hwcap
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    - SLJIT_UNLIKELY
    - getauxval
    linkageType: ''
    returnType: SLJIT_INLINE unsigned long
    signature: SLJIT_INLINE unsigned long get_hwcap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: have_facility_static
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:327,1
    - Dst: get_hwcap
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: have_stfle
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - have_facility_static
    - get_hwcap
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE have_stfle()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:345,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:346,1
    - Dst: have_stfle
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:346,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:349,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - facility_bit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 363
    functionName: have_facility_dynamic
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNLIKELY
    - SLJIT_ASSERT
    - have_stfle
    linkageType: ''
    returnType: int
    signature: int have_facility_dynamic(facility_bit x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: is_u12
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_u12(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 388
    functionName: is_u32
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_u32(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - bitlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: CHECK_SIGNED
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIGNED(v, bitlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    functionName: is_s8
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_s8(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    functionName: is_s16
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_s16(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 395
    functionName: is_s20
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_s20(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 396
    functionName: is_s32
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_s32(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:399,1
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 404
    functionName: disp_s20
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - is_s20
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE disp_s20(sljit_s32 d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: SLJIT_S390X_INSTRUCTION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_INSTRUCTION(op, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - pattern
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: SLJIT_S390X_RR
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RR(name, pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - pattern
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 449
    functionName: SLJIT_S390X_RRE
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RRE(name, pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - pattern
    - ','
    - imm_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: SLJIT_S390X_RIA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RIA(name, pattern, imm_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - pattern
    - ','
    - imm_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 539
    functionName: SLJIT_S390X_RILA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RILA(name, pattern, imm_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - pattern
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: SLJIT_S390X_RXA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RXA(name, pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - pattern
    - ','
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 620
    functionName: SLJIT_S390X_RXYA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RXYA(name, pattern, cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - pattern
    - ','
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 675
    functionName: SLJIT_S390X_RSYA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RSYA(name, pattern, cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - pattern
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 705
    functionName: SLJIT_S390X_RIEF
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RIEF(name, pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - pattern
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 740
    functionName: SLJIT_S390X_RRFC
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RRFC(name, pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - pattern
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 760
    functionName: SLJIT_S390X_RIEG
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RIEG(name, pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - pattern
    - ','
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 778
    functionName: SLJIT_S390X_RILB
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_S390X_RILB(name, pattern, cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - target
    argTypes:
    - sljit_gpr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 793
    functionName: SLJIT_S390X_INSTRUCTION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SLJIT_S390X_INSTRUCTION(br, sljit_gpr target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mask
    - target
    argTypes:
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 800
    functionName: SLJIT_S390X_INSTRUCTION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SLJIT_S390X_INSTRUCTION(brc, sljit_uw mask, sljit_sw target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mask
    - target
    argTypes:
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 807
    functionName: SLJIT_S390X_INSTRUCTION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SLJIT_S390X_INSTRUCTION(brcl, sljit_uw mask, sljit_sw target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:813,1
    - Dst: have_eimm
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - sljit_gpr
    - sljit_gpr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 815
    functionName: SLJIT_S390X_INSTRUCTION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - have_eimm
    - SLJIT_ASSERT
    linkageType: ''
    returnType: void
    signature: void SLJIT_S390X_INSTRUCTION(flogr, sljit_gpr dst, sljit_gpr src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - sljit_gpr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 821
    functionName: SLJIT_S390X_INSTRUCTION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SLJIT_S390X_INSTRUCTION(ipm, sljit_gpr dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - sljit_gpr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: SLJIT_S390X_INSTRUCTION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SLJIT_S390X_INSTRUCTION(spm, sljit_gpr dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: risbhg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - src
    - start
    - end
    - rot
    argTypes:
    - sljit_gpr
    - sljit_gpr
    - sljit_u8
    - sljit_u8
    - sljit_u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 833
    functionName: SLJIT_S390X_INSTRUCTION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - risbhg
    linkageType: ''
    returnType: void
    signature: void SLJIT_S390X_INSTRUCTION(risbhgz, sljit_gpr dst, sljit_gpr src,
      sljit_u8 start, sljit_u8 end, sljit_u8 rot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:845,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:845,1
    - Dst: brc
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:845,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:846,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:846,1
    - Dst: ipm
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:846,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:847,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:847,1
    - Dst: or
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:847,1
    - Dst: ogr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:847,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:848,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:848,1
    - Dst: brc
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:848,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:849,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:849,1
    - Dst: slfi
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:849,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:850,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:850,1
    - Dst: spm
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - compiler
    - op
    - dst_r
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_gpr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 852
    functionName: update_zero_overflow
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - brc
    - ogr
    - ipm
    - spm
    - push_inst
    - or
    - slfi
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 update_zero_overflow(struct sljit_compiler *compiler, sljit_s32
      op, sljit_gpr dst_r)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_s16
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:858,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:859,1
    - Dst: lghi
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:859,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:862,1
    - Dst: llill
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:862,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:865,1
    - Dst: llilh
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:865,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:868,1
    - Dst: llihl
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:868,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:871,1
    - Dst: llihh
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:871,1
    - Dst: have_eimm
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:874,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:875,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:876,1
    - Dst: lgfi
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:876,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:879,1
    - Dst: llilf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:879,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:882,1
    - Dst: llihf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:882,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:884,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:884,1
    - Dst: llilf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:884,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:885,1
    - Dst: iihf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:885,1
    - Dst: abort
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:888,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - compiler
    - target
    - v
    argTypes:
    - struct sljit_compiler*
    - sljit_gpr
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 889
    functionName: push_load_imm_inst
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - llihh
    - llill
    - lghi
    - have_eimm
    - is_s32
    - llilf
    - is_s16
    - llihl
    - llihf
    - push_inst
    - abort
    - lgfi
    - llilh
    - iihf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_load_imm_inst(struct sljit_compiler *compiler, sljit_gpr
      target, sljit_sw v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:905,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:907,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:910,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:910,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:913,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:914,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:914,1
    - Dst: sllg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:914,1
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:919,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:920,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - compiler
    - addr
    - mem
    - 'off'
    - tmp
    argTypes:
    - struct sljit_compiler*
    - struct addr*
    - sljit_s32
    - sljit_sw
    - sljit_gpr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 928
    functionName: make_addr_bxy
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - is_s20
    - gpr
    - OFFS_REG
    - push_inst
    - push_load_imm_inst
    - SLJIT_ASSERT
    - sllg
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 make_addr_bxy(struct sljit_compiler *compiler,\n\tstruct
      addr *addr, sljit_s32 mem, sljit_sw off,\n\tsljit_gpr tmp /* clobbered, must
      not be r0 */)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:938,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:940,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:943,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:943,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:946,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:947,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:947,1
    - Dst: sllg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:947,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:952,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:953,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:953,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - compiler
    - addr
    - mem
    - 'off'
    - tmp
    argTypes:
    - struct sljit_compiler*
    - struct addr*
    - sljit_s32
    - sljit_sw
    - sljit_gpr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 931
    functionDepth: 2
    functionLinenumber: 931
    functionLinenumberEnd: 961
    functionName: make_addr_bx
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - gpr
    - OFFS_REG
    - push_inst
    - push_load_imm_inst
    - is_u12
    - SLJIT_ASSERT
    - sllg
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 make_addr_bx(struct sljit_compiler *compiler,\n\tstruct
      addr *addr, sljit_s32 mem, sljit_sw off,\n\tsljit_gpr tmp /* clobbered, must
      not be r0 */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - r
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 964
    functionName: EVAL
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVAL(op, r, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - cond
    - ','
    - r
    - ','
    - i1
    - ','
    - i2
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 966
    functionName: WHEN
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WHEN(cond, r, i1, i2, addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:975,1
    - Dst: have_ldisp
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:976,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:977,1
    - Dst: make_addr_bxy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:977,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:979,1
    - Dst: make_addr_bx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:979,1
    - Dst: WHEN
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:982,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:982,1
    - Dst: lg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:984,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - compiler
    - dst
    - src
    - srcw
    - is_32bit
    argTypes:
    - struct sljit_compiler*
    - sljit_gpr
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 968
    functionDepth: 3
    functionLinenumber: 968
    functionLinenumberEnd: 987
    functionName: load_word
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - make_addr_bxy
    - FAIL_IF
    - have_ldisp
    - lg
    - push_inst
    - WHEN
    - is_u12
    - make_addr_bx
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 load_word(struct sljit_compiler *compiler, sljit_gpr dst,\n\t\tsljit_s32
      src, sljit_sw srcw,\n\t\tsljit_s32 is_32bit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:997,1
    - Dst: have_ldisp
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:998,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:999,1
    - Dst: make_addr_bxy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:999,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1001,1
    - Dst: make_addr_bx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1001,1
    - Dst: WHEN
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1004,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1004,1
    - Dst: stg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1006,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - compiler
    - src
    - dst
    - dstw
    - is_32bit
    argTypes:
    - struct sljit_compiler*
    - sljit_gpr
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 990
    functionDepth: 3
    functionLinenumber: 990
    functionLinenumberEnd: 1009
    functionName: store_word
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - make_addr_bxy
    - FAIL_IF
    - have_ldisp
    - push_inst
    - stg
    - WHEN
    - is_u12
    - make_addr_bx
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 store_word(struct sljit_compiler *compiler, sljit_gpr src,\n\t\tsljit_s32
      dst, sljit_sw dstw,\n\t\tsljit_s32 is_32bit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1017,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1017,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1017,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1020,1
    - Dst: load_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1023,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1025,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1026,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1026,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - compiler
    - dst_r
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_gpr
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1013
    functionDepth: 4
    functionLinenumber: 1013
    functionLinenumberEnd: 1027
    functionName: emit_move
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - load_word
    - SLOW_IS_REG
    - gpr
    - push_inst
    - lr
    - push_load_imm_inst
    - lgr
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_move(struct sljit_compiler *compiler,\n\tsljit_gpr
      dst_r,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1038,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1039,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1050,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1050,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1052,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1053,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1055,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1055,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1057,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1057,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1062,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1063,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1063,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1063,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 7
    argNames:
    - compiler
    - ins
    - dst
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1029
    functionDepth: 5
    functionLinenumber: 1029
    functionLinenumberEnd: 1064
    functionName: emit_rr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_move
    - SLOW_IS_REG
    - gpr
    - FAST_IS_REG
    - push_inst
    - lr
    - lgr
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_rr(struct sljit_compiler *compiler, sljit_ins ins,\n\tsljit_s32
      dst,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw src2w)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1071,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1071,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1075,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1076,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1078,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1078,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1080,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1081,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1083,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1083,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - compiler
    - ins
    - dst
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1066
    functionDepth: 5
    functionLinenumber: 1066
    functionLinenumberEnd: 1086
    functionName: emit_rrf
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_move
    - SLOW_IS_REG
    - gpr
    - FAST_IS_REG
    - push_inst
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_rrf(struct sljit_compiler *compiler, sljit_ins ins,\n\tsljit_s32
      dst,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw src2w)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1102,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1103,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1110,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1110,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1113,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 7
    argNames:
    - compiler
    - ins
    - dst
    - src1
    - src1w
    - src2w
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_sw
    - emit_ril_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1093
    functionDepth: 5
    functionLinenumber: 1093
    functionLinenumberEnd: 1115
    functionName: emit_ri
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_move
    - SLOW_IS_REG
    - gpr
    - push_inst
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_ri(struct sljit_compiler *compiler, sljit_ins ins,\n\tsljit_s32
      dst,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_sw src2w,\n\temit_ril_type
      type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1122,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1122,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1125,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1126,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1126,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1128,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - compiler
    - ins
    - dst
    - src1
    - src1w
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1117
    functionDepth: 5
    functionLinenumber: 1117
    functionLinenumberEnd: 1131
    functionName: emit_rie_d
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_move
    - SLOW_IS_REG
    - gpr
    - push_inst
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_rie_d(struct sljit_compiler *compiler, sljit_ins ins,\n\tsljit_s32
      dst,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_sw src2w)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1148,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1150,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1151,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1155,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1162,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1162,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1164,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1168,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1168,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1171,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1171,1
    - Dst: sllg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1171,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1175,1
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1175,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1176,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1176,1
    - Dst: disp_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1188,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1190,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1190,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1195,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1196,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1196,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1196,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 8
    argNames:
    - compiler
    - ins
    - dst
    - src1
    - src1w
    - src2
    - src2w
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - emit_rx_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1138
    functionDepth: 5
    functionLinenumber: 1138
    functionLinenumberEnd: 1197
    functionName: emit_rx
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_move
    - is_s20
    - SLOW_IS_REG
    - gpr
    - OFFS_REG
    - disp_s20
    - push_inst
    - lr
    - push_load_imm_inst
    - lgr
    - is_u12
    - SLJIT_ASSERT
    - sllg
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_rx(struct sljit_compiler *compiler, sljit_ins ins,\n\tsljit_s32
      dst,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw src2w,\n\temit_rx_type
      type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1203,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1211,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1211,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1213,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1213,1
    - Dst: sllg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1213,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1215,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1215,1
    - Dst: la
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1215,1
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1218,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1219,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1219,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1222,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1222,1
    - Dst: la
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1222,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1227,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1229,1
    - Dst: disp_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - compiler
    - ins
    - dst
    - dstw
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1230
    functionName: emit_siy
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - is_s20
    - gpr
    - OFFS_REG
    - disp_s20
    - push_inst
    - push_load_imm_inst
    - SLJIT_ASSERT
    - sllg
    - la
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_siy(struct sljit_compiler *compiler, sljit_ins ins,\n\tsljit_s32
      dst, sljit_sw dstw,\n\tsljit_sw srcw)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1265,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1266,1
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1266,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1267,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1269,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1273,1
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1273,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1274,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1276,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1292,1
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1292,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1293,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1296,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1309,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1311,1
    - Dst: emit_rr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1313,1
    - Dst: emit_rr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1316,1
    - Dst: emit_rr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1320,1
    - Dst: emit_rrf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1322,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 52
    argCount: 8
    argNames:
    - compiler
    - forms
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - struct ins_forms*
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1242
    functionDepth: 6
    functionLinenumber: 1242
    functionLinenumberEnd: 1323
    functionName: emit_commutative
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - is_s20
    - emit_rr
    - SLOW_IS_REG
    - emit_rx
    - is_u12
    - SLJIT_ASSERT
    - emit_rrf
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_commutative(struct sljit_compiler *compiler, const
      struct ins_forms *forms,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1,
      sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw src2w)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1346,1
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1346,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1347,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1349,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1352,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1354,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1359,1
    - Dst: emit_rr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1360,1
    - Dst: emit_rrf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1362,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 8
    argNames:
    - compiler
    - forms
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - struct ins_forms*
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1325
    functionDepth: 6
    functionLinenumber: 1325
    functionLinenumberEnd: 1363
    functionName: emit_non_commutative
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - is_s20
    - emit_rr
    - SLOW_IS_REG
    - emit_rx
    - is_u12
    - emit_rrf
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_non_commutative(struct sljit_compiler *compiler, const
      struct ins_forms *forms,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1,
      sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw src2w)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1383,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1384,1
    - Dst: check_sljit_generate_code
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1384,1
    - Dst: reverse_buf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1385,1
    - Dst: sizeof_ins
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1433,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1443,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1444,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1445,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1450,1
    - Dst: SLJIT_MALLOC_EXEC
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1453,1
    - Dst: PTR_FAIL_WITH_EXEC_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1455,1
    - Dst: SLJIT_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1457,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1471,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1494,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1496,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1496,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1514,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1515,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1516,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1518,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1518,1
    - Dst: encode_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1519,1
    - Dst: lgrl
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1520,1
    - Dst: bcr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1530,1
    - Dst: basr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1533,1
    - Dst: abort
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1536,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1541,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1545,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1547,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1547,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1555,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1557,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1562,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1565,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1567,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1567,1
    - Dst: encode_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1572,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1575,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1576,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1581,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1582,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1583,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1584,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 126
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1365
    functionDepth: 3
    functionLinenumber: 1365
    functionLinenumberEnd: 1586
    functionName: sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 6
    functionsReached:
    - SLJIT_UPDATE_WX_FLAGS
    - PTR_FAIL_WITH_EXEC_IF
    - SLJIT_MALLOC_EXEC
    - SLJIT_ADD_EXEC_OFFSET
    - lgrl
    - SLJIT_EXEC_OFFSET
    - is_s32
    - sizeof_ins
    - basr
    - CHECK_PTR
    - abort
    - bcr
    - reverse_buf
    - SLJIT_CACHE_FLUSH
    - check_sljit_generate_code
    - CHECK_ERROR_PTR
    - SLJIT_ASSERT
    - encode_inst
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: have_eimm
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1593,1
    - Dst: have_lscond1
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - feature_type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1600
    functionName: sljit_has_cpu_feature
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 9
    functionsReached:
    - have_eimm
    - have_lscond1
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_has_cpu_feature(sljit_s32 feature_type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_count
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1610,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1613,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1614,1
    - Dst: check_sljit_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1614,1
    - Dst: set_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1615,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1621,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1621,1
    - Dst: stmg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1621,1
    - Dst: is_s16
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1623,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1624,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1624,1
    - Dst: aghi
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1624,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1625,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1626,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1626,1
    - Dst: agfi
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1626,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1628,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1628,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1629,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1629,1
    - Dst: la
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1629,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1634,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1634,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1634,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1634,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1634,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1636,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1636,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1636,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1636,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1636,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1638,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1638,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1638,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1638,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1638,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1639,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1642
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 6
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_enter
    - is_s32
    - CHECK
    - set_emit_enter
    - gpr
    - agfi
    - CHECK_ERROR
    - is_s16
    - push_inst
    - get_arg_count
    - push_load_imm_inst
    - lgr
    - aghi
    - SLJIT_ASSERT
    - stmg
    - la
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1648,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1649,1
    - Dst: check_sljit_set_context
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1649,1
    - Dst: set_set_context
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1644
    functionDepth: 1
    functionLinenumber: 1644
    functionLinenumberEnd: 1655
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 5
    functionsReached:
    - CHECK
    - set_set_context
    - check_sljit_set_context
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1662,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1663,1
    - Dst: check_sljit_emit_return
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1663,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1665,1
    - Dst: emit_mov_before_return
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1665,1
    - Dst: is_s20
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1668,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1669,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1669,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1670,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1670,1
    - Dst: la
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1670,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1677,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1677,1
    - Dst: lmg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1677,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1678,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1678,1
    - Dst: br
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1657
    functionDepth: 2
    functionLinenumber: 1657
    functionLinenumberEnd: 1681
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 6
    functionsReached:
    - FAIL_IF
    - is_s20
    - lmg
    - CHECK
    - br
    - CHECK_ERROR
    - push_inst
    - push_load_imm_inst
    - emit_mov_before_return
    - check_sljit_emit_return
    - la
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1689,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1690,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1692,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1693,1
    - Dst: check_sljit_emit_op0
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1693,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1695,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1699,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1701,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1703,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1703,1
    - Dst: mlgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1703,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1708,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1708,1
    - Dst: srag
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1708,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1709,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1709,1
    - Dst: srag
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1709,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1710,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1710,1
    - Dst: ngr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1710,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1711,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1711,1
    - Dst: ngr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1711,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1714,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1714,1
    - Dst: mlgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1714,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1716,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1716,1
    - Dst: sgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1716,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1717,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1717,1
    - Dst: sgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1717,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1721,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1721,1
    - Dst: lhi
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1721,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1722,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1722,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1722,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1723,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1723,1
    - Dst: dlr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1723,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1724,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1724,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1724,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1726,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1726,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1731,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1731,1
    - Dst: lhi
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1731,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1732,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1732,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1732,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1733,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1733,1
    - Dst: dr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1733,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1734,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1734,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1734,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1736,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1736,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1741,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1741,1
    - Dst: lghi
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1741,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1742,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1742,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1742,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1743,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1743,1
    - Dst: dlgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1743,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1744,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1744,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1744,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1746,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1746,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1751,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1751,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1751,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1752,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1752,1
    - Dst: dsgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1752,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1753,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1753,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1753,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1755,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1755,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1763,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1766,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1766,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1766,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1767,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1767,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1767,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1768,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1768,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 66
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1687
    functionDepth: 2
    functionLinenumber: 1687
    functionLinenumberEnd: 1769
    functionName: sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 8
    functionsReached:
    - ngr
    - lghi
    - dlgr
    - SLJIT_UNREACHABLE
    - mlgr
    - dlr
    - sgr
    - dsgr
    - FAIL_IF
    - dr
    - CHECK
    - gpr
    - CHECK_ERROR
    - GET_OPCODE
    - srag
    - lhi
    - check_sljit_emit_op0
    - push_inst
    - lr
    - lgr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op0(struct sljit_compiler *compiler,
      sljit_s32 op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1772
    functionDepth: 0
    functionLinenumber: 1772
    functionLinenumberEnd: 1773
    functionName: WHEN2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WHEN2(cond, i1, i2)
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1782,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1784,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1785,1
    - Dst: check_sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1785,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1786,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1787,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1789,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1796,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1796,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1797,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1798,1
    - Dst: llcr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1802,1
    - Dst: lbr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1805,1
    - Dst: llhr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1808,1
    - Dst: lhr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1811,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1814,1
    - Dst: llgcr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1818,1
    - Dst: lgbr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1821,1
    - Dst: llghr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1824,1
    - Dst: lghr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1827,1
    - Dst: llgfr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1830,1
    - Dst: lgfr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1833,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1837,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1841,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1843,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1843,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1847,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1868,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1868,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1873,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1874,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1876,1
    - Dst: make_addr_bxy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1876,1
    - Dst: llc
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1880,1
    - Dst: lb
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1883,1
    - Dst: llh
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1886,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1889,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1889,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1892,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1892,1
    - Dst: LEVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1895,1
    - Dst: lgb
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1898,1
    - Dst: LEVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1901,1
    - Dst: lgh
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1904,1
    - Dst: LEVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1907,1
    - Dst: lgf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1910,1
    - Dst: lg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1914,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1917,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1919,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1919,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1924,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1925,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1925,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1928,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1928,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1931,1
    - Dst: make_addr_bxy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1931,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1935,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1936,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1936,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1939,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1940,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1940,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1943,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1944,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1944,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1947,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1947,1
    - Dst: LEVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1947,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1950,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1957,1
    - Dst: make_addr_bxy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1957,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1961,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1961,1
    - Dst: EVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1962,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1963,1
    - Dst: make_addr_bxy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1963,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1964,1
    - Dst: EVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1965,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1968,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1968,1
    - Dst: EVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1969,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1970,1
    - Dst: make_addr_bxy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1970,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1971,1
    - Dst: EVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1972,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1975,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1975,1
    - Dst: EVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1976,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1977,1
    - Dst: make_addr_bxy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1977,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1978,1
    - Dst: EVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1979,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1982,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1982,1
    - Dst: EVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1983,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1984,1
    - Dst: make_addr_bxy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1984,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1985,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1985,1
    - Dst: EVAL
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1986,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1989,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1992,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1995,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1997,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1997,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1998,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:1998,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2000,1
    - Dst: load_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2000,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2008,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2008,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2010,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2010,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2010,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2012,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2012,1
    - Dst: xgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2012,1
    - Dst: have_eimm
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2016,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2017,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2017,1
    - Dst: xilf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2017,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2019,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2019,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2021,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2021,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2021,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2023,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2023,1
    - Dst: xr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2023,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2028,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2028,1
    - Dst: lcgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2028,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2032,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2032,1
    - Dst: lcr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2032,1
    - Dst: have_eimm
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2035,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2036,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2036,1
    - Dst: flogr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2036,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2038,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2038,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2038,1
    - Dst: abort
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2040,1
    - Dst: have_eimm
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2044,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2045,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2045,1
    - Dst: sllg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2045,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2046,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2046,1
    - Dst: iilf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2046,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2047,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2047,1
    - Dst: flogr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2047,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2049,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2049,1
    - Dst: lr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2049,1
    - Dst: abort
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2051,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2055,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2059,1
    - Dst: update_zero_overflow
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2059,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2063,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2063,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 237
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 1774
    functionDepth: 4
    functionLinenumber: 1774
    functionLinenumberEnd: 2066
    functionName: sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 5
    functionsReached:
    - flogr
    - llgfr
    - LEVAL
    - lgfr
    - SLJIT_UNREACHABLE
    - lb
    - SLOW_IS_REG
    - llghr
    - ADJUST_LOCAL_OFFSET
    - is_u12
    - check_sljit_emit_op1
    - store_word
    - HAS_FLAGS
    - EVAL
    - lgf
    - lbr
    - load_word
    - FAST_IS_REG
    - push_load_imm_inst
    - lghr
    - llgcr
    - sllg
    - lcr
    - FAIL_IF
    - make_addr_bxy
    - llc
    - CHECK
    - gpr
    - xr
    - xgr
    - CHECK_ERROR
    - GET_OPCODE
    - llhr
    - iilf
    - llcr
    - lgbr
    - WHEN2
    - have_eimm
    - update_zero_overflow
    - xilf
    - llh
    - lhr
    - push_inst
    - lg
    - abort
    - lr
    - lgh
    - lgr
    - lgb
    - lcgr
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op1(struct sljit_compiler *compiler,
      sljit_s32 op,\n        sljit_s32 dst, sljit_sw dstw,\n        sljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1873
    functionName: LEVAL
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEVAL(i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2080
    functionName: is_commutative
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - GET_OPCODE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE is_commutative(sljit_s32 op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2082
    functionDepth: 1
    functionLinenumber: 2082
    functionLinenumberEnd: 2085
    functionName: is_shift
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - GET_OPCODE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE is_shift(sljit_s32 op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2087
    functionDepth: 1
    functionLinenumber: 2087
    functionLinenumberEnd: 2099
    functionName: sets_signed_flag
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - GET_FLAG_TYPE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sets_signed_flag(sljit_s32 op)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_s8
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2132,1
    - Dst: emit_siy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2137,1
    - Dst: is_s16
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2140,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2145,1
    - Dst: emit_rie_d
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2145,1
    - Dst: is_u32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2150,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2152,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2152,1
    - Dst: is_u32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2155,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2156,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2156,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2160,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2162,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2162,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2168,1
    - Dst: emit_commutative
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2168,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2172,1
    - Dst: update_zero_overflow
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2172,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2172,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2172,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2175,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2121
    functionDepth: 7
    functionLinenumber: 2121
    functionLinenumberEnd: 2178
    functionName: sljit_emit_add
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_commutative
    - is_s32
    - update_zero_overflow
    - SLOW_IS_REG
    - emit_siy
    - gpr
    - emit_ri
    - is_s16
    - emit_rie_d
    - is_s8
    - is_u32
    - store_word
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 sljit_emit_add(struct sljit_compiler *compiler, sljit_s32
      op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: sets_signed_flag
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2205,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2210,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2211,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2216,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2218,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2220,1
    - Dst: is_u32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2224,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2226,1
    - Dst: is_s16
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2228,1
    - Dst: emit_rie_d
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2229,1
    - Dst: is_u12
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2233,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2235,1
    - Dst: emit_rx
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2242,1
    - Dst: emit_rr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2249,1
    - Dst: is_s8
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2256,1
    - Dst: emit_siy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2261,1
    - Dst: is_s16
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2264,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2269,1
    - Dst: emit_rie_d
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2269,1
    - Dst: is_u32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2275,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2277,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2277,1
    - Dst: is_u32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2280,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2281,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2281,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2285,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2287,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2287,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2293,1
    - Dst: emit_non_commutative
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2293,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2297,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2297,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2305,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2305,1
    - Dst: brc
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2305,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2306,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2306,1
    - Dst: lcr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2306,1
    - Dst: lcgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2306,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2309,1
    - Dst: update_zero_overflow
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2309,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2313,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 85
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2200
    functionDepth: 7
    functionLinenumber: 2200
    functionLinenumberEnd: 2316
    functionName: sljit_emit_sub
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - SLOW_IS_REG
    - emit_siy
    - emit_non_commutative
    - emit_ri
    - is_u12
    - store_word
    - brc
    - is_u32
    - lcr
    - FAIL_IF
    - gpr
    - is_s16
    - emit_rx
    - emit_rr
    - GET_FLAG_TYPE
    - is_s32
    - update_zero_overflow
    - emit_rie_d
    - push_inst
    - is_s8
    - sets_signed_flag
    - lcgr
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 sljit_emit_sub(struct sljit_compiler *compiler, sljit_s32
      op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2345,1
    - Dst: emit_commutative
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2357,1
    - Dst: is_s16
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2361,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2363,1
    - Dst: is_s32
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2366,1
    - Dst: emit_ri
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2368,1
    - Dst: emit_commutative
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2338
    functionDepth: 7
    functionLinenumber: 2338
    functionLinenumberEnd: 2373
    functionName: sljit_emit_multiply
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - HAS_FLAGS
    - emit_commutative
    - is_s32
    - emit_ri
    - is_s16
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 sljit_emit_multiply(struct sljit_compiler *compiler, sljit_s32
      op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2384,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2385,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2391,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2391,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2395,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2395,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2396,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2400,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2400,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2401,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2406,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2408,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2412,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2412,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2414,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2414,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2416,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2416,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2418,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2423,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2423,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2425,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 8
    argNames:
    - compiler
    - type
    - dst
    - dstw
    - src1
    - src1w
    - imm
    - count16
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_uw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2375
    functionDepth: 5
    functionLinenumber: 2375
    functionLinenumberEnd: 2427
    functionName: sljit_emit_bitwise_imm
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_move
    - SLOW_IS_REG
    - gpr
    - push_inst
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 sljit_emit_bitwise_imm(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw
      src1w,\n\tsljit_uw imm, sljit_s32 count16)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2464,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2486,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2487,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2489,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2489,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2492,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2494,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2496,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2497,1
    - Dst: sljit_emit_bitwise_imm
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2501,1
    - Dst: emit_commutative
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2511,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 33
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2459
    functionDepth: 7
    functionLinenumber: 2459
    functionLinenumberEnd: 2512
    functionName: sljit_emit_bitwise
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_move
    - emit_commutative
    - gpr
    - FAST_IS_REG
    - push_inst
    - GET_OPCODE
    - sljit_emit_bitwise_imm
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 sljit_emit_bitwise(struct sljit_compiler *compiler, sljit_s32
      op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2519,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2520,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2520,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2526,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2527,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2529,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2529,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2533,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2534,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2536,1
    - Dst: emit_move
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2536,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2548,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2548,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2558,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2558,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2562,1
    - Dst: or
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2562,1
    - Dst: ogr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2562,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2514
    functionDepth: 5
    functionLinenumber: 2514
    functionLinenumberEnd: 2565
    functionName: sljit_emit_shift
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_move
    - ogr
    - SLOW_IS_REG
    - gpr
    - FAST_IS_REG
    - push_inst
    - GET_OPCODE
    - or
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 sljit_emit_shift(struct sljit_compiler *compiler, sljit_s32
      op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2592,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2593,1
    - Dst: check_sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2593,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2594,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2595,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2596,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2598,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2604,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2604,1
    - Dst: is_commutative
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2607,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2617,1
    - Dst: sljit_emit_add
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2619,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2621,1
    - Dst: emit_commutative
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2621,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2623,1
    - Dst: sljit_emit_sub
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2626,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2628,1
    - Dst: emit_non_commutative
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2628,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2630,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2633,1
    - Dst: sljit_emit_multiply
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2633,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2638,1
    - Dst: sljit_emit_bitwise
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2638,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2643,1
    - Dst: sljit_emit_shift
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2643,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2648,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2587
    functionDepth: 8
    functionLinenumber: 2587
    functionLinenumberEnd: 2650
    functionName: sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 7
    functionsReached:
    - HAS_FLAGS
    - FAIL_IF
    - sljit_emit_bitwise
    - emit_commutative
    - sljit_emit_multiply
    - CHECK
    - sljit_emit_add
    - emit_non_commutative
    - CHECK_ERROR
    - check_sljit_emit_op2
    - is_commutative
    - GET_OPCODE
    - ADJUST_LOCAL_OFFSET
    - sljit_emit_shift
    - sljit_emit_sub
    - store_word
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2658,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2659,1
    - Dst: check_sljit_emit_op_src
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2659,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2660,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2664,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2664,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2666,1
    - Dst: load_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2666,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2668,1
    - Dst: br
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2652
    functionDepth: 4
    functionLinenumber: 2652
    functionLinenumberEnd: 2684
    functionName: sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - load_word
    - CHECK
    - gpr
    - br
    - check_sljit_emit_op_src
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - ADJUST_LOCAL_OFFSET
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_src(\n\tstruct sljit_compiler
      *compiler,\n\tsljit_s32 op, sljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2688,1
    - Dst: check_sljit_get_register_index
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2688,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2686
    functionDepth: 2
    functionLinenumber: 2686
    functionLinenumberEnd: 2690
    functionName: sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 17
    functionsReached:
    - gpr
    - check_sljit_get_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2694,1
    - Dst: check_sljit_get_float_register_index
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2694,1
    - Dst: abort
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2692
    functionDepth: 1
    functionLinenumber: 2692
    functionLinenumberEnd: 2696
    functionName: sljit_get_float_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 5
    functionsReached:
    - check_sljit_get_float_register_index
    - CHECK_REG_INDEX
    - abort
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_float_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2703,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2704,1
    - Dst: check_sljit_emit_op_custom
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2704,1
    - Dst: memcpy
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2706,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2698
    functionDepth: 1
    functionLinenumber: 2698
    functionLinenumberEnd: 2708
    functionName: sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 16
    functionsReached:
    - memcpy
    - check_sljit_emit_op_custom
    - CHECK
    - CHECK_ERROR
    - push_inst
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2718,1
    - Dst: abort
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2714
    functionDepth: 1
    functionLinenumber: 2714
    functionLinenumberEnd: 2720
    functionName: sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - abort
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2727,1
    - Dst: abort
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2722
    functionDepth: 1
    functionLinenumber: 2722
    functionLinenumberEnd: 2729
    functionName: sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 4
    functionsReached:
    - abort
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2737,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2738,1
    - Dst: check_sljit_emit_fast_enter
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2738,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2739,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2741,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2742,1
    - Dst: lgr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2742,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2742,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2735
    functionDepth: 4
    functionLinenumber: 2735
    functionLinenumberEnd: 2746
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 24
    functionsReached:
    - CHECK
    - gpr
    - FAST_IS_REG
    - CHECK_ERROR
    - check_sljit_emit_fast_enter
    - push_inst
    - ADJUST_LOCAL_OFFSET
    - lgr
    - store_word
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2756,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2757,1
    - Dst: check_sljit_emit_label
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2757,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2762,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2763,1
    - Dst: set_label
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2752
    functionDepth: 1
    functionLinenumber: 2752
    functionLinenumberEnd: 2766
    functionName: sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 5
    functionsReached:
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - set_label
    - ensure_abuf
    - check_sljit_emit_label
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_label(struct sljit_compiler *compiler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2770,1
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2772,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2773,1
    - Dst: check_sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2773,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2777,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2778,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2779,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2785,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2785,1
    - Dst: brasl
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2785,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2787,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2787,1
    - Dst: brcl
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2768
    functionDepth: 1
    functionLinenumber: 2768
    functionLinenumberEnd: 2790
    functionName: sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 8
    functionsReached:
    - set_jump
    - check_sljit_emit_jump
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - brasl
    - brcl
    - CHECK_ERROR_PTR
    - ensure_abuf
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_jump(struct sljit_compiler *compiler,
      sljit_s32 type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2795,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2796,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2796,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2792
    functionDepth: 1
    functionLinenumber: 2792
    functionLinenumberEnd: 2804
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 5
    functionsReached:
    - CHECK_PTR
    - sljit_emit_jump
    - check_sljit_emit_call
    - CHECK_ERROR_PTR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2808,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2808,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2810,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2811,1
    - Dst: check_sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2811,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2812,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2815,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2816,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2816,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2819,1
    - Dst: load_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2819,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2823,1
    - Dst: basr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2823,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2825,1
    - Dst: br
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2806
    functionDepth: 4
    functionLinenumber: 2806
    functionLinenumberEnd: 2826
    functionName: sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 10
    functionsReached:
    - FAIL_IF
    - load_word
    - CHECK
    - gpr
    - br
    - basr
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - push_load_imm_inst
    - ADJUST_LOCAL_OFFSET
    - SLJIT_ASSERT
    - check_sljit_emit_ijump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_ijump(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 src, sljit_sw srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2832,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2833,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2833,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2828
    functionDepth: 1
    functionLinenumber: 2828
    functionLinenumberEnd: 2841
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 12
    functionsReached:
    - check_sljit_emit_icall
    - CHECK
    - sljit_emit_ijump
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2847,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2849,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2850,1
    - Dst: check_sljit_emit_op_flags
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2850,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2852,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2852,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2854,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2862,1
    - Dst: load_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2862,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2871,1
    - Dst: have_lscond2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2876,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2877,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2877,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2878,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2878,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2879,1
    - Dst: abort
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2882,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2887,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2890,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2890,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2891,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2894,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2894,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2895,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2898,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2898,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2899,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2906,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2843
    functionDepth: 4
    functionLinenumber: 2843
    functionLinenumberEnd: 2909
    functionName: sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - WHEN2
    - check_sljit_emit_op_flags
    - load_word
    - CHECK
    - gpr
    - SLJIT_UNREACHABLE
    - have_lscond2
    - FAST_IS_REG
    - CHECK_ERROR
    - abort
    - push_inst
    - GET_OPCODE
    - push_load_imm_inst
    - store_word
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2875
    functionDepth: 0
    functionLinenumber: 2875
    functionLinenumberEnd: 2876
    functionName: LEVAL
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEVAL(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2888
    functionDepth: 0
    functionLinenumber: 2888
    functionLinenumberEnd: 2889
    functionName: LEVAL
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEVAL(i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2915,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2916,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2917,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2917,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2919,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2920,1
    - Dst: check_sljit_emit_cmov
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2920,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2924,1
    - Dst: push_load_imm_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2924,1
    - Dst: have_lscond1
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2928,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2929,1
    - Dst: WHEN2
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2911
    functionDepth: 2
    functionLinenumber: 2911
    functionLinenumberEnd: 2936
    functionName: sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - have_lscond1
    - check_sljit_emit_cmov
    - WHEN2
    - CHECK
    - gpr
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - push_load_imm_inst
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_cmov(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2927
    functionDepth: 0
    functionLinenumber: 2927
    functionLinenumberEnd: 2928
    functionName: LEVAL
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEVAL(i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2957,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2958,1
    - Dst: check_sljit_emit_const
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2958,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2960,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2962,1
    - Dst: set_const
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2963,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2966,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2966,1
    - Dst: have_genext
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2967,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2968,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2968,1
    - Dst: lgrl
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2968,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2970,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2970,1
    - Dst: larl
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2970,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2971,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2971,1
    - Dst: lg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2971,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2975,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2952
    functionDepth: 4
    functionLinenumber: 2952
    functionLinenumberEnd: 2978
    functionName: sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 5
    functionsReached:
    - have_genext
    - lgrl
    - gpr
    - larl
    - FAST_IS_REG
    - lg
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - set_const
    - check_sljit_emit_const
    - CHECK_ERROR_PTR
    - store_word
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_const(struct sljit_compiler *compiler,
      sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2984,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2986,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2988,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2980
    functionDepth: 1
    functionLinenumber: 2980
    functionLinenumberEnd: 2990
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 4
    functionsReached:
    - SLJIT_UPDATE_WX_FLAGS
    - SLJIT_CACHE_FLUSH
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:2994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2995
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 0
    functionsReached:
    - sljit_set_jump_addr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3004,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3005,1
    - Dst: check_sljit_emit_put_label
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3005,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3006,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3008,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3009,1
    - Dst: set_put_label
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3010,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3012,1
    - Dst: gpr
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3012,1
    - Dst: have_genext
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3014,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3015,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3015,1
    - Dst: lgrl
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3015,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3017,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3017,1
    - Dst: larl
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3017,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3018,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3018,1
    - Dst: lg
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3018,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3022,1
    - Dst: store_word
      Src: /src/pcre2/src/sljit/sljitNativeS390X.c:3022,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 2997
    functionDepth: 4
    functionLinenumber: 2997
    functionLinenumberEnd: 3025
    functionName: sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeS390X.c
    functionUses: 8
    functionsReached:
    - set_put_label
    - have_genext
    - lgrl
    - gpr
    - check_sljit_emit_put_label
    - larl
    - FAST_IS_REG
    - lg
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - store_word
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE *sljit_emit_put_label(\n\tstruct sljit_compiler
      *compiler,\n\tsljit_s32 dst, sljit_sw dstw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: CHECK_ERROR
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: CHECK_ERROR_PTR
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ERROR_PTR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: FAIL_IF
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 162
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_IF(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: PTR_FAIL_IF
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_FAIL_IF(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: FAIL_IF_NULL
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_IF_NULL(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: PTR_FAIL_IF_NULL
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_FAIL_IF_NULL(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: PTR_FAIL_WITH_EXEC_IF
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_FAIL_WITH_EXEC_IF(ptr)
  - 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: GET_FLAG_TYPE
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_FLAG_TYPE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: GET_OPCODE
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_OPCODE(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: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: HAS_FLAGS
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_FLAGS(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: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: GET_ALL_FLAGS
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_ALL_FLAGS(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: TYPE_CAST_NEEDED
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_CAST_NEEDED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: TYPE_CAST_NEEDED
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_CAST_NEEDED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: OFFS_REG
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFS_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: TO_OFFS_REG
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_OFFS_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: FAST_IS_REG
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAST_IS_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: SLOW_IS_REG
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOW_IS_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - scratches
    - ','
    - saveds
    - ','
    - extra
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: GET_SAVED_REGISTERS_SIZE
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SAVED_REGISTERS_SIZE(scratches, saveds, extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: ADJUST_LOCAL_OFFSET
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST_LOCAL_OFFSET(p, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - exec_offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: SLJIT_ADD_EXEC_OFFSET
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ADD_EXEC_OFFSET(ptr, exec_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - exec_offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: SLJIT_ADD_EXEC_OFFSET
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ADD_EXEC_OFFSET(ptr, exec_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: CHECK_ARGUMENT
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ARGUMENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 308
    functionName: CHECK
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 316
    functionName: CHECK_PTR
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: CHECK_REG_INDEX
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_REG_INDEX(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: CHECK_ARGUMENT
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ARGUMENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: CHECK
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: CHECK_PTR
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: CHECK_REG_INDEX
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_REG_INDEX(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: CHECK
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: CHECK_PTR
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: CHECK_REG_INDEX
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_REG_INDEX(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitLir.c:368,1
    - Dst: SLJIT_ZEROMEM
      Src: /src/pcre2/src/sljit/sljitLir.c:371,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitLir.c:373,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitLir.c:382,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitLir.c:384,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitLir.c:386,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitLir.c:394,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitLir.c:395,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:399,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:401,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:402,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitLir.c:422,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:425,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:426,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:427,1
    - Dst: init_compiler
      Src: /src/pcre2/src/sljit/sljitLir.c:444,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 47
    argCount: 2
    argNames:
    - allocator_data
    - exec_allocator_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 450
    functionName: sljit_create_compiler
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached:
    - SLJIT_ZEROMEM
    - init_compiler
    - SLJIT_FREE
    - SLJIT_COMPILE_ASSERT
    - SLJIT_MALLOC
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_create_compiler(void *allocator_data,
      void *exec_allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:457,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:463,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:470,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:474,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitLir.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 477
    functionName: sljit_free_compiler
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached:
    - SLJIT_FREE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_compiler(struct sljit_compiler
      *compiler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 483
    functionName: sljit_set_compiler_memory_error
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_compiler_memory_error(struct sljit_compiler
      *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:488,1
    - Dst: SLJIT_FREE_EXEC
      Src: /src/pcre2/src/sljit/sljitLir.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - code
    - exec_allocator_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 492
    functionName: sljit_free_code
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached:
    - SLJIT_FREE_EXEC
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_code(void* code, void *exec_allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:496,1
    - Dst: SLJIT_FREE_EXEC
      Src: /src/pcre2/src/sljit/sljitLir.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - code
    - exec_allocator_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 501
    functionName: sljit_free_code
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached:
    - SLJIT_FREE_EXEC
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_code(void* code, void *exec_allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:505,1
    - Dst: SLJIT_FREE_EXEC
      Src: /src/pcre2/src/sljit/sljitLir.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - code
    - exec_allocator_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 508
    functionName: sljit_free_code
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached:
    - SLJIT_FREE_EXEC
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_code(void* code, void *exec_allocator_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_LIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:513,1
    - Dst: SLJIT_LIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - jump
    - label
    argTypes:
    - struct sljit_jump*
    - struct sljit_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: sljit_set_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 3
    functionsReached:
    - SLJIT_LIKELY
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_label(struct sljit_jump *jump, struct
      sljit_label* label)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_LIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - jump
    - target
    argTypes:
    - struct sljit_jump*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 527
    functionName: sljit_set_target
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - SLJIT_LIKELY
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_target(struct sljit_jump *jump,
      sljit_uw target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_LIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - put_label
    - label
    argTypes:
    - struct sljit_put_label*
    - struct sljit_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 533
    functionName: sljit_set_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached:
    - SLJIT_LIKELY
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_put_label(struct sljit_put_label
      *put_label, struct sljit_label *label)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:540,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:541,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - compiler
    - current_flags
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 553
    functionName: sljit_set_current_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 6
    functionsReached:
    - SLJIT_UNUSED_ARG
    - GET_FLAG_TYPE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_current_flags(struct sljit_compiler
      *compiler, sljit_s32 current_flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitLir.c:564,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/sljit/sljitLir.c:565,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitLir.c:570,1
    - Dst: PTR_FAIL_IF_NULL
      Src: /src/pcre2/src/sljit/sljitLir.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - compiler
    - size
    argTypes:
    - struct sljit_compiler*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 576
    functionName: ensure_buf
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 27
    functionsReached:
    - SLJIT_MALLOC
    - SLJIT_ASSERT
    - PTR_FAIL_IF_NULL
    - SLJIT_OFFSETOF
    linkageType: ''
    returnType: void
    signature: void * ensure_buf(struct sljit_compiler *compiler, sljit_uw size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitLir.c:583,1
    - Dst: SLJIT_OFFSETOF
      Src: /src/pcre2/src/sljit/sljitLir.c:584,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitLir.c:589,1
    - Dst: PTR_FAIL_IF_NULL
      Src: /src/pcre2/src/sljit/sljitLir.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - compiler
    - size
    argTypes:
    - struct sljit_compiler*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: ensure_abuf
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 27
    functionsReached:
    - SLJIT_MALLOC
    - SLJIT_ASSERT
    - PTR_FAIL_IF_NULL
    - SLJIT_OFFSETOF
    linkageType: ''
    returnType: void
    signature: void * ensure_abuf(struct sljit_compiler *compiler, sljit_uw size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitLir.c:599,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitLir.c:610,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - compiler
    - size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 611
    functionName: sljit_alloc_memory
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 4
    functionsReached:
    - ensure_abuf
    - CHECK_ERROR_PTR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_alloc_memory(struct sljit_compiler
      *compiler, sljit_s32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 627
    functionName: reverse_buf
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE reverse_buf(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg_types
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 640
    functionName: get_arg_count
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE get_arg_count(sljit_s32 arg_types)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - label
    - jump
    - const_
    - put_label
    argTypes:
    - struct sljit_label*
    - struct sljit_jump*
    - struct sljit_const*
    - struct sljit_put_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 665
    functionName: compute_next_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE compute_next_addr(struct sljit_label *label, struct sljit_jump
      *jump,\n\tstruct sljit_const *const_, struct sljit_put_label *put_label)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:673,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - compiler
    - options
    - args
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 684
    functionName: set_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE set_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:690,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - compiler
    - options
    - args
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 701
    functionName: set_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE set_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - label
    - compiler
    argTypes:
    - struct sljit_label*
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 712
    functionName: set_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE set_label(struct sljit_label *label, struct sljit_compiler
      *compiler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - jump
    - compiler
    - flags
    argTypes:
    - struct sljit_jump*
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 723
    functionName: set_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE set_jump(struct sljit_jump *jump, struct sljit_compiler
      *compiler, sljit_s32 flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - const_
    - compiler
    argTypes:
    - struct sljit_const*
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 734
    functionName: set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE set_const(struct sljit_const *const_, struct sljit_compiler
      *compiler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - put_label
    - compiler
    - offset
    argTypes:
    - struct sljit_put_label*
    - struct sljit_compiler*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 747
    functionName: set_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE set_put_label(struct sljit_put_label *put_label, struct
      sljit_compiler *compiler, sljit_uw offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - exp
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 751
    functionName: ADDRESSING_DEPENDS_ON
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDRESSING_DEPENDS_ON(exp, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 757
    functionName: FUNCTION_CHECK_IS_REG
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION_CHECK_IS_REG(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: FUNCTION_CHECK_IS_FREG
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION_CHECK_IS_FREG(fr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 764
    functionName: CHECK_IF_VIRTUAL_REGISTER
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_VIRTUAL_REGISTER(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 766
    functionName: CHECK_IF_VIRTUAL_REGISTER
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_IF_VIRTUAL_REGISTER(p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION_CHECK_IS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:776,1
    - Dst: CHECK_IF_VIRTUAL_REGISTER
      Src: /src/pcre2/src/sljit/sljitLir.c:779,1
    - Dst: FUNCTION_CHECK_IS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:786,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:786,1
    - Dst: CHECK_IF_VIRTUAL_REGISTER
      Src: /src/pcre2/src/sljit/sljitLir.c:789,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:789,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - compiler
    - p
    - i
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 797
    functionName: function_check_src_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - FUNCTION_CHECK_IS_REG
    - OFFS_REG
    - CHECK_IF_VIRTUAL_REGISTER
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 function_check_src_mem(struct sljit_compiler *compiler, sljit_s32
      p, sljit_sw i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 801
    functionName: FUNCTION_CHECK_SRC_MEM
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION_CHECK_SRC_MEM(p, i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION_CHECK_IS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:807,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitLir.c:813,1
    - Dst: function_check_src_mem
      Src: /src/pcre2/src/sljit/sljitLir.c:816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - compiler
    - p
    - i
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 817
    functionName: function_check_src
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - FUNCTION_CHECK_IS_REG
    - function_check_src_mem
    - SLJIT_MEM1
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 function_check_src(struct sljit_compiler *compiler, sljit_s32
      p, sljit_sw i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 821
    functionName: FUNCTION_CHECK_SRC
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION_CHECK_SRC(p, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION_CHECK_IS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:827,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitLir.c:830,1
    - Dst: function_check_src_mem
      Src: /src/pcre2/src/sljit/sljitLir.c:833,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - compiler
    - p
    - i
    - unused
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 834
    functionName: function_check_dst
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - FUNCTION_CHECK_IS_REG
    - function_check_src_mem
    - SLJIT_MEM1
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 function_check_dst(struct sljit_compiler *compiler, sljit_s32
      p, sljit_sw i, sljit_s32 unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - i
    - ','
    - unused
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 838
    functionName: FUNCTION_CHECK_DST
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION_CHECK_DST(p, i, unused)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION_CHECK_IS_FREG
      Src: /src/pcre2/src/sljit/sljitLir.c:844,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitLir.c:847,1
    - Dst: function_check_src_mem
      Src: /src/pcre2/src/sljit/sljitLir.c:850,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - compiler
    - p
    - i
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 851
    functionName: function_fcheck
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - FUNCTION_CHECK_IS_FREG
    - function_check_src_mem
    - SLJIT_MEM1
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 function_fcheck(struct sljit_compiler *compiler, sljit_s32
      p, sljit_sw i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 855
    functionName: FUNCTION_FCHECK
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION_FCHECK(p, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - compiler
    - verbose
    argTypes:
    - struct sljit_compiler*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 863
    functionName: sljit_compiler_verbose
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_compiler_verbose(struct sljit_compiler
      *compiler, FILE* verbose)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:878,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:880,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - compiler
    - r
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 883
    functionName: sljit_verbose_reg
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void sljit_verbose_reg(struct sljit_compiler *compiler, sljit_s32 r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:888,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - compiler
    - r
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 891
    functionName: sljit_verbose_freg
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void sljit_verbose_freg(struct sljit_compiler *compiler, sljit_s32
      r)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:896,1
    - Dst: fputc
      Src: /src/pcre2/src/sljit/sljitLir.c:899,1
    - Dst: sljit_verbose_reg
      Src: /src/pcre2/src/sljit/sljitLir.c:900,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:902,1
    - Dst: sljit_verbose_reg
      Src: /src/pcre2/src/sljit/sljitLir.c:903,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:903,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:905,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:908,1
    - Dst: fputc
      Src: /src/pcre2/src/sljit/sljitLir.c:909,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:912,1
    - Dst: sljit_verbose_reg
      Src: /src/pcre2/src/sljit/sljitLir.c:914,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:916,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - compiler
    - p
    - i
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 917
    functionName: sljit_verbose_param
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - fputc
    - OFFS_REG
    - sljit_verbose_reg
    - fprintf
    linkageType: ''
    returnType: void
    signature: void sljit_verbose_param(struct sljit_compiler *compiler, sljit_s32
      p, sljit_sw i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/pcre2/src/sljit/sljitLir.c:923,1
    - Dst: sljit_verbose_reg
      Src: /src/pcre2/src/sljit/sljitLir.c:924,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:926,1
    - Dst: sljit_verbose_reg
      Src: /src/pcre2/src/sljit/sljitLir.c:927,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:927,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:929,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:932,1
    - Dst: fputc
      Src: /src/pcre2/src/sljit/sljitLir.c:933,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:936,1
    - Dst: sljit_verbose_freg
      Src: /src/pcre2/src/sljit/sljitLir.c:939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - compiler
    - p
    - i
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 940
    functionName: sljit_verbose_fparam
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - sljit_verbose_reg
    - OFFS_REG
    - sljit_verbose_freg
    - fprintf
    - fputc
    linkageType: ''
    returnType: void
    signature: void sljit_verbose_fparam(struct sljit_compiler *compiler, sljit_s32
      p, sljit_sw i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 981
    functionName: JUMP_POSTFIX
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMP_POSTFIX(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:1017,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1020,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1024,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1029
    functionName: CHECK_RETURN_TYPE::check_sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:1039,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1042,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1043,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1044,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1045,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1046,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1047,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1048,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1049,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1050,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1056,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1060,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1065,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1066,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1070,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1073,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1076,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1081
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - SLJIT_UNLIKELY
    - SLJIT_UNUSED_ARG
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_enter(struct sljit_compiler
      *compiler,\n\tsljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32
      saveds,\n\tsljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:1091,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1094,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1095,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1096,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1097,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1098,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1099,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1100,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1101,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1107,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1111,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1116,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1117,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1121,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1124,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1127,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1132
    functionName: CHECK_RETURN_TYPE::check_sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - SLJIT_UNLIKELY
    - SLJIT_UNUSED_ARG
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_set_context(struct sljit_compiler
      *compiler,\n\tsljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32
      saveds,\n\tsljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1137,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1139,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1140,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1143,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1147,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1149,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1151,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1152,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1134
    functionDepth: 2
    functionLinenumber: 1134
    functionLinenumberEnd: 1158
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - FUNCTION_CHECK_SRC
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_return(struct sljit_compiler
      *compiler, sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION_CHECK_DST
      Src: /src/pcre2/src/sljit/sljitLir.c:1163,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1167,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1168,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1169,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1174
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - FUNCTION_CHECK_DST
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1179,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1182,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1182,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1182,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1183,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1183,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1187,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1189,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1189,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1190,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1190,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1191,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1193,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 13
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1197
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - GET_OPCODE
    - SLJIT_UNLIKELY
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op0(struct sljit_compiler
      *compiler, sljit_s32 op)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1203,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1209,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1209,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1209,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1211,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1214,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1217,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1218,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1224,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1228,1
    - Dst: FUNCTION_CHECK_DST
      Src: /src/pcre2/src/sljit/sljitLir.c:1232,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitLir.c:1232,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1233,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1235,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1236,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1237,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1241,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1242,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1244,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1245,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1249,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1249,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1251,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1254,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1255,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1256,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1257,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1261
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - HAS_FLAGS
    - sljit_verbose_param
    - fprintf
    - SLJIT_UNLIKELY
    - GET_OPCODE
    - FUNCTION_CHECK_DST
    - FUNCTION_CHECK_SRC
    - GET_FLAG_TYPE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op1(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1268,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1274,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1274,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1274,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1276,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1283,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1286,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1287,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1288,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1291,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1292,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1292,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1293,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1296,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1297,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1297,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1298,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1298,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1302,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1303,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1303,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1304,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1304,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1305,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:1308,1
    - Dst: FUNCTION_CHECK_DST
      Src: /src/pcre2/src/sljit/sljitLir.c:1312,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitLir.c:1312,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1313,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1314,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1315,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1318,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1319,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1319,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1321,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1322,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1323,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1324,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1325,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1326,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1327,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1263
    functionDepth: 2
    functionLinenumber: 1263
    functionLinenumberEnd: 1331
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - HAS_FLAGS
    - sljit_verbose_param
    - SLJIT_UNREACHABLE
    - fprintf
    - SLJIT_UNLIKELY
    - GET_OPCODE
    - FUNCTION_CHECK_DST
    - FUNCTION_CHECK_SRC
    - GET_FLAG_TYPE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op2(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1,
      sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw src2w)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1337,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1338,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1342,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1347,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1351,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1352,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1353,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1354,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1358
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - FUNCTION_CHECK_SRC
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_src(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:1362,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1367
    functionName: CHECK_RETURN_TYPE::check_sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_register_index(sljit_s32
      reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:1371,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1376
    functionName: CHECK_RETURN_TYPE::check_sljit_get_float_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_float_register_index(sljit_s32
      reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:1385,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1388,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1391,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1393,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1396,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1398,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1404,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1405,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1407,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1408,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 15
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1412
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - SLJIT_UNLIKELY
    - SLJIT_UNUSED_ARG
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1418,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1424,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/sljit/sljitLir.c:1424,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1425,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1425,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1425,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1426,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1427,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1428,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1431,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1432,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1433,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1436,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1436,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1439,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1440,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1441,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1442,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1414
    functionDepth: 2
    functionLinenumber: 1414
    functionLinenumberEnd: 1446
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_fparam
    - SLJIT_UNLIKELY
    - FUNCTION_FCHECK
    - GET_OPCODE
    - sljit_has_cpu_feature
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1453,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1456,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1462,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/sljit/sljitLir.c:1462,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1463,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1463,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1464,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1465,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1466,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1466,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1467,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1468,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1471,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1472,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1474,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1474,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1476,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1477,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1478,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1479,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - compiler
    - op
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1448
    functionDepth: 2
    functionLinenumber: 1448
    functionLinenumberEnd: 1484
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_fop1_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_fparam
    - SLJIT_UNLIKELY
    - FUNCTION_FCHECK
    - GET_OPCODE
    - sljit_has_cpu_feature
    - fprintf
    - GET_FLAG_TYPE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1_cmp(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2,
      sljit_sw src2w)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1490,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1496,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/sljit/sljitLir.c:1496,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1497,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1497,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1497,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1498,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1499,1
    - Dst: FUNCTION_CHECK_DST
      Src: /src/pcre2/src/sljit/sljitLir.c:1500,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1503,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1504,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1504,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1505,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1507,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1508,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1509,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1486
    functionDepth: 2
    functionLinenumber: 1486
    functionLinenumberEnd: 1514
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_fop1_conv_sw_from_f64
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_param
    - sljit_verbose_fparam
    - SLJIT_UNLIKELY
    - FUNCTION_FCHECK
    - GET_OPCODE
    - sljit_has_cpu_feature
    - FUNCTION_CHECK_DST
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1_conv_sw_from_f64(struct
      sljit_compiler *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32
      src, sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1520,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1526,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/sljit/sljitLir.c:1526,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1527,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1527,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1527,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1528,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1529,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1530,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1533,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1534,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1534,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1536,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1537,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1538,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1539,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1540,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1516
    functionDepth: 2
    functionLinenumber: 1516
    functionLinenumberEnd: 1544
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_fop1_conv_f64_from_sw
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_fparam
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - FUNCTION_FCHECK
    - GET_OPCODE
    - sljit_has_cpu_feature
    - FUNCTION_CHECK_SRC
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop1_conv_f64_from_sw(struct
      sljit_compiler *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32
      src, sljit_sw srcw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1552,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/sljit/sljitLir.c:1552,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1553,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1553,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1553,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1554,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1555,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1556,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1557,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1560,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1561,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1561,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1562,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1563,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1564,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1565,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1566,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1546
    functionDepth: 2
    functionLinenumber: 1546
    functionLinenumberEnd: 1571
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_fparam
    - SLJIT_UNLIKELY
    - FUNCTION_FCHECK
    - GET_OPCODE
    - sljit_has_cpu_feature
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fop2(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1,
      sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw src2w)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:1575,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1577,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1587,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1591
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNLIKELY
    - SLJIT_UNUSED_ARG
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_label(struct sljit_compiler
      *compiler)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1595,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1601,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1602,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1602,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1602,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1603,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1604,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1608,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1610,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1615,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1616,1
    - Dst: JUMP_POSTFIX
      Src: /src/pcre2/src/sljit/sljitLir.c:1617,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1593
    functionDepth: 1
    functionLinenumber: 1593
    functionLinenumberEnd: 1620
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - SLJIT_UNLIKELY
    - fprintf
    - JUMP_POSTFIX
    - GET_FLAG_TYPE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_jump(struct sljit_compiler
      *compiler, sljit_s32 type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1628,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1629,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1636,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1647,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1649,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1654,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1655,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1656,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1659,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1660,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1665,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1667,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1670,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1673,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1622
    functionDepth: 1
    functionLinenumber: 1622
    functionLinenumberEnd: 1677
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - SLJIT_UNLIKELY
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_call(struct sljit_compiler
      *compiler, sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1684,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1685,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1686,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1687,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1691,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1692,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1694,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1695,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1696,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1697,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - compiler
    - type
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1679
    functionDepth: 2
    functionLinenumber: 1679
    functionLinenumberEnd: 1701
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - FUNCTION_CHECK_SRC
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmp(struct sljit_compiler
      *compiler, sljit_s32 type,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2,
      sljit_sw src2w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1708,1
    - Dst: sljit_has_cpu_feature
      Src: /src/pcre2/src/sljit/sljitLir.c:1708,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1709,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1710,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1711,1
    - Dst: FUNCTION_FCHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:1712,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1716,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1717,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1719,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1720,1
    - Dst: sljit_verbose_fparam
      Src: /src/pcre2/src/sljit/sljitLir.c:1721,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1722,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - compiler
    - type
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1703
    functionDepth: 2
    functionLinenumber: 1703
    functionLinenumberEnd: 1726
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_fcmp
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_fparam
    - SLJIT_UNLIKELY
    - FUNCTION_FCHECK
    - sljit_has_cpu_feature
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fcmp(struct sljit_compiler
      *compiler, sljit_s32 type,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2,
      sljit_sw src2w)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1731,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1737,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1738,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1741,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1742,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1743,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1744,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1728
    functionDepth: 2
    functionLinenumber: 1728
    functionLinenumberEnd: 1748
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - FUNCTION_CHECK_SRC
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_ijump(struct sljit_compiler
      *compiler, sljit_s32 type,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1757,1
    - Dst: FUNCTION_CHECK_SRC
      Src: /src/pcre2/src/sljit/sljitLir.c:1758,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1765,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1776,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1778,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1783,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1784,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1785,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1788,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1789,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1794,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1796,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1799,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1802,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1803,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1804,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1808
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - FUNCTION_CHECK_SRC
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_icall(struct sljit_compiler
      *compiler, sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw
      srcw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1815,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1816,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1817,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1817,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1817,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1818,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1819,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1819,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1820,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1823,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1825,1
    - Dst: FUNCTION_CHECK_DST
      Src: /src/pcre2/src/sljit/sljitLir.c:1828,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1830,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitLir.c:1831,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1834,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1835,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1837,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1837,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1838,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitLir.c:1838,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1839,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1840,1
    - Dst: JUMP_POSTFIX
      Src: /src/pcre2/src/sljit/sljitLir.c:1840,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1810
    functionDepth: 2
    functionLinenumber: 1810
    functionLinenumberEnd: 1844
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - GET_OPCODE
    - FUNCTION_CHECK_DST
    - fprintf
    - JUMP_POSTFIX
    - GET_FLAG_TYPE
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1851,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1852,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1854,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1855,1
    - Dst: FUNCTION_CHECK_IS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:1855,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1857,1
    - Dst: FUNCTION_CHECK_IS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:1857,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1858,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1862,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1864,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1868,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1869,1
    - Dst: JUMP_POSTFIX
      Src: /src/pcre2/src/sljit/sljitLir.c:1871,1
    - Dst: sljit_verbose_reg
      Src: /src/pcre2/src/sljit/sljitLir.c:1872,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1873,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1874,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1875,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1846
    functionDepth: 2
    functionLinenumber: 1846
    functionLinenumberEnd: 1879
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_reg
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - FUNCTION_CHECK_IS_REG
    - fprintf
    - JUMP_POSTFIX
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_cmov(struct sljit_compiler
      *compiler, sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw
      srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1886,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1887,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1888,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1889,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1890,1
    - Dst: FUNCTION_CHECK_SRC_MEM
      Src: /src/pcre2/src/sljit/sljitLir.c:1892,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1893,1
    - Dst: FUNCTION_CHECK_IS_REG
      Src: /src/pcre2/src/sljit/sljitLir.c:1893,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1895,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1898,1
    - Dst: sljit_emit_mem
      Src: /src/pcre2/src/sljit/sljitLir.c:1899,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1900,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1902,1
    - Dst: sljit_verbose_reg
      Src: /src/pcre2/src/sljit/sljitLir.c:1907,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1908,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1909,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1910,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 5
    argNames:
    - compiler
    - type
    - reg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1881
    functionDepth: 2
    functionLinenumber: 1881
    functionLinenumberEnd: 1914
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_reg
    - sljit_verbose_param
    - sljit_emit_mem
    - SLJIT_UNLIKELY
    - FUNCTION_CHECK_IS_REG
    - fprintf
    - FUNCTION_CHECK_SRC_MEM
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_mem(struct sljit_compiler
      *compiler, sljit_s32 type,\n\tsljit_s32 reg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1921,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1922,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1923,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1924,1
    - Dst: FUNCTION_CHECK_SRC_MEM
      Src: /src/pcre2/src/sljit/sljitLir.c:1926,1
    - Dst: CHECK_ARGUMENT
      Src: /src/pcre2/src/sljit/sljitLir.c:1927,1
    - Dst: FUNCTION_CHECK_IS_FREG
      Src: /src/pcre2/src/sljit/sljitLir.c:1927,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1930,1
    - Dst: sljit_emit_fmem
      Src: /src/pcre2/src/sljit/sljitLir.c:1931,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1932,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1934,1
    - Dst: sljit_verbose_freg
      Src: /src/pcre2/src/sljit/sljitLir.c:1938,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1939,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1940,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1941,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - compiler
    - type
    - freg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1916
    functionDepth: 2
    functionLinenumber: 1916
    functionLinenumberEnd: 1945
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_fmem
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - CHECK_ARGUMENT
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - sljit_verbose_freg
    - FUNCTION_CHECK_IS_FREG
    - fprintf
    - FUNCTION_CHECK_SRC_MEM
    - sljit_emit_fmem
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_fmem(struct sljit_compiler
      *compiler, sljit_s32 type,\n\tsljit_s32 freg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:1950,1
    - Dst: FUNCTION_CHECK_DST
      Src: /src/pcre2/src/sljit/sljitLir.c:1953,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1956,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1957,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1958,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - offset
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1947
    functionDepth: 2
    functionLinenumber: 1947
    functionLinenumberEnd: 1963
    functionName: CHECK_RETURN_TYPE::check_sljit_get_local_base
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - SLJIT_UNUSED_ARG
    - FUNCTION_CHECK_DST
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_local_base(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:1967,1
    - Dst: FUNCTION_CHECK_DST
      Src: /src/pcre2/src/sljit/sljitLir.c:1970,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1973,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1974,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1975,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1965
    functionDepth: 2
    functionLinenumber: 1965
    functionLinenumberEnd: 1980
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - SLJIT_UNUSED_ARG
    - FUNCTION_CHECK_DST
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_const(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION_CHECK_DST
      Src: /src/pcre2/src/sljit/sljitLir.c:1985,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:1988,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1989,1
    - Dst: sljit_verbose_param
      Src: /src/pcre2/src/sljit/sljitLir.c:1990,1
    - Dst: fprintf
      Src: /src/pcre2/src/sljit/sljitLir.c:1991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1995
      start: 1982
    functionDepth: 2
    functionLinenumber: 1982
    functionLinenumberEnd: 1995
    functionName: CHECK_RETURN_TYPE::check_sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - sljit_verbose_param
    - SLJIT_UNLIKELY
    - FUNCTION_CHECK_DST
    - fprintf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_put_label(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - compiler
    - ','
    - op
    - ','
    - dst
    - ','
    - dstw
    - ','
    - src
    - ','
    - srcw
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1999
    functionDepth: 0
    functionLinenumber: 1999
    functionLinenumberEnd: 2023
    functionName: SELECT_FOP1_OPERATION_WITH_CHECKS
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitLir.c:2043,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 9
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2024
    functionDepth: 0
    functionLinenumber: 2024
    functionLinenumberEnd: 2044
    functionName: emit_mov_before_return
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - sljit_emit_op1
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_mov_before_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitLir.c:2063,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitLir.c:2064,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitLir.c:2070,1
    - Dst: sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitLir.c:2070,1
    - Dst: sljit_emit_label
      Src: /src/pcre2/src/sljit/sljitLir.c:2076,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitLir.c:2077,1
    - Dst: sljit_set_label
      Src: /src/pcre2/src/sljit/sljitLir.c:2078,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2051
    functionDepth: 2
    functionLinenumber: 2051
    functionLinenumberEnd: 2080
    functionName: sljit_emit_cmov_generic
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 4
    functionsReached:
    - FAIL_IF
    - sljit_emit_label
    - sljit_emit_op1
    - sljit_emit_jump
    - sljit_set_label
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_cmov_generic(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitLir.c:2140,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitLir.c:2141,1
    - Dst: check_sljit_emit_cmp
      Src: /src/pcre2/src/sljit/sljitLir.c:2141,1
    - Dst: emit_cmp_to0
      Src: /src/pcre2/src/sljit/sljitLir.c:2153,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitLir.c:2157,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitLir.c:2204,1
    - Dst: sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitLir.c:2204,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitLir.c:2210,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 6
    argNames:
    - compiler
    - type
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2132
    functionDepth: 3
    functionLinenumber: 2132
    functionLinenumberEnd: 2211
    functionName: sljit_emit_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached:
    - SLJIT_UNLIKELY
    - CHECK_PTR
    - emit_cmp_to0
    - PTR_FAIL_IF
    - sljit_emit_op2
    - sljit_emit_jump
    - CHECK_ERROR_PTR
    - check_sljit_emit_cmp
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_cmp(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitLir.c:2219,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitLir.c:2220,1
    - Dst: check_sljit_emit_fcmp
      Src: /src/pcre2/src/sljit/sljitLir.c:2220,1
    - Dst: sljit_emit_fop1
      Src: /src/pcre2/src/sljit/sljitLir.c:2226,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitLir.c:2232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 6
    argNames:
    - compiler
    - type
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2215
    functionDepth: 1
    functionLinenumber: 2215
    functionLinenumberEnd: 2233
    functionName: sljit_emit_fcmp
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached:
    - check_sljit_emit_fcmp
    - CHECK_PTR
    - sljit_emit_jump
    - CHECK_ERROR_PTR
    - sljit_emit_fop1
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_fcmp(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2243,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2244,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2245,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2246,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2247,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitLir.c:2249,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:2250,1
    - Dst: check_sljit_emit_mem
      Src: /src/pcre2/src/sljit/sljitLir.c:2250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - compiler
    - type
    - reg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2239
    functionDepth: 1
    functionLinenumber: 2239
    functionLinenumberEnd: 2253
    functionName: sljit_emit_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 10
    functionsReached:
    - CHECK
    - check_sljit_emit_mem
    - SLJIT_UNUSED_ARG
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_mem(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 reg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2264,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2265,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2266,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2267,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2268,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitLir.c:2270,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:2271,1
    - Dst: check_sljit_emit_fmem
      Src: /src/pcre2/src/sljit/sljitLir.c:2271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - compiler
    - type
    - freg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2260
    functionDepth: 1
    functionLinenumber: 2260
    functionLinenumberEnd: 2274
    functionName: sljit_emit_fmem
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 4
    functionsReached:
    - CHECK
    - SLJIT_UNUSED_ARG
    - check_sljit_emit_fmem
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fmem(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 freg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitLir.c:2283,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitLir.c:2284,1
    - Dst: check_sljit_get_local_base
      Src: /src/pcre2/src/sljit/sljitLir.c:2284,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitLir.c:2286,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitLir.c:2286,1
    - Dst: sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitLir.c:2292,1
    - Dst: sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitLir.c:2293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - offset
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2281
    functionDepth: 1
    functionLinenumber: 2281
    functionLinenumberEnd: 2294
    functionName: sljit_get_local_base
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 3
    functionsReached:
    - check_sljit_get_local_base
    - sljit_emit_op1
    - CHECK
    - SLJIT_MEM1
    - CHECK_ERROR
    - sljit_emit_op2
    - ADJUST_LOCAL_OFFSET
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_local_base(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2302
    functionDepth: 0
    functionLinenumber: 2302
    functionLinenumberEnd: 2305
    functionName: sljit_get_platform_name
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_get_platform_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2309,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2310,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - allocator_data
    - exec_allocator_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2307
    functionDepth: 1
    functionLinenumber: 2307
    functionLinenumberEnd: 2313
    functionName: sljit_create_compiler
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_create_compiler(void *allocator_data,
      void *exec_allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2317,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2315
    functionDepth: 1
    functionLinenumber: 2315
    functionLinenumberEnd: 2319
    functionName: sljit_free_compiler
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_compiler(struct sljit_compiler
      *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2323,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2321
    functionDepth: 1
    functionLinenumber: 2321
    functionLinenumberEnd: 2325
    functionName: sljit_set_compiler_memory_error
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_compiler_memory_error(struct sljit_compiler
      *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2329,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2330,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - compiler
    - size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2327
    functionDepth: 1
    functionLinenumber: 2327
    functionLinenumberEnd: 2333
    functionName: sljit_alloc_memory
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 4
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_alloc_memory(struct sljit_compiler
      *compiler, sljit_s32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2338,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2339,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - compiler
    - verbose
    argTypes:
    - struct sljit_compiler*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2336
    functionDepth: 1
    functionLinenumber: 2336
    functionLinenumberEnd: 2341
    functionName: sljit_compiler_verbose
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_compiler_verbose(struct sljit_compiler
      *compiler, FILE* verbose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2346,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2344
    functionDepth: 1
    functionLinenumber: 2344
    functionLinenumberEnd: 2349
    functionName: sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 6
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2353,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - feature_type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2351
    functionDepth: 1
    functionLinenumber: 2351
    functionLinenumberEnd: 2356
    functionName: sljit_has_cpu_feature
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 15
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_has_cpu_feature(sljit_s32 feature_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2360,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2361,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - code
    - exec_allocator_data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2358
    functionDepth: 1
    functionLinenumber: 2358
    functionLinenumberEnd: 2363
    functionName: sljit_free_code
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_code(void* code, void *exec_allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2369,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2370,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2371,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2372,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2373,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2374,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2375,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2376,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2365
    functionDepth: 1
    functionLinenumber: 2365
    functionLinenumberEnd: 2379
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 6
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2385,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2386,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2387,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2388,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2389,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2390,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2391,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2392,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2381
    functionDepth: 1
    functionLinenumber: 2381
    functionLinenumberEnd: 2395
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2399,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2400,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2401,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2402,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2405
      start: 2397
    functionDepth: 1
    functionLinenumber: 2397
    functionLinenumberEnd: 2405
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 6
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2409,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2410,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2411,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2407
    functionDepth: 1
    functionLinenumber: 2407
    functionLinenumberEnd: 2414
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 24
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2418,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2419,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2416
    functionDepth: 1
    functionLinenumber: 2416
    functionLinenumberEnd: 2422
    functionName: sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 8
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op0(struct sljit_compiler *compiler,
      sljit_s32 op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2428,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2429,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2430,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2431,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2432,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2433,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2424
    functionDepth: 1
    functionLinenumber: 2424
    functionLinenumberEnd: 2436
    functionName: sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 8
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2443,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2444,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2445,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2446,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2447,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2448,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2449,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2450,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2453
    functionName: sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 9
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2458,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2459,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2460,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2461,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2455
    functionDepth: 1
    functionLinenumber: 2455
    functionLinenumberEnd: 2464
    functionName: sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_src(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2466
    functionDepth: 1
    functionLinenumber: 2466
    functionLinenumberEnd: 2470
    functionName: sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 17
    functionsReached:
    - SLJIT_UNREACHABLE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2475,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2476,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2477,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2472
    functionDepth: 1
    functionLinenumber: 2472
    functionLinenumberEnd: 2480
    functionName: sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 16
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2484,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - compiler
    - current_flags
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2482
    functionDepth: 1
    functionLinenumber: 2482
    functionLinenumberEnd: 2486
    functionName: sljit_set_current_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 6
    functionsReached:
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_current_flags(struct sljit_compiler
      *compiler, sljit_s32 current_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2492,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2493,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2494,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2495,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2496,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2497,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2488
    functionDepth: 1
    functionLinenumber: 2488
    functionLinenumberEnd: 2500
    functionName: sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2507,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2508,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2509,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2510,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2511,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2512,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2513,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2514,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2502
    functionDepth: 1
    functionLinenumber: 2502
    functionLinenumberEnd: 2517
    functionName: sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 4
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2521,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2519
    functionDepth: 1
    functionLinenumber: 2519
    functionLinenumberEnd: 2524
    functionName: sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 6
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_label(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2528,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2529,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2526
    functionDepth: 1
    functionLinenumber: 2526
    functionLinenumberEnd: 2532
    functionName: sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 12
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_jump(struct sljit_compiler *compiler,
      sljit_s32 type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2537,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2538,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2539,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2542
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2548,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2549,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2550,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2551,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2552,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2553,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - compiler
    - type
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2544
    functionDepth: 1
    functionLinenumber: 2544
    functionLinenumberEnd: 2556
    functionName: sljit_emit_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_cmp(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2562,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2563,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2564,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2565,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2566,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2567,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - compiler
    - type
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2558
    functionDepth: 1
    functionLinenumber: 2558
    functionLinenumberEnd: 2570
    functionName: sljit_emit_fcmp
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 1
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_fcmp(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2574,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2575,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - jump
    - label
    argTypes:
    - struct sljit_jump*
    - struct sljit_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2572
    functionDepth: 1
    functionLinenumber: 2572
    functionLinenumberEnd: 2577
    functionName: sljit_set_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 4
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_label(struct sljit_jump *jump, struct
      sljit_label* label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2581,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2582,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - jump
    - target
    argTypes:
    - struct sljit_jump*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2584
    functionName: sljit_set_target
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_target(struct sljit_jump *jump,
      sljit_uw target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2588,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2589,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - put_label
    - label
    argTypes:
    - struct sljit_put_label*
    - struct sljit_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2591
      start: 2586
    functionDepth: 1
    functionLinenumber: 2586
    functionLinenumberEnd: 2591
    functionName: sljit_set_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 2
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_put_label(struct sljit_put_label
      *put_label, struct sljit_label *label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2595,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2596,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2597,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2598,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2601
      start: 2593
    functionDepth: 1
    functionLinenumber: 2593
    functionLinenumberEnd: 2601
    functionName: sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 11
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_ijump(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 src, sljit_sw srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2607,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2608,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2609,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2610,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2611,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2603
    functionDepth: 1
    functionLinenumber: 2603
    functionLinenumberEnd: 2614
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 12
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2620,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2621,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2622,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2623,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2624,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2616
    functionDepth: 1
    functionLinenumber: 2616
    functionLinenumberEnd: 2627
    functionName: sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2633,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2634,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2635,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2636,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2637,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2629
    functionDepth: 1
    functionLinenumber: 2629
    functionLinenumberEnd: 2640
    functionName: sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_cmov(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2644,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2645,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2646,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2647,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2648,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - compiler
    - type
    - reg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2642
    functionDepth: 1
    functionLinenumber: 2642
    functionLinenumberEnd: 2651
    functionName: sljit_emit_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 10
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_mem(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 reg, sljit_s32 mem, sljit_sw memw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2655,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2656,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2657,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2658,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2659,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - compiler
    - type
    - freg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2653
    functionDepth: 1
    functionLinenumber: 2653
    functionLinenumberEnd: 2662
    functionName: sljit_emit_fmem
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 4
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fmem(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 freg, sljit_s32 mem, sljit_sw memw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2666,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2667,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2668,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2669,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - offset
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2664
    functionDepth: 1
    functionLinenumber: 2664
    functionLinenumberEnd: 2672
    functionName: sljit_get_local_base
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 3
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_local_base(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2676,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2677,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2678,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2679,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - initval
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2674
    functionDepth: 1
    functionLinenumber: 2674
    functionLinenumberEnd: 2682
    functionName: sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_const(struct sljit_compiler *compiler,
      sljit_s32 dst, sljit_sw dstw, sljit_sw initval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2686,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2687,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2684
    functionDepth: 1
    functionLinenumber: 2684
    functionLinenumberEnd: 2690
    functionName: sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 8
    functionsReached:
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_put_label(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2694,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2695,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2696,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2692
    functionDepth: 1
    functionLinenumber: 2692
    functionLinenumberEnd: 2698
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 5
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2702,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2703,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitLir.c:2704,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitLir.c:2705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2700
    functionDepth: 1
    functionLinenumber: 2700
    functionLinenumberEnd: 2706
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitLir.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:32,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:32,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:32,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:32,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:35,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:35,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:35,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:35,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:37,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:37,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:37,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:37,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:38,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:38,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:38,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - compiler
    - dst_ar
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: load_immediate
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 22
    functionsReached:
    - FAIL_IF
    - IMM
    - TA
    - push_inst
    - SA
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32
      dst_ar, sljit_sw imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op_imm
    - ','
    - op_norm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: EMIT_LOGICAL
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_LOGICAL(op_imm, op_norm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op_imm
    - ','
    - op_v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: EMIT_SHIFT
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_SHIFT(op_imm, op_v)
  - BBCount: 86
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:74,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:79,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:81,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:81,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:81,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:81,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:81,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:86,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:90,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:90,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:90,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:90,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:92,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:92,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:92,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:92,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:92,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:92,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:93,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:93,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:93,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:93,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:93,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:96,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:96,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:96,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:96,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:96,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:99,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:105,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:109,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:109,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:109,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:109,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:111,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:111,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:111,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:111,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:111,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:111,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:112,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:112,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:112,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:112,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:112,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:115,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:115,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:115,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:115,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:115,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:118,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:123,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:125,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:125,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:125,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:125,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:125,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:127,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:127,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:127,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:127,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:127,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:127,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:131,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:134,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:134,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:134,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:134,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:134,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:136,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:136,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:136,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:136,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:136,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:136,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:138,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:139,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:139,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:139,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:139,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:139,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:140,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:140,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:140,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:140,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:143,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:143,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:143,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:143,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:143,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:143,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:145,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:145,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:145,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:145,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:145,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:146,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:146,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:146,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:146,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:146,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:147,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:147,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:147,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:147,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:147,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:147,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:149,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:149,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:149,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:149,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:149,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:149,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:150,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:150,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:150,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:150,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:151,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:151,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:151,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:151,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:151,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:156,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:157,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:157,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:162,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:162,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:162,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:162,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:162,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:164,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:164,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:164,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:164,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:164,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:167,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:167,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:167,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:167,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:167,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:171,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:171,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:171,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:171,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:171,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:173,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:173,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:173,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:173,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:173,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:174,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:174,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:174,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:174,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:174,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:179,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:179,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:179,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:179,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:179,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:179,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:183,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:183,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:183,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:183,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:183,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:185,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:185,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:185,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:185,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:185,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:188,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:188,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:188,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:188,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:188,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:191,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:191,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:191,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:191,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:191,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:191,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:196,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:196,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:196,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:196,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:196,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:199,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:199,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:199,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:199,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:199,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:199,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:200,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:200,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:200,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:200,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:200,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:201,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:201,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:201,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:201,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:201,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:203,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:203,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:203,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:203,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:203,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:204,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:204,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:204,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:204,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:207,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:207,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:212,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:212,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:212,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:212,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:212,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:214,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:214,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:214,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:214,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:214,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:215,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:215,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:215,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:215,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:215,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:218,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:218,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:218,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:218,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:218,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:218,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:221,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:221,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:221,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:221,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:221,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:223,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:223,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:223,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:223,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:223,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:223,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:226,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:226,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:226,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:226,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:226,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:228,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:228,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:228,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:228,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:228,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:228,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:233,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:233,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:233,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:233,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:233,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:235,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:235,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:235,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:235,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:239,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:239,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:239,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:239,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:239,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:239,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:247,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:247,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:248,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:248,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:248,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:248,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:248,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:251,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:251,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:252,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:252,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:252,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:252,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:252,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:257,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:257,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:261,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:261,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:261,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:261,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:261,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:261,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:266,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:266,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:267,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:267,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:267,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:267,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:267,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:269,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:269,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:271,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:271,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:271,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:271,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:271,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:273,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:273,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:274,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:274,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:274,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:274,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:274,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:276,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:276,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:278,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:278,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:278,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:278,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:278,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:285,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:285,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:285,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:285,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:285,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:287,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:287,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:287,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:287,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:287,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:291,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:291,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:291,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:291,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:291,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:293,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:293,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:293,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:293,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:293,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:298,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:299,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:299,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:304,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:304,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:304,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:304,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:304,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:306,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:306,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:306,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:306,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:306,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:309,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:309,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:309,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:309,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:309,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:312,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:312,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:312,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:312,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:312,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:315,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:315,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:315,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:315,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:315,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:315,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:319,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:319,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:319,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:319,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:319,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:321,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:321,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:321,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:321,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:321,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:324,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:324,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:324,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:324,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:324,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:327,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:327,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:327,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:327,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:327,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:327,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:332,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:332,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:332,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:332,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:332,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:332,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:333,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:333,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:333,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:333,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:333,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:334,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:334,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:334,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:334,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:334,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:336,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:336,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:336,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:336,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:336,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:337,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:337,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:337,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:337,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:341,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:341,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:341,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:341,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:341,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:341,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:346,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:346,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:350,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:350,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:350,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:350,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:350,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:352,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:352,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:352,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:352,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:352,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:352,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:356,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:356,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:356,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:356,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:356,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:358,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:358,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:358,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:358,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:358,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:358,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:362,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:362,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:362,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:362,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:362,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:362,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:364,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:364,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:364,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:364,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:364,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:364,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:365,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:365,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:365,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:365,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:368,1
    - Dst: GET_FLAG_TYPE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:370,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:372,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:372,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:372,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:372,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:372,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:374,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:374,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:374,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:374,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:375,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:375,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:375,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:380,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:380,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:380,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:380,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:380,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:380,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:381,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:381,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:381,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:381,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:381,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:383,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:383,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:383,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:383,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:384,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:384,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:384,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:385,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:385,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:385,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:385,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:387,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:387,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:387,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:387,1
    - Dst: SH_IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:387,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:388,1
    - Dst: SA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:388,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:388,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:388,1
    - Dst: EMIT_LOGICAL
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:391,1
    - Dst: EMIT_LOGICAL
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:395,1
    - Dst: EMIT_LOGICAL
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:399,1
    - Dst: EMIT_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:403,1
    - Dst: EMIT_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:407,1
    - Dst: EMIT_SHIFT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:411,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:415,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 264
    argCount: 6
    argNames:
    - compiler
    - op
    - flags
    - dst
    - src1
    - src2
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 417
    functionName: emit_single_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - SH_IMM
    - EMIT_SHIFT
    - IMM
    - DR
    - DA
    - SLJIT_UNREACHABLE
    - SLJIT_UNLIKELY
    - SA
    - S
    - T
    - EMIT_LOGICAL
    - TA
    - push_inst
    - GET_OPCODE
    - SLJIT_ASSERT
    - GET_FLAG_TYPE
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_single_op(struct sljit_compiler *compiler, sljit_s32
      op, sljit_s32 flags,\n\tsljit_s32 dst, sljit_s32 src1, sljit_sw src2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:421,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:421,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:421,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:421,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:421,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:422,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:422,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:422,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:422,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - compiler
    - dst
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 13
    functionsReached:
    - FAIL_IF
    - IMM
    - DR
    - S
    - T
    - push_inst
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_const(struct sljit_compiler *compiler, sljit_s32
      dst, sljit_sw init_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:428,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:430,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:431,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:434,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:435,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 437
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 5
    functionsReached:
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_CACHE_FLUSH
    - SLJIT_UNUSED_ARG
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 0
    functionsReached:
    - sljit_set_jump_addr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:456,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:499,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:499,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:499,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:499,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:499,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:499,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:509,1
    - Dst: FT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:509,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:509,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:515,1
    - Dst: FT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:515,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:515,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:520,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:520,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:520,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:522,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:522,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:522,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:524,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:524,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:524,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:533,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:533,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:549,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:549,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:551,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:551,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:551,1
    - Dst: FS
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:556,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:556,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:559,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:559,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:560,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:560,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:560,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:561,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:561,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:561,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:571,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:571,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 106
    argCount: 3
    argNames:
    - compiler
    - arg_types
    - ins_ptr
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_ins*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 582
    functionName: call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 6
    functionsReached:
    - FAIL_IF
    - IMM
    - DR
    - FS
    - FD
    - DA
    - S
    - T
    - push_inst
    - TA
    - SLJIT_ASSERT
    - FT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32
      arg_types, sljit_ins *ins_ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:610,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:610,1
    - Dst: T
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:610,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:610,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:610,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - compiler
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 613
    functionName: post_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 2
    functionsReached:
    - IMM
    - DR
    - S
    - T
    - push_inst
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 post_call_with_args(struct sljit_compiler *compiler, sljit_s32
      arg_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:621,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:622,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:622,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:624,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:625,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:626,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:629,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:629,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:631,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:631,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:633,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:633,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:636,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:636,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:636,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:636,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:638,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:638,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:640,1
    - Dst: post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 643
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 6
    functionsReached:
    - set_jump
    - DR
    - DA
    - check_sljit_emit_call
    - S
    - call_with_args
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - emit_const
    - CHECK_ERROR_PTR
    - SLJIT_ASSERT
    - ensure_abuf
    - post_call_with_args
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:651,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:652,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:652,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:654,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:654,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:657,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:657,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:657,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:658,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:659,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:659,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:659,1
    - Dst: TA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:659,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:659,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:659,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:661,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:662,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:662,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:662,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:665,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:665,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:668,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:668,1
    - Dst: S
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:668,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:668,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:669,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:669,1
    - Dst: post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeMIPS_32.c:670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 671
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
    functionUses: 13
    functionsReached:
    - FAIL_IF
    - DR
    - DA
    - CHECK
    - load_immediate
    - FAST_IS_REG
    - CHECK_ERROR
    - S
    - call_with_args
    - push_inst
    - TA
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_icall
    - SLJIT_ASSERT
    - D
    - post_call_with_args
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: sljit_get_platform_name
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_get_platform_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - src
    - ','
    - from
    - ','
    - to
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: COPY_BITS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_BITS(src, from, to, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: RD3
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RD3(rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: RN3
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RN3(rn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: RM3
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RM3(rm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rdn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: RDN3
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDN3(rdn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - imm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: IMM3
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMM3(imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - imm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: IMM8
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMM8(imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rd
    - ','
    - rn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: SET_REGS44
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_REGS44(rd, rn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg1
    - ','
    - reg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: IS_2_LO_REGS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_2_LO_REGS(reg1, reg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - reg1
    - ','
    - reg2
    - ','
    - reg3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: IS_3_LO_REGS
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_3_LO_REGS(reg1, reg2, reg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: RD4
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RD4(rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: RN4
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RN4(rn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: RM4
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RM4(rm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: RT4
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RT4(rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: DD4
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DD4(dd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: DN4
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DN4(dn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: DM4
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DM4(dm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - imm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: IMM5
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMM5(imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - imm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: IMM12
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMM12(imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:203,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:205,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - compiler
    - inst
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: push_inst16
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - ensure_buf
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst16(struct sljit_compiler *compiler, sljit_ins inst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:214,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - compiler
    - inst
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: push_inst32
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst32(struct sljit_compiler *compiler, sljit_ins inst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:224,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:224,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:224,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:225,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:225,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:225,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:226,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:226,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:227,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:227,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - compiler
    - dst
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: emit_imm32_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - COPY_BITS
    - RD4
    - push_inst32
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_imm32_const(struct sljit_compiler *compiler, sljit_s32
      dst, sljit_uw imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:233,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:234,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:234,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:235,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:236,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:236,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inst
    - new_imm
    argTypes:
    - sljit_u16*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: modify_imm32_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    - COPY_BITS
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE modify_imm32_const(sljit_u16 *inst, sljit_uw new_imm)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:254,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:259,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 4
    argNames:
    - jump
    - code_ptr
    - code
    - executable_offset
    argTypes:
    - struct sljit_jump*
    - sljit_u16*
    - sljit_u16*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 293
    functionName: detect_jump_type
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 3
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE detect_jump_type(struct sljit_jump *jump, sljit_u16 *code_ptr,
      sljit_u16 *code, sljit_sw executable_offset)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:302,1
    - Dst: modify_imm32_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:303,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:308,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:312,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:320,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:325,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:326,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:326,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:326,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:327,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:327,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:330,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:337,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:342,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:348,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:357,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - jump
    - executable_offset
    argTypes:
    - struct sljit_jump*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 358
    functionName: set_jump_instruction
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNREACHABLE
    - SLJIT_UNLIKELY
    - modify_imm32_const
    - COPY_BITS
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE set_jump_instruction(struct sljit_jump *jump, sljit_sw
      executable_offset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:376,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:377,1
    - Dst: check_sljit_generate_code
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:377,1
    - Dst: reverse_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:378,1
    - Dst: SLJIT_MALLOC_EXEC
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:380,1
    - Dst: PTR_FAIL_WITH_EXEC_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:381,1
    - Dst: SLJIT_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:387,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:400,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:401,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:402,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:403,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:407,1
    - Dst: detect_jump_type
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:413,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:421,1
    - Dst: compute_next_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:425,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:435,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:440,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:441,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:442,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:443,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:444,1
    - Dst: set_jump_instruction
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:448,1
    - Dst: modify_imm32_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:454,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:462,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:463,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:465,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:466,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 470
    functionName: sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 7
    functionsReached:
    - SLJIT_UPDATE_WX_FLAGS
    - PTR_FAIL_WITH_EXEC_IF
    - SLJIT_MALLOC_EXEC
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_EXEC_OFFSET
    - compute_next_addr
    - CHECK_PTR
    - modify_imm32_const
    - SLJIT_CACHE_FLUSH
    - reverse_buf
    - detect_jump_type
    - check_sljit_generate_code
    - CHECK_ERROR_PTR
    - SLJIT_ASSERT
    - set_jump_instruction
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - feature_type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 491
    functionName: sljit_has_cpu_feature
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_has_cpu_feature(sljit_s32 feature_type)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:539,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:544,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:544,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:544,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - imm
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 545
    functionName: get_imm
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    - COPY_BITS
    linkageType: ''
    returnType: sljit_uw
    signature: sljit_uw get_imm(sljit_uw imm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:554,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:556,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:556,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:557,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:559,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:559,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:563,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:563,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:563,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:564,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:564,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:564,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:568,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:568,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:569,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:569,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - compiler
    - dst
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 571
    functionName: load_immediate
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 23
    functionsReached:
    - FAIL_IF
    - RD4
    - COPY_BITS
    - push_inst32
    - get_imm
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32
      dst, sljit_uw imm)
  - BBCount: 109
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:587,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:590,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:590,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:604,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:605,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:608,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:615,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:617,1
    - Dst: IMM3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:617,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:617,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:617,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:619,1
    - Dst: IMM3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:619,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:619,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:619,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:622,1
    - Dst: IMM8
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:622,1
    - Dst: RDN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:622,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:624,1
    - Dst: IMM8
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:624,1
    - Dst: RDN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:624,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:629,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:629,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:629,1
    - Dst: IMM12
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:629,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:631,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:631,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:631,1
    - Dst: IMM12
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:631,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:633,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:635,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:635,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:635,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:636,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:638,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:638,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:638,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:641,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:643,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:643,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:643,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:649,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:650,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:650,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:650,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:651,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:653,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:653,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:653,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:658,1
    - Dst: IMM8
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:658,1
    - Dst: RDN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:658,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:659,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:661,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:661,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:662,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:664,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:664,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:667,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:669,1
    - Dst: IMM3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:669,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:669,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:669,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:671,1
    - Dst: IMM3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:671,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:671,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:671,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:674,1
    - Dst: IMM8
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:674,1
    - Dst: RDN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:674,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:676,1
    - Dst: IMM8
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:676,1
    - Dst: RDN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:676,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:681,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:681,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:681,1
    - Dst: IMM12
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:681,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:683,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:683,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:683,1
    - Dst: IMM12
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:683,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:685,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:687,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:687,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:687,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:688,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:690,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:690,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:690,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:695,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:697,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:697,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:697,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:700,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:702,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:702,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:702,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:703,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:705,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:705,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:705,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:708,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:710,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:710,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:710,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:711,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:713,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:713,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:713,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:716,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:718,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:718,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:718,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:728,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:728,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:729,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:730,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:730,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:730,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:731,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:731,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:731,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:735,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:736,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:736,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:736,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:737,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:737,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:737,1
    - Dst: IMM5
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:737,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:739,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:740,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:740,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:740,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:741,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:741,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:741,1
    - Dst: IMM5
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:741,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:743,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:744,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:744,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:744,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:745,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:745,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:745,1
    - Dst: IMM5
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:745,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:748,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:755,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:755,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:760,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:760,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:763,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:772,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:775,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:775,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:777,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:778,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:779,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:779,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:779,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:780,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:780,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:780,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:782,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:783,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:784,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:784,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:784,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:785,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:785,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:785,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:787,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:788,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:789,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:789,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:789,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:790,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:790,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:790,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:792,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:793,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:794,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:794,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:794,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:795,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:795,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:795,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:797,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:798,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:799,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:799,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:799,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:800,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:800,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:800,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:802,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:803,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:803,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:803,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:803,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:803,1
    - Dst: IS_3_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:807,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:808,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:808,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:808,1
    - Dst: RM3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:808,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:810,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:810,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:811,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:811,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:811,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:811,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:813,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:814,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:814,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:814,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:815,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:815,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:815,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:815,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:819,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:820,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:820,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:820,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:821,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:821,1
    - Dst: IS_3_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:823,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:824,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:824,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:824,1
    - Dst: RM3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:824,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:825,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:825,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:825,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:825,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:827,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:828,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:828,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:828,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:829,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:829,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:829,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:829,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:833,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:833,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:833,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:833,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:834,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:835,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:835,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:835,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:835,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:835,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:835,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:837,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:837,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:837,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:839,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:840,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:840,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:840,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:841,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:842,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:842,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:842,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:843,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:843,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:843,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:843,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:845,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:846,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:846,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:846,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:847,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:847,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:847,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:847,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:849,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:850,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:850,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:850,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:851,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:851,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:851,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:851,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:853,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:854,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:854,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:854,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:855,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:855,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:855,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:855,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:857,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:858,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:858,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:858,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:859,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:859,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:859,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:859,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:861,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:862,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:862,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:862,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:863,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:863,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:863,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:863,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:866,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 268
    argCount: 5
    argNames:
    - compiler
    - flags
    - dst
    - arg1
    - arg2
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_uw
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 868
    functionName: emit_op_imm
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 3
    functionsReached:
    - RN3
    - IMM3
    - RD3
    - SLJIT_UNREACHABLE
    - push_inst32
    - RD4
    - load_immediate
    - SET_REGS44
    - IMM12
    - FAIL_IF
    - IMM5
    - push_inst16
    - IS_2_LO_REGS
    - RT4
    - IMM8
    - RM4
    - get_imm
    - RN4
    - RDN3
    - SLJIT_UNLIKELY
    - IS_3_LO_REGS
    - RM3
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_op_imm(struct sljit_compiler *compiler, sljit_s32 flags,
      sljit_s32 dst, sljit_uw arg1, sljit_uw arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 879
    functionName: IS_WORD_SIZE
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WORD_SIZE(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - imm
    - ','
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 880
    functionName: OFFSET_CHECK
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET_CHECK(imm, shift)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:956,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:956,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:956,1
    - Dst: IMM12
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:956,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:957,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:959,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:959,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:959,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:964,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:964,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:964,1
    - Dst: IMM12
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:964,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:965,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:967,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:967,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:967,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - compiler
    - dst
    - reg
    - value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 952
    functionDepth: 3
    functionLinenumber: 952
    functionLinenumberEnd: 970
    functionName: emit_set_delta
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - RD4
    - RN4
    - push_inst32
    - IMM12
    - get_imm
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_set_delta(struct sljit_compiler *compiler, sljit_s32
      dst, sljit_s32 reg, sljit_sw value)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:978,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:979,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:982,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:983,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:985,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:985,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:985,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:986,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:986,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:986,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:989,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:989,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:990,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:991,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:991,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:991,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:992,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:992,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:992,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:995,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:997,1
    - Dst: IS_3_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1000,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1001,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1001,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1001,1
    - Dst: RM3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1001,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1002,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1002,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1002,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1002,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1006,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1008,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1008,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1008,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1014,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1016,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1016,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1016,1
    - Dst: IS_2_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1022,1
    - Dst: IS_WORD_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1024,1
    - Dst: OFFSET_CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1025,1
    - Dst: OFFSET_CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1030,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1034,1
    - Dst: OFFSET_CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1035,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1040,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1040,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1040,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1042,1
    - Dst: IS_WORD_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1042,1
    - Dst: OFFSET_CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1042,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1044,1
    - Dst: RDN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1044,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1048,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1048,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1048,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1050,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1050,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1050,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1052,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1054,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1054,1
    - Dst: IS_3_LO_REGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1055,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1056,1
    - Dst: RD3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1056,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1056,1
    - Dst: RM3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1056,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1057,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1057,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1057,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1057,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 6
    argNames:
    - compiler
    - flags
    - reg
    - arg
    - argw
    - tmp_reg
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 1058
    functionName: emit_op_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 25
    functionsReached:
    - IS_WORD_SIZE
    - RN3
    - RD3
    - push_inst32
    - RD4
    - load_immediate
    - FAIL_IF
    - push_inst16
    - OFFS_REG
    - IS_2_LO_REGS
    - RT4
    - OFFSET_CHECK
    - RM4
    - get_imm
    - RN4
    - RDN3
    - SLJIT_UNLIKELY
    - IS_3_LO_REGS
    - RM3
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_op_mem(struct sljit_compiler *compiler, sljit_s32
      flags, sljit_s32 reg,\n\tsljit_s32 arg, sljit_sw argw, sljit_s32 tmp_reg)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1074,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1075,1
    - Dst: check_sljit_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1075,1
    - Dst: set_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1076,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1085,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1086,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1087,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1090,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1097,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1099,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1101,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1102,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1102,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1102,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1102,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1107,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1107,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1109,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1109,1
    - Dst: get_arg_count
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1113,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1116,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1116,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1116,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1118,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1118,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1118,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1120,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1120,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1120,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1125,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1126,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1130,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1130,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1130,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1130,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1131,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1131,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1131,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1131,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1136,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1136,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1136,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1136,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1137,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1137,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1137,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1137,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1141,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1141,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1141,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1141,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1144,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1147,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1147,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1148,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1148,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1148,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1148,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1149,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1149,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1149,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1149,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1150,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1151,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1151,1
    - Dst: RDN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1151,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1152,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1152,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1157,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1157,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1157,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1157,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1161,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1162,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1164,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1164,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1164,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1164,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1169,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1169,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1169,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1169,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1171,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1171,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1171,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1174,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1174,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1174,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1174,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1064
    functionDepth: 3
    functionLinenumber: 1064
    functionLinenumberEnd: 1178
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 7
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_enter
    - RD4
    - RN4
    - CHECK
    - set_emit_enter
    - push_inst16
    - load_immediate
    - RDN3
    - CHECK_ERROR
    - emit_op_imm
    - SET_REGS44
    - RT4
    - get_arg_count
    - GET_SAVED_REGISTERS_SIZE
    - push_inst32
    - SLJIT_ASSERT
    - get_imm
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1186,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1187,1
    - Dst: check_sljit_set_context
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1187,1
    - Dst: set_set_context
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1188,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1193
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 6
    functionsReached:
    - set_set_context
    - CHECK
    - check_sljit_set_context
    - CHECK_ERROR
    - GET_SAVED_REGISTERS_SIZE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1200,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1201,1
    - Dst: check_sljit_emit_return
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1201,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1203,1
    - Dst: emit_mov_before_return
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1203,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1207,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1207,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1209,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1209,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1220,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1195
    functionDepth: 3
    functionLinenumber: 1195
    functionLinenumberEnd: 1222
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 7
    functionsReached:
    - FAIL_IF
    - CHECK
    - push_inst16
    - CHECK_ERROR
    - push_inst32
    - emit_mov_before_return
    - emit_op_imm
    - check_sljit_emit_return
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1257,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1258,1
    - Dst: check_sljit_emit_op0
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1258,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1260,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1263,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1265,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1268,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1276,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1276,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1276,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1277,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1277,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1277,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1277,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1277,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1278,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1278,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1278,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1278,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1278,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1279,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1279,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1279,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1279,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1282,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1282,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1282,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1282,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1288,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1289,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1300,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1300,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1303,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1304,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1304,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1307,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1308,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1308,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1313,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1313,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1313,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1314,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1314,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1314,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1315,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1315,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1315,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1316,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1316,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1317,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1317,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1319,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1319,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1320,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1320,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1327,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1328,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1328,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1331,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1332,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1332,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1334,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1250
    functionDepth: 3
    functionLinenumber: 1250
    functionLinenumberEnd: 1345
    functionName: sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 9
    functionsReached:
    - FAIL_IF
    - RD4
    - SLJIT_FUNC_OFFSET
    - RN4
    - CHECK
    - push_inst16
    - SLJIT_COMPILE_ASSERT
    - sljit_emit_ijump
    - check_sljit_emit_op0
    - CHECK_ERROR
    - SET_REGS44
    - GET_OPCODE
    - push_inst32
    - SLJIT_ASSERT
    - RM4
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op0(struct sljit_compiler *compiler,
      sljit_s32 op)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1352,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1354,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1355,1
    - Dst: check_sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1355,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1356,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1357,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1359,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1361,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1391,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1397,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1397,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1399,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1399,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1402,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1409,1
    - Dst: sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1417,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1420,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1423,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1423,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1427,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1429,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1430,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1432
    functionName: sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 9
    functionsReached:
    - FAIL_IF
    - HAS_FLAGS
    - SLOW_IS_REG
    - CHECK
    - SLJIT_UNREACHABLE
    - GET_ALL_FLAGS
    - SLJIT_UNLIKELY
    - CHECK_ERROR
    - emit_op_imm
    - sljit_emit_op2
    - GET_OPCODE
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_op1
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1441,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1442,1
    - Dst: check_sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1442,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1443,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1444,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1445,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1447,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1450,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1451,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1456,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1466,1
    - Dst: emit_op_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1475,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1475,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1479,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1480
    functionName: sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 11
    functionsReached:
    - HAS_FLAGS
    - SLOW_IS_REG
    - CHECK
    - CHECK_ERROR
    - check_sljit_emit_op2
    - GET_OPCODE
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - emit_op_imm
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1485,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1486,1
    - Dst: check_sljit_emit_op_src
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1486,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1487,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1491,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1493,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1494,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1494,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1494,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1496,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1496,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1498,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1498,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1482
    functionDepth: 3
    functionLinenumber: 1482
    functionLinenumberEnd: 1509
    functionName: sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 6
    functionsReached:
    - FAIL_IF
    - RN3
    - CHECK
    - push_inst16
    - check_sljit_emit_op_src
    - FAST_IS_REG
    - CHECK_ERROR
    - SET_REGS44
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_src(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1513,1
    - Dst: check_sljit_get_register_index
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1515
    functionName: sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 18
    functionsReached:
    - check_sljit_get_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1519,1
    - Dst: check_sljit_get_float_register_index
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1521
    functionName: sljit_get_float_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 6
    functionsReached:
    - check_sljit_get_float_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_float_register_index(sljit_s32 reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1526,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1527,1
    - Dst: check_sljit_emit_op_custom
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1527,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1530,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1523
    functionDepth: 3
    functionLinenumber: 1523
    functionLinenumberEnd: 1532
    functionName: sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 17
    functionsReached:
    - check_sljit_emit_op_custom
    - CHECK
    - push_inst16
    - CHECK_ERROR
    - push_inst32
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1545,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1548,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1549,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1549,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1549,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1549,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1549,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1549,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1556,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1556,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1556,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1558,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1558,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1558,1
    - Dst: emit_set_delta
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1562,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1563,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1564,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1564,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1564,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1566,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1568,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1568,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1568,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1568,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1569,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1569,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1569,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1571,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1574,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1574,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1574,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1574,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1575,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1575,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1575,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1579,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1579,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1581,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1581,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1581,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1582,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1582,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1582,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - compiler
    - flags
    - reg
    - arg
    - argw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1540
    functionDepth: 4
    functionLinenumber: 1540
    functionLinenumberEnd: 1583
    functionName: emit_fop_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - get_imm
    - RM4
    - RD4
    - RN4
    - load_immediate
    - push_inst16
    - emit_set_delta
    - SLJIT_UNLIKELY
    - OFFS_REG
    - SET_REGS44
    - push_inst32
    - SLJIT_ASSERT
    - DD4
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_fop_mem(struct sljit_compiler *compiler, sljit_s32 flags,
      sljit_s32 reg, sljit_s32 arg, sljit_sw argw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1592,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1592,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1596,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1596,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1596,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1596,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1598,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1599,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1599,1
    - Dst: DN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1599,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1585
    functionDepth: 3
    functionLinenumber: 1585
    functionLinenumberEnd: 1603
    functionName: sljit_emit_fop1_conv_sw_from_f64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - DN4
    - emit_fop_mem
    - FAST_IS_REG
    - RT4
    - push_inst32
    - DM4
    - DD4
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1609,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1613,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1614,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1614,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1614,1
    - Dst: DN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1614,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1617,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1617,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1620,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1620,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1621,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1621,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1621,1
    - Dst: DN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1621,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1624,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1624,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1624,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1624,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1605
    functionDepth: 3
    functionLinenumber: 1605
    functionLinenumberEnd: 1629
    functionName: sljit_emit_fop1_conv_f64_from_sw
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - DN4
    - load_immediate
    - FAST_IS_REG
    - emit_fop_mem
    - RT4
    - push_inst32
    - DM4
    - DD4
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1638,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1643,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1647,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1647,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1647,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1647,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - compiler
    - op
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1631
    functionDepth: 3
    functionLinenumber: 1631
    functionLinenumberEnd: 1649
    functionName: sljit_emit_fop1_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - emit_fop_mem
    - push_inst32
    - DM4
    - DD4
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_cmp(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1657,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1659,1
    - Dst: SELECT_FOP1_OPERATION_WITH_CHECKS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1660,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1662,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1664,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1668,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1672,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1676,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1676,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1676,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1676,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1682,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1682,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1682,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1682,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1685,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1685,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1685,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1685,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1688,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1688,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1688,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1688,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1694,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1651
    functionDepth: 3
    functionLinenumber: 1651
    functionLinenumberEnd: 1696
    functionName: sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - SELECT_FOP1_OPERATION_WITH_CHECKS
    - SLJIT_COMPILE_ASSERT
    - FAST_IS_REG
    - CHECK_ERROR
    - emit_fop_mem
    - GET_OPCODE
    - push_inst32
    - DM4
    - DD4
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1705,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1706,1
    - Dst: check_sljit_emit_fop2
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1706,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1707,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1708,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1709,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1713,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1715,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1719,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1723,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1725,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1725,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1725,1
    - Dst: DN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1725,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1725,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1728,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1728,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1728,1
    - Dst: DN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1728,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1728,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1731,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1731,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1731,1
    - Dst: DN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1731,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1731,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1734,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1734,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1734,1
    - Dst: DN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1734,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1734,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1698
    functionDepth: 3
    functionLinenumber: 1698
    functionLinenumberEnd: 1741
    functionName: sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - DD4
    - CHECK
    - DN4
    - FAST_IS_REG
    - CHECK_ERROR
    - emit_fop_mem
    - GET_OPCODE
    - push_inst32
    - ADJUST_LOCAL_OFFSET
    - DM4
    - check_sljit_emit_fop2
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1751,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1752,1
    - Dst: check_sljit_emit_fast_enter
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1752,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1753,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1755,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1757,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1758,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1758,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1749
    functionDepth: 3
    functionLinenumber: 1749
    functionLinenumberEnd: 1762
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 25
    functionsReached:
    - CHECK
    - push_inst16
    - FAST_IS_REG
    - CHECK_ERROR
    - check_sljit_emit_fast_enter
    - SET_REGS44
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1825
    functionName: get_cc
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 6
    functionsReached:
    - SLJIT_UNREACHABLE
    linkageType: ''
    returnType: sljit_uw
    signature: sljit_uw get_cc(struct sljit_compiler *compiler, sljit_s32 type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1831,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1832,1
    - Dst: check_sljit_emit_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1832,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1837,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1838,1
    - Dst: set_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1827
    functionDepth: 2
    functionLinenumber: 1827
    functionLinenumberEnd: 1841
    functionName: sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 7
    functionsReached:
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - set_label
    - ensure_abuf
    - check_sljit_emit_label
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_label(struct sljit_compiler *compiler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1848,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1849,1
    - Dst: check_sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1849,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1851,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1852,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1853,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1856,1
    - Dst: emit_imm32_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1856,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1859,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1861,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1861,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1866,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1866,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1866,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1869,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1869,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1843
    functionDepth: 4
    functionLinenumber: 1843
    functionLinenumberEnd: 1873
    functionName: sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 13
    functionsReached:
    - emit_imm32_const
    - set_jump
    - RN3
    - push_inst16
    - check_sljit_emit_jump
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - ensure_abuf
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_jump(struct sljit_compiler *compiler,
      sljit_s32 type)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1887,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1922,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1922,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1924,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1936,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1936,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1939,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1939,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1941,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1941,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1941,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1948,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1952,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1952,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1955,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1955,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1957,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1957,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1957,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1964,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1969,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1969,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1976,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1976,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1978,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1978,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 86
    argCount: 3
    argNames:
    - compiler
    - arg_types
    - src
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1877
    functionDepth: 3
    functionLinenumber: 1877
    functionLinenumberEnd: 1987
    functionName: softfloat_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - RN4
    - push_inst16
    - FAST_IS_REG
    - push_inst32
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 softfloat_call_with_args(struct sljit_compiler *compiler,
      sljit_s32 arg_types, sljit_s32 *src)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1994,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1994,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1996,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:1996,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2021,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - compiler
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1989
    functionDepth: 3
    functionLinenumber: 1989
    functionLinenumberEnd: 2022
    functionName: softfloat_post_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - push_inst16
    - push_inst32
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 softfloat_post_call_with_args(struct sljit_compiler *compiler,
      sljit_s32 arg_types)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2047,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2047,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2047,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2048,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2063,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2063,1
    - Dst: DD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2063,1
    - Dst: DM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2063,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - compiler
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2026
    functionDepth: 3
    functionLinenumber: 2026
    functionLinenumberEnd: 2071
    functionName: hardfloat_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - DM4
    - DD4
    - push_inst32
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 hardfloat_call_with_args(struct sljit_compiler *compiler,
      sljit_s32 arg_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2082,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2083,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2083,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2086,1
    - Dst: softfloat_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2086,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2093,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2094,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2096,1
    - Dst: softfloat_post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2096,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2099,1
    - Dst: hardfloat_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2099,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2075
    functionDepth: 1
    functionLinenumber: 2075
    functionLinenumberEnd: 2108
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 7
    functionsReached:
    - softfloat_call_with_args
    - softfloat_post_call_with_args
    - check_sljit_emit_call
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - hardfloat_call_with_args
    - sljit_emit_jump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2114,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2115,1
    - Dst: check_sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2115,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2116,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2118,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2121,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2122,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2123,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2123,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2126,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2126,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2128,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2128,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2132,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2133,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2134,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2137,1
    - Dst: emit_imm32_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2137,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2139,1
    - Dst: RN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2110
    functionDepth: 4
    functionLinenumber: 2110
    functionLinenumberEnd: 2140
    functionName: sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 13
    functionsReached:
    - FAIL_IF
    - emit_imm32_const
    - set_jump
    - RN3
    - CHECK
    - push_inst16
    - FAST_IS_REG
    - CHECK_ERROR
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - SLJIT_ASSERT
    - ensure_abuf
    - check_sljit_emit_ijump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_ijump(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 src, sljit_sw srcw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2146,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2147,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2147,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2151,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2151,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2155,1
    - Dst: softfloat_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2155,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2162,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2162,1
    - Dst: softfloat_post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2164,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2166,1
    - Dst: hardfloat_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2166,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2175
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 14
    functionsReached:
    - FAIL_IF
    - softfloat_call_with_args
    - softfloat_post_call_with_args
    - CHECK
    - sljit_emit_ijump
    - CHECK_ERROR
    - emit_op_mem
    - check_sljit_emit_icall
    - hardfloat_call_with_args
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2181,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2184,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2185,1
    - Dst: check_sljit_emit_op_flags
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2185,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2186,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2188,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2189,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2190,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2193,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2193,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2195,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2195,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2195,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2196,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2196,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2196,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2199,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2199,1
    - Dst: RDN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2199,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2200,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2200,1
    - Dst: RDN3
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2200,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2204,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2208,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2208,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2211,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2211,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2212,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2212,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2212,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2212,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2213,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2213,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2213,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2213,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2216,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2216,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2217,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2217,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2217,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2217,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2221,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2221,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2227,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2227,1
    - Dst: RM4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2227,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2177
    functionDepth: 3
    functionLinenumber: 2177
    functionLinenumberEnd: 2228
    functionName: sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 6
    functionsReached:
    - FAIL_IF
    - RD4
    - check_sljit_emit_op_flags
    - RN4
    - CHECK
    - push_inst16
    - GET_ALL_FLAGS
    - RDN3
    - FAST_IS_REG
    - CHECK_ERROR
    - GET_OPCODE
    - emit_op_mem
    - push_inst32
    - ADJUST_LOCAL_OFFSET
    - RM4
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2236,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2237,1
    - Dst: check_sljit_emit_cmov
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2237,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2241,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2244,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2244,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2245,1
    - Dst: SET_REGS44
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2245,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2252,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2252,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2253,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2253,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2254,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2254,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2254,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2257,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2259,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2259,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2260,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2260,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2263,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2265,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2265,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2266,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2266,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2269,1
    - Dst: push_inst16
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2269,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2272,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2272,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2272,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2273,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2273,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2273,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2274,1
    - Dst: RD4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2274,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2275,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2275,1
    - Dst: COPY_BITS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2230
    functionDepth: 3
    functionLinenumber: 2230
    functionLinenumberEnd: 2276
    functionName: sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 6
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_cmov
    - RD4
    - CHECK
    - push_inst16
    - CHECK_ERROR
    - SET_REGS44
    - push_inst32
    - COPY_BITS
    - get_cc
    - get_imm
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_cmov(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2285,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2286,1
    - Dst: check_sljit_emit_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2286,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2314,1
    - Dst: push_inst32
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2332,1
    - Dst: RT4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2332,1
    - Dst: RN4
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2332,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 5
    argNames:
    - compiler
    - type
    - reg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2278
    functionDepth: 3
    functionLinenumber: 2278
    functionLinenumberEnd: 2333
    functionName: sljit_emit_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 11
    functionsReached:
    - check_sljit_emit_mem
    - RN4
    - CHECK
    - SLJIT_UNREACHABLE
    - CHECK_ERROR
    - RT4
    - push_inst32
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_mem(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 reg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2340,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2341,1
    - Dst: check_sljit_emit_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2341,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2342,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2344,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2345,1
    - Dst: set_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2346,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2348,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2349,1
    - Dst: emit_imm32_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2349,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2352,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2335
    functionDepth: 4
    functionLinenumber: 2335
    functionLinenumberEnd: 2354
    functionName: sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 6
    functionsReached:
    - emit_imm32_const
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - set_const
    - check_sljit_emit_const
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_const(struct sljit_compiler *compiler,
      sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2361,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2362,1
    - Dst: check_sljit_emit_put_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2362,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2363,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2365,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2366,1
    - Dst: set_put_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2367,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2369,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2370,1
    - Dst: emit_imm32_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2370,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2373,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2356
    functionDepth: 4
    functionLinenumber: 2356
    functionLinenumberEnd: 2375
    functionName: sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 9
    functionsReached:
    - set_put_label
    - emit_imm32_const
    - check_sljit_emit_put_label
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_put_label(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2380,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2382,1
    - Dst: modify_imm32_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2383,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2384,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2385,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2377
    functionDepth: 2
    functionLinenumber: 2377
    functionLinenumberEnd: 2387
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 6
    functionsReached:
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_CACHE_FLUSH
    - modify_imm32_const
    - SLJIT_UNUSED_ARG
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c:2391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2389
    functionDepth: 0
    functionLinenumber: 2389
    functionLinenumberEnd: 2392
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
    functionUses: 0
    functionsReached:
    - sljit_set_jump_addr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:33,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:34,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:35,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - compiler
    - reg
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: emit_load_imm64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 5
    functionsReached:
    - FAIL_IF
    - INC_SIZE
    - sljit_unaligned_store_sw
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_load_imm64(struct sljit_compiler *compiler, sljit_s32
      reg, sljit_sw imm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:49,1
    - Dst: get_jump_code
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:53,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:64,1
    - Dst: sljit_unaligned_store_sw
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - jump
    - code_ptr
    argTypes:
    - struct sljit_jump*
    - sljit_u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 75
    functionName: generate_far_jump_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 2
    functionsReached:
    - sljit_unaligned_store_s32
    - sljit_unaligned_store_sw
    - SLJIT_ASSERT
    - get_jump_code
    linkageType: ''
    returnType: sljit_u8
    signature: sljit_u8 * generate_far_jump_code(struct sljit_jump *jump, sljit_u8
      *code_ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:89,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:90,1
    - Dst: SLJIT_MEMMOVE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:106,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:108,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:112,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 3
    argNames:
    - put_label
    - code_ptr
    - max_label
    argTypes:
    - struct sljit_put_label*
    - sljit_u8*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 125
    functionName: generate_put_label_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 1
    functionsReached:
    - SLJIT_ASSERT
    - SLJIT_MEMMOVE
    linkageType: ''
    returnType: sljit_u8
    signature: sljit_u8 * generate_put_label_code(struct sljit_put_label *put_label,
      sljit_u8 *code_ptr, sljit_uw max_label)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:134,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:135,1
    - Dst: check_sljit_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:135,1
    - Dst: set_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:136,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:139,1
    - Dst: emit_endbranch
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:139,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:152,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:157,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:158,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:159,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:162,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:167,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:168,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:169,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:172,1
    - Dst: get_arg_count
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:175,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:179,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:180,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:182,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:230,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:230,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:232,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:232,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:234,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:234,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:237,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:238,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:240,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:242,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:242,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:243,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:243,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:243,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:245,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:245,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:245,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:248,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:249,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:251,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:256,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:256,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:261,1
    - Dst: emit_non_cum_binary
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:261,1
    - Dst: BINARY_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:261,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:268,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:269,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:270,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:272,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 106
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 277
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 8
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_enter
    - emit_non_cum_binary
    - CHECK
    - set_emit_enter
    - SLJIT_MEM1
    - CHECK_ERROR
    - PUSH_REG
    - sljit_unaligned_store_s32
    - get_arg_count
    - GET_SAVED_REGISTERS_SIZE
    - EMIT_MOV
    - SLJIT_ASSERT
    - emit_endbranch
    - BINARY_OPCODE
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:285,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:286,1
    - Dst: check_sljit_set_context
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:286,1
    - Dst: set_set_context
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:287,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 301
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 7
    functionsReached:
    - set_set_context
    - CHECK
    - check_sljit_set_context
    - CHECK_ERROR
    - GET_SAVED_REGISTERS_SIZE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:308,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:309,1
    - Dst: check_sljit_emit_return
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:309,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:311,1
    - Dst: emit_mov_before_return
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:311,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:316,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:317,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:318,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:320,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:326,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:327,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:328,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:335,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:336,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:337,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:341,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:348,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:349,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:350,1
    - Dst: POP_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:353,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:359,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:360,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:361,1
    - Dst: POP_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:364,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:367,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:368,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:369,1
    - Dst: RET
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:370,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 55
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 372
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 8
    functionsReached:
    - FAIL_IF
    - POP_REG
    - CHECK
    - CHECK_ERROR
    - RET
    - emit_mov_before_return
    - sljit_unaligned_store_s32
    - INC_SIZE
    - ensure_buf
    - check_sljit_emit_return
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:383,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:384,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:385,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - compiler
    - rex
    - opcode
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_u8
    - sljit_u8
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 391
    functionName: emit_do_imm32
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - sljit_unaligned_store_s32
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_do_imm32(struct sljit_compiler *compiler, sljit_u8 rex,
      sljit_u8 opcode, sljit_sw imm)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:406,1
    - Dst: IS_HALFWORD
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:406,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:408,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:410,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:412,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:414,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:415,1
    - Dst: NOT_HALFWORD
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:436,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:437,1
    - Dst: emit_load_imm64
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:437,1
    - Dst: TO_OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:440,1
    - Dst: TO_OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:445,1
    - Dst: TO_OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:454,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:466,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:500,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:513,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:514,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:517,1
    - Dst: TO_OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:554,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:566,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:573,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:582,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:590,1
    - Dst: sljit_unaligned_store_s16
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:598,1
    - Dst: sljit_unaligned_store_s32
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:600,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 158
    argCount: 6
    argNames:
    - compiler
    - size
    - a
    - imma
    - b
    - immb
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 604
    functionName: emit_x86_instruction
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 20
    functionsReached:
    - emit_load_imm64
    - TO_OFFS_REG
    - ensure_buf
    - sljit_unaligned_store_s16
    - OFFS_REG
    - PTR_FAIL_IF
    - NOT_HALFWORD
    - IS_HALFWORD
    - sljit_unaligned_store_s32
    - INC_SIZE
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_u8
    signature: "sljit_u8 * emit_x86_instruction(struct sljit_compiler *compiler, sljit_s32
      size,\n\t/* The register or immediate operand. */\n\tsljit_s32 a, sljit_sw imma,\n\t/*
      The general operand (not immediate). */\n\tsljit_s32 b, sljit_sw immb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:617,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:634,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:635,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:642,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:643,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - compiler
    - arg_types
    - src_ptr
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 644
    functionName: call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 10
    functionsReached:
    - emit_mov
    - SLJIT_ASSERT
    - EMIT_MOV
    - ADJUST_LOCAL_OFFSET
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32
      arg_types, sljit_s32 *src_ptr, sljit_sw srcw)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:658,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:683,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:697,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:698,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:706,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:706,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:712,1
    - Dst: emit_sse2_load
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:712,1
    - Dst: EMIT_MOV
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:718,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 4
    argNames:
    - compiler
    - arg_types
    - src_ptr
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 728
    functionName: call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 10
    functionsReached:
    - FAIL_IF
    - EMIT_MOV
    - ADJUST_LOCAL_OFFSET
    - emit_sse2_load
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32
      arg_types, sljit_s32 *src_ptr, sljit_sw srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:735,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:736,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:736,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:738,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:738,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 746
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 8
    functionsReached:
    - check_sljit_emit_call
    - call_with_args
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - sljit_emit_jump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:752,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:753,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:753,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:755,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:755,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 763
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 15
    functionsReached:
    - FAIL_IF
    - CHECK
    - sljit_emit_ijump
    - CHECK_ERROR
    - call_with_args
    - check_sljit_emit_icall
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:769,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:770,1
    - Dst: check_sljit_emit_fast_enter
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:770,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:771,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:777,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:779,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:780,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:781,1
    - Dst: POP_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:782,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:786,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:787,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:788,1
    - Dst: POP_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:790,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:796,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 800
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 26
    functionsReached:
    - FAIL_IF
    - POP_REG
    - CHECK
    - emit_x86_instruction
    - FAST_IS_REG
    - CHECK_ERROR
    - check_sljit_emit_fast_enter
    - ADJUST_LOCAL_OFFSET
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:806,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:808,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:809,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:811,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:812,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:815,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:816,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:818,1
    - Dst: PUSH_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:820,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:826,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:827,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:831,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:832,1
    - Dst: INC_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:833,1
    - Dst: RET
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - compiler
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 838
    functionName: emit_fast_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - emit_x86_instruction
    - FAST_IS_REG
    - PUSH_REG
    - RET
    - INC_SIZE
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_fast_return(struct sljit_compiler *compiler, sljit_s32
      src, sljit_sw srcw)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:857,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:859,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:860,1
    - Dst: emit_load_imm64
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:864,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:867,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:868,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:874,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:876,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:880,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:881,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:885,1
    - Dst: emit_mov
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:885,1
    - Dst: emit_x86_instruction
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:892,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:893,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 6
    argNames:
    - compiler
    - sign
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 899
    functionName: emit_mov_int
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - emit_load_imm64
    - emit_mov
    - emit_x86_instruction
    - FAST_IS_REG
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_mov_int(struct sljit_compiler *compiler, sljit_s32
      sign,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has_shadow_stack
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:906,1
    - Dst: adjust_shadow_stack
      Src: /src/pcre2/src/sljit/sljitNativeX86_64.c:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 901
    functionDepth: 3
    functionLinenumber: 901
    functionLinenumberEnd: 918
    functionName: skip_frames_before_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeX86_64.c
    functionUses: 1
    functionsReached:
    - cpu_has_shadow_stack
    - adjust_shadow_stack
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 skip_frames_before_return(struct sljit_compiler *compiler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:30,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:30,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:30,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:30,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:30,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:32,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:32,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:32,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:32,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:33,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:33,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:33,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - compiler
    - dst
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: load_immediate
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_32.c
    functionUses: 28
    functionsReached:
    - FAIL_IF
    - IMM
    - DR
    - S1
    - push_inst
    - D
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32
      dst, sljit_sw imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - flags
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: ARG2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_32.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG2(flags, src2)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:41,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:48,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:50,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:50,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:50,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:50,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:50,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:55,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:58,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:58,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:58,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:58,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:58,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:59,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:59,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:59,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:59,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:59,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:59,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:60,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:60,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:60,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:60,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:60,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:63,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:68,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:70,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:70,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:70,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:70,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:70,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:70,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:71,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:71,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:71,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:71,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:71,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:74,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:78,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:79,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:79,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:79,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:79,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:79,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:82,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:83,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:83,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:83,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:83,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:83,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:84,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:84,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:84,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:84,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:84,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:84,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:85,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:85,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:85,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:86,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:86,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:86,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:86,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:86,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:87,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:87,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:87,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:87,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:87,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:87,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:90,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:90,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:90,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:90,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:90,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:91,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:91,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:91,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:91,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:91,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:91,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:92,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:92,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:92,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:93,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:93,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:93,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:93,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:97,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:97,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:97,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:97,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:97,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:100,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:100,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:100,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:100,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:100,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:104,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:104,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:104,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:104,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:104,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:107,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:107,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:107,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:107,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:107,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:111,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:111,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:111,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:111,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:111,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:111,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:114,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:114,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:114,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:114,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:114,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:114,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:115,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:115,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:115,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:115,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:116,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:116,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:116,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:116,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:119,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:119,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:119,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:119,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:119,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:122,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:122,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:122,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:122,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:122,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:125,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:125,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:125,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:125,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:125,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:128,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:128,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:128,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:128,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:128,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:128,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:129,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:129,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:129,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:129,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:132,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:132,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:132,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:132,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:132,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:132,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:133,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:133,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:133,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:133,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:136,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:136,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:136,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:136,1
    - Dst: ARG2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:136,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:136,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:137,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:137,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:137,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:137,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:140,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 83
    argCount: 6
    argNames:
    - compiler
    - op
    - flags
    - dst
    - src1
    - src2
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 142
    functionName: emit_single_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_32.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - IMM
    - S2
    - DR
    - DA
    - SLJIT_COMPILE_ASSERT
    - SLJIT_UNREACHABLE
    - ARG2
    - S1
    - push_inst
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_single_op(struct sljit_compiler *compiler, sljit_s32
      op, sljit_s32 flags,\n\tsljit_s32 dst, sljit_s32 src1, sljit_sw src2)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:188,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:188,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:188,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:188,1
    - Dst: S2A
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:188,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:188,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:201,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:201,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:201,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:201,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:201,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:207,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:207,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:207,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:207,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:207,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:208,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:208,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:208,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:208,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:208,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:211,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:211,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:211,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:211,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:211,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:228,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:228,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:228,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:228,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:228,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:235,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:235,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:235,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:235,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:235,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:237,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:237,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:237,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:237,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:237,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:240,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:240,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:240,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:240,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:240,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:250,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:250,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:250,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:250,1
    - Dst: S2A
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:250,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:252,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:252,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:252,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:252,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:252,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 91
    argCount: 3
    argNames:
    - compiler
    - arg_types
    - src
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 261
    functionName: call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_32.c
    functionUses: 12
    functionsReached:
    - FAIL_IF
    - IMM
    - S2A
    - DR
    - FD
    - DA
    - S1
    - push_inst
    - D
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 call_with_args(struct sljit_compiler *compiler, sljit_s32
      arg_types, sljit_s32 *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:265,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:265,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:265,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:265,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:266,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:266,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:266,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - compiler
    - dst
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_32.c
    functionUses: 15
    functionsReached:
    - FAIL_IF
    - DR
    - S1
    - push_inst
    - D
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_const(struct sljit_compiler *compiler, sljit_s32
      dst, sljit_sw init_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:272,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:274,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:275,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:278,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:279,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_32.c
    functionUses: 7
    functionsReached:
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_CACHE_FLUSH
    - SLJIT_UNUSED_ARG
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sljit_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_32.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_32.c
    functionUses: 0
    functionsReached:
    - sljit_set_jump_addr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: sljit_get_platform_name
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_get_platform_name(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - sljit_ins*
    - sljit_ins*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 85
    functionName: sparc_cache_flush
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached:
    - SLJIT_UNLIKELY
    linkageType: ''
    returnType: void
    signature: void sparc_cache_flush(sljit_ins *from, sljit_ins *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: D
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 132
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: FD
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FD(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: FDN
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDN(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: DA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DA(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: S1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S1(s1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: FS1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FS1(s1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: S1A
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S1A(s1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: S2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S2(s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: FS2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FS2(s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: FS2N
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FS2N(s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: S2A
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S2A(s2)
  - 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: DOP
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOP(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - imm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMM(imm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: DR
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DR(dr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: OPC1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPC1(opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: OPC2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPC2(opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: OPC3
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPC3(opcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:207,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:210,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - compiler
    - ins
    - delay_slot
    argTypes:
    - struct sljit_compiler*
    - sljit_ins
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 216
    functionName: push_inst
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 119
    functionsReached:
    - FAIL_IF
    - ensure_buf
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_ins ins,
      sljit_s32 delay_slot)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:231,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:270,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:284,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 4
    argNames:
    - jump
    - code_ptr
    - code
    - executable_offset
    argTypes:
    - struct sljit_jump*
    - sljit_ins*
    - sljit_ins*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 291
    functionName: detect_jump_type
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 4
    functionsReached:
    - DA
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE * detect_jump_type(struct sljit_jump *jump, sljit_ins
      *code_ptr, sljit_ins *code, sljit_sw executable_offset)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:310,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:311,1
    - Dst: check_sljit_generate_code
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:311,1
    - Dst: reverse_buf
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:312,1
    - Dst: SLJIT_MALLOC_EXEC
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:314,1
    - Dst: PTR_FAIL_WITH_EXEC_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:315,1
    - Dst: SLJIT_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:321,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:334,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:335,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:336,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:337,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:342,1
    - Dst: detect_jump_type
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:352,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:361,1
    - Dst: compute_next_addr
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:365,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:375,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:380,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:381,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:382,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:383,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:384,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:393,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:394,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:399,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:400,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:407,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:423,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:436,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:437,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:439,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:440,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 442
    functionName: sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 8
    functionsReached:
    - PTR_FAIL_WITH_EXEC_IF
    - SLJIT_MALLOC_EXEC
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_EXEC_OFFSET
    - compute_next_addr
    - CHECK_PTR
    - SLJIT_CACHE_FLUSH
    - reverse_buf
    - detect_jump_type
    - check_sljit_generate_code
    - CHECK_ERROR_PTR
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - feature_type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 466
    functionName: sljit_has_cpu_feature
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_has_cpu_feature(sljit_s32 feature_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:510,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:511,1
    - Dst: check_sljit_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:511,1
    - Dst: set_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:512,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:518,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:518,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:518,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:518,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:518,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:521,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:521,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:522,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:522,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:522,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:522,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 528
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 9
    functionsReached:
    - FAIL_IF
    - IMM
    - S2
    - check_sljit_emit_enter
    - CHECK
    - set_emit_enter
    - load_immediate
    - S1
    - CHECK_ERROR
    - push_inst
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:534,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:535,1
    - Dst: check_sljit_set_context
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:535,1
    - Dst: set_set_context
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 540
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 8
    functionsReached:
    - CHECK
    - set_set_context
    - check_sljit_set_context
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:544,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:545,1
    - Dst: check_sljit_emit_return
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:545,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:547,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:548,1
    - Dst: emit_mov_before_return
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:548,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:552,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:552,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:552,1
    - Dst: S1A
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:552,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:552,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:553,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:553,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:553,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 554
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 9
    functionsReached:
    - FAIL_IF
    - IMM
    - S2
    - S1A
    - CHECK
    - S1
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - emit_mov_before_return
    - check_sljit_emit_return
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - 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: 562
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 562
    functionName: ARCH_32_64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCH_32_64(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: 564
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 564
    functionName: ARCH_32_64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCH_32_64(a, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:596,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:601,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:603,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:603,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:604,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:604,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:605,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:605,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:605,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:605,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:606,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 5
    argNames:
    - compiler
    - flags
    - reg
    - arg
    - argw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 610
    functionName: getput_arg_fast
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 4
    functionsReached:
    - FAIL_IF
    - IMM
    - S2
    - DR
    - FD
    - SLJIT_UNLIKELY
    - S1
    - OFFS_REG
    - push_inst
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 getput_arg_fast(struct sljit_compiler *compiler, sljit_s32
      flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:617,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - arg
    - argw
    - next_arg
    - next_argw
    argTypes:
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 632
    functionName: can_cache
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 2
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 can_cache(sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg,
      sljit_sw next_argw)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:640,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:647,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:659,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:663,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:663,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:663,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:663,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:663,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:663,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:670,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:670,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:670,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:670,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:670,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:670,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:684,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:684,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:688,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:688,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:689,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:691,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:691,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:691,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:692,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:692,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:692,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 7
    argNames:
    - compiler
    - flags
    - reg
    - arg
    - argw
    - next_arg
    - next_argw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 693
    functionName: getput_arg
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - IMM
    - S2
    - DR
    - FD
    - load_immediate
    - SLJIT_UNLIKELY
    - OFFS_REG
    - S1
    - push_inst
    - SLJIT_ASSERT
    - D
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 getput_arg(struct sljit_compiler *compiler, sljit_s32 flags,
      sljit_s32 reg, sljit_s32 arg, sljit_sw argw, sljit_s32 next_arg, sljit_sw next_argw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:697,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - compiler
    - flags
    - reg
    - arg
    - argw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 702
    functionName: emit_op_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 34
    functionsReached:
    - getput_arg_fast
    - getput_arg
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_op_mem(struct sljit_compiler *compiler, sljit_s32
      flags, sljit_s32 reg, sljit_s32 arg, sljit_sw argw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:706,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - compiler
    - flags
    - reg
    - arg1
    - arg1w
    - arg2
    - arg2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 709
    functionName: emit_op_mem2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 7
    functionsReached:
    - getput_arg_fast
    - getput_arg
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_op_mem2(struct sljit_compiler *compiler, sljit_s32
      flags, sljit_s32 reg, sljit_s32 arg1, sljit_sw arg1w, sljit_s32 arg2, sljit_sw
      arg2w)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:731,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:737,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:763,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:767,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:767,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:774,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:775,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:782,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:791,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:791,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:802,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:803,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:810,1
    - Dst: can_cache
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:811,1
    - Dst: can_cache
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:811,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:812,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:812,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:813,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:813,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:816,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:816,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:817,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:817,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:821,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:821,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:823,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:823,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:825,1
    - Dst: emit_single_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:825,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:829,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:832,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 92
    argCount: 9
    argNames:
    - compiler
    - op
    - flags
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 836
    functionName: emit_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 13
    functionsReached:
    - FAIL_IF
    - can_cache
    - load_immediate
    - FAST_IS_REG
    - getput_arg
    - emit_single_op
    - getput_arg_fast
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32
      flags,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:840,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:841,1
    - Dst: check_sljit_emit_op0
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:841,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:843,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:846,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:848,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:852,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:852,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:852,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:852,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:852,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:852,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:853,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:853,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:853,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:861,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:864,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:864,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:864,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:866,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:866,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:866,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:866,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:866,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:866,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:867,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:867,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:867,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:870,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:870,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:870,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:870,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:870,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:870,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:871,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:871,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:871,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:871,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:871,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:871,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:874,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:874,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:874,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:874,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:874,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:874,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:875,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:875,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:875,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:875,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:875,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 885
    functionName: sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 10
    functionsReached:
    - FAIL_IF
    - IMM
    - S2
    - DR
    - CHECK
    - SLJIT_COMPILE_ASSERT
    - S1
    - check_sljit_emit_op0
    - CHECK_ERROR
    - push_inst
    - GET_OPCODE
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op0(struct sljit_compiler *compiler,
      sljit_s32 op)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:891,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:893,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:894,1
    - Dst: check_sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:894,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:895,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:896,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:898,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:902,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:905,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:908,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:911,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:914,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:917,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:920,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:924,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 931
    functionName: sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 10
    functionsReached:
    - HAS_FLAGS
    - emit_op
    - CHECK
    - CHECK_ERROR
    - GET_OPCODE
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_op1
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:938,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:940,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:941,1
    - Dst: check_sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:941,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:942,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:943,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:944,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:946,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:949,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:957,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:961,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:970,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:972,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 976
    functionName: sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 12
    functionsReached:
    - HAS_FLAGS
    - emit_op
    - CHECK
    - SLJIT_UNREACHABLE
    - CHECK_ERROR
    - check_sljit_emit_op2
    - GET_OPCODE
    - ADJUST_LOCAL_OFFSET
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:981,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:982,1
    - Dst: check_sljit_emit_op_src
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:982,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:983,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:987,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:988,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:988,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:988,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:988,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:988,1
    - Dst: DR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:988,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:990,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:990,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:992,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:992,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:992,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:992,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:992,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 1003
    functionName: sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 7
    functionsReached:
    - FAIL_IF
    - IMM
    - S2
    - DR
    - CHECK
    - check_sljit_emit_op_src
    - S1
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_src(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1007,1
    - Dst: check_sljit_get_register_index
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1009
    functionName: sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 19
    functionsReached:
    - check_sljit_get_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1013,1
    - Dst: check_sljit_get_float_register_index
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1015
    functionName: sljit_get_float_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 7
    functionsReached:
    - check_sljit_get_float_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_float_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1020,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1021,1
    - Dst: check_sljit_emit_op_custom
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1021,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1024
    functionName: sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 18
    functionsReached:
    - check_sljit_emit_op_custom
    - CHECK
    - push_inst
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1031
    functionName: FLOAT_DATA
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLOAT_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - single
    - ','
    - double
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1032
    functionName: SELECT_FOP
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SELECT_FOP(op, single, double)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1039,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1039,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1039,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1043,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1043,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1043,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1043,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1043,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1045,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1046,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1046,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1046,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1046,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1047,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1047,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1047,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1052
    functionName: sljit_emit_fop1_conv_sw_from_f64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - FD
    - SLJIT_MEM1
    - FAST_IS_REG
    - push_inst
    - emit_op_mem2
    - SELECT_FOP
    - FLOAT_DATA
    - FS2
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1058,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1062,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1065,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1065,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1070,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1071,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1071,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1071,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1071,1
    - Dst: SLJIT_MEM1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1072,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1076,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1076,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1077,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1077,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1077,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1077,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1077,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1080,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1080,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1082
    functionName: sljit_emit_fop1_conv_f64_from_sw
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - FD
    - load_immediate
    - SLJIT_MEM1
    - FAST_IS_REG
    - push_inst
    - GET_OPCODE
    - emit_op_mem2
    - SELECT_FOP
    - FS2
    - FLOAT_DATA
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1089,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1089,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1089,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1094,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1094,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1094,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1098,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1098,1
    - Dst: FS1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1098,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - compiler
    - op
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1099
    functionName: sljit_emit_fop1_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - push_inst
    - emit_op_mem2
    - SELECT_FOP
    - FLOAT_DATA
    - FS2
    - FS1
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_cmp(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1107,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1111,1
    - Dst: SELECT_FOP1_OPERATION_WITH_CHECKS
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1112,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1114,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1117,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1120,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1120,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1120,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1124,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1128,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1128,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1128,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1128,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1130,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1130,1
    - Dst: FDN
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1130,1
    - Dst: FS2N
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1130,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1137,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1137,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1137,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1137,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1139,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1139,1
    - Dst: FDN
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1139,1
    - Dst: FS2N
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1139,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1142,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1142,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1142,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1142,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1144,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1144,1
    - Dst: FDN
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1144,1
    - Dst: FS2N
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1144,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1147,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1147,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1147,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1147,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1147,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1153,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1153,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1153,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1155
    functionName: sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - SELECT_FOP1_OPERATION_WITH_CHECKS
    - FD
    - FDN
    - SLJIT_COMPILE_ASSERT
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - GET_OPCODE
    - emit_op_mem2
    - FLOAT_DATA
    - FS2
    - SELECT_FOP
    - FS2N
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1164,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1165,1
    - Dst: check_sljit_emit_fop2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1165,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1166,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1167,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1168,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1173,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1176,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1176,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1177,1
    - Dst: getput_arg_fast
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1184,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1184,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1185,1
    - Dst: can_cache
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1192,1
    - Dst: can_cache
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1192,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1193,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1193,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1193,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1194,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1194,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1194,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1197,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1197,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1197,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1198,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1198,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1198,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1202,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1202,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1202,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1204,1
    - Dst: getput_arg
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1204,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1204,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1211,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1213,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1213,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1213,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1213,1
    - Dst: FS1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1213,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1213,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1217,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1217,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1217,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1217,1
    - Dst: FS1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1217,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1217,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1221,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1221,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1221,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1221,1
    - Dst: FS1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1221,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1221,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1225,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1225,1
    - Dst: SELECT_FOP
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1225,1
    - Dst: FD
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1225,1
    - Dst: FS1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1225,1
    - Dst: FS2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1225,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1230,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1230,1
    - Dst: FLOAT_DATA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1230,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1233
    functionName: sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 6
    functionsReached:
    - FAIL_IF
    - FS2
    - FD
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - getput_arg
    - GET_OPCODE
    - emit_op_mem2
    - FLOAT_DATA
    - ADJUST_LOCAL_OFFSET
    - getput_arg_fast
    - SELECT_FOP
    - can_cache
    - FS1
    - check_sljit_emit_fop2
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1244,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1245,1
    - Dst: check_sljit_emit_fast_enter
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1245,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1246,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1248,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1249,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1249,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1249,1
    - Dst: S2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1249,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1252,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1255
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 27
    functionsReached:
    - FAIL_IF
    - S2
    - CHECK
    - S1
    - FAST_IS_REG
    - CHECK_ERROR
    - check_sljit_emit_fast_enter
    - push_inst
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1265,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1266,1
    - Dst: check_sljit_emit_label
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1266,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1271,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1272,1
    - Dst: set_label
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1261
    functionDepth: 2
    functionLinenumber: 1261
    functionLinenumberEnd: 1276
    functionName: sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 8
    functionsReached:
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - set_label
    - ensure_abuf
    - check_sljit_emit_label
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_label(struct sljit_compiler *compiler)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1283,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1287,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1291,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1295,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1299,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1303,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1306,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1309,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1312,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1315,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1319,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1322,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1326,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1329,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1332,1
    - Dst: DA
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1335
    functionName: get_cc
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 9
    functionsReached:
    - DA
    - SLJIT_UNREACHABLE
    linkageType: ''
    returnType: sljit_ins
    signature: sljit_ins get_cc(struct sljit_compiler *compiler, sljit_s32 type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1341,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1342,1
    - Dst: check_sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1342,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1344,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1345,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1346,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1354,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1354,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1354,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1364,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1364,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1364,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1376,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1376,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1377,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1377,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1377,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1377,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1377,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1379,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1382
    functionName: sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 16
    functionsReached:
    - set_jump
    - IMM
    - check_sljit_emit_jump
    - S1
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - emit_const
    - CHECK_ERROR_PTR
    - ensure_abuf
    - D
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_jump(struct sljit_compiler *compiler,
      sljit_s32 type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1387,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1388,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1388,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1390,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1390,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1384
    functionDepth: 1
    functionLinenumber: 1384
    functionLinenumberEnd: 1398
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 9
    functionsReached:
    - check_sljit_emit_call
    - call_with_args
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - sljit_emit_jump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1405,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1406,1
    - Dst: check_sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1406,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1407,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1409,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1412,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1413,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1414,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1422,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1422,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1426,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1426,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1430,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1430,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1430,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1430,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1430,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1434
    functionName: sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 16
    functionsReached:
    - FAIL_IF
    - D
    - set_jump
    - IMM
    - CHECK
    - S1
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - emit_op_mem
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - ensure_abuf
    - check_sljit_emit_ijump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_ijump(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 src, sljit_sw srcw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1440,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1441,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1441,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1444,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1445,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1445,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1449,1
    - Dst: call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1449,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1436
    functionDepth: 1
    functionLinenumber: 1436
    functionLinenumberEnd: 1457
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 16
    functionsReached:
    - FAIL_IF
    - CHECK
    - sljit_emit_ijump
    - CHECK_ERROR
    - call_with_args
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_icall
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1463,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1465,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1466,1
    - Dst: check_sljit_emit_op_flags
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1466,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1467,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1470,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1471,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1477,1
    - Dst: emit_op_mem2
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1477,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1481,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1481,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1481,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1483,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1483,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1483,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1485,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1485,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1485,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1485,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1485,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1486,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1486,1
    - Dst: D
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1486,1
    - Dst: S1
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1486,1
    - Dst: IMM
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1486,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1491,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1492,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1498,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1502
    functionName: sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 7
    functionsReached:
    - HAS_FLAGS
    - FAIL_IF
    - emit_op
    - IMM
    - check_sljit_emit_op_flags
    - CHECK
    - S1
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - GET_OPCODE
    - emit_op_mem2
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - get_cc
    - D
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1508,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1509,1
    - Dst: check_sljit_emit_cmov
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1509,1
    - Dst: sljit_emit_cmov_generic
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1516
    functionName: sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 7
    functionsReached:
    - CHECK
    - check_sljit_emit_cmov
    - sljit_emit_cmov_generic
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_cmov(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1523,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1524,1
    - Dst: check_sljit_emit_const
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1524,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1525,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1527,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1528,1
    - Dst: set_const
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1529,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1531,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1532,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1532,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1535,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1537
    functionName: sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 7
    functionsReached:
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - set_const
    - check_sljit_emit_const
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - emit_op_mem
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_const(struct sljit_compiler *compiler,
      sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1544,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1545,1
    - Dst: check_sljit_emit_put_label
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1545,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1546,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1548,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1549,1
    - Dst: set_put_label
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1550,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1552,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1553,1
    - Dst: emit_const
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1553,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1556,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeSPARC_common.c:1556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1539
    functionDepth: 2
    functionLinenumber: 1539
    functionLinenumberEnd: 1558
    functionName: sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
    functionUses: 10
    functionsReached:
    - set_put_label
    - check_sljit_emit_put_label
    - FAST_IS_REG
    - CHECK_PTR
    - PTR_FAIL_IF
    - emit_op_mem
    - emit_const
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - ensure_abuf
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_put_label(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: SLJIT_ALLOCATOR_LOCK
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ALLOCATOR_LOCK()
  - 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: SLJIT_ALLOCATOR_UNLOCK
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ALLOCATOR_UNLOCK()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitUtils.c:51,1
    - Dst: InterlockedCompareExchangePointer
      Src: /src/pcre2/src/sljit/sljitUtils.c:51,1
    - Dst: CreateMutex
      Src: /src/pcre2/src/sljit/sljitUtils.c:52,1
    - Dst: InterlockedCompareExchangePointer
      Src: /src/pcre2/src/sljit/sljitUtils.c:53,1
    - Dst: CloseHandle
      Src: /src/pcre2/src/sljit/sljitUtils.c:54,1
    - Dst: WaitForSingleObject
      Src: /src/pcre2/src/sljit/sljitUtils.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: allocator_grab_lock
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObject
    - InterlockedCompareExchangePointer
    - SLJIT_UNLIKELY
    - CloseHandle
    - CreateMutex
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE allocator_grab_lock(void)
  - 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: SLJIT_ALLOCATOR_LOCK
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ALLOCATOR_LOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: SLJIT_ALLOCATOR_UNLOCK
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLJIT_ALLOCATOR_UNLOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/pcre2/src/sljit/sljitUtils.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: open_dev_zero
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 1
    functionsReached:
    - open
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE open_dev_zero(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/pcre2/src/sljit/sljitUtils.c:115,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitUtils.c:116,1
    - Dst: open
      Src: /src/pcre2/src/sljit/sljitUtils.c:117,1
    - Dst: pthread_mutex_unlock
      Src: /src/pcre2/src/sljit/sljitUtils.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: open_dev_zero
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - SLJIT_UNLIKELY
    - open
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE open_dev_zero(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/pcre2/src/sljit/sljitUtils.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: get_page_alignment
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 4
    functionsReached:
    - GetSystemInfo
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE get_page_alignment(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/pcre2/src/sljit/sljitUtils.c:152,1
    - Dst: getpagesize
      Src: /src/pcre2/src/sljit/sljitUtils.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: get_page_alignment
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 4
    functionsReached:
    - getpagesize
    - sysconf
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE get_page_alignment(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitUtils.c:177,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitUtils.c:182,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitUtils.c:186,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitUtils.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - start_size
    - max_size
    - allocator_data
    argTypes:
    - sljit_uw
    - sljit_uw
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 197
    functionName: sljit_allocate_stack
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 1
    functionsReached:
    - SLJIT_MALLOC
    - SLJIT_FREE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * SLJIT_FUNC sljit_allocate_stack(sljit_uw
      start_size, sljit_uw max_size, void *allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitUtils.c:201,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitUtils.c:202,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitUtils.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - stack
    - allocator_data
    argTypes:
    - struct sljit_stack*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: sljit_free_stack
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 1
    functionsReached:
    - SLJIT_FREE
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_stack(struct sljit_stack *stack,
      void *allocator_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - stack
    - new_start
    argTypes:
    - struct sljit_stack*
    - sljit_u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: sljit_stack_resize
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE *SLJIT_FUNC sljit_stack_resize(struct sljit_stack
      *stack, sljit_u8 *new_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitUtils.c:220,1
    - Dst: VirtualFree
      Src: /src/pcre2/src/sljit/sljitUtils.c:221,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitUtils.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - stack
    - allocator_data
    argTypes:
    - struct sljit_stack*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: sljit_free_stack
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 1
    functionsReached:
    - SLJIT_FREE
    - VirtualFree
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_stack(struct sljit_stack *stack,
      void *allocator_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitUtils.c:229,1
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitUtils.c:230,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitUtils.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - stack
    - allocator_data
    argTypes:
    - struct sljit_stack*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: sljit_free_stack
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 1
    functionsReached:
    - SLJIT_FREE
    - munmap
    - SLJIT_UNUSED_ARG
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_stack(struct sljit_stack *stack,
      void *allocator_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitUtils.c:242,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitUtils.c:247,1
    - Dst: get_page_alignment
      Src: /src/pcre2/src/sljit/sljitUtils.c:252,1
    - Dst: VirtualAlloc
      Src: /src/pcre2/src/sljit/sljitUtils.c:256,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitUtils.c:258,1
    - Dst: sljit_stack_resize
      Src: /src/pcre2/src/sljit/sljitUtils.c:266,1
    - Dst: sljit_free_stack
      Src: /src/pcre2/src/sljit/sljitUtils.c:267,1
    - Dst: mmap
      Src: /src/pcre2/src/sljit/sljitUtils.c:272,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitUtils.c:274,1
    - Dst: open_dev_zero
      Src: /src/pcre2/src/sljit/sljitUtils.c:274,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitUtils.c:275,1
    - Dst: mmap
      Src: /src/pcre2/src/sljit/sljitUtils.c:278,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitUtils.c:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - start_size
    - max_size
    - allocator_data
    argTypes:
    - sljit_uw
    - sljit_uw
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 291
    functionName: sljit_allocate_stack
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 1
    functionsReached:
    - SLJIT_FREE
    - sljit_free_stack
    - sljit_stack_resize
    - VirtualAlloc
    - SLJIT_UNLIKELY
    - SLJIT_UNUSED_ARG
    - mmap
    - get_page_alignment
    - SLJIT_MALLOC
    - open_dev_zero
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * SLJIT_FUNC sljit_allocate_stack(sljit_uw
      start_size, sljit_uw max_size, void *allocator_data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_page_alignment
      Src: /src/pcre2/src/sljit/sljitUtils.c:305,1
    - Dst: VirtualAlloc
      Src: /src/pcre2/src/sljit/sljitUtils.c:311,1
    - Dst: VirtualFree
      Src: /src/pcre2/src/sljit/sljitUtils.c:315,1
    - Dst: get_page_alignment
      Src: /src/pcre2/src/sljit/sljitUtils.c:321,1
    - Dst: posix_madvise
      Src: /src/pcre2/src/sljit/sljitUtils.c:327,1
    - Dst: madvise
      Src: /src/pcre2/src/sljit/sljitUtils.c:329,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - stack
    - new_start
    argTypes:
    - struct sljit_stack*
    - sljit_u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 337
    functionName: sljit_stack_resize
    functionSourceFile: /src/pcre2/src/sljit/sljitUtils.c
    functionUses: 1
    functionsReached:
    - VirtualAlloc
    - posix_madvise
    - VirtualFree
    - madvise
    - get_page_alignment
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE *SLJIT_FUNC sljit_stack_resize(struct sljit_stack
      *stack, sljit_u8 *new_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: sljit_get_platform_name
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_get_platform_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: ALIGN_INSTRUCTION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_INSTRUCTION(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - max_diff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: MAX_DIFFERENCE
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_DIFFERENCE(max_diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: RM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RM(rm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: RD
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RD(rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: RN
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RN(rn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:151,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:152,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:153,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:158,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:159,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:167,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 175
    functionName: push_cpool
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - ensure_buf
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_cpool(struct sljit_compiler *compiler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:181,1
    - Dst: MAX_DIFFERENCE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:181,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:182,1
    - Dst: push_cpool
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:182,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:184,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - compiler
    - inst
    argTypes:
    - struct sljit_compiler*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: push_inst
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 135
    functionsReached:
    - FAIL_IF
    - push_cpool
    - SLJIT_UNLIKELY
    - MAX_DIFFERENCE
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_uw inst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:199,1
    - Dst: MAX_DIFFERENCE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:199,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:200,1
    - Dst: push_cpool
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:200,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:222,1
    - Dst: push_cpool
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:222,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:228,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:229,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:230,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - compiler
    - inst
    - literal
    argTypes:
    - struct sljit_compiler*
    - sljit_uw
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 239
    functionName: push_inst_with_literal
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - ensure_buf
    - push_cpool
    - SLJIT_UNLIKELY
    - MAX_DIFFERENCE
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst_with_literal(struct sljit_compiler *compiler, sljit_uw
      inst, sljit_uw literal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:244,1
    - Dst: MAX_DIFFERENCE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:244,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:245,1
    - Dst: push_cpool
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:245,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:247,1
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:248,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - compiler
    - inst
    - literal
    argTypes:
    - struct sljit_compiler*
    - sljit_uw
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 259
    functionName: push_inst_with_unique_literal
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - ensure_buf
    - push_cpool
    - SLJIT_UNLIKELY
    - MAX_DIFFERENCE
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst_with_unique_literal(struct sljit_compiler *compiler,
      sljit_uw inst, sljit_uw literal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:264,1
    - Dst: MAX_DIFFERENCE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:264,1
    - Dst: push_cpool
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: prepare_blx
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - MAX_DIFFERENCE
    - SLJIT_UNLIKELY
    - push_cpool
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE prepare_blx(struct sljit_compiler *compiler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:272,1
    - Dst: MAX_DIFFERENCE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:272,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:273,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:275,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: emit_blx
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - MAX_DIFFERENCE
    - push_inst
    - SLJIT_ASSERT
    - RM
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_blx(struct sljit_compiler *compiler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:286,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:300,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:309,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:312,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - last_pc_patch
    - code_ptr
    - const_pool
    - cpool_size
    argTypes:
    - sljit_uw*
    - sljit_uw*
    - sljit_uw*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 321
    functionName: patch_pc_relative_loads
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_uw
    signature: sljit_uw patch_pc_relative_loads(sljit_uw *last_pc_patch, sljit_uw
      *code_ptr, sljit_uw* const_pool, sljit_uw cpool_size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:335,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:354,1
    - Dst: SLJIT_MALLOC
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:364,1
    - Dst: SLJIT_FREE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:369,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 5
    argNames:
    - compiler
    - first_patch
    - cpool_current_index
    - cpool_start_address
    - buf_ptr
    argTypes:
    - struct sljit_compiler*
    - struct future_patch**
    - sljit_uw
    - sljit_uw*
    - sljit_uw*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 381
    functionName: resolve_const_pool_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - SLJIT_FREE
    - SLJIT_UNUSED_ARG
    - SLJIT_MALLOC
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 resolve_const_pool_index(struct sljit_compiler *compiler,
      struct future_patch **first_patch, sljit_uw cpool_current_index, sljit_uw *cpool_start_address,
      sljit_uw *buf_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ensure_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:389,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - compiler
    - inst
    argTypes:
    - struct sljit_compiler*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: push_inst
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 136
    functionsReached:
    - FAIL_IF
    - ensure_buf
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 push_inst(struct sljit_compiler *compiler, sljit_uw inst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:398,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:398,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:398,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:399,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - compiler
    - reg
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: emit_imm
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - push_inst
    - RD
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE emit_imm(struct sljit_compiler *compiler, sljit_s32 reg,
      sljit_sw imm)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:418,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:443,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - jump
    - code_ptr
    - code
    - executable_offset
    argTypes:
    - struct sljit_jump*
    - sljit_uw*
    - sljit_uw*
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 459
    functionName: detect_jump_type
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 5
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE detect_jump_type(struct sljit_jump *jump, sljit_uw *code_ptr,
      sljit_uw *code, sljit_sw executable_offset)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:467,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:470,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:476,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:480,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:481,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:482,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:486,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:491,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:492,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:493,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:505,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:510,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:511,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:512,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:515,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:517,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:518,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:519,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:525,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:531,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:537,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:539,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:542,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:549,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:550,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:551,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 4
    argNames:
    - jump_ptr
    - executable_offset
    - new_addr
    - flush_cache
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_uw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 554
    functionName: inline_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_CACHE_FLUSH
    - SLJIT_UNUSED_ARG
    - RM
    - RD
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE inline_set_jump_addr(sljit_uw jump_ptr, sljit_sw executable_offset,
      sljit_uw new_addr, sljit_s32 flush_cache)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:566,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:568,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:571,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:577,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:578,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:579,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:584,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:587,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:593,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:594,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:595,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:607,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:613,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:614,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:615,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:620,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:626,1
    - Dst: SLJIT_UNUSED_ARG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:631,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:633,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:636,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:643,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:644,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:645,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 4
    argNames:
    - addr
    - executable_offset
    - new_constant
    - flush_cache
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 648
    functionName: inline_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - SLJIT_ADD_EXEC_OFFSET
    - SLJIT_CACHE_FLUSH
    - SLJIT_UNUSED_ARG
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    - get_imm
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE inline_set_const(sljit_uw addr, sljit_sw executable_offset,
      sljit_sw new_constant, sljit_s32 flush_cache)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:676,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:677,1
    - Dst: check_sljit_generate_code
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:677,1
    - Dst: reverse_buf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:678,1
    - Dst: SLJIT_MALLOC_EXEC
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:688,1
    - Dst: PTR_FAIL_WITH_EXEC_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:689,1
    - Dst: SLJIT_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:704,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:712,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:728,1
    - Dst: resolve_const_pool_index
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:728,1
    - Dst: SLJIT_FREE_EXEC
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:729,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:735,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:739,1
    - Dst: compute_next_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:743,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:752,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:753,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:754,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:755,1
    - Dst: detect_jump_type
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:760,1
    - Dst: detect_jump_type
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:765,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:772,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:785,1
    - Dst: compute_next_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:789,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:797,1
    - Dst: ALIGN_INSTRUCTION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:798,1
    - Dst: patch_pc_relative_loads
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:799,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:814,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:815,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:816,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:817,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:820,1
    - Dst: ALIGN_INSTRUCTION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:822,1
    - Dst: patch_pc_relative_loads
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:823,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:831,1
    - Dst: resolve_const_pool_index
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:831,1
    - Dst: SLJIT_FREE_EXEC
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:832,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:839,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:848,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:850,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:851,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:855,1
    - Dst: inline_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:864,1
    - Dst: inline_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:867,1
    - Dst: inline_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:880,1
    - Dst: inline_set_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:899,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:912,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:915,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:922,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:928,1
    - Dst: SLJIT_ADD_EXEC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:929,1
    - Dst: SLJIT_CACHE_FLUSH
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:931,1
    - Dst: SLJIT_UPDATE_WX_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:932,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 196
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 934
    functionName: sljit_generate_code
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 9
    functionsReached:
    - SLJIT_FREE_EXEC
    - SLJIT_MALLOC_EXEC
    - inline_set_const
    - reverse_buf
    - resolve_const_pool_index
    - detect_jump_type
    - patch_pc_relative_loads
    - PTR_FAIL_WITH_EXEC_IF
    - compute_next_addr
    - CHECK_PTR
    - SLJIT_CACHE_FLUSH
    - SLJIT_ADD_EXEC_OFFSET
    - inline_set_jump_addr
    - SLJIT_EXEC_OFFSET
    - ALIGN_INSTRUCTION
    - SLJIT_UNLIKELY
    - check_sljit_generate_code
    - CHECK_ERROR_PTR
    - SLJIT_ASSERT
    - SLJIT_UPDATE_WX_FLAGS
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_generate_code(struct sljit_compiler
      *compiler)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - feature_type
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 957
    functionName: sljit_has_cpu_feature
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_has_cpu_feature(sljit_s32 feature_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - add
    - ','
    - target_reg
    - ','
    - base_reg
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1003
    functionName: EMIT_DATA_TRANSFER
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_DATA_TRANSFER(type, add, target_reg, base_reg, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1008
    functionName: IS_TYPE1_TRANSFER
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_TYPE1_TRANSFER(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - imm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1010
    functionName: TYPE2_TRANSFER_IMM
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE2_TRANSFER_IMM(imm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1023,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1024,1
    - Dst: check_sljit_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1024,1
    - Dst: set_emit_enter
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1025,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1038,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1038,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1041,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1045,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1045,1
    - Dst: get_arg_count
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1047,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1050,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1050,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1050,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1050,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1052,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1052,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1052,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1052,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1054,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1054,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1054,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1054,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1057
    functionName: sljit_emit_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 10
    functionsReached:
    - FAIL_IF
    - emit_op
    - check_sljit_emit_enter
    - CHECK
    - set_emit_enter
    - CHECK_ERROR
    - push_inst
    - get_arg_count
    - GET_SAVED_REGISTERS_SIZE
    - RM
    - RD
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_enter(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1065,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1066,1
    - Dst: check_sljit_set_context
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1066,1
    - Dst: set_set_context
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1067,1
    - Dst: GET_SAVED_REGISTERS_SIZE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - compiler
    - options
    - arg_types
    - scratches
    - saveds
    - fscratches
    - fsaveds
    - local_size
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1072
    functionName: sljit_set_context
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 9
    functionsReached:
    - set_set_context
    - CHECK
    - check_sljit_set_context
    - CHECK_ERROR
    - GET_SAVED_REGISTERS_SIZE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_set_context(struct sljit_compiler *compiler,\n\tsljit_s32
      options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds,\n\tsljit_s32
      fscratches, sljit_s32 fsaveds, sljit_s32 local_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1079,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1080,1
    - Dst: check_sljit_emit_return
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1080,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1082,1
    - Dst: emit_mov_before_return
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1082,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1085,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1085,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1099
    functionName: sljit_emit_return
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 10
    functionsReached:
    - FAIL_IF
    - emit_op
    - CHECK
    - CHECK_ERROR
    - push_inst
    - emit_mov_before_return
    - check_sljit_emit_return
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_return(struct sljit_compiler *compiler,
      sljit_s32 op, sljit_s32 src, sljit_sw srcw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1135
    functionName: EMIT_SHIFT_INS_AND_RETURN
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_SHIFT_INS_AND_RETURN(opcode)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1139,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1141,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1144,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1144,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1146,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1146,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1146,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1152,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1156,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1156,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1156,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1157,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1157,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1157,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1157,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1158,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1158,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1158,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1160,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1160,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1160,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1164,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1165,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1165,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1171,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1174,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1174,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1174,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1174,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1175,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1175,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1175,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1177,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1177,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1177,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1181,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1182,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1182,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1188,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1188,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1190,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1190,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1190,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1193,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1194,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1195,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1195,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1195,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1195,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1199,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1203,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1203,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1203,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1204,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1204,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1204,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1204,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1207,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1208,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1208,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1208,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1208,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1211,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1215,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1215,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1215,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1216,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1217,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1217,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1217,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1220,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1221,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1222,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1222,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1222,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1225,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1226,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1229,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1230,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1232,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1232,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1235,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1235,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1235,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1238,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1239,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1239,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1239,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1242,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1243,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1243,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1243,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1243,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1246,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1247,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1247,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1247,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1247,1
    - Dst: EMIT_SHIFT_INS_AND_RETURN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1250,1
    - Dst: EMIT_SHIFT_INS_AND_RETURN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1253,1
    - Dst: EMIT_SHIFT_INS_AND_RETURN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1256,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1259,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 92
    argCount: 6
    argNames:
    - compiler
    - op
    - flags
    - dst
    - src1
    - src2
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1261
    functionName: emit_single_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 3
    functionsReached:
    - FAIL_IF
    - RN
    - HAS_FLAGS
    - SLJIT_UNREACHABLE
    - push_inst
    - GET_OPCODE
    - EMIT_SHIFT_INS_AND_RETURN
    - RM
    - RD
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_single_op(struct sljit_compiler *compiler, sljit_s32
      op, sljit_s32 flags,\n\tsljit_s32 dst, sljit_s32 src1, sljit_s32 src2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - imm
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1302
    functionName: get_imm
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: sljit_uw
    signature: sljit_uw get_imm(sljit_uw imm)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1348,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1410,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1410,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1410,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1411,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1411,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1411,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1411,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 80
    argCount: 4
    argNames:
    - compiler
    - reg
    - imm
    - positive
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_uw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1413
    functionName: generate_int
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - RD
    - push_inst
    - SLJIT_ASSERT
    - RN
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 generate_int(struct sljit_compiler *compiler, sljit_s32 reg,
      sljit_uw imm, sljit_s32 positive)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1422,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1422,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1426,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1428,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1428,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1430,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1432,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1432,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1436,1
    - Dst: generate_int
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1436,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1437,1
    - Dst: generate_int
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1437,1
    - Dst: push_inst_with_literal
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1440,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1440,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1442,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1442,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1442,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1445,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - compiler
    - reg
    - imm
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1416
    functionDepth: 4
    functionLinenumber: 1416
    functionLinenumberEnd: 1447
    functionName: load_immediate
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 32
    functionsReached:
    - FAIL_IF
    - EMIT_DATA_TRANSFER
    - push_inst_with_literal
    - push_inst
    - RD
    - generate_int
    - get_imm
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32
      reg, sljit_uw imm)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: IS_TYPE1_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1453,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1455,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1456,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1460,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1460,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1464,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1464,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1468,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1468,1
    - Dst: TYPE2_TRANSFER_IMM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1469,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1473,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1478,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1478,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1478,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1478,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1478,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1479,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1479,1
    - Dst: TYPE2_TRANSFER_IMM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1479,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1483,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1483,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1484,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1491,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1493,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1493,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1493,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1493,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1499,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1501,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1501,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1501,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1501,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1508,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1508,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1511,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1511,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1515,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1517,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1517,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1517,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1517,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1523,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1525,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1525,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1525,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1525,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1532,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1532,1
    - Dst: TYPE2_TRANSFER_IMM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1532,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1536,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1536,1
    - Dst: TYPE2_TRANSFER_IMM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1536,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1540,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1540,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1541,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1541,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1542,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 6
    argNames:
    - compiler
    - flags
    - reg
    - arg
    - argw
    - tmp_reg
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1543
    functionName: emit_op_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 41
    functionsReached:
    - FAIL_IF
    - RN
    - EMIT_DATA_TRANSFER
    - load_immediate
    - OFFS_REG
    - push_inst
    - IS_TYPE1_TRANSFER
    - RM
    - RD
    - TYPE2_TRANSFER_IMM
    - SLJIT_ASSERT
    - get_imm
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE emit_op_mem(struct sljit_compiler *compiler, sljit_s32
      flags, sljit_s32 reg,\n\tsljit_s32 arg, sljit_sw argw, sljit_s32 tmp_reg)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1558,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1561,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1564,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1573,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1577,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1583,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1584,1
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1586,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1590,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1591,1
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1593,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1600,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1608,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1616,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1617,1
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1622,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1630,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1633,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1633,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1637,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1637,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1642,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1649,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1650,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1653,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1661,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1664,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1664,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1666,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1666,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1669,1
    - Dst: emit_single_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1669,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1674,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 94
    argCount: 9
    argNames:
    - compiler
    - op
    - inp_flags
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1675
    functionName: emit_op
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 18
    functionsReached:
    - HAS_FLAGS
    - FAIL_IF
    - SLOW_IS_REG
    - load_immediate
    - GET_ALL_FLAGS
    - SLJIT_UNLIKELY
    - FAST_IS_REG
    - GET_OPCODE
    - emit_op_mem
    - emit_single_op
    - SLJIT_ASSERT
    - get_imm
    linkageType: ''
    returnType: sljit_s32
    signature: "sljit_s32 emit_op(struct sljit_compiler *compiler, sljit_s32 op, sljit_s32
      inp_flags,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1697,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1698,1
    - Dst: check_sljit_emit_op0
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1698,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1700,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1703,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1703,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1706,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1706,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1710,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1719,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1720,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1731,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1731,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1734,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1735,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1735,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1738,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1739,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1739,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1744,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1744,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1745,1
    - Dst: SLJIT_FUNC_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1745,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1752,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1753,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1753,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1756,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1757,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1757,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1759,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 2
    argNames:
    - compiler
    - op
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1769
    functionName: sljit_emit_op0
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 11
    functionsReached:
    - FAIL_IF
    - SLJIT_FUNC_OFFSET
    - CHECK
    - SLJIT_COMPILE_ASSERT
    - sljit_emit_ijump
    - check_sljit_emit_op0
    - CHECK_ERROR
    - push_inst
    - GET_OPCODE
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op0(struct sljit_compiler *compiler,
      sljit_s32 op)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1775,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1776,1
    - Dst: check_sljit_emit_op1
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1776,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1777,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1778,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1780,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1785,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1788,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1791,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1794,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1797,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1800,1
    - Dst: sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1807,1
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1807,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1814
    functionName: sljit_emit_op1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 11
    functionsReached:
    - emit_op
    - CHECK
    - GET_ALL_FLAGS
    - CHECK_ERROR
    - sljit_emit_op2
    - GET_OPCODE
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_op1
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1821,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1822,1
    - Dst: check_sljit_emit_op2
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1822,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1823,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1824,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1825,1
    - Dst: HAS_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1827,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1830,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1837,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1840,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1843,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1850,1
    - Dst: emit_op
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1854,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1816
    functionDepth: 1
    functionLinenumber: 1816
    functionLinenumberEnd: 1859
    functionName: sljit_emit_op2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 14
    functionsReached:
    - HAS_FLAGS
    - emit_op
    - CHECK
    - CHECK_ERROR
    - check_sljit_emit_op2
    - GET_OPCODE
    - ADJUST_LOCAL_OFFSET
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1864,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1865,1
    - Dst: check_sljit_emit_op_src
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1865,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1866,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1870,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1872,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1873,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1873,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1873,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1873,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1875,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1875,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1877,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1877,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1885,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - compiler
    - op
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1893
    functionName: sljit_emit_op_src
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 8
    functionsReached:
    - FAIL_IF
    - CHECK
    - check_sljit_emit_op_src
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - emit_op_mem
    - RM
    - ADJUST_LOCAL_OFFSET
    - RD
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_src(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1897,1
    - Dst: check_sljit_get_register_index
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1899
    functionName: sljit_get_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 20
    functionsReached:
    - check_sljit_get_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_REG_INDEX
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1903,1
    - Dst: check_sljit_get_float_register_index
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1901
    functionDepth: 1
    functionLinenumber: 1901
    functionLinenumberEnd: 1905
    functionName: sljit_get_float_register_index
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 8
    functionsReached:
    - check_sljit_get_float_register_index
    - CHECK_REG_INDEX
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_get_float_register_index(sljit_s32 reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1910,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1911,1
    - Dst: check_sljit_emit_op_custom
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1911,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - compiler
    - instruction
    - size
    argTypes:
    - struct sljit_compiler*
    - void*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1914
    functionName: sljit_emit_op_custom
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 19
    functionsReached:
    - check_sljit_emit_op_custom
    - CHECK
    - push_inst
    - CHECK_ERROR
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_custom(struct sljit_compiler
      *compiler,\n\tvoid *instruction, sljit_s32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - inst
    - ','
    - add
    - ','
    - base
    - ','
    - freg
    - ','
    - offs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1924
    functionName: EMIT_FPU_DATA_TRANSFER
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_FPU_DATA_TRANSFER(inst, add, base, freg, offs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - opcode
    - ','
    - mode
    - ','
    - dst
    - ','
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1926
    functionName: EMIT_FPU_OPERATION
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_FPU_OPERATION(opcode, mode, dst, src1, src2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1932,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1935,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1936,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1936,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1936,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1936,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1936,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1936,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1944,1
    - Dst: EMIT_FPU_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1944,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1946,1
    - Dst: EMIT_FPU_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1946,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1948,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1950,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1950,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1950,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1950,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1951,1
    - Dst: EMIT_FPU_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1951,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1953,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1956,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1956,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1956,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1956,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1957,1
    - Dst: EMIT_FPU_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1957,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1962,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1962,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1963,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1963,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1963,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1963,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1963,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1966,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1966,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1968,1
    - Dst: EMIT_FPU_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1968,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - compiler
    - flags
    - reg
    - arg
    - argw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 1969
    functionName: emit_fop_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 10
    functionsReached:
    - FAIL_IF
    - RN
    - load_immediate
    - SLJIT_UNLIKELY
    - OFFS_REG
    - push_inst
    - EMIT_FPU_DATA_TRANSFER
    - RM
    - RD
    - SLJIT_ASSERT
    - get_imm
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 emit_fop_mem(struct sljit_compiler *compiler, sljit_s32 flags,
      sljit_s32 reg, sljit_s32 arg, sljit_sw argw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1978,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1978,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1982,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1982,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1982,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1984,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1985,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1985,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 1989
    functionName: sljit_emit_fop1_conv_sw_from_f64
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - EMIT_FPU_OPERATION
    - FAST_IS_REG
    - emit_fop_mem
    - push_inst
    - RD
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1995,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:1999,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2000,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2000,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2000,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2003,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2003,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2006,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2006,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2007,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2007,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2007,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2010,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2010,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2010,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1991
    functionDepth: 1
    functionLinenumber: 1991
    functionLinenumberEnd: 2015
    functionName: sljit_emit_fop1_conv_f64_from_sw
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - EMIT_FPU_OPERATION
    - load_immediate
    - emit_fop_mem
    - FAST_IS_REG
    - push_inst
    - RD
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src,
      sljit_sw srcw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2024,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2024,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2029,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2029,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2033,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2033,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2033,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - compiler
    - op
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2017
    functionDepth: 1
    functionLinenumber: 2017
    functionLinenumberEnd: 2035
    functionName: sljit_emit_fop1_cmp
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - FAIL_IF
    - push_inst
    - EMIT_FPU_OPERATION
    - emit_fop_mem
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: "SLJIT_INLINE sljit_emit_fop1_cmp(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32 src2, sljit_sw
      src2w)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2043,1
    - Dst: SLJIT_COMPILE_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2045,1
    - Dst: SELECT_FOP1_OPERATION_WITH_CHECKS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2046,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2048,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2050,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2054,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2054,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2058,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2062,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2062,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2062,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2068,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2068,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2068,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2071,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2071,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2071,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2074,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2074,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2074,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2080,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 6
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2037
    functionDepth: 1
    functionLinenumber: 2037
    functionLinenumberEnd: 2082
    functionName: sljit_emit_fop1
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 1
    functionsReached:
    - FAIL_IF
    - EMIT_FPU_OPERATION
    - SELECT_FOP1_OPERATION_WITH_CHECKS
    - SLJIT_COMPILE_ASSERT
    - FAST_IS_REG
    - CHECK_ERROR
    - emit_fop_mem
    - push_inst
    - GET_OPCODE
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop1(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2091,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2092,1
    - Dst: check_sljit_emit_fop2
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2092,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2093,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2094,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2095,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2099,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2102,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2102,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2107,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2107,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2111,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2113,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2113,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2113,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2117,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2117,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2117,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2121,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2121,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2121,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2125,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2125,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2125,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2130,1
    - Dst: emit_fop_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 8
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - src1
    - src1w
    - src2
    - src2w
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2133
    functionName: sljit_emit_fop2
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 7
    functionsReached:
    - FAIL_IF
    - EMIT_FPU_OPERATION
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - emit_fop_mem
    - push_inst
    - GET_OPCODE
    - ADJUST_LOCAL_OFFSET
    - check_sljit_emit_fop2
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fop2(struct sljit_compiler *compiler,
      sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 src1, sljit_sw src1w,\n\tsljit_s32
      src2, sljit_sw src2w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2144,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2145,1
    - Dst: check_sljit_emit_fast_enter
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2145,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2146,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2148,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2150,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2151,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2151,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2151,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2155
    functionName: sljit_emit_fast_enter
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 28
    functionsReached:
    - CHECK
    - FAST_IS_REG
    - CHECK_ERROR
    - check_sljit_emit_fast_enter
    - push_inst
    - emit_op_mem
    - RM
    - ADJUST_LOCAL_OFFSET
    - RD
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_fast_enter(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2161
    functionDepth: 1
    functionLinenumber: 2161
    functionLinenumberEnd: 2218
    functionName: get_cc
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 11
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: sljit_uw
    signature: sljit_uw get_cc(struct sljit_compiler *compiler, sljit_s32 type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2224,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2225,1
    - Dst: check_sljit_emit_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2225,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2230,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2231,1
    - Dst: set_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - struct sljit_compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2220
    functionDepth: 2
    functionLinenumber: 2220
    functionLinenumberEnd: 2234
    functionName: sljit_emit_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 9
    functionsReached:
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - set_label
    - ensure_abuf
    - check_sljit_emit_label
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_label(struct sljit_compiler *compiler)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2240,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2241,1
    - Dst: check_sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2241,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2243,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2244,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2245,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2248,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2252,1
    - Dst: prepare_blx
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2252,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2253,1
    - Dst: push_inst_with_unique_literal
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2253,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2253,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2254,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2263,1
    - Dst: emit_blx
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2263,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2271,1
    - Dst: emit_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2271,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2272,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2272,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2272,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - compiler
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2236
    functionDepth: 4
    functionLinenumber: 2236
    functionLinenumberEnd: 2276
    functionName: sljit_emit_jump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 18
    functionsReached:
    - set_jump
    - EMIT_DATA_TRANSFER
    - prepare_blx
    - emit_blx
    - push_inst_with_unique_literal
    - emit_imm
    - check_sljit_emit_jump
    - CHECK_PTR
    - PTR_FAIL_IF
    - push_inst
    - RM
    - CHECK_ERROR_PTR
    - SLJIT_ASSERT
    - ensure_abuf
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_jump(struct sljit_compiler *compiler,
      sljit_s32 type)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2290,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2325,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2325,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2325,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2325,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2337,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2337,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2337,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2340,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2340,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2342,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2342,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2342,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2349,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2353,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2353,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2353,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2356,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2356,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2358,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2358,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2358,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2365,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2370,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2370,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2370,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2377,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2377,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2379,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2379,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2379,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 85
    argCount: 3
    argNames:
    - compiler
    - arg_types
    - src
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2280
    functionDepth: 1
    functionLinenumber: 2280
    functionLinenumberEnd: 2388
    functionName: softfloat_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - FAST_IS_REG
    - push_inst
    - SLJIT_ASSERT
    - RD
    - RN
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 softfloat_call_with_args(struct sljit_compiler *compiler,
      sljit_s32 arg_types, sljit_s32 *src)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2395,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2395,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2397,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2397,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2422,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2422,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2422,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - compiler
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2390
    functionDepth: 1
    functionLinenumber: 2390
    functionLinenumberEnd: 2423
    functionName: softfloat_post_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - push_inst
    - RN
    - RD
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 softfloat_post_call_with_args(struct sljit_compiler *compiler,
      sljit_s32 arg_types)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2448,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2448,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2448,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2464,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2464,1
    - Dst: EMIT_FPU_OPERATION
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2464,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - compiler
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2427
    functionDepth: 1
    functionLinenumber: 2427
    functionLinenumberEnd: 2472
    functionName: hardfloat_call_with_args
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 2
    functionsReached:
    - FAIL_IF
    - push_inst
    - EMIT_FPU_OPERATION
    linkageType: ''
    returnType: sljit_s32
    signature: sljit_s32 hardfloat_call_with_args(struct sljit_compiler *compiler,
      sljit_s32 arg_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2485,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2486,1
    - Dst: check_sljit_emit_call
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2486,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2489,1
    - Dst: softfloat_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2489,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2496,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2497,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2499,1
    - Dst: softfloat_post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2499,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2502,1
    - Dst: hardfloat_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2502,1
    - Dst: sljit_emit_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2509,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - compiler
    - type
    - arg_types
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2478
    functionDepth: 1
    functionLinenumber: 2478
    functionLinenumberEnd: 2511
    functionName: sljit_emit_call
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 10
    functionsReached:
    - softfloat_call_with_args
    - softfloat_post_call_with_args
    - check_sljit_emit_call
    - CHECK_PTR
    - PTR_FAIL_IF
    - CHECK_ERROR_PTR
    - hardfloat_call_with_args
    - sljit_emit_jump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_call(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2517,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2518,1
    - Dst: check_sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2518,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2519,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2521,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2524,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2525,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2526,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2526,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2529,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2530,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2530,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2531,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2531,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2535,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2536,1
    - Dst: set_jump
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2537,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2542,1
    - Dst: prepare_blx
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2542,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2543,1
    - Dst: push_inst_with_unique_literal
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2543,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2543,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2545,1
    - Dst: emit_blx
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2545,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2547,1
    - Dst: emit_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2547,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2548,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2548,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - compiler
    - type
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2513
    functionDepth: 4
    functionLinenumber: 2513
    functionLinenumberEnd: 2552
    functionName: sljit_emit_ijump
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 19
    functionsReached:
    - FAIL_IF
    - set_jump
    - EMIT_DATA_TRANSFER
    - prepare_blx
    - emit_blx
    - CHECK
    - push_inst_with_unique_literal
    - emit_imm
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - emit_op_mem
    - RM
    - ADJUST_LOCAL_OFFSET
    - SLJIT_ASSERT
    - ensure_abuf
    - check_sljit_emit_ijump
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_emit_ijump(struct sljit_compiler *compiler,
      sljit_s32 type, sljit_s32 src, sljit_sw srcw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2558,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2559,1
    - Dst: check_sljit_emit_icall
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2559,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2563,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2563,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2567,1
    - Dst: softfloat_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2567,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2574,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2574,1
    - Dst: softfloat_post_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2576,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2578,1
    - Dst: hardfloat_call_with_args
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2578,1
    - Dst: sljit_emit_ijump
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2585,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - compiler
    - type
    - arg_types
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2587
    functionName: sljit_emit_icall
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 17
    functionsReached:
    - FAIL_IF
    - softfloat_call_with_args
    - softfloat_post_call_with_args
    - CHECK
    - sljit_emit_ijump
    - CHECK_ERROR
    - emit_op_mem
    - check_sljit_emit_icall
    - hardfloat_call_with_args
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_icall(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 arg_types,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_ALL_FLAGS
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2593,1
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2596,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2597,1
    - Dst: check_sljit_emit_op_flags
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2597,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2598,1
    - Dst: GET_OPCODE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2600,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2601,1
    - Dst: FAST_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2602,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2605,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2605,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2605,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2606,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2606,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2606,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2608,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2615,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2615,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2617,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2617,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2617,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2617,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2620,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2620,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2620,1
    - Dst: RN
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2620,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2623,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2623,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2626,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2626,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2626,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - compiler
    - op
    - dst
    - dstw
    - type
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_sw
    - sljit_s32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2589
    functionDepth: 1
    functionLinenumber: 2589
    functionLinenumberEnd: 2628
    functionName: sljit_emit_op_flags
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 8
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_op_flags
    - CHECK
    - GET_ALL_FLAGS
    - FAST_IS_REG
    - CHECK_ERROR
    - push_inst
    - GET_OPCODE
    - emit_op_mem
    - RM
    - ADJUST_LOCAL_OFFSET
    - RD
    - RN
    - get_cc
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_op_flags(struct sljit_compiler
      *compiler, sljit_s32 op,\n\tsljit_s32 dst, sljit_sw dstw,\n\tsljit_s32 type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2636,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2637,1
    - Dst: check_sljit_emit_cmov
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2637,1
    - Dst: get_cc
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2641,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2643,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2644,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2646,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2646,1
    - Dst: get_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2648,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2650,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2650,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2654,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2654,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2654,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2657,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2657,1
    - Dst: FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2659,1
    - Dst: load_immediate
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2659,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2664,1
    - Dst: RD
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2664,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - compiler
    - type
    - dst_reg
    - src
    - srcw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2665
    functionName: sljit_emit_cmov
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 8
    functionsReached:
    - FAIL_IF
    - check_sljit_emit_cmov
    - CHECK
    - load_immediate
    - SLJIT_UNLIKELY
    - CHECK_ERROR
    - push_inst
    - RM
    - RD
    - get_cc
    - get_imm
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_cmov(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 dst_reg,\n\tsljit_s32 src, sljit_sw srcw)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2674,1
    - Dst: CHECK
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2675,1
    - Dst: check_sljit_emit_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2675,1
    - Dst: SLJIT_UNREACHABLE
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2703,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2711,1
    - Dst: IS_TYPE1_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2711,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2713,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2731,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2734,1
    - Dst: RM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2734,1
    - Dst: OFFS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2734,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2744,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2747,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2760,1
    - Dst: push_inst
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2768,1
    - Dst: TYPE2_TRANSFER_IMM
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2768,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 5
    argNames:
    - compiler
    - type
    - reg
    - mem
    - memw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_s32
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2667
    functionDepth: 1
    functionLinenumber: 2667
    functionLinenumberEnd: 2769
    functionName: sljit_emit_mem
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 12
    functionsReached:
    - check_sljit_emit_mem
    - EMIT_DATA_TRANSFER
    - CHECK
    - SLJIT_UNREACHABLE
    - SLJIT_UNLIKELY
    - OFFS_REG
    - CHECK_ERROR
    - push_inst
    - IS_TYPE1_TRANSFER
    - RM
    - TYPE2_TRANSFER_IMM
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: "SLJIT_API_FUNC_ATTRIBUTE sljit_emit_mem(struct sljit_compiler *compiler,
      sljit_s32 type,\n\tsljit_s32 reg,\n\tsljit_s32 mem, sljit_sw memw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2776,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2777,1
    - Dst: check_sljit_emit_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2777,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2778,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2780,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2783,1
    - Dst: push_inst_with_unique_literal
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2783,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2783,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2786,1
    - Dst: emit_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2786,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2789,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2790,1
    - Dst: set_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2791,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2794,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - compiler
    - dst
    - dstw
    - init_value
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2771
    functionDepth: 4
    functionLinenumber: 2771
    functionLinenumberEnd: 2796
    functionName: sljit_emit_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 8
    functionsReached:
    - ensure_abuf
    - EMIT_DATA_TRANSFER
    - SLOW_IS_REG
    - emit_imm
    - CHECK_PTR
    - PTR_FAIL_IF
    - set_const
    - check_sljit_emit_const
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - push_inst_with_unique_literal
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_const(struct sljit_compiler *compiler,
      sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ERROR_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2803,1
    - Dst: CHECK_PTR
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2804,1
    - Dst: check_sljit_emit_put_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2804,1
    - Dst: ADJUST_LOCAL_OFFSET
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2805,1
    - Dst: SLOW_IS_REG
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2807,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2810,1
    - Dst: push_inst_with_unique_literal
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2810,1
    - Dst: EMIT_DATA_TRANSFER
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2810,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2813,1
    - Dst: emit_imm
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2813,1
    - Dst: ensure_abuf
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2816,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2817,1
    - Dst: set_put_label
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2818,1
    - Dst: PTR_FAIL_IF
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2821,1
    - Dst: emit_op_mem
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - compiler
    - dst
    - dstw
    argTypes:
    - struct sljit_compiler*
    - sljit_s32
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2798
    functionDepth: 4
    functionLinenumber: 2798
    functionLinenumberEnd: 2823
    functionName: sljit_emit_put_label
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 11
    functionsReached:
    - set_put_label
    - ensure_abuf
    - EMIT_DATA_TRANSFER
    - SLOW_IS_REG
    - emit_imm
    - check_sljit_emit_put_label
    - CHECK_PTR
    - PTR_FAIL_IF
    - emit_op_mem
    - ADJUST_LOCAL_OFFSET
    - CHECK_ERROR_PTR
    - push_inst_with_unique_literal
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_emit_put_label(struct sljit_compiler
      *compiler, sljit_s32 dst, sljit_sw dstw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inline_set_jump_addr
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_target
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_uw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2825
    functionDepth: 2
    functionLinenumber: 2825
    functionLinenumberEnd: 2828
    functionName: sljit_set_jump_addr
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 8
    functionsReached:
    - inline_set_jump_addr
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_jump_addr(sljit_uw addr, sljit_uw
      new_target, sljit_sw executable_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inline_set_const
      Src: /src/pcre2/src/sljit/sljitNativeARM_32.c:2832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - new_constant
    - executable_offset
    argTypes:
    - sljit_uw
    - sljit_sw
    - sljit_sw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2830
    functionDepth: 2
    functionLinenumber: 2830
    functionLinenumberEnd: 2833
    functionName: sljit_set_const
    functionSourceFile: /src/pcre2/src/sljit/sljitNativeARM_32.c
    functionUses: 0
    functionsReached:
    - inline_set_const
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_set_const(sljit_uw addr, sljit_sw new_constant,
      sljit_sw executable_offset)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:118,1
    - Dst: fchmod
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:120,1
    - Dst: secure_getenv
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:125,1
    - Dst: strlen
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:128,1
    - Dst: stat
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:130,1
    - Dst: S_ISDIR
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:130,1
    - Dst: strcpy
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:131,1
    - Dst: strlen
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:137,1
    - Dst: strcpy
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:139,1
    - Dst: strcpy
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:143,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:147,1
    - Dst: open
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:157,1
    - Dst: strcpy
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:166,1
    - Dst: umask
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:168,1
    - Dst: mkostemp
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:170,1
    - Dst: umask
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:172,1
    - Dst: fchmod
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:174,1
    - Dst: unlink
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:180,1
    - Dst: close
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:181,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 186
    functionName: create_tempfile
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 0
    functionsReached:
    - stat
    - unlink
    - strlen
    - memfd_create
    - fchmod
    - S_ISDIR
    - umask
    - mkostemp
    - open
    - SLJIT_ASSERT
    - strcpy
    - secure_getenv
    - close
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE create_tempfile(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_tempfile
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:193,1
    - Dst: ftruncate
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:197,1
    - Dst: close
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:198,1
    - Dst: mmap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:202,1
    - Dst: close
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:205,1
    - Dst: mmap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:209,1
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:212,1
    - Dst: close
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:213,1
    - Dst: close
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - size
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 219
    functionName: alloc_chunk
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 1
    functionsReached:
    - ftruncate
    - create_tempfile
    - munmap
    - mmap
    - close
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE * alloc_chunk(sljit_uw size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:229,1
    - Dst: PROT_MPROTECT
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:230,1
    - Dst: mremap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:236,1
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:238,1
    - Dst: mprotect
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:242,1
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:243,1
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - size
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 249
    functionName: alloc_chunk
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 1
    functionsReached:
    - munmap
    - mprotect
    - PROT_MPROTECT
    - mremap
    - mmap
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE * alloc_chunk(sljit_uw size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:256,1
    - Dst: munmap
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chunk
    - size
    argTypes:
    - void*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: free_chunk
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 2
    functionsReached:
    - munmap
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE free_chunk(void *chunk, sljit_uw size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: AS_BLOCK_HEADER
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_BLOCK_HEADER(base, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: AS_FREE_BLOCK
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_FREE_BLOCK(base, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: MEM_START
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM_START(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: ALIGN_SIZE
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_SIZE(size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - free_block
    - size
    argTypes:
    - struct free_block*
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: sljit_insert_free_block
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_insert_free_block(struct free_block *free_block,
      sljit_uw size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - free_block
    argTypes:
    - struct free_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 313
    functionName: sljit_remove_free_block
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 3
    functionsReached:
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_INLINE
    signature: SLJIT_INLINE sljit_remove_free_block(struct free_block *free_block)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ALLOCATOR_LOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:324,1
    - Dst: ALIGN_SIZE
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:327,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:337,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:340,1
    - Dst: sljit_remove_free_block
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:343,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:349,1
    - Dst: MEM_START
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:350,1
    - Dst: alloc_chunk
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:358,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:360,1
    - Dst: AS_FREE_BLOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:379,1
    - Dst: sljit_insert_free_block
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:382,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:383,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:389,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:394,1
    - Dst: MEM_START
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 1
    argNames:
    - size
    argTypes:
    - sljit_uw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 396
    functionName: sljit_malloc_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 0
    functionsReached:
    - ALIGN_SIZE
    - AS_FREE_BLOCK
    - sljit_insert_free_block
    - AS_BLOCK_HEADER
    - alloc_chunk
    - sljit_remove_free_block
    - SLJIT_ALLOCATOR_LOCK
    - SLJIT_ALLOCATOR_UNLOCK
    - MEM_START
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE * sljit_malloc_exec(sljit_uw size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ALLOCATOR_LOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:403,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:404,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:405,1
    - Dst: AS_FREE_BLOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:412,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:413,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:415,1
    - Dst: sljit_insert_free_block
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:420,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:423,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:424,1
    - Dst: sljit_remove_free_block
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:426,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:427,1
    - Dst: SLJIT_UNLIKELY
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:432,1
    - Dst: sljit_remove_free_block
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:436,1
    - Dst: free_chunk
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:437,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 444
    functionName: sljit_free_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 0
    functionsReached:
    - AS_FREE_BLOCK
    - sljit_insert_free_block
    - AS_BLOCK_HEADER
    - sljit_remove_free_block
    - SLJIT_UNLIKELY
    - free_chunk
    - SLJIT_ALLOCATOR_LOCK
    - SLJIT_ALLOCATOR_UNLOCK
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_exec(void* ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SLJIT_ALLOCATOR_LOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:451,1
    - Dst: AS_BLOCK_HEADER
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:457,1
    - Dst: sljit_remove_free_block
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:459,1
    - Dst: free_chunk
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:460,1
    - Dst: SLJIT_ASSERT
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:467,1
    - Dst: SLJIT_ALLOCATOR_UNLOCK
      Src: /src/pcre2/src/sljit/sljitProtExecAllocator.c:468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 469
    functionName: sljit_free_unused_memory_exec
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 1
    functionsReached:
    - AS_BLOCK_HEADER
    - sljit_remove_free_block
    - free_chunk
    - SLJIT_ALLOCATOR_LOCK
    - SLJIT_ALLOCATOR_UNLOCK
    - SLJIT_ASSERT
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_free_unused_memory_exec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: sljit_exec_offset
    functionSourceFile: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SLJIT_API_FUNC_ATTRIBUTE
    signature: SLJIT_API_FUNC_ATTRIBUTE sljit_exec_offset(void* ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - cvalue
    - buffer
    argTypes:
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: ord2utf8
    functionSourceFile: /src/pcre2/maint/ucptest.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ord2utf8(unsigned int cvalue, unsigned char *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _isatty
      Src: /src/pcre2/maint/ucptest.c:219,1
    - Dst: _fileno
      Src: /src/pcre2/maint/ucptest.c:219,1
    - Dst: isatty
      Src: /src/pcre2/maint/ucptest.c:221,1
    - Dst: fileno
      Src: /src/pcre2/maint/ucptest.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: is_stdin_tty
    functionSourceFile: /src/pcre2/maint/ucptest.c
    functionUses: 0
    functionsReached:
    - _fileno
    - _isatty
    - fileno
    - isatty
    linkageType: ''
    returnType: BOOL
    signature: BOOL is_stdin_tty(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:236,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:238,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:241,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - script
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: get_scriptname
    functionSourceFile: /src/pcre2/maint/ucptest.c
    functionUses: 0
    functionsReached:
    - PRIV
    linkageType: ''
    returnType: char
    signature: 'char *

      get_scriptname(int script)'
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: UCD_CATEGORY
      Src: /src/pcre2/maint/ucptest.c:255,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/maint/ucptest.c:256,1
    - Dst: UCD_SCRIPT
      Src: /src/pcre2/maint/ucptest.c:257,1
    - Dst: UCD_SCRIPTX
      Src: /src/pcre2/maint/ucptest.c:258,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/maint/ucptest.c:259,1
    - Dst: UCD_OTHERCASE
      Src: /src/pcre2/maint/ucptest.c:260,1
    - Dst: UCD_CASESET
      Src: /src/pcre2/maint/ucptest.c:261,1
    - Dst: get_scriptname
      Src: /src/pcre2/maint/ucptest.c:266,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:335,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:338,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:341,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:345,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:352,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:354,1
    - Dst: get_scriptname
      Src: /src/pcre2/maint/ucptest.c:354,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:358,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:361,1
    - Dst: get_scriptname
      Src: /src/pcre2/maint/ucptest.c:361,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:365,1
    - Dst: ord2utf8
      Src: /src/pcre2/maint/ucptest.c:371,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:372,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:375,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 191
    argCount: 2
    argNames:
    - c
    - is_just_one
    argTypes:
    - unsigned int
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 376
    functionName: print_prop
    functionSourceFile: /src/pcre2/maint/ucptest.c
    functionUses: 1
    functionsReached:
    - UCD_OTHERCASE
    - UCD_GRAPHBREAK
    - UCD_CATEGORY
    - ord2utf8
    - printf
    - UCD_CHARTYPE
    - UCD_SCRIPTX
    - UCD_SCRIPT
    - get_scriptname
    - PRIV
    - UCD_CASESET
    linkageType: ''
    returnType: void
    signature: void print_prop(unsigned int c, BOOL is_just_one)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:409,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:411,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:413,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:415,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:417,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:418,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:427,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:429,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:430,1
    - Dst: CS
      Src: /src/pcre2/maint/ucptest.c:430,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:431,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:442,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:450,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:452,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:457,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:461,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:474,1
    - Dst: CS
      Src: /src/pcre2/maint/ucptest.c:474,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:482,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:488,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:492,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:505,1
    - Dst: CS
      Src: /src/pcre2/maint/ucptest.c:505,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:513,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:521,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:528,1
    - Dst: UCD_SCRIPT
      Src: /src/pcre2/maint/ucptest.c:534,1
    - Dst: UCD_SCRIPTX
      Src: /src/pcre2/maint/ucptest.c:540,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:542,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/maint/ucptest.c:591,1
    - Dst: UCD_CHARTYPE
      Src: /src/pcre2/maint/ucptest.c:595,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/maint/ucptest.c:603,1
    - Dst: UCD_GRAPHBREAK
      Src: /src/pcre2/maint/ucptest.c:607,1
    - Dst: GET_UCD
      Src: /src/pcre2/maint/ucptest.c:613,1
    - Dst: GET_UCD
      Src: /src/pcre2/maint/ucptest.c:617,1
    - Dst: memcmp
      Src: /src/pcre2/maint/ucptest.c:618,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:623,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:627,1
    - Dst: print_prop
      Src: /src/pcre2/maint/ucptest.c:629,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:635,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:640,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 168
    argCount: 1
    argNames:
    - s
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 641
    functionName: find_chars
    functionSourceFile: /src/pcre2/maint/ucptest.c
    functionUses: 0
    functionsReached:
    - UCD_SCRIPT
    - UCD_GRAPHBREAK
    - isspace
    - printf
    - CS
    - UCD_CHARTYPE
    - strcmp
    - print_prop
    - memcmp
    - UCD_SCRIPTX
    - PRIV
    - GET_UCD
    linkageType: ''
    returnType: void
    signature: void find_chars(unsigned char *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:655,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:658,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:660,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:662,1
    - Dst: strncmp
      Src: /src/pcre2/maint/ucptest.c:669,1
    - Dst: strtoul
      Src: /src/pcre2/maint/ucptest.c:670,1
    - Dst: CSS
      Src: /src/pcre2/maint/ucptest.c:670,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:671,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:673,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:674,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:679,1
    - Dst: print_prop
      Src: /src/pcre2/maint/ucptest.c:681,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:684,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:688,1
    - Dst: find_chars
      Src: /src/pcre2/maint/ucptest.c:690,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:693,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:698,1
    - Dst: isspace
      Src: /src/pcre2/maint/ucptest.c:700,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:702,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:702,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:704,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:705,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:706,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:706,1
    - Dst: PRIV
      Src: /src/pcre2/maint/ucptest.c:706,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:709,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:709,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:712,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:715,1
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:715,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:720,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:722,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:728,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:734,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 63
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 735
    functionName: process_command_line
    functionSourceFile: /src/pcre2/maint/ucptest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - isspace
    - printf
    - CSS
    - strtoul
    - strcmp
    - print_prop
    - find_chars
    - PRIV
    linkageType: ''
    returnType: void
    signature: void process_command_line(unsigned char *buffer)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pcre2/maint/ucptest.c:750,1
    - Dst: strncmp
      Src: /src/pcre2/maint/ucptest.c:763,1
    - Dst: isdigit
      Src: /src/pcre2/maint/ucptest.c:763,1
    - Dst: isxdigit
      Src: /src/pcre2/maint/ucptest.c:767,1
    - Dst: sprintf
      Src: /src/pcre2/maint/ucptest.c:779,1
    - Dst: process_command_line
      Src: /src/pcre2/maint/ucptest.c:782,1
    - Dst: is_stdin_tty
      Src: /src/pcre2/maint/ucptest.c:786,1
    - Dst: using_history
      Src: /src/pcre2/maint/ucptest.c:789,1
    - Dst: readline
      Src: /src/pcre2/maint/ucptest.c:798,1
    - Dst: strlen
      Src: /src/pcre2/maint/ucptest.c:800,1
    - Dst: add_history
      Src: /src/pcre2/maint/ucptest.c:801,1
    - Dst: memcpy
      Src: /src/pcre2/maint/ucptest.c:802,1
    - Dst: free
      Src: /src/pcre2/maint/ucptest.c:805,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:811,1
    - Dst: fgets
      Src: /src/pcre2/maint/ucptest.c:812,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:813,1
    - Dst: process_command_line
      Src: /src/pcre2/maint/ucptest.c:816,1
    - Dst: printf
      Src: /src/pcre2/maint/ucptest.c:819,1
    - Dst: clear_history
      Src: /src/pcre2/maint/ucptest.c:822,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 826
    functionName: main
    functionSourceFile: /src/pcre2/maint/ucptest.c
    functionUses: 3
    functionsReached:
    - memcpy
    - strncmp
    - process_command_line
    - readline
    - fgets
    - isxdigit
    - strlen
    - isdigit
    - clear_history
    - printf
    - using_history
    - is_stdin_tty
    - strcmp
    - add_history
    - free
    - sprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - cvalue
    - buffer
    argTypes:
    - unsigned long int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 101
    functionName: ord2utf8
    functionSourceFile: /src/pcre2/maint/utf8.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ord2utf8(unsigned long int cvalue, unsigned char *buffer)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - buffer
    - buffend
    - vptr
    - lenptr
    argTypes:
    - unsigned char*
    - unsigned char*
    - long unsigned int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 202
    functionName: utf82ord
    functionSourceFile: /src/pcre2/maint/utf8.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int utf82ord(unsigned char *buffer, unsigned char *buffend,\n  long
      unsigned int *vptr, int *lenptr)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/pcre2/maint/utf8.c:217,1
    - Dst: strncmp
      Src: /src/pcre2/maint/utf8.c:227,1
    - Dst: strncmp
      Src: /src/pcre2/maint/utf8.c:227,1
    - Dst: strtoul
      Src: /src/pcre2/maint/utf8.c:230,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:233,1
    - Dst: ord2utf8
      Src: /src/pcre2/maint/utf8.c:236,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:237,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:239,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:242,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:245,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:246,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:247,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:250,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:252,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:254,1
    - Dst: isxdigit
      Src: /src/pcre2/maint/utf8.c:268,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:270,1
    - Dst: tolower
      Src: /src/pcre2/maint/utf8.c:274,1
    - Dst: isdigit
      Src: /src/pcre2/maint/utf8.c:274,1
    - Dst: utf82ord
      Src: /src/pcre2/maint/utf8.c:294,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:298,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:299,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:302,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:303,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:304,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:306,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:311,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:312,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:313,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:320,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:323,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:326,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:329,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:332,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:335,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:336,1
    - Dst: printf
      Src: /src/pcre2/maint/utf8.c:337,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 100
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 345
    functionName: main
    functionSourceFile: /src/pcre2/maint/utf8.c
    functionUses: 3
    functionsReached:
    - tolower
    - strncmp
    - isxdigit
    - ord2utf8
    - isdigit
    - printf
    - utf82ord
    - strtoul
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
Fuzzer filename: /src/pcre2/src/pcre2_fuzzsupport.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- agent-diagnostics.h
- cf-agent-windows-functions.h
- writer.c
- dcv.peg.c
- sys/resource.h
- sysinfo.h
- definitions.h
- dlfcn.h
- cfecompat.h
- left.peg.c
- sys/mpctl.h
- array_map_priv.h
- bootstrap.h
- glob.h
- encode.h
- locale.h
- intrin.h
- files_interfaces.h
- string_lib.h
- iteration.c
- string_expressions.h
- sys/types.h
- netinet/in.h
- sljitNativePPC_32.c
- cf-serverd-enterprise-stubs.h
- cf-windows-functions.h
- client_code.h
- sys/jail.h
- verify_packages.h
- promiser_regex_resolver.h
- glob_lib.c
- vercmp_internal.h
- test.h
- known_dirs.h
- zones.h
- processes_select.h
- cf3.extern.h
- alloc.h
- log.h
- mod_outputs.h
- acl_tools.h
- pcrzoscs.h
- ornaments.h
- json-utils.h
- vms/iodef.h
- client_protocol.h
- pcre2_jit_misc.c
- threaded_stack.h
- promises.h
- mon.h
- eval_context.h
- sljitNativeX86_32.c
- unicode.h
- json-priv.h
- snprintf.c
- verify_services.h
- granules.h
- history.h
- sys/auxv.h
- systype.h
- pwd.h
- findhub_priv.h
- json-utils.c
- sljitNativePPC_common.c
- sys/cpustats.h
- threaded_queue.h
- config.h
- hash_map_priv.h
- stack_base.c
- sys/mkdev.h
- errno.h
- sys/utsname.h
- queue.c
- mod_measurement.h
- files_select.h
- avahi-client/lookup.h
- sljitNativeMIPS_64.c
- sljitUtils.c
- sljitConfigPre.h
- stdlib.h
- actuator.h
- stdarg.h
- dir.h
- ../../libutils/file_lib.c
- mod_knowledge.h
- cf3.defs.h
- net/if_arp.h
- mod_storage.h
- sys/cache.h
- dbm_priv.h
- arm_neon.h
- zlib.h
- iteration.h
- accctrl.h
- getopt.h
- verify_databases.c
- mod_files.h
- file_lib.h
- platform.h
- feature.h
- attr/xattr.h
- mod_report.h
- var_expressions.h
- cf_sql.h
- sljitLir.h
- buffer.h
- inq_stats/sysstats.h
- regex.h
- evalfunction.h
- openssl/buffer.h
- popt.h
- nlist.h
- assoc.h
- scope.h
- syslog_client.h
- sequence.h
- syslog.h
- version_comparison.h
- parser_state.h
- sys/sysinfo.h
- keyring.h
- sys/mbuf.h
- cf-execd.h
- tls_generic.h
- update.h
- job.h
- ../src/config.h
- scoop.h
- procinfo.h
- acl/libacl.h
- policy.h
- stream_protocol.h
- stack.h
- blake2-impl.h
- libutils/json.h
- procfs.h
- math.h
- communication.h
- sys/statvfs.h
- ndir.h
- sys/mount.h
- grp.h
- netint.h
- pipes.h
- sys/sysmacros.h
- csv_writer.h
- dir_priv.h
- endian.h
- string.h
- net/if.h
- libxml/parser.h
- glob_lib.h
- deprecated.h
- string_sequence.h
- linux/ip.h
- limits.h
- pgsql/libpq-fe.h
- peg.peg-c
- vars.h
- db_structs.h
- server_access.h
- sljitNativeMIPS_32.c
- sljitNativeARM_64.c
- class.h
- chflags.h
- global_mutex.h
- json-pcre.h
- clockid_t.h
- sljitNativeSPARC_32.c
- avahi-common/simple-watch.h
- statistics.h
- files_edit.h
- sys/sockio.h
- syntax.h
- conversion.h
- mysql/mysql.h
- ../src/pcre2_ucp.h
- vercmp.h
- verify_environments.h
- mod_custom.h
- server_common.h
- passopenfile.h
- fcntl.h
- mod_methods.h
- server_transform.h
- libvirt/virterror.h
- files_names.h
- loading.h
- execd-config.h
- verify_databases.h
- time_classes.h
- io.h
- strings.h
- path.h
- tls_client.h
- mod_services.h
- kstat.h
- tokyo_check.h
- instrumentation.h
- ssdef.h
- sysinfo_priv.h
- memmem.c
- abstract_dir.h
- systemd/sd-daemon.h
- openssl/crypto.h
- cf-key-functions.h
- set.h
- rb-tree.h
- protocol_version.h
- comparray.h
- mod_access.h
- clidef
- lib$routines
- pcre2_jit_match.c
- hashtable.h
- ../src/pcre2_internal.h
- mod_watch.h
- dirent.h
- cf-execd-runner.h
- patch_stream.h
- fsattrs.h
- mach/mach.h
- linux/sysctl.h
- descrip
- sequence.c
- retcode.h
- openssl/ssl.h
- pthread.h
- verify_new_packages.h
- time.h
- signal.h
- crtdefs.h
- mdfour.h
- cmdb.h
- libgen.h
- verify_files_utils.h
- sys/xattr.h
- logic_expressions.h
- sys/param.h
- stat_cache.h
- verify_methods.h
- zone.h
- string_sequence.c
- sljitNativeS390X.c
- env_monitor.h
- mysql.h
- mod_databases.h
- sys/procstats.h
- sys/sysmp.h
- threaded_deque.h
- config.post.h
- varargs.h
- sys/ndir.h
- findhub.h
- sys/time.h
- sys/loadavg.h
- sljitConfigInternal.h
- dbm_api_types.h
- sys/file.h
- probes.h
- sljit/sljitLir.c
- misc_lib.h
- float.h
- net/route.h
- net/if_dl.h
- sys/cpudefs.h
- monitoring_read.h
- verify_files.h
- sysinfo.c
- server_classic.h
- assert.h
- pcre2_printint.c
- iodef.h
- prototab.h
- verify_processes.h
- pcre2_intmodedep.h
- stddef.h
- csv_parser.h
- sys/sendfile.h
- linux/route.h
- enterprise_extension.h
- windows.h
- openssl/bn.h
- sljitExecAllocator.c
- files_copy.h
- evalfunction.c
- timeout.h
- blake2-kat.h
- sljitNativeSPARC_common.c
- pcre2_valid_utf.c
- sys/sysstats.h
- cmnintrin.h
- ws2tcpip.h
- sys/dir.h
- libxml/xpathInternals.h
- fncall.h
- list.c
- sys/table.h
- process_lib.h
- classic.h
- sys/malloc.h
- files_operators.h
- process.h
- objbase.h
- arpa/inet.h
- linux/in.h
- variable.h
- verify_users.h
- parser_helpers.h
- processes_select.c
- process_unix_priv.h
- wchar.h
- sljitConfigPost.h
- stdbool.h
- files_changes.c
- netinet/in_systm.h
- machine/cpu.h
- pcre2_tables.c
- sljitNativePPC_64.c
- crypto.h
- mutex.h
- parser.h
- matching.h
- inq_stats/cpustats.h
- util.h
- sys/wait.h
- ifaddrs.h
- common.h
- sddl.h
- utilities.h
- man.h
- mustache.h
- readline/history.h
- lmdb.h
- files_properties.h
- netinet/tcp.h
- item_lib.h
- mod_environ.h
- sys/sysdefs.h
- alloc-mini.h
- changes_chroot.h
- pcre2_jit_simd_inc.h
- compiler.h
- files_properties.c
- audit.h
- whole.h
- openssl/provider.h
- server.h
- conn_cache.h
- server.c
- descrip.h
- mod_process.h
- iphlpapi.h
- dump.h
- tree.h
- setjmp.h
- verify_storage.h
- utmp.h
- condition_macros.h
- avahi-client/client.h
- unistd.h
- files_repository.h
- linux/fs.h
- pcre2.h
- queue.h
- dbm_migration.h
- override_fsattrs.h
- tchdb.h
- valgrind/memcheck.h
- match_scope.h
- netdb.h
- monitoring.h
- winsock2.h
- sys/systemcfg.h
- sys/statfs.h
- sys/mman.h
- netinet/ip.h
- simulate_mode.h
- net.h
- avahi-common/error.h
- sljitProtExecAllocator.c
- inq_stats/statistics.h
- libvirt/libvirt.h
- xml_writer.h
- trace.h
- dbm_test_api.h
- tchar.h
- sys/select.h
- exec-config.h
- libutil.h
- sys/statistics.h
- sort.h
- blake2.h
- utime.h
- hash_method.h
- proc_net_parsing.h
- sys/kinfo.h
- schema.h
- direct.h
- libutils/sequence.h
- openssl/rsa.h
- sys/ndd_var.h
- openssl/err.h
- cf-agent-enterprise-stubs.h
- server_code.h
- files_changes.h
- cf-serverd-functions.h
- pcre2_ucp.h
- refcount.h
- policy_server.h
- cfnet.h
- avahi-common/malloc.h
- stdint.h
- expand.h
- observables.h
- sys/uio.h
- verify_acl.h
- editline/readline.h
- verify_vars.h
- proc_keyvalue.h
- libutils/writer.h
- librsync_export.h
- sys/pstat.h
- tcutil.h
- sys/ioctl.h
- protocol.h
- constants.h
- qdbm/depot.h
- inaddr.h
- dbm_api.h
- sljitConfig.h
- attributes.h
- curl/curl.h
- inq_stats/procstats.h
- verify_exec.h
- sys/sysctl.h
- sys/protosw.h
- systemd/sd-journal.h
- validate.h
- mod_exec.h
- strlist.h
- pcre2_jit_neon_inc.h
- isprefix.h
- shared_kstat.h
- shared_lib.h
- bzlib.h
- pcre2_ucd.c
- sljitNativeSPARC_64.c
- locks.h
- map_common.h
- a.out.h
- signals.h
- sys/dg_sys_info.h
- backup.h
- malloc.h
- addr_lib.h
- diagnose.h
- files_editxml.h
- cf-execd-runagent.h
- verify_measurements.h
- avahi-common/address.h
- version.h
- ieeefp.h
- test.peg.c
- generic_agent.h
- lastseen.h
- cf-serverd-functions.c
- printsize.h
- sys/syscall.h
- verify_classes.h
- pcre2_maketables.c
- ring_buffer.h
- logging_priv.h
- repair.h
- pcre2_internal.h
- dc.peg.c
- files_links.h
- hash.h
- sys/un.h
- nfs.c
- logging.h
- map.h
- TargetConditionals.h
- mach.h
- files_lib.h
- mod_users.h
- acl_posix.h
- buf.h
- x86intrin.h
- math.pc
- file_stream.h
- sljitNativeARM_32.c
- ctype.h
- sumset.h
- emit.h
- security/pam_appl.h
- command.h
- load_avahi.h
- cmockery.h
- configuration.h
- package_module.h
- rabinkarp.h
- pcrzosfs.h
- ip_address.h
- sljitWXExecAllocator.c
- sljitNativeX86_common.c
- verify_files_hashes.h
- pcre2posix.h
- sljitNativeARM_T2_32.c
- generic_at.h
- sys/paths.h
- key.h
- sys/vfs.h
- checksum.h
- aclapi.h
- libxml/c14n.h
- stdio.h
- mod_common.h
- unix.h
- sys/socket.h
- lmdump.h
- librsync.h
- list.h
- mod_packages.h
- sys/systeminfo.h
- connection_info.h
- utmpx.h
- sys/acl.h
- accept.peg.c
- files_editline.h
- rlist.h
- sys/dirent.h
- cleanup.h
- rollsum.h
- rule.peg.c
- replicate_lmdb.h
- server_tls.h
- json.h
- openssl/bio.h
- command_line.h
- nfs.h
- exec_tools.h
- sys/user.h
- json-yaml.h
- sys/stat.h
- psapi.h
- openssl/rand.h
- acl.h
- ip_address.c
- inttypes.h
- mon_cumulative.h
- server_classic.c
- prototypes3.h
- math_eval.h
- openssl/evp.h
- shadow.h
- sljitNativeX86_64.c
- sljitNativeMIPS_common.c
- readline/readline.h
- tlhelp32.h
- writer.h
- libpq-fe.h
- sched.h
report: name
sources:
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/string_fuzzer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UpdateExitCode
  - main
  - CheckOpts
  - ThisAgentInit
  - HailServer
  - KeepControlPromises
  - SendClassData
  - HailExec
  - NewStream
  source_file: /src/core/cf-runagent/cf-runagent.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_RA_EXIT_CODE_OTHER_ERR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/cf-runagent/cf-runagent.c
      type_or_value: '101'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PurgeCurrentLastSeen
  - callback
  - thread_exit_clean
  - lastsaw_worker_thread
  - keycount_worker_thread
  - scanlastseen_worker_thread
  - print_progress_sighandler
  - startstop_handler
  - worker_process
  - spawn_worker_threads
  - print_progress
  - print_usage
  - parse_args
  - tests_setup
  - main
  source_file: /src/core/tests/load/lastseen_threaded_load.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NHOSTS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/core/tests/load/lastseen_threaded_load.c
      type_or_value: '5000                        '
    - item_type: preproc_def
      name: MAX_NUM_THREADS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/core/tests/load/lastseen_threaded_load.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: MAX_NUM_FORKS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/core/tests/load/lastseen_threaded_load.c
      type_or_value: '10000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - contend
  - TestReadWriteData
  - CoinFlip
  - WriteReadWriteData
  - ReadWriteDataIsValid
  - TestCursorIteration
  - WriteReturnValues
  - Cleanup
  - main
  - DBWriteTestData
  - FatalError
  source_file: /src/core/tests/load/db_load.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_THREADS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: DB_ID
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/core/tests/load/db_load.c
      type_or_value: dbid_classes
    - item_type: preproc_def
      name: STATUS_SUCCESS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '0'
    - item_type: preproc_def
      name: STATUS_FAILED_OPEN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STATUS_FAILED_CLOSE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '2'
    - item_type: preproc_def
      name: STATUS_ERROR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '3'
    - item_type: preproc_def
      name: READWRITEKEY
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '123123123'
    - item_type: preproc_def
      name: READWRITEDATA1
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"'
    - item_type: preproc_def
      name: READWRITEDATA2
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"'
    - item_type: preproc_def
      name: RECORD_COUNT_JUNK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '7000'
    - item_type: preproc_def
      name: RECORD_COUNT_READWRITE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/core/tests/load/db_load.c
      type_or_value: 1  // only one read/write key above
    - item_type: preproc_def
      name: RECORD_COUNT_TOTAL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/core/tests/load/db_load.c
      type_or_value: (RECORD_COUNT_JUNK + RECORD_COUNT_READWRITE)
    - item_type: preproc_def
      name: VALUE_OFFSET1
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: VALUE_OFFSET2
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/core/tests/load/db_load.c
      type_or_value: '100000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - main
  - FatalError
  - IdempPrependItem
  - IsItemIn
  - DeleteItemList
  - MapAddress
  - HashPrintSafe
  - HashPubKey
  - ConstraintGetRvalValue
  source_file: /src/core/tests/load/lastseen_load.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xmlC14nizeFile
  - main
  source_file: /src/core/tests/acceptance/xml-c14nize.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - msgheader
  - print_mask
  - get_level_str
  - get_facility_str
  - print_priority
  - openlog
  - vsyslog
  - syslog
  - setlogmask
  - closelog
  source_file: /src/core/tests/acceptance/fakesyslog.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mask
        type: int
      - name: '*name'
        type: char
      item_type: struct
      name: masks
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/core/tests/acceptance/fakesyslog.c
    typedefs: []
    union: []
- function_names:
  - gethostbyaddr
  source_file: /src/core/tests/acceptance/dnswrapper.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - close_on_exec
  - main
  source_file: /src/core/tests/acceptance/no_fds.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Error
  - SerializePackage
  - SerializePackagePattern
  - DeserializePackage
  - IsWildcard
  - CheckWellformedness
  - NewPackagePattern
  - DeserializePackagePattern
  - ReadPackageEntries
  - SavePackages
  - MatchAllVersions
  - MatchSame
  - MatchPackage
  - FindPackages
  - ShowPackages
  - ClearPackageList
  - ClearInstalledPackages
  - ClearAvailablePackages
  - AddPackage
  - PopulateAvailable
  - main
  source_file: /src/core/tests/acceptance/mock_package_manager.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PACKAGE_ENTRY_LENGTH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/core/tests/acceptance/mock_package_manager.c
      type_or_value: '256'
    - item_type: preproc_def
      name: DEFAULT_ARCHITECTURE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/core/tests/acceptance/mock_package_manager.c
      type_or_value: '"x666"'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*version'
        type: char
      - name: '*arch'
        type: char
      item_type: struct
      name: Package
      pos:
        line_end: 60
        line_start: 55
        source_file: /src/core/tests/acceptance/mock_package_manager.c
    - fields:
      - name: '*name'
        type: char
      - name: '*version'
        type: char
      - name: '*arch'
        type: char
      item_type: struct
      name: PackagePattern
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/core/tests/acceptance/mock_package_manager.c
    typedefs: []
    union: []
- function_names:
  - eatline
  - main
  source_file: /src/core/tests/acceptance/30_custom_promise_types/custom_promise_binary.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FeedSmtpDirectives
  - COND_SEND
  - COND_RECV
  - ConnectToSmtpSocket
  source_file: /src/core/tests/acceptance/25_cf-execd/cf-execd-rpl-functions.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - OatHash
  source_file: /src/core/tests/acceptance/02_classes/01_basic/027.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLAY_PSEUDO_RANDOM_CONSTANT
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/core/tests/acceptance/02_classes/01_basic/027.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: HOURLY
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/core/tests/acceptance/02_classes/01_basic/027.c
      type_or_value: '12'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - OatHash
  source_file: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLAY_PSEUDO_RANDOM_CONSTANT
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: DAILY
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/core/tests/acceptance/02_classes/01_basic/staging/028.c
      type_or_value: 12 * 24
    structs: []
    typedefs: []
    union: []
- function_names:
  - DBHasStr
  - DBPutStr
  - DBGetStr
  - tests_setup
  - tests_teardown
  - setup
  - test_newentry
  - test_update
  - test_HostkeyToAddress
  - test_reverse_missing
  - test_reverse_conflict
  - test_reverse_missing_forward
  - test_remove
  - test_remove_no_a_entry
  - test_remove_ip
  - begin
  - end
  - test_consistent_1a
  - test_consistent_1b
  - test_consistent_2a
  - test_consistent_2b
  - test_consistent_3a
  - test_consistent_3b
  - test_consistent_4a
  - test_consistent_4b
  - test_consistent_5a
  - test_consistent_5b
  - test_consistent_6a
  - test_consistent_6b
  - test_consistent_7b
  - test_inconsistent_1
  - test_inconsistent_2
  - test_inconsistent_3
  - test_inconsistent_4
  - test_inconsistent_5
  - test_inconsistent_6
  - main
  - FatalError
  - HashPrintSafe
  - HashPubKey
  source_file: /src/core/tests/unit/lastseen_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IP1
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/core/tests/unit/lastseen_test.c
      type_or_value: '"127.0.0.121"'
    - item_type: preproc_def
      name: IP2
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/core/tests/unit/lastseen_test.c
      type_or_value: '"127.0.0.122"'
    - item_type: preproc_def
      name: IP3
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/core/tests/unit/lastseen_test.c
      type_or_value: '"127.0.0.123"'
    - item_type: preproc_def
      name: KEY1
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/core/tests/unit/lastseen_test.c
      type_or_value: '"SHA=key1"'
    - item_type: preproc_def
      name: KEY2
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/core/tests/unit/lastseen_test.c
      type_or_value: '"SHA=key2"'
    - item_type: preproc_def
      name: KEY3
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/core/tests/unit/lastseen_test.c
      type_or_value: '"SHA=key3"'
    - item_type: preproc_def
      name: ACC
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/core/tests/unit/lastseen_test.c
      type_or_value: LAST_SEEN_ROLE_ACCEPT
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_extract_scalar_prefix
  - test_extract_reference_
  - test_extract_reference
  - test_isnakedvar
  - test_map_iterators_from_rval_empty
  - test_map_iterators_from_rval_literal
  - test_map_iterators_from_rval_naked_list_var
  - test_map_iterators_from_rval_naked_list_var_namespace
  - test_expand_scalar_two_scalars_concat
  - test_expand_scalar_two_scalars_nested
  - test_expand_scalar_array_concat
  - test_expand_scalar_array_with_scalar_arg
  - test_expand_scalar_undefined
  - test_expand_scalar_nested_inner_undefined
  - test_expand_list_nested
  - actuator_expand_promise_array_with_scalar_arg
  - test_expand_promise_array_with_scalar_arg
  - actuator_expand_promise_slist
  - test_expand_promise_slist
  - actuator_expand_promise_array_with_slist_arg
  - test_expand_promise_array_with_slist_arg
  - test_setup
  - test_teardown
  - main
  source_file: /src/core/tests/unit/expand_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_FindDollarParen
  - test_IsMangled
  - Mangle_TestHelper
  - Mangle_TestHelperWithLength1
  - Mangle_TestHelperWithLength2
  - test_MangleVarRefString
  - IteratorPrepare_TestHelper
  - test_PromiseIteratorPrepare
  - main
  source_file: /src/core/tests/unit/iteration_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - tests_teardown
  - fct2
  - test_db_concurrent
  - main
  - FatalError
  source_file: /src/core/tests/unit/db_concurrent_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base
        type: int
      item_type: struct
      name: arg_struct
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/core/tests/unit/db_concurrent_test.c
    typedefs: []
    union: []
- function_names:
  - test_uptime
  - FindNextIntegerTestWrapper
  - test_find_next_integer
  - main
  source_file: /src/core/tests/unit/sysinfo_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - file_read_string
  - assert_file_equal
  - _assert_double_close
  - test_progress
  - test_progress_end
  source_file: /src/core/tests/unit/test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMALL_DIFF
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/core/tests/unit/test.c
      type_or_value: 1e-14
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_load_monitor
  - main
  source_file: /src/core/tests/unit/mon_load_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_fqname
  - test_uqname
  - test_uqname2
  - test_fqname_not_really_fq
  - test_fqname_not_really_fq2
  - test_fqname_unresolvable
  - test_no_names
  - test_wrong_fqname
  - main
  source_file: /src/core/tests/unit/domainname_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - generateTestFile
  - test_generateAvahiConfig
  - main
  source_file: /src/core/tests/unit/avahi_config_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __gcov_init
  - __gcov_merge_add
  - __gcov_execv
  - __gcov_execl
  - __gcov_fork
  source_file: /src/core/tests/unit/gcov-stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_command_parser
  - test_user_name
  - main
  source_file: /src/core/tests/unit/protocol_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENTERPRISE_FUNC_2ARG_DEFINE
  - ENTERPRISE_FUNC_3ARG_DEFINE
  - GetExtensionLibraryVersion
  source_file: /src/core/tests/unit/enterprise_extension_test_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getprocs64
  - test_get_start_time_process1
  - test_get_start_time_process2
  - test_get_start_time_process666
  - test_get_start_time_process1000
  - test_get_start_time_process1000000
  - test_get_state_process1
  - test_get_state_process2
  - test_get_state_process666
  - test_get_state_process1000
  - test_get_state_process1000000
  - main
  source_file: /src/core/tests/unit/aix_process_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_empty
  - test_never_empty
  - test_one_case_generic
  - test_no_ip_generic
  - test_one_case
  - test_null_server
  - test_no_ip
  - test_PolicyServer_IPv4
  - test_PolicyServer_IPv6
  - test_PolicyServer_Host
  - test_PolicyServer_Corner
  - main
  source_file: /src/core/tests/unit/policy_server_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sendto
  - sendto
  - test_set_port
  - test_set_host
  - check_level
  - test_log_level
  - main
  source_file: /src/core/tests/unit/logging_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_plain_variable_with_no_stuff_in_it
  - test_scoped
  - test_full
  - test_dotted_array
  - test_levels
  - test_unqualified_array
  - test_qualified_array
  - test_nested_array
  - test_array_with_dot_colon_in_index
  - test_special_scope
  - CheckToStringQualified
  - test_to_string_qualified
  - test_to_string_unqualified
  - main
  source_file: /src/core/tests/unit/var_expressions_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - tests_teardown
  - test_file_write
  - test_file_read_all
  - test_file_read_truncate
  - test_file_read_empty
  - test_file_read_invalid
  - main
  source_file: /src/core/tests/unit/files_lib_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FILE_CONTENTS
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/core/tests/unit/files_lib_test.c
      type_or_value: '"8aysd9a8ydhsdkjnaldn12lk\njndl1jndljewnbfdhwjebfkjhbnkjdn1lkdjn1lkjn38aysd9a8ydhsdkjnaldn12lkjndl1jndljewnbfdhwjebfkjhbnkjdn1lkdjn1lkjn38aysd9a8ydhsdkjnaldn12lkjndl1jndljewnbfdhwjebfkjhbnkjdn1lkdjn1lkjn38aysd9a8ydhsdkjnaldn12lkjndl1jndljewnbfdhwjebfkjhbnkjdn1lkdjn1lkjn38aysd9a8ydhsdkjnaldn12lkjndl1jndljew\nnbfdhwjebfkjhbnkjdn1lkdjn1lkjn38aysd9a8ydhsdkjnaldn12lkjndl1jndljewnbfdhwjebfkjhbnkjdn1lkdjn1l\rkjn38aysd9a8ydhsdkjnaldn12lkjndl1jndljewnbfdhwjebfkjhbnkjdn1lkdjn1\r\nlkjn38aysd9a8ydhsdkjnaldn12lkjndl1jndljewnbfdhwjebfkjhbnkjdn1lkdjn1lkjn38aysd9a8ydhsdkjnaldn12lkjndl1jndljewnbfdhwjebfkjhbnkjdn1lkdjn1lkjn3"'
    - item_type: preproc_def
      name: FILE_SIZE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/core/tests/unit/files_lib_test.c
      type_or_value: (sizeof(FILE_CONTENTS) - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_strlist
  - test_init_SL
  - test_StrList_Sort
  - test_StrList_BinarySearch
  - test_StrList_SearchLongestPrefix
  - test_StrList_SearchLongestSuffix
  - test_StrList_SearchForSuffix
  - test_StrList_Free
  - main
  source_file: /src/core/tests/unit/strlist_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATH_STRINGS_LEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/core/tests/unit/strlist_test.c
      type_or_value: (sizeof(PATH_STRINGS) / sizeof(PATH_STRINGS[0]))
    - item_type: preproc_def
      name: HOSTNAME_STRINGS_LEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/core/tests/unit/strlist_test.c
      type_or_value: (sizeof(HOSTNAME_STRINGS) / sizeof(HOSTNAME_STRINGS[0]))
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestParsePolicy
  - run_test_in_policy
  - execd_config_empty_cb
  - test_execd_config_empty
  - execd_config_full_cb
  - test_execd_config_full
  - exec_config_empty_cb
  - test_exec_config_empty
  - CheckFullExecConfig
  - exec_config_full_cb
  - test_exec_config_full
  - exec_config_copy_cb
  - test_exec_config_copy
  - main
  source_file: /src/core/tests/unit/exec-config-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*TestFn)(const EvalContext *ctx, const Policy *policy)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/core/tests/unit/exec-config-test.c
      type: void
    union: []
- function_names:
  - gethostname
  - gethostbyname
  - TestSysVar
  - test_set_names
  - main
  source_file: /src/core/tests/unit/set_domainname_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      - name: found
        type: bool
      item_type: struct
      name: ExpectedVars
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/core/tests/unit/set_domainname_test.c
    typedefs: []
    union: []
- function_names:
  - test_prepend_item
  - test_list_len
  - test_list_select_last_matching_finds_first
  - test_list_select_last_matching_finds_last
  - test_list_select_last_matching_not_found
  - test_list_compare
  - test_split_string
  - main
  source_file: /src/core/tests/unit/item_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_lookup_promise_type_agent_vars
  - test_lookup_promise_type_common_vars
  - test_lookup_promise_type_edit_xml_build_xpath
  - test_lookup_promise_type_edit_line_delete_lines
  - test_lookup_promise_type_edit_xml_commons
  - test_lookup_promise_type_global_commons
  - test_lookup_constraint_edit_xml_set_attribute_attribute_value
  - test_lookup_body_classes
  - test_lookup_body_process_count
  - test_lookup_body_delete_select
  - test_copy_from_servers
  - test_typecheck_null_rval
  - test_check_parse_variable_name
  - main
  source_file: /src/core/tests/unit/syntax_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setnetgrent
  - getnetgrent
  - test_hostinnetgroup_found
  - test_hostinnetgroup_not_found
  - basename_single_testcase
  - test_basename
  - test_module_protocol_percent_no_delimiter
  - main
  source_file: /src/core/tests/unit/evalfunction_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAP_ANONYMOUS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/core/tests/unit/evalfunction_test.c
      type_or_value: MAP_ANON
    structs: []
    typedefs: []
    union: []
- function_names:
  - FatalError
  - test_length
  - test_equality
  - test_prepend_scalar_idempotent
  - test_copy
  - test_rval_to_scalar
  - test_rval_to_scalar2
  - test_rval_to_list
  - test_rval_to_list2
  - test_rval_to_fncall
  - test_rval_to_fncall2
  - test_last
  - is_even
  - test_filter
  - test_filter_everything
  - test_reverse
  - test_split_escaped
  - test_split_lines
  - test_split_long
  - test_split_long_escaped
  - test_new_parser_success
  - test_new_parser_failure
  - test_regex_split
  - test_regex_split_too_few_chunks
  - test_regex_split_too_many_chunks
  - test_regex_split_empty_chunks
  - test_regex_split_no_match
  - test_regex_split_adjacent_separators
  - test_regex_split_real_regex
  - test_regex_split_overlapping_delimiters
  - test_rval_write
  - test_rval_write_quoted
  - test_rval_write_raw
  - test_key_in_ignore_case
  - main
  - __ProgrammingError
  - FullTextMatch
  - EvalContextVariableGet
  - __ThreadLock
  - __ThreadUnlock
  - IsNakedVar
  - FnCallPrint
  - GetNaked
  - ScopeGetVariable
  - DeleteAssoc
  - CopyAssoc
  - FnCallCopy
  - FnCallDestroy
  - SubStrnCopyChr
  - BlockTextMatch
  - FnCallToJson
  - JsonObjectCreate
  - JsonObjectAppendArray
  - JsonObjectAppendString
  - JsonArrayCreate
  - JsonArrayAppendString
  - JsonArrayAppendArray
  - JsonArrayAppendObject
  - JsonStringCreate
  source_file: /src/core/tests/unit/rlist_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nfields
        type: int
      - name: '*str'
        type: char
      item_type: struct
      name: ParseRoulette
      pos:
        line_end: 292
        line_start: 288
        source_file: /src/core/tests/unit/rlist_test.c
    typedefs: []
    union: []
- function_names:
  - FsSupportsSparseFiles
  - init
  - finalise
  - FillBufferWithGarbage
  - WriteBufferToFile
  - CompareFileToBuffer
  - FileIsSparse
  - test_sparse_files_1
  - test_sparse_files_2
  - test_sparse_files_3
  - test_sparse_files_4
  - test_sparse_files_5
  - test_sparse_files_6
  - test_sparse_files_7
  - test_sparse_files_8
  - main
  source_file: /src/core/tests/unit/files_copy_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAYBE_SYNC_NOW
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/core/tests/unit/files_copy_test.c
      type_or_value: if (do_sync) sync()
    - item_type: preproc_def
      name: TEST_FILENAME
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/core/tests/unit/files_copy_test.c
      type_or_value: '"testfile"'
    - item_type: preproc_def
      name: TESTFILE_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/core/tests/unit/files_copy_test.c
      type_or_value: (blk_size * 8)
    - item_type: preproc_def
      name: SHORT_REGION
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/core/tests/unit/files_copy_test.c
      type_or_value: '(blk_size / 2)                '
    - item_type: preproc_def
      name: LONG_REGION
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/core/tests/unit/files_copy_test.c
      type_or_value: '(blk_size * 2)                '
    - item_type: preproc_def
      name: GARBAGE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/tests/unit/files_copy_test.c
      type_or_value: '"blahblehblohbluebloblebli"'
    - item_type: preproc_def
      name: GARBAGE_LEN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/core/tests/unit/files_copy_test.c
      type_or_value: (sizeof(GARBAGE) - 1)
    - item_type: preproc_def
      name: NTESTS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/core/tests/unit/files_copy_test.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_purge_old_connections_nochange
  - test_purge_old_connections_purge_first
  - test_purge_old_connections_purge_middle
  - test_purge_old_connections_purge_last
  - main
  source_file: /src/core/tests/unit/connection_management_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_mode
  - test_validation
  - main
  source_file: /src/core/tests/unit/parsemode_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*string'
        type: char
      - name: plus
        type: mode_t
      - name: minus
        type: mode_t
      item_type: struct
      name: mode_definition
      pos:
        line_end: 8
        line_start: 4
        source_file: /src/core/tests/unit/parsemode_test.c
    - fields:
      - name: '*string'
        type: char
      - name: valid
        type: bool
      item_type: struct
      name: validation_mode
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/core/tests/unit/parsemode_test.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/tests/unit/schema.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CUNIT_INIT
      pos:
        line_end: 14
        line_start: 4
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"<\\?xml version=\\\"1.0\\\" \\?>\\n\" \\\n    \"<\\?xml-stylesheet
        type=\\\"text/xsl\\\" href=\\\"CUnit-Run.xsl\\\" \\?>\\n\" \\\n    \"<!DOCTYPE
        CUNIT_TEST_RUN_REPORT SYSTEM \\\"CUnit-Run.dtd\\\">\\n\" \\\n    \"<CUNIT_TEST_RUN_REPORT>\\n\"
        \\\n    \"  <CUNIT_HEADER/>\\n\" \\\n    \"  <CUNIT_RESULT_LISTING>\\n\" \\\n
        \   \"    <CUNIT_RUN_SUITE>\\n\" \\\n    \"      <CUNIT_RUN_SUITE_SUCCESS>\\n\"
        \\\n    \"        <SUITE_NAME> %s suite </SUITE_NAME>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_SUCCESS
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_SUCCESS>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"          </CUNIT_RUN_TEST_SUCCESS>\\n\"
        \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_START
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT
      pos:
        line_end: 33
        line_start: 24
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(%lld) </CONDITION>\\n\" \\\n    \"          </CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT_EQUALITY_LLD
      pos:
        line_end: 42
        line_start: 33
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(%lld, %lld) </CONDITION>\\n\" \\\n    \"
        \         </CUNIT_RUN_TEST_FAILURE>\\n\" \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT_EQUALITY_STRING
      pos:
        line_end: 51
        line_start: 42
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(%s %s) </CONDITION>\\n\" \\\n    \"          </CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT_RANGE_LLD
      pos:
        line_end: 60
        line_start: 51
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(value=%lld, min=%lld, max=%lld) </CONDITION>\\n\"
        \\\n    \"          </CUNIT_RUN_TEST_FAILURE>\\n\" \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT_SET_LLD
      pos:
        line_end: 69
        line_start: 60
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(value=%lld, number_of_values=%lld) </CONDITION>\\n\"
        \\\n    \"          </CUNIT_RUN_TEST_FAILURE>\\n\" \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_ERROR
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_ERROR>\\n\"
        \\\n    \"            <FILE_NAME> %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER>
        %d </LINE_NUMBER>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_SUMMARY
      pos:
        line_end: 107
        line_start: 74
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"      </CUNIT_RUN_SUITE_SUCCESS>\\n\" \\\n    \"    </CUNIT_RUN_SUITE>\\n\"
        \\\n    \"  </CUNIT_RESULT_LISTING>\\n\" \\\n    \"  <CUNIT_RUN_SUMMARY>\\n\"
        \\\n    \"    <CUNIT_RUN_SUMMARY_RECORD>\\n\" \\\n    \"      <TYPE> %s </TYPE>\\n\"
        \\\n    \"      <TOTAL> %d </TOTAL>\\n\" \\\n    \"      <RUN> %d </RUN>\\n\"
        \\\n    \"      <SUCCEEDED> %d </SUCCEEDED>\\n\" \\\n    \"      <FAILED>
        %d </FAILED>\\n\" \\\n    \"      <INACTIVE> %d </INACTIVE>\\n\" \\\n    \"
        \   </CUNIT_RUN_SUMMARY_RECORD>\\n\" \\\n    \"    <CUNIT_RUN_SUMMARY_RECORD>\\n\"
        \\\n    \"      <TYPE> %s </TYPE>\\n\" \\\n    \"      <TOTAL> %d </TOTAL>\\n\"
        \\\n    \"      <RUN> %d </RUN>\\n\" \\\n    \"      <SUCCEEDED> %d </SUCCEEDED>\\n\"
        \\\n    \"      <FAILED> %d </FAILED>\\n\" \\\n    \"      <INACTIVE> %d </INACTIVE>\\n\"
        \\\n    \"    </CUNIT_RUN_SUMMARY_RECORD>\\n\" \\\n    \"    <CUNIT_RUN_SUMMARY_RECORD>\\n\"
        \\\n    \"      <TYPE> %s </TYPE>\\n\" \\\n    \"      <TOTAL> %d </TOTAL>\\n\"
        \\\n    \"      <RUN> %d </RUN>\\n\" \\\n    \"      <SUCCEEDED> %d </SUCCEEDED>\\n\"
        \\\n    \"      <FAILED> %d </FAILED>\\n\" \\\n    \"      <INACTIVE> %d </INACTIVE>\\n\"
        \\\n    \"    </CUNIT_RUN_SUMMARY_RECORD>\\n\" \\\n    \"  </CUNIT_RUN_SUMMARY>\\n\"
        \\\n    \"  <CUNIT_FOOTER> File Generated By CUnit v2.1-2 - %s\\n\" \\\n    \"
        \ </CUNIT_FOOTER>\\n\" \\\n    \"</CUNIT_TEST_RUN_REPORT>\\n\""
    - item_type: preproc_def
      name: XS_INIT_TESTSUITE
      pos:
        line_end: 118
        line_start: 109
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"<\\?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"\\?>\\n\"
        \\\n    \"<testsuite name=\\\"%s\\\"\\n\" \\\n    \"           timestamp=\\\"%s\\\"\\n\"
        \\\n    \"           hostname=\\\"%s\\\"\\n\" \\\n    \"           tests=\\\"%d\\\"\\n\"
        \\\n    \"           failures=\\\"%d\\\"\\n\" \\\n    \"           errors=\\\"%d\\\"\\n\"
        \\\n    \"           time=\\\"%2lf seconds\\\">\\n\""
    - item_type: preproc_def
      name: XS_TESTCASE
      pos:
        line_end: 122
        line_start: 118
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"    <testcase name=\\\"%s\\\"\\n\" \\\n    \"              classname=\\\"%s\\\"\\n\"
        \\\n    \"              time=\\\"%2lf seconds\\\">\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT
      pos:
        line_end: 126
        line_start: 122
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(%lld)\\\"\\n\" \\\n    \"                 message=\\\"FAILED
        at %s:%d - %s(%lld)\\\">\\n\" \\\n    \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT_EQUALITY_LLD
      pos:
        line_end: 130
        line_start: 126
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(%lld, %lld)\\\"\\n\" \\\n    \"
        \                message=\\\"FAILED at %s:%d - %s(%lld, %lld)\\\">\\n\" \\\n
        \   \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT_EQUALITY_STRING
      pos:
        line_end: 134
        line_start: 130
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(%s, %s)\\\"\\n\" \\\n    \"                 message=\\\"FAILED
        at %s:%d - %s(%s, %s)\\\">\\n\" \\\n    \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT_RANGE_LLD
      pos:
        line_end: 138
        line_start: 134
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(value=%lld, min=%lld, max=%lld)\\\"\\n\"
        \\\n    \"                 message=\\\"FAILED at %s:%d - %s(value=%lld, min=%lld,
        max=%lld)\\\">\\n\" \\\n    \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT_SET_LLD
      pos:
        line_end: 142
        line_start: 138
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(value=%lld, number_of_values=%lld)\\\"\\n\"
        \\\n    \"                 message=\\\"FAILED at %s:%d - %s(value=%lld, number_of_values=%lld)\\\">\\n\"
        \\\n    \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_ERROR
      pos:
        line_end: 146
        line_start: 143
        source_file: /src/core/tests/unit/schema.h
      type_or_value: "\"        <error type=\\\"%s\\\"\\n\" \\\n    \"               message=\""
    - item_type: preproc_def
      name: XS_RUN_TEST_ERROR_END
      pos:
        line_end: 148
        line_start: 146
        source_file: /src/core/tests/unit/schema.h
      type_or_value: '"        </error>\n"'
    - item_type: preproc_def
      name: XS_TESTCASE_END
      pos:
        line_end: 151
        line_start: 149
        source_file: /src/core/tests/unit/schema.h
      type_or_value: '"    </testcase>\n"'
    - item_type: preproc_def
      name: XS_TESTSUITE_END
      pos:
        line_end: 153
        line_start: 151
        source_file: /src/core/tests/unit/schema.h
      type_or_value: '"</testsuite>\n"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_different_name
  - test_wildcard_arch
  - test_non_matching_arch
  - DoCompare
  - test_wildcard_version
  - test_eq
  - test_ne
  - test_gt_lt
  - test_gte_lte
  - wrong_separators
  - uneven_lengths_1
  - uneven_lengths_2
  - uneven_lengths_3
  - uneven_lengths_4
  - uneven_lengths_5
  - uneven_lengths_6
  - uneven_lengths_7
  - uneven_lengths_8
  - uneven_lengths_9
  - uneven_lengths_10
  - uneven_lengths_11
  - uneven_lengths_12
  - uneven_lengths_13
  - uneven_lengths_14
  - uneven_lengths_15
  - uneven_lengths_16
  - uneven_lengths_17
  - uneven_lengths_18
  - uneven_lengths_19
  - uneven_lengths_20
  - invalid_01
  - invalid_02
  - invalid_03
  - invalid_04
  - invalid_05
  - invalid_06
  - invalid_07
  - invalid_08
  - main
  source_file: /src/core/tests/unit/package_versions_compare_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - tests_teardown
  - GetSysUsers
  - test_processes_monitor
  - main
  source_file: /src/core/tests/unit/mon_processes_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_ParseHostPort
  - test_FuzzySetMatch
  - test_FuzzyMatchParse
  - main
  source_file: /src/core/tests/unit/addr_lib_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_name_join
  - main
  source_file: /src/core/tests/unit/scope_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - open
  - read
  - close
  - test_get_start_time_process1
  - test_get_start_time_process2
  - test_get_start_time_process3
  - test_get_start_time_process666
  - test_get_state_process1
  - test_get_state_process2
  - test_get_state_process3
  - test_get_state_process666
  - main
  source_file: /src/core/tests/unit/linux_process_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - open
  - read
  - close
  - test_get_start_time_process1
  - test_get_start_time_process2
  - test_get_state_process1
  - test_get_state_process2
  - test_get_state_process3
  - test_get_state_process4
  - main
  source_file: /src/core/tests/unit/solaris_process_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/core/tests/unit/solaris_process_test.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - tests_teardown
  - test_open_close
  - test_read_write
  - test_iter_modify_entry
  - test_iter_delete_entry
  - CreateGarbage
  - test_recreate
  - test_old_workdir_db_location
  - main
  - FatalError
  source_file: /src/core/tests/unit/db_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetCpuStat
  - test_cpu_monitor
  - main
  source_file: /src/core/tests/unit/mon_cpu_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_fd_redirection
  - tests_teardown
  - main
  source_file: /src/core/tests/unit/redirection_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestParsePolicy
  - test_benchmark
  - test_no_bundle_or_body_keyword
  - test_bundle_invalid_type
  - test_constraint_ifvarclass_invalid
  - test_bundle_args_invalid_type
  - test_bundle_args_forgot_cp
  - test_bundle_body_forgot_ob
  - test_bundle_custom_promise_type
  - test_bundle_body_wrong_promise_type_token
  - test_bundle_body_wrong_statement
  - test_bundle_body_forgot_semicolon
  - test_bundle_body_promiser_statement_contains_colon
  - test_bundle_body_promiser_statement_missing_assign
  - test_bundle_body_promisee_missing_arrow
  - test_bundle_body_promiser_wrong_constraint_token
  - test_bundle_body_promiser_unknown_constraint_id
  - test_body_edit_line_common_constraints
  - test_body_edit_xml_common_constraints
  - test_promise_promiser_nonscalar
  - test_bundle_body_promiser_forgot_colon
  - test_bundle_body_promisee_no_colon_allowed
  - test_bundle_body_forget_cb_eof
  - test_bundle_body_forget_cb_body
  - test_bundle_body_forget_cb_bundle
  - test_body_selection_wrong_token
  - test_body_selection_forgot_semicolon
  - test_body_selection_unknown_selection_id
  - test_body_body_forget_cb_eof
  - test_body_body_forget_cb_body
  - test_body_body_forget_cb_bundle
  - test_rval_list_forgot_colon
  - test_rval_list_wrong_input_type
  - test_rval_function_forgot_colon
  - test_rval_function_wrong_input_type
  - test_rval_wrong_input_type
  - test_rval_list_forgot_cb_semicolon
  - test_rval_list_forgot_cb_colon
  - test_rval_function_forgot_cp_semicolon
  - test_rval_function_forgot_cp_colon
  - main
  source_file: /src/core/tests/unit/parser_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - wait_for_child
  - wait_for_io
  - wait_for_dialup
  - clear_listener
  - clear_previous_test
  - choose_dialup_UDS_file
  - setup_listener
  - setup_accept
  - setup_connect
  - setup_uds
  - close_pipe
  - setup_pipe
  - check_hail
  - child_hail
  - self_hail
  - test_take_listen_message
  - test_take_connect_message
  - test_send_listen_message
  - test_send_connect_message
  - test_take_listen_silent
  - test_take_connect_silent
  - test_send_listen_silent
  - test_send_connect_silent
  - test_connect_outlive
  - test_listen_outlive
  - main
  source_file: /src/core/tests/unit/passopenfile_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestSpecFile
  - test_spec
  - main
  source_file: /src/core/tests/unit/mustache_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CheckOpts
  - test_GET_OPTIONAL_ARGUMENT
  - main
  source_file: /src/core/tests/unit/getopt_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_setup
  - test_teardown
  - test_key_basic
  - test_key_hash
  - main
  source_file: /src/core/tests/unit/key_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASSERT_IF_NOT_INITIALIZED
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/core/tests/unit/key_test.c
      type_or_value: assert_int_equal(1, initialized)
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_has_regex_meta_chars
  - main
  source_file: /src/core/tests/unit/matching_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_class_ref
  - test_ns
  - test_default_ns
  - test_put_replace
  - main
  source_file: /src/core/tests/unit/class_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - tests_teardown
  - CreateGarbage
  - CreateCorruptedGarbage
  - test_cfreadline_valid
  - test_cfreadline_corrupted
  - main
  source_file: /src/core/tests/unit/files_interfaces_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FILE_SIZE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/core/tests/unit/files_interfaces_test.c
      type_or_value: (sizeof(FILE_CONTENTS) - 1)
    - item_type: preproc_def
      name: FILE_LINE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/core/tests/unit/files_interfaces_test.c
      type_or_value: '"some garbage!"'
    - item_type: preproc_def
      name: FILE_CORRUPTED_LINE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/core/tests/unit/files_interfaces_test.c
      type_or_value: '"some \0 , gar\0bage!"'
    - item_type: preproc_def
      name: LINE_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/core/tests/unit/files_interfaces_test.c
      type_or_value: (sizeof(FILE_LINE) - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRINT_TEST_BANNER
  - assert_double_close
  - assert_string_int_equal
  source_file: /src/core/tests/unit/test.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_ValidateSQLTableName
  - main
  source_file: /src/core/tests/unit/verify_databases_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ForbiddenVarRefEval
  - IdentityVarRefEval
  - AppendAVarRefEval
  - DiscriminateVarTypesVarRefEval
  - CheckParse
  - test_literal
  - test_var_naked
  - test_var_naked_two_level
  - test_var_one_level
  - test_different_var_types
  - main
  source_file: /src/core/tests/unit/string_expressions_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_SplitProcLine_windows
  - main
  source_file: /src/core/tests/unit/processes_select_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_full_text_match
  - test_full_text_match2
  - test_block_text_match
  - test_block_text_match2
  - main
  source_file: /src/core/tests/unit/regex_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_opendir_recv_terminator_overflow
  - main
  source_file: /src/core/tests/unit/protocol_recv_overflow_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_setup
  - test_migration
  - test_teardown
  - main
  source_file: /src/core/tests/unit/changes_migration_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NO_FILES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/tests/unit/changes_migration_test.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - tests_setup
  - setup
  - tests_teardown
  - test_no_migration
  - test_up_to_date
  - test_migrate_single
  - test_migrate_incoming
  - test_migrate_outgoing
  - test_ignore_wrong_sized
  - main
  - FatalError
  - MapAddress
  - HashPrintSafe
  - HashPubKey
  source_file: /src/core/tests/unit/lastseen_migration_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KEYHASH
      pos:
        line_end: 143
        line_start: 141
        source_file: /src/core/tests/unit/lastseen_migration_test.c
      type_or_value: '"SHA=f7b335bef201230c7bf573b8dedf299fa745efe71e34a9002369248ff8519089"'
    - item_type: preproc_def
      name: KEYHASH_KEY
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/core/tests/unit/lastseen_migration_test.c
      type_or_value: '"k" KEYHASH'
    - item_type: preproc_def
      name: KEYHASH_IN
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/core/tests/unit/lastseen_migration_test.c
      type_or_value: '"-" KEYHASH'
    - item_type: preproc_def
      name: QUALITY_IN
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/core/tests/unit/lastseen_migration_test.c
      type_or_value: '"qi" KEYHASH'
    - item_type: preproc_def
      name: KEYHASH_OUT
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/core/tests/unit/lastseen_migration_test.c
      type_or_value: '"+" KEYHASH'
    - item_type: preproc_def
      name: QUALITY_OUT
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/core/tests/unit/lastseen_migration_test.c
      type_or_value: '"qo" KEYHASH'
    structs:
    - fields:
      - name: address[128]
        type: char
      - name: q
        type: double
      - name: expect
        type: double
      - name: var
        type: double
      item_type: struct
      name: KeyHostSeen0
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/core/tests/unit/lastseen_migration_test.c
    typedefs: []
    union: []
- function_names:
  - assert_int_equal
  - assert_int_not_equal
  - assert_true
  - assert_false
  - test_process_start_time
  - test_process_state
  - test_graceful_terminate
  - main
  source_file: /src/core/tests/unit/process_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetAmPolicyHub
  source_file: /src/core/tests/unit/db_stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENTERPRISE_FUNC_2ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_2ARG_DEFINE_STUB
  - test_extension_function_stub
  - test_extension_function
  - test_extension_function_broken
  - test_extension_function_version_mismatch
  - main
  source_file: /src/core/tests/unit/enterprise_extension_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cast_to_largest_integral_type
  - mock
  - will_return
  - will_return_count
  - expect_check
  - expect_in_set
  - expect_in_set_count
  - expect_not_in_set
  - expect_not_in_set_count
  - expect_in_range
  - expect_in_range_count
  - expect_not_in_range
  - expect_not_in_range_count
  - expect_value
  - expect_value_count
  - expect_not_value
  - expect_not_value_count
  - expect_string
  - expect_string_count
  - expect_not_string
  - expect_not_string_count
  - expect_memory
  - expect_memory_count
  - expect_not_memory
  - expect_not_memory_count
  - expect_any
  - expect_any_count
  - check_expected
  - assert_true
  - assert_false
  - assert_int_equal
  - assert_int_not_equal
  - assert_string_equal
  - assert_string_not_equal
  - assert_memory_equal
  - assert_memory_not_equal
  - assert_in_range
  - assert_not_in_range
  - assert_in_set
  - assert_not_in_set
  - fail
  - run_test
  - unit_test
  - unit_test_with_state
  - unit_test_setup
  - unit_test_teardown
  - unit_test_setup_teardown
  - run_tests
  - test_malloc
  - test_calloc
  - test_free
  - expect_assert_failure
  source_file: /src/core/tests/unit/cmockery.h
  types:
    enum:
    - enumerators:
      - name: UNIT_TEST_FUNCTION_TYPE_TEST
        value: '0'
      - name: UNIT_TEST_FUNCTION_TYPE_SETUP
      - name: UNIT_TEST_FUNCTION_TYPE_TEST_WITH_STATE
      - name: UNIT_TEST_FUNCTION_TYPE_TEARDOWN
      item_type: enum
      name: UnitTestFunctionType
      pos:
        line_end: 338
        line_start: 332
        source_file: /src/core/tests/unit/cmockery.h
    preproc_defs:
    - item_type: preproc_def
      name: FUNC_ATTR_NORETURN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: __FUNCTION__
    - item_type: preproc_def
      name: LargestIntegralType
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: LargestIntegralTypePrintfFormat
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: '"%I64x"'
    - item_type: preproc_def
      name: LargestIntegralTypePrintfDecimal
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: '"%I64d"'
    - item_type: preproc_def
      name: LargestIntegralTypePrintfFormat
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: '"%llx"'
    - item_type: preproc_def
      name: LargestIntegralTypePrintfDecimal
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: '"%lld"'
    - item_type: preproc_def
      name: malloc
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: test_malloc
    - item_type: preproc_def
      name: calloc
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: test_calloc
    - item_type: preproc_def
      name: free
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/core/tests/unit/cmockery.h
      type_or_value: test_free
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: f
        type: "union\n    {\n        UnitTestFunction function;\n        UnitTestFunctionWithState
          function_with_state;\n    }"
      - name: function_type
        type: UnitTestFunctionType
      item_type: struct
      name: UnitTest
      pos:
        line_end: 353
        line_start: 344
        source_file: /src/core/tests/unit/cmockery.h
    - fields:
      - name: '*file'
        type: char
      - name: line
        type: int
      item_type: struct
      name: SourceLocation
      pos:
        line_end: 360
        line_start: 356
        source_file: /src/core/tests/unit/cmockery.h
    - fields:
      - name: location
        type: SourceLocation
      - name: '*parameter_name'
        type: char
      - name: check_value
        type: CheckParameterValue
      - name: check_value_data
        type: LargestIntegralType
      item_type: struct
      name: CheckParameterEvent
      pos:
        line_end: 369
        line_start: 363
        source_file: /src/core/tests/unit/cmockery.h
    typedefs:
    - item_type: typedef
      name: (*UnitTestFunction) (void)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/core/tests/unit/cmockery.h
      type: void
    - item_type: typedef
      name: (*UnitTestFunctionWithState) (void **state)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/core/tests/unit/cmockery.h
      type: void
    - item_type: typedef
      name: (*CheckParameterValue) (const LargestIntegralType value, const LargestIntegralType
        check_value_data)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/core/tests/unit/cmockery.h
      type: int
    union: []
- function_names:
  - test_create_destroy
  - main
  source_file: /src/core/tests/unit/assoc_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - spawn_process
  - signal_handler
  - process_signal
  - main
  source_file: /src/core/tests/unit/init_script_test_helper.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dlopen
  - dlsym
  - dlclose
  - avahi_simple_poll_new
  - avahi_simple_poll_free
  - avahi_simple_poll_get
  - avahi_simple_poll_quit
  - avahi_address_snprint
  - avahi_service_resolver_free
  - avahi_client_errno
  - avahi_strerror
  - avahi_service_resolver_new
  - avahi_service_browser_get_client
  - avahi_service_resolver_get_client
  - avahi_client_new
  - avahi_simple_poll_loop
  - avahi_service_browser_free
  - avahi_client_free
  - avahi_service_browser_new
  - test_noHubsFound
  - test_oneHubFound
  - test_multipleHubsFound
  - test_errorOccurred
  - main
  source_file: /src/core/tests/unit/findhub_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_split_empty
  - test_split_easy
  - test_split_whitespace_prefix
  - test_split_quoted_beginning
  - test_split_quoted_end
  - test_split_quoted_middle
  - test_complex_quoting
  - test_arguments_resize_for_null
  - test_arguments_resize
  - test_arguments_with_arglist
  - test_command_promiser
  - main
  source_file: /src/core/tests/unit/arg_split_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_LENGTH
  - declare_initialize_value_pointer_pointer
  - declare_initialize_value_pointer_value
  - cast_largest_integral_type_to_pointer
  - EXCEPTION_CODE_INFO
  - exit_test
  - exit_test_no_app
  - initialize_source_location
  - source_location_is_set
  - set_source_location
  - initialize_testing
  - fail_if_leftover_values
  - teardown_testing
  - list_initialize
  - list_add_value
  - list_add
  - list_remove
  - list_remove_free
  - list_free
  - list_empty
  - list_find
  - list_first
  - free_value
  - free_symbol_map_value
  - symbol_names_match
  - add_symbol_value
  - get_symbol_value
  - remove_always_return_values
  - check_for_leftover_values
  - _cast_to_largest_integral_type
  - _mock
  - _will_return
  - _expect_check
  - values_equal_display_error
  - values_not_equal_display_error
  - value_in_set_display_error
  - integer_in_range_display_error
  - integer_not_in_range_display_error
  - string_equal_display_error
  - string_not_equal_display_error
  - memory_equal_display_error
  - memory_not_equal_display_error
  - check_in_set
  - check_not_in_set
  - expect_set
  - _expect_in_set
  - _expect_not_in_set
  - check_in_range
  - check_not_in_range
  - expect_range
  - _expect_in_range
  - _expect_not_in_range
  - check_value
  - _expect_value
  - check_not_value
  - _expect_not_value
  - check_string
  - _expect_string
  - check_not_string
  - _expect_not_string
  - check_memory
  - expect_memory_setup
  - _expect_memory
  - check_not_memory
  - _expect_not_memory
  - check_any
  - _expect_any
  - _check_expected
  - mock_assert
  - _assert_true
  - _assert_int_equal
  - _assert_int_not_equal
  - _assert_string_equal
  - _assert_string_not_equal
  - _assert_memory_equal
  - _assert_memory_not_equal
  - _assert_in_range
  - _assert_not_in_range
  - _assert_in_set
  - _assert_not_in_set
  - get_allocated_blocks_list
  - _test_malloc
  - _test_calloc
  - _test_free
  - check_point_allocated_blocks
  - display_allocated_blocks
  - free_allocated_blocks
  - fail_if_blocks_allocated
  - _fail
  - exception_handler
  - exception_filter
  - vinit_xml
  - init_xml
  - vprint_xml
  - print_xml
  - append_xml
  - vprint_message
  - vprint_error
  - print_message
  - print_error
  - _run_test
  - _run_tests
  source_file: /src/core/tests/unit/cmockery.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MALLOC_GUARD_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/core/tests/unit/cmockery.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MALLOC_GUARD_PATTERN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/core/tests/unit/cmockery.c
      type_or_value: '0xEF'
    - item_type: preproc_def
      name: MALLOC_ALLOC_PATTERN
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/tests/unit/cmockery.c
      type_or_value: '0xBA'
    - item_type: preproc_def
      name: MALLOC_FREE_PATTERN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/core/tests/unit/cmockery.c
      type_or_value: '0xCD'
    - item_type: preproc_def
      name: MALLOC_ALIGNMENT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/core/tests/unit/cmockery.c
      type_or_value: sizeof(size_t)
    - item_type: preproc_def
      name: SOURCE_LOCATION_FORMAT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/core/tests/unit/cmockery.c
      type_or_value: '"%s:%d"'
    - item_type: preproc_def
      name: ARG_UNUSED
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/core/tests/unit/cmockery.c
      type_or_value: __attribute__((unused))
    - item_type: preproc_def
      name: malloc
      pos:
        line_end: 1484
        line_start: 1483
        source_file: /src/core/tests/unit/cmockery.c
      type_or_value: test_malloc
    - item_type: preproc_def
      name: free
      pos:
        line_end: 1546
        line_start: 1545
        source_file: /src/core/tests/unit/cmockery.c
      type_or_value: test_free
    structs:
    - fields:
      - name: '*value'
        type: void
      - name: refcount
        type: int
      - name: '*next'
        type: struct ListNode
      - name: '*prev'
        type: struct ListNode
      item_type: struct
      name: ListNode
      pos:
        line_end: 98
        line_start: 92
        source_file: /src/core/tests/unit/cmockery.c
    - fields:
      - name: '*block'
        type: void
      - name: allocated_size
        type: size_t
      - name: size
        type: size_t
      - name: location
        type: SourceLocation
      - name: node
        type: ListNode
      item_type: struct
      name: MallocBlockInfo
      pos:
        line_end: 108
        line_start: 101
        source_file: /src/core/tests/unit/cmockery.c
    - fields:
      - name: '*check_point'
        type: ListNode
      - name: '*state'
        type: void
      item_type: struct
      name: TestState
      pos:
        line_end: 116
        line_start: 111
        source_file: /src/core/tests/unit/cmockery.c
    - fields:
      - name: location
        type: SourceLocation
      - name: value
        type: LargestIntegralType
      item_type: struct
      name: SymbolValue
      pos:
        line_end: 126
        line_start: 122
        source_file: /src/core/tests/unit/cmockery.c
    - fields:
      - name: '*symbol_name'
        type: char
      - name: symbol_values_list_head
        type: ListNode
      item_type: struct
      name: SymbolMapValue
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/core/tests/unit/cmockery.c
    - fields:
      - name: event
        type: CheckParameterEvent
      - name: minimum
        type: LargestIntegralType
      - name: maximum
        type: LargestIntegralType
      item_type: struct
      name: CheckIntegerRange
      pos:
        line_end: 147
        line_start: 142
        source_file: /src/core/tests/unit/cmockery.c
    - fields:
      - name: event
        type: CheckParameterEvent
      - name: '*set'
        type: LargestIntegralType
      - name: size_of_set
        type: size_t
      item_type: struct
      name: CheckIntegerSet
      pos:
        line_end: 155
        line_start: 150
        source_file: /src/core/tests/unit/cmockery.c
    - fields:
      - name: event
        type: CheckParameterEvent
      - name: '*memory'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: CheckMemoryData
      pos:
        line_end: 164
        line_start: 159
        source_file: /src/core/tests/unit/cmockery.c
    - fields:
      - name: code
        type: DWORD
      - name: '*description'
        type: char
      item_type: struct
      name: ExceptionCodeInfo
      pos:
        line_end: 253
        line_start: 249
        source_file: /src/core/tests/unit/cmockery.c
    typedefs:
    - item_type: typedef
      name: (*EqualityFunction) (const void *left, const void *right)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/core/tests/unit/cmockery.c
      type: int
    - item_type: typedef
      name: (*CleanupListValue) (const void *value, void *cleanup_value_data)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/core/tests/unit/cmockery.c
      type: void
    - item_type: typedef
      name: (*SignalFunction) (int signal)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/core/tests/unit/cmockery.c
      type: void
    union:
    - fields:
      - name: value
        type: LargestIntegralType
      - name: '*pointer'
        type: void
      item_type: union
      name: ValuePointer
      pos:
        line_end: 89
        line_start: 85
        source_file: /src/core/tests/unit/cmockery.c
- function_names:
  - test_first_file_separator
  - test_get_parent_directory_copy
  - test_delete_redundant_slashes
  - test_join_paths
  - test_get_absolute_path
  - main
  source_file: /src/core/tests/unit/file_name_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ComputeCiphertextLen
  - test_cipher_init
  - test_symmetric_encrypt
  - test_symmetric_decrypt
  - test_cipher_block_size
  - test_cipher_text_size_max
  - test_plain_text_size_max
  - main
  source_file: /src/core/tests/unit/crypto_symmetric_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PLAINTEXT
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/core/tests/unit/crypto_symmetric_test.c
      type_or_value: '"123456789012345678901234567890123"'
    - item_type: preproc_def
      name: KEY
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/core/tests/unit/crypto_symmetric_test.c
      type_or_value: '"1234567890123456789012345678901234567890123456789012345678901234"  '
    - item_type: preproc_def
      name: CIPHER_TYPE_CFENGINE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/core/tests/unit/crypto_symmetric_test.c
      type_or_value: '''c'''
    - item_type: preproc_def
      name: CIPHER_BLOCK_SIZE_BYTES
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/core/tests/unit/crypto_symmetric_test.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_have_tty_interactive_failsafe_is_not_created
  - test_dont_have_tty_interactive_failsafe_is_created
  - test_resolve_absolute_input_path
  - test_resolve_non_anchored_base_path
  - test_resolve_relative_base_path
  - main
  source_file: /src/core/tests/unit/generic_agent_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_ConsiderFile_path_separators
  - main
  source_file: /src/core/tests/unit/files_properties_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_get_time_slot
  - test_measurement_slot_start
  - test_measurement_slot_time
  - test_gen_time_key
  - main
  source_file: /src/core/tests/unit/granules_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_sort_item_list_names
  - test_sort_item_list_classes
  - test_sort_item_list_counters
  - test_sort_item_list_times
  - FirstItemShorter
  - test_sort_rlist
  - test_alpha_sort_rlist_names
  - main
  source_file: /src/core/tests/unit/sort_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/core/tests/unit/redirection_test_stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_string_is_boolean
  - test_boolean_from_string
  - test_int_from_string
  - test_double_from_string
  - test_signal_from_string
  - test_CommandArg0_bound
  - main
  source_file: /src/core/tests/unit/conversion_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TestParsePolicy
  - DumpErrors
  - LoadAndCheck
  - LoadAndCheckString
  - test_failsafe
  - test_bundle_redefinition
  - test_bundle_reserved_name
  - test_body_redefinition
  - test_body_control_no_arguments
  - test_vars_multiple_types
  - test_methods_invalid_arity
  - test_promise_duplicate_handle
  - test_policy_json_to_from
  - test_policy_json_offsets
  - test_util_bundle_qualified_name
  - test_util_qualified_name_components
  - test_promiser_empty_varref
  - test_constraint_comment_nonscalar
  - test_body_action_with_log_repaired_needs_log_string
  - main
  source_file: /src/core/tests/unit/policy_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_parse
  - test_configuration
  - main
  source_file: /src/core/tests/unit/cf_upgrade_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_MatchFSInFstab
  - main
  source_file: /src/core/tests/unit/nfs_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - tests_teardown
  - main
  source_file: /src/core/tests/unit/persistent_lock_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - InitTime
  - InitFakeProcess
  - GetProcessStartTime
  - GetProcessState
  - FakeProcessDoSignals
  - kill
  - nanosleep
  - test_kill_simple_process
  - test_kill_wrong_process
  - test_kill_long_reacting_signal
  - test_kill_no_sigint
  - test_kill_no_sigint_sigterm
  - test_kill_anothers_process
  - main
  source_file: /src/core/tests/unit/process_terminate_unix_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - tests_teardown
  - test_class_persistence
  - test_changes_chroot
  - test_eval_with_token_from_list
  - test_persistent_class_timer_policy
  - main
  source_file: /src/core/tests/unit/eval_context_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - make_mock_package_module
  - test_add_module_to_context
  - test_default_package_module_settings
  - main
  source_file: /src/core/tests/unit/new_packages_promise_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - free_and_null_strings
  - test_split_line_challenges
  - test_split_line_elapsed
  - test_split_line_noelapsed
  - test_split_line_longcmd
  - test_split_line
  - test_split_line_serious_overspill
  - ListWriter
  - test_platform_extra_table
  - test_platform_specific_ps_examples
  - main
  source_file: /src/core/tests/unit/split_process_line_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*fp'
        type: FILE
      - name: '**lines'
        type: char
      item_type: struct
      name: LWData
      pos:
        line_end: 439
        line_start: 435
        source_file: /src/core/tests/unit/split_process_line_test.c
    typedefs: []
    union: []
- function_names:
  - test_match_region
  - main
  source_file: /src/core/tests/unit/item_lib_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PutVar
  - ReferenceTable
  - TestGet
  - test_get_in_default_namespace
  - test_multi_index_array_conflation
  - test_get_different_namespaces
  - test_get_indices
  - test_replace
  - test_remove
  - test_clear
  - test_counting
  - test_iterate_indices
  - test_iterate_indices_ordering_related
  - main
  source_file: /src/core/tests/unit/variable_test.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ref'
        type: VarRef
      - name: rval
        type: Rval
      - name: type
        type: DataType
      - name: '*tags'
        type: StringSet
      - name: '*comment'
        type: char
      - name: '*promise'
        type: Promise
      item_type: struct
      name: Variable_
      pos:
        line_end: 13
        line_start: 5
        source_file: /src/core/tests/unit/variable_test.c
    typedefs: []
    union: []
- function_names:
  - IsGlobalZone
  - ForeignZone
  - CurrentZoneName
  source_file: /src/core/libenv/zones.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZONE_ONLY
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/core/libenv/zones.c
      type_or_value: ARG_UNUSED
    structs: []
    typedefs: []
    union: []
- function_names:
  - RemoveTimeClass
  - InsertTimeClassF
  - GetTimeClasses
  - AddTimeClass
  - UpdateTimeClasses
  source_file: /src/core/libenv/time_classes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SIZEOF_IFREQ
  - SIZEOF_IFREQ
  - SIZEOF_IFREQ
  - GetMacAddress
  - GetInterfaceFlags
  - GetInterfacesInfo
  - FindV6InterfacesInfo
  - InitIgnoreInterfaces
  - IgnoreInterface
  - aix_get_mac_addr
  - ParsedIPAddressHex
  - JsonRewriteParsedIPAddress
  - JsonExtractParsedNumber
  - NetworkingRoutesPostProcessInfo
  - NetworkingIPv6RoutesPostProcessInfo
  - NetworkingIPv6AddressesPostProcessInfo
  - RankIPv6Address
  - NetworkingIPv6AddressesTiebreaker
  - GetPortStateString
  - NetworkingPortsPostProcessInfo
  - GetNetworkingStatsInfo
  - GetProcFileInfo
  - GetNetworkingInfo
  - GetNetworkingConnections
  source_file: /src/core/libenv/unix_iface.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_IFREQ
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/core/libenv/unix_iface.c
      type_or_value: '2048           '
    - item_type: preproc_def
      name: CF_IGNORE_INTERFACES
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/core/libenv/unix_iface.c
      type_or_value: '"ignore_interfaces.rx"'
    - item_type: preproc_def
      name: IPV6_PREFIX
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/core/libenv/unix_iface.c
      type_or_value: '"ipv6_"'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*ProcPostProcessFn)(void *ctx, void *json)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/core/libenv/unix_iface.c
      type: void
    - item_type: typedef
      name: '* (*ProcTiebreakerFn)(JsonElement *prev_item, JsonElement *this_item)'
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/core/libenv/unix_iface.c
      type: JsonElement
    union: []
- function_names: []
  source_file: /src/core/libenv/time_classes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CalculateDomainName
  - DetectDomainName
  - DiscoverVersion
  - GetNameInfo3
  - LoadSlowlyVaryingObservations
  - Get3Environment
  - BuiltinClasses
  - CreateHardClassesFromCanonification
  - SetFlavor
  - SetFlavor2
  - DefineVersionedHardClasses
  - OSReleaseParse
  - OSClasses
  - Apple_Version
  - Linux_Oracle_VM_Server_Version
  - Linux_Oracle_Version
  - Linux_Fedora_Version
  - Linux_Redhat_Version
  - Linux_Suse_Version
  - Linux_Slackware_Version
  - LinuxDebianSanitizeIssue
  - Linux_Misc_Version
  - Linux_Debian_Version
  - Linux_Mandrake_Version
  - Linux_Mandriva_Version
  - Linux_Mandriva_Version_Real
  - Linux_Amazon_Version
  - Linux_Alpine_Version
  - EOS_Version
  - MiscOS
  - VM_Version
  - Xen_Domain
  - OpenVZ_Detect
  - ReadLine
  - ReadFirstLine
  - Xen_Cpuid
  - Xen_Hv_Check
  - GetCPUInfo
  - GetUptimeSeconds
  - GetUptimeMinutes
  - GetBootTimeFromUptimeCommand
  - GetUserInfo
  - GetGroupInfo
  - GetSysVars
  - GetDefVars
  - SysOSNameHuman
  - FindNextInteger
  - SysOsVersionMajor
  - SetOsVersionMinorFromOSRelease
  - SetOsVersionMinorFromHardClass
  - SysOsVersionMinor
  - DetectEnvironment
  - SysPolicyReleaseId
  - SysPolicyVersion
  - DetectEnvironmentFromPolicy
  source_file: /src/core/libenv/sysinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '8'
    - item_type: preproc_def
      name: LSB_RELEASE_FILENAME
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/lsb-release"'
    - item_type: preproc_def
      name: DEBIAN_VERSION_FILENAME
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/debian_version"'
    - item_type: preproc_def
      name: DEBIAN_ISSUE_FILENAME
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/issue"'
    - item_type: preproc_def
      name: COMPONENTS_SIZE
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '17'
    - item_type: preproc_def
      name: SLACKWARE_ANCIENT_VERSION_FILENAME
      pos:
        line_end: 1366
        line_start: 1365
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/slackware-release"'
    - item_type: preproc_def
      name: SLACKWARE_VERSION_FILENAME
      pos:
        line_end: 1367
        line_start: 1366
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/slackware-version"'
    - item_type: preproc_def
      name: ORACLE_VM_SERVER_REL_FILENAME
      pos:
        line_end: 1790
        line_start: 1789
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/ovs-release"'
    - item_type: preproc_def
      name: ORACLE_VM_SERVER_ID
      pos:
        line_end: 1791
        line_start: 1790
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Oracle VM server"'
    - item_type: preproc_def
      name: ORACLE_REL_FILENAME
      pos:
        line_end: 1855
        line_start: 1854
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/oracle-release"'
    - item_type: preproc_def
      name: ORACLE_ID
      pos:
        line_end: 1856
        line_start: 1855
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Oracle Linux Server"'
    - item_type: preproc_def
      name: FEDORA_ID
      pos:
        line_end: 1898
        line_start: 1897
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Fedora"'
    - item_type: preproc_def
      name: RELEASE_FLAG
      pos:
        line_end: 1899
        line_start: 1898
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"release "'
    - item_type: preproc_def
      name: FEDORA_REL_FILENAME
      pos:
        line_end: 1907
        line_start: 1906
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/fedora-release"'
    - item_type: preproc_def
      name: REDHAT_ID
      pos:
        line_end: 1980
        line_start: 1979
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Linux"'
    - item_type: preproc_def
      name: REDHAT_ENT_ID
      pos:
        line_end: 1981
        line_start: 1980
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Enterprise Linux"'
    - item_type: preproc_def
      name: REDHAT_AS_ID
      pos:
        line_end: 1982
        line_start: 1981
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Enterprise Linux AS"'
    - item_type: preproc_def
      name: REDHAT_AS21_ID
      pos:
        line_end: 1983
        line_start: 1982
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Linux Advanced Server"'
    - item_type: preproc_def
      name: REDHAT_ES_ID
      pos:
        line_end: 1984
        line_start: 1983
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Enterprise Linux ES"'
    - item_type: preproc_def
      name: REDHAT_WS_ID
      pos:
        line_end: 1985
        line_start: 1984
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Enterprise Linux WS"'
    - item_type: preproc_def
      name: REDHAT_C_ID
      pos:
        line_end: 1986
        line_start: 1985
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Enterprise Linux Client"'
    - item_type: preproc_def
      name: REDHAT_S_ID
      pos:
        line_end: 1987
        line_start: 1986
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Enterprise Linux Server"'
    - item_type: preproc_def
      name: REDHAT_W_ID
      pos:
        line_end: 1988
        line_start: 1987
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Enterprise Linux Workstation"'
    - item_type: preproc_def
      name: REDHAT_CN_ID
      pos:
        line_end: 1989
        line_start: 1988
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Red Hat Enterprise Linux ComputeNode"'
    - item_type: preproc_def
      name: MANDRAKE_ID
      pos:
        line_end: 1990
        line_start: 1989
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Linux Mandrake"'
    - item_type: preproc_def
      name: MANDRAKE_10_1_ID
      pos:
        line_end: 1991
        line_start: 1990
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Mandrakelinux"'
    - item_type: preproc_def
      name: WHITEBOX_ID
      pos:
        line_end: 1992
        line_start: 1991
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"White Box Enterprise Linux"'
    - item_type: preproc_def
      name: CENTOS_ID
      pos:
        line_end: 1993
        line_start: 1992
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"CentOS"'
    - item_type: preproc_def
      name: SCIENTIFIC_SL_ID
      pos:
        line_end: 1994
        line_start: 1993
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Scientific Linux SL"'
    - item_type: preproc_def
      name: SCIENTIFIC_SL6_ID
      pos:
        line_end: 1995
        line_start: 1994
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Scientific Linux"'
    - item_type: preproc_def
      name: SCIENTIFIC_CERN_ID
      pos:
        line_end: 1996
        line_start: 1995
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Scientific Linux CERN"'
    - item_type: preproc_def
      name: RELEASE_FLAG
      pos:
        line_end: 1997
        line_start: 1996
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"release "'
    - item_type: preproc_def
      name: ORACLE_4_5_ID
      pos:
        line_end: 1998
        line_start: 1997
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Enterprise Linux Enterprise Linux Server"'
    - item_type: preproc_def
      name: RH_REL_FILENAME
      pos:
        line_end: 2016
        line_start: 2015
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/redhat-release"'
    - item_type: preproc_def
      name: SUSE_REL_FILENAME
      pos:
        line_end: 2216
        line_start: 2215
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/SuSE-release"'
    - item_type: preproc_def
      name: SUSE_SLES8_ID
      pos:
        line_end: 2218
        line_start: 2217
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"suse sles-8"'
    - item_type: preproc_def
      name: SUSE_SLES_ID
      pos:
        line_end: 2219
        line_start: 2218
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"suse linux enterprise server"'
    - item_type: preproc_def
      name: SUSE_SLED_ID
      pos:
        line_end: 2220
        line_start: 2219
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"suse linux enterprise desktop"'
    - item_type: preproc_def
      name: SUSE_RELEASE_FLAG
      pos:
        line_end: 2221
        line_start: 2220
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"linux "'
    - item_type: preproc_def
      name: MANDRAKE_ID
      pos:
        line_end: 2692
        line_start: 2691
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Linux Mandrake"'
    - item_type: preproc_def
      name: MANDRAKE_REV_ID
      pos:
        line_end: 2693
        line_start: 2692
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Mandrake Linux"'
    - item_type: preproc_def
      name: MANDRAKE_10_1_ID
      pos:
        line_end: 2694
        line_start: 2693
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Mandrakelinux"'
    - item_type: preproc_def
      name: MANDRAKE_REL_FILENAME
      pos:
        line_end: 2696
        line_start: 2695
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/mandrake-release"'
    - item_type: preproc_def
      name: MANDRIVA_ID
      pos:
        line_end: 2742
        line_start: 2741
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"Mandriva Linux"'
    - item_type: preproc_def
      name: MANDRIVA_REL_FILENAME
      pos:
        line_end: 2744
        line_start: 2743
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/etc/mandriva-release"'
    - item_type: preproc_def
      name: RELEASE_FLAG
      pos:
        line_end: 2784
        line_start: 2783
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"release "'
    - item_type: preproc_def
      name: OPENVZ_HOST_FILENAME
      pos:
        line_end: 3076
        line_start: 3075
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/proc/bc/0"'
    - item_type: preproc_def
      name: OPENVZ_GUEST_FILENAME
      pos:
        line_end: 3077
        line_start: 3076
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/proc/vz"'
    - item_type: preproc_def
      name: OPENVZ_VZPS_FILE
      pos:
        line_end: 3079
        line_start: 3078
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"/bin/vzps"'
    - item_type: preproc_def
      name: UPTIME_REGEXP
      pos:
        line_end: 3491
        line_start: 3490
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '" up (\\d+ day[^,]*,|) *(\\d+( ho?u?r|:(\\d+))|(\\d+) min)"'
    - item_type: preproc_def
      name: UPTIME_BACKREFS
      pos:
        line_end: 3492
        line_start: 3491
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SUPPORTED_PLATFORMS
      pos:
        line_end: 3936
        line_start: 3935
        source_file: /src/core/libenv/sysinfo.c
      type_or_value: '"debian|ubuntu|redhat|rhel|centos|fedora|aix|hpux|suse|opensuse|opensuse_leap|slackware|sles|solaris|sunos|windows|freebsd|macos"'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: u[3]
        type: uint32_t
      - name: s[13]
        type: char
      item_type: union
      name: sig = {{0}}
      pos:
        line_end: 3204
        line_start: 3200
        source_file: /src/core/libenv/sysinfo.c
- function_names: []
  source_file: /src/core/libenv/zones.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libenv/sysinfo_priv.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libenv/sysinfo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LoadSystemConstants
  source_file: /src/core/libenv/constants.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LINESEP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/libenv/constants.c
      type_or_value: '"\r\n"'
    - item_type: preproc_def
      name: LINESEP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/core/libenv/constants.c
      type_or_value: '"\n"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libenv/constants.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-key/cf-key-functions.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - handleShowKeysSignal
  - SetupSignalsForCfKey
  - main
  - PrintHelp
  - CheckOpts
  source_file: /src/core/cf-key/cf-key.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIMESTAMP_VAL
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/core/cf-key/cf-key.c
      type_or_value: 1234 // Anything outside ASCII range.
    structs: []
    typedefs:
    - item_type: typedef
      name: (*CfKeySigHandler)(int signum)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/core/cf-key/cf-key.c
      type: void
    union: []
- function_names:
  - PrintDigest
  - ParseKeyArg
  - ShowHost
  - ShowLastSeenHosts
  - RemoveKeys
  - KeepKeyPromisesRSA
  - KeepKeyPromises
  - ENTERPRISE_FUNC_1ARG_DEFINE_STUB
  - ForceKeyRemoval
  - ForceIpAddressRemoval
  source_file: /src/core/cf-key/cf-key-functions.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOST_FMT_TRUNCATE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/core/cf-key/cf-key-functions.c
      type_or_value: '"%-10.10s %-40.40s %-25.25s %-26.26s %-s\n"'
    - item_type: preproc_def
      name: HOST_FMT_NO_TRUNCATE
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/core/cf-key/cf-key-functions.c
      type_or_value: '"%s\t%s\t%s\t%s\t%s\n"'
    structs:
    - fields:
      - name: count
        type: int
      - name: truncate
        type: bool
      item_type: struct
      name: _HostPrintState
      pos:
        line_end: 128
        line_start: 124
        source_file: /src/core/cf-key/cf-key-functions.c
    typedefs: []
    union: []
- function_names:
  - main
  - CheckOpts
  source_file: /src/core/cf-promises/cf-promises.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_ipv4
  - test_char2hex
  - test_ipv6
  - test_generic_interface
  - test_ipv4_address_comparison
  - test_ipv6_address_comparison
  - test_isipaddress
  - test_string_is_local_host_ip
  - main
  source_file: /src/core/libntech/tests/unit/ipaddress_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_init_destroy_RefCount
  - test_attach_detach_RefCount
  - test_isSharedRefCount
  - test_isEqualRefCount
  - main
  source_file: /src/core/libntech/tests/unit/refcount_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_StringJoin
  - test_StringSplit
  - main
  source_file: /src/core/libntech/tests/unit/string_sequence_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - file_read_string
  - assert_file_equal
  - _assert_double_close
  - test_progress
  - test_progress_end
  source_file: /src/core/libntech/tests/unit/test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMALL_DIFF
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/core/libntech/tests/unit/test.c
      type_or_value: 1e-14
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_push_pop
  - test_pop_empty_and_push_null
  - test_copy
  - test_push_report_count
  - test_expand
  - main
  source_file: /src/core/libntech/tests/unit/threaded_stack_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_fsattrs_immutable_flag
  - main
  source_file: /src/core/libntech/tests/unit/fsattrs_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_get_token
  - test_mix_case_tolower
  - test_empty_tolower
  - test_weird_chars_tolower
  - test_alphabet_tolower
  - test_hi_alphabet_tolower
  - test_inplace_tolower
  - test_mix_case_toupper
  - test_empty_toupper
  - test_weird_chars_toupper
  - test_alphabet_toupper
  - test_hi_alphabet_toupper
  - test_inplace_toupper
  - test_long_search
  - test_replace_empty_pattern
  - test_replace_empty_replacement
  - test_replace_eq_size
  - test_replace_more_size
  - test_replace_less_size
  - test_no_replace
  - test_string_replace_empty_replacement
  - test_string_replace_eq_size
  - test_string_replace_buf_too_small
  - test_string_replace_smaller
  - test_string_replace_none
  - test_string_replace_many_percentages
  - test_string_replace_n
  - test_concatenate
  - test_substring_overshoot
  - test_substring_result_is_one_char
  - test_substring_empty_input
  - test_substring_empty_output
  - test_substring_positive
  - test_substring_negative_length
  - test_substring_negative
  - test_substring_evil
  - test_string_to_long
  - test_string_to_long_default
  - test_string_to_long_errors
  - test_string_to_long_unsafe
  - assert_string_to_long_unsafe
  - test_string_to_long_compatibility
  - ASSERT_INT_EQUAL_STRING_DECIMAL_TO_LONG
  - test_string_decimal_to_long
  - test_string_decimal_to_long_errors
  - test_string_to_ulong
  - test_string_to_ulong_default
  - test_string_to_ulong_errors
  - test_string_to_int64
  - test_string_from_long
  - test_string_to_double
  - test_string_from_double
  - test_safe_compare
  - test_safe_equal
  - test_safe_compare_ignore_case
  - test_safe_equal_ignore_case
  - test_safe_equal_n
  - test_is_string_in_array
  - test_encode_base64
  - test_escape_char_copy
  - test_chop_no_spaces
  - test_chop_single_space
  - test_chop_two_spaces
  - test_chop_empty
  - test_chop_empty_single_space
  - test_chop_empty_two_spaces
  - test_trim_crlf
  - test_close_hole
  - test_ends_with
  - test_stringvformat_sup
  - test_stringvformat
  - test_stringformat
  - test_string_copy
  - test_stringscanfcapped
  - test_PathAppend
  - test_StrCat
  - test_StrCatDelim
  - test_StringMatchesOption
  - test_StringIsSHA1Hex
  - test_StringFind
  - main
  source_file: /src/core/libntech/tests/unit/string_lib_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __gcov_init
  - __gcov_merge_add
  - __gcov_execv
  - __gcov_execl
  - __gcov_fork
  source_file: /src/core/libntech/tests/unit/gcov-stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_comment
  - test_no_attr
  - test_tag
  - test_complex_tag
  - test_escape
  - main
  - __ProgrammingError
  - FatalError
  source_file: /src/core/libntech/tests/unit/xml_writer_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_push_pop
  - test_pop_empty_and_push_null
  - test_copy
  - test_push_report_count
  - test_expand
  - test_pushn
  - test_popn
  - test_popn_into_array
  - test_clear
  - test_clear_and_push
  - thread_pop
  - thread_pop_5_3
  - thread_push
  - thread_wait_empty
  - thread_just_wait_empty
  - test_threads_wait_pop
  - test_threads_wait_empty
  - test_threads_pushn
  - test_threads_clear_empty
  - main
  source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POP_ITERATIONS
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
      type_or_value: '100'
    - item_type: preproc_def
      name: WAIT_ITERATIONS
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/core/libntech/tests/unit/threaded_queue_test.c
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CFENGINE_TEST_fwrite
  - CFENGINE_TEST_fclose
  - test_empty_file_buffer
  - test_write_empty_file_buffer
  - test_write_file_buffer
  - test_multiwrite_file_buffer
  - main
  - __ProgrammingError
  - FatalError
  source_file: /src/core/libntech/tests/unit/file_writer_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_basics
  - test_destroy
  - main
  source_file: /src/core/libntech/tests/unit/queue_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_stringset_from_string
  - test_stringset_clear
  - test_stringset_serialization
  - test_stringset_join
  - test_json_array_to_stringset
  - test_stringset_add_f
  - main
  source_file: /src/core/libntech/tests/unit/set_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - assert_int_equal
  - assert_true
  - assert_false
  - clear_tempfiles
  - main
  source_file: /src/core/libntech/tests/unit/file_lock_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEMP_DIR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/core/libntech/tests/unit/file_lock_test.c
      type_or_value: '"/data/data/com.termux/files/usr/tmp"'
    - item_type: preproc_def
      name: TEMP_DIR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/core/libntech/tests/unit/file_lock_test.c
      type_or_value: '"/tmp/file_lib_test"'
    - item_type: preproc_def
      name: TEST_FILE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/core/libntech/tests/unit/file_lock_test.c
      type_or_value: '"file_lib_test.txt"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_metric_prefixes
  - main
  source_file: /src/core/libntech/tests/unit/definitions_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_empty_string_buffer
  - test_write_empty_string_buffer
  - test_write_string_buffer
  - test_multiwrite_string_buffer
  - test_write_char_string_buffer
  - test_release_string
  - main
  - __ProgrammingError
  source_file: /src/core/libntech/tests/unit/string_writer_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/tests/unit/schema.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CUNIT_INIT
      pos:
        line_end: 14
        line_start: 4
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"<\\?xml version=\\\"1.0\\\" \\?>\\n\" \\\n    \"<\\?xml-stylesheet
        type=\\\"text/xsl\\\" href=\\\"CUnit-Run.xsl\\\" \\?>\\n\" \\\n    \"<!DOCTYPE
        CUNIT_TEST_RUN_REPORT SYSTEM \\\"CUnit-Run.dtd\\\">\\n\" \\\n    \"<CUNIT_TEST_RUN_REPORT>\\n\"
        \\\n    \"  <CUNIT_HEADER/>\\n\" \\\n    \"  <CUNIT_RESULT_LISTING>\\n\" \\\n
        \   \"    <CUNIT_RUN_SUITE>\\n\" \\\n    \"      <CUNIT_RUN_SUITE_SUCCESS>\\n\"
        \\\n    \"        <SUITE_NAME> %s suite </SUITE_NAME>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_SUCCESS
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_SUCCESS>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"          </CUNIT_RUN_TEST_SUCCESS>\\n\"
        \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_START
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT
      pos:
        line_end: 33
        line_start: 24
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(%lld) </CONDITION>\\n\" \\\n    \"          </CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT_EQUALITY_LLD
      pos:
        line_end: 42
        line_start: 33
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(%lld, %lld) </CONDITION>\\n\" \\\n    \"
        \         </CUNIT_RUN_TEST_FAILURE>\\n\" \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT_EQUALITY_STRING
      pos:
        line_end: 51
        line_start: 42
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(%s %s) </CONDITION>\\n\" \\\n    \"          </CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT_RANGE_LLD
      pos:
        line_end: 60
        line_start: 51
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(value=%lld, min=%lld, max=%lld) </CONDITION>\\n\"
        \\\n    \"          </CUNIT_RUN_TEST_FAILURE>\\n\" \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_FAILURE_ASSERT_SET_LLD
      pos:
        line_end: 69
        line_start: 60
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_FAILURE>\\n\"
        \\\n    \"            <TEST_NAME> %s </TEST_NAME>\\n\" \\\n    \"            <FILE_NAME>
        %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER> %d </LINE_NUMBER>\\n\"
        \\\n    \"            <CONDITION> %s(value=%lld, number_of_values=%lld) </CONDITION>\\n\"
        \\\n    \"          </CUNIT_RUN_TEST_FAILURE>\\n\" \\\n    \"        </CUNIT_RUN_TEST_RECORD>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_TEST_ERROR
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <CUNIT_RUN_TEST_RECORD>\\n\" \\\n    \"          <CUNIT_RUN_TEST_ERROR>\\n\"
        \\\n    \"            <FILE_NAME> %s </FILE_NAME>\\n\" \\\n    \"            <LINE_NUMBER>
        %d </LINE_NUMBER>\\n\""
    - item_type: preproc_def
      name: CUNIT_RUN_SUMMARY
      pos:
        line_end: 107
        line_start: 74
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"      </CUNIT_RUN_SUITE_SUCCESS>\\n\" \\\n    \"    </CUNIT_RUN_SUITE>\\n\"
        \\\n    \"  </CUNIT_RESULT_LISTING>\\n\" \\\n    \"  <CUNIT_RUN_SUMMARY>\\n\"
        \\\n    \"    <CUNIT_RUN_SUMMARY_RECORD>\\n\" \\\n    \"      <TYPE> %s </TYPE>\\n\"
        \\\n    \"      <TOTAL> %d </TOTAL>\\n\" \\\n    \"      <RUN> %d </RUN>\\n\"
        \\\n    \"      <SUCCEEDED> %d </SUCCEEDED>\\n\" \\\n    \"      <FAILED>
        %d </FAILED>\\n\" \\\n    \"      <INACTIVE> %d </INACTIVE>\\n\" \\\n    \"
        \   </CUNIT_RUN_SUMMARY_RECORD>\\n\" \\\n    \"    <CUNIT_RUN_SUMMARY_RECORD>\\n\"
        \\\n    \"      <TYPE> %s </TYPE>\\n\" \\\n    \"      <TOTAL> %d </TOTAL>\\n\"
        \\\n    \"      <RUN> %d </RUN>\\n\" \\\n    \"      <SUCCEEDED> %d </SUCCEEDED>\\n\"
        \\\n    \"      <FAILED> %d </FAILED>\\n\" \\\n    \"      <INACTIVE> %d </INACTIVE>\\n\"
        \\\n    \"    </CUNIT_RUN_SUMMARY_RECORD>\\n\" \\\n    \"    <CUNIT_RUN_SUMMARY_RECORD>\\n\"
        \\\n    \"      <TYPE> %s </TYPE>\\n\" \\\n    \"      <TOTAL> %d </TOTAL>\\n\"
        \\\n    \"      <RUN> %d </RUN>\\n\" \\\n    \"      <SUCCEEDED> %d </SUCCEEDED>\\n\"
        \\\n    \"      <FAILED> %d </FAILED>\\n\" \\\n    \"      <INACTIVE> %d </INACTIVE>\\n\"
        \\\n    \"    </CUNIT_RUN_SUMMARY_RECORD>\\n\" \\\n    \"  </CUNIT_RUN_SUMMARY>\\n\"
        \\\n    \"  <CUNIT_FOOTER> File Generated By CUnit v2.1-2 - %s\\n\" \\\n    \"
        \ </CUNIT_FOOTER>\\n\" \\\n    \"</CUNIT_TEST_RUN_REPORT>\\n\""
    - item_type: preproc_def
      name: XS_INIT_TESTSUITE
      pos:
        line_end: 118
        line_start: 109
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"<\\?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"\\?>\\n\"
        \\\n    \"<testsuite name=\\\"%s\\\"\\n\" \\\n    \"           timestamp=\\\"%s\\\"\\n\"
        \\\n    \"           hostname=\\\"%s\\\"\\n\" \\\n    \"           tests=\\\"%d\\\"\\n\"
        \\\n    \"           failures=\\\"%d\\\"\\n\" \\\n    \"           errors=\\\"%d\\\"\\n\"
        \\\n    \"           time=\\\"%2lf seconds\\\">\\n\""
    - item_type: preproc_def
      name: XS_TESTCASE
      pos:
        line_end: 122
        line_start: 118
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"    <testcase name=\\\"%s\\\"\\n\" \\\n    \"              classname=\\\"%s\\\"\\n\"
        \\\n    \"              time=\\\"%2lf seconds\\\">\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT
      pos:
        line_end: 126
        line_start: 122
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(%lld)\\\"\\n\" \\\n    \"                 message=\\\"FAILED
        at %s:%d - %s(%lld)\\\">\\n\" \\\n    \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT_EQUALITY_LLD
      pos:
        line_end: 130
        line_start: 126
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(%lld, %lld)\\\"\\n\" \\\n    \"
        \                message=\\\"FAILED at %s:%d - %s(%lld, %lld)\\\">\\n\" \\\n
        \   \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT_EQUALITY_STRING
      pos:
        line_end: 134
        line_start: 130
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(%s, %s)\\\"\\n\" \\\n    \"                 message=\\\"FAILED
        at %s:%d - %s(%s, %s)\\\">\\n\" \\\n    \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT_RANGE_LLD
      pos:
        line_end: 138
        line_start: 134
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(value=%lld, min=%lld, max=%lld)\\\"\\n\"
        \\\n    \"                 message=\\\"FAILED at %s:%d - %s(value=%lld, min=%lld,
        max=%lld)\\\">\\n\" \\\n    \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_FAILURE_ASSERT_SET_LLD
      pos:
        line_end: 142
        line_start: 138
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <failure type=\\\"%s(value=%lld, number_of_values=%lld)\\\"\\n\"
        \\\n    \"                 message=\\\"FAILED at %s:%d - %s(value=%lld, number_of_values=%lld)\\\">\\n\"
        \\\n    \"        </failure>\\n\""
    - item_type: preproc_def
      name: XS_RUN_TEST_ERROR
      pos:
        line_end: 146
        line_start: 143
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: "\"        <error type=\\\"%s\\\"\\n\" \\\n    \"               message=\""
    - item_type: preproc_def
      name: XS_RUN_TEST_ERROR_END
      pos:
        line_end: 148
        line_start: 146
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: '"        </error>\n"'
    - item_type: preproc_def
      name: XS_TESTCASE_END
      pos:
        line_end: 151
        line_start: 149
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: '"    </testcase>\n"'
    - item_type: preproc_def
      name: XS_TESTSUITE_END
      pos:
        line_end: 153
        line_start: 151
        source_file: /src/core/libntech/tests/unit/schema.h
      type_or_value: '"</testsuite>\n"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tests_setup
  - tests_teardown
  - test_HashString
  - test_HashDescriptor
  - test_HashKey
  - test_HashCopy
  - test_HashesMatch
  - test_StringCopyTruncateAndHashIfNecessary
  - main
  source_file: /src/core/libntech/tests/unit/hash_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASSERT_IF_NOT_INITIALIZED
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/core/libntech/tests/unit/hash_test.c
      type_or_value: assert_int_equal(1, initialized)
    structs: []
    typedefs: []
    union: []
- function_names:
  - _IntCopy
  - _IntCompare
  - IntTreeNew_
  - test_new_destroy
  - test_put_overwrite
  - test_put_remove
  - test_put_remove_inorder
  - test_iterate_empty
  - test_iterate
  - test_put_remove_random
  - test_clear
  - test_equal
  - test_copy
  - main
  source_file: /src/core/libntech/tests/unit/rb-tree-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_init_destroy
  - test_trylock_impl
  - test_trylock_dynamic
  - test_trylock_static
  - test_trylock_static_errorcheck
  - test_create
  - increment_shared_var
  - test_lock
  - create_children
  - join_children
  - main
  source_file: /src/core/libntech/tests/unit/thread_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_THREADS
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/core/libntech/tests/unit/thread_test.c
      type_or_value: '100'
    - item_type: preproc_def
      name: THREAD_ITERATIONS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/core/libntech/tests/unit/thread_test.c
      type_or_value: '1000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_xasprintf
  - test_xvasprintf_sub
  - test_xvasprintf
  - test_free_array_items
  - main
  source_file: /src/core/libntech/tests/unit/alloc_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LoadTestFile
  - test_new_delete
  - test_object_duplicate_key
  - test_show_string
  - test_show_object_simple
  - test_show_object_escaped
  - test_show_object_numeric
  - test_show_object_boolean
  - test_show_object_compound
  - test_show_object_compound_compact
  - test_show_object_array
  - test_show_array
  - test_show_array_compact
  - test_show_array_boolean
  - test_show_array_numeric
  - test_show_array_object
  - test_show_array_empty
  - test_show_array_nan
  - test_show_array_infinity
  - test_object_get_string
  - test_object_get_bool
  - test_object_get_array
  - test_object_iterator
  - test_array_get_string
  - test_array_iterator
  - test_copy_compare
  - test_compare_container_type_mismatch
  - test_select
  - test_merge_array
  - test_merge_object
  - test_parse_empty_containers
  - test_parse_object_simple
  - test_parse_object_escaped
  - test_parse_tzz_evil_key
  - test_parse_primitives
  - test_parse_array_simple
  - test_parse_object_compound
  - test_parse_object_diverse
  - test_parse_array_object
  - test_iterator_current
  - VisitPrimitive
  - VisitArray
  - VisitObject
  - VisitArrayAbortOnEmpty
  - test_json_walk
  - test_parse_empty_string
  - JsonToString
  - test_parse_escaped_string
  - test_parse_big_numbers
  - test_parse_good_numbers
  - test_parse_bad_numbers
  - test_parse_trim
  - test_parse_array_extra_closing
  - test_parse_all
  - test_parse_array_diverse
  - test_parse_bad_apple2
  - test_parse_object_garbage
  - test_parse_object_nested_garbage
  - test_parse_array_garbage
  - test_parse_array_nested_garbage
  - test_array_extend
  - test_array_remove_range
  - test_remove_key_from_object
  - test_detach_key_from_object
  - test_parse_array_double_and_trailing_commas
  - test_parse_array_comma_after_brace
  - test_parse_array_bad_nested_elems
  - test_parse_object_double_colon
  - test_parse_object_double_and_trailing_comma
  - assert_json_strings_eq
  - test_string_escape
  - assert_json5_data_eq
  - assert_json5_strings
  - test_string_escape_json5
  - test_json_null_not_null
  - check_json_object_merge_deep
  - test_json_object_merge_deep
  - test_json_get_type_as_string
  - test_json_parse_object_missing_comma
  - main
  source_file: /src/core/libntech/tests/unit/json_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INFINITY
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/core/libntech/tests/unit/json_test.c
      type_or_value: (1.0 / 0.0)
    - item_type: preproc_def
      name: JSON_TEST_BIG_NUMBER
      pos:
        line_end: 1029
        line_start: 1028
        source_file: /src/core/libntech/tests/unit/json_test.c
      type_or_value: '"9999999999"'
    - item_type: preproc_def
      name: JSON_TEST_BIG_NUMBER_INT64
      pos:
        line_end: 1030
        line_start: 1029
        source_file: /src/core/libntech/tests/unit/json_test.c
      type_or_value: 9999999999LL
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConstHash
  - test_new_destroy
  - test_new_hashmap_bad_size
  - test_insert
  - CharTimes
  - test_insert_jumbo
  - test_remove
  - test_add_n_as_to_map
  - test_remove_n_as_from_map
  - assert_n_as_in_map
  - test_grow
  - test_shrink
  - test_no_shrink_below_init_size
  - test_get
  - test_has_key
  - test_clear
  - test_clear_hashmap
  - test_soft_destroy
  - test_iterate_jumbo
  - test_insert_jumbo_more
  - test_hashmap_new_destroy
  - test_hashmap_degenerate_hash_fn
  - ARRAY_STRING_KEY
  - ARRAY_STRING_VALUE
  - MallocStringKey
  - MallocStringValue
  - test_array_map_insert
  - test_array_map_get
  - test_array_map_remove
  - test_array_map_soft_destroy
  - test_array_map_key_referenced_in_value
  - test_array_map_iterator
  - test_hash_map_key_referenced_in_value
  - main
  source_file: /src/core/libntech/tests/unit/map_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_MAP_INIT_SIZE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/core/libntech/tests/unit/map_test.c
      type_or_value: '128'
    - item_type: preproc_def
      name: HASH_MAP_MAX_LOAD_FACTOR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/core/libntech/tests/unit/map_test.c
      type_or_value: '0.75'
    - item_type: preproc_def
      name: HASH_MAP_MIN_LOAD_FACTOR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/core/libntech/tests/unit/map_test.c
      type_or_value: '0.35'
    - item_type: preproc_def
      name: MIN_HASHMAP_BUCKETS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/core/libntech/tests/unit/map_test.c
      type_or_value: 1 << 5
    structs:
    - fields:
      - name: '*keyref'
        type: char
      - name: val
        type: int
      item_type: struct
      name: TestValue
      pos:
        line_end: 677
        line_start: 673
        source_file: /src/core/libntech/tests/unit/map_test.c
    typedefs: []
    union: []
- function_names:
  - test_push_pop
  - test_pop_empty_and_push_null
  - test_copy
  - test_push_report_count
  - test_expand
  - test_popn
  - thread_pop
  - thread_push
  - thread_wait_empty
  - test_threads_wait_pop
  - test_threads_wait_empty
  - main
  source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POP_ITERATIONS
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
      type_or_value: '100'
    - item_type: preproc_def
      name: WAIT_ITERATIONS
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/core/libntech/tests/unit/threaded_deque_test.c
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRINT_TEST_BANNER
  - assert_double_close
  - assert_string_int_equal
  source_file: /src/core/libntech/tests/unit/test.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_match
  - test_match_full
  - test_match_with_captures
  - test_search_and_replace
  - test_search_and_replace_bad_backrefs
  - main
  source_file: /src/core/libntech/tests/unit/regex_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SequenceCreateRange
  - test_create_destroy
  - test_append
  - test_set
  - CompareNumbers
  - test_append_once
  - test_lookup
  - test_binary_lookup
  - test_index_of
  - test_binary_index_of
  - test_sort
  - test_soft_sort
  - test_remove_range
  - test_remove
  - test_reverse
  - test_split
  - test_len
  - test_get_range
  - test_get_data
  - test_seq_string_contains
  - test_seq_string_length
  - test_string_deserialize
  - test_string_serialize
  - test_seq_string_file
  - test_seq_string_empty_file
  - test_sscanf
  - test_string_prefix
  - dupl_checker
  - test_valid_duplicate
  - main
  source_file: /src/core/libntech/tests/unit/sequence_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FMT_SPACE
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/core/libntech/tests/unit/sequence_test.c
      type_or_value: '"%*[ ]" // Matches exactly 1 space and discards it'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fn1
  - fn2
  - fn3
  - main
  source_file: /src/core/libntech/tests/unit/cleanup_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_expand_braces
  - test_normalize_path
  - test_translate_bracket
  - test_translate_glob
  - test_glob_match
  - test_glob_find
  - test_glob_file_list
  - test_is_wildcard_pattern
  - main
  source_file: /src/core/libntech/tests/unit/glob_lib_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - switch_symlink_hook
  - complain_missing_sudo
  - chdir_or_exit
  - save_test_dir
  - close_test_dir
  - clear_tempfiles
  - setup_tempfiles
  - return_to_test_dir
  - check_contents
  - test_safe_open_currentdir
  - test_safe_open_subdir
  - test_safe_open_subsubdir
  - test_safe_open_updir
  - test_safe_open_upupdir
  - test_safe_open_generic_relative_dir
  - test_safe_open_generic_absolute_dir
  - test_safe_open_extra_slashes_relative
  - test_safe_open_extra_slashes_absolute
  - test_safe_open_unsafe_symlink
  - test_safe_open_safe_symlink
  - test_safe_open_unsafe_inserted_symlink
  - test_safe_open_safe_inserted_symlink
  - test_safe_open_unsafe_switched_symlink
  - test_safe_open_safe_switched_symlink
  - test_safe_open_unsafe_dir_symlink
  - test_safe_open_safe_dir_symlink
  - test_safe_open_unsafe_inserted_dir_symlink
  - test_safe_open_safe_inserted_dir_symlink
  - test_safe_open_unsafe_switched_dir_symlink
  - test_safe_open_safe_switched_dir_symlink
  - test_safe_open_create_safe_inserted_symlink
  - test_safe_open_create_alternating_symlink
  - test_safe_open_create_unsafe_switched_symlink
  - test_safe_open_create_switched_dangling_symlink
  - test_safe_open_create_switched_dangling_symlink_exclusively
  - test_safe_open_create_dangling_symlink_exclusively
  - test_safe_open_switched_dangling_symlink
  - test_safe_open_root
  - test_safe_open_ending_slashes
  - test_safe_open_null
  - test_safe_open_empty
  - GetFileSize
  - assert_file_not_exists
  - create_test_file
  - test_safe_open_TRUNC_safe_switched_symlink
  - test_safe_open_TRUNC_unsafe_switched_symlink
  - test_safe_open_TRUNC_existing_nonempty
  - test_safe_open_TRUNC_existing_empty
  - test_safe_open_TRUNC_nonexisting
  - test_safe_open_CREAT_TRUNC_existing_nonempty
  - test_safe_open_CREAT_TRUNC_existing_empty
  - test_safe_open_CREAT_TRUNC_nonexisting
  - test_safe_fopen
  - test_safe_chown_plain_file
  - test_safe_chown_relative_file
  - test_safe_chown_absolute_file
  - test_safe_chown_file_extra_slashes
  - test_safe_chown_plain_directory
  - test_safe_chown_unsafe_link
  - test_safe_lchown_plain_file
  - test_safe_lchown_relative_file
  - test_safe_lchown_absolute_file
  - test_safe_lchown_file_extra_slashes
  - test_safe_lchown_plain_directory
  - test_safe_lchown_unsafe_link
  - test_safe_lchown_unsafe_link_to_directory
  - test_safe_chmod_plain_file
  - test_safe_chmod_relative_file
  - test_safe_chmod_absolute_file
  - test_safe_chmod_extra_slashes
  - test_safe_chmod_unsafe_link
  - test_safe_creat_exists
  - test_safe_creat_doesnt_exist
  - test_symlink_loop
  - test_safe_chmod_chown_fifos
  - test_file_can_open
  - test_file_copy
  - test_file_copy_to_dir
  - test_file_read
  - test_read_file_stream_to_buffer
  - test_full_read_write
  - test_is_dir_real
  - test_file_locking
  - test_file_locking_with_path
  - try_gaining_root_privileges
  - main
  source_file: /src/core/libntech/tests/unit/file_lib_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEMP_DIR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/core/libntech/tests/unit/file_lib_test.c
      type_or_value: '"/tmp/file_lib_test"'
    - item_type: preproc_def
      name: TEST_FILE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/libntech/tests/unit/file_lib_test.c
      type_or_value: '"file_lib_test.txt"'
    - item_type: preproc_def
      name: TEST_LINK
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/core/libntech/tests/unit/file_lib_test.c
      type_or_value: '"file_lib_test.link"'
    - item_type: preproc_def
      name: TEST_DIR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/core/libntech/tests/unit/file_lib_test.c
      type_or_value: '"file_lib_test.dir"'
    - item_type: preproc_def
      name: TEST_SUBDIR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/core/libntech/tests/unit/file_lib_test.c
      type_or_value: '"file_lib_test.sub"'
    - item_type: preproc_def
      name: TEST_SUBSUBDIR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/core/libntech/tests/unit/file_lib_test.c
      type_or_value: '"file_lib_test.sub/sub"'
    - item_type: preproc_def
      name: TEST_STRING
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/core/libntech/tests/unit/file_lib_test.c
      type_or_value: '"BLUE balloon"'
    - item_type: preproc_def
      name: TEST_SUBSTRING
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/core/libntech/tests/unit/file_lib_test.c
      type_or_value: '"YELLOW balloon"'
    - item_type: preproc_def
      name: TEST_SUBSUBSTRING
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/core/libntech/tests/unit/file_lib_test.c
      type_or_value: '"RED balloon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_initList
  - testDestroyer
  - test_destroyer
  - test_prependToList
  - test_appendToList
  - compareFunction
  - copyFunction
  - test_removeFromList
  - test_destroyList
  - test_copyList
  - test_iterator
  - test_mutableIterator
  - main
  source_file: /src/core/libntech/tests/unit/list_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_memmem
  - test_snprintf
  - main
  source_file: /src/core/libntech/tests/unit/libcompat_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_SNPRINTF
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/core/libntech/tests/unit/libcompat_test.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cast_to_largest_integral_type
  - mock
  - will_return
  - will_return_count
  - expect_check
  - expect_in_set
  - expect_in_set_count
  - expect_not_in_set
  - expect_not_in_set_count
  - expect_in_range
  - expect_in_range_count
  - expect_not_in_range
  - expect_not_in_range_count
  - expect_value
  - expect_value_count
  - expect_not_value
  - expect_not_value_count
  - expect_string
  - expect_string_count
  - expect_not_string
  - expect_not_string_count
  - expect_memory
  - expect_memory_count
  - expect_not_memory
  - expect_not_memory_count
  - expect_any
  - expect_any_count
  - check_expected
  - assert_true
  - assert_false
  - assert_int_equal
  - assert_int_not_equal
  - assert_string_equal
  - assert_string_not_equal
  - assert_memory_equal
  - assert_memory_not_equal
  - assert_in_range
  - assert_not_in_range
  - assert_in_set
  - assert_not_in_set
  - fail
  - run_test
  - unit_test
  - unit_test_with_state
  - unit_test_setup
  - unit_test_teardown
  - unit_test_setup_teardown
  - run_tests
  - test_malloc
  - test_calloc
  - test_free
  - expect_assert_failure
  source_file: /src/core/libntech/tests/unit/cmockery.h
  types:
    enum:
    - enumerators:
      - name: UNIT_TEST_FUNCTION_TYPE_TEST
        value: '0'
      - name: UNIT_TEST_FUNCTION_TYPE_TEARDOWN
      - name: UNIT_TEST_FUNCTION_TYPE_SETUP
      - name: UNIT_TEST_FUNCTION_TYPE_TEST_WITH_STATE
      item_type: enum
      name: UnitTestFunctionType
      pos:
        line_end: 338
        line_start: 332
        source_file: /src/core/libntech/tests/unit/cmockery.h
    preproc_defs:
    - item_type: preproc_def
      name: FUNC_ATTR_NORETURN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: __FUNCTION__
    - item_type: preproc_def
      name: LargestIntegralType
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: LargestIntegralTypePrintfFormat
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: '"%I64x"'
    - item_type: preproc_def
      name: LargestIntegralTypePrintfDecimal
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: '"%I64d"'
    - item_type: preproc_def
      name: LargestIntegralTypePrintfFormat
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: '"%llx"'
    - item_type: preproc_def
      name: LargestIntegralTypePrintfDecimal
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: '"%lld"'
    - item_type: preproc_def
      name: malloc
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: test_malloc
    - item_type: preproc_def
      name: calloc
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: test_calloc
    - item_type: preproc_def
      name: free
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type_or_value: test_free
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: f
        type: "union\n    {\n        UnitTestFunction function;\n        UnitTestFunctionWithState
          function_with_state;\n    }"
      - name: function_type
        type: UnitTestFunctionType
      item_type: struct
      name: UnitTest
      pos:
        line_end: 353
        line_start: 344
        source_file: /src/core/libntech/tests/unit/cmockery.h
    - fields:
      - name: '*file'
        type: char
      - name: line
        type: int
      item_type: struct
      name: SourceLocation
      pos:
        line_end: 360
        line_start: 356
        source_file: /src/core/libntech/tests/unit/cmockery.h
    - fields:
      - name: location
        type: SourceLocation
      - name: '*parameter_name'
        type: char
      - name: check_value
        type: CheckParameterValue
      - name: check_value_data
        type: LargestIntegralType
      item_type: struct
      name: CheckParameterEvent
      pos:
        line_end: 369
        line_start: 363
        source_file: /src/core/libntech/tests/unit/cmockery.h
    typedefs:
    - item_type: typedef
      name: (*UnitTestFunction) (void)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type: void
    - item_type: typedef
      name: (*UnitTestFunctionWithState) (void **state)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type: void
    - item_type: typedef
      name: (*CheckParameterValue) (const LargestIntegralType value, const LargestIntegralType
        check_value_data)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/core/libntech/tests/unit/cmockery.h
      type: int
    union: []
- function_names:
  - ARRAY_LENGTH
  - declare_initialize_value_pointer_pointer
  - declare_initialize_value_pointer_value
  - cast_largest_integral_type_to_pointer
  - EXCEPTION_CODE_INFO
  - exit_test
  - exit_test_no_app
  - initialize_source_location
  - source_location_is_set
  - set_source_location
  - initialize_testing
  - fail_if_leftover_values
  - teardown_testing
  - list_initialize
  - list_add_value
  - list_add
  - list_remove
  - list_remove_free
  - list_free
  - list_empty
  - list_find
  - list_first
  - free_value
  - free_symbol_map_value
  - symbol_names_match
  - add_symbol_value
  - get_symbol_value
  - remove_always_return_values
  - check_for_leftover_values
  - _cast_to_largest_integral_type
  - _mock
  - _will_return
  - _expect_check
  - values_equal_display_error
  - values_not_equal_display_error
  - value_in_set_display_error
  - integer_in_range_display_error
  - integer_not_in_range_display_error
  - string_equal_display_error
  - string_not_equal_display_error
  - memory_equal_display_error
  - memory_not_equal_display_error
  - check_in_set
  - check_not_in_set
  - expect_set
  - _expect_in_set
  - _expect_not_in_set
  - check_in_range
  - check_not_in_range
  - expect_range
  - _expect_in_range
  - _expect_not_in_range
  - check_value
  - _expect_value
  - check_not_value
  - _expect_not_value
  - check_string
  - _expect_string
  - check_not_string
  - _expect_not_string
  - check_memory
  - expect_memory_setup
  - _expect_memory
  - check_not_memory
  - _expect_not_memory
  - check_any
  - _expect_any
  - _check_expected
  - mock_assert
  - _assert_true
  - _assert_int_equal
  - _assert_int_not_equal
  - _assert_string_equal
  - _assert_string_not_equal
  - _assert_memory_equal
  - _assert_memory_not_equal
  - _assert_in_range
  - _assert_not_in_range
  - _assert_in_set
  - _assert_not_in_set
  - get_allocated_blocks_list
  - _test_malloc
  - _test_calloc
  - _test_free
  - check_point_allocated_blocks
  - display_allocated_blocks
  - free_allocated_blocks
  - fail_if_blocks_allocated
  - _fail
  - exception_handler
  - exception_filter
  - vinit_xml
  - init_xml
  - vprint_xml
  - print_xml
  - append_xml
  - vprint_message
  - vprint_error
  - print_message
  - print_error
  - _run_test
  - _run_tests
  source_file: /src/core/libntech/tests/unit/cmockery.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MALLOC_GUARD_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MALLOC_GUARD_PATTERN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type_or_value: '0xEF'
    - item_type: preproc_def
      name: MALLOC_ALLOC_PATTERN
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type_or_value: '0xBA'
    - item_type: preproc_def
      name: MALLOC_FREE_PATTERN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type_or_value: '0xCD'
    - item_type: preproc_def
      name: MALLOC_ALIGNMENT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type_or_value: sizeof(size_t)
    - item_type: preproc_def
      name: SOURCE_LOCATION_FORMAT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type_or_value: '"%s:%d"'
    - item_type: preproc_def
      name: ARG_UNUSED
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type_or_value: __attribute__((unused))
    - item_type: preproc_def
      name: malloc
      pos:
        line_end: 1484
        line_start: 1483
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type_or_value: test_malloc
    - item_type: preproc_def
      name: free
      pos:
        line_end: 1546
        line_start: 1545
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type_or_value: test_free
    structs:
    - fields:
      - name: '*value'
        type: void
      - name: refcount
        type: int
      - name: '*next'
        type: struct ListNode
      - name: '*prev'
        type: struct ListNode
      item_type: struct
      name: ListNode
      pos:
        line_end: 98
        line_start: 92
        source_file: /src/core/libntech/tests/unit/cmockery.c
    - fields:
      - name: '*block'
        type: void
      - name: allocated_size
        type: size_t
      - name: size
        type: size_t
      - name: location
        type: SourceLocation
      - name: node
        type: ListNode
      item_type: struct
      name: MallocBlockInfo
      pos:
        line_end: 108
        line_start: 101
        source_file: /src/core/libntech/tests/unit/cmockery.c
    - fields:
      - name: '*check_point'
        type: ListNode
      - name: '*state'
        type: void
      item_type: struct
      name: TestState
      pos:
        line_end: 116
        line_start: 111
        source_file: /src/core/libntech/tests/unit/cmockery.c
    - fields:
      - name: location
        type: SourceLocation
      - name: value
        type: LargestIntegralType
      item_type: struct
      name: SymbolValue
      pos:
        line_end: 126
        line_start: 122
        source_file: /src/core/libntech/tests/unit/cmockery.c
    - fields:
      - name: '*symbol_name'
        type: char
      - name: symbol_values_list_head
        type: ListNode
      item_type: struct
      name: SymbolMapValue
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/core/libntech/tests/unit/cmockery.c
    - fields:
      - name: event
        type: CheckParameterEvent
      - name: minimum
        type: LargestIntegralType
      - name: maximum
        type: LargestIntegralType
      item_type: struct
      name: CheckIntegerRange
      pos:
        line_end: 147
        line_start: 142
        source_file: /src/core/libntech/tests/unit/cmockery.c
    - fields:
      - name: event
        type: CheckParameterEvent
      - name: '*set'
        type: LargestIntegralType
      - name: size_of_set
        type: size_t
      item_type: struct
      name: CheckIntegerSet
      pos:
        line_end: 155
        line_start: 150
        source_file: /src/core/libntech/tests/unit/cmockery.c
    - fields:
      - name: event
        type: CheckParameterEvent
      - name: '*memory'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: CheckMemoryData
      pos:
        line_end: 164
        line_start: 159
        source_file: /src/core/libntech/tests/unit/cmockery.c
    - fields:
      - name: code
        type: DWORD
      - name: '*description'
        type: char
      item_type: struct
      name: ExceptionCodeInfo
      pos:
        line_end: 253
        line_start: 249
        source_file: /src/core/libntech/tests/unit/cmockery.c
    typedefs:
    - item_type: typedef
      name: (*EqualityFunction) (const void *left, const void *right)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type: int
    - item_type: typedef
      name: (*CleanupListValue) (const void *value, void *cleanup_value_data)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type: void
    - item_type: typedef
      name: (*SignalFunction) (int signal)
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/core/libntech/tests/unit/cmockery.c
      type: void
    union:
    - fields:
      - name: value
        type: LargestIntegralType
      - name: '*pointer'
        type: void
      item_type: union
      name: ValuePointer
      pos:
        line_end: 89
        line_start: 85
        source_file: /src/core/libntech/tests/unit/cmockery.c
- function_names:
  - test_push_pop_top
  - test_pop_empty_and_push_null
  - test_copy
  - test_push_report_count
  - test_expand
  - main
  source_file: /src/core/libntech/tests/unit/stack_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_path_getquoted
  - main
  source_file: /src/core/libntech/tests/unit/path_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_timestamp_regex
  - main
  source_file: /src/core/libntech/tests/unit/logging_timestamp_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/core/libntech/tests/unit/logging_timestamp_test.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_unsigned_modulus
  - test_upper_power_of_two
  - ISPOW2_FORSURE
  - TYPED_TEST_ISPOW2
  - test_rand_ISPOW2
  - test_ISPOW2
  - test_ABS
  - test_putenv_wrapper
  - test_setenv_wrapper
  - main
  source_file: /src/core/libntech/tests/unit/misc_lib_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_COUNT
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/core/libntech/tests/unit/misc_lib_test.c
      type_or_value: '100000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_CompareVersion
  - test_CompareVersionExpression
  - main
  source_file: /src/core/libntech/tests/unit/version_comparison_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_new_csv_reader_empty_string
  - test_new_csv_reader_basic
  - test_new_csv_reader
  - test_new_csv_reader_lfln
  - test_new_csv_reader_lfln_at_end
  - test_new_csv_reader_lfln_at_end2
  - test_new_csv_reader_lfln_at_end3
  - test_get_next_line
  - test_get_next_line_edge_cases
  - test_new_csv_reader_zd3151_ENT3023
  - test_new_csv_reader_carriage_return
  - main
  source_file: /src/core/libntech/tests/unit/csv_parser_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_nt_static_assert
  - test_nt_static_assert_string_equal
  - main
  source_file: /src/core/libntech/tests/unit/condition_macros_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ABC
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/core/libntech/tests/unit/condition_macros_test.c
      type_or_value: '"ABC"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_createBuffer
  - test_createBufferFrom
  - test_destroyBuffer
  - test_setBuffer
  - test_zeroBuffer
  - test_copyCompareBuffer
  - test_appendBuffer
  - test_append_boundaries
  - test_printf
  - test_vprintf_helper
  - test_vprintf
  - main
  source_file: /src/core/libntech/tests/unit/buffer_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - single_line_check
  - test_ParseEnvLine
  - single_filter_check_moved
  - single_filter_check_in_place
  - double_filter_check
  - filter_expect_null
  - test_filtered_copy
  - main
  source_file: /src/core/libntech/tests/unit/env_file_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_excess
  - test_shortage
  - main
  source_file: /src/core/libntech/tests/unit/ring_buffer_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_empty
  - test_single_field
  - test_several_fields
  - test_two_records
  - test_empty_record
  - test_empty_last_record
  - test_escape
  - test_terminate
  - test_no_terminate
  - main
  - __ProgrammingError
  - FatalError
  source_file: /src/core/libntech/tests/unit/csv_writer_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/list.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: List
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/core/libntech/libutils/list.h
      type: List
    - item_type: typedef
      name: ListMutableIterator
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/core/libntech/libutils/list.h
      type: ListMutableIterator
    - item_type: typedef
      name: ListIterator
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/core/libntech/libutils/list.h
      type: ListIterator
    union: []
- function_names:
  - CompileRegex
  - RegexDestroy
  - StringMatchWithPrecompiledRegex
  - StringMatch
  - StringMatchFull
  - StringMatchFullWithPrecompiledRegex
  - StringMatchCapturesWithPrecompiledRegex
  - StringMatchCaptures
  - CompareStringOrRegex
  - RegexPartialMatch
  source_file: /src/core/libntech/libutils/regex.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/string_sequence.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STR_LENGTH_PREFIX_LEN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/core/libntech/libutils/string_sequence.h
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - StringVFormat
  - StringFormat
  - StringCopy
  - StringHash
  - StringHash_untyped
  - ToLower
  - ToUpper
  - ToUpperStrInplace
  - ToLowerStrInplace
  - SafeStringDuplicate
  - SafeStringNDuplicate
  - SafeStringLength
  - NullCompare
  - StringSafeCompare
  - StringSafeCompareN
  - StringEqual
  - StringEqualN
  - StringSafeCompare_IgnoreCase
  - StringSafeCompareN_IgnoreCase
  - StringEqual_IgnoreCase
  - StringEqualN_IgnoreCase
  - StringEqual_untyped
  - SearchAndReplace
  - StringConcatenate
  - StringSubstring
  - StringIsNumeric
  - StringIsPrintable
  - StringIsSHA1Hex
  - EmptyString
  - StringToLong
  - StringDecimalToLong
  - LogStringToLongError
  - StringToLongDefaultOnError
  - StringToLongExitOnError
  - StringToUlong
  - StringToUlongDefaultOnError
  - StringToUlongExitOnError
  - StringToInt64
  - StringToInt64ExitOnError
  - StringToInt64DefaultOnError
  - StringToLongUnsafe
  - StringFromLong
  - StringToDouble
  - StringFromDouble
  - NULLStringToEmpty
  - StringBytesToHex
  - IsStrIn
  - IsStrCaseIn
  - CountChar
  - ReplaceChar
  - StringReplace
  - StringReplaceN
  - ReplaceTrailingChar
  - StringRefNull
  - StringCountTokens
  - StringNextToken
  - StringGetToken
  - String2StringArray
  - FreeStringArray
  - EscapeCharCopy
  - ScanPastChars
  - StripTrailingNewline
  - Chop
  - TrimWhitespace
  - TrimCSVLineCRLF
  - TrimCSVLineCRLFStrict
  - StringCloseHole
  - StringEndsWithCase
  - StringEndsWith
  - StringStartsWith
  - memcchr
  - StringNotMatchingSetCapped
  - StringAppend
  - StringCanonify
  - PathAppend
  - StrCat
  - StrCatDelim
  - CanonifyNameInPlace
  - StringMatchesOption
  - StringFind
  source_file: /src/core/libntech/libutils/string_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UnsignedModulus
  - UpperPowerOfTwo
  - __ProgrammingError
  - __UnexpectedError
  - xclock_gettime
  - xsnprintf
  - setenv_wrapper
  - putenv_wrapper
  source_file: /src/core/libntech/libutils/misc_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/dir_priv.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/threaded_deque.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ThreadedDeque
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/core/libntech/libutils/threaded_deque.h
      type: ThreadedDeque_
    union: []
- function_names:
  - ExpandBraces
  - NormalizePath
  - TranslateBracket
  - TranslateGlob
  - IsWildcardPattern
  - GlobMatch
  - GlobFindDataCopy
  - GlobFindDataDestroy
  - ConvertLongNameToShortName
  - PathWalkCallback
  - EmptyStringFilter
  - PeelLiteralPrefix
  - GlobFind
  - GlobFileList
  source_file: /src/core/libntech/libutils/glob_lib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATH_DELIMITERS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/core/libntech/libutils/glob_lib.c
      type_or_value: '"\\/"'
    - item_type: preproc_def
      name: PATH_DELIMITERS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/libntech/libutils/glob_lib.c
      type_or_value: '"/"'
    structs:
    - fields:
      - name: '*components'
        type: Seq
      - name: '*matches'
        type: Seq
      item_type: struct
      name: GlobFindData
      pos:
        line_end: 336
        line_start: 332
        source_file: /src/core/libntech/libutils/glob_lib.c
    typedefs: []
    union: []
- function_names:
  - CompareVersion
  - CompareVersionExpression
  source_file: /src/core/libntech/libutils/version_comparison.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/path.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/json-priv.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Char2Dec
  - Char2Hex
  - IPV4_hex_parser
  - IPV4_parser
  - IPV6_hex_parser
  - IPV6_parser
  - IPAddressNew
  - IPAddressNewHex
  - IPAddressDestroy
  - IPAddressType
  - IPAddressGetAddress
  - IPAddressGetPort
  - IPV4Compare
  - IPV6Compare
  - IPAddressIsEqual
  - IPV4CompareLess
  - IPV6CompareLess
  - IPAddressCompareLess
  - IPAddressIsIPAddress
  - StringIsLocalHostIP
  source_file: /src/core/libntech/libutils/ip_address.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: octets[4]
        type: uint8_t
      - name: port
        type: uint16_t
      item_type: struct
      name: IPV4Address
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/core/libntech/libutils/ip_address.c
    - fields:
      - name: sixteen[8]
        type: uint16_t
      - name: port
        type: uint16_t
      item_type: struct
      name: IPV6Address
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/core/libntech/libutils/ip_address.c
    - fields:
      - name: '*address'
        type: void
      - name: type
        type: int
      item_type: struct
      name: IPAddress
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/core/libntech/libutils/ip_address.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/csv_parser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CSVCL_BLANK
  - CSVCL_QUOTE
  - CSVCL_SEP
  - CSVCL_EOL
  - CSVCL_ANY1
  - CSVCL_ANY2
  - CSVCL_ANY3
  - CSVCL_ANY4
  - CSVCL_ANY5
  - CSVCL_ANY6
  - CSVCL_ANY7
  - CSVCL_ANY8
  - LaunchCsvAutomata
  - SeqParseCsvString
  - GetCsvLineNext
  source_file: /src/core/libntech/libutils/csv_parser.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - KeyNumericParserCallback
  - ParseKeyNumericValue
  - ParseKeyValue
  source_file: /src/core/libntech/libutils/proc_keyvalue.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*orig_param'
        type: void
      - name: orig_callback
        type: KeyNumericValueCallback
      item_type: struct
      name: KeyNumericParserInfo
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/core/libntech/libutils/proc_keyvalue.c
    typedefs: []
    union: []
- function_names:
  - filtered_copy
  - ParseEnvLine
  - JsonParseEnvFile
  - JsonParseCsvFile
  - JsonReadDataFile
  - GetDataFileTypeFromString
  - GetDataFileTypeFromSuffix
  - DataFileTypeToString
  source_file: /src/core/libntech/libutils/json-utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENV_BYTE_LIMIT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/libntech/libutils/json-utils.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - JsonObjectMergeDeep
  - NULL_JSON
  - JSON_NOT_NULL
  source_file: /src/core/libntech/libutils/json.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*container'
        type: JsonElement
      - name: index
        type: size_t
      item_type: struct
      name: JsonIterator
      pos:
        line_end: 130
        line_start: 126
        source_file: /src/core/libntech/libutils/json.h
    - fields:
      - name: '*data'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: _Slice
      pos:
        line_end: 148
        line_start: 140
        source_file: /src/core/libntech/libutils/json.h
    typedefs:
    - item_type: typedef
      name: JsonElement
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/core/libntech/libutils/json.h
      type: JsonElement_
    - item_type: typedef
      name: "JsonComparator(\n    const JsonElement *, const JsonElement *, void *user_data)"
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/core/libntech/libutils/json.h
      type: int
    - item_type: typedef
      name: JsonElementVisitor(JsonElement *element, void *data)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/core/libntech/libutils/json.h
      type: bool
    - item_type: typedef
      name: '*JsonLookup(void *ctx, const char **data)'
      pos:
        line_end: 584
        line_start: 584
        source_file: /src/core/libntech/libutils/json.h
      type: JsonElement
    union: []
- function_names:
  - FSAttrsErrorCodeToString
  source_file: /src/core/libntech/libutils/fsattrs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - wait_for
  - PassOpenFile_Put
  - PassOpenFile_Get
  - CMSG_ALIGN
  - CMSG_SPACE
  - CMSG_LEN
  - PassOpenFile_Put
  - PassOpenFile_Get
  source_file: /src/core/libntech/libutils/passopenfile.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_MESSAGE_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/core/libntech/libutils/passopenfile.c
      type_or_value: '1024 '
    - item_type: preproc_def
      name: PID_MSG_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/core/libntech/libutils/passopenfile.c
      type_or_value: (PRINTSIZE(unsigned long) + 8)
    - item_type: preproc_def
      name: INTERFACE_STYLE
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/core/libntech/libutils/passopenfile.c
      type_or_value: '"SUS"'
    - item_type: preproc_def
      name: INTERFACE_STYLE
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/core/libntech/libutils/passopenfile.c
      type_or_value: '"BSD"'
    - item_type: preproc_def
      name: MSG_WAITALL
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/core/libntech/libutils/passopenfile.c
      type_or_value: '0'
    structs: []
    typedefs:
    - item_type: typedef
      name: MSG_LEN_T
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/core/libntech/libutils/passopenfile.c
      type: uint32_t
    union: []
- function_names:
  - __ThreadLock
  - __ThreadUnlock
  - __ThreadWait
  source_file: /src/core/libntech/libutils/mutex.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HashMapNew
  - HashMapGetBucket
  - HashMapResize
  - HashMapInsert
  - HashMapRemove
  - HashMapGet
  - FreeBucketListItem
  - FreeBucketListItemSoft
  - HashMapClear
  - HashMapSoftDestroy
  - HashMapDestroy
  - HashMapPrintStats
  - HashMapIteratorInit
  - HashMapIteratorNext
  source_file: /src/core/libntech/libutils/hash_map.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HASHMAP_BUCKETS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/core/libntech/libutils/hash_map.c
      type_or_value: (1 << 30)
    - item_type: preproc_def
      name: MIN_HASHMAP_BUCKETS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/core/libntech/libutils/hash_map.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: MAX_LOAD_FACTOR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/libntech/libutils/hash_map.c
      type_or_value: '0.75'
    - item_type: preproc_def
      name: MIN_LOAD_FACTOR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/libntech/libutils/hash_map.c
      type_or_value: '0.35'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/logging.h
  types:
    enum:
    - enumerators:
      - name: LOG_MOD_NONE
        value: '0'
      - name: LOG_MOD_PARSER
      - name: LOG_MOD_EVALCTX
      - name: LOG_MOD_EXPAND
      - name: LOG_MOD_ITERATIONS
      - name: LOG_MOD_VARTABLE
      - name: LOG_MOD_VARS
      - name: LOG_MOD_LOCKS
      - name: LOG_MOD_PS
      - name: LOG_MOD_MAX
      item_type: enum
      name: LogModule
      pos:
        line_end: 68
        line_start: 56
        source_file: /src/core/libntech/libutils/logging.h
    preproc_defs:
    - item_type: preproc_def
      name: LOGGING_TIMESTAMP_REGEX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/core/libntech/libutils/logging.h
      type_or_value: '"^20[0-9][0-9]-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]"'
    structs:
    - fields:
      - name: log_level
        type: LogLevel
      - name: report_level
        type: LogLevel
      - name: color
        type: bool
      - name: '*pctx'
        type: LoggingPrivContext
      item_type: struct
      name: LoggingContext
      pos:
        line_end: 81
        line_start: 74
        source_file: /src/core/libntech/libutils/logging.h
    typedefs: []
    union: []
- function_names:
  - free_array_items
  - DESTROY_AND_NULL
  - FREE_AND_NULL
  source_file: /src/core/libntech/libutils/alloc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: malloc
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/core/libntech/libutils/alloc.h
      type_or_value: __error_unchecked_malloc
    - item_type: preproc_def
      name: calloc
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/core/libntech/libutils/alloc.h
      type_or_value: __error_unchecked_calloc
    - item_type: preproc_def
      name: realloc
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/core/libntech/libutils/alloc.h
      type_or_value: __error_unchecked_realloc
    - item_type: preproc_def
      name: strdup
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/core/libntech/libutils/alloc.h
      type_or_value: __error_unchecked_strdup
    - item_type: preproc_def
      name: strndup
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/core/libntech/libutils/alloc.h
      type_or_value: __error_unchecked_strndup
    - item_type: preproc_def
      name: memdup
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/core/libntech/libutils/alloc.h
      type_or_value: __error_unchecked_memdup
    - item_type: preproc_def
      name: asprintf
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/core/libntech/libutils/alloc.h
      type_or_value: __error_unchecked_asprintf
    - item_type: preproc_def
      name: vasprintf
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/core/libntech/libutils/alloc.h
      type_or_value: __error_unchecked_vasprintf
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/hash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_HOSTKEY_STRING_SIZE
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/core/libntech/libutils/hash.h
      type_or_value: (4 + 2 * EVP_MAX_MD_SIZE + 1)
    structs: []
    typedefs:
    - item_type: typedef
      name: Hash
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/core/libntech/libutils/hash.h
      type: Hash
    union: []
- function_names:
  - StackInit
  - DestroyRange
  source_file: /src/core/libntech/libutils/stack_base.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXPAND_FACTOR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/core/libntech/libutils/stack_base.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_CAPACITY
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/libntech/libutils/stack_base.c
      type_or_value: '16'
    structs:
    - fields:
      - name: (*ItemDestroy) (void *item)
        type: void
      - name: '**data'
        type: void
      - name: size
        type: size_t
      - name: capacity
        type: size_t
      item_type: struct
      name: Stack_
      pos:
        line_end: 50
        line_start: 45
        source_file: /src/core/libntech/libutils/stack_base.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/threaded_stack.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ThreadedStack
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/core/libntech/libutils/threaded_stack.h
      type: ThreadedStack_
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/encode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DirOpen
  - DirRead
  - DirClose
  - GetNameMax
  - GetNameMax
  - GetDirentBufferSize
  - AllocateDirentForFilename
  source_file: /src/core/libntech/libutils/unix_dir.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*dirh'
        type: DIR
      - name: '*entrybuf'
        type: struct dirent
      item_type: struct
      name: Dir_
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/core/libntech/libutils/unix_dir.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/mustache.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IsIteratorValid
  - IsMutableIteratorValid
  - ChangeListState
  - ListDetach
  - ListNew
  - ListDestroy
  - ListCopy
  - ListPrepend
  - ListAppend
  - ListFindNode
  - ListUpdateListState
  - ListRemove
  - ListCount
  - ListIteratorGet
  - ListIteratorDestroy
  - ListIteratorFirst
  - ListIteratorLast
  - ListIteratorNext
  - ListIteratorPrevious
  - ListIteratorData
  - ListIteratorHasNext
  - ListIteratorHasPrevious
  - ListMutableIteratorGet
  - ListMutableIteratorRelease
  - ListMutableIteratorFirst
  - ListMutableIteratorLast
  - ListMutableIteratorNext
  - ListMutableIteratorPrevious
  - ListMutableIteratorData
  - ListMutableIteratorRemove
  - ListMutableIteratorPrepend
  - ListMutableIteratorAppend
  - ListMutableIteratorHasNext
  - ListMutableIteratorHasPrevious
  source_file: /src/core/libntech/libutils/list.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*payload'
        type: void
      - name: '*next'
        type: struct ListNode
      - name: '*previous'
        type: struct ListNode
      item_type: struct
      name: ListNode
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/core/libntech/libutils/list.c
    - fields:
      - name: valid
        type: int
      - name: '*current'
        type: ListNode
      - name: '*origin'
        type: List
      item_type: struct
      name: ListMutableIterator
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/core/libntech/libutils/list.c
    - fields:
      - name: node_count
        type: int
      - name: state
        type: unsigned int
      - name: '*list'
        type: ListNode
      - name: '*first'
        type: ListNode
      - name: '*last'
        type: ListNode
      - name: (*compare)(const void *a, const void *b)
        type: int
      - name: (*copy)(const void *source, void **destination)
        type: void
      - name: (*destroy)(void *element)
        type: void
      - name: '*ref_count'
        type: RefCount
      - name: '*iterator'
        type: ListMutableIterator
      item_type: struct
      name: List
      pos:
        line_end: 59
        line_start: 38
        source_file: /src/core/libntech/libutils/list.c
    - fields:
      - name: '*current'
        type: ListNode
      - name: '*origin'
        type: List
      - name: state
        type: unsigned int
      item_type: struct
      name: ListIterator
      pos:
        line_end: 64
        line_start: 60
        source_file: /src/core/libntech/libutils/list.c
    typedefs:
    - item_type: typedef
      name: ListNode
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/libntech/libutils/list.c
      type: ListNode
    union: []
- function_names:
  - WriteCopyright
  - WriteHeader
  - WriteAvailability
  - WriteAuthor
  - WriteName
  - WriteSynopsis
  - WriteDescription
  - WriteCommands
  - WriteOptions
  - WriteSeeAlso
  - WriteBugs
  - WriteCFEngine
  - WritePromiseTheory
  - ManPageWrite
  source_file: /src/core/libntech/libutils/man.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - JsonGetTypeAsString
  - JsonContainerTypeToString
  - JsonPrimitiveTypeToString
  - JsonElementSetPropertyName
  - JsonElementGetPropertyName
  - JsonElementCreateContainer
  - JsonElementCreatePrimitive
  - JsonArrayCopy
  - JsonObjectCopy
  - JsonContainerCopy
  - JsonPrimitiveCopy
  - JsonCopy
  - JsonArrayCompare
  - JsonObjectCompare
  - JsonContainerCompare
  - JsonCompare
  - JsonDestroy
  - JsonDestroyMaybe
  - JsonArrayMergeArray
  - JsonObjectMergeArray
  - JsonObjectMergeObject
  - JsonMerge
  - JsonObjectMergeDeepInplace
  - JsonLength
  - JsonIteratorInit
  - JsonIteratorNextKey
  - JsonIteratorNextValue
  - JsonIteratorNextValueByType
  - JsonIteratorCurrentValue
  - JsonIteratorCurrentKey
  - JsonIteratorCurrentElementType
  - JsonIteratorCurrentContainerType
  - JsonIteratorCurrentPrimitiveType
  - JsonIteratorHasMore
  - JsonGetElementType
  - JsonGetType
  - JsonGetContainerType
  - JsonGetPrimitiveType
  - JsonPrimitiveGetAsString
  - JsonPrimitiveToString
  - JsonPrimitiveGetAsBool
  - JsonPrimitiveGetAsInteger
  - JsonPrimitiveGetAsInt64
  - JsonPrimitiveGetAsInt64DefaultOnError
  - JsonPrimitiveGetAsInt64ExitOnError
  - JsonPrimitiveGetAsReal
  - JsonGetPropertyAsString
  - JsonSort
  - JsonAt
  - JsonSelect
  - JsonObjectCreate
  - JsonEncodeStringWriter
  - JsonEncodeString
  - HexStringToChar
  - JsonDecodeStringWriter
  - JsonDecodeString
  - Json5EscapeDataWriter
  - Json5EscapeData
  - JsonObjectAppendString
  - JsonObjectAppendInteger
  - JsonObjectAppendInteger64
  - JsonObjectAppendBool
  - JsonObjectAppendReal
  - JsonObjectAppendNull
  - JsonObjectAppendArray
  - JsonObjectAppendObject
  - JsonObjectAppendElement
  - JsonElementHasProperty
  - CompareKeyToPropertyName
  - JsonElementIndexInParentObject
  - JsonObjectRemoveKey
  - JsonObjectDetachKey
  - JsonObjectGetAsString
  - JsonObjectGetAsBool
  - JsonObjectGetAsObject
  - JsonObjectGetAsArray
  - JsonObjectGet
  - JsonArrayCreate
  - JsonArrayAppendString
  - JsonArrayAppendBool
  - JsonArrayAppendInteger
  - JsonArrayAppendReal
  - JsonArrayAppendNull
  - JsonArrayAppendArray
  - JsonArrayAppendObject
  - JsonArrayAppendElement
  - JsonArrayExtend
  - JsonArrayRemoveRange
  - JsonArrayGetAsString
  - JsonArrayGetAsObject
  - JsonArrayGet
  - JsonArrayContainsOnlyPrimitives
  - JsonContainerReverse
  - JsonStringCreate
  - JsonIntegerCreate
  - JsonIntegerCreate64
  - JsonRealCreate
  - JsonBoolCreate
  - JsonNullCreate
  - IsWhitespace
  - IsSeparator
  - IsDigit
  - PrintIndent
  - JsonPrimitiveWrite
  - JsonArrayWrite
  - JsonElementPropertyCompare
  - all_children_have_keys
  - JsonObjectWrite
  - JsonContainerWrite
  - JsonWrite
  - JsonArrayWriteCompact
  - JsonObjectWriteCompact
  - JsonContainerWriteCompact
  - JsonWriteCompact
  - JsonParseAsBoolean
  - JsonParseAsNull
  - JsonParseErrorToString
  - JsonParseAsString
  - JsonParseAsNumber
  - JsonParseAsPrimitive
  - JsonParseAsArray
  - wc
  - unquoted_key_with_colon
  - JsonParseAsObject
  - JsonParse
  - JsonParseAll
  - JsonParseWithLookup
  - JsonParseAnyFile
  - JsonParseFile
  - JsonWalk
  - JsonErrorVisitor
  - StringCaptureData
  source_file: /src/core/libntech/libutils/json.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: JsonElementType
      - name: '*propertyName'
        type: char
      item_type: struct
      name: JsonElement_
      pos:
        line_end: 72
        line_start: 49
        source_file: /src/core/libntech/libutils/json.c
    - fields:
      - name: type
        type: JsonContainerType
      - name: '*children'
        type: Seq
      item_type: struct
      name: JsonContainer
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/core/libntech/libutils/json.c
    - fields:
      - name: type
        type: JsonPrimitiveType
      - name: '*value'
        type: char
      item_type: struct
      name: JsonPrimitive
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/core/libntech/libutils/json.c
    typedefs: []
    union: []
- function_names:
  - PRINTSIZE
  source_file: /src/core/libntech/libutils/printsize.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/ring_buffer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: RingBuffer
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/core/libntech/libutils/ring_buffer.h
      type: RingBuffer_
    - item_type: typedef
      name: RingBufferIterator
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/core/libntech/libutils/ring_buffer.h
      type: RingBufferIterator_
    union: []
- function_names:
  - RingBufferNew
  - RingBufferAppend
  - RingBufferClear
  - RingBufferLength
  - RingBufferIsFull
  - RingBufferHead
  - RingBufferIteratorNew
  - RingBufferDestroy
  - RingBufferIteratorDestroy
  - RingBufferIteratorNext
  source_file: /src/core/libntech/libutils/ring_buffer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*(*copy)(const void *data)'
        type: void
      - name: (*destroy)(void *data)
        type: void
      - name: '**data'
        type: void
      - name: capacity
        type: size_t
      - name: end
        type: size_t
      - name: len
        type: size_t
      item_type: struct
      name: RingBuffer_
      pos:
        line_end: 37
        line_start: 28
        source_file: /src/core/libntech/libutils/ring_buffer.c
    - fields:
      - name: '*buf'
        type: RingBuffer
      - name: num_read
        type: size_t
      item_type: struct
      name: RingBufferIterator_
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/core/libntech/libutils/ring_buffer.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/ip_address.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: IPAddress
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/core/libntech/libutils/ip_address.h
      type: IPAddress
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/passopenfile.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FileWriter
  - StringWriter
  - StringWriterReallocate
  - StringWriterWriteChar
  - StringWriterWriteLen
  - FileWriterWriteF
  - FileWriterWriteLen
  - WriterWriteF
  - WriterWriteVF
  - WriterWriteLen
  - WriterWrite
  - WriterWriteChar
  - StringWriterLength
  - StringWriterData
  - WriterClose
  - StringWriterClose
  - FileWriterDetach
  - WriterWriteOptions
  - WriterWriteCommands
  - WriterWriteHelp
  source_file: /src/core/libntech/libutils/writer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: len
        type: size_t
      - name: allocated
        type: size_t
      item_type: struct
      name: StringWriterImpl
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/core/libntech/libutils/writer.c
    - fields:
      - name: type
        type: WriterType
      item_type: struct
      name: Writer_
      pos:
        line_end: 50
        line_start: 42
        source_file: /src/core/libntech/libutils/writer.c
    typedefs: []
    union: []
- function_names:
  - ThreadedQueueNew
  - ThreadedQueueDestroy
  - ThreadedQueueSoftDestroy
  - ThreadedQueuePop
  - ThreadedQueuePopN
  - ThreadedQueuePopNIntoArray
  - ThreadedQueuePush
  - ThreadedQueuePushN
  - ThreadedQueueCount
  - ThreadedQueueCapacity
  - ThreadedQueueIsEmpty
  - ThreadedQueueWaitEmpty
  - ThreadedQueueCopy
  - ThreadedQueueClear
  - ThreadedQueueClearAndPush
  - DestroyRange
  - ExpandIfNecessary
  source_file: /src/core/libntech/libutils/threaded_queue.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXPAND_FACTOR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/libntech/libutils/threaded_queue.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_CAPACITY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/core/libntech/libutils/threaded_queue.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*lock'
        type: pthread_mutex_t
      - name: '*cond_non_empty'
        type: pthread_cond_t
      - name: '*cond_empty'
        type: pthread_cond_t
      - name: (*ItemDestroy) (void *item)
        type: void
      - name: '**data'
        type: void
      - name: head
        type: size_t
      - name: tail
        type: size_t
      - name: size
        type: size_t
      - name: capacity
        type: size_t
      item_type: struct
      name: ThreadedQueue_
      pos:
        line_end: 51
        line_start: 41
        source_file: /src/core/libntech/libutils/threaded_queue.c
    typedefs: []
    union: []
- function_names:
  - SeqAt
  source_file: /src/core/libntech/libutils/sequence.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**data'
        type: void
      - name: length
        type: size_t
      - name: capacity
        type: size_t
      - name: (*ItemDestroy) (void *item)
        type: void
      item_type: struct
      name: Seq
      pos:
        line_end: 54
        line_start: 48
        source_file: /src/core/libntech/libutils/sequence.h
    typedefs:
    - item_type: typedef
      name: (*SeqItemComparator) (const void *, const void *, void *user_data)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/core/libntech/libutils/sequence.h
      type: int
    - item_type: typedef
      name: SeqFilterFn(void *element)
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/core/libntech/libutils/sequence.h
      type: bool
    union: []
- function_names:
  - PathExists
  - IsFileSep
  - IsFileSep
  source_file: /src/core/libntech/libutils/file_lib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FILE_ERROR_READ
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/core/libntech/libutils/file_lib.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: FILE_SEPARATOR
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/core/libntech/libutils/file_lib.h
      type_or_value: '''\\'''
    - item_type: preproc_def
      name: FILE_SEPARATOR_STR
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/core/libntech/libutils/file_lib.h
      type_or_value: '"\\"'
    - item_type: preproc_def
      name: FILE_SEPARATOR
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/core/libntech/libutils/file_lib.h
      type_or_value: '''/'''
    - item_type: preproc_def
      name: FILE_SEPARATOR_STR
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/core/libntech/libutils/file_lib.h
      type_or_value: '"/"'
    - item_type: preproc_def
      name: EMPTY_FILE_LOCK
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/core/libntech/libutils/file_lib.h
      type_or_value: '{ .fd = -1 }'
    structs:
    - fields:
      - name: fd
        type: int
      item_type: struct
      name: _FileLock
      pos:
        line_end: 223
        line_start: 214
        source_file: /src/core/libntech/libutils/file_lib.h
    typedefs:
    - item_type: typedef
      name: PathWalkFn(const char *dirpath, Seq *dirnames, const Seq *filenames, void
        *data)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/core/libntech/libutils/file_lib.h
      type: void
    - item_type: typedef
      name: '*PathWalkCopyFn(void *data)'
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/core/libntech/libutils/file_lib.h
      type: void
    - item_type: typedef
      name: PathWalkDestroyFn(void *data)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/core/libntech/libutils/file_lib.h
      type: void
    union: []
- function_names:
  - MaskTerminationSignalsInThread
  source_file: /src/core/libntech/libutils/signal_lib.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - JsonParseYamlFile
  - JSON_YAML_SCALAR_TAG_IS
  - JSON_YAML_IS_NOT_IMPLICIT_AND_TAG_IS
  - JSON_YAML_IS_NOT_QUOTED_OR_TAG_IS
  - JsonParseYamlScalarValue
  - JsonParseYamlData
  - JsonParseYamlString
  - JsonParseYamlString
  source_file: /src/core/libntech/libutils/json-yaml.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - QueueNew
  - QueueDestroy
  - QueueNodeNew
  - QueueEnqueue
  - QueueDequeue
  - QueueHead
  - QueueCount
  - QueueIsEmpty
  source_file: /src/core/libntech/libutils/queue.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: void
      - name: '*next'
        type: struct QueueNode_
      - name: '*previous'
        type: struct QueueNode_
      item_type: struct
      name: QueueNode_
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/core/libntech/libutils/queue.c
    - fields:
      - name: node_count
        type: size_t
      - name: '*destroy'
        type: QueueItemDestroy
      - name: '*head'
        type: QueueNode
      - name: '*tail'
        type: QueueNode
      item_type: struct
      name: Queue_
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/core/libntech/libutils/queue.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/threaded_queue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ThreadedQueue
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/core/libntech/libutils/threaded_queue.h
      type: ThreadedQueue_
    union: []
- function_names:
  - XmlComment
  - XmlEmitStartTag
  - XmlStartTag
  - XmlEndTag
  - XmlTag
  - XmlContent
  - WriteEscaped
  source_file: /src/core/libntech/libutils/xml_writer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/map_common.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* key'
        type: void
      - name: '*value'
        type: void
      item_type: struct
      name: MapKeyValue
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/core/libntech/libutils/map_common.h
    typedefs:
    - item_type: typedef
      name: (*MapHashFn) (const void *p, unsigned int seed)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/core/libntech/libutils/map_common.h
      type: unsigned int
    - item_type: typedef
      name: (*MapKeyEqualFn) (const void *key1, const void *key2)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/core/libntech/libutils/map_common.h
      type: bool
    - item_type: typedef
      name: (*MapDestroyDataFn) (void *key)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/core/libntech/libutils/map_common.h
      type: void
    union: []
- function_names:
  - FUNC_ATTR_PRINTF
  - FUNC_DEPRECATED
  - FUNC_DEPRECATED
  - UNUSED
  - STRINGIFY__INTERNAL_MACRO
  - TO_STRING
  source_file: /src/core/libntech/libutils/compiler.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUNC_ATTR_NORETURN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/core/libntech/libutils/compiler.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: FUNC_UNUSED
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/core/libntech/libutils/compiler.h
      type_or_value: __attribute__((unused))
    - item_type: preproc_def
      name: ARG_UNUSED
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/core/libntech/libutils/compiler.h
      type_or_value: __attribute__((unused))
    - item_type: preproc_def
      name: FUNC_WARN_UNUSED_RESULT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/libntech/libutils/compiler.h
      type_or_value: __attribute__((warn_unused_result))
    - item_type: preproc_def
      name: NDEBUG_UNUSED
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/core/libntech/libutils/compiler.h
      type_or_value: __attribute__((unused))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/stack.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Stack
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/core/libntech/libutils/stack.h
      type: Stack_
    union: []
- function_names:
  - KIBIBYTE
  - MEBIBYTE
  - GIBIBYTE
  - TEBIBYTE
  source_file: /src/core/libntech/libutils/definitions.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_MAXSIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: '102400000'
    - item_type: preproc_def
      name: CF_BILLION
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: 1000000000L
    - item_type: preproc_def
      name: CF_BLOWFISHSIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CF_BUFFERMARGIN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: '128'
    - item_type: preproc_def
      name: CF_MAXVARSIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: CF_MAXSIDSIZE
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: '2048      '
    - item_type: preproc_def
      name: CF_MAXTABLENAMESIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: '256'
    - item_type: preproc_def
      name: CF_MAXDBNAMESIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: '256'
    - item_type: preproc_def
      name: CF_SMALLBUF
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: '128'
    - item_type: preproc_def
      name: CF_BUFSIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: CF_EXPANDSIZE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: (2 * CF_BUFSIZE)
    - item_type: preproc_def
      name: CF_PERMS_DEFAULT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: S_IRUSR | S_IWUSR
    - item_type: preproc_def
      name: CF_PERMS_SHARED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/core/libntech/libutils/definitions.h
      type_or_value: CF_PERMS_DEFAULT | S_IRGRP | S_IROTH
    structs: []
    typedefs: []
    union: []
- function_names:
  - ArrayMapNew
  - ArrayMapInsert
  - ArrayMapRemove
  - ArrayMapGet
  - ArrayMapClear
  - ArrayMapSoftDestroy
  - ArrayMapDestroy
  - ArrayMapIteratorInit
  - ArrayMapIteratorNext
  source_file: /src/core/libntech/libutils/array_map.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TINY_LIMIT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/core/libntech/libutils/array_map.c
      type_or_value: '14'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/csv_writer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: CsvWriter
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/libntech/libutils/csv_writer.h
      type: CsvWriter_
    union: []
- function_names:
  - assert_or_return
  - debug_abort_if_reached
  - nt_static_assert
  - nt_static_assert
  source_file: /src/core/libntech/libutils/condition_macros.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PointerCompare_
  - NoopDestroy_
  - NoopCopy_
  - NodeNew_
  - NodeDestroy_
  - Reset_
  - RBTreeNew
  - TreeDestroy_
  - RBTreeCopy
  - RBTreeEqual
  - RBTreeDestroy
  - RotateLeft_
  - RotateRight_
  - PutFix_
  - RBTreePut
  - Next_
  - Get_
  - RBTreeGet
  - RemoveFix_
  - RBTreeRemove
  - ClearRecursive_
  - RBTreeClear
  - RBTreeSize
  - RBTreeIteratorNew
  - Peek_
  - RBTreeIteratorNext
  - RBTreeIteratorDestroy
  - VerifyNode_
  - VerifyTree_
  source_file: /src/core/libntech/libutils/rb-tree.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*key'
        type: void
      - name: '*value'
        type: void
      - name: red
        type: bool
      - name: '*parent'
        type: RBNode
      - name: '*left'
        type: RBNode
      - name: '*right'
        type: RBNode
      item_type: struct
      name: RBNode_
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/core/libntech/libutils/rb-tree.c
    - fields:
      - name: '*(*KeyCopy)(const void *key)'
        type: void
      - name: (*KeyCompare)(const void *a, const void *b)
        type: int
      - name: (*KeyDestroy)(void *key)
        type: void
      - name: '*(*ValueCopy)(const void *key)'
        type: void
      - name: (*ValueCompare)(const void *a, const void *b)
        type: int
      - name: (*ValueDestroy)(void *key)
        type: void
      - name: '*root'
        type: struct RBNode_
      - name: '*nil'
        type: struct RBNode_
      - name: size
        type: size_t
      item_type: struct
      name: RBTree_
      pos:
        line_end: 53
        line_start: 40
        source_file: /src/core/libntech/libutils/rb-tree.c
    - fields:
      - name: '*tree'
        type: RBTree
      - name: '*curr'
        type: RBNode
      item_type: struct
      name: RBTreeIterator_
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/core/libntech/libutils/rb-tree.c
    - fields:
      - name: replaced
        type: bool
      - name: '*node'
        type: RBNode
      item_type: struct
      name: InsertResult_
      pos:
        line_end: 325
        line_start: 321
        source_file: /src/core/libntech/libutils/rb-tree.c
    typedefs:
    - item_type: typedef
      name: RBNode
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/core/libntech/libutils/rb-tree.c
      type: RBNode_
    union: []
- function_names:
  - HashBasicInit
  - HashCalculatePrintableRepresentation
  - HashNew
  - HashNewFromDescriptor
  - HashNewFromKey
  - HashDestroy
  - HashCopy
  - HashEqual
  - HashData
  - HashPrintable
  - HashType
  - HashLength
  - HashIdFromName
  - HashNameFromId
  - HashDigestFromId
  - HashSizeFromId
  - HashFile_Stream
  - HashFile
  - HashString
  - HashPubKey
  - HashesMatch
  - SkipHashType
  - StringCopyTruncateAndHashIfNecessary
  source_file: /src/core/libntech/libutils/hash.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: digest[EVP_MAX_MD_SIZE]
        type: unsigned char
      - name: printable[EVP_MAX_MD_SIZE * 4]
        type: char
      - name: method
        type: HashMethod
      - name: size
        type: HashSize
      item_type: struct
      name: Hash
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/core/libntech/libutils/hash.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/hash_method.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/json-pcre.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ProgrammingError
  - UnexpectedError
  - UnexpectedError
  - CF_ASSERT
  - CF_ASSERT_FIX
  - ISPOW2
  - ABS
  source_file: /src/core/libntech/libutils/misc_lib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPTIONAL_ARGUMENT_IS_PRESENT
      pos:
        line_end: 115
        line_start: 111
        source_file: /src/core/libntech/libutils/misc_lib.h
      type_or_value: "((optarg == NULL && optind < argc && argv[optind][0] != '-')
        \\\n     ? (bool) (optarg = argv[optind++]) \\\n     : (optarg != NULL))"
    structs: []
    typedefs: []
    union: []
- function_names:
  - GAverage
  - QAverage
  - QDefinite
  source_file: /src/core/libntech/libutils/statistics.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConvertFromCharToWChar
  - ConvertFromWCharToChar
  source_file: /src/core/libntech/libutils/unicode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_DEFAULT_DIRECTORY_DEFINE
  - GetDefaultDir_helper
  - GET_DEFAULT_DIRECTORY_DEFINE
  - GetWorkDir
  - GetBinDir
  - GetLogDir
  - GetPidDir
  - GET_DIRECTORY_DEFINE_FUNC_BODY
  source_file: /src/core/libntech/libutils/known_dirs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Path_Basename
  - Path_JoinAlloc
  - Path_GetQuoted
  source_file: /src/core/libntech/libutils/path.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - StringEncodeBase64
  source_file: /src/core/libntech/libutils/encode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/known_dirs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BufferNewWithCapacity
  - BufferNew
  - ExpandIfNeeded
  - BufferNewFrom
  - BufferDestroy
  - BufferClose
  - BufferCopy
  - BufferCompare
  - BufferSet
  - BufferGet
  - BufferAppendString
  - BufferTrimToMaxLength
  - BufferAppend
  - BufferAppendChar
  - BufferAppendF
  - BufferPrintf
  - BufferVPrintf
  - ExpandCFESpecialReplacements
  - BufferSearchAndReplace
  - BufferClear
  - BufferSize
  - BufferData
  - BufferCanonify
  - BufferMode
  - BufferSetMode
  - BufferFilter
  - BufferRewrite
  - BufferCapacity
  source_file: /src/core/libntech/libutils/buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/core/libntech/libutils/buffer.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CsvWriterOpenSpecifyTerminate
  - CsvWriterOpen
  - CsvWriterField
  - CsvWriterFieldF
  - CsvWriterNewRecord
  - CsvWriterClose
  - CsvWriterFieldVF
  - WriteCsvEscapedString
  - CsvWriterGetWriter
  source_file: /src/core/libntech/libutils/csv_writer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*w'
        type: Writer
      - name: beginning_of_line
        type: bool
      - name: terminate_last_line
        type: bool
      item_type: struct
      name: CsvWriter_
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/core/libntech/libutils/csv_writer.c
    typedefs: []
    union: []
- function_names:
  - ThreadedStackNew
  - ThreadedStackDestroy
  - ThreadedStackSoftDestroy
  - ThreadedStackPop
  - ThreadedStackPush
  - ThreadedStackPushReportCount
  - ThreadedStackCount
  - ThreadedStackCapacity
  - ThreadedStackIsEmpty
  - ThreadedStackCopy
  source_file: /src/core/libntech/libutils/threaded_stack.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base
        type: Stack
      - name: '*lock'
        type: pthread_mutex_t
      item_type: struct
      name: ThreadedStack_
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/core/libntech/libutils/threaded_stack.c
    typedefs: []
    union: []
- function_names:
  - TYPED_MAP_DECLARE
  - TYPED_MAP_DEFINE
  source_file: /src/core/libntech/libutils/map.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: is_array
        type: bool
      item_type: struct
      name: MapIterator
      pos:
        line_end: 84
        line_start: 76
        source_file: /src/core/libntech/libutils/map.h
    typedefs:
    - item_type: typedef
      name: Map
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/libntech/libutils/map.h
      type: Map_
    union: []
- function_names:
  - IdentityHashFn
  - IdentityEqualFn
  - NopDestroyFn
  - IsArrayMap
  - MapNew
  - MapSize
  - ConvertToHashMap
  - MapInsert
  - MapGetRaw
  - MapHasKey
  - MapGet
  - MapRemove
  - MapClear
  - MapSoftDestroy
  - MapDestroy
  - MapContainsSameKeys
  - MapPrintStats
  - MapIteratorInit
  - MapIteratorNext
  source_file: /src/core/libntech/libutils/map.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_HASHMAP_INIT_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/core/libntech/libutils/map.c
      type_or_value: '128'
    structs:
    - fields:
      - name: hash_fn
        type: MapHashFn
      item_type: struct
      name: Map_
      pos:
        line_end: 52
        line_start: 43
        source_file: /src/core/libntech/libutils/map.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/dir.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Dir
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/core/libntech/libutils/dir.h
      type: Dir_
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/proc_keyvalue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*KeyNumericValueCallback) (const char *field, off_t value, void *param)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/core/libntech/libutils/proc_keyvalue.h
      type: bool
    - item_type: typedef
      name: (*KeyValueCallback) (const char *field, const char *value, void *param)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/core/libntech/libutils/proc_keyvalue.h
      type: bool
    union: []
- function_names:
  - WEXITSTATUS
  - WIFEXITED
  - WIFSIGNALED
  - WTERMSIG
  - timersub
  - ByteSwap32
  - le32toh
  - htole32
  - le32toh
  - htole32
  - MIN
  - MAX
  - realpath
  - isfinite
  - _stat64
  - ST_BLKSIZE
  - ST_NBLOCKS
  - ST_NBYTES
  - ST_BLKSIZE
  - ST_NBLOCKS
  - ST_NBYTES
  - ST_NBYTES
  - S_ISREG
  - S_ISDIR
  - S_ISLNK
  - S_ISFIFO
  - S_ISCHR
  - S_ISBLK
  - S_ISSOCK
  source_file: /src/core/libntech/libutils/platform.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _GNU_SOURCE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_FILENAME
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '227'
    - item_type: preproc_def
      name: WINVER
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0x501'
    - item_type: preproc_def
      name: FD_SETSIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_FILENAME
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '254'
    - item_type: preproc_def
      name: SHUT_RDWR
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: SD_BOTH
    - item_type: preproc_def
      name: _SYS_NMLN
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '257'
    - item_type: preproc_def
      name: dirent
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: direct
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: _MAX_PATH
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: LOG_LOCAL0
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (16<<3)
    - item_type: preproc_def
      name: LOG_LOCAL1
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (17<<3)
    - item_type: preproc_def
      name: LOG_LOCAL2
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (18<<3)
    - item_type: preproc_def
      name: LOG_LOCAL3
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (19<<3)
    - item_type: preproc_def
      name: LOG_LOCAL4
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (20<<3)
    - item_type: preproc_def
      name: LOG_LOCAL5
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (21<<3)
    - item_type: preproc_def
      name: LOG_LOCAL6
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (22<<3)
    - item_type: preproc_def
      name: LOG_LOCAL7
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (23<<3)
    - item_type: preproc_def
      name: LOG_USER
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: LOG_DAEMON
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (3<<3)
    - item_type: preproc_def
      name: IPV6_V6ONLY
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '27'
    - item_type: preproc_def
      name: GLOB_NOSPACE
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GLOB_ABORTED
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '2'
    - item_type: preproc_def
      name: GLOB_NOMATCH
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ARG_LINUX_ONLY
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: ARG_UNUSED
    - item_type: preproc_def
      name: CLOCK_REALTIME
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _SC_THREAD_STACK_MIN
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: PTHREAD_STACK_MIN
    - item_type: preproc_def
      name: PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: PTHREAD_MUTEX_INITIALIZER
    - item_type: preproc_def
      name: INADDR_NONE
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: ((unsigned long int) 0xffffffff)
    - item_type: preproc_def
      name: sockaddr_storage
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: sockaddr_in6
    - item_type: preproc_def
      name: sockaddr_storage
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: sockaddr
    - item_type: preproc_def
      name: AF_INET6
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: AI_NUMERICSERV
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NGROUPS
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '20'
    - item_type: preproc_def
      name: AT_SYMLINK_NOFOLLOW
      pos:
        line_end: 735
        line_start: 734
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: AT_FDCWD
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: MAXHOSTNAMELEN
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '256     // always adequate: http://msdn.microsoft.com/en-us/library/ms738527(VS.85).aspx'
    - item_type: preproc_def
      name: VER_SUITE_WH_SERVER
      pos:
        line_end: 757
        line_start: 756
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: SIGALRM
      pos:
        line_end: 765
        line_start: 764
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIGHUP
      pos:
        line_end: 766
        line_start: 765
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SIGTRAP
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SIGKILL
      pos:
        line_end: 768
        line_start: 767
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SIGPIPE
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SIGCONT
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SIGSTOP
      pos:
        line_end: 771
        line_start: 770
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SIGQUIT
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SIGCHLD
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SIGUSR1
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SIGUSR2
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SIGBUS
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '17'
    - item_type: preproc_def
      name: HAVE_STRUCT_TIMESPEC
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERESTARTSYS
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: EINTR
    - item_type: preproc_def
      name: EOPNOTSUPP
      pos:
        line_end: 794
        line_start: 793
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: EINVAL
    - item_type: preproc_def
      name: ENOTSUPP
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: EINVAL
    - item_type: preproc_def
      name: ENOLINK
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '123456'
    - item_type: preproc_def
      name: DEV_BSIZE
      pos:
        line_end: 822
        line_start: 821
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: BSIZE
    - item_type: preproc_def
      name: DEV_BSIZE
      pos:
        line_end: 824
        line_start: 823
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '512'
    - item_type: preproc_def
      name: SEEK_CUR
      pos:
        line_end: 876
        line_start: 875
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '1'
    - item_type: preproc_def
      name: S_IFBLK
      pos:
        line_end: 884
        line_start: 883
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0060000'
    - item_type: preproc_def
      name: S_IFCHR
      pos:
        line_end: 887
        line_start: 886
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0020000'
    - item_type: preproc_def
      name: S_IFDIR
      pos:
        line_end: 890
        line_start: 889
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0040000'
    - item_type: preproc_def
      name: S_IFIFO
      pos:
        line_end: 893
        line_start: 892
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0010000'
    - item_type: preproc_def
      name: S_IFREG
      pos:
        line_end: 896
        line_start: 895
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0100000'
    - item_type: preproc_def
      name: S_IFLNK
      pos:
        line_end: 899
        line_start: 898
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0120000'
    - item_type: preproc_def
      name: S_IFSOCK
      pos:
        line_end: 902
        line_start: 901
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0140000'
    - item_type: preproc_def
      name: S_IFMT
      pos:
        line_end: 905
        line_start: 904
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00170000'
    - item_type: preproc_def
      name: S_IRWXU
      pos:
        line_end: 931
        line_start: 930
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00700'
    - item_type: preproc_def
      name: S_IRUSR
      pos:
        line_end: 932
        line_start: 931
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00400'
    - item_type: preproc_def
      name: S_IWUSR
      pos:
        line_end: 933
        line_start: 932
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00200'
    - item_type: preproc_def
      name: S_IXUSR
      pos:
        line_end: 934
        line_start: 933
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00100'
    - item_type: preproc_def
      name: S_IRWXG
      pos:
        line_end: 938
        line_start: 937
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00070'
    - item_type: preproc_def
      name: S_IRGRP
      pos:
        line_end: 939
        line_start: 938
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00040'
    - item_type: preproc_def
      name: S_IWGRP
      pos:
        line_end: 940
        line_start: 939
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00020'
    - item_type: preproc_def
      name: S_IXGRP
      pos:
        line_end: 941
        line_start: 940
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00010'
    - item_type: preproc_def
      name: S_IRWXO
      pos:
        line_end: 945
        line_start: 944
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00007'
    - item_type: preproc_def
      name: S_IROTH
      pos:
        line_end: 946
        line_start: 945
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00004'
    - item_type: preproc_def
      name: S_IWOTH
      pos:
        line_end: 947
        line_start: 946
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00002'
    - item_type: preproc_def
      name: S_IXOTH
      pos:
        line_end: 948
        line_start: 947
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '00001'
    - item_type: preproc_def
      name: ETIMEDOUT
      pos:
        line_end: 953
        line_start: 952
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: ESRCH
    - item_type: preproc_def
      name: NI_MAXHOST
      pos:
        line_end: 958
        line_start: 957
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '1025'
    - item_type: preproc_def
      name: UF_NODUMP
      pos:
        line_end: 966
        line_start: 965
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: UF_IMMUTABLE
      pos:
        line_end: 969
        line_start: 968
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: UF_APPEND
      pos:
        line_end: 972
        line_start: 971
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: UF_OPAQUE
      pos:
        line_end: 975
        line_start: 974
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: UF_NOUNLINK
      pos:
        line_end: 978
        line_start: 977
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SF_ARCHIVED
      pos:
        line_end: 981
        line_start: 980
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SF_IMMUTABLE
      pos:
        line_end: 984
        line_start: 983
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SF_APPEND
      pos:
        line_end: 987
        line_start: 986
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SF_NOUNLINK
      pos:
        line_end: 990
        line_start: 989
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CHFLAGS_MASK
      pos:
        line_end: 992
        line_start: 991
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: ( UF_NODUMP | UF_IMMUTABLE | UF_APPEND | UF_OPAQUE | UF_NOUNLINK
        | SF_ARCHIVED | SF_IMMUTABLE | SF_APPEND | SF_NOUNLINK )
    - item_type: preproc_def
      name: O_BINARY
      pos:
        line_end: 997
        line_start: 996
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    - item_type: preproc_def
      name: O_TEXT
      pos:
        line_end: 1001
        line_start: 1000
        source_file: /src/core/libntech/libutils/platform.h
      type_or_value: '0'
    structs:
    - fields:
      - name: sysname[_SYS_NMLN]
        type: char
      - name: nodename[_SYS_NMLN]
        type: char
      - name: release[_SYS_NMLN]
        type: char
      - name: version[_SYS_NMLN]
        type: char
      - name: machine[_SYS_NMLN]
        type: char
      item_type: struct
      name: utsname
      pos:
        line_end: 107
        line_start: 100
        source_file: /src/core/libntech/libutils/platform.h
    - fields:
      - name: gl_pathc
        type: size_t
      - name: '**gl_pathv'
        type: char
      - name: gl_offs
        type: size_t
      item_type: struct
      name: glob_t
      pos:
        line_end: 278
        line_start: 274
        source_file: /src/core/libntech/libutils/platform.h
    - fields:
      - name: tv_sec
        type: long
      - name: tv_nsec
        type: long
      item_type: struct
      name: timespec
      pos:
        line_end: 783
        line_start: 779
        source_file: /src/core/libntech/libutils/platform.h
    typedefs:
    - item_type: typedef
      name: socklen_t
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/core/libntech/libutils/platform.h
      type: int
    - item_type: typedef
      name: in_addr_t
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/core/libntech/libutils/platform.h
      type: u_long
    union:
    - fields:
      - name: dummy
        type: int
      item_type: union
      name: mpinfou
      pos:
        line_end: 359
        line_start: 356
        source_file: /src/core/libntech/libutils/platform.h
- function_names: []
  source_file: /src/core/libntech/libutils/hash_map_priv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: value
        type: MapKeyValue
      - name: '*next'
        type: struct BucketListItem_
      item_type: struct
      name: BucketListItem_
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/core/libntech/libutils/hash_map_priv.h
    - fields:
      - name: hash_fn
        type: MapHashFn
      - name: equal_fn
        type: MapKeyEqualFn
      - name: destroy_key_fn
        type: MapDestroyDataFn
      - name: destroy_value_fn
        type: MapDestroyDataFn
      - name: '**buckets'
        type: BucketListItem
      - name: size
        type: size_t
      - name: init_size
        type: size_t
      - name: load
        type: size_t
      - name: max_threshold
        type: size_t
      - name: min_threshold
        type: size_t
      item_type: struct
      name: HashMap
      pos:
        line_end: 48
        line_start: 36
        source_file: /src/core/libntech/libutils/hash_map_priv.h
    - fields:
      - name: '*map'
        type: HashMap
      - name: '*cur'
        type: BucketListItem
      - name: bucket
        type: size_t
      item_type: struct
      name: HashMapIterator
      pos:
        line_end: 55
        line_start: 50
        source_file: /src/core/libntech/libutils/hash_map_priv.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/queue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Queue
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/core/libntech/libutils/queue.h
      type: Queue_
    - item_type: typedef
      name: QueueItemDestroy(void *)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/core/libntech/libutils/queue.h
      type: void
    union: []
- function_names:
  - LoggingInitializeOnce
  - GetCurrentThreadContext
  - LoggingFreeCurrentThreadContext
  - LoggingSetAgentType
  - LoggingEnableTimestamps
  - LoggingPrivSetContext
  - LoggingPrivGetContext
  - LoggingPrivSetLevels
  - LogLevelToString
  - LogLevelFromString
  - LogLevelToColor
  - LoggingFormatTimestamp
  - LogToConsole
  - LogLevelToSyslogPriority
  - LogToSystemLog
  - LogToSystemLogStructured
  - LogToSystemLogStructured
  - __ImproperUseOfLogToSystemLogStructured
  - GetErrorStrFromCode
  - GetErrorStr
  - GetErrorStrFromCode
  - GetErrorStr
  - WouldLog
  - VLogNoFormat
  - VLog
  - LogRaw
  - Log
  - LogNoFormat
  - LogModuleFromString
  - LogEnableModule
  - LogModuleHelp
  - LogEnableModulesFromString
  - LogModuleEnabled
  - LogDebug
  - LogSetGlobalLevel
  - LogSetGlobalLevelArgOrExit
  - LogGetGlobalLevel
  - LogSetGlobalSystemLogLevel
  - LogUnsetGlobalSystemLogLevel
  - LogGetGlobalSystemLogLevel
  - LoggingSetColor
  - byte_magnitude
  - byte_unit
  - LogEntryDestroy
  - StartLoggingIntoBuffer
  - DiscardLogBuffer
  - CommitLogBuffer
  source_file: /src/core/libntech/libutils/logging.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: level
        type: LogLevel
      - name: '*msg'
        type: char
      item_type: struct
      name: LogEntry_
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/core/libntech/libutils/logging.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/refcount.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct RefCountNode
      - name: '*previous'
        type: struct RefCountNode
      - name: '*user'
        type: void
      item_type: struct
      name: RefCountNode
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/core/libntech/libutils/refcount.h
    - fields:
      - name: user_count
        type: unsigned int
      - name: '*users'
        type: RefCountNode
      - name: '*last'
        type: RefCountNode
      item_type: struct
      name: RefCount
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/core/libntech/libutils/refcount.h
    typedefs:
    - item_type: typedef
      name: RefCountNode
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/core/libntech/libutils/refcount.h
      type: RefCountNode
    - item_type: typedef
      name: RefCount
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/core/libntech/libutils/refcount.h
      type: RefCount
    union: []
- function_names:
  - NULL_OR_EMPTY
  - NOT_NULL_AND_EMPTY
  - STARTSWITH
  - SAFENULL
  - EMPTY_STRING_TO_NULL
  - NULL_TO_EMPTY_STRING
  - CharIsPrintableAscii
  - StringContains
  - StringContainsChar
  - IsStringInArray
  source_file: /src/core/libntech/libutils/string_lib.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: StringRef
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/core/libntech/libutils/string_lib.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/logging_priv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: log_hook
        type: LoggingPrivLogHook
      - name: '*param'
        type: void
      - name: force_hook_level
        type: LogLevel
      item_type: struct
      name: LoggingPrivContext
      pos:
        line_end: 49
        line_start: 34
        source_file: /src/core/libntech/libutils/logging_priv.h
    typedefs:
    - item_type: typedef
      name: LoggingPrivContext
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/core/libntech/libutils/logging_priv.h
      type: LoggingPrivContext
    - item_type: typedef
      name: '*(*LoggingPrivLogHook)(LoggingPrivContext *context, LogLevel level, const
        char *message)'
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/libntech/libutils/logging_priv.h
      type: char
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/rb-tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: RBTree
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/core/libntech/libutils/rb-tree.h
      type: RBTree_
    - item_type: typedef
      name: RBTreeIterator
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/core/libntech/libutils/rb-tree.h
      type: RBTreeIterator_
    - item_type: typedef
      name: '*RBTreeKeyCopyFn(const void *key)'
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/libntech/libutils/rb-tree.h
      type: void
    - item_type: typedef
      name: RBTreeKeyCompareFn(const void *a, const void *b)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/libntech/libutils/rb-tree.h
      type: int
    - item_type: typedef
      name: RBTreeKeyDestroyFn(void *key)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/core/libntech/libutils/rb-tree.h
      type: void
    - item_type: typedef
      name: '*RBTreeValueCopyFn(const void *key)'
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/core/libntech/libutils/rb-tree.h
      type: void
    - item_type: typedef
      name: RBTreeValueCompareFn(const void *a, const void *b)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/core/libntech/libutils/rb-tree.h
      type: int
    - item_type: typedef
      name: RBTreeValueDestroyFn(void *key)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/core/libntech/libutils/rb-tree.h
      type: void
    - item_type: typedef
      name: RBTreePredicate(const void *key, const void *value, void *user_data)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/core/libntech/libutils/rb-tree.h
      type: bool
    union: []
- function_names:
  - CallCleanupFunctions
  - DoCleanupAndExit
  - RegisterCleanupFunction
  source_file: /src/core/libntech/libutils/cleanup.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fn
        type: CleanupFn
      - name: '*next'
        type: struct CleanupList
      item_type: struct
      name: CleanupList
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/core/libntech/libutils/cleanup.c
    typedefs: []
    union: []
- function_names:
  - TYPED_SET_DECLARE
  - TYPED_SET_DEFINE
  - StringSetAddF
  source_file: /src/core/libntech/libutils/set.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Set
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/libntech/libutils/set.h
      type: Map
    - item_type: typedef
      name: SetIterator
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/libntech/libutils/set.h
      type: MapIterator
    - item_type: typedef
      name: '*(*SetElementCopyFn)(const void *)'
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/core/libntech/libutils/set.h
      type: void
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/version_comparison.h
  types:
    enum:
    - enumerators:
      - name: VERSION_SMALLER
      - name: VERSION_EQUAL
      - name: VERSION_GREATER
      - name: VERSION_ERROR
      item_type: enum
      name: VersionComparison
      pos:
        line_end: 11
        line_start: 5
        source_file: /src/core/libntech/libutils/version_comparison.h
    - enumerators:
      - name: BOOLEAN_ERROR
        value: '-1'
      - name: BOOLEAN_FALSE
        value: 'false'
      - name: BOOLEAN_TRUE
        value: 'true'
      item_type: enum
      name: BooleanOrError
      pos:
        line_end: 18
        line_start: 13
        source_file: /src/core/libntech/libutils/version_comparison.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/array_map_priv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: equal_fn
        type: MapKeyEqualFn
      - name: destroy_key_fn
        type: MapDestroyDataFn
      - name: destroy_value_fn
        type: MapDestroyDataFn
      - name: '*values'
        type: MapKeyValue
      - name: size
        type: short
      item_type: struct
      name: ArrayMap
      pos:
        line_end: 35
        line_start: 28
        source_file: /src/core/libntech/libutils/array_map_priv.h
    - fields:
      - name: '*map'
        type: ArrayMap
      - name: pos
        type: int
      item_type: struct
      name: ArrayMapIterator
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/core/libntech/libutils/array_map_priv.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/cleanup.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*CleanupFn)(void)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/core/libntech/libutils/cleanup.h
      type: void
    union: []
- function_names:
  - IsSpace
  - IsTagStandalone
  - IsTagTypeRenderable
  - LookupVariable
  - NextTag
  - RenderHTMLContent
  - RenderContent
  - RenderVariablePrimitive
  - RenderVariableContainer
  - RenderVariable
  - SetDelimiters
  - IsKeyExtensionVar
  - ShouldIterateObject
  - Render
  - MustacheRender
  source_file: /src/core/libntech/libutils/mustache.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MUSTACHE_MAX_DELIM_SIZE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/libntech/libutils/mustache.c
      type_or_value: '10'
    structs:
    - fields:
      - name: type
        type: TagType
      - name: '*begin'
        type: char
      - name: '*end'
        type: char
      - name: '*content'
        type: char
      - name: content_len
        type: size_t
      item_type: struct
      name: Mustache
      pos:
        line_end: 53
        line_start: 46
        source_file: /src/core/libntech/libutils/mustache.c
    typedefs: []
    union: []
- function_names:
  - ImmutableFlag
  - FSAttrsGetImmutableFlag
  - FSAttrsUpdateImmutableFlag
  source_file: /src/core/libntech/libutils/fsattrs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThreadLock
  - ThreadUnlock
  - ThreadWait
  source_file: /src/core/libntech/libutils/mutex.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THREAD_BLOCK_INDEFINITELY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/core/libntech/libutils/mutex.h
      type_or_value: '-1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - StackNew
  - StackDestroy
  - StackSoftDestroy
  - StackPop
  - StackTop
  - ExpandIfNecessary
  - StackPush
  - StackPushReportCount
  - StackCount
  - StackCapacity
  - StackIsEmpty
  - StackCopy
  source_file: /src/core/libntech/libutils/stack.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThreadedDequeNew
  - ThreadedDequeDestroy
  - ThreadedDequeSoftDestroy
  - ThreadedDequePopLeft
  - ThreadedDequePopRight
  - ThreadedDequePopLeftN
  - ThreadedDequePopRightN
  - ThreadedDequePushLeft
  - ThreadedDequePushRight
  - ThreadedDequeCount
  - ThreadedDequeCapacity
  - ThreadedDequeIsEmpty
  - ThreadedDequeWaitEmpty
  - ThreadedDequeCopy
  - DestroyRange
  - ExpandIfNecessary
  source_file: /src/core/libntech/libutils/threaded_deque.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXPAND_FACTOR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/libntech/libutils/threaded_deque.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_CAPACITY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/core/libntech/libutils/threaded_deque.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*lock'
        type: pthread_mutex_t
      - name: '*cond_non_empty'
        type: pthread_cond_t
      - name: '*cond_empty'
        type: pthread_cond_t
      - name: (*ItemDestroy) (void *item)
        type: void
      - name: '**data'
        type: void
      - name: left
        type: size_t
      - name: right
        type: size_t
      - name: size
        type: size_t
      - name: capacity
        type: size_t
      item_type: struct
      name: ThreadedDeque_
      pos:
        line_end: 51
        line_start: 41
        source_file: /src/core/libntech/libutils/threaded_deque.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/deprecated.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RefCountNew
  - RefCountDestroy
  - RefCountAttach
  - RefCountDetach
  - RefCountIsShared
  - RefCountIsEqual
  source_file: /src/core/libntech/libutils/refcount.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/unicode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SeqNew
  - DestroyRange
  - SeqDestroy
  - SeqSoftDestroy
  - ExpandIfNeccessary
  - StrCmpWrapper
  - SeqSet
  - SeqSoftSet
  - SeqAppend
  - SeqAppendOnce
  - SeqAppendSeq
  - SeqRemoveRange
  - SeqRemove
  - SeqLookup
  - SeqBinaryLookup
  - SeqIndexOf
  - SeqBinaryIndexOf
  - Swap
  - QuickSortRecursive
  - SeqSort
  - SeqSoftSort
  - SeqSoftRemoveRange
  - SeqClear
  - SeqSoftRemove
  - SeqReverse
  - SeqSplit
  - SeqLength
  - SeqShuffle
  - SeqGetRange
  - SeqGetData
  - SeqFilter
  - FilterNullCallback
  - SeqRemoveNulls
  - SeqFromArgv
  source_file: /src/core/libntech/libutils/sequence.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SetNew
  - SetDestroy
  - SetAdd
  - SetContains
  - SetRemove
  - SetClear
  - SetSize
  - SetIsEqual
  - SetIteratorInit
  - SetIteratorNext
  - SetJoin
  - StringSetToBuffer
  - StringSetAddSplit
  - StringSetFromString
  - StringSetToJson
  - VisitJsonArrayFirst
  - AddArrayItemToStringSet
  - JsonArrayToStringSet
  source_file: /src/core/libntech/libutils/set.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FileCanOpen
  - FileRead
  - ReadFileStreamToBuffer
  - File_Copy
  - File_CopyToDir
  - FileReadFromFd
  - FullWrite
  - FullRead
  - IsDirReal
  - FileNewLineMode
  - IsWindowsNetworkPath
  - IsWindowsDiskPath
  - IsAbsoluteFileName
  - MapNameCopy
  - MapName
  - MapNameCopy
  - MapName
  - MapName
  - MapNameCopy
  - MapNameForward
  - PathWalk
  - ListDir
  - SetUmask
  - RestoreUmask
  - safe_open
  - safe_open_create_perms
  - safe_fopen
  - safe_fopen_create_perms
  - safe_chdir
  - safe_open_true_parent_dir
  - safe_chown_impl
  - safe_chown
  - safe_lchown
  - safe_chmod
  - safe_creat
  - SetCloseOnExec
  - DeleteDirectoryTreeInternal
  - DeleteDirectoryTree
  - FileSparseWrite
  - FileSparseCopyShoveling
  - FileSparseCopy
  - FileSparseClose
  - CfReadLine
  - CfReadLines
  - LockFD
  - UnlockFD
  - ExclusiveFileLock
  - SharedFileLock
  - ExclusiveFileLockCheck
  - ExclusiveFileUnlock
  - SharedFileUnlock
  - LockFD
  - ExclusiveFileLock
  - SharedFileLock
  - UnlockFD
  - ExclusiveFileLockCheck
  - ExclusiveFileUnlock
  - SharedFileUnlock
  - ExclusiveFileLockPath
  - SharedFileLockPath
  source_file: /src/core/libntech/libutils/file_lib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYMLINK_MAX_DEPTH
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/core/libntech/libutils/file_lib.c
      type_or_value: '32'
    - item_type: preproc_def
      name: READ_BUFSIZE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/core/libntech/libutils/file_lib.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/core/libntech/libutils/file_lib.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: TEST_SYMLINK_SWITCH_POINT
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/core/libntech/libutils/file_lib.c
      type_or_value: switch_symlink_hook();
    - item_type: preproc_def
      name: SMART_FILE_COPY_SYSCALLS_AVAILABLE
      pos:
        line_end: 1553
        line_start: 1552
        source_file: /src/core/libntech/libutils/file_lib.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SMART_SYSCALLS_UNUSED
      pos:
        line_end: 1554
        line_start: 1553
        source_file: /src/core/libntech/libutils/file_lib.c
      type_or_value: ARG_UNUSED
    - item_type: preproc_def
      name: SMART_FILE_COPY_SYSCALLS_AVAILABLE
      pos:
        line_end: 1559
        line_start: 1558
        source_file: /src/core/libntech/libutils/file_lib.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/statistics.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: q
        type: double
      - name: expect
        type: double
      - name: var
        type: double
      - name: dq
        type: double
      item_type: struct
      name: QPoint
      pos:
        line_end: 32
        line_start: 26
        source_file: /src/core/libntech/libutils/statistics.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/man.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SeqStringAddSplit
  - SeqStringFromString
  - StringJoin
  - StringSplit
  - SeqStringContains
  - SeqStringLength
  - HasNulByte
  - GetLengthPrefix
  - ValidDuplicate
  - WriteLenPrefixedString
  - SeqStringWrite
  - SeqStringSerialize
  - SeqStringWriteFileStream
  - SeqStringWriteFile
  - SeqStringDeserialize
  - ReadLenPrefixedString
  - SeqStringReadFile
  source_file: /src/core/libntech/libutils/string_sequence.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/json-utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CheckResult
  - xmalloc
  - xcalloc
  - xrealloc
  - xstrdup
  - xstrndup
  - xmemdup
  - xasprintf
  - xvasprintf
  source_file: /src/core/libntech/libutils/alloc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/xml_writer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      item_type: struct
      name: XmlAttribute
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/core/libntech/libutils/xml_writer.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libntech/libutils/buffer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BUFFER_CAPACITY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/core/libntech/libutils/buffer.h
      type_or_value: '4096'
    structs:
    - fields:
      - name: '*buffer'
        type: char
      - name: mode
        type: BufferBehavior
      - name: capacity
        type: size_t
      - name: used
        type: size_t
      - name: unsafe
        type: bool
      item_type: struct
      name: Buffer
      pos:
        line_end: 54
        line_start: 47
        source_file: /src/core/libntech/libutils/buffer.h
    typedefs:
    - item_type: typedef
      name: (*BufferFilterFn)(char item)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/core/libntech/libutils/buffer.h
      type: bool
    union: []
- function_names:
  - JsonParseAndWrite
  - main
  source_file: /src/core/libntech/examples/json_example.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/core/libntech/examples/sequence_example.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - openat_inner
  - cleanup
  - openat
  source_file: /src/core/libntech/libcompat/openat.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pathname'
        type: char
      - name: flags
        type: int
      - name: mode
        type: mode_t
      - name: fd
        type: int
      item_type: struct
      name: openat_data
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/core/libntech/libcompat/openat.c
    typedefs: []
    union: []
- function_names:
  - setlinebuf
  source_file: /src/core/libntech/libcompat/setlinebuf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IO_MODE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/core/libntech/libcompat/setlinebuf.c
      type_or_value: _IONBF
    - item_type: preproc_def
      name: IO_MODE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/core/libntech/libcompat/setlinebuf.c
      type_or_value: _IOLBF
    structs: []
    typedefs: []
    union: []
- function_names:
  - strlcpy
  source_file: /src/core/libntech/libcompat/strlcpy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - closefrom
  source_file: /src/core/libntech/libcompat/closefrom.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fchmodat_inner
  - cleanup
  - fchmodat
  source_file: /src/core/libntech/libcompat/fchmodat.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pathname'
        type: char
      - name: mode
        type: mode_t
      - name: flags
        type: int
      item_type: struct
      name: fchmodat_data
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/core/libntech/libcompat/fchmodat.c
    typedefs: []
    union: []
- function_names:
  - strcasestr
  source_file: /src/core/libntech/libcompat/strcasestr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - srand48
  source_file: /src/core/libntech/libcompat/srand48.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strsignal
  source_file: /src/core/libntech/libcompat/strsignal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strsep
  source_file: /src/core/libntech/libcompat/strsep.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clock_gettime
  source_file: /src/core/libntech/libcompat/clock_gettime.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mkdtemp
  source_file: /src/core/libntech/libcompat/mkdtemp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXTRY
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/core/libntech/libcompat/mkdtemp.c
      type_or_value: '999999'
    structs: []
    typedefs: []
    union: []
- function_names:
  - inet_pton
  source_file: /src/core/libntech/libcompat/inet_pton.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EAFNOSUPPORT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/core/libntech/libcompat/inet_pton.c
      type_or_value: WSAEAFNOSUPPORT
    - item_type: preproc_def
      name: NS_INT16SZ
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/core/libntech/libcompat/inet_pton.c
      type_or_value: '2'
    - item_type: preproc_def
      name: NS_INADDRSZ
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/core/libntech/libcompat/inet_pton.c
      type_or_value: '4'
    - item_type: preproc_def
      name: NS_IN6ADDRSZ
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/core/libntech/libcompat/inet_pton.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - strrstr
  source_file: /src/core/libntech/libcompat/strrstr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fchownat_inner
  - cleanup
  - fchownat
  source_file: /src/core/libntech/libcompat/fchownat.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pathname'
        type: char
      - name: owner
        type: uid_t
      - name: group
        type: gid_t
      - name: flags
        type: int
      item_type: struct
      name: fchownat_data
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/core/libntech/libcompat/fchownat.c
    typedefs: []
    union: []
- function_names:
  - rpl_ctime
  source_file: /src/core/libntech/libcompat/rpl_ctime.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SMB_MALLOC
  - SMB_STRDUP
  - check_hostent_err
  - canon_name_from_hostent
  - get_my_canon_name
  - get_canon_name_from_addr
  - alloc_entry
  - getaddr_info_single_addr
  - getaddr_info_name
  - getaddrinfo
  - freeaddrinfo
  - gai_strerror
  - gethostnameinfo
  - getservicenameinfo
  - getnameinfo
  source_file: /src/core/libntech/libcompat/getaddrinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOST_NAME_MAX
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/core/libntech/libcompat/getaddrinfo.c
      type_or_value: '255'
    structs: []
    typedefs: []
    union: []
- function_names:
  - drand48
  source_file: /src/core/libntech/libcompat/drand48.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - seteuid
  source_file: /src/core/libntech/libcompat/seteuid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memrchr
  source_file: /src/core/libntech/libcompat/memrchr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pthread_sigmask
  source_file: /src/core/libntech/libcompat/pthread_sigmask.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - generic_at_function
  source_file: /src/core/libntech/libcompat/generic_at.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strlcat
  source_file: /src/core/libntech/libcompat/strlcat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strerror
  source_file: /src/core/libntech/libcompat/strerror.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strnlen
  source_file: /src/core/libntech/libcompat/strnlen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - stpncpy
  source_file: /src/core/libntech/libcompat/stpncpy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gmtime_r
  source_file: /src/core/libntech/libcompat/gmtime_r.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VA_START
  - VA_START
  - VA_SHIFT
  - VA_COPY
  - VA_END_COPY
  - VA_COPY
  - VA_END_COPY
  - VA_COPY
  - MAX
  - CHARTOINT
  - ISDIGIT
  - ISNAN
  - ISINF
  - rpl_vsnprintf
  - fmtstr
  - fmtint
  - fmtflt
  - printsep
  - getnumsep
  - getexponent
  - convert
  - cast
  - myround
  - mypow10
  - mymemcpy
  - rpl_vasprintf
  - rpl_vfprintf
  - rpl_vprintf
  - rpl_fprintf
  - rpl_printf
  source_file: /src/core/libntech/libcompat/snprintf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OS_BSD
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OS_IRIX
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OS_SYSV
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OS_SYSV
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OS_LINUX
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDARG_H
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDDEF_H
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDINT_H
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDLIB_H
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_INTTYPES_H
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LOCALE_H
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LOCALECONV
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LCONV_DECIMAL_POINT
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LCONV_THOUSANDS_SEP
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LONG_DOUBLE
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LONG_LONG_INT
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UNSIGNED_LONG_LONG_INT
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_INTMAX_T
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UINTMAX_T
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UINTPTR_T
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_PTRDIFF_T
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_VA_COPY
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE___VA_COPY
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: rpl_snprintf
    - item_type: preproc_def
      name: vsnprintf
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: rpl_vsnprintf
    - item_type: preproc_def
      name: asprintf
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: rpl_asprintf
    - item_type: preproc_def
      name: vasprintf
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: rpl_vasprintf
    - item_type: preproc_def
      name: NEED_MYMEMCPY
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ULONG_MAX
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: UINT_MAX
    - item_type: preproc_def
      name: ULONG_MAX
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: ULLONG
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: unsigned long long int
    - item_type: preproc_def
      name: ULLONG_MAX
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: ULONG_MAX
    - item_type: preproc_def
      name: ULLONG
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: unsigned long int
    - item_type: preproc_def
      name: ULLONG_MAX
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: ULONG_MAX
    - item_type: preproc_def
      name: UINTMAX_T
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: uintmax_t
    - item_type: preproc_def
      name: UINTMAX_MAX
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: ULLONG_MAX
    - item_type: preproc_def
      name: UINTMAX_T
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: ULLONG
    - item_type: preproc_def
      name: UINTMAX_MAX
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: ULLONG_MAX
    - item_type: preproc_def
      name: LDOUBLE
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: long double
    - item_type: preproc_def
      name: LDOUBLE
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: double
    - item_type: preproc_def
      name: LLONG
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: long long int
    - item_type: preproc_def
      name: LLONG
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: long int
    - item_type: preproc_def
      name: INTMAX_T
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: intmax_t
    - item_type: preproc_def
      name: INTMAX_T
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: LLONG
    - item_type: preproc_def
      name: UINTPTR_T
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: uintptr_t
    - item_type: preproc_def
      name: UINTPTR_T
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: unsigned long int
    - item_type: preproc_def
      name: PTRDIFF_T
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: ptrdiff_t
    - item_type: preproc_def
      name: PTRDIFF_T
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: long int
    - item_type: preproc_def
      name: UPTRDIFF_T
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: PTRDIFF_T
    - item_type: preproc_def
      name: SSIZE_T
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: size_t
    - item_type: preproc_def
      name: ERANGE
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: E2BIG
    - item_type: preproc_def
      name: EOVERFLOW
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: ERANGE
    - item_type: preproc_def
      name: MAX_CONVERT_LENGTH
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '43'
    - item_type: preproc_def
      name: PRINT_S_DEFAULT
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PRINT_S_FLAGS
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PRINT_S_WIDTH
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PRINT_S_DOT
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PRINT_S_PRECISION
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PRINT_S_MOD
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PRINT_S_CONV
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '6'
    - item_type: preproc_def
      name: PRINT_F_MINUS
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: PRINT_F_PLUS
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: PRINT_F_SPACE
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: PRINT_F_NUM
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: PRINT_F_ZERO
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: PRINT_F_QUOTE
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: PRINT_F_UP
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: PRINT_F_UNSIGNED
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: PRINT_F_TYPE_G
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: PRINT_F_TYPE_E
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: PRINT_C_CHAR
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PRINT_C_SHORT
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PRINT_C_LONG
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PRINT_C_LLONG
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PRINT_C_LDOUBLE
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PRINT_C_SIZE
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '6'
    - item_type: preproc_def
      name: PRINT_C_PTRDIFF
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '7'
    - item_type: preproc_def
      name: PRINT_C_INTMAX
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '8'
    - item_type: preproc_def
      name: TEST_NILS
      pos:
        line_end: 2152
        line_start: 2151
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TEST_NILS
      pos:
        line_end: 2155
        line_start: 2154
        source_file: /src/core/libntech/libcompat/snprintf.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - strncasecmp
  source_file: /src/core/libntech/libcompat/strncasecmp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - round
  source_file: /src/core/libntech/libcompat/round.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strchrnul
  source_file: /src/core/libntech/libcompat/strchrnul.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memdup
  source_file: /src/core/libntech/libcompat/memdup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - localtime_r
  source_file: /src/core/libntech/libcompat/localtime_r.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log2
  source_file: /src/core/libntech/libcompat/log2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strndup
  source_file: /src/core/libntech/libcompat/strndup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - readlinkat_inner
  - cleanup
  - readlinkat
  source_file: /src/core/libntech/libcompat/readlinkat.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pathname'
        type: char
      - name: '*buf'
        type: char
      - name: bufsize
        type: size_t
      item_type: struct
      name: readlinkat_data
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/core/libntech/libcompat/readlinkat.c
    typedefs: []
    union: []
- function_names:
  - unsetenv
  - unsetenv
  source_file: /src/core/libntech/libcompat/unsetenv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fstatat_inner
  - cleanup
  - fstatat
  source_file: /src/core/libntech/libcompat/fstatat.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pathname'
        type: char
      - name: '*buf'
        type: struct stat
      - name: flags
        type: int
      item_type: struct
      name: fstatat_data
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/core/libntech/libcompat/fstatat.c
    typedefs: []
    union: []
- function_names:
  - strstr
  source_file: /src/core/libntech/libcompat/strstr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strcasecmp
  source_file: /src/core/libntech/libcompat/strcasecmp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getdelim
  - getline
  source_file: /src/core/libntech/libcompat/getline.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSIZE_MAX
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/core/libntech/libcompat/getline.c
      type_or_value: '32767'
    - item_type: preproc_def
      name: _GETDELIM_GROWBY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/core/libntech/libcompat/getline.c
      type_or_value: '4096    '
    - item_type: preproc_def
      name: _GETDELIM_MINLEN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/core/libntech/libcompat/getline.c
      type_or_value: '4      '
    structs: []
    typedefs: []
    union: []
- function_names:
  - poll
  source_file: /src/core/libntech/libcompat/poll.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: fdset
        type: fd_set
      - name: buf[fdset_size]
        type: char
      item_type: union
      name: myset
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/core/libntech/libcompat/poll.c
- function_names: []
  source_file: /src/core/libntech/libcompat/generic_at.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nanosleep
  source_file: /src/core/libntech/libcompat/nanosleep.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memmem
  source_file: /src/core/libntech/libcompat/memmem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inet_ntop
  - inet_ntop4
  - inet_ntop6
  source_file: /src/core/libntech/libcompat/inet_ntop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EAFNOSUPPORT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/core/libntech/libcompat/inet_ntop.c
      type_or_value: WSAEAFNOSUPPORT
    - item_type: preproc_def
      name: NS_INT16SZ
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/core/libntech/libcompat/inet_ntop.c
      type_or_value: '2'
    - item_type: preproc_def
      name: NS_IN6ADDRSZ
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/core/libntech/libcompat/inet_ntop.c
      type_or_value: '16'
    structs:
    - fields:
      - name: base
        type: int
      item_type: struct
      name: best
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/core/libntech/libcompat/inet_ntop.c
    typedefs: []
    union: []
- function_names:
  - dirfd
  - dirfd
  source_file: /src/core/libntech/libcompat/dirfd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strdup
  source_file: /src/core/libntech/libcompat/strdup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pthread_attr_setstacksize
  source_file: /src/core/libntech/libcompat/pthread_attr_setstacksize.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LDAV_CVT
  - LDAV_CVT
  - LDAV_CVT
  - FIXUP_KERNEL_SYMBOL_ADDR
  - LDAV_CVT
  source_file: /src/core/libcfecompat/getloadavg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: long
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: double
    - item_type: preproc_def
      name: FSCALE
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '1024.0'
    - item_type: preproc_def
      name: FSCALE
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '100.0'
    - item_type: preproc_def
      name: FSCALE
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '2048.0'
    - item_type: preproc_def
      name: FSCALE
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FSCALE
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '1000.0'
    - item_type: preproc_def
      name: FSCALE
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '65536.0'
    - item_type: preproc_def
      name: FSCALE
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '100.0'
    - item_type: preproc_def
      name: FSCALE
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '65536.0'
    - item_type: preproc_def
      name: KERNEL_FILE
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '"/dynix"'
    - item_type: preproc_def
      name: KERNEL_FILE
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '"/hp-ux"'
    - item_type: preproc_def
      name: KERNEL_FILE
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '"/unix"'
    - item_type: preproc_def
      name: LDAV_SYMBOL
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '"_Loadavg"'
    - item_type: preproc_def
      name: LDAV_SYMBOL
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '"avenrun"'
    - item_type: preproc_def
      name: LOAD_AVE_TYPE
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: double
    - item_type: preproc_def
      name: KERNEL_FILE
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '"/vmunix"'
    - item_type: preproc_def
      name: LDAV_SYMBOL
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '"_avenrun"'
    - item_type: preproc_def
      name: host_self
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: mach_host_self
    - item_type: preproc_def
      name: LINUX_LDAV_FILE
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '"/proc/loadavg"'
    - item_type: preproc_def
      name: NETBSD_LDAV_FILE
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '"/kern/loadavg"'
    - item_type: preproc_def
      name: FD_CLOEXEC
      pos:
        line_end: 917
        line_start: 916
        source_file: /src/core/libcfecompat/getloadavg.c
      type_or_value: '1'
    structs:
    - fields:
      - name: dsc$w_length
        type: int
      - name: '*dsc$a_pointer'
        type: char
      item_type: struct
      name: descriptor
      pos:
        line_end: 825
        line_start: 821
        source_file: /src/core/libcfecompat/getloadavg.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfecompat/cfecompat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - exchange
  - _getopt_initialize
  - _getopt_internal
  - getopt
  source_file: /src/core/libcfecompat/getopt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: my_index
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/core/libcfecompat/getopt.c
      type_or_value: strchr
    structs: []
    typedefs: []
    union: []
- function_names:
  - getopt_long
  - getopt_long_only
  source_file: /src/core/libcfecompat/getopt1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'NULL'
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/libcfecompat/getopt1.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfecompat/compat_getopt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _GETOPT_H
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/core/libcfecompat/compat_getopt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __GETOPT_H__
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/core/libcfecompat/compat_getopt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: no_argument
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/core/libcfecompat/compat_getopt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: required_argument
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/core/libcfecompat/compat_getopt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: optional_argument
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/core/libcfecompat/compat_getopt.h
      type_or_value: '2'
    structs:
    - fields:
      - name: has_arg
        type: int
      - name: '*flag'
        type: int
      - name: val
        type: int
      item_type: struct
      name: option
      pos:
        line_end: 93
        line_start: 81
        source_file: /src/core/libcfecompat/compat_getopt.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfecompat/unused.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - repair_main
  - repair_lmdb_default
  - print_usage
  - remove_files
  - record_timestamp
  - repair_lmdb_file
  - rotate_lmdb_file
  - repair_lmdb_files
  - repair_main
  - repair_lmdb_default
  source_file: /src/core/cf-check/repair.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-check/utilities.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OBSERVABLES_APPLY
  - GENERATE_OB_ENUM
  - GENERATE_OB_STRING
  source_file: /src/core/cf-check/db_structs.h
  types:
    enum:
    - enumerators:
      - name: OBSERVABLES_APPLY
      item_type: enum
      name: Observable
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/core/cf-check/db_structs.h
    preproc_defs:
    - item_type: preproc_def
      name: CF_OBSERVABLES
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/core/cf-check/db_structs.h
      type_or_value: '100'
    structs:
    - fields:
      - name: acknowledged
        type: bool
      - name: lastseen
        type: time_t
      - name: Q
        type: QPoint
      item_type: struct
      name: KeyHostSeen
      pos:
        line_end: 22
        line_start: 17
        source_file: /src/core/cf-check/db_structs.h
    - fields:
      - name: pid
        type: pid_t
      - name: time
        type: time_t
      - name: process_start_time
        type: time_t
      item_type: struct
      name: LockData
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/core/cf-check/db_structs.h
    - fields:
      - name: last_seen
        type: time_t
      - name: Q[CF_OBSERVABLES]
        type: QPoint
      item_type: struct
      name: Averages
      pos:
        line_end: 133
        line_start: 129
        source_file: /src/core/cf-check/db_structs.h
    - fields:
      - name: expires
        type: unsigned int
      - name: policy
        type: PersistentClassPolicy
      - name: tags[]
        type: char
      item_type: struct
      name: PersistentClassInfo
      pos:
        line_end: 146
        line_start: 141
        source_file: /src/core/cf-check/db_structs.h
    typedefs: []
    union: []
- function_names:
  - CF_CHECK_RUN_CODES
  - CF_CHECK_CREATE_ENUM
  source_file: /src/core/cf-check/diagnose.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_CHECK_ERRNO_VALIDATE_FAILED
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/core/cf-check/diagnose.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: CF_CHECK_MAX
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/core/cf-check/diagnose.h
      type_or_value: CF_CHECK_UNKNOWN
    structs: []
    typedefs: []
    union: []
- function_names:
  - replicate_lmdb
  - HandleSrcLMDBCorruption
  - HandleDstLMDBCorruption
  - replicate_lmdb
  source_file: /src/core/cf-check/replicate_lmdb.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*s_file'
        type: char
      - name: '*d_file'
        type: char
      - name: '*s_txn'
        type: MDB_txn
      - name: '*d_txn'
        type: MDB_txn
      item_type: struct
      name: LMDBReplicationInfo
      pos:
        line_end: 22
        line_start: 17
        source_file: /src/core/cf-check/replicate_lmdb.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-check/replicate_lmdb.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-check/backup.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-check/observables.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_OBSERVABLES
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/core/cf-check/observables.h
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CFCheck_Validate
  - NewLMDBSlice
  - DestroyLMDBSlice
  - NewValidator
  - DestroyValidator
  - va_ValidationError
  - ValidationError
  - ValidateString
  - ValidateHostkey
  - ValidateAddress
  - UpdateValidatorLastseen
  - UpdateValidatorLock
  - ValidateMDBValue
  - UpdateValidator
  - ValidateStateLastseen
  - ValidateState
  - CFCheck_Validate
  source_file: /src/core/cf-check/validate.c
  types:
    enum:
    - enumerators:
      - name: CF_CHECK_VALIDATE_UNKNOWN
      - name: CF_CHECK_VALIDATE_LOCK
      - name: CF_CHECK_VALIDATE_MINIMAL
      - name: CF_CHECK_VALIDATE_LASTSEEN
      item_type: enum
      name: ValidatorMode
      pos:
        line_end: 32
        line_start: 26
        source_file: /src/core/cf-check/validate.c
    preproc_defs:
    - item_type: preproc_def
      name: CF_BIRTH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/core/cf-check/validate.c
      type_or_value: 725846400 // Assume timestamps before 1993-01-01 are corrupt
    structs:
    - fields:
      - name: '*hostkey_to_address'
        type: StringMap
      - name: '*address_to_hostkey'
        type: StringMap
      - name: '*quality_outgoing_hostkeys'
        type: StringSet
      - name: '*quality_incoming_hostkeys'
        type: StringSet
      item_type: struct
      name: LastSeenState
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/core/cf-check/validate.c
    - fields:
      - name: '*path'
        type: char
      - name: mode
        type: ValidatorMode
      - name: errors
        type: size_t
      - name: '*keys'
        type: StringSet
      - name: '*values'
        type: Seq
      item_type: struct
      name: ValidatorState
      pos:
        line_end: 53
        line_start: 42
        source_file: /src/core/cf-check/validate.c
    typedefs: []
    union: []
- function_names:
  - diagnose_main
  - diagnose_files
  - CF_CHECK_CREATE_STRING
  - code_is_errno
  - strerror_or_null
  - errno_to_code
  - code_to_errno
  - CF_CHECK_STRING
  - signal_to_cf_check_code
  - lmdb_errno_to_cf_check_code
  - report_mdb_error
  - diagnose
  - diagnose_write
  - fork_and_diagnose
  - follow_symlink
  - lmdb_file_needs_rotation
  - diagnose_files
  - diagnose_main
  source_file: /src/core/cf-check/diagnose.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LMDB_MAXSIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/core/cf-check/diagnose.c
      type_or_value: '104857600'
    structs: []
    typedefs: []
    union: []
- function_names:
  - default_lmdb_files
  - argv_to_lmdb_files
  source_file: /src/core/cf-check/utilities.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_usage
  - dump_report_error
  - print_json_string
  - print_struct_lastseen_quality
  - print_struct_lock_data
  - print_struct_averages
  - print_struct_persistent_class
  - print_struct_or_string
  - print_line_key_value
  - print_line_array_element
  - print_opening_bracket
  - print_closing_bracket
  - dump_db
  - dump_dbs
  - dump_main
  - dump_main
  source_file: /src/core/cf-check/dump.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_version
  - CFCheckHelpTopic
  - main
  source_file: /src/core/cf-check/cf-check.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lmdump_print_hex
  - lmdump_print_usage
  - lmdump_char_to_mode
  - lmdump_report_error
  - lmdump_print_line
  - lmdump
  - lmdump_main
  - lmdump_main
  source_file: /src/core/cf-check/lmdump.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - backup_main
  - backup_files_copy
  - print_usage
  - create_backup_dir
  - backup_files_copy
  - backup_files_replicate
  - backup_main
  source_file: /src/core/cf-check/backup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-check/lmdump.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-check/dump.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-check/validate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetObservableNames
  source_file: /src/core/cf-check/observables.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-check/repair.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REPAIR_FILE_EXTENSION
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/core/cf-check/repair.h
      type_or_value: '".copy"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-execd/execd-config.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*schedule'
        type: StringSet
      - name: splay_time
        type: int
      - name: '*log_facility'
        type: char
      - name: '*runagent_allow_users'
        type: StringSet
      - name: '*local_run_command'
        type: char
      item_type: struct
      name: ExecdConfig
      pos:
        line_end: 39
        line_start: 32
        source_file: /src/core/cf-execd/execd-config.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-execd/exec-config.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: scheduled_run
        type: bool
      - name: '*exec_command'
        type: char
      - name: agent_expireafter
        type: int
      - name: '*mail_server'
        type: char
      - name: '*mail_from_address'
        type: char
      - name: '*mail_to_address'
        type: char
      - name: '*mail_subject'
        type: char
      - name: mail_max_lines
        type: int
      - name: mail_port
        type: unsigned int
      - name: '*mailfilter_include'
        type: Seq
      - name: '*mailfilter_exclude'
        type: Seq
      - name: '*mailfilter_include_regex'
        type: Seq
      - name: '*mailfilter_exclude_regex'
        type: Seq
      - name: '*fq_name'
        type: char
      - name: '*ip_address'
        type: char
      - name: '*ip_addresses'
        type: char
      item_type: struct
      name: ExecConfig
      pos:
        line_end: 57
        line_start: 31
        source_file: /src/core/cf-execd/exec-config.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-execd/cf-execd-runner.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-execd/cf-execd-runagent.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-execd/cf-execd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HandleRunagentRequest
  source_file: /src/core/cf-execd/cf-execd-runagent.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetSplay
  - ExecdConfigNew
  - ExecdConfigDestroy
  source_file: /src/core/cf-execd/execd-config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ThreadUniqueName
  - ThreadUniqueName
  - TwinFilename
  - AgentFilename
  - TwinExists
  - ConstructFailsafeCommand
  - IsReadReady
  - LocalExec
  - LineIsFiltered
  - CompareResultEqualOrFiltered
  - ConnectToSmtpSocket
  - MailResult
  - Dialogue
  source_file: /src/core/cf-execd/cf-execd-runner.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetIpAddresses
  - RegexFree
  - MailFilterFill
  - RlistMailFilterFill
  - SeqMailFilterFill
  - ExecConfigNew
  - ExecConfigCopy
  - ExecConfigDestroy
  source_file: /src/core/cf-execd/exec-config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/core/cf-execd/exec-config.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - CheckOpts
  - ThisAgentInit
  - GetPulseTime
  - UsingRunagentSocket
  - HandleRequestsOrSleep
  - CFExecdMainLoop
  - GetRunagentSocketInfo
  - SetRunagentSocketACLs
  - SetupRunagentSocket
  - MaybeSleepLog
  - CFExecdMainLoop
  - StartServer
  - LocalExecInFork
  - LocalExecThread
  - LocalExecInThread
  - Apoptosis
  - CheckNewPromises
  - ScheduleRun
  source_file: /src/core/cf-execd/cf-execd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AF_LOCAL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/core/cf-execd/cf-execd.c
      type_or_value: AF_UNIX
    - item_type: preproc_def
      name: CF_EXEC_IFELAPSED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/core/cf-execd/cf-execd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CF_EXEC_EXPIREAFTER
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/core/cf-execd/cf-execd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CF_EXECD_RUNAGENT_SOCKET_NAME
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/core/cf-execd/cf-execd.c
      type_or_value: '"runagent.socket"'
    - item_type: preproc_def
      name: CF_EXECD_RUNAGENT_SOCKET_LISTEN_QUEUE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/core/cf-execd/cf-execd.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CF_NET_COMMANDS
  - GENERATE_ENUM
  - GENERATE_STRING
  - main
  - CFNetSetDefault
  - CFNetOptionsClear
  - CFNetInit
  - RequireHostname
  - CFNetParse
  - CFNetCommandNumber
  - CFNetCommandSwitch
  - CFNetSetVerbosity
  - CFNetRun
  - CFNetOpenConnection
  - JustConnect
  - CFNetHelpTopic
  - CFNetHelp
  - CFNetConnectSingle
  - CFNetConnect
  - CFNetDisconnect
  - CFNetStatPrint
  - CFNetStat
  - invalid_command
  - CFNetGetFile
  - CFNetGet
  - PrintDirs
  - CFNetOpenDir
  - CFNetGetWithPerms
  - create_local_dir
  - process_dir_recursive
  - CFNetGetDir
  - CFNetMulti
  - CFNetMultiTLS
  source_file: /src/core/cf-net/cf-net.c
  types:
    enum:
    - enumerators:
      - name: CF_NET_COMMANDS
      item_type: enum
      name: command_enum
      pos:
        line_end: 160
        line_start: 158
        source_file: /src/core/cf-net/cf-net.c
    - enumerators:
      - name: GET_DIR_OK
        value: '0'
      - name: GET_DIR_RECURSION_LIMIT
        value: '2'
      - name: GET_DIR_ERROR
        value: '1'
      item_type: enum
      name: get_dir_error
      pos:
        line_end: 1006
        line_start: 1001
        source_file: /src/core/cf-net/cf-net.c
    preproc_defs:
    - item_type: preproc_def
      name: CF_NET_VERSION
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/core/cf-net/cf-net.c
      type_or_value: '"0.1.2"'
    - item_type: preproc_def
      name: ARG_UNUSED
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/core/cf-net/cf-net.c
      type_or_value: __attribute__((unused))
    - item_type: preproc_def
      name: RECURSIONLIMIT
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/core/cf-net/cf-net.c
      type_or_value: 50 // GetDir
    structs:
    - fields:
      - name: debug
        type: bool
      - name: verbose
        type: bool
      - name: inform
        type: bool
      - name: used_default
        type: bool
      - name: '*min_tls_version'
        type: char
      - name: '*allow_ciphers'
        type: char
      - name: '*use_protocol_version'
        type: char
      - name: print_stats
        type: bool
      item_type: struct
      name: CFNetOptions
      pos:
        line_end: 60
        line_start: 50
        source_file: /src/core/cf-net/cf-net.c
    - fields:
      - name: '*hostname'
        type: char
      - name: '*use_protocol_version'
        type: char
      - name: print_stats
        type: bool
      - name: remote_file[PATH_MAX]
        type: char
      - name: local_file[PATH_MAX]
        type: char
      - name: ret
        type: bool
      item_type: struct
      name: _GetFileData
      pos:
        line_end: 763
        line_start: 756
        source_file: /src/core/cf-net/cf-net.c
    - fields:
      - name: id
        type: pthread_t
      - name: '*data'
        type: GetFileData
      item_type: struct
      name: _CFNetThreadData
      pos:
        line_end: 788
        line_start: 785
        source_file: /src/core/cf-net/cf-net.c
    typedefs: []
    union: []
- function_names:
  - main
  - CheckOpts
  - WatchStart
  source_file: /src/core/cf-watchd/cf-watchd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/math_eval.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Lock
  - Unlock
  - LockCursor
  - UnlockCursor
  - DBPrivGetFileExtension
  - DBPrivSetMaximumConcurrentTransactions
  - DBPrivOpenDB
  - DBPrivCloseDB
  - DBPrivCommit
  - DBPrivClean
  - DBPrivGetDBUsagePercentage
  - DBPrivRead
  - DBPrivWrite
  - DBPrivOverwrite
  - DBPrivHasKey
  - DBPrivGetValueSize
  - DBPrivDelete
  - DBPrivOpenCursor
  - DBPrivAdvanceCursor
  - DBPrivDeleteCursorEntry
  - DBPrivWriteCursorEntry
  - DBPrivCloseCursor
  - DBPrivDiagnose
  source_file: /src/core/libpromises/dbm_quick.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lock
        type: pthread_mutex_t
      - name: cursor_lock
        type: pthread_mutex_t
      - name: '*depot'
        type: DEPOT
      item_type: struct
      name: DBPriv_
      pos:
        line_end: 52
        line_start: 37
        source_file: /src/core/libpromises/dbm_quick.c
    - fields:
      - name: '*db'
        type: DBPriv
      - name: '*curkey'
        type: char
      - name: curkey_size
        type: int
      - name: '*curval'
        type: char
      item_type: struct
      name: DBCursorPriv_
      pos:
        line_end: 60
        line_start: 54
        source_file: /src/core/libpromises/dbm_quick.c
    typedefs: []
    union: []
- function_names:
  - ParsePrimary
  - ParseNotExpression
  - ParseAndExpression
  - ParseExpression
  - EvalExpression
  - FreeExpression
  source_file: /src/core/libpromises/logic_expressions.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HostKeyAddressUnknown
  - RemovePublicKey
  source_file: /src/core/libpromises/keyring.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BeginMeasure
  - EndMeasurePromise
  - EndMeasure
  - EndMeasureValueMs
  - NotePerformance
  source_file: /src/core/libpromises/instrumentation.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/changes_chroot.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHROOT_CHANGES_LIST_FILE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/core/libpromises/changes_chroot.h
      type_or_value: '"/changed_files"'
    - item_type: preproc_def
      name: CHROOT_RENAMES_LIST_FILE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/core/libpromises/changes_chroot.h
      type_or_value: '"/renamed_files"'
    - item_type: preproc_def
      name: CHROOT_KEPT_LIST_FILE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/core/libpromises/changes_chroot.h
      type_or_value: '"/kept_files"'
    - item_type: preproc_def
      name: CHROOT_PKGS_OPS_FILE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/libpromises/changes_chroot.h
      type_or_value: '"/pkgs_ops"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - VariableNew
  - VariableDestroy
  - VariableDestroy_untyped
  - VariableGetRef
  - VariableGetType
  - VariableGetRvalType
  - VariableGetTags
  - VariableGetComment
  - VariableGetPromise
  - VariableIsSecret
  - VariableGetRval
  - VariableSetRval
  - VariableTableNew
  - VariableTableDestroy
  - VariableTableGet
  - VariableTableRemove
  - VariableTablePut
  - VariableTableClear
  - VariableTableCount
  - VariableTableIteratorNewFromVarRef
  - VariableTableIteratorNew
  - VariableTableIteratorNext
  - VariableTableIteratorDestroy
  source_file: /src/core/libpromises/variable.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VARIABLE_TAG_SECRET
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/libpromises/variable.c
      type_or_value: '"secret"'
    structs:
    - fields:
      - name: '*ref'
        type: VarRef
      - name: rval
        type: Rval
      - name: type
        type: DataType
      - name: '*tags'
        type: StringSet
      - name: '*comment'
        type: char
      - name: '*promise'
        type: Promise
      item_type: struct
      name: Variable_
      pos:
        line_end: 40
        line_start: 32
        source_file: /src/core/libpromises/variable.c
    - fields:
      - name: '*vars'
        type: VarMap
      item_type: struct
      name: VariableTable_
      pos:
        line_end: 154
        line_start: 151
        source_file: /src/core/libpromises/variable.c
    - fields:
      - name: '*ref'
        type: VarRef
      - name: iter
        type: MapIterator
      item_type: struct
      name: VariableTableIterator_
      pos:
        line_end: 160
        line_start: 156
        source_file: /src/core/libpromises/variable.c
    typedefs: []
    union: []
- function_names:
  - IsNewerFileTree
  - IsDir
  - JoinSuffix
  - JoinPaths
  - IsAbsPath
  - AddSlash
  - GetParentDirectoryCopy
  - DeleteSlash
  - DeleteRedundantSlashes
  - FirstFileSeparator
  - LastFileSeparator
  - ChopLastNode
  - TransformNameInPlace
  - CanonifyName
  - CanonifyChar
  - CompareCSVName
  - ReadLastNode
  - CompressPath
  - GetAbsolutePath
  - GetRealPath
  - FilePathGetType
  - IsFileOutsideDefaultRepository
  - UnixRootDirLength
  - NTRootDirLength
  - RootDirLength
  - GetSoftwareCacheFilename
  - GetSoftwarePatchesFilename
  - RealPackageManager
  source_file: /src/core/libpromises/files_names.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PromiseTypeSyntaxGetStrict
  - IsBuiltInPromiseType
  - PromiseTypeSyntaxGet
  - GetCommonConstraint
  - BodySyntaxGetConstraintSyntax
  - PromiseTypeSyntaxGetConstraintSyntax
  - BodySyntaxGet
  - SyntaxStatusToString
  - ExpectedDataType
  - SyntaxTypeMatchToString
  - CheckConstraintTypeMatch
  - StringDataType
  - CheckParseString
  - CheckParseContext
  - CheckParseInt
  - CheckParseIntRange
  - CheckParseReal
  - CheckParseRealRange
  - CheckParseOpts
  - CheckParseVariableName
  - CheckFnCallType
  - ConstraintSyntaxToJson
  - BodySyntaxToJson
  - JsonBundleTypeNew
  - BundleTypesToJson
  - JsonPromiseTypeNew
  - PromiseTypesToJson
  - BodyTypesToJson
  - FnCallCategoryToString
  - FnCallTypeToJson
  - FunctionsToJson
  - SyntaxToJson
  source_file: /src/core/libpromises/syntax.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/audit.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/variable.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Variable
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/core/libpromises/variable.h
      type: Variable_
    - item_type: typedef
      name: VariableTable
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/libpromises/variable.h
      type: VariableTable_
    - item_type: typedef
      name: VariableTableIterator
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/libpromises/variable.h
      type: VariableTableIterator_
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_watch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Cf3ParseFile
  - LoadPolicyInputFiles
  - ShowContext
  - RenameMainBundle
  - LoadPolicyFile
  - VerifyBundleSequence
  - ReadReleaseIdFileFromInputs
  - LoadPolicy
  source_file: /src/core/libpromises/loading.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/exec_tools.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/attributes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ChildrenFDInit
  - ChildrenFDUnsafeClose
  - ChildrenFDClose
  - ChildOutputSelectDupClose
  - ChildrenFDSet
  - GenericCreatePipeAndFork
  - CreatePipeAndFork
  - CreatePipesAndFork
  - cf_popen_full_duplex
  - cf_popen_select
  - cf_popen
  - cf_popensetuid
  - cf_popen_sh_select
  - cf_popen_sh
  - cf_popen_shsetuid
  - cf_pwait
  - cf_pclose_nowait
  - cf_pclose
  - cf_pclose_full_duplex_side
  - cf_pclose_full_duplex
  - PipeToPid
  - CfSetuid
  - PipeIsReadWriteReady
  source_file: /src/core/libpromises/pipes_unix.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*type'
        type: char
      - name: pipe_desc[2]
        type: int
      item_type: struct
      name: IOPipe
      pos:
        line_end: 166
        line_start: 162
        source_file: /src/core/libpromises/pipes_unix.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/actuator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: PromiseActuator(EvalContext *ctx, const Promise *pp, void *param)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/core/libpromises/actuator.h
      type: PromiseResult
    union: []
- function_names:
  - IsPendingTermination
  - ReloadConfigRequested
  - ClearRequestReloadConfig
  - RequestReloadConfig
  - CloseSignalPipe
  - MakeSignalPipe
  - GetSignalPipe
  - SignalNotify
  - HandleSignalsForAgent
  - HandleSignalsForDaemon
  source_file: /src/core/libpromises/signals.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CNTLNAME
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/core/libpromises/signals.c
      type_or_value: '"ioctlsocket"'
    - item_type: preproc_def
      name: CNTLNAME
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/core/libpromises/signals.c
      type_or_value: '"fcntl"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_storage.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetLastFileSeparator
  - GetFirstNonExistingParentDir
  - MirrorDirTreePermsToChroot
  - ChrootSymlinkDeep
  - PrepareChangesChroot
  - RecordFileChangedInChroot
  - RecordFileRenamedInChroot
  - RecordFileEvaluatedInChroot
  - RecordPkgOperationInChroot
  source_file: /src/core/libpromises/changes_chroot.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RlistIsUnresolved
  - StringContainsVar
  - IsCf3VarString
  - IsCf3Scalar
  - ExtractScalarPrefix
  - ReferenceEnd
  - ExtractScalarReference
  - IsQualifiedVariable
  source_file: /src/core/libpromises/vars.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_VARIABLE_REFERENCE_LEVELS
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/core/libpromises/vars.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ProcessWaitUntilStopped
  - ProcessWaitUntilExited
  - SafeKill
  - Kill
  - GracefulTerminate
  source_file: /src/core/libpromises/process_unix.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SLEEP_POLL_TIMEOUT_NS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/libpromises/process_unix.c
      type_or_value: '10000000'
    - item_type: preproc_def
      name: STOP_WAIT_TIMEOUT
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/core/libpromises/process_unix.c
      type_or_value: 999999999L
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/matching.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/lastseen.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: acknowledged
        type: bool
      - name: lastseen
        type: time_t
      - name: Q
        type: QPoint
      item_type: struct
      name: KeyHostSeen
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/core/libpromises/lastseen.h
    typedefs:
    - item_type: typedef
      name: "(*LastSeenQualityCallback)(const char *hostkey, const char *address,\n
        \                                       bool incoming, const KeyHostSeen *quality,\n
        \                                       void *ctx)"
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/core/libpromises/lastseen.h
      type: bool
    union: []
- function_names:
  - FnNumArgs
  - FnReturn
  - FnReturnNoCopy
  - FnReturnBuffer
  - FnReturnContainerNoCopy
  - FnReturnContainer
  - FnReturnF
  - FnReturnContext
  - FnFailure
  - ResolveAndQualifyVarName
  - VarRefValueToJson
  - LookupVarRefToJson
  - VarNameOrInlineToJson
  - HostDataNew
  - HostDataFree
  - ParseHostsSeenFieldOption
  - GetHostsFromLastseenDB
  - FnCallGetACLs
  - FnCallAnd
  - CallHostsSeenCallback
  - FnCallHostsSeen
  - FnCallHostsWithField
  - int_range_convert
  - FnCallRandomInt
  - BytesToUInt64
  - FnCallHashToInt
  - FnCallGetEnv
  - FnCallGetUsers
  - FnCallGetUsers
  - FnCallGetGroups
  - FnCallGetGroups
  - FnCallFindLocalUsers
  - FnCallFindLocalUsers
  - GroupContainsMember
  - GroupMatchesFilter
  - FnCallFindLocalGroups
  - FnCallFindLocalGroups
  - FnCallEscape
  - FnCallHost2IP
  - FnCallIP2Host
  - FnCallSysctlValue
  - FnCallGetUserInfo
  - FnCallGetGroupInfo
  - FnCallGetUid
  - FnCallGetGid
  - no_entry
  - FnCallUserInGroup
  - FnCallHandlerHash
  - FnCallHashMatch
  - FnCallConcat
  - FnCallIfElse
  - FnCallClassesMatching
  - VariablesMatching
  - FnCallVariablesMatching
  - GetBundleFromPolicy
  - GetPromiseFromBundle
  - FnCallGetMetaTags
  - FnCallBasename
  - FnCallBundlesMatching
  - AddPackagesMatchingJsonLine
  - GetLegacyPackagesMatching
  - GetPackagesMatching
  - FnCallPackagesMatching
  - FnCallCanonify
  - FnCallTextXform
  - FnCallLastNode
  - FnCallDirname
  - FnCallClassify
  - GenericVersionCheck
  - FnCallVersionCompare
  - FnCallVersionMinimum
  - FnCallVersionAfter
  - FnCallVersionMaximum
  - FnCallVersionBefore
  - FnCallVersionAt
  - FnCallVersionBetween
  - FnCallReturnsZero
  - FnCallExecResult
  - FnCallUseModule
  - FnCallSplayClass
  - cfengine_curl_write_callback
  - CurlCleanup
  - FnCallUrlGet
  - FnCallReadTcp
  - FnCallIsConnectable
  - FnCallGetIndicesClassic
  - FnCallGetIndices
  - CollectContainerValues
  - FnCallGetValues
  - FnCallGrep
  - FnCallRegList
  - JoinContainer
  - FnCallJoin
  - FnCallGetFields
  - FnCallCountLinesMatching
  - FnCallLsDir
  - EvalContextVariablePutSpecialEscaped
  - ExecJSON_Pipe
  - FnCallMapData
  - FnCallMapList
  - FnCallExpandRange
  - FnCallMergeData
  - DefaultTemplateData
  - FnCallDatastate
  - FnCallBundlestate
  - FnCallSelectServers
  - FnCallShuffle
  - FnCallInt
  - FnCallIsNewerThan
  - FnCallIsNewerThanTime
  - FnCallIsAccessedBefore
  - FnCallIsChangedBefore
  - FnCallFileStat
  - FnCallFileStatDetails
  - FnCallFindfiles
  - FnCallFilter
  - GetListReferenceArgument
  - FilterInternal
  - FnCallSublist
  - FnCallSetop
  - FnCallLength
  - FnCallFold
  - DataTypeStringFromVarName
  - FnCallDatatype
  - FnCallIsDatatype
  - FnCallNth
  - FnCallEverySomeNone
  - FnCallSort
  - FnCallFormat
  - FnCallIPRange
  - FnCallIsIpInSubnet
  - FnCallHostRange
  - FnCallHostInNetgroup
  - FnCallIsVariable
  - FnCallStrCmp
  - FnCallTranslatePath
  - FnCallRegistryValue
  - FnCallRegistryValue
  - FnCallRemoteScalar
  - FnCallHubKnowledge
  - FnCallRemoteClassesMatching
  - FnCallPeers
  - FnCallPeerLeader
  - FnCallPeerLeaders
  - FnCallRegCmp
  - FnCallRegReplace
  - FnCallRegExtract
  - FnCallRegLine
  - FnCallIsLessGreaterThan
  - FnCallIRange
  - FnCallRRange
  - FnCallReverse
  - FnArgsToTm
  - FnCallOn
  - FnCallOr
  - FnCallLaterThan
  - FnCallAgoDate
  - FnCallAccumulatedDate
  - FnCallNot
  - FnCallNow
  - PortablyFormatTime
  - FnCallStrftime
  - FnCallEval
  - FnCallReadFile
  - ReadList
  - FnCallReadStringList
  - FnCallReadIntList
  - FnCallReadRealList
  - ReadDataGeneric
  - FnCallReadData
  - ReadGenericDataType
  - FnCallReadCsv
  - FnCallReadEnvFile
  - FnCallReadYaml
  - FnCallReadJson
  - ValidateDataGeneric
  - FnCallValidData
  - FnCallValidJson
  - FnCallReadModuleProtocol
  - JsonPrimitiveComparator
  - ClassFilterDataGetClassExprFromKey
  - ClassFilterDataGetClassExprFromIndex
  - ClassFilterDataArrayOfArrays
  - ClassFilterDataArrayOfObjects
  - ClassFilterDataArray
  - ClassFilterDataObjectOfArrays
  - ClassFilterDataObjectOfObjects
  - ClassFilterDataObject
  - FnCallClassFilterData
  - FnCallClassFilterCsv
  - FnCallParseJson
  - FnCallStoreJson
  - DataRead
  - FnCallDataExpand
  - FnCallDataRead
  - ReadArray
  - FnCallReadStringArray
  - FnCallReadStringArrayIndex
  - FnCallReadIntArray
  - FnCallReadRealArray
  - ParseArray
  - FnCallParseStringArray
  - FnCallParseStringArrayIndex
  - FnCallParseIntArray
  - FnCallParseRealArray
  - FnCallStringMustache
  - FnCallSplitString
  - FnCallStringSplit
  - FnCallStringReplace
  - FnCallStringTrim
  - FnCallFileSexist
  - FnCallLDAPValue
  - FnCallLDAPArray
  - FnCallLDAPList
  - FnCallRegLDAP
  - FnCallDiskFree
  - FnCallMakerule
  - FnCallUserExists
  - FnCallGroupExists
  - SingleLine
  - CfReadFile
  - StripPatterns
  - BuildData
  - BuildLineArray
  - FnCallProcessExists
  - FnCallNetworkConnections
  - IsReadableThreadRoutine
  - FnCallIsReadable
  - FnCallFindfilesUp
  - ExecModule
  - ModuleProtocol
  - FnCallCFEngineCallers
  - FnCallString
  - CheckIDChar
  - CheckID
  source_file: /src/core/libpromises/evalfunction.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLAY_PSEUDO_RANDOM_CONSTANT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/core/libpromises/evalfunction.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: KILOBYTE
      pos:
        line_end: 9166
        line_start: 9165
        source_file: /src/core/libpromises/evalfunction.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*address'
        type: char
      - name: '*hostkey'
        type: char
      - name: lastseen
        type: time_t
      item_type: struct
      name: HostData
      pos:
        line_end: 533
        line_start: 529
        source_file: /src/core/libpromises/evalfunction.c
    - fields:
      - name: '*fp'
        type: FnCall
      - name: '*desc'
        type: char
      - name: max_size
        type: size_t
      - name: '* content'
        type: Buffer
      item_type: struct
      name: _curl_userdata
      pos:
        line_end: 3255
        line_start: 3249
        source_file: /src/core/libpromises/evalfunction.c
    - fields:
      - name: thread
        type: pthread_t
      - name: cond
        type: pthread_cond_t
      - name: mutex
        type: pthread_mutex_t
      - name: '*path'
        type: char
      - name: success
        type: bool
      item_type: struct
      name: IsReadableThreadData
      pos:
        line_end: 9671
        line_start: 9664
        source_file: /src/core/libpromises/evalfunction.c
    typedefs:
    - item_type: typedef
      name: '* SearchReplacePair[2]'
      pos:
        line_end: 7536
        line_start: 7536
        source_file: /src/core/libpromises/evalfunction.c
      type: char
    union: []
- function_names:
  - PipeTypeIsOk
  - PipeReadData
  - PipeWrite
  - PipeWriteData
  - PipeReadWriteData
  - cf_popen_full_duplex_streams
  source_file: /src/core/libpromises/pipes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CopyBodyConstraintsToPromise
  - GetBodyRewriter
  - AppendExpandedBodies
  - GetExpandedBodyAsContainer
  - DeRefCopyPromise
  - AddDefaultBodiesToPromise
  - EvaluateConstraintIteration
  - CheckVarClassExpression
  - DereferenceAndPutComment
  - ExpandDeRefPromise
  - PromiseRef
  - PromiseID
  source_file: /src/core/libpromises/promises.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_outputs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/chflags.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/scope.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_knowledge.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetProcessStartTime
  - GetProcessState
  source_file: /src/core/libpromises/process_unix_stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/unix.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gettid
  - DBItemNew
  - DBItemDestroy
  - InitializeRNG
  - GetRandomNumber
  - GetDBKeys
  - LoadDB
  - DoRandomReads
  - DoRandomReadsRoutine
  - PruneDB
  - DoRandomWrites
  - DoRandomWritesRoutine
  - DoRandomIterations
  - DoRandomIterationsRoutine
  - SimulateDBLoad
  - StopSimulation
  - FillUpDB
  - RemoveFilament
  source_file: /src/core/libpromises/dbm_test_api.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*key'
        type: char
      - name: val_size
        type: size_t
      - name: '*val'
        type: void
      item_type: struct
      name: DBItem
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/core/libpromises/dbm_test_api.c
    - fields:
      - name: db_id
        type: dbid
      - name: keys_refresh_s
        type: int
      - name: min_interval_ms
        type: long
      - name: max_interval_ms
        type: long
      - name: '*terminate'
        type: bool
      item_type: struct
      name: ReadParams
      pos:
        line_end: 216
        line_start: 212
        source_file: /src/core/libpromises/dbm_test_api.c
    - fields:
      - name: db_id
        type: dbid
      - name: sample_size_pct
        type: int
      - name: prune_interval_s
        type: int
      - name: min_interval_ms
        type: long
      - name: max_interval_ms
        type: long
      - name: '*terminate'
        type: bool
      item_type: struct
      name: WriteParams
      pos:
        line_end: 357
        line_start: 352
        source_file: /src/core/libpromises/dbm_test_api.c
    - fields:
      - name: db_id
        type: dbid
      - name: min_interval_ms
        type: long
      - name: max_interval_ms
        type: long
      - name: '*terminate'
        type: bool
      item_type: struct
      name: IterParams
      pos:
        line_end: 423
        line_start: 419
        source_file: /src/core/libpromises/dbm_test_api.c
    - fields:
      - name: read_params
        type: struct ReadParams
      - name: read_th
        type: pthread_t
      - name: read_th_started
        type: bool
      - name: read_th_terminate
        type: bool
      - name: write_params
        type: struct WriteParams
      - name: write_th
        type: pthread_t
      - name: write_th_started
        type: bool
      - name: write_th_terminate
        type: bool
      - name: iter_params
        type: struct IterParams
      - name: iter_th
        type: pthread_t
      - name: iter_th_started
        type: bool
      - name: iter_th_terminate
        type: bool
      item_type: struct
      name: DBLoadSimulation_
      pos:
        line_end: 450
        line_start: 435
        source_file: /src/core/libpromises/dbm_test_api.c
    - fields:
      - name: db_id
        type: dbid
      - name: '*items'
        type: StringSet
      item_type: struct
      name: DBFilament_
      pos:
        line_end: 637
        line_start: 634
        source_file: /src/core/libpromises/dbm_test_api.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/parser.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PARSER_WARNING_DEPRECATED
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/core/libpromises/parser.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: PARSER_WARNING_REMOVED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/libpromises/parser.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: PARSER_WARNING_SANITY_CHECK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/libpromises/parser.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: PARSER_WARNING_ALL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/libpromises/parser.h
      type_or_value: '0xfffffff'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SetRepositoryLocation
  - SetRepositoryChar
  - GetRepositoryPath
  - ArchiveToRepository
  - FileInRepository
  source_file: /src/core/libpromises/files_repository.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ParseQname
  - ParseVarRef
  - ValidTokenCharacter
  - ParseToken
  - ParseTerm
  - ParseStringExpression
  - EvalConcat
  - EvalVarRef
  - EvalStringExpression
  - FreeStringExpression
  source_file: /src/core/libpromises/string_expressions.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PurgeItemList
  - FileWriteOver
  - MakeParentDirectory
  - MakeParentDirectoryPerms
  - MakeParentInternalDirectory
  - MakeParentDirectoryForPromise
  - MakeParentDirectoryImpl
  - LoadFileAsItemList
  - TraverseDirectoryTreeInternal
  - TraverseDirectoryTree
  - HashDirectoryTreeCallback
  - HashDirectoryTree
  - RotateFiles
  - CreateEmptyFile
  source_file: /src/core/libpromises/files_lib.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buffer[1024]
        type: unsigned char
      - name: '**extensions_filter'
        type: char
      - name: '*crypto_context'
        type: EVP_MD_CTX
      - name: '**digest'
        type: unsigned char
      item_type: struct
      name: HashDirectoryTreeState
      pos:
        line_end: 582
        line_start: 576
        source_file: /src/core/libpromises/files_lib.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/pipes.h
  types:
    enum:
    - enumerators:
      - name: OUTPUT_SELECT_BOTH
      - name: OUTPUT_SELECT_STDERR
      - name: OUTPUT_SELECT_STDOUT
      item_type: enum
      name: OutputSelect
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/core/libpromises/pipes.h
    preproc_defs: []
    structs:
    - fields:
      - name: write_fd
        type: int
      - name: read_fd
        type: int
      - name: '*write_stream'
        type: FILE
      - name: '*read_stream'
        type: FILE
      item_type: struct
      name: IOData
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/core/libpromises/pipes.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/rlist.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: val
        type: Rval
      - name: '*next'
        type: Rlist
      item_type: struct
      name: Rlist_
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/core/libpromises/rlist.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/cf3.defs.h
  types:
    enum:
    - enumerators:
      - name: ob_rootprocs
      - name: ob_netbiosns_in
      - name: ob_netbiosssn_in
      - name: ob_cfengine_in
      - name: ob_smtp_in
      - name: ob_ftp_in
      - name: ob_wwws_in
      - name: ob_udp_in
      - name: ob_dns_in
      - name: ob_tcpack_in
      - name: ob_cpuall
      - name: ob_microsoft_ds_out
      - name: ob_ldap_in
      - name: ob_mysql_in
      - name: ob_microsoft_ds_in
      - name: ob_mongo_out
      - name: ob_ipp_out
      - name: ob_syslog
      - name: ob_otherprocs
      - name: ob_netbiosns_out
      - name: ob_netbiosssn_out
      - name: ob_cfengine_out
      - name: ob_smtp_out
      - name: ob_ftp_out
      - name: ob_wwws_out
      - name: ob_dns_out
      - name: ob_tcpack_out
      - name: ob_tcpmisc_out
      - name: ob_temp0
      - name: ob_www_alt_in
      - name: ob_ldaps_in
      - name: ob_mysql_out
      - name: ob_ldap_out
      - name: ob_messages
      - name: ob_tcpmisc_in
      - name: ob_users
      - name: ob_diskfree
      - name: ob_netbiosdgm_in
      - name: ob_nfsd_in
      - name: ob_imap_in
      - name: ob_www_in
      - name: ob_ssh_in
      - name: ob_icmp_in
      - name: ob_tcpsyn_in
      - name: ob_tcpfin_in
      - name: ob_ldaps_out
      - name: ob_postgresql_out
      - name: ob_cpu2
      - name: ob_webaccess
      - name: ob_spare
      - name: ob_cpu1
      - name: ob_temp1
      - name: ob_postgresql_in
      - name: ob_cpu0
      - name: ob_loadavg
      - name: ob_netbiosdgm_out
      - name: ob_nfsd_out
      - name: ob_imap_out
      - name: ob_www_out
      - name: ob_ssh_out
      - name: ob_icmp_out
      - name: ob_udp_out
      - name: ob_tcpsyn_out
      - name: ob_tcpfin_out
      - name: ob_weberrors
      - name: ob_temp3
      - name: ob_ipp_in
      - name: ob_imaps_out
      - name: ob_temp2
      - name: ob_imaps_in
      - name: ob_www_alt_out
      - name: ob_mongo_in
      - name: ob_cpu3
      item_type: enum
      name: observables
      pos:
        line_end: 240
        line_start: 165
        source_file: /src/core/libpromises/cf3.defs.h
    - enumerators:
      - name: cfa_fix
      - name: cfa_warn
      item_type: enum
      name: cfopaction
      pos:
        line_end: 743
        line_start: 739
        source_file: /src/core/libpromises/cf3.defs.h
    - enumerators:
      - name: HOSTS_WITH_CLASS
      - name: HOSTS_WITH_GROUP
      item_type: enum
      name: hostswithfieldenum
      pos:
        line_end: 748
        line_start: 745
        source_file: /src/core/libpromises/cf3.defs.h
    - enumerators:
      - name: cfa_force
      - name: cfa_delete
      - name: cfa_skip
      item_type: enum
      name: cfnofile
      pos:
        line_end: 764
        line_start: 759
        source_file: /src/core/libpromises/cf3.defs.h
    - enumerators:
      - name: cfa_override
      - name: cfa_onlynonexisting
      item_type: enum
      name: cflinkchildren
      pos:
        line_end: 770
        line_start: 766
        source_file: /src/core/libpromises/cf3.defs.h
    preproc_defs:
    - item_type: preproc_def
      name: CF_MAXFRAGMENT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '19       '
    - item_type: preproc_def
      name: CF_NONCELEN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (CF_BUFSIZE/16)
    - item_type: preproc_def
      name: CF_MAXLINKSIZE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '256'
    - item_type: preproc_def
      name: CF_PROCCOLS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CF_MACROALPHABET
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '61     '
    - item_type: preproc_def
      name: CF_ALPHABETSIZE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '256'
    - item_type: preproc_def
      name: CF_SAMEMODE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '7777'
    - item_type: preproc_def
      name: CF_SAME_OWNER
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: ((uid_t)-1)
    - item_type: preproc_def
      name: CF_UNKNOWN_OWNER
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: ((uid_t)-2)
    - item_type: preproc_def
      name: CF_SAME_GROUP
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: ((gid_t)-1)
    - item_type: preproc_def
      name: CF_UNKNOWN_GROUP
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: ((gid_t)-2)
    - item_type: preproc_def
      name: CF_INFINITY
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: ((int)999999999)
    - item_type: preproc_def
      name: CF_MONDAY_MORNING
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '345600'
    - item_type: preproc_def
      name: MINUTES_PER_HOUR
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: SECONDS_PER_MINUTE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: SECONDS_PER_HOUR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (60 * SECONDS_PER_MINUTE)
    - item_type: preproc_def
      name: SECONDS_PER_DAY
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (24 * SECONDS_PER_HOUR)
    - item_type: preproc_def
      name: SECONDS_PER_WEEK
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (7 * SECONDS_PER_DAY)
    - item_type: preproc_def
      name: SECONDS_PER_YEAR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (365 * SECONDS_PER_DAY)
    - item_type: preproc_def
      name: GETPW_R_SIZE_MAX
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: GETGR_R_SIZE_MAX
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '16384  '
    - item_type: preproc_def
      name: HOURS_PER_SHIFT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SECONDS_PER_SHIFT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (HOURS_PER_SHIFT * SECONDS_PER_HOUR)
    - item_type: preproc_def
      name: SHIFTS_PER_DAY
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SHIFTS_PER_WEEK
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (4*7)
    - item_type: preproc_def
      name: MAX_MONTH_NAME
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '9'
    - item_type: preproc_def
      name: MAX_DIGEST_BYTES
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '(512 / 8)  '
    - item_type: preproc_def
      name: MAX_DIGEST_HEX
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (MAX_DIGEST_BYTES * 2)
    - item_type: preproc_def
      name: CF_FILECHANGE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"file_change.log"'
    - item_type: preproc_def
      name: CF_FILECHANGE_NEW
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"file_changes.log"'
    - item_type: preproc_def
      name: CF_PROMISE_LOG
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"promise_summary.log"'
    - item_type: preproc_def
      name: CF_ENV_FILE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"env_data"'
    - item_type: preproc_def
      name: CF_DB_REPAIR_TRIGGER
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"db_repair_required"'
    - item_type: preproc_def
      name: CF_SAVED
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '".cfsaved"'
    - item_type: preproc_def
      name: CF_EDITED
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '".cfedited"'
    - item_type: preproc_def
      name: CF_NEW
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '".cfnew"'
    - item_type: preproc_def
      name: CFD_TERMINATOR
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"---cfXen/gine/cfXen/gine---"'
    - item_type: preproc_def
      name: CFD_TRUE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"CFD_TRUE"'
    - item_type: preproc_def
      name: CFD_FALSE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"CFD_FALSE"'
    - item_type: preproc_def
      name: CFD_FALSE_SIZE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: sizeof(CFD_FALSE) // size of CFD_FALSE including terminator
    - item_type: preproc_def
      name: CF_ANYCLASS
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"any"'
    - item_type: preproc_def
      name: CF_SMALL_OFFSET
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CF_NS
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: ''':''   // namespace character separator'
    - item_type: preproc_def
      name: CF_MANGLED_NS
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '''*'''
    - item_type: preproc_def
      name: CF_MANGLED_SCOPE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '''#'''
    - item_type: preproc_def
      name: CF_FAILEDSTR
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"BAD: Unspecified server refusal (see verbose server output)"'
    - item_type: preproc_def
      name: CF_CHANGEDSTR1
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"BAD: File changed "     '
    - item_type: preproc_def
      name: CF_CHANGEDSTR2
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"while copying"'
    - item_type: preproc_def
      name: CF_START_DOMAIN
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"undefined.domain"'
    - item_type: preproc_def
      name: CF_GRAINS
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CF_NETATTR
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '7          '
    - item_type: preproc_def
      name: CF_MEASURE_INTERVAL
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (5.0*60.0)
    - item_type: preproc_def
      name: CF_SHIFT_INTERVAL
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (6*3600)
    - item_type: preproc_def
      name: CF_OBSERVABLES
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '100'
    - item_type: preproc_def
      name: EC_EVAL_ABORTED
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '6       '
    - item_type: preproc_def
      name: NULLFILE
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"nul"'
    - item_type: preproc_def
      name: EXEC_SUFFIX
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '".exe"'
    - item_type: preproc_def
      name: NULLFILE
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: EXEC_SUFFIX
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '""'
    - item_type: preproc_def
      name: CF_WORDSIZE
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '8           '
    - item_type: preproc_def
      name: CF_UNDEFINED
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: CF_NOINT
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: -678L
    - item_type: preproc_def
      name: CF_UNDEFINED_ITEM
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: (void *)0x1234
    - item_type: preproc_def
      name: CF_DONEPASSES
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CFPULSETIME
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: CF_COMMONC
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"common"'
    - item_type: preproc_def
      name: CF_AGENTC
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"agent"'
    - item_type: preproc_def
      name: CF_SERVERC
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"server"'
    - item_type: preproc_def
      name: CF_MONITORC
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"monitor"'
    - item_type: preproc_def
      name: CF_EXECC
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"executor"'
    - item_type: preproc_def
      name: CF_RUNC
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"runagent"'
    - item_type: preproc_def
      name: CF_KEYGEN
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"keygenerator"'
    - item_type: preproc_def
      name: CF_HUBC
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"hub"'
    - item_type: preproc_def
      name: CF_WATCHC
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"watch"'
    - item_type: preproc_def
      name: CF_BUNDLE
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '(void*)1234  '
    - item_type: preproc_def
      name: CF_HIGHINIT
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: 999999L
    - item_type: preproc_def
      name: CF_LOWINIT
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: -999999L
    - item_type: preproc_def
      name: CF_BOOL
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"true,false,yes,no,on,off"'
    - item_type: preproc_def
      name: CF_LINKRANGE
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"symlink,hardlink,relative,absolute"'
    - item_type: preproc_def
      name: CF_TIMERANGE
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"0,99999999999" '
    - item_type: preproc_def
      name: CF_TIMERANGE
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"0,2147483647" '
    - item_type: preproc_def
      name: CF_VALRANGE
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"0,99999999999"'
    - item_type: preproc_def
      name: CF_INTRANGE
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"-99999999999,99999999999"'
    - item_type: preproc_def
      name: CF_INTLISTRANGE
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"[-0-9_$(){}\\[\\].]+"'
    - item_type: preproc_def
      name: CF_REALRANGE
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"-9.99999E100,9.99999E100"'
    - item_type: preproc_def
      name: CF_CHARRANGE
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"^.$"'
    - item_type: preproc_def
      name: CF_MODERANGE
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"[0-7augorwxst,+-=]+"'
    - item_type: preproc_def
      name: CF_BSDFLAGRANGE
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"[+-]*[(arch|archived|nodump|opaque|sappnd|sappend|schg|schange|simmutable|sunlnk|sunlink|uappnd|uappend|uchg|uchange|uimmutable|uunlnk|uunlink)]+"'
    - item_type: preproc_def
      name: CF_CLASSRANGE
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"[a-zA-Z0-9_!&@@$|.()\\[\\]{}:]+"'
    - item_type: preproc_def
      name: CF_IDRANGE
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"[a-zA-Z0-9_$(){}\\[\\].:]+"'
    - item_type: preproc_def
      name: CF_USERRANGE
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"[a-zA-Z0-9_$.-]+"'
    - item_type: preproc_def
      name: CF_IPRANGE
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"[a-zA-Z0-9_$(){}.:-]+"'
    - item_type: preproc_def
      name: CF_FNCALLRANGE
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"[a-zA-Z0-9_(){}.$@]+"'
    - item_type: preproc_def
      name: CF_NAKEDLRANGE
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"@[(][a-zA-Z0-9_$(){}\\[\\].:]+[)]"'
    - item_type: preproc_def
      name: CF_ANYSTRING
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '".*"'
    - item_type: preproc_def
      name: CF_KEYSTRING
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"^(SHA|MD5)=[0123456789abcdef]*$"'
    - item_type: preproc_def
      name: CF_ABSPATHRANGE
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"\"?(/.*)"'
    - item_type: preproc_def
      name: CF_ABSPATHRANGE
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"\"?(([a-zA-Z]:\\\\.*)|(/.*))"'
    - item_type: preproc_def
      name: CF_PATHRANGE
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '".+"'
    - item_type: preproc_def
      name: SOFTWARE_PACKAGES_CACHE
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"software_packages.csv"'
    - item_type: preproc_def
      name: SOFTWARE_PATCHES_CACHE
      pos:
        line_end: 611
        line_start: 610
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"software_patches_avail.csv"'
    - item_type: preproc_def
      name: PACKAGES_CONTEXT
      pos:
        line_end: 613
        line_start: 612
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"cf_pack_context"'
    - item_type: preproc_def
      name: PACKAGES_CONTEXT_ANYVER
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '"cf_pack_context_anyver"'
    - item_type: preproc_def
      name: OVECCOUNT
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: '30'
    - item_type: preproc_def
      name: PROCESS_SELECT_INIT
      pos:
        line_end: 1205
        line_start: 1180
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: "{ \\\n    .owner = NULL,          \\\n    .min_pid = CF_NOINT,
        \   \\\n    .max_pid = CF_NOINT,    \\\n    .min_ppid = CF_NOINT,   \\\n    .max_ppid
        = CF_NOINT,   \\\n    .min_pgid = CF_NOINT,   \\\n    .max_pgid = CF_NOINT,
        \  \\\n    .min_rsize = CF_NOINT,  \\\n    .max_rsize = CF_NOINT,  \\\n    .min_vsize
        = CF_NOINT,  \\\n    .max_vsize = CF_NOINT,  \\\n    .min_ttime = CF_NOINT,
        \ \\\n    .max_ttime = CF_NOINT,  \\\n    .min_stime = CF_NOINT,  \\\n    .max_stime
        = CF_NOINT,  \\\n    .min_pri = CF_NOINT,    \\\n    .max_pri = CF_NOINT,
        \   \\\n    .min_thread = CF_NOINT, \\\n    .max_thread = CF_NOINT, \\\n    .status
        = NULL,         \\\n    .command = NULL,        \\\n    .tty = NULL,            \\\n
        \   .process_result = NULL, \\\n}"
    - item_type: preproc_def
      name: ZeroAttributes
      pos:
        line_end: 1729
        line_start: 1646
        source_file: /src/core/libpromises/cf3.defs.h
      type_or_value: "{\\\n    .select = {0},\\\n    .perms = {0},\\\n    .copy =
        {0},\\\n    .delete = {0},\\\n    .content = NULL,\\\n    .rename = {0},\\\n
        \   .change = {0},\\\n    .link = {0},\\\n    .edits = {0},\\\n    .packages
        = {0},\\\n    .new_packages = {0},\\\n    .context = {0},\\\n    .measure
        = {0},\\\n    .acl = {0},\\\n    .database = {0},\\\n    .service = {0},\\\n
        \   .users = {0},\\\n    .env = {0},\\\n    .transformer = NULL,\\\n    .pathtype
        = NULL,\\\n    .file_type = NULL,\\\n    .repository = NULL,\\\n    .edit_template
        = NULL,\\\n    .edit_template_string = NULL,\\\n    .template_method = NULL,\\\n
        \   .template_data = NULL,\\\n    .touch = 0,\\\n    .create = 0,\\\n    .move_obstructions
        = 0,\\\n    .inherit = 0,\\\n    .recursion = { 0 },\\\n    .transaction =
        { 0 },\\\n    .classes = { 0 },\\\n    .contain = { 0 },\\\n    .args = NULL,\\\n
        \   .arglist = NULL,\\\n    .module = 0,\\\n    .inform = false,\\\n    .signals
        = NULL,\\\n    .process_stop = NULL,\\\n    .restart_class = NULL,\\\n    .process_count
        = { 0 },\\\n    .process_select = { 0 },\\\n    .report = { 0 },\\\n    .mount
        = { 0 },\\\n    .volume = { 0 },\\\n    .havedepthsearch = 0,\\\n    .haveselect
        = 0,\\\n    .haverename = 0,\\\n    .havedelete = 0,\\\n    .haveperms = 0,\\\n
        \   .havechange = 0,\\\n    .havecopy = 0,\\\n    .havelink = 0,\\\n    .haveeditline
        = 0,\\\n    .haveeditxml = 0,\\\n    .haveedit = 0,\\\n    .havecontain =
        0,\\\n    .haveclasses = 0,\\\n    .havetrans = 0,\\\n    .haveprocess_count
        = 0,\\\n    .havemount = 0,\\\n    .havevolume = 0,\\\n    .havebundle = 0,\\\n
        \   .havepackages = 0,\\\n    .region = { 0 },\\\n    .location = { 0 },\\\n
        \   .column = { 0 },\\\n    .replace = { 0 },\\\n    .xml = { 0 },\\\n    .haveregion
        = 0,\\\n    .havelocation = 0,\\\n    .havecolumn = 0,\\\n    .havereplace
        = 0,\\\n    .haveinsertselect = 0,\\\n    .havedeleteselect = 0,\\\n    .line_select
        = { 0 },\\\n    .sourcetype = NULL,\\\n    .expandvars = 0,\\\n    .not_matching
        = 0,\\\n    .insert_match = NULL\\\n}"
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*description'
        type: char
      - name: '*units'
        type: char
      - name: expected_minimum
        type: double
      - name: expected_maximum
        type: double
      - name: consolidable
        type: bool
      item_type: struct
      name: MonitoringSlot
      pos:
        line_end: 163
        line_start: 155
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: t
        type: time_t
      - name: Q
        type: QPoint
      item_type: struct
      name: Event
      pos:
        line_end: 248
        line_start: 244
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: last_seen
        type: time_t
      - name: Q[CF_OBSERVABLES]
        type: QPoint
      item_type: struct
      name: Averages
      pos:
        line_end: 254
        line_start: 250
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: pid
        type: pid_t
      - name: time
        type: time_t
      - name: process_start_time
        type: time_t
      item_type: struct
      name: LockData
      pos:
        line_end: 277
        line_start: 271
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: uid
        type: uid_t
      - name: '*uidname'
        type: char
      - name: '*next'
        type: UidList
      item_type: struct
      name: UidList_
      pos:
        line_end: 324
        line_start: 316
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: gid
        type: gid_t
      - name: '*gidname'
        type: char
      - name: '*next'
        type: GidList
      item_type: struct
      name: GidList_
      pos:
        line_end: 336
        line_start: 331
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*item'
        type: void
      - name: type
        type: RvalType
      item_type: struct
      name: Rval
      pos:
        line_end: 632
        line_start: 628
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*lval'
        type: char
      - name: dtype
        type: DataType
      - name: range
        type: "union\n    {\n        const char *validation_string;\n        const
          BodySyntax *body_type_syntax;\n    }"
      - name: '*description'
        type: char
      - name: status
        type: SyntaxStatus
      item_type: struct
      name: ConstraintSyntax_
      pos:
        line_end: 681
        line_start: 670
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*body_type'
        type: char
      - name: '*constraints'
        type: ConstraintSyntax
      - name: check_body
        type: BodyCheckFn
      - name: status
        type: SyntaxStatus
      item_type: struct
      name: BodySyntax_
      pos:
        line_end: 689
        line_start: 683
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*bundle_type'
        type: char
      - name: '*promise_type'
        type: char
      - name: '*constraints'
        type: ConstraintSyntax
      - name: check_promise
        type: PromiseCheckFn
      - name: status
        type: SyntaxStatus
      item_type: struct
      name: PromiseTypeSyntax
      pos:
        line_end: 698
        line_start: 691
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: acl_method
        type: AclMethod
      - name: acl_type
        type: AclType
      - name: acl_default
        type: AclDefault
      - name: '*acl_entries'
        type: Rlist
      - name: '*acl_default_entries'
        type: Rlist
      - name: acl_inherit
        type: AclInherit
      item_type: struct
      name: Acl
      pos:
        line_end: 875
        line_start: 866
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*last'
        type: char
      - name: '*lock'
        type: char
      - name: is_dummy
        type: bool
      item_type: struct
      name: CfLock
      pos:
        line_end: 906
        line_start: 901
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*host'
        type: char
      - name: '*source'
        type: char
      - name: '*mounton'
        type: char
      - name: '*options'
        type: char
      - name: unmount
        type: int
      item_type: struct
      name: Mount
      pos:
        line_end: 917
        line_start: 910
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: travlinks
        type: int
      - name: rmdeadlinks
        type: int
      - name: depth
        type: int
      - name: xdev
        type: int
      - name: include_basedir
        type: int
      - name: '*include_dirs'
        type: Rlist
      - name: '*exclude_dirs'
        type: Rlist
      item_type: struct
      name: DirectoryRecursion
      pos:
        line_end: 930
        line_start: 921
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: action
        type: enum cfopaction
      - name: ifelapsed
        type: int
      - name: expireafter
        type: int
      - name: background
        type: int
      - name: '*log_string'
        type: char
      - name: '*log_kept'
        type: char
      - name: '*log_repaired'
        type: char
      - name: '*log_failed'
        type: char
      - name: log_priority
        type: int
      - name: '*measure_id'
        type: char
      - name: audit
        type: int
      - name: report_level
        type: LogLevel
      - name: log_level
        type: LogLevel
      item_type: struct
      name: TransactionContext
      pos:
        line_end: 949
        line_start: 934
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: scope
        type: ContextScope
      - name: '*change'
        type: Rlist
      - name: '*failure'
        type: Rlist
      - name: '*denied'
        type: Rlist
      - name: '*timeout'
        type: Rlist
      - name: '*kept'
        type: Rlist
      - name: persist
        type: int
      - name: timer
        type: PersistentClassPolicy
      - name: '*del_change'
        type: Rlist
      - name: '*del_kept'
        type: Rlist
      - name: '*del_notkept'
        type: Rlist
      - name: '*retcode_kept'
        type: Rlist
      - name: '*retcode_repaired'
        type: Rlist
      - name: '*retcode_failed'
        type: Rlist
      item_type: struct
      name: DefineClasses
      pos:
        line_end: 976
        line_start: 960
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*manager'
        type: char
      - name: action
        type: PackageAction
      - name: policy
        type: PackageActionPolicy
      - name: '*pack_list'
        type: PackageItem
      - name: '*patch_list'
        type: PackageItem
      - name: '*patch_avail'
        type: PackageItem
      - name: '*next'
        type: PackageManager
      item_type: struct
      name: PackageManager_
      pos:
        line_end: 1005
        line_start: 996
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*name'
        type: char
      - name: '*version'
        type: char
      - name: '*arch'
        type: char
      - name: '*pp'
        type: Promise
      - name: '*next'
        type: PackageItem
      item_type: struct
      name: PackageItem_
      pos:
        line_end: 1016
        line_start: 1009
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: expires
        type: unsigned int
      - name: policy
        type: PersistentClassPolicy
      - name: tags[]
        type: char
      item_type: struct
      name: PersistentClassInfo
      pos:
        line_end: 1024
        line_start: 1019
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: plus
        type: mode_t
      - name: minus
        type: mode_t
      - name: '*owners'
        type: UidList
      - name: '*groups'
        type: GidList
      - name: '*findertype'
        type: char
      - name: plus_flags
        type: u_long
      - name: minus_flags
        type: u_long
      - name: rxdirs
        type: int
      item_type: struct
      name: FilePerms
      pos:
        line_end: 1038
        line_start: 1028
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*name'
        type: Rlist
      - name: '*path'
        type: Rlist
      - name: '*perms'
        type: Rlist
      - name: '*bsdflags'
        type: Rlist
      - name: '*owners'
        type: Rlist
      - name: '*groups'
        type: Rlist
      - name: max_size
        type: long
      - name: min_size
        type: long
      - name: max_ctime
        type: time_t
      - name: min_ctime
        type: time_t
      - name: max_mtime
        type: time_t
      - name: min_mtime
        type: time_t
      - name: max_atime
        type: time_t
      - name: min_atime
        type: time_t
      - name: '*exec_regex'
        type: char
      - name: '*exec_program'
        type: char
      - name: '*filetypes'
        type: Rlist
      - name: '*issymlinkto'
        type: Rlist
      - name: '*result'
        type: char
      item_type: struct
      name: FileSelect
      pos:
        line_end: 1063
        line_start: 1042
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: dirlinks
        type: "enum\n    {\n        TIDY_LINK_DELETE,\n        TIDY_LINK_KEEP\n    }"
      - name: rmdirs
        type: int
      item_type: struct
      name: FileDelete
      pos:
        line_end: 1075
        line_start: 1067
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: immutable
        type: int
      - name: haveimmutable
        type: int
      item_type: struct
      name: FileFSAttrs
      pos:
        line_end: 1083
        line_start: 1079
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*newname'
        type: char
      - name: '*disable_suffix'
        type: char
      - name: disable
        type: int
      - name: rotate
        type: int
      - name: plus
        type: mode_t
      - name: minus
        type: mode_t
      item_type: struct
      name: FileRename
      pos:
        line_end: 1095
        line_start: 1087
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: hash
        type: HashMethod
      - name: report_changes
        type: FileChangeReport
      - name: report_diffs
        type: int
      - name: update
        type: int
      item_type: struct
      name: FileChange
      pos:
        line_end: 1105
        line_start: 1099
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*source'
        type: char
      - name: link_type
        type: FileLinkType
      - name: '*copy_patterns'
        type: Rlist
      - name: when_no_file
        type: enum cfnofile
      - name: when_linking_children
        type: enum cflinkchildren
      - name: link_children
        type: int
      item_type: struct
      name: FileLink
      pos:
        line_end: 1117
        line_start: 1109
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: shelltype
        type: ShellType
      - name: umask
        type: mode_t
      - name: owner
        type: uid_t
      - name: group
        type: gid_t
      - name: '*chdir'
        type: char
      - name: '*chroot'
        type: char
      - name: preview
        type: int
      - name: nooutput
        type: bool
      - name: timeout
        type: int
      item_type: struct
      name: ExecContain
      pos:
        line_end: 1139
        line_start: 1128
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: min_range
        type: long
      - name: max_range
        type: long
      - name: '*in_range_define'
        type: Rlist
      - name: '*out_of_range_define'
        type: Rlist
      item_type: struct
      name: ProcessCount
      pos:
        line_end: 1149
        line_start: 1143
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*owner'
        type: Rlist
      - name: min_pid
        type: long
      - name: max_pid
        type: long
      - name: min_ppid
        type: long
      - name: max_ppid
        type: long
      - name: min_pgid
        type: long
      - name: max_pgid
        type: long
      - name: min_rsize
        type: long
      - name: max_rsize
        type: long
      - name: min_vsize
        type: long
      - name: max_vsize
        type: long
      - name: min_ttime
        type: time_t
      - name: max_ttime
        type: time_t
      - name: min_stime
        type: time_t
      - name: max_stime
        type: time_t
      - name: min_pri
        type: long
      - name: max_pri
        type: long
      - name: min_thread
        type: long
      - name: max_thread
        type: long
      - name: '*status'
        type: char
      - name: '*command'
        type: char
      - name: '*tty'
        type: char
      - name: '*process_result'
        type: char
      item_type: struct
      name: ProcessSelect
      pos:
        line_end: 1178
        line_start: 1153
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*expression'
        type: Constraint
      - name: scope
        type: ContextScope
      - name: nconstraints
        type: int
      - name: persistent
        type: int
      - name: timer
        type: PersistentClassPolicy
      item_type: struct
      name: ContextConstraint
      pos:
        line_end: 1215
        line_start: 1208
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: backup
        type: BackupOption
      - name: empty_before_use
        type: int
      - name: maxfilesize
        type: int
      - name: joinlines
        type: int
      - name: rotate
        type: int
      - name: inherit
        type: int
      item_type: struct
      name: EditDefaults
      pos:
        line_end: 1227
        line_start: 1219
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*startwith_from_list'
        type: Rlist
      - name: '*not_startwith_from_list'
        type: Rlist
      - name: '*match_from_list'
        type: Rlist
      - name: '*not_match_from_list'
        type: Rlist
      - name: '*contains_from_list'
        type: Rlist
      - name: '*not_contains_from_list'
        type: Rlist
      item_type: struct
      name: LineSelect
      pos:
        line_end: 1239
        line_start: 1231
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*build_xpath'
        type: char
      - name: '*select_xpath'
        type: char
      - name: '*attribute_value'
        type: char
      - name: havebuildxpath
        type: int
      - name: haveselectxpath
        type: int
      - name: haveattributevalue
        type: int
      item_type: struct
      name: EditXml
      pos:
        line_end: 1249
        line_start: 1241
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*line_matching'
        type: char
      - name: before_after
        type: EditOrder
      - name: '*first_last'
        type: char
      item_type: struct
      name: EditLocation
      pos:
        line_end: 1256
        line_start: 1251
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*select_start'
        type: char
      - name: '*select_end'
        type: char
      - name: include_start
        type: int
      - name: include_end
        type: int
      - name: select_end_match_eof
        type: bool
      item_type: struct
      name: EditRegion
      pos:
        line_end: 1265
        line_start: 1258
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*column_separator'
        type: char
      - name: select_column
        type: int
      - name: value_separator
        type: char
      - name: '*column_value'
        type: char
      - name: '*column_operation'
        type: char
      - name: extend_columns
        type: int
      - name: blanks_ok
        type: int
      item_type: struct
      name: EditColumn
      pos:
        line_end: 1276
        line_start: 1267
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*replace_value'
        type: char
      - name: '*occurrences'
        type: char
      item_type: struct
      name: EditReplace
      pos:
        line_end: 1282
        line_start: 1278
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*mount_type'
        type: char
      - name: '*mount_source'
        type: char
      - name: '*mount_server'
        type: char
      - name: '*mount_options'
        type: Rlist
      - name: editfstab
        type: int
      - name: unmount
        type: int
      item_type: struct
      name: StorageMount
      pos:
        line_end: 1294
        line_start: 1286
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: check_foreign
        type: int
      - name: freespace
        type: long
      - name: sensible_size
        type: int
      - name: sensible_count
        type: int
      - name: scan_arrivals
        type: int
      item_type: struct
      name: StorageVolume
      pos:
        line_end: 1303
        line_start: 1296
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: haveprintfile
        type: int
      - name: havelastseen
        type: int
      - name: lastseen
        type: int
      - name: '*result'
        type: char
      - name: intermittency
        type: double
      - name: '*friend_pattern'
        type: char
      - name: '*filename'
        type: char
      - name: '*to_file'
        type: char
      - name: numlines
        type: int
      - name: '*showstate'
        type: Rlist
      item_type: struct
      name: Report
      pos:
        line_end: 1319
        line_start: 1307
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: package_policy
        type: PackageAction
      - name: '*package_version'
        type: char
      - name: '*package_architectures'
        type: Rlist
      - name: package_select
        type: PackageVersionComparator
      - name: package_changes
        type: PackageActionPolicy
      - name: '*package_file_repositories'
        type: Rlist
      - name: '*package_default_arch_command'
        type: char
      - name: '*package_list_command'
        type: char
      - name: '*package_list_version_regex'
        type: char
      - name: '*package_list_name_regex'
        type: char
      - name: '*package_list_arch_regex'
        type: char
      - name: '*package_patch_list_command'
        type: char
      - name: '*package_patch_version_regex'
        type: char
      - name: '*package_patch_name_regex'
        type: char
      - name: '*package_patch_arch_regex'
        type: char
      - name: '*package_patch_installed_regex'
        type: char
      - name: '*package_list_update_command'
        type: char
      - name: package_list_update_ifelapsed
        type: int
      - name: '*package_version_regex'
        type: char
      - name: '*package_name_regex'
        type: char
      - name: '*package_arch_regex'
        type: char
      - name: '*package_installed_regex'
        type: char
      - name: '*package_add_command'
        type: char
      - name: '*package_delete_command'
        type: char
      - name: '*package_update_command'
        type: char
      - name: '*package_patch_command'
        type: char
      - name: '*package_verify_command'
        type: char
      - name: '*package_noverify_regex'
        type: char
      - name: '*package_name_convention'
        type: char
      - name: '*package_delete_convention'
        type: char
      - name: package_commands_useshell
        type: bool
      - name: '*package_multiline_start'
        type: char
      - name: '*package_version_less_command'
        type: char
      - name: '*package_version_equal_command'
        type: char
      - name: package_noverify_returncode
        type: int
      - name: has_package_method
        type: bool
      - name: is_empty
        type: bool
      item_type: struct
      name: Packages
      pos:
        line_end: 1373
        line_start: 1323
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*name'
        type: char
      - name: updates_ifelapsed
        type: int
      - name: installed_ifelapsed
        type: int
      - name: '*options'
        type: Rlist
      - name: '*interpreter'
        type: char
      - name: '*module_path'
        type: char
      item_type: struct
      name: PackageModuleBody
      pos:
        line_end: 1385
        line_start: 1377
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*control_package_inventory'
        type: Rlist
      - name: '*control_package_module'
        type: char
      - name: '*package_modules_bodies'
        type: Seq
      item_type: struct
      name: PackagePromiseContext
      pos:
        line_end: 1395
        line_start: 1388
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: package_policy
        type: NewPackageAction
      - name: '*module_body'
        type: PackageModuleBody
      - name: '*package_inventory'
        type: Rlist
      - name: '*package_version'
        type: char
      - name: '*package_architecture'
        type: char
      - name: '*package_options'
        type: Rlist
      - name: is_empty
        type: bool
      item_type: struct
      name: NewPackages
      pos:
        line_end: 1408
        line_start: 1398
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*stream_type'
        type: char
      - name: data_type
        type: DataType
      - name: policy
        type: MeasurePolicy
      - name: '*history_type'
        type: char
      - name: '*select_line_matching'
        type: char
      - name: select_line_number
        type: int
      - name: '*extraction_regex'
        type: char
      - name: '*units'
        type: char
      - name: growing
        type: int
      item_type: struct
      name: Measurement
      pos:
        line_end: 1432
        line_start: 1421
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*db_server_owner'
        type: char
      - name: '*db_server_password'
        type: char
      - name: '*db_server_host'
        type: char
      - name: '*db_connect_db'
        type: char
      - name: db_server_type
        type: DatabaseType
      - name: '*server'
        type: char
      - name: '*type'
        type: char
      - name: '*operation'
        type: char
      - name: '*columns'
        type: Rlist
      - name: '*rows'
        type: Rlist
      - name: '*exclude'
        type: Rlist
      item_type: struct
      name: Database
      pos:
        line_end: 1447
        line_start: 1434
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: policy
        type: UserState
      - name: '*uid'
        type: char
      - name: password_format
        type: PasswordFormat
      - name: '*password'
        type: char
      - name: '*description'
        type: char
      - name: '*group_primary'
        type: char
      - name: '*groups_secondary'
        type: Rlist
      - name: groups_secondary_given
        type: bool
      - name: '*home_dir'
        type: char
      - name: '*shell'
        type: char
      item_type: struct
      name: User
      pos:
        line_end: 1477
        line_start: 1465
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*service_depend'
        type: Rlist
      - name: '*service_type'
        type: char
      - name: '*service_args'
        type: char
      - name: '*service_policy'
        type: char
      - name: '*service_autostart_policy'
        type: char
      - name: '*service_depend_chain'
        type: char
      item_type: struct
      name: Services
      pos:
        line_end: 1489
        line_start: 1481
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: cpus
        type: int
      - name: memory
        type: int
      - name: disk
        type: int
      - name: '*baseline'
        type: char
      - name: '*spec'
        type: char
      - name: '*addresses'
        type: Rlist
      - name: '*name'
        type: char
      - name: '*host'
        type: char
      - name: '*type'
        type: char
      - name: state
        type: EnvironmentState
      item_type: struct
      name: Environments
      pos:
        line_end: 1515
        line_start: 1503
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: '*source'
        type: char
      - name: '*port'
        type: char
      - name: '*destination'
        type: char
      - name: compare
        type: FileComparator
      - name: link_type
        type: FileLinkType
      - name: '*servers'
        type: Rlist
      - name: '*link_instead'
        type: Rlist
      - name: '*copy_links'
        type: Rlist
      - name: backup
        type: BackupOption
      - name: stealth
        type: int
      - name: preserve
        type: int
      - name: collapse
        type: int
      - name: check_root
        type: int
      - name: type_check
        type: int
      - name: force_update
        type: int
      - name: force_ipv4
        type: int
      - name: min_size
        type: size_t
      - name: max_size
        type: size_t
      - name: trustkey
        type: int
      - name: encrypt
        type: int
      - name: verify
        type: int
      - name: purge
        type: int
      - name: timeout
        type: short
      - name: protocol_version
        type: ProtocolVersion
      - name: missing_ok
        type: bool
      item_type: struct
      name: FileCopy
      pos:
        line_end: 1549
        line_start: 1522
        source_file: /src/core/libpromises/cf3.defs.h
    - fields:
      - name: select
        type: FileSelect
      - name: perms
        type: FilePerms
      - name: copy
        type: FileCopy
      - name: delete
        type: FileDelete
      - name: fsattrs
        type: FileFSAttrs
      - name: '*content'
        type: char
      - name: rename
        type: FileRename
      - name: change
        type: FileChange
      - name: link
        type: FileLink
      - name: edits
        type: EditDefaults
      - name: packages
        type: Packages
      - name: new_packages
        type: NewPackages
      - name: context
        type: ContextConstraint
      - name: measure
        type: Measurement
      - name: acl
        type: Acl
      - name: database
        type: Database
      - name: service
        type: Services
      - name: users
        type: User
      - name: env
        type: Environments
      - name: '*transformer'
        type: char
      - name: '*pathtype'
        type: char
      - name: '*file_type'
        type: char
      - name: '*repository'
        type: char
      - name: '*edit_template'
        type: char
      - name: '*edit_template_string'
        type: char
      - name: '*template_method'
        type: char
      - name: '*template_data'
        type: JsonElement
      - name: touch
        type: int
      - name: create
        type: int
      - name: move_obstructions
        type: int
      - name: inherit
        type: int
      - name: recursion
        type: DirectoryRecursion
      - name: transaction
        type: TransactionContext
      - name: classes
        type: DefineClasses
      - name: contain
        type: ExecContain
      - name: '*args'
        type: char
      - name: '*arglist'
        type: Rlist
      - name: module
        type: int
      - name: inform
        type: bool
      - name: '*signals'
        type: Rlist
      - name: '*process_stop'
        type: char
      - name: '*restart_class'
        type: char
      - name: process_count
        type: ProcessCount
      - name: process_select
        type: ProcessSelect
      - name: report
        type: Report
      - name: mount
        type: StorageMount
      - name: volume
        type: StorageVolume
      - name: havedepthsearch
        type: int
      - name: haveselect
        type: int
      - name: haverename
        type: int
      - name: havedelete
        type: int
      - name: havefsattrs
        type: int
      - name: haveperms
        type: int
      - name: havechange
        type: int
      - name: havecopy
        type: int
      - name: havelink
        type: int
      - name: haveeditline
        type: int
      - name: haveeditxml
        type: int
      - name: haveedit
        type: int
      - name: havecontain
        type: int
      - name: haveclasses
        type: int
      - name: havetrans
        type: int
      - name: haveprocess_count
        type: int
      - name: havemount
        type: int
      - name: havevolume
        type: int
      - name: havebundle
        type: int
      - name: havepackages
        type: int
      - name: region
        type: EditRegion
      - name: location
        type: EditLocation
      - name: column
        type: EditColumn
      - name: replace
        type: EditReplace
      - name: xml
        type: EditXml
      - name: haveregion
        type: int
      - name: havelocation
        type: int
      - name: havecolumn
        type: int
      - name: havereplace
        type: int
      - name: haveinsertselect
        type: int
      - name: havedeleteselect
        type: int
      - name: line_select
        type: LineSelect
      - name: '*sourcetype'
        type: char
      - name: expandvars
        type: int
      - name: not_matching
        type: int
      - name: '*insert_match'
        type: Rlist
      item_type: struct
      name: Attributes
      pos:
        line_end: 1644
        line_start: 1551
        source_file: /src/core/libpromises/cf3.defs.h
    typedefs:
    - item_type: typedef
      name: Item
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/core/libpromises/cf3.defs.h
      type: Item_
    - item_type: typedef
      name: UidList
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/core/libpromises/cf3.defs.h
      type: UidList_
    - item_type: typedef
      name: GidList
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/core/libpromises/cf3.defs.h
      type: GidList_
    - item_type: typedef
      name: Policy
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/core/libpromises/cf3.defs.h
      type: Policy_
    - item_type: typedef
      name: Bundle
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/core/libpromises/cf3.defs.h
      type: Bundle_
    - item_type: typedef
      name: Body
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/core/libpromises/cf3.defs.h
      type: Body_
    - item_type: typedef
      name: Promise
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/core/libpromises/cf3.defs.h
      type: Promise_
    - item_type: typedef
      name: BundleSection
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/core/libpromises/cf3.defs.h
      type: BundleSection_
    - item_type: typedef
      name: FnCall
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/core/libpromises/cf3.defs.h
      type: FnCall_
    - item_type: typedef
      name: EvalContext
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/core/libpromises/cf3.defs.h
      type: EvalContext_
    - item_type: typedef
      name: Rlist
      pos:
        line_end: 634
        line_start: 634
        source_file: /src/core/libpromises/cf3.defs.h
      type: Rlist_
    - item_type: typedef
      name: ConstraintSyntax
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/core/libpromises/cf3.defs.h
      type: ConstraintSyntax_
    - item_type: typedef
      name: BodySyntax
      pos:
        line_end: 637
        line_start: 637
        source_file: /src/core/libpromises/cf3.defs.h
      type: BodySyntax_
    - item_type: typedef
      name: (*PromiseCheckFn)(const Promise *pp, Seq *errors)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/core/libpromises/cf3.defs.h
      type: bool
    - item_type: typedef
      name: (*BodyCheckFn)(const Body *body, Seq *errors)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/core/libpromises/cf3.defs.h
      type: bool
    - item_type: typedef
      name: Constraint
      pos:
        line_end: 709
        line_start: 709
        source_file: /src/core/libpromises/cf3.defs.h
      type: Constraint_
    - item_type: typedef
      name: PackageItem
      pos:
        line_end: 993
        line_start: 993
        source_file: /src/core/libpromises/cf3.defs.h
      type: PackageItem_
    - item_type: typedef
      name: PackageManager
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/core/libpromises/cf3.defs.h
      type: PackageManager_
    - item_type: typedef
      name: ServerConnectionState
      pos:
        line_end: 1752
        line_start: 1752
        source_file: /src/core/libpromises/cf3.defs.h
      type: ServerConnectionState_
    union: []
- function_names: []
  source_file: /src/core/libpromises/dbm_test_api.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: DBLoadSimulation
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/core/libpromises/dbm_test_api.h
      type: DBLoadSimulation_
    - item_type: typedef
      name: DBFilament
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/core/libpromises/dbm_test_api.h
      type: DBFilament_
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_environ.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/files_repository.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RvalDestroy2
  - SeqDestroy_untyped
  - EvalContextSetConfig
  - EvalContextGetConfig
  - EvalContextGetSelectEndMatchEof
  - EvalContextSetSelectEndMatchEof
  - EvalContextGetRestrictKeys
  - EvalContextSetRestrictKeys
  - AddDefaultPackageModuleToContext
  - AddDefaultInventoryToContext
  - PackageManagerSeqCompare
  - AddPackageModuleToContext
  - GetPackageModuleFromContext
  - GetDefaultPackageModuleFromContext
  - GetDefaultInventoryFromContext
  - GetPackagePromiseContext
  - LastStackFrame
  - LastStackFrameByType
  - LastStackFrameByEvent
  - AdjustLogLevel
  - StringToLogLevel
  - GetLevelForPromise
  - CalculateLogLevel
  - CalculateReportLevel
  - EvalContextStackToString
  - GetAgentAbortingContext
  - EvalContextStackFrameAddSoft
  - EvalTokenAsClass
  - EvalVarRef
  - ClassCharIsWhitespace
  - CheckClassExpression
  - EvalTokenFromList
  - EvalWithTokenFromList
  - EvalProcessResult
  - EvalFileResult
  - EvalContextHeapPersistentSave
  - EvalContextHeapPersistentRemove
  - EvalContextHeapPersistentLoadAll
  - EvalContextSetNegatedClasses
  - BundleAbort
  - BundleAborted
  - SetBundleAborted
  - SetEvalAborted
  - EvalAborted
  - EvalContextHeapAddAbort
  - EvalContextHeapAddAbortCurrentBundle
  - MissingDependencies
  - StackFrameBundleDestroy
  - StackFrameBodyDestroy
  - StackFramePromiseDestroy
  - StackFramePromiseIterationDestroy
  - StackFrameDestroy
  - FreePackageManager
  - PackagePromiseConfigNew
  - FreePackagePromiseContext
  - MissionPortalLogHook
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  - EvalContextNew
  - EvalContextDestroy
  - EvalContextHeapContainsSoft
  - EvalContextHeapContainsHard
  - StackFrameContainsSoftRecursive
  - EvalContextStackFrameContainsSoft
  - EvalContextHeapRemoveSoft
  - EvalContextHeapRemoveHard
  - EvalContextClear
  - EvalContextGetPromiseCallerMethods
  - EvalContextGetPromiseCallers
  - EvalContextSetBundleArgs
  - EvalContextGetBundleArgs
  - EvalContextSetPass
  - EvalContextGetPass
  - StackFrameNew
  - StackFrameNewBundle
  - StackFrameNewBody
  - StackFrameNewBundleSection
  - StackFrameNewPromise
  - StackFrameNewPromiseIteration
  - EvalContextStackFrameRemoveSoft
  - EvalContextStackPushFrame
  - EvalContextStackPushBundleFrame
  - EvalContextStackPushBodyFrame
  - EvalContextStackPushBundleSectionFrame
  - EvalContextStackPushPromiseFrame
  - EvalContextStackPushPromiseIterationFrame
  - EvalContextStackPopFrame
  - EvalContextClassRemove
  - EvalContextClassGet
  - EvalContextClassMatch
  - EvalContextClassPutTagsSet
  - EvalContextClassPut
  - EvalContextCurrentNamespace
  - EvalContextClassPutHard
  - EvalContextClassPutSoft
  - EvalContextClassPutSoftTagsSet
  - EvalContextClassPutSoftTagsSetWithComment
  - EvalContextClassPutSoftNS
  - EvalContextClassPutSoftNSTagsSet
  - EvalContextClassPutSoftNSTagsSetWithComment
  - EvalContextClassTableIteratorNewGlobal
  - EvalContextClassTableIteratorNewLocal
  - EvalContextStackCurrentPromise
  - EvalContextStackCurrentBundle
  - EvalContextStackCurrentMessages
  - BufferAppendPromiseStr
  - BufferAppendAbbreviatedStr
  - EvalContextStackPath
  - EvalContextStackPromisees
  - MangleScopedVarNameIntoSpecialScopeName
  - EvalContextVariablePutSpecial
  - EvalContextVariablePutSpecialTagsSet
  - EvalContextVariablePutSpecialTagsSetWithComment
  - EvalContextVariableGetSpecial
  - EvalContextVariableGetSpecialString
  - EvalContextVariableRemoveSpecial
  - GetVariableTableForScope
  - EvalContextVariableRemove
  - IsVariableSelfReferential
  - VarRefStackQualify
  - EvalContextVariablePut
  - EvalContextVariablePutTagsSet
  - EvalContextVariablePutTagsSetWithComment
  - MangledThisScopedRef
  - VariableResolve2
  - VariableResolve
  - EvalContextVariableGet
  - EvalContextVariablePromiseGet
  - EvalContextClassTags
  - EvalContextVariableTags
  - EvalContextVariableClearMatch
  - EvalContextVariableTableIteratorNew
  - EvalContextVariableTableFromRefIteratorNew
  - EvalContextVariableControlCommonGet
  - IDRefQualify
  - EvalContextResolveBundleExpression
  - EvalContextFindFirstMatchingBody
  - EvalContextAppendBodyParentsAndArgs
  - EvalContextResolveBodyExpression
  - EvalContextPromiseLockCacheContains
  - EvalContextPromiseLockCachePut
  - EvalContextPromiseLockCacheRemove
  - EvalContextFunctionCacheGet
  - EvalContextFunctionCachePut
  - IsPromiseValuableForStatus
  - IsPromiseValuableForLogging
  - AddAllClasses
  - DeleteAllClasses
  - ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
  - SetPromiseOutcomeClasses
  - SummarizeTransaction
  - DoSummarizeTransaction
  - NotifyDependantPromises
  - ClassAuditLog
  - LogPromiseContext
  - cfPS
  - RecordChange
  - RecordNoChange
  - RecordFailure
  - RecordWarning
  - RecordDenial
  - RecordInterruption
  - MakingChanges
  - MakingInternalChanges
  - SetChecksumUpdatesDefault
  - GetChecksumUpdatesDefault
  - EvalContextAddIpAddress
  - EvalContextDeleteIpAddresses
  - EvalContextGetIpAddresses
  - EvalContextSetEvalOption
  - EvalContextGetEvalOption
  - EvalContextSetLaunchDirectory
  - EvalContextSetEntryPoint
  - EvalContextGetEntryPoint
  - EvalContextSetIgnoreLocks
  - EvalContextIsIgnoringLocks
  - ClassesMatchingLocalRecursive
  - ClassesMatchingLocal
  - ClassesMatchingGlobal
  - ClassesMatching
  - JsonExpandElement
  - EvalContextAllClassesGet
  - EvalContextAllClassesLoggingEnable
  - EvalContextPushBundleName
  - EvalContextGetBundleNames
  - EvalContextPushRemoteVarPromise
  - EvalContextGetRemoteVarPromises
  - EvalContextSetDumpReports
  - EvalContextGetDumpReports
  - EvalContextUpdateDumpReports
  - SetChangesChroot
  - ToChangesChroot
  - ToNormalRoot
  - EvalContextOverrideImmutableSet
  - EvalContextOverrideImmutableGet
  - EvalContextEventStart
  - EventFrameCreate
  - EventFrameDestroy
  - EventToJson
  - BundleToEventFrame
  - PromiseToEventFrame
  - FunctionToEventFrame
  - EvalContextSetProfiling
  - EvalContextGetProfiling
  - EvalContextProfilingStart
  - EvalContextProfilingEnd
  - EvalContextGetLastEventFrame
  - EvalContextAppendEventFrame
  - EvalContextSetCommonEvalOrder
  - EvalContextSetAgentEvalOrder
  - EvalContextEvaluationOrderToString
  - EvalContextEvaluationOrderFromString
  - EvalContextIsClassicOrder
  source_file: /src/core/libpromises/eval_context.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NESTED_SCOPE_SEP
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/core/libpromises/eval_context.c
      type_or_value: '"___"'
    structs:
    - fields:
      - name: '*config'
        type: GenericAgentConfig
      - name: eval_options
        type: int
      - name: bundle_aborted
        type: bool
      - name: eval_aborted
        type: bool
      - name: checksum_updates_default
        type: bool
      - name: '*ip_addresses'
        type: Item
      - name: ignore_locks
        type: bool
      - name: pass
        type: int
      - name: '*args'
        type: Rlist
      - name: '*restrict_keys'
        type: Rlist
      - name: '*heap_abort'
        type: Item
      - name: '*heap_abort_current_bundle'
        type: Item
      - name: '*stack'
        type: Seq
      - name: '*global_classes'
        type: ClassTable
      - name: '*global_variables'
        type: VariableTable
      - name: '*match_variables'
        type: VariableTable
      - name: '*promise_lock_cache'
        type: StringSet
      - name: '*dependency_handles'
        type: StringSet
      - name: '*function_cache'
        type: FuncCacheMap
      - name: uid
        type: uid_t
      - name: gid
        type: uid_t
      - name: pid
        type: pid_t
      - name: ppid
        type: pid_t
      - name: '*launch_directory'
        type: char
      - name: '*entry_point'
        type: char
      - name: '*package_promise_context'
        type: PackagePromiseContext
      - name: select_end_match_eof
        type: bool
      - name: '*all_classes'
        type: StringSet
      - name: '*negated_classes'
        type: StringSet
      - name: '*bundle_names'
        type: StringSet
      - name: '*remote_var_promises'
        type: RemoteVarPromisesMap
      - name: dump_reports
        type: bool
      - name: profiling
        type: bool
      - name: elapsed
        type: int64_t
      - name: '*events'
        type: Seq
      - name: common_eval_order
        type: EvalOrder
      - name: agent_eval_order
        type: EvalOrder
      item_type: struct
      name: EvalContext_
      pos:
        line_end: 204
        line_start: 134
        source_file: /src/core/libpromises/eval_context.c
    typedefs: []
    union: []
- function_names:
  - GetProcessStat
  - GetProcessStartTime
  - GetProcessState
  source_file: /src/core/libpromises/process_linux.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: starttime
        type: time_t
      - name: state
        type: char
      item_type: struct
      name: ProcessStat
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/core/libpromises/process_linux.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_packages.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FindCustomPromiseType
  - GetInterpreterAndPath
  - PromiseModule_LogJson
  - PromiseModule_ParseResultClasses
  - PromiseModule_Receive
  - PromiseModule_SendMessage
  - PromiseModule_ReceiveHeader
  - PromiseModule_DestroyInternal
  - PromiseModule_Start
  - PromiseModule_AppendString
  - PromiseModule_AppendInteger
  - PromiseModule_AppendAttribute
  - PromiseModule_Send
  - TryToGetContainerFromScalarRef
  - PromiseModule_AppendAllAttributes
  - CheckPrimitiveForUnexpandedVars
  - CheckObjectForUnexpandedVars
  - CustomPromise_IsFullyResolved
  - HasResultAndResultIsValid
  - LogLevelToRequestFromModule
  - PromiseModule_Validate
  - PromiseModule_Evaluate
  - PromiseModule_Terminate
  - PromiseModule_Terminate_untyped
  - TerminateCustomPromises
  - InitializeCustomPromises
  - FinalizeCustomPromises
  - EvaluateCustomPromise
  source_file: /src/core/libpromises/mod_custom.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LastseenMigrationVersion0
  - LastseenMigrationVersion1
  source_file: /src/core/libpromises/dbm_migration_lastseen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QPOINT0_OFFSET
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/core/libpromises/dbm_migration_lastseen.c
      type_or_value: '128'
    structs:
    - fields:
      - name: q
        type: double
      - name: expect
        type: double
      - name: var
        type: double
      item_type: struct
      name: QPoint0
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/core/libpromises/dbm_migration_lastseen.c
    - fields:
      - name: lastseen
        type: time_t
      - name: Q
        type: QPoint
      item_type: struct
      name: KeyHostSeen1
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/core/libpromises/dbm_migration_lastseen.c
    typedefs: []
    union: []
- function_names:
  - ParserStateReset
  - ParserStateClean
  - ParserParseFile
  - ParserWarningFromString
  - ParserWarningToString
  source_file: /src/core/libpromises/parser.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ProcessSignalTerminate
  - IsProcessRunning
  - IsExecutable
  - ShellCommandReturnsZero
  - GetUserGroupInfoFromGetent
  - GetUserName
  - GetCurrentUserName
  - GetGroupName
  - GetUserID
  - GetGroupID
  - GetRelocatedProcdirRoot
  - GetProcdirPid
  source_file: /src/core/libpromises/unix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/fncall.h
  types:
    enum:
    - enumerators:
      - name: FNCALL_SUCCESS
      - name: FNCALL_FAILURE
      item_type: enum
      name: FnCallStatus
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/core/libpromises/fncall.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*args'
        type: Rlist
      - name: '*caller'
        type: Promise
      item_type: struct
      name: FnCall_
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/core/libpromises/fncall.h
    - fields:
      - name: status
        type: FnCallStatus
      - name: rval
        type: Rval
      item_type: struct
      name: FnCallResult
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/core/libpromises/fncall.h
    - fields:
      - name: '*pattern'
        type: char
      - name: dtype
        type: DataType
      - name: '*description'
        type: char
      item_type: struct
      name: FnCallArg
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/core/libpromises/fncall.h
    - fields:
      - name: min
        type: int
      - name: max
        type: int
      item_type: struct
      name: FnArgcRange
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/core/libpromises/fncall.h
    - fields:
      - name: '*name'
        type: char
      - name: dtype
        type: DataType
      - name: '*args'
        type: FnCallArg
      - name: (*impl)(EvalContext *, const Policy *, const FnCall *, const Rlist *)
        type: FnCallResult
      - name: '*description'
        type: char
      - name: options
        type: FnCallOption
      - name: category
        type: FnCallCategory
      - name: status
        type: SyntaxStatus
      - name: argc
        type: FnArgcRange
      item_type: struct
      name: FnCallType
      pos:
        line_end: 93
        line_start: 82
        source_file: /src/core/libpromises/fncall.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/iteration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: PromiseIterator
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/libpromises/iteration.h
      type: PromiseIterator_
    union: []
- function_names: []
  source_file: /src/core/libpromises/files_lib.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/cf-windows-functions.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PromiseResultUpdate
  - PromiseResultIsOK
  source_file: /src/core/libpromises/actuator.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetProcessStat
  - GetProcessStartTime
  - GetProcessState
  source_file: /src/core/libpromises/process_freebsd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: starttime
        type: time_t
      - name: state
        type: char
      item_type: struct
      name: ProcessStat
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/core/libpromises/process_freebsd.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_users.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cf_lstat
  source_file: /src/core/libpromises/files_interfaces.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/verify_vars.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MethodsParseTreeCheck
  source_file: /src/core/libpromises/mod_methods.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/override_fsattrs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_outputs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConstraintSyntaxNewNull
  - ConstraintSyntaxNewBool
  - ConstraintSyntaxNewOption
  - ConstraintSyntaxNewOptionList
  - ConstraintSyntaxNewString
  - ConstraintSyntaxNewStringList
  - ConstraintSyntaxNewInt
  - ConstraintSyntaxNewIntRange
  - ConstraintSyntaxNewIntList
  - ConstraintSyntaxNewReal
  - ConstraintSyntaxNewRealList
  - ConstraintSyntaxNewContext
  - ConstraintSyntaxNewContextList
  - ConstraintSyntaxNewContainer
  - ConstraintSyntaxNewBody
  - ConstraintSyntaxNewBundle
  - BodySyntaxNew
  - BodySyntaxNewNull
  - PromiseTypeSyntaxNew
  - PromiseTypeSyntaxNewNull
  - ARGC
  - FnCallTypeNew
  - FnCallTypeNewNull
  source_file: /src/core/libpromises/syntax.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_ARGC
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/core/libpromises/syntax.h
      type_or_value: ((FnArgcRange){ .min = -1, .max = -1 })
    - item_type: preproc_def
      name: CONSTRAINT_SYNTAX_GLOBAL
      pos:
        line_end: 135
        line_start: 133
        source_file: /src/core/libpromises/syntax.h
      type_or_value: "{ \"meta\", CF_DATA_TYPE_STRING_LIST, .range.validation_string
        = \"\", \"Tags describing the body\", SYNTAX_STATUS_NORMAL }, \\\n                                 {
        \"inherit_from\", CF_DATA_TYPE_BODY, .range.validation_string = \"\", \"Body
        from which attributes will be inherited\", SYNTAX_STATUS_NORMAL }"
    structs: []
    typedefs: []
    union: []
- function_names:
  - _math_eval_step
  - math_eval_push
  - math_eval_pop
  - YY_PARSE
  - YY_INPUT
  - EvaluateMathInfix
  - EvaluateMathFunction
  source_file: /src/core/libpromises/math_eval.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MATH_EVAL_STACK_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/core/libpromises/math_eval.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: YYSTYPE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/core/libpromises/math_eval.c
      type_or_value: double
    - item_type: preproc_def
      name: YYPARSE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/core/libpromises/math_eval.c
      type_or_value: yymath_parse
    - item_type: preproc_def
      name: YYPARSEFROM
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/core/libpromises/math_eval.c
      type_or_value: yymath_parsefrom
    - item_type: preproc_def
      name: malloc
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/core/libpromises/math_eval.c
      type_or_value: xmalloc
    - item_type: preproc_def
      name: realloc
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/core/libpromises/math_eval.c
      type_or_value: xrealloc
    - item_type: preproc_def
      name: YY_CTX_MEMBERS
      pos:
        line_end: 101
        line_start: 93
        source_file: /src/core/libpromises/math_eval.c
      type_or_value: "char *failure;                                   \\\n    const
        char *input;                                                  \\\n    const
        char *original_input;                                         \\\n    EvalContext
        *eval_context;                                          \\\n    double result;
        \                                                     \\\n    char fname[50];
        \                                                    \\\n    double stack[MATH_EVAL_STACK_SIZE];
        \                                \\\n    int stackp;"
    structs: []
    typedefs:
    - item_type: typedef
      name: (*MathEvalFunctionType)(double)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/core/libpromises/math_eval.c
      type: double
    union: []
- function_names:
  - CheckLMDBUsable
  - GetReadTransaction
  - GetWriteTransaction
  - AbortTransaction
  - DestroyTransaction
  - DBPrivGetFileExtension
  - DBPrivSetMaximumConcurrentTransactions
  - LmdbEnvOpen
  - RepairedAfterOpen
  - RotatedAfterOpen
  - HandleLMDBCorruption
  - HandleFullLMDB
  - DBPrivOpenDB
  - DBPrivCloseDB
  - DBPrivClean
  - DBPrivGetDBUsagePercentage
  - DBPrivCommit
  - DBPrivHasKey
  - DBPrivGetValueSize
  - DBPrivRead
  - DBPrivWrite
  - DBPrivOverwrite
  - DBPrivDelete
  - DBPrivOpenCursor
  - DBPrivAdvanceCursor
  - DBPrivDeleteCursorEntry
  - DBPrivWriteCursorEntry
  - DBPrivCloseCursor
  - DBPrivDiagnose
  source_file: /src/core/libpromises/dbm_lmdb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N_LMDB_EINVAL_RETRIES
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/core/libpromises/dbm_lmdb.c
      type_or_value: '5'
    - item_type: preproc_def
      name: LMDB_MAXSIZE
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/core/libpromises/dbm_lmdb.c
      type_or_value: '104857600'
    - item_type: preproc_def
      name: EMPTY_DB
      pos:
        line_end: 940
        line_start: 939
        source_file: /src/core/libpromises/dbm_lmdb.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*env'
        type: MDB_env
      - name: dbi
        type: MDB_dbi
      - name: txn_key
        type: pthread_key_t
      item_type: struct
      name: DBPriv_
      pos:
        line_end: 54
        line_start: 46
        source_file: /src/core/libpromises/dbm_lmdb.c
    - fields:
      - name: '*txn'
        type: MDB_txn
      - name: rw_txn
        type: bool
      - name: cursor_open
        type: bool
      item_type: struct
      name: DBTxn_
      pos:
        line_end: 63
        line_start: 57
        source_file: /src/core/libpromises/dbm_lmdb.c
    - fields:
      - name: '*db'
        type: DBPriv
      - name: '*mc'
        type: MDB_cursor
      - name: delkey
        type: MDB_val
      - name: '*curkv'
        type: void
      - name: curks
        type: size_t
      - name: pending_delete
        type: bool
      item_type: struct
      name: DBCursorPriv_
      pos:
        line_end: 73
        line_start: 65
        source_file: /src/core/libpromises/dbm_lmdb.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_measurement.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_access.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/dbm_api.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EC_CORRUPTION_REPAIRED
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/core/libpromises/dbm_api.h
      type_or_value: '120'
    - item_type: preproc_def
      name: EC_CORRUPTION_REPAIR_FAILED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/core/libpromises/dbm_api.h
      type_or_value: '121'
    structs: []
    typedefs:
    - item_type: typedef
      name: DBHandle
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/core/libpromises/dbm_api.h
      type: DBHandle_
    - item_type: typedef
      name: DBCursor
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/core/libpromises/dbm_api.h
      type: DBCursor_
    - item_type: typedef
      name: CF_DB
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/core/libpromises/dbm_api.h
      type: DBHandle
    - item_type: typedef
      name: CF_DBC
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/core/libpromises/dbm_api.h
      type: DBCursor
    union: []
- function_names: []
  source_file: /src/core/libpromises/cmdb.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMDB_SOURCE_TAG
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/libpromises/cmdb.h
      type_or_value: '"source=cmdb"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOG_LOCK_ENTRY
  - LOG_LOCK_EXIT
  - LOG_LOCK_OP
  - PushLock
  - PopLock
  - OpenLock
  - CloseLock
  - log_lock
  - HashLockKeyIfNecessary
  - WriteLockData
  - WriteLockDataCurrent
  - WriteLock
  - FindLockTime
  - RemoveDates
  - RemoveLock
  - NoOrObsoleteLock
  - WaitForCriticalSection
  - ReleaseCriticalSection
  - FindLock
  - LocksCleanup
  - RegisterLockCleanup
  - PromiseTypeString
  - IsCfengineLockHolder
  - KillLockHolder
  - RvalDigestUpdate
  - PromiseRuntimeHash
  - CfLockNew
  - CfLockNull
  - AcquireLock
  - YieldCurrentLock
  - YieldCurrentLockAndRemoveFromCache
  - GetLockName
  - RestoreLockDatabase
  - CopyLockDatabaseAtomically
  - BackupLockDatabase
  - PurgeLocks
  source_file: /src/core/libpromises/locks.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LMDB_MAX_KEY_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/core/libpromises/locks.c
      type_or_value: '511'
    - item_type: preproc_def
      name: CFLOGSIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/core/libpromises/locks.c
      type_or_value: '1048576       '
    - item_type: preproc_def
      name: CF_MAXLOCKNUM
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/core/libpromises/locks.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: CF_CRITIAL_SECTION
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/core/libpromises/locks.c
      type_or_value: '"CF_CRITICAL_SECTION"'
    - item_type: preproc_def
      name: N_LOCK_HORIZON_USAGE_INTERVALS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/core/libpromises/locks.c
      type_or_value: '4 '
    structs:
    - fields:
      - name: lock[CF_BUFSIZE]
        type: char
      - name: last[CF_BUFSIZE]
        type: char
      - name: '*previous'
        type: struct CfLockStack_
      item_type: struct
      name: CfLockStack_
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/core/libpromises/locks.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/files_links.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_MAXLINKLEVEL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/core/libpromises/files_links.h
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - llistxattr
  - lgetxattr
  - lsetxattr
  source_file: /src/core/libpromises/files_copy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Sort
  - ItemNameLess
  - ItemClassesLess
  - ItemCounterMore
  - ItemTimeMore
  - ItemGetNext
  - ItemPutNext
  - SortItemListNames
  - SortItemListClasses
  - SortItemListCounters
  - SortItemListTimes
  - RlistCustomItemLess
  - RlistItemLess
  - StringItemLess
  - StringItemNumberLess
  - RlistItemNumberLess
  - RlistItemIntLess
  - RlistItemRealLess
  - StringItemIPLess
  - RlistItemIPLess
  - ParseEtherAddress
  - StringItemMACLess
  - RlistItemMACLess
  - RlistGetNext
  - RlistPutNext
  - SortRlist
  - AlphaSortRListNames
  - IntSortRListNames
  - RealSortRListNames
  - IPSortRListNames
  - MACSortRListNames
  - GenericItemLess
  - GenericStringItemLess
  source_file: /src/core/libpromises/sort.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*LessFn)(void *lhs, void *rhs, void *ctx)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/core/libpromises/sort.c
      type: bool
    - item_type: typedef
      name: '* (*GetNextElementFn)(void *element)'
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/core/libpromises/sort.c
      type: void
    - item_type: typedef
      name: (*PutNextElementFn)(void *element, void *next)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/core/libpromises/sort.c
      type: void
    union: []
- function_names: []
  source_file: /src/core/libpromises/instrumentation.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MapAddress
  - FindTypeInArray
  - MeasurePolicyFromString
  - EnvironmentStateFromString
  - InsertMatchTypeFromString
  - SyslogPriorityFromString
  - ShellTypeFromString
  - DatabaseTypeFromString
  - UserStateFromString
  - PasswordFormatFromString
  - PackageActionFromString
  - GetNewPackagePolicy
  - PackageVersionComparatorFromString
  - PackageActionPolicyFromString
  - Rlist2String
  - SignalFromString
  - ContextScopeFromString
  - FileLinkTypeFromString
  - FileComparatorFromString
  - DataTypeFromString
  - DataTypeToString
  - ConstraintSyntaxGetDataType
  - BooleanFromString
  - StringIsBoolean
  - IntFromString
  - IntervalFromString
  - DoubleFromString
  - IntegerRangeFromString
  - AclMethodFromString
  - AclTypeFromString
  - AclInheritanceFromString
  - AclDefaultFromString
  - AclInheritFromString
  - DataTypeShortToType
  - DataTypeIsIterable
  - CoarseLaterThan
  - Month2Int
  - TimeToDateStr
  - CommandArg0_bound
  - CommandArg0
  - CommandPrefix
  - IsRealNumber
  - UidListDestroy
  - AddSimpleUidItem
  - Rlist2UidList
  - GidListDestroy
  - AddSimpleGidItem
  - Rlist2GidList
  - Str2Uid
  - Str2Gid
  - UidListDestroy
  - GidListDestroy
  source_file: /src/core/libpromises/conversion.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/systype.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/parser_state.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_MAX_NESTING
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/core/libpromises/parser_state.h
      type_or_value: '10'
    structs:
    - fields:
      - name: agent_type
        type: AgentType
      - name: block
        type: ParserBlock
      - name: blocktype[CF_MAXVARSIZE]
        type: char
      - name: blockid[CF_MAXVARSIZE]
        type: char
      - name: filename[CF_MAXVARSIZE]
        type: char
      - name: '*current_line'
        type: char
      - name: line_pos
        type: int
      - name: line_no
        type: int
      - name: error_count
        type: int
      - name: warning_count
        type: int
      - name: warnings
        type: int
      - name: warnings_error
        type: int
      - name: if_depth
        type: int
      - name: arg_nesting
        type: int
      - name: list_nesting
        type: int
      - name: lval[CF_MAXVARSIZE]
        type: char
      - name: rval
        type: Rval
      - name: references_body
        type: bool
      - name: '*promiser'
        type: char
      - name: '*promisee'
        type: void
      - name: current_evaluation_order
        type: EvalOrder
      - name: '*current_namespace'
        type: char
      - name: currentid[CF_MAXVARSIZE]
        type: char
      - name: currenttype[CF_MAXVARSIZE]
        type: char
      - name: '*currentstring'
        type: char
      - name: '*currentclasses'
        type: char
      - name: '*currentvarclasses'
        type: char
      - name: '*policy'
        type: Policy
      - name: '*currentbundle'
        type: Bundle
      - name: '*currentbody'
        type: Body
      - name: '*currentpromise'
        type: Promise
      - name: '*currentstype'
        type: BundleSection
      - name: '*useargs'
        type: Rlist
      - name: '*currentRlist'
        type: Rlist
      - name: '*currentfnid[CF_MAX_NESTING]'
        type: char
      - name: '*giveargs[CF_MAX_NESTING]'
        type: Rlist
      - name: '*currentfncall[CF_MAX_NESTING]'
        type: FnCall
      - name: offsets
        type: "struct OffsetState\n    {\n        size_t current;\n        size_t
          last_id;\n        size_t last_string;\n        size_t last_block_id;\n        size_t
          last_promise_guard_id;\n        size_t last_class_id;\n    }"
      item_type: struct
      name: ParserState
      pos:
        line_end: 95
        line_start: 34
        source_file: /src/core/libpromises/parser_state.h
    - fields:
      - name: current
        type: size_t
      - name: last_id
        type: size_t
      - name: last_string
        type: size_t
      - name: last_block_id
        type: size_t
      - name: last_promise_guard_id
        type: size_t
      - name: last_class_id
        type: size_t
      item_type: struct
      name: OffsetState
      pos:
        line_end: 94
        line_start: 86
        source_file: /src/core/libpromises/parser_state.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/keyring.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OverrideImmutableBegin
  - OverrideImmutableCommit
  - TemporarilyClearImmutableBit
  - ResetTemporarilyClearedImmutableBit
  - OverrideImmutableChmod
  - OverrideImmutableRename
  - OverrideImmutableDelete
  - OverrideImmutableUtime
  source_file: /src/core/libpromises/override_fsattrs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_services.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/crypto.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRIVKEY_PASSPHRASE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/core/libpromises/crypto.h
      type_or_value: '"Cfengine passphrase"'
    - item_type: preproc_def
      name: PRIVKEY_PASSPHRASE_LEN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/libpromises/crypto.h
      type_or_value: '19'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/string_expressions.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: op
        type: StringOp
      - name: val
        type: "union StringExpressionValue\n    {\n        struct\n        {\n            StringExpression
          *lhs;\n            StringExpression *rhs;\n        } concat;\n\n        struct\n
          \       {\n            char *literal;\n        } literal;\n\n        struct\n
          \       {\n            StringExpression *name;\n            VarRefType type;\n
          \       } varref;\n    }"
      item_type: struct
      name: StringExpression_
      pos:
        line_end: 84
        line_start: 62
        source_file: /src/core/libpromises/string_expressions.h
    - fields:
      - name: '*result'
        type: StringExpression
      - name: position
        type: int
      item_type: struct
      name: StringParseResult
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/core/libpromises/string_expressions.h
    typedefs:
    - item_type: typedef
      name: StringExpression
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/core/libpromises/string_expressions.h
      type: StringExpression_
    - item_type: typedef
      name: '*(*VarRefEvaluator) (const char *varname, VarRefType type, void *param)'
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/core/libpromises/string_expressions.h
      type: char
    union:
    - fields:
      - name: concat
        type: "struct\n        {\n            StringExpression *lhs;\n            StringExpression
          *rhs;\n        }"
      - name: literal
        type: "struct\n        {\n            char *literal;\n        }"
      - name: varref
        type: "struct\n        {\n            StringExpression *name;\n            VarRefType
          type;\n        }"
      item_type: union
      name: StringExpressionValue
      pos:
        line_end: 83
        line_start: 65
        source_file: /src/core/libpromises/string_expressions.h
- function_names:
  - SanitizeEnvironment
  - ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
  - SetCFEngineRoles
  - MarkAsPolicyServer
  - SelectAndLoadPolicy
  - CheckContextClassmatch
  - GetTagsFromAugmentsTags
  - CanSetVariable
  - CanSetClass
  - GetAugmentsComment
  - LoadAugmentsData
  - LoadAugmentsFiles
  - IsFile
  - LoadAugments
  - AddPolicyEntryVariables
  - GenericAgentDiscoverContext
  - IsPolicyPrecheckNeeded
  - GenericAgentCheckPolicy
  - ReadPolicyValidatedFile
  - ReadPolicyValidatedFileFromMasterfiles
  - WritePolicyValidatedFile
  - GenericAgentTagReleaseDirectory
  - WriteReleaseIdFile
  - GenericAgentArePromisesValid
  - OpenLog
  - CloseLog
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  - GetDefaultLogFacility
  - StoreDefaultLogFacility
  - GenericAgentInitialize
  - GetChangesChrootDir
  - DeleteChangesChroot
  - GenericAgentFinalize
  - MissingInputFile
  - GeneratePolicyReleaseIDFromGit
  - GeneratePolicyReleaseIDFromTree
  - GeneratePolicyReleaseID
  - GetPromisesValidatedFile
  - GetAutotagDir
  - GetReleaseIdFile
  - ReadReleaseIdFileFromMasterfiles
  - ReadReleaseIdFromReleaseIdFileMasterfiles
  - ReadTimestampFromPolicyValidatedFile
  - ReadChecksumFromPolicyValidatedMasterfiles
  - GenericAgentIsPolicyReloadNeeded
  - ControlBodyConstraints
  - ParseFacility
  - LogFacilityToString
  - SetFacility
  - CheckWorkingDirectories
  - GenericAgentResolveInputPath
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  - Version
  - NameVersion
  - CleanPidFile
  - RegisterPidCleanup
  - WritePID
  - ReadPID
  - GenericAgentConfigParseArguments
  - GenericAgentConfigParseWarningOptions
  - GenericAgentConfigParseColor
  - GetTTYInteractive
  - GenericAgentConfigNewDefault
  - GenericAgentConfigDestroy
  - GenericAgentConfigApply
  - CheckAndGenerateFailsafe
  - GenericAgentConfigSetInputFile
  - GenericAgentConfigSetBundleSequence
  - GenericAgentPostLoadInit
  - SetupSignalsForAgent
  - GenericAgentShowContextsFormatted
  - GenericAgentShowVariablesFormatted
  - GenericAgentDetectEnvironmentFromPolicy
  source_file: /src/core/libpromises/generic_agent.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AUGMENTS_VARIABLES_TAGS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/core/libpromises/generic_agent.c
      type_or_value: '"tags"'
    - item_type: preproc_def
      name: AUGMENTS_VARIABLES_DATA
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/core/libpromises/generic_agent.c
      type_or_value: '"value"'
    - item_type: preproc_def
      name: AUGMENTS_CLASSES_TAGS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/core/libpromises/generic_agent.c
      type_or_value: '"tags"'
    - item_type: preproc_def
      name: AUGMENTS_CLASSES_CLASS_EXPRESSIONS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/core/libpromises/generic_agent.c
      type_or_value: '"class_expressions"'
    - item_type: preproc_def
      name: AUGMENTS_CLASSES_REGULAR_EXPRESSIONS
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/core/libpromises/generic_agent.c
      type_or_value: '"regular_expressions"'
    - item_type: preproc_def
      name: AUGMENTS_COMMENT_KEY
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/core/libpromises/generic_agent.c
      type_or_value: '"comment"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Nova_FreeSlot
  - Nova_MakeSlot
  - Nova_LoadSlots
  - NovaHasSlot
  - NovaGetSlotName
  - NovaGetSlotDescription
  - NovaGetSlotUnits
  - NovaGetSlotExpectedMinimum
  - NovaGetSlotExpectedMaximum
  - NovaIsSlotConsolidable
  - WeekBegin
  - SubtractWeeks
  - NextShift
  - MakeTimekey
  - GetRecordForTime
  source_file: /src/core/libpromises/monitoring_read.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_exec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ValidClassName
  - VerifyClassPromise
  - SelectClass
  - DistributeClass
  - EvalBoolCombination
  - EvalClassExpression
  - VerifyClassCancel
  source_file: /src/core/libpromises/verify_classes.c
  types:
    enum:
    - enumerators:
      - name: c_or
      - name: c_xor
      - name: c_and
      item_type: enum
      name: combine_t
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/core/libpromises/verify_classes.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_report.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - extension_libraries_disable
  source_file: /src/core/libpromises/extensions.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NewAssoc
  - DeleteAssoc
  source_file: /src/core/libpromises/assoc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetProcessStartTime
  - GetProcessState
  source_file: /src/core/libpromises/process_hpux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/dbm_migration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*DBMigrationFunction)(DBHandle *db)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/core/libpromises/dbm_migration.h
      type: bool
    union: []
- function_names:
  - SetTimeOut
  - TimeOut
  - SetReferenceTime
  source_file: /src/core/libpromises/timeout.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CopyRegularFileDiskPerms
  - CopyRegularFileDisk
  - CopyFilePermissionsDisk
  - CopyFileExtendedAttributesDisk
  source_file: /src/core/libpromises/files_copy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_exec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/files_interfaces.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SelectProcess
  - SelectProcesses
  - SelectProcRangeMatch
  - TimeCounter2Int
  - SelectProcTimeCounterRangeMatch
  - TimeAbs2Int
  - SelectProcTimeAbsRangeMatch
  - SelectProcRegexMatch
  - PrintStringIndexLine
  - MaybeFixStartTime
  - SplitProcLine
  - GetProcColumnIndex
  - IsProcessNameRunning
  - GetProcessColumnNames
  - GetProcessOptions
  - ExtractPid
  - PidListCompare
  - ZLoadProcesstable
  - PidInSeq
  - IsGlobalProcess
  - ZCopyProcessList
  - CheckPsLineLimitations
  - GetProcessTableLegend
  - OpenUcbPsPipe
  - ReadFromUcbPsPipe
  - ClearPlatformExtraTable
  - LoadPlatformExtraTable
  - ApplyPlatformExtraTable
  - LoadPlatformExtraTable
  - ClearPlatformExtraTable
  - ApplyPlatformExtraTable
  - LoadProcessTable
  - ClearProcessTable
  source_file: /src/core/libpromises/processes_select.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ZONENAME_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/core/libpromises/processes_select.c
      type_or_value: '64'
    - item_type: preproc_def
      name: TABLE_STORAGE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/core/libpromises/processes_select.c
      type_or_value: static
    structs: []
    typedefs: []
    union: []
- function_names:
  - AclCheck
  source_file: /src/core/libpromises/mod_files.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/signals.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PromiseGetPromiseType
  source_file: /src/core/libpromises/policy.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: PolicyElementType
      - name: '*subject'
        type: void
      - name: '*message'
        type: char
      item_type: struct
      name: PolicyError
      pos:
        line_end: 50
        line_start: 45
        source_file: /src/core/libpromises/policy.h
    - fields:
      - name: '*release_id'
        type: char
      - name: '*bundles'
        type: Seq
      - name: '*bodies'
        type: Seq
      - name: '*custom_promise_types'
        type: Seq
      - name: '*policy_files_hashes'
        type: StringMap
      item_type: struct
      name: Policy_
      pos:
        line_end: 60
        line_start: 52
        source_file: /src/core/libpromises/policy.h
    - fields:
      - name: start
        type: size_t
      - name: end
        type: size_t
      - name: line
        type: size_t
      - name: context
        type: size_t
      item_type: struct
      name: SourceOffset
      pos:
        line_end: 68
        line_start: 62
        source_file: /src/core/libpromises/policy.h
    - fields:
      - name: '*parent_policy'
        type: Policy
      - name: '*type'
        type: char
      - name: '*name'
        type: char
      - name: '*ns'
        type: char
      - name: evaluation_order
        type: EvalOrder
      - name: '*args'
        type: Rlist
      - name: '*sections'
        type: Seq
      - name: '*custom_sections'
        type: Seq
      - name: '*all_promises'
        type: Seq
      - name: '*source_path'
        type: char
      - name: offset
        type: SourceOffset
      item_type: struct
      name: Bundle_
      pos:
        line_end: 86
        line_start: 70
        source_file: /src/core/libpromises/policy.h
    - fields:
      - name: '*parent_policy'
        type: Policy
      - name: '*type'
        type: char
      - name: '*name'
        type: char
      - name: '*ns'
        type: char
      - name: '*args'
        type: Rlist
      - name: '*conlist'
        type: Seq
      - name: is_custom
        type: bool
      - name: '*source_path'
        type: char
      - name: offset
        type: SourceOffset
      item_type: struct
      name: Body_
      pos:
        line_end: 102
        line_start: 88
        source_file: /src/core/libpromises/policy.h
    - fields:
      - name: '*parent_bundle'
        type: Bundle
      - name: '*promise_type'
        type: char
      - name: '*promises'
        type: Seq
      - name: offset
        type: SourceOffset
      item_type: struct
      name: BundleSection_
      pos:
        line_end: 112
        line_start: 104
        source_file: /src/core/libpromises/policy.h
    - fields:
      - name: '*parent_section'
        type: BundleSection
      - name: '*classes'
        type: char
      - name: '*comment'
        type: char
      - name: '*promiser'
        type: char
      - name: promisee
        type: Rval
      - name: '*conlist'
        type: Seq
      - name: '*org_pp'
        type: Promise
      - name: offset
        type: SourceOffset
      item_type: struct
      name: Promise_
      pos:
        line_end: 127
        line_start: 114
        source_file: /src/core/libpromises/policy.h
    - fields:
      - name: type
        type: PolicyElementType
      - name: parent
        type: "union {\n        Promise *promise;\n        Body *body;\n    }"
      - name: '*lval'
        type: char
      - name: rval
        type: Rval
      - name: '*classes'
        type: char
      - name: references_body
        type: bool
      - name: offset
        type: SourceOffset
      item_type: struct
      name: Constraint_
      pos:
        line_end: 144
        line_start: 129
        source_file: /src/core/libpromises/policy.h
    typedefs: []
    union: []
- function_names:
  - ActionCheck
  - CheckIdentifierNotPurelyNumerical
  - VarsParseTreeCheck
  - ClassesParseTreeCheck
  - CommonControlFromString
  source_file: /src/core/libpromises/mod_common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_LOGRANGE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/core/libpromises/mod_common.c
      type_or_value: '"stdout|udp_syslog|(\042?[a-zA-Z]:\\\\.*)|(/.*)"'
    - item_type: preproc_def
      name: CF_FACILITY
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/core/libpromises/mod_common.c
      type_or_value: '"LOG_USER,LOG_DAEMON,LOG_LOCAL0,LOG_LOCAL1,LOG_LOCAL2,LOG_LOCAL3,LOG_LOCAL4,LOG_LOCAL5,LOG_LOCAL6,LOG_LOCAL7"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/dbm_priv.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DB_PRIV_DATABASE_BROKEN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/core/libpromises/dbm_priv.h
      type_or_value: ((DBPriv *)-1)
    structs: []
    typedefs:
    - item_type: typedef
      name: DBPriv
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/libpromises/dbm_priv.h
      type: DBPriv_
    - item_type: typedef
      name: DBCursorPriv
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/libpromises/dbm_priv.h
      type: DBCursorPriv_
    union: []
- function_names:
  - CopyACLs
  - AllowAccessForUsers
  - GetACLs
  - GetACLs
  - CopyACLs
  - AllowAccessForUsers
  source_file: /src/core/libpromises/acl_tools_posix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_report.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DefaultBundleConstraint
  - NamespaceDefault
  - GetMasterfilesStageLock
  - PolicyNew
  - PolicyCompare
  - PolicyDestroy
  - ConstraintHash
  - BodyHash
  - PromiseHash
  - BundleSectionHash
  - BundleHash
  - PolicyHash
  - PolicySourceFiles
  - PolicyGetPolicyFileHash
  - StripNamespace
  - PolicyGetBody
  - PolicyGetBundle
  - PolicyIsRunnable
  - PolicyMerge
  - ConstraintGetNamespace
  - PolicyFromPromise
  - BundleQualifiedName
  - RvalTypeCheckDataType
  - ConstraintCheckSyntax
  - PolicyCheckPromiseType
  - PolicyCheckBundleSections
  - PolicyCheckBundle
  - PolicyCheckBody
  - ConstraintGetSyntax
  - RvalFullSymbol
  - QualifiedNameNamespaceComponent
  - QualifiedNameScopeComponent
  - PolicyCheckUndefinedBodies
  - PolicyCheckRequiredComments
  - PolicyCheckDuplicateHandles
  - PolicyCheckRunnable
  - PolicyCheckPartial
  - PolicyErrorNew
  - PolicyErrorDestroy
  - PolicyElementSourceOffset
  - PolicyElementSourceFile
  - PolicyErrorWrite
  - PolicyErrorToString
  - BundleSectionDestroy
  - PolicyAppendBundle
  - PolicyAppendBody
  - PolicyAppendPromiseBlock
  - BundleAppendSection
  - BundleSectionAppendPromise
  - BundleDestroy
  - BodyDestroy
  - PromiseDestroy
  - ConstraintNew
  - PromiseAppendConstraint
  - BodyAppendConstraint
  - BundleGetSection
  - EscapeQuotes
  - AttributeValueToJson
  - CreateContextAsJson
  - BodyContextsToJson
  - BundleContextsToJson
  - BundleToJson
  - BodyToJson
  - PolicyToJson
  - IndentPrint
  - AttributeToString
  - ArgumentsToString
  - BodyToString
  - BundleToString
  - PolicyToString
  - RvalFromJson
  - PromiseAppendConstraintJson
  - BundleSectionAppendPromiseJson
  - BundleAppendSectionJson
  - PolicyAppendBundleJson
  - BodyAppendConstraintJson
  - PolicyAppendBodyJson
  - PolicyFromJson
  - BodyGetConstraint
  - BodyHasConstraint
  - ConstraintContext
  - EffectiveConstraint
  - ConstraintDestroy
  - PromiseGetConstraintAsBoolean
  - PromiseGetConstraintAsBooleanWithDefault
  - ConstraintsGetAsBoolean
  - PromiseBundleOrBodyConstraintExists
  - CheckScalarNotEmptyVarRef
  - ValidateCustomPromise
  - PromiseCheck
  - PromiseGetNamespace
  - PromiseGetBundle
  - PromiseGetPolicy
  - BundlePath
  - PromiseTypePath
  - PromisePath
  - PromiseGetHandle
  - PromiseGetConstraintAsInt
  - PromiseGetConstraintAsReal
  - Str2Mode
  - PromiseGetConstraintAsOctal
  - PromiseGetConstraintAsUid
  - PromiseGetConstraintAsUid
  - PromiseGetConstraintAsGid
  - PromiseGetConstraintAsGid
  - PromiseGetConstraintAsList
  - PromiseGetConstraint
  - PromiseGetConstraintWithType
  - PromiseGetImmediateConstraint
  - PromiseGetImmediateRvalValue
  - PromiseGetConstraintAsRval
  - PromiseRecheckAllConstraints
  - ConstraintCheckType
  - BundleTypeCheck
  - PolicyHasCustomPromiseType
  source_file: /src/core/libpromises/policy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MASTERFILES_STAGE_LOCK_FNAME
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/core/libpromises/policy.c
      type_or_value: '"masterfiles-stage.lock"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - setnetgrent
  - getnetgrent
  - endnetgrent
  - setegid
  - IsPrivileged
  - cf_strtimestamp_local
  - cf_strtimestamp_utc
  - cf_format_strtimestamp
  - LinkOrCopy
  source_file: /src/core/libpromises/patches.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ClearFilesAttributes
  - GetFilesAttributes
  - GetReportsAttributes
  - GetEnvironmentsAttributes
  - GetServicesAttributes
  - GetPackageAttributes
  - GetUserConstraints
  - GetUserAttributes
  - GetDatabaseAttributes
  - GetClassContextAttributes
  - GetExecAttributes
  - GetProcessAttributes
  - GetStorageAttributes
  - GetMethodAttributes
  - GetMeasurementAttributes
  - GetServicesConstraints
  - GetEnvironmentsConstraints
  - GetExecContainConstraints
  - GetRecursionConstraints
  - GetAclConstraints
  - GetPermissionConstraints
  - GetSelectConstraints
  - ActionAttributeLogLevelFromString
  - GetTransactionConstraints
  - IsClassesBodyConstraint
  - GetClassDefinitionConstraints
  - GetDeleteConstraints
  - GetFSAttrsConstraints
  - GetRenameConstraints
  - ENTERPRISE_FUNC_0ARG_DEFINE_STUB
  - GetChangeMgtConstraints
  - GetCopyConstraints
  - GetLinkConstraints
  - GetEditDefaults
  - GetContextConstraints
  - GetPackageConstraints
  - GetNewPackageConstraints
  - GetProcessFilterConstraints
  - GetMatchesConstraints
  - GetInsertionAttributes
  - GetLocationAttributes
  - GetDeletionAttributes
  - GetColumnAttributes
  - GetReplaceAttributes
  - GetXmlConstraints
  - GetRegionConstraints
  - GetReplaceConstraints
  - GetColumnConstraints
  - GetMountConstraints
  - GetVolumeConstraints
  - GetReportConstraints
  - GetInsertSelectConstraints
  - GetDeleteSelectConstraints
  - GetMeasurementConstraint
  - GetDatabaseConstraints
  source_file: /src/core/libpromises/attributes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_DEFINECLASSES
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/core/libpromises/attributes.c
      type_or_value: '"classes"'
    - item_type: preproc_def
      name: CF_TRANSACTION
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/core/libpromises/attributes.c
      type_or_value: '"action"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ReadJsonFile
  - CheckPrimitiveForUnexpandedVars
  - CheckObjectForUnexpandedVars
  - GetCMDBVariableRef
  - AddCMDBVariable
  - ReadCMDBVars
  - GetTagsFromJsonTags
  - GetCMDBComment
  - ReadCMDBVariables
  - AddCMDBClass
  - ReadCMDBClasses
  - LoadCMDBData
  source_file: /src/core/libpromises/cmdb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOST_SPECIFIC_DATA_FILE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/core/libpromises/cmdb.c
      type_or_value: '"host_specific.json"'
    - item_type: preproc_def
      name: HOST_SPECIFIC_DATA_MAX_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/libpromises/cmdb.c
      type_or_value: '(5 * 1024 * 1024) '
    - item_type: preproc_def
      name: CMDB_NAMESPACE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/core/libpromises/cmdb.c
      type_or_value: '"data"'
    - item_type: preproc_def
      name: CMDB_VARIABLES_TAGS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/core/libpromises/cmdb.c
      type_or_value: '"tags"'
    - item_type: preproc_def
      name: CMDB_VARIABLES_DATA
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/core/libpromises/cmdb.c
      type_or_value: '"value"'
    - item_type: preproc_def
      name: CMDB_CLASSES_TAGS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/core/libpromises/cmdb.c
      type_or_value: '"tags"'
    - item_type: preproc_def
      name: CMDB_CLASSES_CLASS_EXPRESSIONS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/core/libpromises/cmdb.c
      type_or_value: '"class_expressions"'
    - item_type: preproc_def
      name: CMDB_CLASSES_REGULAR_EXPRESSIONS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/core/libpromises/cmdb.c
      type_or_value: '"regular_expressions"'
    - item_type: preproc_def
      name: CMDB_COMMENT_KEY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/core/libpromises/cmdb.c
      type_or_value: '"comment"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/files_names.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/dbm_api_types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*OverwriteCondition) (void *value, size_t value_size, void *data)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/core/libpromises/dbm_api_types.h
      type: bool
    union: []
- function_names: []
  source_file: /src/core/libpromises/loading.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/logic_expressions.h
  types:
    enum:
    - enumerators:
      - name: EXPRESSION_VALUE_ERROR
        value: '-1'
      - name: EXPRESSION_VALUE_FALSE
        value: 'false'
      - name: EXPRESSION_VALUE_TRUE
        value: 'true'
      item_type: enum
      name: ExpressionValue
      pos:
        line_end: 110
        line_start: 105
        source_file: /src/core/libpromises/logic_expressions.h
    preproc_defs: []
    structs:
    - fields:
      - name: op
        type: LogicalOp
      - name: val
        type: "union\n    {\n        struct\n        {\n            Expression *lhs;\n
          \           Expression *rhs;\n        } andor;\n\n        struct\n        {\n
          \           Expression *arg;\n        } not;\n\n        struct\n        {\n
          \           StringExpression *name;\n        } eval;\n    }"
      item_type: struct
      name: Expression_
      pos:
        line_end: 84
        line_start: 63
        source_file: /src/core/libpromises/logic_expressions.h
    - fields:
      - name: '*result'
        type: Expression
      - name: position
        type: int
      item_type: struct
      name: ParseResult
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/core/libpromises/logic_expressions.h
    typedefs:
    - item_type: typedef
      name: Expression
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/core/libpromises/logic_expressions.h
      type: Expression_
    - item_type: typedef
      name: (*NameEvaluator) (const char *name, void *param)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/core/libpromises/logic_expressions.h
      type: ExpressionValue
    union: []
- function_names:
  - StringAppendPromise
  - StringAppendAbbreviatedPromise
  - SpecialTypeBanner
  - SpecialTypeBannerFromString
  - PromiseBanner
  - Legend
  - Banner
  - BundleBanner
  - EndBundleBanner
  source_file: /src/core/libpromises/ornaments.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/match_scope.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_files.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_services.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/evalfunction.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/monitoring_read.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/feature.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/process_lib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROCESS_START_TIME_UNKNOWN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/libpromises/process_lib.h
      type_or_value: ((time_t) 0)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_databases.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WheelNew
  - WheelValuesSeqDestroy
  - WheelDestroy
  - WheelCompareUnexpanded
  - PromiseIteratorNew
  - PromiseIteratorDestroy
  - PromiseIteratorIndex
  - FindDollarParen
  - opposite
  - FindClosingParen
  - IsMangled
  - MangleVarRefString
  - IterVariableGet
  - VarIsSpecial
  - ShouldAddVariableAsIterationWheel
  - ProcessVar
  - PromiseIteratorPrepare
  - IterListElementVariablePut
  - SeqAppendContainerPrimitive
  - ContainerToSeq
  - RlistToSeq
  - IterableToSeq
  - WheelMangleAfterExpandingToList
  - ExpandAndPutWheelVariablesAfter
  - IteratorHasEmptyWheel
  - WheelRightmostIncrement
  - RunOnlyOnce
  - PromiseIteratorNext
  source_file: /src/core/libpromises/iteration.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*varname_unexp'
        type: char
      - name: '*varname_exp'
        type: char
      - name: '*values'
        type: Seq
      - name: vartype
        type: DataType
      - name: iter_index
        type: size_t
      item_type: struct
      name: Wheel
      pos:
        line_end: 131
        line_start: 96
        source_file: /src/core/libpromises/iteration.c
    - fields:
      - name: '*wheels'
        type: Seq
      - name: '*pp'
        type: Promise
      - name: count
        type: size_t
      item_type: struct
      name: PromiseIterator_
      pos:
        line_end: 138
        line_start: 134
        source_file: /src/core/libpromises/iteration.c
    typedefs: []
    union: []
- function_names:
  - ClassDestroy_untyped
  - ClassInit
  - ClassDestroySoft
  - ClassDestroy
  - ClassTableNew
  - ClassTableDestroy
  - ClassTablePut
  - ClassTableGet
  - ClassTableMatch
  - ClassTableRemove
  - ClassTableClear
  - ClassTableIteratorNew
  - ClassTableIteratorNext
  - ClassTableIteratorDestroy
  - ClassRefParse
  - ClassRefToString
  - ClassRefIsQualified
  - ClassRefQualify
  - ClassRefDestroy
  source_file: /src/core/libpromises/class.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*classes'
        type: ClassMap
      item_type: struct
      name: ClassTable_
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/core/libpromises/class.c
    - fields:
      - name: iter
        type: MapIterator
      - name: '*ns'
        type: char
      - name: is_hard
        type: bool
      - name: is_soft
        type: bool
      item_type: struct
      name: ClassTableIterator_
      pos:
        line_end: 65
        line_start: 59
        source_file: /src/core/libpromises/class.c
    typedefs: []
    union: []
- function_names:
  - IsDefinedClass
  - ChrootChanges
  - ToChangesPath
  source_file: /src/core/libpromises/eval_context.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*source'
        type: char
      - name: '*type'
        type: char
      - name: '*component'
        type: char
      - name: '*ns'
        type: char
      - name: '*name'
        type: char
      - name: '*id'
        type: char
      - name: '*callstack'
        type: char
      - name: elapsed
        type: int64_t
      - name: offset
        type: SourceOffset
      item_type: struct
      name: EventFrame
      pos:
        line_end: 54
        line_start: 42
        source_file: /src/core/libpromises/eval_context.h
    - fields:
      - name: '*owner'
        type: Bundle
      - name: '*calling_bundle'
        type: Bundle
      - name: '*classes'
        type: ClassTable
      - name: '*vars'
        type: VariableTable
      item_type: struct
      name: StackFrameBundle
      pos:
        line_end: 73
        line_start: 66
        source_file: /src/core/libpromises/eval_context.h
    - fields:
      - name: '*owner'
        type: Body
      - name: '*vars'
        type: VariableTable
      item_type: struct
      name: StackFrameBody
      pos:
        line_end: 80
        line_start: 75
        source_file: /src/core/libpromises/eval_context.h
    - fields:
      - name: '*owner'
        type: Promise
      - name: '*vars'
        type: VariableTable
      item_type: struct
      name: StackFramePromise
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/core/libpromises/eval_context.h
    - fields:
      - name: '*owner'
        type: BundleSection
      item_type: struct
      name: StackFrameBundleSection
      pos:
        line_end: 92
        line_start: 89
        source_file: /src/core/libpromises/eval_context.h
    - fields:
      - name: '*owner'
        type: Promise
      - name: '*iter_ctx'
        type: PromiseIterator
      - name: index
        type: size_t
      - name: '*log_messages'
        type: RingBuffer
      item_type: struct
      name: StackFramePromiseIteration
      pos:
        line_end: 100
        line_start: 94
        source_file: /src/core/libpromises/eval_context.h
    - fields:
      - name: type
        type: StackFrameType
      - name: inherits_previous
        type: bool
      - name: data
        type: "union\n    {\n        StackFrameBundle bundle;\n        StackFrameBody
          body;\n        StackFrameBundleSection bundle_section;\n        StackFramePromise
          promise;\n        StackFramePromiseIteration promise_iteration;\n    }"
      - name: '*path'
        type: char
      - name: override_immutable
        type: bool
      - name: '*event'
        type: EventFrame
      item_type: struct
      name: StackFrame
      pos:
        line_end: 119
        line_start: 102
        source_file: /src/core/libpromises/eval_context.h
    typedefs: []
    union: []
- function_names:
  - ParserDebug
  - ParseErrorVColumnOffset
  - ParseErrorColumnOffset
  - ParseErrorV
  - ParseError
  - ParseWarningV
  - ParseWarning
  - yyerror
  - fatal_yyerror
  - RelevantBundle
  - LvalWantsBody
  - CheckSelection
  - CheckConstraint
  - ValidateClassLiteral
  - ParserEndCurrentBlock
  - MagicRvalTransformations
  - ParserAppendCurrentConstraint
  - ParserHandleBundlePromiseRval
  - ParserBeginBlock
  - ParserHandlePromiseGuard
  - ParserBeginBlockBody
  - ParserHandleBlockAttributeRval
  - ParserBeginBundleBody
  - ParserHandleQuotedListItem
  - ParserCheckPromiseLine
  source_file: /src/core/libpromises/cf3parse_logic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: YYMALLOC
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/core/libpromises/cf3parse_logic.h
      type_or_value: xmalloc
    - item_type: preproc_def
      name: P
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/core/libpromises/cf3parse_logic.h
      type_or_value: PARSER_STATE
    structs: []
    typedefs: []
    union: []
- function_names:
  - BeginAudit
  - UpdatePromiseCounters
  - EndAudit
  - FatalError
  source_file: /src/core/libpromises/audit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - shlib_open
  - shlib_load
  - shlib_close
  source_file: /src/core/libpromises/shared_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DBMigrate
  - DBVersion
  - DBMigrate
  source_file: /src/core/libpromises/dbm_migration.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetProcessPsinfo
  - GetProcessStartTime
  - GetProcessPstatus
  - GetProcessState
  source_file: /src/core/libpromises/process_solaris.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/core/libpromises/process_solaris.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/verify_classes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AccessParseTreeCheck
  source_file: /src/core/libpromises/mod_access.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ParseFlagString
  - ConvertBSDBits
  source_file: /src/core/libpromises/chflags.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: bits
        type: u_long
      item_type: struct
      name: BSDFlag
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/core/libpromises/chflags.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/acl_tools.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/granules.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FirstBackReference
  - ExtractFirstReference
  - IsRegex
  - IsPathRegex
  - IsRegexItemIn
  - EscapeSpecialChars
  - EscapeRegexCharsLen
  - EscapeRegexChars
  - EscapeChar
  - AnchorRegex
  - AnchorRegexNew
  - HasRegexMetaChars
  source_file: /src/core/libpromises/matching.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetExecOutput
  - ActAsDaemon
  - ArgGetExecutableAndArgs
  - ArgSplitCommand
  - ArgFree
  source_file: /src/core/libpromises/exec_tools.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INITIAL_ARGS
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/core/libpromises/exec_tools.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LastSaw1
  - LastSaw
  - UpdateLastSawHost
  - Address2HostkeyInDB
  - Address2Hostkey
  - HostkeyToAddress
  - IsDigestOrHost
  - IsLastSeenCoherent
  - DeleteIpFromLastSeen
  - DeleteDigestFromLastSeen
  - ScanLastSeenQuality
  - LastSeenHostKeyCount
  - RemoveKeysFromLastSeen
  - OnlyRewriteIfChanged
  - LastSeenHostAcknowledge
  source_file: /src/core/libpromises/lastseen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/vars.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_measurement.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/ornaments.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyReportPromise
  - ReportToLog
  - ReportToFile
  - PrintFile
  source_file: /src/core/libpromises/verify_reports.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IsLegalVariableName
  - VerifyVarPromise
  - CompareRval
  - Epimenides
  - CollectConvergeVariableOptions
  source_file: /src/core/libpromises/verify_vars.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: should_converge
        type: bool
      - name: ok_redefine
        type: bool
      - name: drop_undefined
        type: bool
      - name: '*cp_save'
        type: Constraint
      item_type: struct
      name: ConvergeVariableOptions
      pos:
        line_end: 50
        line_start: 44
        source_file: /src/core/libpromises/verify_vars.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/locks.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/files_operators.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*SaveCallbackFn)(const char *dest_filename, void *param, NewLineMode
        new_line_mode)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/libpromises/files_operators.h
      type: bool
    union: []
- function_names: []
  source_file: /src/core/libpromises/cf3.extern.h
  types:
    enum:
    - enumerators:
      - name: EVAL_MODE_NORMAL
        value: '0'
      - name: EVAL_MODE_SIMULATE_MANIFEST_FULL
        value: '4'
      - name: EVAL_MODE_DRY_RUN
        value: '1'
      - name: EVAL_MODE_SIMULATE_DIFF
        value: '2'
      - name: EVAL_MODE_SIMULATE_MANIFEST
        value: '3'
      item_type: enum
      name: EvalMode
      pos:
        line_end: 58
        line_start: 52
        source_file: /src/core/libpromises/cf3.extern.h
    preproc_defs:
    - item_type: preproc_def
      name: DONTDO
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/core/libpromises/cf3.extern.h
      type_or_value: ((bool) EVAL_MODE)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/sort.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_custom.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pid
        type: pid_t
      - name: process_start_time
        type: time_t
      - name: fds
        type: IOData
      - name: '*input'
        type: FILE
      - name: '*output'
        type: FILE
      - name: '*path'
        type: char
      - name: '*interpreter'
        type: char
      - name: json
        type: bool
      - name: action_policy
        type: bool
      - name: '*message'
        type: JsonElement
      item_type: struct
      name: PromiseModule
      pos:
        line_end: 57
        line_start: 45
        source_file: /src/core/libpromises/mod_custom.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/syslog_client.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FillProcEntry
  - GetProcessStartTime
  - GetProcessState
  source_file: /src/core/libpromises/process_aix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_watch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/item_lib.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*classes'
        type: char
      - name: counter
        type: int
      - name: time
        type: time_t
      - name: '*next'
        type: Item
      item_type: struct
      name: Item_
      pos:
        line_end: 38
        line_start: 31
        source_file: /src/core/libpromises/item_lib.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_environ.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - StringContainsUnresolved
  - StringIsBareNonScalarRef
  source_file: /src/core/libpromises/var_expressions.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ns'
        type: char
      - name: '*scope'
        type: char
      - name: '*lval'
        type: char
      - name: '**indices'
        type: char
      - name: num_indices
        type: size_t
      item_type: struct
      name: VarRef
      pos:
        line_end: 54
        line_start: 40
        source_file: /src/core/libpromises/var_expressions.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/expand.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BootstrapAllowed
  - BootstrapAllowed
  - EvalContextSetPolicyServer
  - EvalContextSetPolicyServerFromFile
  - UpdateLastPolicyUpdateTime
  - GetAmPolicyHub
  - AmPolicyHubFilename
  - WriteAmPolicyHubFile
  - WriteBuiltinFailsafePolicy
  - WriteBuiltinFailsafePolicyToPath
  - RemoveAllExistingPolicyInInputs
  - MasterfileExists
  - BootstrapIDFilename
  - CreateBootstrapIDFile
  - ReadBootstrapIDFile
  - EvalContextSetBootstrapID
  source_file: /src/core/libpromises/bootstrap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RANDOM_BYTES
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/core/libpromises/bootstrap.c
      type_or_value: 240 / 8 // 240 avoids padding (divisible by 6)
    - item_type: preproc_def
      name: BASE_64_LENGTH_NO_PADDING
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/core/libpromises/bootstrap.c
      type_or_value: (4 * (RANDOM_BYTES / 3))
    structs: []
    typedefs: []
    union: []
- function_names:
  - LockCursor
  - UnlockCursor
  - DBPrivGetFileExtension
  - ErrorMessage
  - OpenTokyoDatabase
  - DBPrivSetMaximumConcurrentTransactions
  - DBPrivOpenDB
  - DBPrivCloseDB
  - DBPrivCommit
  - DBPrivClean
  - DBPrivGetDBUsagePercentage
  - DBPrivHasKey
  - DBPrivGetValueSize
  - DBPrivRead
  - Write
  - Delete
  - DBPrivWrite
  - DBPrivOverwrite
  - DBPrivDelete
  - DBPrivOpenCursor
  - DBPrivAdvanceCursor
  - DBPrivDeleteCursorEntry
  - DBPrivWriteCursorEntry
  - DBPrivCloseCursor
  - DBPrivDiagnose
  - SWAB64
  source_file: /src/core/libpromises/dbm_tokyocab.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cursor_lock
        type: pthread_mutex_t
      - name: '*hdb'
        type: TCHDB
      item_type: struct
      name: DBPriv_
      pos:
        line_end: 48
        line_start: 39
        source_file: /src/core/libpromises/dbm_tokyocab.c
    - fields:
      - name: '*db'
        type: DBPriv
      - name: '*current_key'
        type: char
      - name: current_key_size
        type: int
      - name: '*curval'
        type: char
      - name: pending_delete
        type: bool
      item_type: struct
      name: DBCursorPriv_
      pos:
        line_end: 68
        line_start: 50
        source_file: /src/core/libpromises/dbm_tokyocab.c
    typedefs: []
    union: []
- function_names:
  - VarRefHash
  - VarRefHash_untyped
  - VarRefConst
  - VarRefCopy
  - VarRefCopyLocalized
  - VarRefCopyIndexless
  - IndexBracketsBalance
  - IndexCount
  - VarRefParseFromNamespaceAndScope
  - is_this_not_special
  - VarRefParse
  - VarRefParseFromScope
  - VarRefParseFromBundle
  - VarRefDestroy
  - VarRefDestroy_untyped
  - VarRefToString
  - VarRefMangle
  - VarRefDeMangle
  - VarRefIsMeta
  - VarRefSetMeta
  - VarRefIsQualified
  - VarRefQualify
  - VarRefAddIndex
  - VarRefCompare
  - VarRefEqual_untyped
  source_file: /src/core/libpromises/var_expressions.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARRAY_SEPARATOR_HASH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/core/libpromises/var_expressions.c
      type_or_value: ''']'''
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_packages.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_knowledge.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_process.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_databases.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyLink
  - VerifyLink
  - VerifyAbsoluteLink
  - VerifyAbsoluteLink
  - VerifyRelativeLink
  - VerifyHardLink
  - KillGhostLink
  - KillGhostLink
  - MakeLink
  - MakeHardLink
  - MakeHardLink
  - ExpandLinks
  - ExpandLinks
  - AbsLinkPath
  source_file: /src/core/libpromises/files_links.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/systype.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/global_mutex.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/prototypes3.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - KnownFeature
  - CreateHardClassesFromFeatures
  source_file: /src/core/libpromises/feature.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/generic_agent.h
  types:
    enum:
    - enumerators:
      - name: GENERIC_AGENT_CONFIG_COMMON_POLICY_OUTPUT_FORMAT_NONE
      - name: GENERIC_AGENT_CONFIG_COMMON_POLICY_OUTPUT_FORMAT_CF_FULL
      - name: GENERIC_AGENT_CONFIG_COMMON_POLICY_OUTPUT_FORMAT_CF
      - name: GENERIC_AGENT_CONFIG_COMMON_POLICY_OUTPUT_FORMAT_JSON
      - name: GENERIC_AGENT_CONFIG_COMMON_POLICY_OUTPUT_FORMAT_JSON_FULL
      item_type: enum
      name: generic_agent_config_common_policy_output_format
      pos:
        line_end: 42
        line_start: 35
        source_file: /src/core/libpromises/generic_agent.h
    preproc_defs:
    - item_type: preproc_def
      name: GENERIC_AGENT_CHECKSUM_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/core/libpromises/generic_agent.h
      type_or_value: ((2*CF_SHA1_LEN) + 1)
    - item_type: preproc_def
      name: GENERIC_AGENT_CHECKSUM_METHOD
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/libpromises/generic_agent.h
      type_or_value: HASH_METHOD_SHA1
    structs:
    - fields:
      - name: agent_type
        type: AgentType
      - name: '*bundlesequence'
        type: Rlist
      - name: '*original_input_file'
        type: char
      - name: '*input_file'
        type: char
      - name: '*input_dir'
        type: char
      - name: '*tag_release_dir'
        type: char
      - name: check_not_writable_by_others
        type: bool
      - name: check_runnable
        type: bool
      - name: '*heap_soft'
        type: StringSet
      - name: '*heap_negated'
        type: StringSet
      - name: ignore_locks
        type: bool
      - name: tty_interactive
        type: bool
      - name: color
        type: bool
      - name: protocol_version
        type: ProtocolVersion
      - name: ignore_missing_bundles
        type: bool
      - name: ignore_missing_inputs
        type: bool
      - name: ignore_preferred_augments
        type: bool
      - name: agent_specific
        type: "struct\n    {\n        struct\n        {\n            enum generic_agent_config_common_policy_output_format
          policy_output_format;\n            unsigned int parser_warnings;\n            unsigned
          int parser_warnings_error;\n            bool eval_functions;\n            char
          *show_classes;\n            char *show_variables;\n            bool no_augments;\n
          \           bool no_host_specific;\n        } common;\n        struct\n
          \       {\n            char *bootstrap_argument;\n            char *bootstrap_host;\n
          \           char *bootstrap_port;\n            char *bootstrap_ip;\n            bool
          bootstrap_trust_server;\n            bool bootstrap_trigger_policy;\n            bool
          skip_bootstrap_service_start;\n            char *show_evaluated_classes;\n
          \           char *show_evaluated_variables;\n\n            // BODY AGENT
          CONTROL\n            bool report_class_log;\n        } agent;\n        struct\n
          \       {\n            /* Time of the last validated_at timestamp seen.
          */\n            time_t last_validated_at;\n        } daemon;                                     /*
          execd, serverd etc */\n    }"
      - name: profiling
        type: bool
      item_type: struct
      name: GenericAgentConfig
      pos:
        line_end: 109
        line_start: 44
        source_file: /src/core/libpromises/generic_agent.h
    typedefs: []
    union: []
- function_names:
  - CryptoLastErrorString
  - CryptoInitialize
  - CryptoDeInitialize
  - RandomSeed
  - LoadSecretKeys
  - PolicyHubUpdateKeys
  - HavePublicKeyByIP
  - HavePublicKey
  - SavePublicKey
  - LoadPublicKey
  - LoadPubkeyDigest
  - GetPubkeyDigest
  - TrustKey
  - EncryptString
  - CipherBlockSizeBytes
  - CipherTextSizeMax
  - PlainTextSizeMax
  - DecryptString
  - DebugBinOut
  - PublicKeyFile
  - PrivateKeyFile
  - ThreadId_callback
  - OpenSSLLock_callback
  - SetupOpenSSLThreadLocks
  - CleanupOpenSSLThreadLocks
  source_file: /src/core/libpromises/crypto.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetDiskUsage
  source_file: /src/core/libpromises/storage_tools.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SpecialScopeToString
  - SpecialScopeFromString
  - ScopeAugment
  - ScopeMapBodyArgs
  - JoinScopeName
  source_file: /src/core/libpromises/scope.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MoveObstruction
  - SaveItemListCallback
  - SaveItemListAsFile
  - NextItem
  - ItemListsEqual
  - CompareToFile
  source_file: /src/core/libpromises/files_operators.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/shared_lib.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - extension_libraries_disable
  - extension_library_open
  - extension_library_close
  source_file: /src/core/libpromises/extensions.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DBIdToSubPath
  - SearchExistingSubDBNames
  - DBIdToPath
  - IsSubHandle
  - DBHandleGetSubDB
  - DBHandleGet
  - CloseDBInstance
  - CloseAllDBExit
  - RegisterShutdownHandler
  - DBSetMaximumConcurrentTransactions
  - OpenDBInstance
  - OpenSubDB
  - OpenDB
  - GetDBHandleFromFilename
  - GetDBOpenTimestamp
  - CloseDB
  - CleanDB
  - GetDBUsagePercentage
  - FreezeDB
  - ReadComplexKeyDB
  - WriteComplexKeyDB
  - DeleteComplexKeyDB
  - ReadDB
  - WriteDB
  - OverwriteDB
  - HasKeyDB
  - ValueSizeDB
  - DeleteDB
  - NewDBCursor
  - NextDB
  - DBCursorDeleteEntry
  - DBCursorWriteEntry
  - DeleteDBCursor
  - DBPathLock
  - DBPathUnLock
  - DBPathMoveBroken
  - LoadDatabaseToStringMap
  - CheckDBRepairFlagFile
  source_file: /src/core/libpromises/dbm_api.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*filename'
        type: char
      - name: '*subname'
        type: char
      - name: '*priv'
        type: DBPriv
      - name: refcount
        type: int
      - name: lock
        type: pthread_mutex_t
      - name: open_tstamp
        type: time_t
      - name: frozen
        type: bool
      item_type: struct
      name: DBHandle_
      pos:
        line_end: 68
        line_start: 44
        source_file: /src/core/libpromises/dbm_api.c
    - fields:
      - name: '*cursor'
        type: DBCursorPriv
      item_type: struct
      name: DBCursor_
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/core/libpromises/dbm_api.c
    - fields:
      - name: '*handle'
        type: DBHandle
      - name: '*next'
        type: struct dynamic_db_handles_
      item_type: struct
      name: dynamic_db_handles_
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/core/libpromises/dbm_api.c
    typedefs: []
    union: []
- function_names:
  - GenTimeKey
  - GetTimeSlot
  - GetShiftSlot
  - GetShiftSlotStart
  - MeasurementSlotStart
  - MeasurementSlotTime
  source_file: /src/core/libpromises/granules.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DataTypeToRvalType
  - RlistValueIsType
  - RlistScalarValue
  - RlistScalarValueSafe
  - RlistFnCallValue
  - RlistRlistValue
  - RvalScalarValue
  - RvalFnCallValue
  - RvalRlistValue
  - RvalContainerValue
  - RvalTypeToString
  - RlistKeyIn
  - RlistKeyIn_IgnoreCase
  - RlistMatchesRegexRlist
  - RlistMatchesRegex
  - RlistIsNullList
  - RlistIsInListOfRegex
  - RlistContainsString
  - RvalCopyScalar
  - RlistAppendRval
  - RlistInsertAfter
  - RvalNewRewriter
  - RvalNew
  - RvalNewSecret
  - RvalCopyRewriter
  - RvalCopy
  - RlistCopyRewriter
  - RlistCopy
  - RlistDestroy
  - RlistDestroy_untyped
  - RlistAppendScalarIdemp
  - RlistPrependScalarIdemp
  - RlistAppendScalar
  - RlistAppendString
  - RlistAppend
  - RlistAppendAllTypes
  - RlistPrependRval
  - RlistPrepend
  - RlistLen
  - RlistParseShown
  - CLASS_BLANK
  - CLASS_START1
  - CLASS_START2
  - CLASS_END1
  - CLASS_END2
  - CLASS_BRA1
  - CLASS_BRA2
  - CLASS_SEP
  - CLASS_EOL
  - CLASS_ANY0
  - CLASS_ANY1
  - CLASS_ANY2
  - CLASS_ANY3
  - CLASS_ANY4
  - CLASS_ANY5
  - CLASS_ANY6
  - CLASS_ANY7
  - LaunchParsingMachine
  - RlistParseString
  - RvalDestroy
  - RlistDestroyEntry
  - SubStrnCopyChr
  - RlistFromSplitString
  - RlistFromStringSplitLines
  - RlistFromSplitRegex
  - RlistFromRegexSplitNoOverflow
  - RlistLast
  - RlistFilter
  - RlistReverse
  - RlistWrite
  - ScalarWrite
  - RvalWriteParts
  - RvalWrite
  - RvalWriteQuoted
  - RvalWriteRaw
  - RvalToString
  - RlistToString
  - RvalHash
  - RlistHash
  - RlistHash_untyped
  - FnCallToJson
  - RlistToJson
  - RvalToJson
  - RlistFlatten
  - RlistEqual
  - RlistEqual_untyped
  - RlistAppendContainerPrimitive
  - RlistFromContainer
  source_file: /src/core/libpromises/rlist.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/process_unix_priv.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ParseModeString
  - CheckModeState
  - SetModeMask
  source_file: /src/core/libpromises/modes.c
  types:
    enum:
    - enumerators:
      - name: wild
      - name: who
      - name: which
      item_type: enum
      name: modestate
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/core/libpromises/modes.c
    - enumerators:
      - name: unknown
      - name: symbolic
      - name: numeric
      item_type: enum
      name: modesort
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/core/libpromises/modes.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/constants.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_process.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_methods.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/global_mutex.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RegExMatchSubString
  - RegExMatchFullString
  - FullTextMatch
  - ValidateRegEx
  - BlockTextMatch
  source_file: /src/core/libpromises/match_scope.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/assoc.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*lval'
        type: char
      - name: rval
        type: Rval
      - name: dtype
        type: DataType
      item_type: struct
      name: CfAssoc
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/core/libpromises/assoc.h
    typedefs: []
    union: []
- function_names:
  - ParserBlockString
  source_file: /src/core/libpromises/parser_helpers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_0ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_0ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_6ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_3ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_3ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_4ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_6ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_6ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_8ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_8ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_5ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_3ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_3ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_0ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
  source_file: /src/core/libpromises/enterprise_stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_storage.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/bootstrap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PutHandleVariable
  - MapIteratorsFromRval
  - ExpandPromiseAndDo
  - ExpandPromise
  - ExpandPrivateRval
  - VariableDataOrListReference
  - ExpandListEntry
  - ExpandList
  - ExpandBundleReference
  - ExpandScalar
  - EvaluateFinalRval
  - BundleResolvePromiseType
  - PointerCmp
  - RemoveRemotelyInjectedVars
  - BundleResolve
  - ResolveControlBody
  - ResolvePackageManagerBody
  - PolicyResolve
  - IsExpandable
  - opposite
  - IsNakedVar
  - GetNaked
  - IsVarList
  - CommonEvalPromise
  source_file: /src/core/libpromises/expand.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/class.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ns'
        type: char
      - name: '*name'
        type: char
      - name: scope
        type: ContextScope
      - name: is_soft
        type: bool
      - name: '*tags'
        type: StringSet
      - name: '*comment'
        type: char
      item_type: struct
      name: Class
      pos:
        line_end: 38
        line_start: 29
        source_file: /src/core/libpromises/class.h
    - fields:
      - name: '*ns'
        type: char
      - name: '*name'
        type: char
      item_type: struct
      name: ClassRef
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/core/libpromises/class.h
    typedefs:
    - item_type: typedef
      name: ClassTable
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/core/libpromises/class.h
      type: ClassTable_
    - item_type: typedef
      name: ClassTableIterator
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/core/libpromises/class.h
      type: ClassTableIterator_
    union: []
- function_names: []
  source_file: /src/core/libpromises/processes_select.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/mod_users.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CYCLE_DECLARE
  - CYCLE_CHECK
  - ItemIsInList
  - ReverseItemList
  - PrintItemList
  - ItemListSize
  - ReturnItemIn
  - ReturnItemInClass
  - ReturnItemAtIndex
  - IsItemIn
  - ListsCompare
  - ListSubsetOfList
  - EndOfList
  - IdempPrependItem
  - IdempPrependItemClass
  - IdempItemCount
  - PrependItem
  - PrependFullItem
  - AppendItem
  - PrependItemList
  - ListLen
  - CopyList
  - ConcatLists
  - InsertAfter
  - SplitString
  - SplitStringAsItemList
  - ItemList2CSV
  - ItemList2CSV_bound
  - IncrementItemListCounter
  - SetItemListCounter
  - IsMatchItemIn
  - DeleteItemList
  - DeleteItem
  - DeleteItemGeneral
  - DeleteItemStarting
  - DeleteItemNotStarting
  - DeleteItemLiteral
  - DeleteItemMatching
  - DeleteItemNotMatching
  - DeleteItemContaining
  - DeleteItemNotContaining
  - RawSaveItemList
  - RawLoadItemList
  - IsInterfaceAddress
  source_file: /src/core/libpromises/item_lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NewExpArgs
  - FnCallIsBuiltIn
  - FnCallNew
  - FnCallCopyRewriter
  - FnCallCopy
  - FnCallDestroy
  - FnCallHash
  - ExpandFnCall
  - FnCallWrite
  - CallFunction
  - FnCallEvaluate
  - FnCallTypeGet
  source_file: /src/core/libpromises/fncall.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIMULATE_SAFE_META_TAG
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/core/libpromises/fncall.c
      type_or_value: '"simulate_safe"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/timeout.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/conversion.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SetSyslogFacility
  - GetSyslogFacility
  - SetSyslogHost
  - SetSyslogPort
  - RemoteSysLog
  source_file: /src/core/libpromises/syslog_client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RFC3164_LENGTH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/libpromises/syslog_client.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/promises.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libpromises/cf3globals.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MonCPUGatherData
  source_file: /src/core/cf-monitord/mon_cpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MON_CPU_MAX
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/cf-monitord/mon_cpu.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - CheckOpts
  - KeepPromises
  - ThisAgentInit
  source_file: /src/core/cf-monitord/cf-monitord.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-monitord/history.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AppendNewValue
  - GetInstantUint32Value
  - GetInstantUint64Value
  source_file: /src/core/cf-monitord/mon_cumulative.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*subname'
        type: char
      - name: value
        type: "union\n    {\n        unsigned u32;\n        unsigned long long u64;\n
          \   }"
      - name: timestamp
        type: time_t
      - name: '*next'
        type: PrevValue
      item_type: struct
      name: PrevValue_
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/core/cf-monitord/mon_cumulative.c
    typedefs:
    - item_type: typedef
      name: PrevValue
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/cf-monitord/mon_cumulative.c
      type: PrevValue_
    union: []
- function_names: []
  source_file: /src/core/cf-monitord/proc_net_parsing.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PutRecordForTime
  - Nova_SaveFilePosition
  - Nova_RestoreFilePosition
  - Nova_DumpSlowlyVaryingObservations
  - Nova_HistoryUpdate
  - NovaReSample
  - HistoryUpdate
  - NovaGetMeasurementStream
  - NovaExtractValueFromStream
  - NovaLogSymbolicValue
  - VerifyMeasurement
  source_file: /src/core/cf-monitord/history.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_DUNBAR_WORK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/cf-monitord/history.c
      type_or_value: '30'
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: '*output'
        type: Item
      item_type: struct
      name: CustomMeasurement
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/core/cf-monitord/history.c
    typedefs: []
    union: []
- function_names:
  - MonProcessesGatherData
  - GatherProcessUsers
  source_file: /src/core/cf-monitord/mon_processes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MonitorInitialize
  - GetDatabaseAge
  - LoadHistogram
  - MonitorStartServer
  - GetQ
  - EvalAvQ
  - LeapDetection
  - PublishEnvironment
  - AddOpenPorts
  - ArmClasses
  - GetCurrentAverages
  - UpdateAverages
  - Day2Number
  - UpdateDistributions
  - WAverage
  - SetClasses
  - SetVariable
  - ZeroArrivals
  - RejectAnomaly
  - GatherPromisedMeasures
  - KeepMonitorPromise
  source_file: /src/core/cf-monitord/env_monitor.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_ENVNEW_FILE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/core/cf-monitord/env_monitor.c
      type_or_value: '"env_data.new"'
    - item_type: preproc_def
      name: cf_noise_threshold
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/core/cf-monitord/env_monitor.c
      type_or_value: '6    '
    - item_type: preproc_def
      name: MON_THRESHOLD_HIGH
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/core/cf-monitord/env_monitor.c
      type_or_value: 1000000      // samples should stay below this threshold
    - item_type: preproc_def
      name: LDT_BUFSIZE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/core/cf-monitord/env_monitor.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MonDiskGatherData
  - GetFileGrowth
  source_file: /src/core/cf-monitord/mon_disk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetTotalMemory
  - GetKstatInfo
  - MonMemoryGatherData
  - MonMemoryInit
  source_file: /src/core/cf-monitord/mon_mem_solaris.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KB
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/core/cf-monitord/mon_mem_solaris.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MonTempGatherData
  - MonTempGatherData
  - MonTempInit
  - GetAcpi
  - GetSysThermal
  - GetLMSensors
  source_file: /src/core/cf-monitord/mon_temp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-monitord/probes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MON_IO_READS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/cf-monitord/probes.h
      type_or_value: '"io_reads"'
    - item_type: preproc_def
      name: MON_IO_WRITES
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/core/cf-monitord/probes.h
      type_or_value: '"io_writes"'
    - item_type: preproc_def
      name: MON_IO_READDATA
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/core/cf-monitord/probes.h
      type_or_value: '"io_readdata"'
    - item_type: preproc_def
      name: MON_IO_WRITTENDATA
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/core/cf-monitord/probes.h
      type_or_value: '"io_writtendata"'
    - item_type: preproc_def
      name: MON_MEM_TOTAL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/core/cf-monitord/probes.h
      type_or_value: '"mem_total"'
    - item_type: preproc_def
      name: MON_MEM_FREE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/core/cf-monitord/probes.h
      type_or_value: '"mem_free"'
    - item_type: preproc_def
      name: MON_MEM_CACHED
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/core/cf-monitord/probes.h
      type_or_value: '"mem_cached"'
    - item_type: preproc_def
      name: MON_MEM_SWAP
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/core/cf-monitord/probes.h
      type_or_value: '"mem_swap"'
    - item_type: preproc_def
      name: MON_MEM_FREE_SWAP
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/core/cf-monitord/probes.h
      type_or_value: '"mem_freeswap"'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*ProbeGatherData) (double *cf_this)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/core/cf-monitord/probes.h
      type: void
    - item_type: typedef
      name: (*ProbeInit) (const char **name, const char **error)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/core/cf-monitord/probes.h
      type: ProbeGatherData
    union: []
- function_names:
  - MonMemoryInit
  source_file: /src/core/cf-monitord/mon_mem_stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MonEntropyClassesInit
  - MonEntropyClassesReset
  - MonEntropyCalculate
  - MonEntropyClassesSet
  - MonEntropyPurgeUnused
  - MonEntropyClassesPublish
  source_file: /src/core/cf-monitord/mon_entropy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/core/cf-monitord/get_socket_info.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-monitord/monitoring.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MonOtherInit
  - MonOtherGatherData
  source_file: /src/core/cf-monitord/probes.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: init
        type: ProbeInit
      item_type: struct
      name: Probe
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/core/cf-monitord/probes.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-monitord/env_monitor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-monitord/mon_cumulative.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SplitProcNetLine
  - ParseIPv4SocketInfo
  - ParseIPv6SocketInfo
  source_file: /src/core/cf-monitord/proc_net_parsing.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AcceptMemoryField
  - MonMeminfoGatherData
  - MonMemoryInit
  source_file: /src/core/cf-monitord/mon_mem_linux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KB
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/core/cf-monitord/mon_mem_linux.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: total
        type: off_t
      - name: free
        type: off_t
      - name: cached
        type: off_t
      - name: swap
        type: off_t
      - name: free_swap
        type: off_t
      item_type: struct
      name: MemoryInfo
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/core/cf-monitord/mon_mem_linux.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-monitord/mon.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetKstatHandle
  source_file: /src/core/cf-monitord/shared_kstat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NovaNamedEvent
  - Nova_DumpSlots
  - GetObservable
  - SetMeasurementPromises
  - NovaGetSlot
  - NovaRegisterSlot
  source_file: /src/core/cf-monitord/monitoring.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_KEY_FILE_SIZE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/core/cf-monitord/monitoring.c
      type_or_value: '16384  '
    structs: []
    typedefs: []
    union: []
- function_names:
  - MonLoadGatherData
  - MonLoadGatherData
  source_file: /src/core/cf-monitord/mon_load.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOADAVG_5MIN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/cf-monitord/mon_load.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MonNetworkInit
  - SetNetworkEntropyClasses
  - ResetNetworkData
  - MonNetworkGatherData
  - SaveSocketInfo
  - GetNetworkDataFromProcNetTCP
  - GetNetworkDataFromProcNetTCP6
  - GetNetworkDataFromProcNetUDP
  - GetNetworkDataFromProcNetUDP6
  - GetNetworkDataFromProcNet
  - GetNetworkDataFromNetstat
  - SaveNetworkData
  source_file: /src/core/cf-monitord/mon_network.c
  types:
    enum:
    - enumerators:
      - name: cfn_new
      - name: cfn_old
      item_type: enum
      name: cf_netstat_type
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/core/cf-monitord/mon_network.c
    preproc_defs:
    - item_type: preproc_def
      name: ATTR
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/core/cf-monitord/mon_network.c
      type_or_value: (sizeof(ECGSOCKS) / sizeof(ECGSOCKS[0]))
    structs:
    - fields:
      - name: port
        type: uint32_t
      - name: '*portnr'
        type: char
      - name: '*name'
        type: char
      - name: in
        type: enum observables
      - name: out
        type: enum observables
      item_type: struct
      name: Sock
      pos:
        line_end: 64
        line_start: 57
        source_file: /src/core/cf-monitord/mon_network.c
    typedefs: []
    union: []
- function_names:
  - MonNetworkSnifferSniff
  - MonNetworkSnifferOpen
  - MonNetworkSnifferEnable
  - CfenvTimeOut
  - Sniff
  - IncrementCounter
  - AnalyzeArrival
  - SaveTCPEntropyData
  - MonNetworkSnifferGatherData
  - DePort
  source_file: /src/core/cf-monitord/mon_network_sniffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_TCPDUMP_COMM
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/core/cf-monitord/mon_network_sniffer.c
      type_or_value: '"/usr/sbin/tcpdump -t -n -v"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SysfsizeDeviceName
  - DiskSectorSize
  - IsPartition
  - IsStackedDevice
  - IsPhysicalDevice
  - MonIoDiskstatsGatherData
  - MonIoPartitionsGatherData
  - MonIoInit
  source_file: /src/core/cf-monitord/mon_io_linux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYSFSBLOCK
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/core/cf-monitord/mon_io_linux.c
      type_or_value: '"/sys/class/block/"'
    - item_type: preproc_def
      name: KB
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/cf-monitord/mon_io_linux.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MonIoInit
  source_file: /src/core/cf-monitord/mon_io_stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-monitord/shared_kstat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyMeasurementPromise
  - CheckMeasureSanity
  source_file: /src/core/cf-monitord/verify_measurements.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-monitord/verify_measurements.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/server_code.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/key.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Key
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/core/libcfnet/key.h
      type: Key
    union: []
- function_names:
  - ConnectionFlagsEqual
  - SET_DEFAULT_TLS_TIMEOUT
  source_file: /src/core/libcfnet/cfnet.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_MAX_IP_LEN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '64                    '
    - item_type: preproc_def
      name: CF_MAX_PORT_LEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '6'
    - item_type: preproc_def
      name: CF_MAX_HOST_LEN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '256'
    - item_type: preproc_def
      name: CF_MAX_SERVER_LEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: (CF_MAX_HOST_LEN + CF_MAX_PORT_LEN)
    - item_type: preproc_def
      name: CF_DONE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '''t'''
    - item_type: preproc_def
      name: CF_MORE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '''m'''
    - item_type: preproc_def
      name: SOCKET_INVALID
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: MAXIP4CHARLEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CF_RSA_PROTO_OFFSET
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '24'
    - item_type: preproc_def
      name: CF_PROTO_OFFSET
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CF_INBAND_OFFSET
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '8'
    - item_type: preproc_def
      name: CF_MSGSIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: (CF_BUFSIZE - CF_INBAND_OFFSET)
    - item_type: preproc_def
      name: DEFAULT_TLS_TIMEOUT_SECONDS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '5'
    - item_type: preproc_def
      name: DEFAULT_TLS_TIMEOUT_USECONDS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DEFAULT_TLS_TRIES
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/core/libcfnet/cfnet.h
      type_or_value: '5'
    structs:
    - fields:
      - name: protocol_version
        type: ProtocolVersion
      - name: cache_connection
        type: bool
      - name: force_ipv4
        type: bool
      - name: trust_server
        type: bool
      - name: off_the_record
        type: bool
      item_type: struct
      name: ConnectionFlags
      pos:
        line_end: 60
        line_start: 53
        source_file: /src/core/libcfnet/cfnet.h
    - fields:
      - name: '*conn_info'
        type: ConnectionInfo
      - name: authenticated
        type: int
      - name: username[CF_SMALLBUF]
        type: char
      - name: remoteip[CF_MAX_IP_LEN]
        type: char
      - name: '*session_key'
        type: unsigned char
      - name: encryption_type
        type: char
      - name: error
        type: short
      - name: '*cache'
        type: struct Stat_
      - name: flags
        type: ConnectionFlags
      - name: '*this_server'
        type: char
      - name: '*this_port'
        type: char
      item_type: struct
      name: AgentConnection
      pos:
        line_end: 113
        line_start: 95
        source_file: /src/core/libcfnet/cfnet.h
    typedefs: []
    union: []
- function_names:
  - ParseProtocolVersionNetwork
  - ParseProtocolVersionPolicy
  source_file: /src/core/libcfnet/protocol_version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/classic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ProtocolVersionString
  - ProtocolIsKnown
  - ProtocolIsTLS
  - ProtocolIsTooNew
  - ProtocolIsUndefined
  - ProtocolIsClassic
  - ProtocolSupportsFileStream
  - ProtocolSupportsLeech2
  - ProtocolTerminateCSV
  - ProtocolClassicOrTLS
  source_file: /src/core/libcfnet/protocol_version.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_PROTOCOL_LATEST
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/core/libcfnet/protocol_version.h
      type_or_value: CF_PROTOCOL_LEECH2
    - item_type: preproc_def
      name: ProtocolVersionParse
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/core/libcfnet/protocol_version.h
      type_or_value: ParseProtocolVersionPolicy
    structs: []
    typedefs: []
    union: []
- function_names:
  - TLSErrorString
  - TLSGenericInitialize
  - CompareCertToRSA
  - TLSVerifyCallback
  - TLSVerifyPeer
  - TLSGenerateCertFromPrivKey
  - TLSPrimarySSLError
  - TLSLogError
  - assert_SSLIsBlocking
  - TLSSend
  - TLSRecv
  - TLSRecvLines
  - TLSSetDefaultOptions
  - TLSSetCipherList
  source_file: /src/core/libcfnet/tls_generic.c
  types:
    enum:
    - enumerators:
      - name: TLS_1_0
        value: '0'
      - name: TLS_1_3
        value: '3'
      - name: TLS_1_2
        value: '2'
      - name: TLS_1_1
        value: '1'
      item_type: enum
      name: tls_version
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/core/libcfnet/tls_generic.c
    preproc_defs:
    - item_type: preproc_def
      name: TLS_LAST
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: TLS_1_3
    - item_type: preproc_def
      name: TLS_HIGHEST_SUPPORTED
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: TLS_1_3
    - item_type: preproc_def
      name: TLS_HIGHEST_SUPPORTED
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: TLS_1_2
    - item_type: preproc_def
      name: TLS_HIGHEST_SUPPORTED
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: TLS_1_1
    - item_type: preproc_def
      name: TLS_HIGHEST_SUPPORTED
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: TLS_1_0
    - item_type: preproc_def
      name: TLS_LOWEST_REQUIRED
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: TLS_1_0
    - item_type: preproc_def
      name: TLS_LOWEST_RECOMMENDED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: TLS_1_1
    - item_type: preproc_def
      name: SSL_OP_NO_TLSv1_3
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: '0     '
    - item_type: preproc_def
      name: SSL_OP_NO_TLSv1_2
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_OP_NO_TLSv1_1
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_READ_RETRIES
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_WRITE_RETRIES
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/core/libcfnet/tls_generic.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/connection_info.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: protocol
        type: ProtocolVersion
      - name: status
        type: ConnectionStatus
      - name: sd
        type: int
      - name: '*ssl'
        type: SSL
      - name: '*remote_key'
        type: Key
      - name: ss_len
        type: socklen_t
      - name: ss
        type: struct sockaddr_storage
      - name: is_call_collect
        type: bool
      item_type: struct
      name: ConnectionInfo
      pos:
        line_end: 65
        line_start: 56
        source_file: /src/core/libcfnet/connection_info.h
    typedefs:
    - item_type: typedef
      name: ConnectionInfo
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/core/libcfnet/connection_info.h
      type: ConnectionInfo
    union: []
- function_names:
  - cf_closesocket
  source_file: /src/core/libcfnet/misc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ProtocolOpenDir
  - ProtocolGet
  - ProtocolStatGet
  - ProtocolStat
  source_file: /src/core/libcfnet/protocol.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConnCache_Init
  - ConnCache_Destroy
  - ConnCacheEntryMatchesConnection
  - ConnCache_FindIdleMarkBusy
  - ConnCache_MarkNotBusy
  - ConnCache_Add
  source_file: /src/core/libcfnet/conn_cache.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*conn'
        type: AgentConnection
      - name: status
        type: enum ConnCacheStatus
      item_type: struct
      name: ConnCache_entry
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/core/libcfnet/conn_cache.c
    typedefs: []
    union: []
- function_names:
  - cfnet_init
  - cfnet_shut
  - cfnet_IsInitialized
  - DetermineCfenginePort
  - SetCfenginePort
  - TLSConnect
  - ServerConnection
  - DisconnectServer
  - RemoteDirList
  - CompareHashNet
  - EncryptCopyRegularFileNet
  - FlushFileStream
  - CopyRegularFileNet
  source_file: /src/core/libcfnet/client_code.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CFENGINE_SERVICE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/core/libcfnet/client_code.c
      type_or_value: '"cfengine"'
    - item_type: preproc_def
      name: MAX_PORT_NUMBER
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/core/libcfnet/client_code.c
      type_or_value: '65535   '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/file_stream.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/tls_generic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/client_protocol.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/policy_server.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MoveLeftoversToFrontOfInputBuffer
  - FillInputBufferFromHost
  - FillInputBufferFromFile
  - DrainOutputBufferToHost
  - DrainOutputBufferToFile
  - FileStreamRefuse
  - RecvSignature
  - SendDelta
  - FileStreamServe
  - GetSizeOfFile
  - SendSignature
  - RecvDelta
  - FileStreamFetch
  source_file: /src/core/libcfnet/file_stream.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/patch_stream.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATCH_STREAM_GENESIS_HASH
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/core/libcfnet/patch_stream.h
      type_or_value: '"0000000000000000000000000000000000000000"'
    - item_type: preproc_def
      name: PATCH_STREAM_MAX_SIZE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/core/libcfnet/patch_stream.h
      type_or_value: (256 * 1024 * 1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - FuzzySetMatch
  - FuzzyHostParse
  - FuzzyHostMatch
  - FuzzyMatchParse
  - AddressTypeCheckValidity
  - ParseHostPort
  source_file: /src/core/libcfnet/addr_lib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_ADDRSIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/libcfnet/addr_lib.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/communication.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NewStatCache
  - DestroyStatCache
  - StatFromCache
  - cf_remote_stat
  - StatCacheLookup
  - FileTypeToMode
  - StatParseResponse
  source_file: /src/core/libcfnet/stat_cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - KeyNew
  - KeyDestroy
  - KeyRSA
  - KeyBinaryHash
  - KeyPrintableHash
  - KeyHashMethod
  - KeySetHashMethod
  - KeyData
  source_file: /src/core/libcfnet/key.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*key'
        type: RSA
      - name: '*hash'
        type: Hash
      item_type: struct
      name: Key
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/core/libcfnet/key.c
    typedefs: []
    union: []
- function_names:
  - is_whitespace_empty
  - PolicyServerSet
  - CheckEmptyReturn
  - PolicyServerGet
  - PolicyServerGetIP
  - PolicyServerGetHost
  - PolicyServerGetPort
  - PolicyServerFilename
  - PolicyServerReadFile
  - PolicyServerParseFile
  - PolicyServerLookUpFile
  - PolicyServerWriteFile
  - PolicyServerRemoveFile
  source_file: /src/core/libcfnet/policy_server.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __ProtocolSendMessage
  - ProtocolSendMessage
  - ProtocolRecvMessage
  - ProtocolFlushStream
  - ProtocolSendError
  source_file: /src/core/libcfnet/stream_protocol.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/tls_client.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WaitForIncoming
  - OrderAddrInfoResponsesByAIfamily
  - OpenReceiverChannel
  - InitServer
  source_file: /src/core/libcfnet/server_code.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/addr_lib.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/stream_protocol.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROTOCOL_HEADER_SIZE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/core/libcfnet/stream_protocol.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PROTOCOL_MESSAGE_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/core/libcfnet/stream_protocol.h
      type_or_value: MIN(CF_BUFSIZE - 1, 4095)
    - item_type: preproc_def
      name: ERROR_MSG_UNSPECIFIED_SERVER_REFUSAL
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/core/libcfnet/stream_protocol.h
      type_or_value: '"Unspecified server refusal"'
    - item_type: preproc_def
      name: ERROR_MSG_INTERNAL_SERVER_ERROR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/core/libcfnet/stream_protocol.h
      type_or_value: '"Internal server error"'
    - item_type: preproc_def
      name: ERROR_MSG_INTERNAL_CLIENT_ERROR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/core/libcfnet/stream_protocol.h
      type_or_value: '"Internal client error"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PatchStreamRefuse
  - PatchStreamServe
  - PatchStreamFetch
  source_file: /src/core/libcfnet/patch_stream.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConnectionInfoNew
  - ConnectionInfoDestroy
  - ConnectionInfoProtocolVersion
  - ConnectionInfoSetProtocolVersion
  - ConnectionInfoSocket
  - ConnectionInfoSetSocket
  - ConnectionInfoSSL
  - ConnectionInfoSetSSL
  - ConnectionInfoKey
  - ConnectionInfoSetKey
  - ConnectionInfoBinaryKeyHash
  - ConnectionInfoPrintableKeyHash
  source_file: /src/core/libcfnet/connection_info.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/conn_cache.h
  types:
    enum:
    - enumerators:
      - name: CONNCACHE_STATUS_IDLE
        value: '0'
      - name: CONNCACHE_STATUS_OFFLINE
      - name: CONNCACHE_STATUS_BROKEN
      - name: CONNCACHE_STATUS_BUSY
      item_type: enum
      name: ConnCacheStatus
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/core/libcfnet/conn_cache.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/net.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/stat_cache.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cf_filename'
        type: char
      - name: '*cf_server'
        type: char
      - name: cf_type
        type: FileType
      - name: cf_lmode
        type: mode_t
      - name: cf_mode
        type: mode_t
      - name: cf_uid
        type: uid_t
      - name: cf_gid
        type: gid_t
      - name: cf_size
        type: off_t
      - name: cf_atime
        type: time_t
      - name: cf_mtime
        type: time_t
      - name: cf_ctime
        type: time_t
      - name: cf_makeholes
        type: char
      - name: '*cf_readlink'
        type: char
      - name: cf_failed
        type: int
      - name: cf_nlink
        type: int
      - name: cf_ino
        type: int
      - name: cf_dev
        type: dev_t
      - name: '*next'
        type: Stat
      item_type: struct
      name: Stat_
      pos:
        line_end: 62
        line_start: 42
        source_file: /src/core/libcfnet/stat_cache.h
    typedefs:
    - item_type: typedef
      name: Stat
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/core/libcfnet/stat_cache.h
      type: Stat_
    union: []
- function_names:
  - SetSkipIdentify
  - IdentifyAgent
  - SetSessionKey
  - AuthenticateAgent
  - BadProtoReply
  - OKProtoReply
  - FailedProtoReply
  source_file: /src/core/libcfnet/client_protocol.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SetBindInterface
  - SendTransaction
  - ReceiveTransaction
  - EnforceBwLimit
  - SocketConnect
  - TryConnect
  - SetReceiveTimeout
  source_file: /src/core/libcfnet/net.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PREFERRED_CLOCK
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/core/libcfnet/net.c
      type_or_value: CLOCK_MONOTONIC
    - item_type: preproc_def
      name: PREFERRED_CLOCK
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/core/libcfnet/net.c
      type_or_value: CLOCK_REALTIME
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/protocol.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NewAgentConn
  - DeleteAgentConn
  - IsIPV6Address
  - IsIPV4Address
  - Hostname2IPString
  - IPString2Hostname
  - SocketFamily
  source_file: /src/core/libcfnet/communication.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TLSClientIsInitialized
  - TLSClientInitialize
  - TLSDeInitialize
  - TLSClientIdentificationDialog
  - TLSTry
  source_file: /src/core/libcfnet/tls_client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CONNECT_RETRIES
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/core/libcfnet/tls_client.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/libcfnet/client_code.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LastRecvTimedOut
  - RecvSocketStream
  - SendSocketStream
  source_file: /src/core/libcfnet/classic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rstreq
  - rislower
  - risupper
  - risalpha
  - risdigit
  - risalnum
  - rpmvercmp
  - parseEVR
  - rpmVersionCompare
  - usage
  - main
  source_file: /src/core/ext/rpmvercmp.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*epoch'
        type: char
      - name: '*version'
        type: char
      - name: '*release'
        type: char
      item_type: struct
      name: EVR
      pos:
        line_end: 166
        line_start: 161
        source_file: /src/core/ext/rpmvercmp.c
    typedefs: []
    union: []
- function_names:
  - GetHostAndSource
  - LoadMountInfo
  - AugmentMountInfo
  - DeleteMountInfo
  - VerifyInFstab
  - VerifyNotInFstab
  - VerifyMount
  - VerifyUnmount
  - MatchFSInFstab
  - MountAll
  - DeleteThisItem
  - CleanupNFS
  source_file: /src/core/cf-agent/nfs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RPCTIMEOUT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/core/cf-agent/nfs.c
      type_or_value: '60'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/files_changes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/package_module.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACKAGE_PROMISE_SCRIPT_TIMEOUT_SEC
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/cf-agent/package_module.h
      type_or_value: '4 * 3600 '
    - item_type: preproc_def
      name: PACKAGE_PROMISE_TERMINATION_CHECK_SEC
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/cf-agent/package_module.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GLOBAL_PACKAGE_PROMISE_LOCK_NAME
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/cf-agent/package_module.h
      type_or_value: '"new_packages_promise_lock"'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*version'
        type: char
      - name: '*arch'
        type: char
      - name: type
        type: PackageType
      item_type: struct
      name: PackageInfo
      pos:
        line_end: 48
        line_start: 42
        source_file: /src/core/cf-agent/package_module.h
    - fields:
      - name: '*type'
        type: char
      - name: '*message'
        type: char
      item_type: struct
      name: PackageError
      pos:
        line_end: 54
        line_start: 50
        source_file: /src/core/cf-agent/package_module.h
    - fields:
      - name: '*name'
        type: char
      - name: '*path'
        type: char
      - name: '*script_path'
        type: char
      - name: '*script_path_quoted'
        type: char
      - name: '*script_exec_opts'
        type: char
      - name: '*package_module'
        type: PackageModuleBody
      - name: supported_api_version
        type: int
      item_type: struct
      name: PackageModuleWrapper
      pos:
        line_end: 65
        line_start: 56
        source_file: /src/core/cf-agent/package_module.h
    - fields:
      - name: g_lock
        type: CfLock
      - name: '*lock_ctx'
        type: EvalContext
      item_type: struct
      name: PackagePromiseGlobalLock
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/core/cf-agent/package_module.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_users.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyMethodsPromise
  - VerifyMethod
  - GetReturnValue
  source_file: /src/core/cf-agent/verify_methods.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyUsersPromise
  - UserSanityCheck
  source_file: /src/core/cf-agent/verify_users.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/findhub.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/comparray.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: key
        type: int
      - name: '*value'
        type: char
      - name: '*next'
        type: struct CompressedArray_
      item_type: struct
      name: CompressedArray_
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/core/cf-agent/comparray.h
    typedefs: []
    union: []
- function_names:
  - SetFileAutoDefineList
  - VerifyFileLeaf
  - MatchRlistItem
  - CfCopyFile
  - PurgeLocalFiles
  - SourceSearchAndCopy
  - VerifyCopy
  - CopyRegularFile
  - TransformFile
  - VerifyName
  - VerifyDelete
  - TouchFile
  - GetFileTypeDescription
  - HandleFileObstruction
  - DepthSearch
  - PushDirState
  - PopDirState
  - CheckLinkSecurity
  - VerifyCopiedFileAttributes
  - CopyFileSources
  - DecideProtocol
  - FileCopyConnectionOpen
  - FileCopyConnectionClose
  - ScheduleCopyOperation
  - ScheduleLinkOperation
  - ScheduleLinkChildrenOperation
  - VerifyFileIntegrity
  - CompareForFileCopy
  - FileAutoDefine
  - LoadSetxid
  - SaveSetxid
  - IsInSetxidList
  - VerifySetUidGid
  - VerifyFinderType
  - TruncateFile
  - RegisterAHardLink
  - cf_stat
  - cf_readlink
  - SkipDirLinks
  - VerifyOwner
  - VerifyFileChanges
  - CfCreateFile
  - DeviceBoundary
  source_file: /src/core/cf-agent/verify_files_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_RECURSION_LIMIT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/core/cf-agent/verify_files_utils.c
      type_or_value: '100'
    structs:
    - fields:
      - name: fdType
        type: long
      - name: fdCreator
        type: long
      - name: fdFlags
        type: short
      - name: fdLocationV
        type: short
      - name: fdLocationH
        type: short
      - name: fdFldr
        type: short
      - name: fdIconID
        type: short
      - name: fdUnused[3]
        type: short
      - name: fdScript
        type: char
      - name: fdXFlags
        type: char
      - name: fdComment
        type: short
      - name: fdPutAway
        type: long
      item_type: struct
      name: FInfo
      pos:
        line_end: 4015
        line_start: 4001
        source_file: /src/core/cf-agent/verify_files_utils.c
    - fields:
      - name: ssize
        type: long
      - name: created
        type: struct timespec
      - name: modified
        type: struct timespec
      - name: changed
        type: struct timespec
      - name: backup
        type: struct timespec
      - name: fi
        type: FInfo
      item_type: struct
      name: fndrInfo
      pos:
        line_end: 4027
        line_start: 4019
        source_file: /src/core/cf-agent/verify_files_utils.c
    typedefs: []
    union: []
- function_names:
  - CheckPosixLinuxACL
  - CheckPosixLinuxAccessACEs
  - CheckPosixLinuxDefaultACEs
  - CheckPosixLinuxACEs
  - CheckDefaultEqualsAccessACL
  - CheckDefaultClearACL
  - FindACE
  - ACLEquals
  - ACECount
  - PermsetEquals
  - ParseEntityPosixLinux
  - ParseModePosixLinux
  - CheckPosixLinuxACL
  source_file: /src/core/cf-agent/acl_posix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/nfs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SelectLeaf
  - SelectSizeMatch
  - SelectTypeMatch
  - SelectOwnerMatch
  - SelectModeMatch
  - SelectBSDMatch
  - SelectTimeMatch
  - SelectNameRegexMatch
  - SelectPathRegexMatch
  - SelectExecRegexMatch
  - SelectIsSymLinkTo
  - SelectExecProgram
  - GetOwnerName
  - SelectGroupMatch
  source_file: /src/core/cf-agent/files_select.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_new_packages.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_files.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AbstractDirOpen
  - RemoteDirRead
  - AbstractDirRead
  - RemoteDirClose
  - AbstractDirClose
  source_file: /src/core/cf-agent/abstract_dir.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*local_dir'
        type: Dir
      - name: '*list'
        type: Item
      - name: '*listpos'
        type: Item
      item_type: struct
      name: AbstractDir_
      pos:
        line_end: 39
        line_start: 31
        source_file: /src/core/cf-agent/abstract_dir.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/vercmp_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_services.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AgentDiagnosticsResultNew
  - AgentDiagnosticsResultDestroy
  - AgentDiagnosticsRun
  - AgentDiagnosticsCheckIsBootstrapped
  - AgentDiagnosticsCheckAmPolicyServer
  - AgentDiagnosticsCheckPrivateKey
  - AgentDiagnosticsCheckPublicKey
  - AgentDiagnosticsCheckDB
  - AgentDiagnosticsCheckDBPersistentClasses
  - AgentDiagnosticsCheckDBChecksums
  - AgentDiagnosticsCheckDBLastSeen
  - AgentDiagnosticsCheckDBObservations
  - AgentDiagnosticsCheckDBFileStats
  - AgentDiagnosticsCheckDBLocks
  - AgentDiagnosticsCheckDBPerformance
  - AgentDiagnosticsAllChecks
  - ENTERPRISE_VOID_FUNC_4ARG_DEFINE_STUB
  source_file: /src/core/cf-agent/agent-diagnostics.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - REPORT_THIS_PROMISE
  - cfPS_HELPER_0ARG
  - cfPS_HELPER_1ARG
  - cfPS_HELPER_2ARG
  - cfPS_HELPER_3ARG
  - PromiseResultUpdate_HELPER
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  - GetPackagePromiseVersion
  - VerifyPackagesPromise
  - HandleOldPackagePromiseType
  - PackageSanityCheck
  - PackageListInstalledFromCommand
  - ReportSoftware
  - InvalidateSoftwareCache
  - GetCachedPackageList
  - VerifyInstalledPackages
  - FindLargestVersionAvail
  - IsNewerThanInstalled
  - PackageAction2String
  - AddPackageToSchedule
  - AddPatchToSchedule
  - SchedulePackageOp
  - ComparePackages
  - PatchMatch
  - PackageMatch
  - WillSchedulePackageOperation
  - CheckPackageState
  - VerifyPromisedPatch
  - VerifyPromisedPackage
  - ExecuteSchedule
  - ExecutePatch
  - ExecutePackageSchedule
  - ExecuteScheduledPackages
  - CleanScheduledPackages
  - GetPackageManager
  - DeletePackageItems
  - DeletePackageManagers
  - PrefixLocalRepository
  - ExecPackageCommand
  - PrependPackageItem
  - PackageInItemList
  - PrependPatchItem
  - PrependMultiLinePackageItem
  - PrependListPackageItem
  - GetDefaultArch
  source_file: /src/core/cf-agent/verify_packages.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACKAGE_LIST_COMMAND_WINAPI
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/core/cf-agent/verify_packages.c
      type_or_value: '"/Windows_API"'
    - item_type: preproc_def
      name: PACKAGE_IGNORED_CFE_INTERNAL
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/core/cf-agent/verify_packages.c
      type_or_value: '"cfe_internal_non_existing_package"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_files_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FileSanityChecks
  - AttrHasNoAction
  - ExpandThisPromiserScalar
  - GetExpandedAttributes
  - ClearExpandedAttributes
  - CreateFalseWasSpecified
  - VerifyFilePromise
  - WriteContentFromString
  - RenderTemplateCFEngine
  - SaveBufferCallback
  - RenderTemplateMustache
  - RenderTemplateMustacheFromFile
  - RenderTemplateMustacheFromString
  - ScheduleEditOperation
  - FindAndVerifyFilesPromises
  - GetExpandedClassDefinitionConstraints
  - ClearExpandedClassDefinitionConstraints
  - FindFilePromiserObjects
  source_file: /src/core/cf-agent/verify_files.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_methods.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/core/cf-agent/manifest_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/abstract_dir.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: AbstractDir
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/cf-agent/abstract_dir.h
      type: AbstractDir_
    union: []
- function_names:
  - ScheduleEditLineOperations
  - MakeTemporaryBundleFromTemplate
  - KeepEditLinePromise
  - VerifyLineDeletions
  - VerifyColumnEdits
  - VerifyPatterns
  - SelectNextItemMatching
  - SelectLastItemMatching
  - SelectItemMatching
  - VerifyLineInsertions
  - SelectRegion
  - HandleSelectRegionFailure
  - MatchRegion
  - InsertMultipleLinesToRegion
  - InsertMultipleLinesAtLocation
  - DeletePromisedLinesMatching
  - ReplaceBufferSafeWrite
  - ReplacePatterns
  - EditColumns
  - SanityCheckInsertions
  - SanityCheckDeletions
  - MatchPolicy
  - IsItemInRegion
  - InsertFileAtLocation
  - InsertCompoundLineAtLocation
  - NeighbourItemMatches
  - InsertLineAtLocation
  - EditLineByColumn
  - SelectLine
  - DoEditColumn
  - NotAnchored
  - MultiLineString
  source_file: /src/core/cf-agent/files_editline.c
  types:
    enum:
    - enumerators:
      - name: elp_vars
      - name: elp_columns
      - name: elp_delete
      - name: elp_classes
      - name: elp_insert
      - name: elp_replace
      - name: elp_reports
      - name: elp_none
      item_type: enum
      name: editlinetypesequence
      pos:
        line_end: 63
        line_start: 53
        source_file: /src/core/cf-agent/files_editline.c
    preproc_defs:
    - item_type: preproc_def
      name: CF_MAX_REPLACE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/core/cf-agent/files_editline.c
      type_or_value: '20'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BuildCommandLine
  - VerifyExecPromise
  - SyntaxCheckExec
  - PromiseKeptExec
  - GetLockNameExec
  - RepairExec
  - PreviewProtocolLine
  source_file: /src/core/cf-agent/verify_exec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_environments.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - loadavahi
  - getavahipath
  source_file: /src/core/cf-agent/load_avahi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_acl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_VALID_GPERMS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/cf-agent/verify_acl.h
      type_or_value: '"rwx"'
    - item_type: preproc_def
      name: CF_NATIVE_PERMS_SEP_START
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/cf-agent/verify_acl.h
      type_or_value: '''('''
    - item_type: preproc_def
      name: CF_NATIVE_PERMS_SEP_END
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/core/cf-agent/verify_acl.h
      type_or_value: ''')'''
    - item_type: preproc_def
      name: CF_VALID_NPERMS_POSIX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/core/cf-agent/verify_acl.h
      type_or_value: '"rwx"'
    - item_type: preproc_def
      name: CF_VALID_NPERMS_NTFS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/cf-agent/verify_acl.h
      type_or_value: '"drtxTwabBpcoD"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyCommandRetcode
  source_file: /src/core/cf-agent/retcode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NewIndexKey
  - DeleteIndexKey
  - NewHashValue
  - DeleteHashValue
  - ReadHash
  - WriteHash
  - DeleteHash
  - AddMigratedFileToDirectoryList
  - MigrateOldChecksumDatabase
  - MigrateOldStatDatabase
  - OpenChangesDB
  - RemoveAllFileTraces
  - GetDirectoryListFromDatabase
  - FileChangesGetDirectoryList
  - FileChangesSetDirectoryList
  - FileChangesCheckAndUpdateHash
  - FileChangesLogNewFile
  - FileChangesCheckAndUpdateDirectory
  - FileChangesCheckAndUpdateStats
  - FileStateToChar
  - FileChangesLogChange
  source_file: /src/core/cf-agent/files_changes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHANGES_HASH_STRING_LEN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/core/cf-agent/files_changes.c
      type_or_value: '7'
    - item_type: preproc_def
      name: CHANGES_HASH_FILE_NAME_OFFSET
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/core/cf-agent/files_changes.c
      type_or_value: CHANGES_HASH_STRING_LEN+1
    structs:
    - fields:
      - name: mess_digest[EVP_MAX_MD_SIZE + 1]
        type: unsigned char
      item_type: struct
      name: ChecksumValue
      pos:
        line_end: 60
        line_start: 57
        source_file: /src/core/cf-agent/files_changes.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/findhub_priv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Hostname[4096]
        type: char
      - name: IPAddress[AVAHI_ADDRESS_STR_MAX]
        type: char
      - name: Port
        type: uint16_t
      item_type: struct
      name: HostProperties
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/core/cf-agent/findhub_priv.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/agent-diagnostics.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: success
        type: bool
      - name: '*message'
        type: char
      item_type: struct
      name: AgentDiagnosticsResult
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/core/cf-agent/agent-diagnostics.h
    - fields:
      - name: '*description'
        type: char
      - name: '*check'
        type: AgentDiagnosticCheckFn
      item_type: struct
      name: AgentDiagnosticCheck
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/core/cf-agent/agent-diagnostics.h
    typedefs:
    - item_type: typedef
      name: AgentDiagnosticCheckFn(const char *workdir)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/core/cf-agent/agent-diagnostics.h
      type: AgentDiagnosticsResult
    - item_type: typedef
      name: (*AgentDiagnosticsRunFunction)(const char *workdir, const AgentDiagnosticCheck
        checks[], Writer *output)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/core/cf-agent/agent-diagnostics.h
      type: void
    - item_type: typedef
      name: (*AgentDiagnosticsResultNewFunction)(bool success, char *message)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/core/cf-agent/agent-diagnostics.h
      type: AgentDiagnosticsResult
    union: []
- function_names:
  - GetGlobalMountedFSList
  - FindAndVerifyStoragePromises
  - FindStoragePromiserObjects
  - VerifyStoragePromise
  - VerifyFileSystem
  - VerifyFreeSpace
  - VolumeScanArrivals
  - FileSystemMountedCorrectly
  - IsForeignFileSystem
  - VerifyMountPromise
  - DeleteStorageContext
  source_file: /src/core/cf-agent/verify_storage.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyDatabasePromises
  - VerifySQLPromise
  - VerifyDatabasePromise
  - CheckDatabaseSanity
  - CheckRegistrySanity
  - ValidateRegistryPromiser
  - VerifyTablePromise
  - TableExists
  - CreateTableColumns
  - GetSQLTables
  - CreateDBQuery
  - ValidateSQLTableName
  - QueryTableColumns
  - NewSQLColumns
  - DeleteSQLColumns
  - CheckSQLDataType
  - ListTables
  source_file: /src/core/cf-agent/verify_databases.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PrintDelimiter
  - ManifestStatInfo
  - ManifestStatInfo
  - ManifestLinkTarget
  - ManifestFileContents
  - ManifestDirectoryListing
  - GetFileTypeDescription
  - ManifestFileDetails
  - ManifestFile
  - ManifestRename
  - RunDiff
  - DiffFile
  - ManifestRenamedFiles
  - AuditChangedFiles
  - ManifestChangedFiles
  - ManifestAllFiles
  - DiffChangedFiles
  - PkgOperationRecordNew
  - PkgOperationRecordDestroy
  - PkgVersionIsGreater
  - GetPkgOperationMsg
  - DiffPkgOperations
  - ManifestPkgOperations
  source_file: /src/core/cf-agent/simulate_mode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DELIM_CHAR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/core/cf-agent/simulate_mode.c
      type_or_value: '''='''
    - item_type: preproc_def
      name: CHMOD_MODE_BITS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/core/cf-agent/simulate_mode.c
      type_or_value: (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO)
    - item_type: preproc_def
      name: MAX_TIMESTAMP_SIZE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/core/cf-agent/simulate_mode.c
      type_or_value: (sizeof("2020-10-05 12:56:18 +0200"))
    - item_type: preproc_def
      name: MAX_TIMESTAMP_SIZE
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/core/cf-agent/simulate_mode.c
      type_or_value: (sizeof("2020-10-05 12:56:18 +0200"))
    structs:
    - fields:
      - name: '*msg'
        type: char
      - name: '*pkg_ver'
        type: char
      item_type: struct
      name: PkgOperationRecord_
      pos:
        line_end: 650
        line_start: 647
        source_file: /src/core/cf-agent/simulate_mode.c
    typedefs: []
    union: []
- function_names:
  - NewPackagePromiseSanityCheck
  - HandleNewPackagePromiseType
  source_file: /src/core/cf-agent/verify_new_packages.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/cf-agent-windows-functions.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EDIT_CONTEXT_IS_FINAL_PASS
  source_file: /src/core/cf-agent/files_edit.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_EDIT_IFELAPSED
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/core/cf-agent/files_edit.h
      type_or_value: '1     '
    structs:
    - fields:
      - name: '*filename'
        type: char
      - name: '*changes_filename'
        type: char
      - name: '*file_start'
        type: Item
      - name: num_edits
        type: int
      - name: pass
        type: int
      - name: new_line_mode
        type: NewLineMode
      item_type: struct
      name: EditContext
      pos:
        line_end: 54
        line_start: 43
        source_file: /src/core/cf-agent/files_edit.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/tokyo_check.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/cf-agent-enterprise-stubs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*CopyRegularFileFunction)(EvalContext *ctx,\n                                       const
        char *source,\n                                       const char *dest,\n
        \                                      const struct stat *sstat,\n                                       const
        Attributes *attr,\n                                       const Promise *pp,\n
        \                                      CompressedArray **inode_cache,\n                                       AgentConnection
        *conn,\n                                       PromiseResult *result)"
      pos:
        line_end: 45
        line_start: 37
        source_file: /src/core/cf-agent/cf-agent-enterprise-stubs.h
      type: bool
    - item_type: typedef
      name: (*DeleteCompressedArrayFunction)(CompressedArray *start)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/core/cf-agent/cf-agent-enterprise-stubs.h
      type: void
    union: []
- function_names:
  - DefaultVarPromiseWrapper
  - main
  - ConfigureBootstrap
  - CheckOpts
  - TranslateOldBootstrapOptionsSeparate
  - TranslateOldBootstrapOptionsConcatenated
  - FreeFixedStringArray
  - ThisAgentInit
  - KeepPromises
  - KeepControlPromises
  - KeepPromiseBundles
  - AllClassesReport
  - ScheduleAgentOperations
  - ScheduleAgentOperationsNormalOrder
  - ScheduleAgentOperationsTopDownOrder
  - CheckAgentAccess
  - CheckAgentAccess
  - DefaultVarPromise
  - LogVariableValue
  - KeepAgentPromise
  - BannerStatusBegin
  - BannerStatusEnd
  - NewTypeContext
  - DeleteTypeContext
  - ParallelFindAndVerifyFilesPromises
  - ParallelFindAndVerifyFilesPromises
  - VerifyBootstrap
  - NoteBundleCompliance
  - HasAvahiSupport
  - AutomaticBootstrap
  - HasAvahiSupport
  - AutomaticBootstrap
  - WaitForBackgroundProcesses
  source_file: /src/core/cf-agent/cf-agent.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/simulate_mode.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHROOT_PKG_OPERATION_PRESENT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/cf-agent/simulate_mode.h
      type_or_value: '"p"'
    - item_type: preproc_def
      name: CHROOT_PKG_OPERATION_ABSENT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/core/cf-agent/simulate_mode.h
      type_or_value: '"a"'
    - item_type: preproc_def
      name: CHROOT_PKG_OPERATION_INSTALL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/cf-agent/simulate_mode.h
      type_or_value: '"i"'
    - item_type: preproc_def
      name: CHROOT_PKG_OPERATION_REMOVE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/core/cf-agent/simulate_mode.h
      type_or_value: '"r"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyOneUsersPromise
  - IsAccountLocked
  - GetPasswordHash
  source_file: /src/core/cf-agent/verify_users_stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - InvertResult
  - AndResults
  - RunCmpCommand
  - CompareVersionsLess
  - CompareVersionsEqual
  - CompareVersions
  - PackageVersionComparatorToString
  source_file: /src/core/cf-agent/vercmp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_packages.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NewEditContext
  - FinishEditContext
  - LoadFileAsXmlDoc
  - SaveXmlCallback
  - SaveXmlDocAsFile
  source_file: /src/core/cf-agent/files_edit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_processes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/cf_sql.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: connected
        type: int
      - name: result
        type: bool
      - name: row
        type: int
      - name: maxcolumns
        type: unsigned int
      - name: maxrows
        type: unsigned int
      - name: column
        type: int
      - name: '**rowdata'
        type: char
      - name: type
        type: DatabaseType
      - name: '*data'
        type: void
      item_type: struct
      name: CfdbConn
      pos:
        line_end: 40
        line_start: 29
        source_file: /src/core/cf-agent/cf_sql.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_databases.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/acl_posix.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_exec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NewEnvironmentsContext
  - DeleteEnvironmentsContext
  - VerifyEnvironmentsPromise
  - EnvironmentsSanityChecks
  - VerifyEnvironments
  - VerifyVirtDomain
  - VerifyVirtNetwork
  - CreateVirtDom
  - DeleteVirt
  - RunningVirt
  - SuspendedVirt
  - DownVirt
  - CreateVirtNetwork
  - DeleteVirtNetwork
  - EnvironmentErrorHandler
  - ShowRunList
  - ShowDormant
  - Str2Hypervisors
  - NewEnvironmentsContext
  - DeleteEnvironmentsContext
  - VerifyEnvironmentsPromise
  source_file: /src/core/cf-agent/verify_environments.c
  types:
    enum:
    - enumerators:
      - name: cfv_virt_xen
      - name: cfv_virt_vbox
      - name: cfv_virt_test
      - name: cfv_virt_esx
      - name: cfv_virt_kvm
      - name: cfv_virt_xen_net
      - name: cfv_virt_kvm_net
      - name: cfv_virt_esx_net
      - name: cfv_virt_test_net
      - name: cfv_zone
      - name: cfv_ec2
      - name: cfv_none
      - name: cfv_eucalyptus
      item_type: enum
      name: cfhypervisors
      pos:
        line_end: 63
        line_start: 48
        source_file: /src/core/cf-agent/verify_environments.c
    preproc_defs:
    - item_type: preproc_def
      name: CF_MAX_CONCURRENT_ENVIRONMENTS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/core/cf-agent/verify_environments.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CfConnectMysqlDB
  - CfCloseMysqlDB
  - CfNewQueryMysqlDb
  - CfFetchMysqlRow
  - CfDeleteMysqlQuery
  - CfConnectMysqlDB
  - CfCloseMysqlDB
  - CfNewQueryMysqlDb
  - CfFetchMysqlRow
  - CfDeleteMysqlQuery
  - CfConnectPostgresqlDB
  - CfClosePostgresqlDb
  - CfNewQueryPostgresqlDb
  - CfFetchPostgresqlRow
  - CfDeletePostgresqlQuery
  - CfConnectPostgresqlDB
  - CfClosePostgresqlDb
  - CfNewQueryPostgresqlDb
  - CfFetchPostgresqlRow
  - CfDeletePostgresqlQuery
  - CfConnectDB
  - CfCloseDB
  - CfVoidQueryDB
  - CfNewQueryDB
  - CfFetchRow
  - CfFetchColumn
  - CfDeleteQuery
  source_file: /src/core/cf-agent/cf_sql.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: conn
        type: MYSQL
      - name: '*res'
        type: MYSQL_RES
      item_type: struct
      name: DbMysqlConn
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/core/cf-agent/cf_sql.c
    - fields:
      - name: '*conn'
        type: PGconn
      - name: '*res'
        type: PGresult
      item_type: struct
      name: DbPostgresqlConn
      pos:
        line_end: 180
        line_start: 176
        source_file: /src/core/cf-agent/cf_sql.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_storage.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DBMetaNewDirect
  - DBMetaFree
  - AddOffsetToMapUnlessExists
  - DBMetaPopulateOffsetMap
  - TCReadVaryInt
  - DBMetaReadOneRecord
  - DBMetaPopulateRecordMap
  - DBMetaGetResults
  - CheckTokyoDBCoherence
  - CheckTokyoDBCoherence
  source_file: /src/core/cf-agent/tokyo_check.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: offset
        type: uint64_t
      - name: length
        type: uint64_t
      - name: left
        type: uint64_t
      - name: right
        type: uint64_t
      - name: key_size
        type: uint32_t
      - name: rec_size
        type: uint32_t
      - name: pad_size
        type: uint16_t
      - name: magic
        type: uint8_t
      - name: hash
        type: uint8_t
      item_type: struct
      name: TokyoCabinetRecord
      pos:
        line_end: 57
        line_start: 43
        source_file: /src/core/cf-agent/tokyo_check.c
    - fields:
      - name: bucket_count
        type: uint64_t
      - name: bucket_offset
        type: uint64_t
      - name: record_count
        type: uint64_t
      - name: record_offset
        type: uint64_t
      - name: alignment_pow
        type: short
      - name: bytes_per
        type: short
      - name: dbpath[PATH_MAX + 1]
        type: char
      - name: fd
        type: int
      - name: '*offset_map'
        type: StringMap
      - name: '*record_map'
        type: StringMap
      item_type: struct
      name: DBMeta
      pos:
        line_end: 78
        line_start: 62
        source_file: /src/core/cf-agent/tokyo_check.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/load_avahi.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyServicesPromise
  - ServicesSanityChecks
  - SetServiceDefaults
  - VerifyServices
  - DefaultServiceBundleCall
  - DoVerifyServices
  source_file: /src/core/cf-agent/verify_services.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyACL
  - CheckACLSyntax
  - SetACLDefaults
  - CheckAclDefault
  - CheckACESyntax
  - CheckModeSyntax
  - CheckPermTypeSyntax
  source_file: /src/core/cf-agent/verify_acl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_VALID_OPS_METHOD_OVERWRITE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/cf-agent/verify_acl.c
      type_or_value: '"=+-"'
    - item_type: preproc_def
      name: CF_VALID_OPS_METHOD_APPEND
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/core/cf-agent/verify_acl.c
      type_or_value: '"=+-"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/files_select.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENTERPRISE_FUNC_8ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_2ARG_DEFINE_STUB
  source_file: /src/core/cf-agent/cf-agent-enterprise-stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/promiser_regex_resolver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/files_editxml.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/retcode.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/vercmp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/files_editline.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/files_properties.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - client_callback
  - browse_callback
  - resolve_callback
  - PrintList
  - ListHubs
  - CleanupDlClose
  - CompareHosts
  source_file: /src/core/cf-agent/findhub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CompareFileHashes
  - CompareBinaryFiles
  source_file: /src/core/cf-agent/verify_files_hashes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VerifyProcessesPromise
  - ProcessSanityChecks
  - VerifyProcesses
  - ProcessCountMaybeDefineClass
  - VerifyProcessOp
  - DoAllSignals
  - FindPidMatches
  source_file: /src/core/cf-agent/verify_processes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ComparePackageVersionsInternal
  - ParsePackageVersion
  source_file: /src/core/cf-agent/vercmp_internal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LocateFilePromiserGroup
  source_file: /src/core/cf-agent/promiser_regex_resolver.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CFUSR_CHECKBIT
  - CFUSR_SETBIT
  - CFUSR_CLEARBIT
  - GetPlatformSpecificExpirationDate
  - PasswordSupplier
  - GetAIXShadowHash
  - GetSpEntry
  - GetPasswordHash
  - IsPasswordCorrect
  - ChangePlaintextPasswordUsingLibPam
  - ClearPasswordAdministrationFlags
  - ChangePasswordHashUsingChpasswd
  - ChangePasswordHashUsingLckpwdf
  - ExecuteUserCommand
  - ChangePasswordHashUsingChpass
  - ChangePassword
  - IsHashLocked
  - IsAccountLocked
  - PlatformSupportsExpirationLock
  - SetAccountLockExpirationUsingUsermod
  - SetAccountLockExpirationUsingPw
  - SetAccountLockExpiration
  - SetAccountLocked
  - GetGroupInfo
  - EqualGid
  - EqualGroupName
  - fgetgrent
  - GetGrEntry
  - TransformGidsToGroups
  - VerifyIfUserNeedsModifs
  - SupportsOption
  - DoCreateUserUsingUseradd
  - DoCreateUserUsingPw
  - DoCreateUser
  - DoRemoveUserUsingPw
  - DoRemoveUserUsingUserdel
  - DoRemoveUser
  - DoModifyUser
  - fgetpwent
  - GetPwEntry
  - VerifyOneUsersPromise
  source_file: /src/core/cf-agent/verify_users_pam.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DeletePackageModuleWrapper
  - NewPackageModuleWrapper
  - PackageWrapperCommunicate
  - UpdatePackagesCache
  - AcquireGlobalPackagePromiseLock
  - YieldGlobalPackagePromiseLock
  - ParseAndLogErrorMessage
  - FreePackageInfo
  - ParseOptions
  - ParseAndCheckPackageDataReply
  - NegotiateSupportedAPIVersion
  - GetPackageData
  - GetPackageModuleExecInfo
  - IsPackageInCache
  - WritePackageDataToDB
  - UpdatePackagesDB
  - UpdateCache
  - ValidateChangedPackage
  - RemovePackage
  - InstallPackageGeneric
  - InstallPackage
  - FileInstallPackage
  - GetVersionsFromUpdates
  - RepoInstall
  - RepoInstallPackage
  - CheckPolicyAndPackageInfoMatch
  - HandlePresentPromiseAction
  - HandleAbsentPromiseAction
  - UpdateSinglePackageModuleCache
  source_file: /src/core/cf-agent/package_module.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVENTORY_LIST_BUFFER_SIZE
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/core/cf-agent/package_module.c
      type_or_value: '100 * 80 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - ScheduleEditXmlOperations
  - KeepEditXmlPromise
  - VerifyXPathBuild
  - VerifyTreeDeletions
  - VerifyTreeInsertions
  - VerifyAttributeDeletions
  - VerifyAttributeSet
  - VerifyTextDeletions
  - VerifyTextSet
  - VerifyTextInsertions
  - XmlSelectNode
  - BuildXPathInFile
  - BuildXPathInNode
  - InsertTreeInFile
  - DeleteTreeInNode
  - InsertTreeInNode
  - DeleteAttributeInNode
  - SetAttributeInNode
  - DeleteTextInNode
  - SetTextInNode
  - InsertTextInNode
  - SanityCheckXPathBuild
  - SanityCheckTreeDeletions
  - SanityCheckTreeInsertions
  - SanityCheckAttributeDeletions
  - SanityCheckAttributeSet
  - SanityCheckTextDeletions
  - SanityCheckTextSet
  - SanityCheckTextInsertions
  - XmlCompareToFile
  - XmlDocsEqualMem
  - XmlNodesCompare
  - XmlNodesCompareAttributes
  - XmlNodesCompareNodes
  - XmlNodesCompareTags
  - XmlNodesCompareText
  - XmlNodesSubset
  - XmlNodesSubsetOfAttributes
  - XmlNodesSubsetOfNodes
  - XmlNodesSubstringOfText
  - XmlVerifyAttributeInNode
  - XmlVerifyTextInNodeExact
  - XmlVerifyTextInNodeSubstring
  - XmlVerifyNodeInNodeExact
  - XmlVerifyNodeInNodeSubset
  - PredicateExtractNode
  - PredicateRemoveHead
  - XPathHeadExtractNode
  - XPathTailExtractNode
  - XPathSegmentExtractNode
  - XPathGetTail
  - XPathRemoveHead
  - XPathRemoveTail
  - PredicateHasTail
  - PredicateHeadContainsAttribute
  - PredicateHeadContainsNode
  - XPathHasTail
  - XPathHeadContainsNode
  - XPathHeadContainsPredicate
  - XPathVerifyBuildSyntax
  - XPathVerifyConvergence
  - CharToXmlChar
  - ContainsRegex
  - XmlAttributeCount
  source_file: /src/core/cf-agent/files_editxml.c
  types:
    enum:
    - enumerators:
      - name: elx_vars
      - name: elx_none
      - name: elx_classes
      - name: elx_insert
      - name: elx_delete
      item_type: enum
      name: editxmltypesequence
      pos:
        line_end: 55
        line_start: 48
        source_file: /src/core/cf-agent/files_editxml.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AddFilenameToListOfSuspicious
  - ConsiderFile
  - ConsiderLocalFile
  - ConsiderAbstractFile
  source_file: /src/core/cf-agent/files_properties.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FixCompressedArrayValue
  - DeleteCompressedArray
  - CompressedArrayElementExists
  - CompressedArrayValue
  source_file: /src/core/cf-agent/comparray.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-agent/verify_files_hashes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CFTestD_ConfigInit
  - CFTestD_ConfigDestroy
  - CFTestD_Help
  - CFTestD_CheckOpts
  - CFTestD_TLSSessionEstablish
  - CFTestD_GetServerQuery
  - CFTestD_ProtocolError
  - CFTestD_BusyLoop
  - CFTestD_NewConn
  - CFTestD_DeleteConn
  - CFTestD_HandleConnection
  - CFTestD_SpawnConnection
  - CFTestD_AcceptAndHandle
  - CFTestD_StartServer
  - LogAddPrefix
  - CFTestD_GetReportLine
  - CFTestD_ServeReport
  - HandleSignal
  - IncrementIPaddress
  - main
  source_file: /src/core/cf-testd/cf-testd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CFTESTD_QUEUE_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/core/cf-testd/cf-testd.c
      type_or_value: '10'
    - item_type: preproc_def
      name: WAIT_CHECK_TIMEOUT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/core/cf-testd/cf-testd.c
      type_or_value: '5'
    structs:
    - fields:
      - name: '*report_file'
        type: char
      - name: '*report_data'
        type: char
      - name: '*report'
        type: Seq
      - name: report_len
        type: int
      - name: '*key_file'
        type: char
      - name: '*priv_key'
        type: RSA
      - name: '*pub_key'
        type: RSA
      - name: '*ssl_ctx'
        type: SSL_CTX
      - name: '*address'
        type: char
      - name: t_id
        type: pthread_t
      - name: ret
        type: int
      item_type: struct
      name: CFTestD_Config
      pos:
        line_end: 90
        line_start: 77
        source_file: /src/core/cf-testd/cf-testd.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-serverd/cf-serverd-enterprise-stubs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*ServerEntryPointFunction)(EvalContext *ctx, char *ipaddr, ConnectionInfo
        *info)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/core/cf-serverd/cf-serverd-enterprise-stubs.h
      type: void
    union: []
- function_names:
  - ThisAgentInit
  - main
  source_file: /src/core/cf-serverd/cf-serverd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-serverd/server_tls.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GetCommandClassic
  - ResolveFilename
  - PathMatch
  - AccessControl
  - LiteralAccessControl
  - ContextAccessControl
  - cfscanf
  - SetConnectionData
  - CheckStoreKey
  - AuthenticationDialogue
  - BusyWithClassicConnection
  source_file: /src/core/cf-serverd/server_classic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Summarize
  - KeepPromises
  - ValueHasUnresolvedVars
  - KeepControlPromises
  - IsControlBody
  - IsPromiseTypeNotInTypeSequence
  - EvaluateBundle
  - KeepPromiseBundles
  - KeepServerPromise
  - AdmitType
  - StrList_AppendRegexHostname
  - TurnOnReverseLookups
  - racl_SmartAppend
  - NewHostToOldACL
  - AccessPromise_AddAccessConstraints
  - IsAccessBody
  - GetOrCreateAuth
  - KeepFileAccessPromise
  - KeepLiteralAccessPromise
  - KeepQueryAccessPromise
  - KeepBundlesAccessPromise
  - KeepServerRolePromise
  - InstallServerAuthPath
  - GetAuthPath
  source_file: /src/core/cf-serverd/server_transform.c
  types:
    enum:
    - enumerators:
      - name: ADMIT_TYPE_IP
      - name: ADMIT_TYPE_OTHER
      - name: ADMIT_TYPE_HOSTNAME
      - name: ADMIT_TYPE_KEY
      item_type: enum
      name: admit_type
      pos:
        line_end: 825
        line_start: 819
        source_file: /src/core/cf-serverd/server_transform.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - access_CheckResource
  - acl_CheckPath
  - acl_CheckExact
  - acl_CheckRegex
  - acl_SortedInsert
  - acl_Free
  - acl_Summarise
  source_file: /src/core/cf-serverd/server_access.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memrcmp
  - string_New
  - string_BoolCompare
  - string_Compare
  - string_CompareFromEnd
  - string_MatchCount
  - string_ReverseMatchCount
  - StrList_Len
  - StrList_At
  - StrList_Insert
  - StrList_Append
  - StrList_Finalise
  - StrList_Free
  - StrList_Sort
  - StrList_bsearch
  - StrList_BinarySearchString
  - StrList_BinarySearch
  - StrList_BinarySearchExtended
  - StrList_SearchLongestPrefix
  - StrList_SearchForPrefix
  source_file: /src/core/cf-serverd/strlist.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-serverd/server.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CLOCK_DRIFT
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/core/cf-serverd/server.h
      type_or_value: '3600'
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: literal
        type: int
      - name: classpattern
        type: int
      - name: variable
        type: int
      - name: '*accesslist'
        type: Item
      - name: '*maproot'
        type: Item
      - name: encrypt
        type: int
      - name: '*next'
        type: Auth
      item_type: struct
      name: Auth_
      pos:
        line_end: 54
        line_start: 42
        source_file: /src/core/cf-serverd/server.h
    - fields:
      - name: '*connectionlist'
        type: Item
      - name: '*nonattackerlist'
        type: Item
      - name: '*attackerlist'
        type: Item
      - name: '*allowuserlist'
        type: Item
      - name: '*multiconnlist'
        type: Item
      - name: '*trustkeylist'
        type: Item
      - name: '*allowlegacyconnects'
        type: Item
      - name: '*allowciphers'
        type: char
      - name: '*allowtlsversion'
        type: char
      - name: '*admit'
        type: Auth
      - name: '*admittail'
        type: Auth
      - name: '*deny'
        type: Auth
      - name: '*denytail'
        type: Auth
      - name: '*varadmit'
        type: Auth
      - name: '*varadmittail'
        type: Auth
      - name: '*vardeny'
        type: Auth
      - name: '*vardenytail'
        type: Auth
      - name: logconns
        type: int
      - name: '*path_shortcuts'
        type: StringMap
      item_type: struct
      name: ServerAccess
      pos:
        line_end: 88
        line_start: 56
        source_file: /src/core/cf-serverd/server.h
    - fields:
      - name: '*conn_info'
        type: ConnectionInfo
      - name: ipaddr[CF_MAX_IP_LEN]
        type: char
      - name: revdns[NI_MAXHOST]
        type: char
      - name: uid
        type: uid_t
      - name: username[CF_MAXVARSIZE]
        type: char
      - name: hostname[CF_MAXVARSIZE]
        type: char
      - name: user_data_set
        type: bool
      - name: rsa_auth
        type: bool
      - name: maproot
        type: int
      - name: '*session_key'
        type: unsigned char
      - name: encryption_type
        type: char
      - name: '*ctx'
        type: EvalContext
      - name: dump_reports
        type: bool
      item_type: struct
      name: ServerConnectionState_
      pos:
        line_end: 126
        line_start: 91
        source_file: /src/core/cf-serverd/server.h
    - fields:
      - name: '*conn'
        type: ServerConnectionState
      - name: encrypt
        type: int
      - name: buf_size
        type: int
      - name: '*replybuff'
        type: char
      - name: '*replyfile'
        type: char
      item_type: struct
      name: ServerFileGetState
      pos:
        line_end: 135
        line_start: 128
        source_file: /src/core/cf-serverd/server.h
    typedefs:
    - item_type: typedef
      name: Auth
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/core/cf-serverd/server.h
      type: Auth_
    union: []
- function_names: []
  source_file: /src/core/cf-serverd/server_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_BUFEXT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/core/cf-serverd/server_common.h
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GenerateAvahiConfig
  - CheckOpts
  - DeleteAuthList
  - ClearAuthAndACLs
  - CheckFileChanges
  - InitSignals
  - AcquireServerLock
  - PrepareServer
  - GracefulStop
  - WaitOnThreads
  - CollectCallIfDue
  - PolicyUpdateIfSafe
  - AcceptAndHandle
  - GetListenQueueSize
  - StartServer
  source_file: /src/core/cf-serverd/cf-serverd-functions.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WAIT_INCOMING_TIMEOUT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
      type_or_value: '10'
    - item_type: preproc_def
      name: DEFAULT_LISTEN_QUEUE_SIZE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
      type_or_value: '128'
    - item_type: preproc_def
      name: MAX_LISTEN_QUEUE_SIZE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/core/cf-serverd/cf-serverd-functions.c
      type_or_value: '2048'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ServerTLSInitialize
  - ServerTLSDeInitialize
  - ServerTLSPeek
  - ServerIdentificationDialog
  - ServerSendWelcome
  - BasicServerTLSSessionEstablish
  - ServerTLSSessionEstablish
  - GetCommandNew
  - BusyWithNewProtocol
  source_file: /src/core/cf-serverd/server_tls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ACCEPT_RETRIES
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/core/cf-serverd/server_tls.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENTERPRISE_VOID_FUNC_3ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_3ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_5ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_2ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_3ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_2ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_0ARG_DEFINE_STUB
  - ENTERPRISE_FUNC_1ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_0ARG_DEFINE_STUB
  - ENTERPRISE_VOID_FUNC_1ARG_DEFINE_STUB
  source_file: /src/core/cf-serverd/cf-serverd-enterprise-stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ServerEntryPoint
  - PurgeOldConnections
  - SpawnConnection
  - DisableSendDelays
  - LogHook
  - HandleConnection
  - NewConn
  - DeleteConn
  source_file: /src/core/cf-serverd/server.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-serverd/cf-serverd-functions.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*InitServerFunction)(size_t queue_size, char *bind_address)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/core/cf-serverd/cf-serverd-functions.h
      type: int
    union: []
- function_names: []
  source_file: /src/core/cf-serverd/server_access.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ips'
        type: StrList
      - name: '*hostnames'
        type: StrList
      - name: '*keys'
        type: StrList
      - name: '*usernames'
        type: StrList
      item_type: struct
      name: admitdeny_acl
      pos:
        line_end: 49
        line_start: 43
        source_file: /src/core/cf-serverd/server_access.h
    - fields:
      - name: len
        type: size_t
      - name: alloc_len
        type: size_t
      - name: '*resource_names'
        type: StrList
      - name: acls[]
        type: "struct resource_acl\n    {\n        struct admitdeny_acl admit;\n        struct
          admitdeny_acl deny;\n    }"
      item_type: struct
      name: acl
      pos:
        line_end: 74
        line_start: 63
        source_file: /src/core/cf-serverd/server_access.h
    - fields:
      - name: admit
        type: struct admitdeny_acl
      - name: deny
        type: struct admitdeny_acl
      item_type: struct
      name: resource_acl
      pos:
        line_end: 73
        line_start: 69
        source_file: /src/core/cf-serverd/server_access.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-serverd/server_classic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RefuseAccess
  - IsUserNameValid
  - AllowedUser
  - ListPersistentClasses
  - ReplyNothing
  - MatchClasses
  - Terminate
  - TransferRights
  - AbortTransfer
  - FailedTransfer
  - CfGetFile
  - CfEncryptGetFile
  - StatFile
  - CompareLocalHash
  - GetServerLiteral
  - GetServerQuery
  - ReplyServerContext
  - CfOpenDirectory
  - CfSecOpenDirectory
  - ReplaceSpecialVariables
  - PathRemoveTrailingSlash
  - PathAppendTrailingSlash
  - PathIsAbsolute
  - ShortcutsExpand
  - PreprocessRequestPath
  - SetConnIdentity
  - CharsetAcceptable
  - AuthorizeDelimitedArgs
  - DoExec2
  source_file: /src/core/cf-serverd/server_common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-serverd/strlist.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: len
        type: size_t
      - name: str[]
        type: char
      item_type: struct
      name: string
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/core/cf-serverd/strlist.h
    - fields:
      - name: len
        type: size_t
      - name: alloc_len
        type: size_t
      - name: '*list[]'
        type: struct string
      item_type: struct
      name: strlist
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/core/cf-serverd/strlist.h
    typedefs:
    - item_type: typedef
      name: "(*StringComparatorF)(const struct string **,\n                                 const
        struct string **)"
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/core/cf-serverd/strlist.h
      type: int
    union: []
- function_names: []
  source_file: /src/core/cf-serverd/server_transform.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/3rdparty/peg-0.1.15/src/version.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PEG_MAJOR
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/core/3rdparty/peg-0.1.15/src/version.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PEG_MINOR
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/core/3rdparty/peg-0.1.15/src/version.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PEG_LEVEL
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/core/3rdparty/peg-0.1.15/src/version.h
      type_or_value: '15'
    structs: []
    typedefs: []
    union: []
- function_names:
  - YY_INPUT
  - YY_LOCAL
  - YY_RULE
  - yyerror
  - version
  - usage
  - main
  source_file: /src/core/3rdparty/peg-0.1.15/src/peg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - yyl
  - charClassSet
  - charClassClear
  - oigit
  - higit
  - hexval
  - cnext
  - makeCharClass
  - begin
  - end
  - label
  - jump
  - save
  - restore
  - Node_compile_c_ko
  - countVariables
  - defineVariables
  - undefineVariables
  - Rule_compile_c2
  - Rule_compile_c_header
  - consumesInput
  - Rule_compile_c
  source_file: /src/core/3rdparty/peg-0.1.15/src/compile.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/core/3rdparty/peg-0.1.15/src/compile.c
      type_or_value: __inline
    structs: []
    typedefs:
    - item_type: typedef
      name: (*setter)(unsigned char bits[], int c)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/core/3rdparty/peg-0.1.15/src/compile.c
      type: void
    union: []
- function_names:
  - YY_INPUT
  - YY_LOCAL
  - YY_RULE
  - YY_MALLOC
  - YY_REALLOC
  - YY_FREE
  - YY_LOCAL
  - YY_ACTION
  - YY_RULE
  - YY_PARSE
  - yyprintf
  - YY_INPUT
  - YY_INPUT
  - yyrefill
  - yymatchDot
  - yymatchChar
  - yymatchString
  - yymatchClass
  - yyDo
  - yyText
  - yyDone
  - yyCommit
  - yyAccept
  - yyPush
  - yyPop
  - yySet
  - yy_9_primary
  - yy_8_primary
  - yy_7_primary
  - yy_6_primary
  - yy_5_primary
  - yy_4_primary
  - yy_3_primary
  - yy_2_primary
  - yy_1_primary
  - yy_3_suffix
  - yy_2_suffix
  - yy_1_suffix
  - yy_3_prefix
  - yy_2_prefix
  - yy_1_prefix
  - yy_1_error
  - yy_1_sequence
  - yy_1_expression
  - yy_2_definition
  - yy_1_definition
  - yy_1_trailer
  - yy_1_declaration
  - yy_end_of_line
  - yy_comment
  - yy_space
  - yy_braces
  - yy_range
  - yy_char
  - yy_END
  - yy_BEGIN
  - yy_DOT
  - yy_class
  - yy_literal
  - yy_CLOSE
  - yy_OPEN
  - yy_COLON
  - yy_PLUS
  - yy_STAR
  - yy_QUESTION
  - yy_primary
  - yy_NOT
  - yy_suffix
  - yy_AND
  - yy_action
  - yy_TILDE
  - yy_prefix
  - yy_error
  - yy_BAR
  - yy_sequence
  - yy_SEMICOLON
  - yy_expression
  - yy_EQUAL
  - yy_identifier
  - yy_RPERCENT
  - yy_end_of_file
  - yy_trailer
  - yy_definition
  - yy_declaration
  - yy__
  - yy_grammar
  - YYPARSEFROM
  - YYPARSE
  - YYRELEASE
  - yyerror
  - makeHeader
  - makeTrailer
  - version
  - usage
  - main
  source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: YYRULECOUNT
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: '38'
    - item_type: preproc_def
      name: YYPARSE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yyparse
    - item_type: preproc_def
      name: YYPARSEFROM
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yyparsefrom
    - item_type: preproc_def
      name: YYRELEASE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yyrelease
    - item_type: preproc_def
      name: YY_BEGIN
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: ( yy->__begin= yy->__pos, 1)
    - item_type: preproc_def
      name: YY_END
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: ( yy->__end= yy->__pos, 1)
    - item_type: preproc_def
      name: YYSTYPE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: int
    - item_type: preproc_def
      name: YY_STACK_SIZE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: '128'
    - item_type: preproc_def
      name: YY_BUFFER_SIZE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: YY_CTX_PARAM_
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yycontext *yyctx,
    - item_type: preproc_def
      name: YY_CTX_PARAM
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yycontext *yyctx
    - item_type: preproc_def
      name: YY_CTX_ARG_
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yyctx,
    - item_type: preproc_def
      name: YY_CTX_ARG
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yyctx
    - item_type: preproc_def
      name: YYACCEPT
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yyAccept(yy, yythunkpos0)
    - item_type: preproc_def
      name: __
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 503
        line_start: 502
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 542
        line_start: 541
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 605
        line_start: 604
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: __
      pos:
        line_end: 632
        line_start: 631
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__
    - item_type: preproc_def
      name: yypos
      pos:
        line_end: 633
        line_start: 632
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__pos
    - item_type: preproc_def
      name: yythunkpos
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__thunkpos
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 788
        line_start: 787
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 789
        line_start: 788
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 817
        line_start: 816
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 818
        line_start: 817
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 824
        line_start: 823
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 825
        line_start: 824
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 837
        line_start: 836
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 838
        line_start: 837
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 970
        line_start: 969
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 971
        line_start: 970
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 980
        line_start: 979
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 981
        line_start: 980
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 1085
        line_start: 1084
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 1086
        line_start: 1085
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 1131
        line_start: 1130
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 1132
        line_start: 1131
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 1141
        line_start: 1140
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 1142
        line_start: 1141
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 1169
        line_start: 1168
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 1170
        line_start: 1169
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 1182
        line_start: 1181
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__text
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 1183
        line_start: 1182
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type_or_value: yy->__textlen
    structs:
    - fields:
      - name: '*text'
        type: char
      - name: '*next'
        type: Header
      item_type: struct
      name: Header
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
    - fields:
      - name: begin
        type: int
      - name: action
        type: yyaction
      - name: '*next'
        type: struct _yythunk
      item_type: struct
      name: _yythunk
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
    - fields:
      - name: '*__buf'
        type: char
      - name: __buflen
        type: int
      - name: __pos
        type: int
      - name: __limit
        type: int
      - name: '*__text'
        type: char
      - name: __textlen
        type: int
      - name: __begin
        type: int
      - name: __end
        type: int
      - name: __textmax
        type: int
      - name: '*__thunks'
        type: yythunk
      - name: __thunkslen
        type: int
      - name: __thunkpos
        type: int
      - name: __
        type: YYSTYPE
      - name: '*__val'
        type: YYSTYPE
      - name: '*__vals'
        type: YYSTYPE
      - name: __valslen
        type: int
      item_type: struct
      name: _yycontext
      pos:
        line_end: 126
        line_start: 106
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
    typedefs:
    - item_type: typedef
      name: Header
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type: Header
    - item_type: typedef
      name: yycontext
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type: _yycontext
    - item_type: typedef
      name: (*yyaction)(yycontext *yy, char *yytext, int yyleng)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type: void
    - item_type: typedef
      name: (*yyrule)(yycontext *yy)
      pos:
        line_end: 1235
        line_start: 1235
        source_file: /src/core/3rdparty/peg-0.1.15/src/leg.c
      type: int
    union: []
- function_names:
  - _newNode
  - newNode
  - makeRule
  - findRule
  - beginRule
  - Rule_setExpression
  - makeVariable
  - makeName
  - makeDot
  - makeCharacter
  - makeString
  - makeClass
  - makeAction
  - makePredicate
  - makeError
  - makeAlternate
  - Alternate_append
  - makeSequence
  - Sequence_append
  - makePeekFor
  - makePeekNot
  - makeQuery
  - makeStar
  - makePlus
  - dumpStack
  - push
  - top
  - pop
  - Node_fprint
  - Node_print
  - Rule_fprint
  - Rule_print
  source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.c
      type_or_value: __inline
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*name'
        type: char
      - name: '*variables'
        type: Node
      - name: '*expression'
        type: Node
      - name: id
        type: int
      - name: flags
        type: int
      item_type: struct
      name: Rule
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*name'
        type: char
      - name: '*value'
        type: Node
      - name: offset
        type: int
      item_type: struct
      name: Variable
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*rule'
        type: Node
      - name: '*variable'
        type: Node
      item_type: struct
      name: Name
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      item_type: struct
      name: Dot
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*value'
        type: char
      item_type: struct
      name: Character
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*value'
        type: char
      item_type: struct
      name: String
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*value'
        type: unsigned char
      item_type: struct
      name: Class
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*text'
        type: char
      - name: '*list'
        type: Node
      - name: '*name'
        type: char
      - name: '*rule'
        type: Node
      item_type: struct
      name: Action
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*text'
        type: char
      item_type: struct
      name: Predicate
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*element'
        type: Node
      - name: '*text'
        type: char
      item_type: struct
      name: Error
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*first'
        type: Node
      - name: '*last'
        type: Node
      item_type: struct
      name: Alternate
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*first'
        type: Node
      - name: '*last'
        type: Node
      item_type: struct
      name: Sequence
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*element'
        type: Node
      item_type: struct
      name: PeekFor
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*element'
        type: Node
      item_type: struct
      name: PeekNot
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*element'
        type: Node
      item_type: struct
      name: Query
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*element'
        type: Node
      item_type: struct
      name: Star
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      - name: '*element'
        type: Node
      item_type: struct
      name: Plus
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    - fields:
      - name: type
        type: int
      - name: '*next'
        type: Node
      item_type: struct
      name: Any
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
    typedefs:
    - item_type: typedef
      name: Node
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
      type: Node
    union:
    - fields:
      - name: type
        type: int
      - name: rule
        type: struct Rule
      - name: variable
        type: struct Variable
      - name: name
        type: struct Name
      - name: dot
        type: struct Dot
      - name: character
        type: struct Character
      - name: string
        type: struct String
      - name: cclass
        type: struct Class
      - name: action
        type: struct Action
      - name: predicate
        type: struct Predicate
      - name: error
        type: struct Error
      - name: alternate
        type: struct Alternate
      - name: sequence
        type: struct Sequence
      - name: peekFor
        type: struct PeekFor
      - name: peekNot
        type: struct PeekNot
      - name: query
        type: struct Query
      - name: star
        type: struct Star
      - name: plus
        type: struct Plus
      - name: any
        type: struct Any
      item_type: union
      name: Node
      pos:
        line_end: 69
        line_start: 48
        source_file: /src/core/3rdparty/peg-0.1.15/src/tree.h
- function_names: []
  source_file: /src/core/3rdparty/peg-0.1.15/win/unistd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: optreset
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.h
      type_or_value: __mingw_optreset
    - item_type: preproc_def
      name: HAVE_DECL_GETOPT
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: has_arg
        type: int
      - name: '*flag'
        type: int
      - name: val
        type: int
      item_type: struct
      name: option
      pos:
        line_end: 67
        line_start: 61
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.h
    typedefs: []
    union: []
- function_names:
  - _vwarnx
  - warnx
  - gcd
  - permute_args
  - parse_long_options
  - IDENTICAL_INTERPRETATION
  - getopt_internal
  - getopt
  - getopt_long
  - getopt_long_only
  source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: optreset
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: __mingw_optreset
    - item_type: preproc_def
      name: PRINT_ERROR
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: ((opterr) && (*options != ':'))
    - item_type: preproc_def
      name: FLAG_PERMUTE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: FLAG_ALLARGS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: FLAG_LONGONLY
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: "0x04\t"
    - item_type: preproc_def
      name: BADCH
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: (int)'?'
    - item_type: preproc_def
      name: BADARG
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: '((*options == '':'') ? (int)'':'' : (int)''?'')'
    - item_type: preproc_def
      name: INORDER
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: (int)1
    - item_type: preproc_def
      name: __progname
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: __argv[0]
    - item_type: preproc_def
      name: EMSG
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/core/3rdparty/peg-0.1.15/win/getopt.c
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names:
  - basename
  source_file: /src/core/3rdparty/peg-0.1.15/win/libgen.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/core/3rdparty/peg-0.1.15/examples/test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - push
  - pop
  - main
  source_file: /src/core/3rdparty/peg-0.1.15/examples/dc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/core/3rdparty/peg-0.1.15/examples/accept.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - YY_INPUT
  - main
  source_file: /src/core/3rdparty/peg-0.1.15/examples/left.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - push
  - pop
  - top
  - main
  source_file: /src/core/3rdparty/peg-0.1.15/examples/dcv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/core/3rdparty/peg-0.1.15/examples/localpeg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/core/3rdparty/peg-0.1.15/examples/rule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - good_int
  - bad_int
  - good_with_variable
  - bad_with_variable
  - good_with_constant
  - bad_with_constant
  - good_with_function
  - bad_with_function
  - good_with_comparison
  - main
  source_file: /src/core/.github/codeql/cpp-queries/bool-type-mismatch-return.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - good_with_assert
  - good_with_no_deref
  - good_with_if
  - bad_deref
  - main
  source_file: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*string'
        type: char
      item_type: struct
      name: StructWithString
      pos:
        line_end: 4
        line_start: 2
        source_file: /src/core/.github/codeql/cpp-queries/missing-argument-null-check.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-upgrade/command_line.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMMAND_LINE_OPTIONS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/core/cf-upgrade/command_line.h
      type_or_value: (10 + CF_UPGRADE_MAX_ARGUMENTS)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-upgrade/log.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-upgrade/alloc-mini.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CheckResult
  - xmalloc
  - xcalloc
  - xstrdup
  source_file: /src/core/cf-upgrade/alloc-mini.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ConfigurationNew
  - ConfigurationDestroy
  - ConfigurationBackupTool
  - ConfigurationSetBackupTool
  - ConfigurationBackupPath
  - ConfigurationSetBackupPath
  - ConfigurationCopy
  - ConfigurationSetCopy
  - ConfigurationCFUpgrade
  - ConfigurationSetCFUpgrade
  - ConfigurationCFEnginePath
  - ConfigurationSetCFEnginePath
  - ConfigurationCommand
  - ConfigurationArgument
  - ConfigurationAddArgument
  - ConfigurationNumberOfArguments
  - ConfigurationPerformUpdate
  - ConfigurationSetPerformUpdate
  - ConfigurationVersion
  - ConfigurationSetVersion
  - ConfigurationHelp
  - ConfigurationSetHelp
  source_file: /src/core/cf-upgrade/configuration.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_UPGRADE_COPY
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/cf-upgrade/configuration.c
      type_or_value: '"/tmp/cf-upgrade"'
    - item_type: preproc_def
      name: CF_UPGRADE_CFENGINE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/cf-upgrade/configuration.c
      type_or_value: '"/var/cfengine/"'
    structs:
    - fields:
      - name: '*cf_upgrade'
        type: char
      - name: '*backup_tool'
        type: char
      - name: '*backup_path'
        type: char
      - name: '*copy_path'
        type: char
      - name: '*cfengine_path'
        type: char
      - name: number_of_arguments
        type: int
      - name: perform_update
        type: bool
      - name: '*arguments[CF_UPGRADE_MAX_ARGUMENTS]'
        type: char
      - name: help
        type: bool
      - name: version
        type: bool
      item_type: struct
      name: Configuration
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/core/cf-upgrade/configuration.c
    typedefs: []
    union: []
- function_names:
  - private_copy_to_temporary_location
  - private_copy_to_temporary_location
  - copy_to_temporary_location
  - perform_backup
  - perform_restore
  - RunUpdate
  source_file: /src/core/cf-upgrade/update.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-upgrade/update.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - prepare_message
  - write_console_log_entry
  - write_file_log_entry
  - private_log_init
  - logInit
  - logFinish
  - log_entry
  source_file: /src/core/cf-upgrade/log.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LOG_ENTRY_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/core/cf-upgrade/log.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse
  source_file: /src/core/cf-upgrade/command_line.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COPY_PARAM
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/core/cf-upgrade/command_line.c
      type_or_value: '"-c"'
    - item_type: preproc_def
      name: BACKUP_TOOL_PARAM
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/core/cf-upgrade/command_line.c
      type_or_value: '"-b"'
    - item_type: preproc_def
      name: BACKUP_PATH_PARAM
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/core/cf-upgrade/command_line.c
      type_or_value: '"-s"'
    - item_type: preproc_def
      name: CFENGINE_PATH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/core/cf-upgrade/command_line.c
      type_or_value: '"-f"'
    - item_type: preproc_def
      name: UPDATE_ARGS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/core/cf-upgrade/command_line.c
      type_or_value: '"-i"'
    - item_type: preproc_def
      name: UPDATE_2ND_ARGS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/core/cf-upgrade/command_line.c
      type_or_value: '"-x"'
    - item_type: preproc_def
      name: HELP_REQUESTED
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/core/cf-upgrade/command_line.c
      type_or_value: '"-h"'
    - item_type: preproc_def
      name: VERSION_REQUESTED
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/core/cf-upgrade/command_line.c
      type_or_value: '"-v"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - private_run_process_replace
  - private_run_process_wait
  - args_to_command_line
  - private_run_process_replace
  - private_run_process_wait
  - run_process_replace
  - run_process_wait
  source_file: /src/core/cf-upgrade/process.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/core/cf-upgrade/process.c
      type_or_value: _WIN32_WINNT_WINXP
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/core/cf-upgrade/cf-upgrade.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_UPGRADE_VERSION
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/core/cf-upgrade/cf-upgrade.c
      type_or_value: '"1.0.0"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - RUN_PROCESS_FAILURE
  source_file: /src/core/cf-upgrade/process.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RUN_PROCESS_FAILURE_VALUE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/core/cf-upgrade/process.h
      type_or_value: '-10'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/core/cf-upgrade/configuration.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CF_UPGRADE_MAX_ARGUMENTS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/core/cf-upgrade/configuration.h
      type_or_value: '32'
    structs: []
    typedefs:
    - item_type: typedef
      name: Configuration
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/core/cf-upgrade/configuration.h
      type: Configuration
    union: []
- function_names:
  - GetIPAddress
  - GetHostRSAKey
  - ReadPrivateKey
  - ReadPublicKey
  - OpenInputOutput
  - RSAEncrypt
  - CheckHeader
  - ReadUntilDelim
  - SkipSpaces
  - ParseHeader
  - ParseHeaders
  - RSADecrypt
  - LoadPublicKeys
  - CFKeyCryptHelp
  - CFKeyCryptMan
  - main
  source_file: /src/core/cf-secret/cf-secret.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/core/cf-secret/cf-secret.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_HEADER_LEN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/core/cf-secret/cf-secret.c
      type_or_value: '256      '
    - item_type: preproc_def
      name: MAX_HEADER_KEY_LEN
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/core/cf-secret/cf-secret.c
      type_or_value: '126'
    - item_type: preproc_def
      name: MAX_HEADER_VAL_LEN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/core/cf-secret/cf-secret.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/librsync/tests/checksum_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/librsync/tests/rabinkarp_perf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/librsync/tests/sumset_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/librsync/tests/isprefix_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mykey_init
  - mykey_hash
  - mykey_cmp
  - myentry_init
  - mymatch_init
  - mymatch_cmp
  - main
  source_file: /src/librsync/tests/hashtable_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENTRY
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/librsync/tests/hashtable_test.c
      type_or_value: mykey
    - item_type: preproc_def
      name: ENTRY
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/librsync/tests/hashtable_test.c
      type_or_value: myentry
    - item_type: preproc_def
      name: KEY
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/librsync/tests/hashtable_test.c
      type_or_value: mykey
    - item_type: preproc_def
      name: MATCH
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/librsync/tests/hashtable_test.c
      type_or_value: mymatch
    - item_type: preproc_def
      name: NAME
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/librsync/tests/hashtable_test.c
      type_or_value: myhashtable
    structs:
    - fields:
      - name: key
        type: mykey_t
      - name: value
        type: int
      item_type: struct
      name: myentry
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/librsync/tests/hashtable_test.c
    - fields:
      - name: key
        type: mykey_t
      - name: value
        type: int
      - name: source
        type: int
      item_type: struct
      name: mymatch
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/librsync/tests/hashtable_test.c
    typedefs:
    - item_type: typedef
      name: mykey_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/librsync/tests/hashtable_test.c
      type: int
    union: []
- function_names:
  - main
  source_file: /src/librsync/tests/rabinkarp_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/librsync/tests/netint_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/librsync/tests/rollsum_test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/prototab.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: kind
        type: enum rs_op_kind
      - name: immediate
        type: int
      - name: len_1
        type: int
      item_type: struct
      name: rs_prototab_ent
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/librsync/src/prototab.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/librsync_export.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBRSYNC_EXPORT
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/librsync/src/librsync_export.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: LIBRSYNC_EXPORT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/librsync/src/librsync_export.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: LIBRSYNC_EXPORT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/librsync/src/librsync_export.h
      type_or_value: __attribute__((visibility("default")))
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_log_stats
  - rs_format_stats
  source_file: /src/librsync/src/stats.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - isprefix
  source_file: /src/librsync/src/isprefix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DO1
  - DO2
  - DO4
  - DO8
  - DO16
  - RollsumUpdate
  source_file: /src/librsync/src/rollsum.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/command.h
  types:
    enum:
    - enumerators:
      - name: RS_KIND_END
        value: '1000'
      - name: RS_KIND_CHECKSUM
      - name: RS_KIND_COPY
      - name: RS_KIND_LITERAL
      - name: RS_KIND_SIGNATURE
      - name: RS_KIND_RESERVED
      - name: RS_KIND_INVALID
      item_type: enum
      name: rs_op_kind
      pos:
        line_end: 43
        line_start: 32
        source_file: /src/librsync/src/command.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: kind
        type: enum rs_op_kind
      item_type: struct
      name: rs_op_kind_name
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/librsync/src/command.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/whole.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - weaksum_reset
  - weaksum_init
  - weaksum_count
  - weaksum_update
  - weaksum_rotate
  - weaksum_rollin
  - weaksum_rollout
  - weaksum_digest
  source_file: /src/librsync/src/checksum.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: kind
        type: weaksum_kind_t
      - name: sum
        type: "union {\n        Rollsum rs;\n        rabinkarp_t rk;\n    }"
      item_type: struct
      name: weaksum
      pos:
        line_end: 61
        line_start: 55
        source_file: /src/librsync/src/checksum.h
    typedefs: []
    union: []
- function_names:
  - rs_hexify
  source_file: /src/librsync/src/hex.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_job_check
  source_file: /src/librsync/src/job.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RS_JOB_TAG
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/librsync/src/job.h
      type_or_value: '20010225'
    - item_type: preproc_def
      name: MAX_DELTA_CMD
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/librsync/src/job.h
      type_or_value: (1<<16)
    structs:
    - fields:
      - name: dogtag
        type: int
      - name: '*job_name'
        type: char
      - name: '*stream'
        type: rs_buffers_t
      - name: (*statefn)(rs_job_t *)
        type: rs_result
      - name: final_result
        type: rs_result
      - name: sig_magic
        type: int
      - name: sig_block_len
        type: int
      - name: sig_strong_len
        type: int
      - name: sig_fsize
        type: rs_long_t
      - name: '*signature'
        type: rs_signature_t
      - name: job_owns_sig
        type: int
      - name: op
        type: unsigned char
      - name: weak_sig
        type: rs_weak_sum_t
      - name: weak_sum
        type: weaksum_t
      - name: param1
        type: rs_long_t
      - name: '*cmd'
        type: struct rs_prototab_ent
      - name: output_md4
        type: rs_mdfour_t
      - name: stats
        type: rs_stats_t
      - name: '*scoop_buf'
        type: rs_byte_t
      - name: '*scoop_next'
        type: rs_byte_t
      - name: scoop_alloc
        type: size_t
      - name: scoop_avail
        type: size_t
      - name: '*scan_buf'
        type: rs_byte_t
      - name: scan_len
        type: size_t
      - name: scan_pos
        type: size_t
      - name: write_buf[36]
        type: rs_byte_t
      - name: write_len
        type: size_t
      - name: copy_len
        type: size_t
      - name: basis_pos
        type: rs_long_t
      - name: '*copy_cb'
        type: rs_copy_cb
      - name: '*copy_arg'
        type: void
      item_type: struct
      name: rs_job
      pos:
        line_end: 121
        line_start: 46
        source_file: /src/librsync/src/job.h
    typedefs: []
    union: []
- function_names:
  - _hashtable_new
  - _hashtable_free
  source_file: /src/librsync/src/hashtable.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASHTABLE_LOADFACTOR_NUM
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/librsync/src/hashtable.c
      type_or_value: '7'
    - item_type: preproc_def
      name: HASHTABLE_LOADFACTOR_DEN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/librsync/src/hashtable.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_scoop_avail
  - rs_scoop_eof
  - rs_scoop_buf
  - rs_scoop_len
  - rs_scoop_getbuf
  - rs_scoop_iterbuf
  - rs_scoop_nextbuf
  source_file: /src/librsync/src/scoop.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_sig_args_check
  - rs_signature_check
  - rs_signature_weaksum_kind
  - rs_signature_strongsum_kind
  - rs_signature_calc_weak_sum
  - rs_signature_calc_strong_sum
  source_file: /src/librsync/src/sumset.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: weak_sum
        type: rs_weak_sum_t
      - name: strong_sum
        type: rs_strong_sum_t
      item_type: struct
      name: rs_block_sig
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/librsync/src/sumset.h
    - fields:
      - name: magic
        type: int
      - name: block_len
        type: int
      - name: strong_sum_len
        type: int
      - name: count
        type: int
      - name: size
        type: int
      - name: '*block_sigs'
        type: void
      - name: '*hashtable'
        type: hashtable_t
      item_type: struct
      name: rs_signature
      pos:
        line_end: 55
        line_start: 43
        source_file: /src/librsync/src/sumset.h
    typedefs: []
    union: []
- function_names:
  - fopen
  - fseek
  - fseek
  - fseek
  - fstat
  - fstat
  - S_ISREG
  - fileno
  - rs_file_open
  - rs_file_close
  - rs_file_size
  - rs_file_copy_cb
  source_file: /src/librsync/src/fileutil.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/librsync/src/fileutil.c
      type_or_value: stat64
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/librsync/src/fileutil.c
      type_or_value: _stati64
    structs: []
    typedefs: []
    union: []
- function_names:
  - RollsumInit
  - RollsumRotate
  - RollsumRollin
  - RollsumRollout
  - RollsumDigest
  source_file: /src/librsync/src/rollsum.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROLLSUM_CHAR_OFFSET
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/librsync/src/rollsum.h
      type_or_value: '31'
    structs:
    - fields:
      - name: count
        type: size_t
      - name: s1
        type: uint_fast16_t
      - name: s2
        type: uint_fast16_t
      item_type: struct
      name: Rollsum
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/librsync/src/rollsum.h
    typedefs: []
    union: []
- function_names:
  - rs_alloc_struct
  - UNUSED
  - UNUSED
  - UNUSED
  source_file: /src/librsync/src/util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_squirt_byte
  - rs_squirt_netint
  - rs_squirt_n4
  - rs_suck_byte
  - rs_suck_netint
  - rs_suck_n4
  - rs_int_len
  source_file: /src/librsync/src/netint.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RS_MAX_INT_BYTES
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/librsync/src/netint.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/prototab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_sig_s_header
  - rs_sig_do_block
  - rs_sig_s_generate
  - rs_sig_begin
  source_file: /src/librsync/src/mksum.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_bzero
  - rs_alloc_struct0
  - rs_alloc
  - rs_realloc
  - rs_long_ln2
  - rs_long_sqrt
  source_file: /src/librsync/src/util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_block_sig_init
  - rs_block_sig_hash
  - rs_block_match_init
  - rs_block_match_cmp
  - rs_block_sig_size
  - rs_block_sig_ptr
  - rs_block_sig_idx
  - rs_sig_args
  - rs_signature_init
  - rs_signature_done
  - rs_signature_add_block
  - rs_signature_find_match
  - rs_signature_log_stats
  - rs_build_hash_table
  - rs_free_sumset
  - rs_sumset_dump
  source_file: /src/librsync/src/sumset.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENTRY
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/librsync/src/sumset.c
      type_or_value: rs_block_sig
    - item_type: preproc_def
      name: MATCH
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/librsync/src/sumset.c
      type_or_value: rs_block_match
    - item_type: preproc_def
      name: NAME
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/librsync/src/sumset.c
      type_or_value: hashtable
    structs:
    - fields:
      - name: block_sig
        type: rs_block_sig_t
      - name: '*signature'
        type: rs_signature_t
      - name: '*buf'
        type: void
      - name: len
        type: size_t
      item_type: struct
      name: rs_block_match
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/librsync/src/sumset.c
    typedefs: []
    union: []
- function_names:
  - rs_whole_run
  - rs_sig_file
  - rs_loadsig_file
  - rs_delta_file
  - rs_patch_file
  source_file: /src/librsync/src/whole.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/mdfour.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: A
        type: unsigned int
      - name: tail_len
        type: int
      - name: tail[64]
        type: unsigned char
      item_type: struct
      name: rs_mdfour
      pos:
        line_end: 54
        line_start: 45
        source_file: /src/librsync/src/mdfour.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/emit.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_job_new
  - rs_job_free
  - rs_job_complete
  - rs_job_iter
  - rs_job_work
  - rs_job_statistics
  - rs_job_drive
  source_file: /src/librsync/src/job.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_unbase64
  - rs_base64
  source_file: /src/librsync/src/base64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hashtable_setbloom
  - hashtable_getbloom
  - mix32
  - nozero
  - _JOIN2
  - _JOIN
  - _KEY_HASH
  - _KEY_HASH
  - _for_probe
  - _stats_inc
  - NAME_new
  - NAME_free
  - NAME_stats_init
  - NAME_add
  - NAME_find
  - _for_probe
  - NAME_iter
  - NAME_next
  source_file: /src/librsync/src/hashtable.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KEY
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/librsync/src/hashtable.h
      type_or_value: ENTRY
    - item_type: preproc_def
      name: MATCH
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/librsync/src/hashtable.h
      type_or_value: KEY
    - item_type: preproc_def
      name: NAME
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/librsync/src/hashtable.h
      type_or_value: _JOIN(ENTRY, _hashtable)
    - item_type: preproc_def
      name: ENTRY_t
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/librsync/src/hashtable.h
      type_or_value: '_JOIN(ENTRY, _t)      '
    - item_type: preproc_def
      name: KEY_t
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/librsync/src/hashtable.h
      type_or_value: '_JOIN(KEY, _t)  '
    - item_type: preproc_def
      name: MATCH_t
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/librsync/src/hashtable.h
      type_or_value: '_JOIN(MATCH, _t)      '
    - item_type: preproc_def
      name: KEY_hash
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/librsync/src/hashtable.h
      type_or_value: '_JOIN(KEY, _hash)    '
    - item_type: preproc_def
      name: MATCH_cmp
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/librsync/src/hashtable.h
      type_or_value: '_JOIN(MATCH, _cmp)  '
    - item_type: preproc_def
      name: NAME_new
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/librsync/src/hashtable.h
      type_or_value: _JOIN(NAME, _new)
    - item_type: preproc_def
      name: NAME_free
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/librsync/src/hashtable.h
      type_or_value: _JOIN(NAME, _free)
    - item_type: preproc_def
      name: NAME_stats_init
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/librsync/src/hashtable.h
      type_or_value: _JOIN(NAME, _stats_init)
    - item_type: preproc_def
      name: NAME_add
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/librsync/src/hashtable.h
      type_or_value: _JOIN(NAME, _add)
    - item_type: preproc_def
      name: NAME_find
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/librsync/src/hashtable.h
      type_or_value: _JOIN(NAME, _find)
    - item_type: preproc_def
      name: NAME_iter
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/librsync/src/hashtable.h
      type_or_value: _JOIN(NAME, _iter)
    - item_type: preproc_def
      name: NAME_next
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/librsync/src/hashtable.h
      type_or_value: _JOIN(NAME, _next)
    structs:
    - fields:
      - name: size
        type: int
      - name: count
        type: int
      - name: tmask
        type: unsigned
      - name: '**etable'
        type: void
      - name: ktable[]
        type: unsigned
      item_type: struct
      name: hashtable
      pos:
        line_end: 146
        line_start: 127
        source_file: /src/librsync/src/hashtable.h
    typedefs: []
    union: []
- function_names:
  - rs_scoop_input
  - rs_scoop_advance
  - rs_scoop_readahead
  - rs_scoop_read
  - rs_scoop_read_rest
  source_file: /src/librsync/src/scoop.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_delta_s_scan
  - rs_delta_s_flush
  - rs_delta_s_end
  - rs_getinput
  - rs_findmatch
  - rs_appendmatch
  - rs_appendmiss
  - rs_appendflush
  - rs_processmatch
  - rs_processmiss
  - rs_delta_s_slack
  - rs_delta_s_header
  - rs_delta_begin
  source_file: /src/librsync/src/delta.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_MISS_LEN
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/librsync/src/delta.c
      type_or_value: (MAX_DELTA_CMD - 3)
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_filebuf_new
  - rs_filebuf_free
  - rs_infilebuf_fill
  - rs_outfilebuf_drain
  source_file: /src/librsync/src/buf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*f'
        type: FILE
      - name: '*buf'
        type: char
      - name: buf_len
        type: size_t
      item_type: struct
      name: rs_filebuf
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/librsync/src/buf.c
    typedefs: []
    union: []
- function_names:
  - rs_strerror
  source_file: /src/librsync/src/msg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PAR2X1
  - PAR2X2
  - PAR2X4
  - PAR2X8
  - rabinkarp_pow
  - rabinkarp_update
  source_file: /src/librsync/src/rabinkarp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RABINKARP_MULT2
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/librsync/src/rabinkarp.c
      type_or_value: 0xa5b71959U
    structs: []
    typedefs: []
    union: []
- function_names:
  - rdiff_usage
  - rdiff_no_more_args
  - bad_option
  - help
  - rdiff_show_version
  - rdiff_options
  - rdiff_sig
  - rdiff_delta
  - rdiff_patch
  - rdiff_action
  - main
  source_file: /src/librsync/src/rdiff.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_emit_delta_header
  - rs_emit_literal_cmd
  - rs_emit_copy_cmd
  - rs_emit_end_cmd
  source_file: /src/librsync/src/emit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_op_kind_name
  source_file: /src/librsync/src/command.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/librsync.h
  types:
    enum:
    - enumerators:
      - name: RS_DONE
        value: '0'
      - name: RS_RUNNING
        value: '2'
      - name: RS_IO_ERROR
        value: '100'
      - name: RS_BLOCKED
        value: '1'
      - name: RS_TEST_SKIPPED
        value: '77'
      - name: RS_SYNTAX_ERROR
        value: '101'
      - name: RS_MEM_ERROR
        value: '102'
      - name: RS_INPUT_ENDED
        value: '103'
      - name: RS_BAD_MAGIC
        value: '104'
      - name: RS_UNIMPLEMENTED
        value: '105'
      - name: RS_INTERNAL_ERROR
        value: '107'
      - name: RS_PARAM_ERROR
        value: '108'
      - name: RS_CORRUPT
        value: '106'
      item_type: enum
      name: rs_result
      pos:
        line_end: 201
        line_start: 179
        source_file: /src/librsync/src/librsync.h
    preproc_defs:
    - item_type: preproc_def
      name: RS_MAX_STRONG_SUM_LENGTH
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/librsync/src/librsync.h
      type_or_value: '32'
    - item_type: preproc_def
      name: RS_DEFAULT_BLOCK_LEN
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/librsync/src/librsync.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: RS_DEFAULT_MIN_STRONG_LEN
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/librsync/src/librsync.h
      type_or_value: '12'
    structs:
    - fields:
      - name: '*op'
        type: char
      - name: lit_cmds
        type: int
      - name: lit_bytes
        type: rs_long_t
      - name: lit_cmdbytes
        type: rs_long_t
      - name: copy_cmds
        type: rs_long_t
      - name: sig_cmds
        type: rs_long_t
      - name: false_matches
        type: int
      - name: sig_blocks
        type: rs_long_t
      - name: block_len
        type: size_t
      - name: in_bytes
        type: rs_long_t
      - name: out_bytes
        type: rs_long_t
      - name: start
        type: time_t
      item_type: struct
      name: rs_stats
      pos:
        line_end: 230
        line_start: 209
        source_file: /src/librsync/src/librsync.h
    - fields:
      - name: '*next_in'
        type: char
      - name: avail_in
        type: size_t
      - name: eof_in
        type: int
      - name: '*next_out'
        type: char
      - name: avail_out
        type: size_t
      item_type: struct
      name: rs_buffers_s
      pos:
        line_end: 357
        line_start: 327
        source_file: /src/librsync/src/librsync.h
    typedefs:
    - item_type: typedef
      name: rs_byte_t
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/librsync/src/librsync.h
      type: uint8_t
    - item_type: typedef
      name: rs_long_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/librsync/src/librsync.h
      type: intmax_t
    - item_type: typedef
      name: rs_trace_fn_t(rs_loglevel level, char const *msg)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/librsync/src/librsync.h
      type: void
    - item_type: typedef
      name: rs_mdfour_t
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/librsync/src/librsync.h
      type: rs_mdfour
    - item_type: typedef
      name: rs_weak_sum_t
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/librsync/src/librsync.h
      type: uint32_t
    - item_type: typedef
      name: rs_strong_sum_t[RS_MAX_STRONG_SUM_LENGTH]
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/librsync/src/librsync.h
      type: unsigned char
    - item_type: typedef
      name: rs_signature_t
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/librsync/src/librsync.h
      type: rs_signature
    - item_type: typedef
      name: rs_buffers_t
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/librsync/src/librsync.h
      type: rs_buffers_s
    - item_type: typedef
      name: rs_job_t
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/librsync/src/librsync.h
      type: rs_job
    - item_type: typedef
      name: "rs_driven_cb(rs_job_t *job, rs_buffers_t *buf,\n                               void
        *opaque)"
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/librsync/src/librsync.h
      type: rs_result
    - item_type: typedef
      name: "rs_copy_cb(void *opaque, rs_long_t pos, size_t *len,\n                             void
        **buf)"
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/librsync/src/librsync.h
      type: rs_result
    union: []
- function_names: []
  source_file: /src/librsync/src/isprefix.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_calc_weak_sum
  - rs_calc_strong_sum
  source_file: /src/librsync/src/checksum.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - F
  - G
  - H
  - lshift
  - ROUND1
  - ROUND2
  - ROUND3
  - rs_mdfour64
  - copy4
  - copy8
  - copy64
  - rs_mdfour_block
  - rs_mdfour_block
  - rs_mdfour_block
  - rs_mdfour_begin
  - rs_mdfour_tail
  - rs_mdfour_update
  - rs_mdfour_result
  - rs_mdfour
  source_file: /src/librsync/src/mdfour.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/netint.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rabinkarp_init
  - rabinkarp_rotate
  - rabinkarp_rollin
  - rabinkarp_rollout
  - rabinkarp_digest
  source_file: /src/librsync/src/rabinkarp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RABINKARP_SEED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/librsync/src/rabinkarp.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RABINKARP_MULT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/librsync/src/rabinkarp.h
      type_or_value: 0x08104225U
    - item_type: preproc_def
      name: RABINKARP_INVM
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/librsync/src/rabinkarp.h
      type_or_value: 0x98f009adU
    - item_type: preproc_def
      name: RABINKARP_ADJ
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/librsync/src/rabinkarp.h
      type_or_value: 0x08104224U
    structs:
    - fields:
      - name: count
        type: size_t
      - name: hash
        type: uint32_t
      - name: mult
        type: uint32_t
      item_type: struct
      name: rabinkarp
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/librsync/src/rabinkarp.h
    typedefs: []
    union: []
- function_names:
  - rs_tube_catchup_write
  - rs_tube_catchup_copy
  - rs_tube_catchup
  - rs_tube_is_idle
  - rs_tube_copy
  - rs_tube_write
  source_file: /src/librsync/src/tube.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_loadsig_add_sum
  - rs_loadsig_s_weak
  - rs_loadsig_s_strong
  - rs_loadsig_s_stronglen
  - rs_loadsig_s_blocklen
  - rs_loadsig_s_magic
  - rs_loadsig_begin
  source_file: /src/librsync/src/readsums.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_patch_s_cmdbyte
  - rs_patch_s_params
  - rs_patch_s_run
  - rs_patch_s_literal
  - rs_patch_s_copy
  - rs_patch_s_copying
  - rs_patch_s_header
  - rs_patch_begin
  source_file: /src/librsync/src/patch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_trace_enabled
  - rs_trace
  - rs_trace_enabled
  - rs_log
  - rs_warn
  - rs_error
  - rs_fatal
  source_file: /src/librsync/src/trace.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FMT_LONG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/librsync/src/trace.h
      type_or_value: '"%"PRIdMAX'
    - item_type: preproc_def
      name: FMT_WEAKSUM
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/librsync/src/trace.h
      type_or_value: '"%08"PRIx32'
    - item_type: preproc_def
      name: FMT_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/librsync/src/trace.h
      type_or_value: '"%zu"'
    - item_type: preproc_def
      name: FMT_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/librsync/src/trace.h
      type_or_value: '"%Iu"'
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/librsync/src/trace.h
      type_or_value: __FUNCTION__
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/librsync/src/trace.h
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rs_trace_to
  - rs_trace_set_level
  - rs_log_va
  - rs_log0
  - rs_trace_stderr
  - rs_supports_trace
  source_file: /src/librsync/src/trace.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MY_NAME
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/librsync/src/trace.c
      type_or_value: '"librsync"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/librsync/src/buf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: rs_filebuf_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/librsync/src/buf.h
      type: rs_filebuf
    union: []
- function_names:
  - load32
  - load64
  - load16
  - store16
  - store32
  - store64
  - load48
  - store48
  - rotr32
  - rotr64
  - secure_zero_memory
  source_file: /src/librsync/src/blake2/blake2-impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLAKE2_INLINE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/librsync/src/blake2/blake2-impl.h
      type_or_value: __inline
    - item_type: preproc_def
      name: BLAKE2_INLINE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/librsync/src/blake2/blake2-impl.h
      type_or_value: __inline__
    - item_type: preproc_def
      name: BLAKE2_INLINE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/librsync/src/blake2/blake2-impl.h
      type_or_value: inline
    structs: []
    typedefs: []
    union: []
- function_names:
  - blake2b_set_lastnode
  - blake2b_is_lastblock
  - blake2b_set_lastblock
  - blake2b_increment_counter
  - blake2b_init0
  - blake2b_init_param
  - blake2b_init
  - blake2b_init_key
  - G
  - ROUND
  - blake2b_compress
  - blake2b_update
  - blake2b_final
  - blake2b
  - blake2
  - crypto_hash
  - main
  source_file: /src/librsync/src/blake2/blake2b-ref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BLAKE2_PACKED
  - BLAKE2_PACKED
  source_file: /src/librsync/src/blake2/blake2.h
  types:
    enum:
    - enumerators:
      - name: BLAKE2S_BLOCKBYTES
        value: '64'
      - name: BLAKE2S_PERSONALBYTES
        value: '8'
      - name: BLAKE2S_OUTBYTES
        value: '32'
      - name: BLAKE2S_SALTBYTES
        value: '8'
      - name: BLAKE2S_KEYBYTES
        value: '32'
      item_type: enum
      name: blake2s_constant
      pos:
        line_end: 37
        line_start: 30
        source_file: /src/librsync/src/blake2/blake2.h
    - enumerators:
      - name: BLAKE2B_BLOCKBYTES
        value: '128'
      - name: BLAKE2B_OUTBYTES
        value: '64'
      - name: BLAKE2B_SALTBYTES
        value: '16'
      - name: BLAKE2B_KEYBYTES
        value: '64'
      - name: BLAKE2B_PERSONALBYTES
        value: '16'
      item_type: enum
      name: blake2b_constant
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/librsync/src/blake2/blake2.h
    preproc_defs: []
    structs:
    - fields:
      - name: h[8]
        type: uint32_t
      - name: t[2]
        type: uint32_t
      - name: f[2]
        type: uint32_t
      - name: buf[BLAKE2S_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: size_t
      - name: outlen
        type: size_t
      - name: last_node
        type: uint8_t
      item_type: struct
      name: blake2s_state__
      pos:
        line_end: 57
        line_start: 48
        source_file: /src/librsync/src/blake2/blake2.h
    - fields:
      - name: h[8]
        type: uint64_t
      - name: t[2]
        type: uint64_t
      - name: f[2]
        type: uint64_t
      - name: buf[BLAKE2B_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: size_t
      - name: outlen
        type: size_t
      - name: last_node
        type: uint8_t
      item_type: struct
      name: blake2b_state__
      pos:
        line_end: 68
        line_start: 59
        source_file: /src/librsync/src/blake2/blake2.h
    - fields:
      - name: S[8][1]
        type: blake2s_state
      - name: R[1]
        type: blake2s_state
      - name: buf[8 * BLAKE2S_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: size_t
      - name: outlen
        type: size_t
      item_type: struct
      name: blake2sp_state__
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/librsync/src/blake2/blake2.h
    - fields:
      - name: S[4][1]
        type: blake2b_state
      - name: R[1]
        type: blake2b_state
      - name: buf[4 * BLAKE2B_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: size_t
      - name: outlen
        type: size_t
      item_type: struct
      name: blake2bp_state__
      pos:
        line_end: 86
        line_start: 79
        source_file: /src/librsync/src/blake2/blake2.h
    - fields:
      - name: digest_length
        type: uint8_t
      - name: key_length
        type: uint8_t
      - name: fanout
        type: uint8_t
      - name: depth
        type: uint8_t
      - name: leaf_length
        type: uint32_t
      - name: node_offset
        type: uint32_t
      - name: xof_length
        type: uint16_t
      - name: node_depth
        type: uint8_t
      - name: inner_length
        type: uint8_t
      - name: salt[BLAKE2S_SALTBYTES]
        type: uint8_t
      - name: personal[BLAKE2S_PERSONALBYTES]
        type: uint8_t
      item_type: struct
      name: blake2s_param__
      pos:
        line_end: 103
        line_start: 89
        source_file: /src/librsync/src/blake2/blake2.h
    - fields:
      - name: digest_length
        type: uint8_t
      - name: key_length
        type: uint8_t
      - name: fanout
        type: uint8_t
      - name: depth
        type: uint8_t
      - name: leaf_length
        type: uint32_t
      - name: node_offset
        type: uint32_t
      - name: xof_length
        type: uint32_t
      - name: node_depth
        type: uint8_t
      - name: inner_length
        type: uint8_t
      - name: reserved[14]
        type: uint8_t
      - name: salt[BLAKE2B_SALTBYTES]
        type: uint8_t
      - name: personal[BLAKE2B_PERSONALBYTES]
        type: uint8_t
      item_type: struct
      name: blake2b_param__
      pos:
        line_end: 121
        line_start: 107
        source_file: /src/librsync/src/blake2/blake2.h
    - fields:
      - name: S[1]
        type: blake2s_state
      - name: P[1]
        type: blake2s_param
      item_type: struct
      name: blake2xs_state__
      pos:
        line_end: 129
        line_start: 125
        source_file: /src/librsync/src/blake2/blake2.h
    - fields:
      - name: S[1]
        type: blake2b_state
      - name: P[1]
        type: blake2b_param
      item_type: struct
      name: blake2xb_state__
      pos:
        line_end: 135
        line_start: 131
        source_file: /src/librsync/src/blake2/blake2.h
    typedefs:
    - item_type: typedef
      name: blake2s_param
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/librsync/src/blake2/blake2.h
      type: blake2s_param__
    - item_type: typedef
      name: blake2b_param
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/librsync/src/blake2/blake2.h
      type: blake2b_param__
    union: []
- function_names:
  - main
  - accept_connection
  - recv_signature
  - send_delta
  source_file: /src/librsync/examples/stream/server.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - connect_to_server
  - send_signature
  - recv_delta_and_patch_file
  source_file: /src/librsync/examples/stream/client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/librsync/examples/stream/client.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: IP_ADDRESS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/librsync/examples/stream/client.c
      type_or_value: '"127.0.0.1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - send_message
  - recv_message
  source_file: /src/librsync/examples/stream/common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PORT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/librsync/examples/stream/common.h
      type_or_value: '5612'
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/librsync/examples/stream/common.h
      type_or_value: '4095'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRIV
  - PRIV
  source_file: /src/pcre2/src/pcre2_newline.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/pcre2/src/config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_ATTRIBUTE_UNINITIALIZED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_BCOPY
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_DIRENT_H
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_DLFCN_H
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_INTTYPES_H
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LIMITS_H
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MEMFD_CREATE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MEMMOVE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MEMORY_H
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MKOSTEMP
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_REALPATH
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SECURE_GETENV
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDINT_H
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDLIB_H
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRERROR
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRINGS_H
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRING_H
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_STAT_H
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_TYPES_H
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_WAIT_H
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UNISTD_H
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_VISIBILITY
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HEAP_LIMIT
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/pcre2/src/config.h
      type_or_value: '20000000'
    - item_type: preproc_def
      name: LINK_SIZE
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/pcre2/src/config.h
      type_or_value: '2'
    - item_type: preproc_def
      name: LT_OBJDIR
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/config.h
      type_or_value: '".libs/"'
    - item_type: preproc_def
      name: MATCH_LIMIT
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/pcre2/src/config.h
      type_or_value: '10000000'
    - item_type: preproc_def
      name: MATCH_LIMIT_DEPTH
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/config.h
      type_or_value: MATCH_LIMIT
    - item_type: preproc_def
      name: MAX_NAME_COUNT
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/pcre2/src/config.h
      type_or_value: '10000'
    - item_type: preproc_def
      name: MAX_NAME_SIZE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/config.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NEWLINE_DEFAULT
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/pcre2/src/config.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PACKAGE
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/pcre2/src/config.h
      type_or_value: '"pcre2"'
    - item_type: preproc_def
      name: PACKAGE_BUGREPORT
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/pcre2/src/config.h
      type_or_value: '""'
    - item_type: preproc_def
      name: PACKAGE_NAME
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/pcre2/src/config.h
      type_or_value: '"PCRE2"'
    - item_type: preproc_def
      name: PACKAGE_STRING
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/pcre2/src/config.h
      type_or_value: '"PCRE2 10.39"'
    - item_type: preproc_def
      name: PACKAGE_TARNAME
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/pcre2/src/config.h
      type_or_value: '"pcre2"'
    - item_type: preproc_def
      name: PACKAGE_URL
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/pcre2/src/config.h
      type_or_value: '""'
    - item_type: preproc_def
      name: PACKAGE_VERSION
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/pcre2/src/config.h
      type_or_value: '"10.39"'
    - item_type: preproc_def
      name: PARENS_NEST_LIMIT
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/pcre2/src/config.h
      type_or_value: '250'
    - item_type: preproc_def
      name: PCRE2GREP_BUFSIZE
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/pcre2/src/config.h
      type_or_value: '20480'
    - item_type: preproc_def
      name: PCRE2GREP_MAX_BUFSIZE
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/pcre2/src/config.h
      type_or_value: '1048576'
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DECL
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/pcre2/src/config.h
      type_or_value: extern __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DEFN
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/pcre2/src/config.h
      type_or_value: extern __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: PCRE2_EXP_DECL
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/pcre2/src/config.h
      type_or_value: extern __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: PCRE2_EXP_DEFN
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/pcre2/src/config.h
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: STDC_HEADERS
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _ALL_SOURCE
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _GNU_SOURCE
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _POSIX_PTHREAD_SEMANTICS
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _TANDEM_SOURCE
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __EXTENSIONS__
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/pcre2/src/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VERSION
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/pcre2/src/config.h
      type_or_value: '"10.39"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - max_fast_forward_char_pair_offset
  - jump_if_utf_char_start
  - character_to_int32
  - load_from_mem_sse2
  - fast_forward_char_pair_sse2_compare
  - fast_forward_char_simd
  - fast_requested_char_simd
  - fast_forward_char_pair_simd
  - utf_continue
  - VLD1Q
  - VLD1Q
  - VLD1Q
  - fast_forward_char_simd
  - fast_forward_char_pair_compare
  - max_fast_forward_char_pair_offset
  - shift_left_n_lanes
  - C
  - fast_forward_char_pair_simd
  - load_from_mem_vector
  - replicate_imm_vector
  - fast_forward_char_pair_sse2_compare
  - fast_forward_char_simd
  - fast_requested_char_simd
  - fast_forward_char_pair_simd
  source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSE2_COMPARE_TYPE_INDEX
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSE2_COMPARE_TYPE_INDEX
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SSE2_COMPARE_TYPE_INDEX
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: JIT_HAS_FAST_FORWARD_CHAR_SIMD
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: (sljit_has_cpu_feature(SLJIT_HAS_SSE2))
    - item_type: preproc_def
      name: JIT_HAS_FAST_REQUESTED_CHAR_SIMD
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: (sljit_has_cpu_feature(SLJIT_HAS_SSE2))
    - item_type: preproc_def
      name: JIT_HAS_FAST_FORWARD_CHAR_PAIR_SIMD
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: (sljit_has_cpu_feature(SLJIT_HAS_SSE2))
    - item_type: preproc_def
      name: VECTOR_FACTOR
      pos:
        line_end: 792
        line_start: 791
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '16'
    - item_type: preproc_def
      name: vect_t
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: uint8x16_t
    - item_type: preproc_def
      name: VCEQQ
      pos:
        line_end: 795
        line_start: 794
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vceqq_u8
    - item_type: preproc_def
      name: VORRQ
      pos:
        line_end: 796
        line_start: 795
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vorrq_u8
    - item_type: preproc_def
      name: VST1Q
      pos:
        line_end: 797
        line_start: 796
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vst1q_u8
    - item_type: preproc_def
      name: VDUPQ
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vdupq_n_u8
    - item_type: preproc_def
      name: VEXTQ
      pos:
        line_end: 799
        line_start: 798
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vextq_u8
    - item_type: preproc_def
      name: VANDQ
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vandq_u8
    - item_type: preproc_def
      name: VECTOR_FACTOR
      pos:
        line_end: 806
        line_start: 805
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '8'
    - item_type: preproc_def
      name: vect_t
      pos:
        line_end: 807
        line_start: 806
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: uint16x8_t
    - item_type: preproc_def
      name: VCEQQ
      pos:
        line_end: 809
        line_start: 808
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vceqq_u16
    - item_type: preproc_def
      name: VORRQ
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vorrq_u16
    - item_type: preproc_def
      name: VST1Q
      pos:
        line_end: 811
        line_start: 810
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vst1q_u16
    - item_type: preproc_def
      name: VDUPQ
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vdupq_n_u16
    - item_type: preproc_def
      name: VEXTQ
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vextq_u16
    - item_type: preproc_def
      name: VANDQ
      pos:
        line_end: 814
        line_start: 813
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vandq_u16
    - item_type: preproc_def
      name: VECTOR_FACTOR
      pos:
        line_end: 820
        line_start: 819
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '4'
    - item_type: preproc_def
      name: vect_t
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: uint32x4_t
    - item_type: preproc_def
      name: VCEQQ
      pos:
        line_end: 823
        line_start: 822
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vceqq_u32
    - item_type: preproc_def
      name: VORRQ
      pos:
        line_end: 824
        line_start: 823
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vorrq_u32
    - item_type: preproc_def
      name: VST1Q
      pos:
        line_end: 825
        line_start: 824
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vst1q_u32
    - item_type: preproc_def
      name: VDUPQ
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vdupq_n_u32
    - item_type: preproc_def
      name: VEXTQ
      pos:
        line_end: 827
        line_start: 826
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vextq_u32
    - item_type: preproc_def
      name: VANDQ
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: vandq_u32
    - item_type: preproc_def
      name: JIT_HAS_FAST_FORWARD_CHAR_SIMD
      pos:
        line_end: 862
        line_start: 861
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: JIT_HAS_FAST_FORWARD_CHAR_PAIR_SIMD
      pos:
        line_end: 1046
        line_start: 1045
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VECTOR_ELEMENT_SIZE
      pos:
        line_end: 1132
        line_start: 1131
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VECTOR_ELEMENT_SIZE
      pos:
        line_end: 1134
        line_start: 1133
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VECTOR_ELEMENT_SIZE
      pos:
        line_end: 1136
        line_start: 1135
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: JIT_HAS_FAST_FORWARD_CHAR_SIMD
      pos:
        line_end: 1246
        line_start: 1245
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: JIT_HAS_FAST_REQUESTED_CHAR_SIMD
      pos:
        line_end: 1447
        line_start: 1446
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: JIT_HAS_FAST_FORWARD_CHAR_PAIR_SIMD
      pos:
        line_end: 1609
        line_start: 1608
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: x
        type: unsigned int
      - name: c
        type: struct { unsigned char c1, c2, c3, c4; }
      item_type: union
      name: int_char
      pos:
        line_end: 775
        line_start: 772
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
    - fields:
      - name: mem[16]
        type: uint8_t
      - name: dw[2]
        type: uint64_t
      item_type: union
      name: quad_word
      pos:
        line_end: 803
        line_start: 800
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
    - fields:
      - name: mem[8]
        type: uint16_t
      - name: dw[2]
        type: uint64_t
      item_type: union
      name: quad_word
      pos:
        line_end: 817
        line_start: 814
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
    - fields:
      - name: mem[4]
        type: uint32_t
      - name: dw[2]
        type: uint64_t
      item_type: union
      name: quad_word
      pos:
        line_end: 831
        line_start: 828
        source_file: /src/pcre2/src/pcre2_jit_simd_inc.h
- function_names:
  - PUTCHARS
  - convert_posix
  - convert_glob_write
  - convert_glob_write_str
  - convert_glob_print_separator
  - convert_glob_print_wildcard
  - convert_glob_parse_class
  - convert_glob_char_in_class
  - convert_glob_parse_range
  - convert_glob_print_commit
  - convert_glob
  - pcre2_pattern_convert
  - pcre2_converted_pattern_free
  source_file: /src/pcre2/src/pcre2_convert.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TYPE_OPTIONS
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: "(PCRE2_CONVERT_GLOB| \\\n  PCRE2_CONVERT_POSIX_BASIC|PCRE2_CONVERT_POSIX_EXTENDED)"
    - item_type: preproc_def
      name: ALL_OPTIONS
      pos:
        line_end: 54
        line_start: 50
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: "(PCRE2_CONVERT_UTF|PCRE2_CONVERT_NO_UTF_CHECK| \\\n  PCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR|
        \\\n  PCRE2_CONVERT_GLOB_NO_STARSTAR| \\\n  TYPE_OPTIONS)"
    - item_type: preproc_def
      name: DUMMY_BUFFER_SIZE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: '100'
    - item_type: preproc_def
      name: STR_BACKSLASH_A
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: STR_BACKSLASH STR_A
    - item_type: preproc_def
      name: STR_BACKSLASH_z
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: STR_BACKSLASH STR_z
    - item_type: preproc_def
      name: STR_COLON_RIGHT_SQUARE_BRACKET
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: STR_COLON STR_RIGHT_SQUARE_BRACKET
    - item_type: preproc_def
      name: STR_DOT_STAR_LOOKBEHIND
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: STR_DOT STR_ASTERISK STR_LEFT_PARENTHESIS STR_QUESTION_MARK STR_LESS_THAN_SIGN
        STR_EQUALS_SIGN
    - item_type: preproc_def
      name: STR_LOOKAHEAD_NOT_DOT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: STR_LEFT_PARENTHESIS STR_QUESTION_MARK STR_EXCLAMATION_MARK STR_BACKSLASH
        STR_DOT STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STR_QUERY_s
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: STR_LEFT_PARENTHESIS STR_QUESTION_MARK STR_s STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STR_STAR_NUL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/pcre2/src/pcre2_convert.c
      type_or_value: STR_LEFT_PARENTHESIS STR_ASTERISK STR_N STR_U STR_L STR_RIGHT_PARENTHESIS
    structs:
    - fields:
      - name: '*output'
        type: PCRE2_UCHAR
      - name: output_end
        type: PCRE2_SPTR
      - name: output_size
        type: PCRE2_SIZE
      - name: out_str[8]
        type: uint8_t
      item_type: struct
      name: pcre2_output_context
      pos:
        line_end: 373
        line_start: 368
        source_file: /src/pcre2/src/pcre2_convert.c
    typedefs: []
    union: []
- function_names:
  - STRING
  - XSTRING
  source_file: /src/pcre2/src/pcre2_error.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PCRE2_CALL_CONVENTION::pcre2_maketables
  - pcre2_maketables_free
  source_file: /src/pcre2/src/pcre2_maketables.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pcre2_pattern_info
  - pcre2_callout_enumerate
  source_file: /src/pcre2/src/pcre2_pattern_info.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pcre2_match_data_create
  - pcre2_match_data_create_from_pattern
  - pcre2_match_data_free
  - pcre2_get_mark
  - pcre2_get_ovector_pointer
  - pcre2_get_ovector_count
  - pcre2_get_startchar
  - pcre2_get_match_data_size
  source_file: /src/pcre2/src/pcre2_match_data.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRING
  - XSTRING
  - pcre2_config
  source_file: /src/pcre2/src/pcre2_config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_char
  - print_custring
  - print_custring_bylen
  - get_ucpname
  - print_prop
  - pcre2_printint
  source_file: /src/pcre2/src/pcre2_printint.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OP_lengths
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/pcre2/src/pcre2_printint.c
      type_or_value: PCRE2_SUFFIX(OP_lengths_)
    - item_type: preproc_def
      name: get_ucpname
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/pcre2/src/pcre2_printint.c
      type_or_value: PCRE2_SUFFIX(get_ucpname_)
    - item_type: preproc_def
      name: pcre2_printint
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/pcre2/src/pcre2_printint.c
      type_or_value: PCRE2_SUFFIX(pcre2_printint_)
    - item_type: preproc_def
      name: print_char
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/pcre2/src/pcre2_printint.c
      type_or_value: PCRE2_SUFFIX(print_char_)
    - item_type: preproc_def
      name: print_custring
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/pcre2/src/pcre2_printint.c
      type_or_value: PCRE2_SUFFIX(print_custring_)
    - item_type: preproc_def
      name: print_custring_bylen
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/pcre2/src/pcre2_printint.c
      type_or_value: PCRE2_SUFFIX(print_custring_bylen_)
    - item_type: preproc_def
      name: print_prop
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/pcre2/src/pcre2_printint.c
      type_or_value: PCRE2_SUFFIX(print_prop_)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/pcre2/src/pcre2_tables.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ESZ
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: (1<<ucp_gbExtend)|(1<<ucp_gbSpacingMark)|(1<<ucp_gbZWJ)
    - item_type: preproc_def
      name: STRING_Adlam0
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_A STR_d STR_l STR_a STR_m "\0"
    - item_type: preproc_def
      name: STRING_Ahom0
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_A STR_h STR_o STR_m "\0"
    - item_type: preproc_def
      name: STRING_Anatolian_Hieroglyphs0
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_A STR_n STR_a STR_t STR_o STR_l STR_i STR_a STR_n STR_UNDERSCORE
        STR_H STR_i STR_e STR_r STR_o STR_g STR_l STR_y STR_p STR_h STR_s "\0"
    - item_type: preproc_def
      name: STRING_Any0
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_A STR_n STR_y "\0"
    - item_type: preproc_def
      name: STRING_Arabic0
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_A STR_r STR_a STR_b STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Armenian0
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_A STR_r STR_m STR_e STR_n STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Avestan0
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_A STR_v STR_e STR_s STR_t STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Balinese0
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_a STR_l STR_i STR_n STR_e STR_s STR_e "\0"
    - item_type: preproc_def
      name: STRING_Bamum0
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_a STR_m STR_u STR_m "\0"
    - item_type: preproc_def
      name: STRING_Bassa_Vah0
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_a STR_s STR_s STR_a STR_UNDERSCORE STR_V STR_a STR_h
        "\0"
    - item_type: preproc_def
      name: STRING_Batak0
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_a STR_t STR_a STR_k "\0"
    - item_type: preproc_def
      name: STRING_Bengali0
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_e STR_n STR_g STR_a STR_l STR_i "\0"
    - item_type: preproc_def
      name: STRING_Bhaiksuki0
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_h STR_a STR_i STR_k STR_s STR_u STR_k STR_i "\0"
    - item_type: preproc_def
      name: STRING_Bopomofo0
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_o STR_p STR_o STR_m STR_o STR_f STR_o "\0"
    - item_type: preproc_def
      name: STRING_Brahmi0
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_r STR_a STR_h STR_m STR_i "\0"
    - item_type: preproc_def
      name: STRING_Braille0
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_r STR_a STR_i STR_l STR_l STR_e "\0"
    - item_type: preproc_def
      name: STRING_Buginese0
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_u STR_g STR_i STR_n STR_e STR_s STR_e "\0"
    - item_type: preproc_def
      name: STRING_Buhid0
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_B STR_u STR_h STR_i STR_d "\0"
    - item_type: preproc_def
      name: STRING_C0
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C "\0"
    - item_type: preproc_def
      name: STRING_Canadian_Aboriginal0
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_a STR_n STR_a STR_d STR_i STR_a STR_n STR_UNDERSCORE
        STR_A STR_b STR_o STR_r STR_i STR_g STR_i STR_n STR_a STR_l "\0"
    - item_type: preproc_def
      name: STRING_Carian0
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_a STR_r STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Caucasian_Albanian0
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_a STR_u STR_c STR_a STR_s STR_i STR_a STR_n STR_UNDERSCORE
        STR_A STR_l STR_b STR_a STR_n STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Cc0
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_c "\0"
    - item_type: preproc_def
      name: STRING_Cf0
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_f "\0"
    - item_type: preproc_def
      name: STRING_Chakma0
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_h STR_a STR_k STR_m STR_a "\0"
    - item_type: preproc_def
      name: STRING_Cham0
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_h STR_a STR_m "\0"
    - item_type: preproc_def
      name: STRING_Cherokee0
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_h STR_e STR_r STR_o STR_k STR_e STR_e "\0"
    - item_type: preproc_def
      name: STRING_Chorasmian0
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_h STR_o STR_r STR_a STR_s STR_m STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Cn0
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_n "\0"
    - item_type: preproc_def
      name: STRING_Co0
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_o "\0"
    - item_type: preproc_def
      name: STRING_Common0
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_o STR_m STR_m STR_o STR_n "\0"
    - item_type: preproc_def
      name: STRING_Coptic0
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_o STR_p STR_t STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Cs0
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_s "\0"
    - item_type: preproc_def
      name: STRING_Cuneiform0
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_u STR_n STR_e STR_i STR_f STR_o STR_r STR_m "\0"
    - item_type: preproc_def
      name: STRING_Cypriot0
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_y STR_p STR_r STR_i STR_o STR_t "\0"
    - item_type: preproc_def
      name: STRING_Cypro_Minoan0
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_y STR_p STR_r STR_o STR_UNDERSCORE STR_M STR_i STR_n
        STR_o STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Cyrillic0
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_C STR_y STR_r STR_i STR_l STR_l STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Deseret0
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_D STR_e STR_s STR_e STR_r STR_e STR_t "\0"
    - item_type: preproc_def
      name: STRING_Devanagari0
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_D STR_e STR_v STR_a STR_n STR_a STR_g STR_a STR_r STR_i "\0"
    - item_type: preproc_def
      name: STRING_Dives_Akuru0
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_D STR_i STR_v STR_e STR_s STR_UNDERSCORE STR_A STR_k STR_u
        STR_r STR_u "\0"
    - item_type: preproc_def
      name: STRING_Dogra0
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_D STR_o STR_g STR_r STR_a "\0"
    - item_type: preproc_def
      name: STRING_Duployan0
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_D STR_u STR_p STR_l STR_o STR_y STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Egyptian_Hieroglyphs0
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_E STR_g STR_y STR_p STR_t STR_i STR_a STR_n STR_UNDERSCORE
        STR_H STR_i STR_e STR_r STR_o STR_g STR_l STR_y STR_p STR_h STR_s "\0"
    - item_type: preproc_def
      name: STRING_Elbasan0
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_E STR_l STR_b STR_a STR_s STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Elymaic0
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_E STR_l STR_y STR_m STR_a STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Ethiopic0
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_E STR_t STR_h STR_i STR_o STR_p STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Georgian0
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_G STR_e STR_o STR_r STR_g STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Glagolitic0
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_G STR_l STR_a STR_g STR_o STR_l STR_i STR_t STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Gothic0
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_G STR_o STR_t STR_h STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Grantha0
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_G STR_r STR_a STR_n STR_t STR_h STR_a "\0"
    - item_type: preproc_def
      name: STRING_Greek0
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_G STR_r STR_e STR_e STR_k "\0"
    - item_type: preproc_def
      name: STRING_Gujarati0
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_G STR_u STR_j STR_a STR_r STR_a STR_t STR_i "\0"
    - item_type: preproc_def
      name: STRING_Gunjala_Gondi0
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_G STR_u STR_n STR_j STR_a STR_l STR_a STR_UNDERSCORE STR_G
        STR_o STR_n STR_d STR_i "\0"
    - item_type: preproc_def
      name: STRING_Gurmukhi0
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_G STR_u STR_r STR_m STR_u STR_k STR_h STR_i "\0"
    - item_type: preproc_def
      name: STRING_Han0
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_H STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Hangul0
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_H STR_a STR_n STR_g STR_u STR_l "\0"
    - item_type: preproc_def
      name: STRING_Hanifi_Rohingya0
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_H STR_a STR_n STR_i STR_f STR_i STR_UNDERSCORE STR_R STR_o
        STR_h STR_i STR_n STR_g STR_y STR_a "\0"
    - item_type: preproc_def
      name: STRING_Hanunoo0
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_H STR_a STR_n STR_u STR_n STR_o STR_o "\0"
    - item_type: preproc_def
      name: STRING_Hatran0
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_H STR_a STR_t STR_r STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Hebrew0
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_H STR_e STR_b STR_r STR_e STR_w "\0"
    - item_type: preproc_def
      name: STRING_Hiragana0
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_H STR_i STR_r STR_a STR_g STR_a STR_n STR_a "\0"
    - item_type: preproc_def
      name: STRING_Imperial_Aramaic0
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_I STR_m STR_p STR_e STR_r STR_i STR_a STR_l STR_UNDERSCORE
        STR_A STR_r STR_a STR_m STR_a STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Inherited0
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_I STR_n STR_h STR_e STR_r STR_i STR_t STR_e STR_d "\0"
    - item_type: preproc_def
      name: STRING_Inscriptional_Pahlavi0
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_I STR_n STR_s STR_c STR_r STR_i STR_p STR_t STR_i STR_o STR_n
        STR_a STR_l STR_UNDERSCORE STR_P STR_a STR_h STR_l STR_a STR_v STR_i "\0"
    - item_type: preproc_def
      name: STRING_Inscriptional_Parthian0
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_I STR_n STR_s STR_c STR_r STR_i STR_p STR_t STR_i STR_o STR_n
        STR_a STR_l STR_UNDERSCORE STR_P STR_a STR_r STR_t STR_h STR_i STR_a STR_n
        "\0"
    - item_type: preproc_def
      name: STRING_Javanese0
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_J STR_a STR_v STR_a STR_n STR_e STR_s STR_e "\0"
    - item_type: preproc_def
      name: STRING_Kaithi0
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_K STR_a STR_i STR_t STR_h STR_i "\0"
    - item_type: preproc_def
      name: STRING_Kannada0
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_K STR_a STR_n STR_n STR_a STR_d STR_a "\0"
    - item_type: preproc_def
      name: STRING_Katakana0
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_K STR_a STR_t STR_a STR_k STR_a STR_n STR_a "\0"
    - item_type: preproc_def
      name: STRING_Kayah_Li0
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_K STR_a STR_y STR_a STR_h STR_UNDERSCORE STR_L STR_i "\0"
    - item_type: preproc_def
      name: STRING_Kharoshthi0
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_K STR_h STR_a STR_r STR_o STR_s STR_h STR_t STR_h STR_i "\0"
    - item_type: preproc_def
      name: STRING_Khitan_Small_Script0
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_K STR_h STR_i STR_t STR_a STR_n STR_UNDERSCORE STR_S STR_m
        STR_a STR_l STR_l STR_UNDERSCORE STR_S STR_c STR_r STR_i STR_p STR_t "\0"
    - item_type: preproc_def
      name: STRING_Khmer0
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_K STR_h STR_m STR_e STR_r "\0"
    - item_type: preproc_def
      name: STRING_Khojki0
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_K STR_h STR_o STR_j STR_k STR_i "\0"
    - item_type: preproc_def
      name: STRING_Khudawadi0
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_K STR_h STR_u STR_d STR_a STR_w STR_a STR_d STR_i "\0"
    - item_type: preproc_def
      name: STRING_L0
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L "\0"
    - item_type: preproc_def
      name: STRING_L_AMPERSAND0
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_AMPERSAND "\0"
    - item_type: preproc_def
      name: STRING_Lao0
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_a STR_o "\0"
    - item_type: preproc_def
      name: STRING_Latin0
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_a STR_t STR_i STR_n "\0"
    - item_type: preproc_def
      name: STRING_Lepcha0
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_e STR_p STR_c STR_h STR_a "\0"
    - item_type: preproc_def
      name: STRING_Limbu0
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_i STR_m STR_b STR_u "\0"
    - item_type: preproc_def
      name: STRING_Linear_A0
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_i STR_n STR_e STR_a STR_r STR_UNDERSCORE STR_A "\0"
    - item_type: preproc_def
      name: STRING_Linear_B0
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_i STR_n STR_e STR_a STR_r STR_UNDERSCORE STR_B "\0"
    - item_type: preproc_def
      name: STRING_Lisu0
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_i STR_s STR_u "\0"
    - item_type: preproc_def
      name: STRING_Ll0
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_l "\0"
    - item_type: preproc_def
      name: STRING_Lm0
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_m "\0"
    - item_type: preproc_def
      name: STRING_Lo0
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_o "\0"
    - item_type: preproc_def
      name: STRING_Lt0
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_t "\0"
    - item_type: preproc_def
      name: STRING_Lu0
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_u "\0"
    - item_type: preproc_def
      name: STRING_Lycian0
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_y STR_c STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Lydian0
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_L STR_y STR_d STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_M0
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M "\0"
    - item_type: preproc_def
      name: STRING_Mahajani0
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_a STR_h STR_a STR_j STR_a STR_n STR_i "\0"
    - item_type: preproc_def
      name: STRING_Makasar0
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_a STR_k STR_a STR_s STR_a STR_r "\0"
    - item_type: preproc_def
      name: STRING_Malayalam0
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_a STR_l STR_a STR_y STR_a STR_l STR_a STR_m "\0"
    - item_type: preproc_def
      name: STRING_Mandaic0
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_a STR_n STR_d STR_a STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Manichaean0
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_a STR_n STR_i STR_c STR_h STR_a STR_e STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Marchen0
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_a STR_r STR_c STR_h STR_e STR_n "\0"
    - item_type: preproc_def
      name: STRING_Masaram_Gondi0
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_a STR_s STR_a STR_r STR_a STR_m STR_UNDERSCORE STR_G
        STR_o STR_n STR_d STR_i "\0"
    - item_type: preproc_def
      name: STRING_Mc0
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_c "\0"
    - item_type: preproc_def
      name: STRING_Me0
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_e "\0"
    - item_type: preproc_def
      name: STRING_Medefaidrin0
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_e STR_d STR_e STR_f STR_a STR_i STR_d STR_r STR_i STR_n
        "\0"
    - item_type: preproc_def
      name: STRING_Meetei_Mayek0
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_e STR_e STR_t STR_e STR_i STR_UNDERSCORE STR_M STR_a
        STR_y STR_e STR_k "\0"
    - item_type: preproc_def
      name: STRING_Mende_Kikakui0
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_e STR_n STR_d STR_e STR_UNDERSCORE STR_K STR_i STR_k
        STR_a STR_k STR_u STR_i "\0"
    - item_type: preproc_def
      name: STRING_Meroitic_Cursive0
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_e STR_r STR_o STR_i STR_t STR_i STR_c STR_UNDERSCORE
        STR_C STR_u STR_r STR_s STR_i STR_v STR_e "\0"
    - item_type: preproc_def
      name: STRING_Meroitic_Hieroglyphs0
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_e STR_r STR_o STR_i STR_t STR_i STR_c STR_UNDERSCORE
        STR_H STR_i STR_e STR_r STR_o STR_g STR_l STR_y STR_p STR_h STR_s "\0"
    - item_type: preproc_def
      name: STRING_Miao0
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_i STR_a STR_o "\0"
    - item_type: preproc_def
      name: STRING_Mn0
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_n "\0"
    - item_type: preproc_def
      name: STRING_Modi0
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_o STR_d STR_i "\0"
    - item_type: preproc_def
      name: STRING_Mongolian0
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_o STR_n STR_g STR_o STR_l STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Mro0
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_r STR_o "\0"
    - item_type: preproc_def
      name: STRING_Multani0
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_u STR_l STR_t STR_a STR_n STR_i "\0"
    - item_type: preproc_def
      name: STRING_Myanmar0
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_M STR_y STR_a STR_n STR_m STR_a STR_r "\0"
    - item_type: preproc_def
      name: STRING_N0
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N "\0"
    - item_type: preproc_def
      name: STRING_Nabataean0
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_a STR_b STR_a STR_t STR_a STR_e STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Nandinagari0
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_a STR_n STR_d STR_i STR_n STR_a STR_g STR_a STR_r STR_i
        "\0"
    - item_type: preproc_def
      name: STRING_Nd0
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_d "\0"
    - item_type: preproc_def
      name: STRING_New_Tai_Lue0
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_e STR_w STR_UNDERSCORE STR_T STR_a STR_i STR_UNDERSCORE
        STR_L STR_u STR_e "\0"
    - item_type: preproc_def
      name: STRING_Newa0
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_e STR_w STR_a "\0"
    - item_type: preproc_def
      name: STRING_Nko0
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_k STR_o "\0"
    - item_type: preproc_def
      name: STRING_Nl0
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_l "\0"
    - item_type: preproc_def
      name: STRING_No0
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_o "\0"
    - item_type: preproc_def
      name: STRING_Nushu0
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_u STR_s STR_h STR_u "\0"
    - item_type: preproc_def
      name: STRING_Nyiakeng_Puachue_Hmong0
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_N STR_y STR_i STR_a STR_k STR_e STR_n STR_g STR_UNDERSCORE
        STR_P STR_u STR_a STR_c STR_h STR_u STR_e STR_UNDERSCORE STR_H STR_m STR_o
        STR_n STR_g "\0"
    - item_type: preproc_def
      name: STRING_Ogham0
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_g STR_h STR_a STR_m "\0"
    - item_type: preproc_def
      name: STRING_Ol_Chiki0
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_UNDERSCORE STR_C STR_h STR_i STR_k STR_i "\0"
    - item_type: preproc_def
      name: STRING_Old_Hungarian0
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_d STR_UNDERSCORE STR_H STR_u STR_n STR_g STR_a
        STR_r STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Old_Italic0
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_d STR_UNDERSCORE STR_I STR_t STR_a STR_l STR_i
        STR_c "\0"
    - item_type: preproc_def
      name: STRING_Old_North_Arabian0
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_d STR_UNDERSCORE STR_N STR_o STR_r STR_t STR_h
        STR_UNDERSCORE STR_A STR_r STR_a STR_b STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Old_Permic0
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_d STR_UNDERSCORE STR_P STR_e STR_r STR_m STR_i
        STR_c "\0"
    - item_type: preproc_def
      name: STRING_Old_Persian0
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_d STR_UNDERSCORE STR_P STR_e STR_r STR_s STR_i
        STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Old_Sogdian0
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_d STR_UNDERSCORE STR_S STR_o STR_g STR_d STR_i
        STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Old_South_Arabian0
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_d STR_UNDERSCORE STR_S STR_o STR_u STR_t STR_h
        STR_UNDERSCORE STR_A STR_r STR_a STR_b STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Old_Turkic0
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_d STR_UNDERSCORE STR_T STR_u STR_r STR_k STR_i
        STR_c "\0"
    - item_type: preproc_def
      name: STRING_Old_Uyghur0
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_l STR_d STR_UNDERSCORE STR_U STR_y STR_g STR_h STR_u
        STR_r "\0"
    - item_type: preproc_def
      name: STRING_Oriya0
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_r STR_i STR_y STR_a "\0"
    - item_type: preproc_def
      name: STRING_Osage0
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_s STR_a STR_g STR_e "\0"
    - item_type: preproc_def
      name: STRING_Osmanya0
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_O STR_s STR_m STR_a STR_n STR_y STR_a "\0"
    - item_type: preproc_def
      name: STRING_P0
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P "\0"
    - item_type: preproc_def
      name: STRING_Pahawh_Hmong0
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_a STR_h STR_a STR_w STR_h STR_UNDERSCORE STR_H STR_m
        STR_o STR_n STR_g "\0"
    - item_type: preproc_def
      name: STRING_Palmyrene0
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_a STR_l STR_m STR_y STR_r STR_e STR_n STR_e "\0"
    - item_type: preproc_def
      name: STRING_Pau_Cin_Hau0
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_a STR_u STR_UNDERSCORE STR_C STR_i STR_n STR_UNDERSCORE
        STR_H STR_a STR_u "\0"
    - item_type: preproc_def
      name: STRING_Pc0
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_c "\0"
    - item_type: preproc_def
      name: STRING_Pd0
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_d "\0"
    - item_type: preproc_def
      name: STRING_Pe0
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_e "\0"
    - item_type: preproc_def
      name: STRING_Pf0
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_f "\0"
    - item_type: preproc_def
      name: STRING_Phags_Pa0
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_h STR_a STR_g STR_s STR_UNDERSCORE STR_P STR_a "\0"
    - item_type: preproc_def
      name: STRING_Phoenician0
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_h STR_o STR_e STR_n STR_i STR_c STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Pi0
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_i "\0"
    - item_type: preproc_def
      name: STRING_Po0
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_o "\0"
    - item_type: preproc_def
      name: STRING_Ps0
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_s "\0"
    - item_type: preproc_def
      name: STRING_Psalter_Pahlavi0
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_P STR_s STR_a STR_l STR_t STR_e STR_r STR_UNDERSCORE STR_P
        STR_a STR_h STR_l STR_a STR_v STR_i "\0"
    - item_type: preproc_def
      name: STRING_Rejang0
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_R STR_e STR_j STR_a STR_n STR_g "\0"
    - item_type: preproc_def
      name: STRING_Runic0
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_R STR_u STR_n STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_S0
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S "\0"
    - item_type: preproc_def
      name: STRING_Samaritan0
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_a STR_m STR_a STR_r STR_i STR_t STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Saurashtra0
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_a STR_u STR_r STR_a STR_s STR_h STR_t STR_r STR_a "\0"
    - item_type: preproc_def
      name: STRING_Sc0
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_c "\0"
    - item_type: preproc_def
      name: STRING_Sharada0
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_h STR_a STR_r STR_a STR_d STR_a "\0"
    - item_type: preproc_def
      name: STRING_Shavian0
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_h STR_a STR_v STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Siddham0
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_i STR_d STR_d STR_h STR_a STR_m "\0"
    - item_type: preproc_def
      name: STRING_SignWriting0
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_i STR_g STR_n STR_W STR_r STR_i STR_t STR_i STR_n STR_g
        "\0"
    - item_type: preproc_def
      name: STRING_Sinhala0
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_i STR_n STR_h STR_a STR_l STR_a "\0"
    - item_type: preproc_def
      name: STRING_Sk0
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_k "\0"
    - item_type: preproc_def
      name: STRING_Sm0
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_m "\0"
    - item_type: preproc_def
      name: STRING_So0
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_o "\0"
    - item_type: preproc_def
      name: STRING_Sogdian0
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_o STR_g STR_d STR_i STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Sora_Sompeng0
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_o STR_r STR_a STR_UNDERSCORE STR_S STR_o STR_m STR_p
        STR_e STR_n STR_g "\0"
    - item_type: preproc_def
      name: STRING_Soyombo0
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_o STR_y STR_o STR_m STR_b STR_o "\0"
    - item_type: preproc_def
      name: STRING_Sundanese0
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_u STR_n STR_d STR_a STR_n STR_e STR_s STR_e "\0"
    - item_type: preproc_def
      name: STRING_Syloti_Nagri0
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_y STR_l STR_o STR_t STR_i STR_UNDERSCORE STR_N STR_a
        STR_g STR_r STR_i "\0"
    - item_type: preproc_def
      name: STRING_Syriac0
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_S STR_y STR_r STR_i STR_a STR_c "\0"
    - item_type: preproc_def
      name: STRING_Tagalog0
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_a STR_g STR_a STR_l STR_o STR_g "\0"
    - item_type: preproc_def
      name: STRING_Tagbanwa0
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_a STR_g STR_b STR_a STR_n STR_w STR_a "\0"
    - item_type: preproc_def
      name: STRING_Tai_Le0
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_a STR_i STR_UNDERSCORE STR_L STR_e "\0"
    - item_type: preproc_def
      name: STRING_Tai_Tham0
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_a STR_i STR_UNDERSCORE STR_T STR_h STR_a STR_m "\0"
    - item_type: preproc_def
      name: STRING_Tai_Viet0
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_a STR_i STR_UNDERSCORE STR_V STR_i STR_e STR_t "\0"
    - item_type: preproc_def
      name: STRING_Takri0
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_a STR_k STR_r STR_i "\0"
    - item_type: preproc_def
      name: STRING_Tamil0
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_a STR_m STR_i STR_l "\0"
    - item_type: preproc_def
      name: STRING_Tangsa0
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_a STR_n STR_g STR_s STR_a "\0"
    - item_type: preproc_def
      name: STRING_Tangut0
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_a STR_n STR_g STR_u STR_t "\0"
    - item_type: preproc_def
      name: STRING_Telugu0
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_e STR_l STR_u STR_g STR_u "\0"
    - item_type: preproc_def
      name: STRING_Thaana0
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_h STR_a STR_a STR_n STR_a "\0"
    - item_type: preproc_def
      name: STRING_Thai0
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_h STR_a STR_i "\0"
    - item_type: preproc_def
      name: STRING_Tibetan0
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_i STR_b STR_e STR_t STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Tifinagh0
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_i STR_f STR_i STR_n STR_a STR_g STR_h "\0"
    - item_type: preproc_def
      name: STRING_Tirhuta0
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_i STR_r STR_h STR_u STR_t STR_a "\0"
    - item_type: preproc_def
      name: STRING_Toto0
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_T STR_o STR_t STR_o "\0"
    - item_type: preproc_def
      name: STRING_Ugaritic0
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_U STR_g STR_a STR_r STR_i STR_t STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_Unknown0
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_U STR_n STR_k STR_n STR_o STR_w STR_n "\0"
    - item_type: preproc_def
      name: STRING_Vai0
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_V STR_a STR_i "\0"
    - item_type: preproc_def
      name: STRING_Vithkuqi0
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_V STR_i STR_t STR_h STR_k STR_u STR_q STR_i "\0"
    - item_type: preproc_def
      name: STRING_Wancho0
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_W STR_a STR_n STR_c STR_h STR_o "\0"
    - item_type: preproc_def
      name: STRING_Warang_Citi0
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_W STR_a STR_r STR_a STR_n STR_g STR_UNDERSCORE STR_C STR_i
        STR_t STR_i "\0"
    - item_type: preproc_def
      name: STRING_Xan0
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_X STR_a STR_n "\0"
    - item_type: preproc_def
      name: STRING_Xps0
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_X STR_p STR_s "\0"
    - item_type: preproc_def
      name: STRING_Xsp0
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_X STR_s STR_p "\0"
    - item_type: preproc_def
      name: STRING_Xuc0
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_X STR_u STR_c "\0"
    - item_type: preproc_def
      name: STRING_Xwd0
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_X STR_w STR_d "\0"
    - item_type: preproc_def
      name: STRING_Yezidi0
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_Y STR_e STR_z STR_i STR_d STR_i "\0"
    - item_type: preproc_def
      name: STRING_Yi0
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_Y STR_i "\0"
    - item_type: preproc_def
      name: STRING_Z0
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_Z "\0"
    - item_type: preproc_def
      name: STRING_Zanabazar_Square0
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_Z STR_a STR_n STR_a STR_b STR_a STR_z STR_a STR_r STR_UNDERSCORE
        STR_S STR_q STR_u STR_a STR_r STR_e "\0"
    - item_type: preproc_def
      name: STRING_Zl0
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_Z STR_l "\0"
    - item_type: preproc_def
      name: STRING_Zp0
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_Z STR_p "\0"
    - item_type: preproc_def
      name: STRING_Zs0
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/pcre2/src/pcre2_tables.c
      type_or_value: STR_Z STR_s "\0"
    structs: []
    typedefs: []
    union: []
- function_names:
  - PCRE2_JOIN
  - PCRE2_GLUE
  - PCRE2_SUFFIX
  - PCRE2_SUFFIX
  - PCRE2_SUFFIX
  source_file: /src/pcre2/src/pcre2.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_MAJOR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PCRE2_MINOR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '39'
    - item_type: preproc_def
      name: PCRE2_PRERELEASE
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '#define PCRE2_DATE            2021-10-29'
    - item_type: preproc_def
      name: PCRE2_EXP_DECL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: extern __declspec(dllimport)
    - item_type: preproc_def
      name: PCRE2_EXP_DECL
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: extern "C"
    - item_type: preproc_def
      name: PCRE2_EXP_DECL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: extern
    - item_type: preproc_def
      name: PCRE2_ANCHORED
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x80000000u
    - item_type: preproc_def
      name: PCRE2_NO_UTF_CHECK
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x40000000u
    - item_type: preproc_def
      name: PCRE2_ENDANCHORED
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x20000000u
    - item_type: preproc_def
      name: PCRE2_ALLOW_EMPTY_CLASS
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000001u  '
    - item_type: preproc_def
      name: PCRE2_ALT_BSUX
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000002u  '
    - item_type: preproc_def
      name: PCRE2_AUTO_CALLOUT
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000004u  '
    - item_type: preproc_def
      name: PCRE2_CASELESS
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000008u  '
    - item_type: preproc_def
      name: PCRE2_DOLLAR_ENDONLY
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000010u  '
    - item_type: preproc_def
      name: PCRE2_DOTALL
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000020u  '
    - item_type: preproc_def
      name: PCRE2_DUPNAMES
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000040u  '
    - item_type: preproc_def
      name: PCRE2_EXTENDED
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000080u  '
    - item_type: preproc_def
      name: PCRE2_FIRSTLINE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000100u  '
    - item_type: preproc_def
      name: PCRE2_MATCH_UNSET_BACKREF
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000200u  '
    - item_type: preproc_def
      name: PCRE2_MULTILINE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000400u  '
    - item_type: preproc_def
      name: PCRE2_NEVER_UCP
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000800u  '
    - item_type: preproc_def
      name: PCRE2_NEVER_UTF
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00001000u  '
    - item_type: preproc_def
      name: PCRE2_NO_AUTO_CAPTURE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00002000u  '
    - item_type: preproc_def
      name: PCRE2_NO_AUTO_POSSESS
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00004000u  '
    - item_type: preproc_def
      name: PCRE2_NO_DOTSTAR_ANCHOR
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00008000u  '
    - item_type: preproc_def
      name: PCRE2_NO_START_OPTIMIZE
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00010000u  '
    - item_type: preproc_def
      name: PCRE2_UCP
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00020000u  '
    - item_type: preproc_def
      name: PCRE2_UNGREEDY
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00040000u  '
    - item_type: preproc_def
      name: PCRE2_UTF
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00080000u  '
    - item_type: preproc_def
      name: PCRE2_NEVER_BACKSLASH_C
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00100000u  '
    - item_type: preproc_def
      name: PCRE2_ALT_CIRCUMFLEX
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00200000u  '
    - item_type: preproc_def
      name: PCRE2_ALT_VERBNAMES
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00400000u  '
    - item_type: preproc_def
      name: PCRE2_USE_OFFSET_LIMIT
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00800000u  '
    - item_type: preproc_def
      name: PCRE2_EXTENDED_MORE
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x01000000u  '
    - item_type: preproc_def
      name: PCRE2_LITERAL
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x02000000u  '
    - item_type: preproc_def
      name: PCRE2_MATCH_INVALID_UTF
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x04000000u  '
    - item_type: preproc_def
      name: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000001u  '
    - item_type: preproc_def
      name: PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000002u  '
    - item_type: preproc_def
      name: PCRE2_EXTRA_MATCH_WORD
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000004u  '
    - item_type: preproc_def
      name: PCRE2_EXTRA_MATCH_LINE
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000008u  '
    - item_type: preproc_def
      name: PCRE2_EXTRA_ESCAPED_CR_IS_LF
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000010u  '
    - item_type: preproc_def
      name: PCRE2_EXTRA_ALT_BSUX
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000020u  '
    - item_type: preproc_def
      name: PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000040u  '
    - item_type: preproc_def
      name: PCRE2_JIT_COMPLETE
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000001u  '
    - item_type: preproc_def
      name: PCRE2_JIT_PARTIAL_SOFT
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000002u
    - item_type: preproc_def
      name: PCRE2_JIT_PARTIAL_HARD
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000004u
    - item_type: preproc_def
      name: PCRE2_JIT_INVALID_UTF
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000100u
    - item_type: preproc_def
      name: PCRE2_NOTBOL
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000001u
    - item_type: preproc_def
      name: PCRE2_NOTEOL
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000002u
    - item_type: preproc_def
      name: PCRE2_NOTEMPTY
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000004u  '
    - item_type: preproc_def
      name: PCRE2_NOTEMPTY_ATSTART
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000008u  '
    - item_type: preproc_def
      name: PCRE2_PARTIAL_SOFT
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000010u
    - item_type: preproc_def
      name: PCRE2_PARTIAL_HARD
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000020u
    - item_type: preproc_def
      name: PCRE2_DFA_RESTART
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000040u  '
    - item_type: preproc_def
      name: PCRE2_DFA_SHORTEST
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000080u  '
    - item_type: preproc_def
      name: PCRE2_SUBSTITUTE_GLOBAL
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000100u  '
    - item_type: preproc_def
      name: PCRE2_SUBSTITUTE_EXTENDED
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000200u  '
    - item_type: preproc_def
      name: PCRE2_SUBSTITUTE_UNSET_EMPTY
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000400u  '
    - item_type: preproc_def
      name: PCRE2_SUBSTITUTE_UNKNOWN_UNSET
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000800u  '
    - item_type: preproc_def
      name: PCRE2_SUBSTITUTE_OVERFLOW_LENGTH
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00001000u  '
    - item_type: preproc_def
      name: PCRE2_NO_JIT
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00002000u  '
    - item_type: preproc_def
      name: PCRE2_COPY_MATCHED_SUBJECT
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00004000u
    - item_type: preproc_def
      name: PCRE2_SUBSTITUTE_LITERAL
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00008000u  '
    - item_type: preproc_def
      name: PCRE2_SUBSTITUTE_MATCHED
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00010000u  '
    - item_type: preproc_def
      name: PCRE2_SUBSTITUTE_REPLACEMENT_ONLY
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00020000u  '
    - item_type: preproc_def
      name: PCRE2_CONVERT_UTF
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000001u
    - item_type: preproc_def
      name: PCRE2_CONVERT_NO_UTF_CHECK
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000002u
    - item_type: preproc_def
      name: PCRE2_CONVERT_POSIX_BASIC
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000004u
    - item_type: preproc_def
      name: PCRE2_CONVERT_POSIX_EXTENDED
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000008u
    - item_type: preproc_def
      name: PCRE2_CONVERT_GLOB
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000010u
    - item_type: preproc_def
      name: PCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000030u
    - item_type: preproc_def
      name: PCRE2_CONVERT_GLOB_NO_STARSTAR
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 0x00000050u
    - item_type: preproc_def
      name: PCRE2_NEWLINE_CR
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PCRE2_NEWLINE_LF
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PCRE2_NEWLINE_CRLF
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PCRE2_NEWLINE_ANY
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PCRE2_NEWLINE_ANYCRLF
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PCRE2_NEWLINE_NUL
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '6'
    - item_type: preproc_def
      name: PCRE2_BSR_UNICODE
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PCRE2_BSR_ANYCRLF
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PCRE2_ERROR_END_BACKSLASH
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '101'
    - item_type: preproc_def
      name: PCRE2_ERROR_END_BACKSLASH_C
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '102'
    - item_type: preproc_def
      name: PCRE2_ERROR_UNKNOWN_ESCAPE
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '103'
    - item_type: preproc_def
      name: PCRE2_ERROR_QUANTIFIER_OUT_OF_ORDER
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '104'
    - item_type: preproc_def
      name: PCRE2_ERROR_QUANTIFIER_TOO_BIG
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '105'
    - item_type: preproc_def
      name: PCRE2_ERROR_MISSING_SQUARE_BRACKET
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '106'
    - item_type: preproc_def
      name: PCRE2_ERROR_ESCAPE_INVALID_IN_CLASS
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '107'
    - item_type: preproc_def
      name: PCRE2_ERROR_CLASS_RANGE_ORDER
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '108'
    - item_type: preproc_def
      name: PCRE2_ERROR_QUANTIFIER_INVALID
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '109'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_UNEXPECTED_REPEAT
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '110'
    - item_type: preproc_def
      name: PCRE2_ERROR_INVALID_AFTER_PARENS_QUERY
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '111'
    - item_type: preproc_def
      name: PCRE2_ERROR_POSIX_CLASS_NOT_IN_CLASS
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '112'
    - item_type: preproc_def
      name: PCRE2_ERROR_POSIX_NO_SUPPORT_COLLATING
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '113'
    - item_type: preproc_def
      name: PCRE2_ERROR_MISSING_CLOSING_PARENTHESIS
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '114'
    - item_type: preproc_def
      name: PCRE2_ERROR_BAD_SUBPATTERN_REFERENCE
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '115'
    - item_type: preproc_def
      name: PCRE2_ERROR_NULL_PATTERN
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '116'
    - item_type: preproc_def
      name: PCRE2_ERROR_BAD_OPTIONS
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '117'
    - item_type: preproc_def
      name: PCRE2_ERROR_MISSING_COMMENT_CLOSING
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '118'
    - item_type: preproc_def
      name: PCRE2_ERROR_PARENTHESES_NEST_TOO_DEEP
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '119'
    - item_type: preproc_def
      name: PCRE2_ERROR_PATTERN_TOO_LARGE
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '120'
    - item_type: preproc_def
      name: PCRE2_ERROR_HEAP_FAILED
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '121'
    - item_type: preproc_def
      name: PCRE2_ERROR_UNMATCHED_CLOSING_PARENTHESIS
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '122'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_CODE_OVERFLOW
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '123'
    - item_type: preproc_def
      name: PCRE2_ERROR_MISSING_CONDITION_CLOSING
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '124'
    - item_type: preproc_def
      name: PCRE2_ERROR_LOOKBEHIND_NOT_FIXED_LENGTH
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '125'
    - item_type: preproc_def
      name: PCRE2_ERROR_ZERO_RELATIVE_REFERENCE
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '126'
    - item_type: preproc_def
      name: PCRE2_ERROR_TOO_MANY_CONDITION_BRANCHES
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '127'
    - item_type: preproc_def
      name: PCRE2_ERROR_CONDITION_ASSERTION_EXPECTED
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '128'
    - item_type: preproc_def
      name: PCRE2_ERROR_BAD_RELATIVE_REFERENCE
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '129'
    - item_type: preproc_def
      name: PCRE2_ERROR_UNKNOWN_POSIX_CLASS
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '130'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_STUDY_ERROR
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '131'
    - item_type: preproc_def
      name: PCRE2_ERROR_UNICODE_NOT_SUPPORTED
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '132'
    - item_type: preproc_def
      name: PCRE2_ERROR_PARENTHESES_STACK_CHECK
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '133'
    - item_type: preproc_def
      name: PCRE2_ERROR_CODE_POINT_TOO_BIG
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '134'
    - item_type: preproc_def
      name: PCRE2_ERROR_LOOKBEHIND_TOO_COMPLICATED
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '135'
    - item_type: preproc_def
      name: PCRE2_ERROR_LOOKBEHIND_INVALID_BACKSLASH_C
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '136'
    - item_type: preproc_def
      name: PCRE2_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '137'
    - item_type: preproc_def
      name: PCRE2_ERROR_CALLOUT_NUMBER_TOO_BIG
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '138'
    - item_type: preproc_def
      name: PCRE2_ERROR_MISSING_CALLOUT_CLOSING
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '139'
    - item_type: preproc_def
      name: PCRE2_ERROR_ESCAPE_INVALID_IN_VERB
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '140'
    - item_type: preproc_def
      name: PCRE2_ERROR_UNRECOGNIZED_AFTER_QUERY_P
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '141'
    - item_type: preproc_def
      name: PCRE2_ERROR_MISSING_NAME_TERMINATOR
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '142'
    - item_type: preproc_def
      name: PCRE2_ERROR_DUPLICATE_SUBPATTERN_NAME
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '143'
    - item_type: preproc_def
      name: PCRE2_ERROR_INVALID_SUBPATTERN_NAME
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '144'
    - item_type: preproc_def
      name: PCRE2_ERROR_UNICODE_PROPERTIES_UNAVAILABLE
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '145'
    - item_type: preproc_def
      name: PCRE2_ERROR_MALFORMED_UNICODE_PROPERTY
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '146'
    - item_type: preproc_def
      name: PCRE2_ERROR_UNKNOWN_UNICODE_PROPERTY
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '147'
    - item_type: preproc_def
      name: PCRE2_ERROR_SUBPATTERN_NAME_TOO_LONG
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '148'
    - item_type: preproc_def
      name: PCRE2_ERROR_TOO_MANY_NAMED_SUBPATTERNS
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '149'
    - item_type: preproc_def
      name: PCRE2_ERROR_CLASS_INVALID_RANGE
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '150'
    - item_type: preproc_def
      name: PCRE2_ERROR_OCTAL_BYTE_TOO_BIG
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '151'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_OVERRAN_WORKSPACE
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '152'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_MISSING_SUBPATTERN
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '153'
    - item_type: preproc_def
      name: PCRE2_ERROR_DEFINE_TOO_MANY_BRANCHES
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '154'
    - item_type: preproc_def
      name: PCRE2_ERROR_BACKSLASH_O_MISSING_BRACE
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '155'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_UNKNOWN_NEWLINE
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '156'
    - item_type: preproc_def
      name: PCRE2_ERROR_BACKSLASH_G_SYNTAX
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '157'
    - item_type: preproc_def
      name: PCRE2_ERROR_PARENS_QUERY_R_MISSING_CLOSING
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '158'
    - item_type: preproc_def
      name: PCRE2_ERROR_VERB_ARGUMENT_NOT_ALLOWED
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '159'
    - item_type: preproc_def
      name: PCRE2_ERROR_VERB_UNKNOWN
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '160'
    - item_type: preproc_def
      name: PCRE2_ERROR_SUBPATTERN_NUMBER_TOO_BIG
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '161'
    - item_type: preproc_def
      name: PCRE2_ERROR_SUBPATTERN_NAME_EXPECTED
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '162'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_PARSED_OVERFLOW
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '163'
    - item_type: preproc_def
      name: PCRE2_ERROR_INVALID_OCTAL
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '164'
    - item_type: preproc_def
      name: PCRE2_ERROR_SUBPATTERN_NAMES_MISMATCH
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '165'
    - item_type: preproc_def
      name: PCRE2_ERROR_MARK_MISSING_ARGUMENT
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '166'
    - item_type: preproc_def
      name: PCRE2_ERROR_INVALID_HEXADECIMAL
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '167'
    - item_type: preproc_def
      name: PCRE2_ERROR_BACKSLASH_C_SYNTAX
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '168'
    - item_type: preproc_def
      name: PCRE2_ERROR_BACKSLASH_K_SYNTAX
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '169'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_BAD_CODE_LOOKBEHINDS
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '170'
    - item_type: preproc_def
      name: PCRE2_ERROR_BACKSLASH_N_IN_CLASS
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '171'
    - item_type: preproc_def
      name: PCRE2_ERROR_CALLOUT_STRING_TOO_LONG
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '172'
    - item_type: preproc_def
      name: PCRE2_ERROR_UNICODE_DISALLOWED_CODE_POINT
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '173'
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF_IS_DISABLED
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '174'
    - item_type: preproc_def
      name: PCRE2_ERROR_UCP_IS_DISABLED
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '175'
    - item_type: preproc_def
      name: PCRE2_ERROR_VERB_NAME_TOO_LONG
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '176'
    - item_type: preproc_def
      name: PCRE2_ERROR_BACKSLASH_U_CODE_POINT_TOO_BIG
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '177'
    - item_type: preproc_def
      name: PCRE2_ERROR_MISSING_OCTAL_OR_HEX_DIGITS
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '178'
    - item_type: preproc_def
      name: PCRE2_ERROR_VERSION_CONDITION_SYNTAX
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '179'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_BAD_CODE_AUTO_POSSESS
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '180'
    - item_type: preproc_def
      name: PCRE2_ERROR_CALLOUT_NO_STRING_DELIMITER
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '181'
    - item_type: preproc_def
      name: PCRE2_ERROR_CALLOUT_BAD_STRING_DELIMITER
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '182'
    - item_type: preproc_def
      name: PCRE2_ERROR_BACKSLASH_C_CALLER_DISABLED
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '183'
    - item_type: preproc_def
      name: PCRE2_ERROR_QUERY_BARJX_NEST_TOO_DEEP
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '184'
    - item_type: preproc_def
      name: PCRE2_ERROR_BACKSLASH_C_LIBRARY_DISABLED
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '185'
    - item_type: preproc_def
      name: PCRE2_ERROR_PATTERN_TOO_COMPLICATED
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '186'
    - item_type: preproc_def
      name: PCRE2_ERROR_LOOKBEHIND_TOO_LONG
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '187'
    - item_type: preproc_def
      name: PCRE2_ERROR_PATTERN_STRING_TOO_LONG
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '188'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_BAD_CODE
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '189'
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_BAD_CODE_IN_SKIP
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '190'
    - item_type: preproc_def
      name: PCRE2_ERROR_NO_SURROGATES_IN_UTF16
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '191'
    - item_type: preproc_def
      name: PCRE2_ERROR_BAD_LITERAL_OPTIONS
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '192'
    - item_type: preproc_def
      name: PCRE2_ERROR_SUPPORTED_ONLY_IN_UNICODE
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '193'
    - item_type: preproc_def
      name: PCRE2_ERROR_INVALID_HYPHEN_IN_OPTIONS
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '194'
    - item_type: preproc_def
      name: PCRE2_ERROR_ALPHA_ASSERTION_UNKNOWN
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '195'
    - item_type: preproc_def
      name: PCRE2_ERROR_SCRIPT_RUN_NOT_AVAILABLE
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '196'
    - item_type: preproc_def
      name: PCRE2_ERROR_TOO_MANY_CAPTURES
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '197'
    - item_type: preproc_def
      name: PCRE2_ERROR_CONDITION_ATOMIC_ASSERTION_EXPECTED
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '198'
    - item_type: preproc_def
      name: PCRE2_ERROR_BACKSLASH_K_IN_LOOKAROUND
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '199'
    - item_type: preproc_def
      name: PCRE2_ERROR_NOMATCH
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: PCRE2_ERROR_PARTIAL
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR1
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-3)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR2
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-4)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR3
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-5)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR4
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-6)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR5
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-7)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR6
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-8)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR7
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-9)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR8
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-10)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR9
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-11)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR10
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-12)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR11
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-13)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR12
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-14)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR13
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-15)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR14
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-16)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR15
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-17)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR16
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-18)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR17
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-19)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR18
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-20)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR19
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-21)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR20
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-22)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF8_ERR21
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-23)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF16_ERR1
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-24)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF16_ERR2
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-25)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF16_ERR3
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-26)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF32_ERR1
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-27)
    - item_type: preproc_def
      name: PCRE2_ERROR_UTF32_ERR2
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-28)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADDATA
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-29)
    - item_type: preproc_def
      name: PCRE2_ERROR_MIXEDTABLES
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '(-30)  '
    - item_type: preproc_def
      name: PCRE2_ERROR_BADMAGIC
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-31)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADMODE
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-32)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADOFFSET
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-33)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADOPTION
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-34)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADREPLACEMENT
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-35)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADUTFOFFSET
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-36)
    - item_type: preproc_def
      name: PCRE2_ERROR_CALLOUT
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '(-37)  '
    - item_type: preproc_def
      name: PCRE2_ERROR_DFA_BADRESTART
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-38)
    - item_type: preproc_def
      name: PCRE2_ERROR_DFA_RECURSE
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-39)
    - item_type: preproc_def
      name: PCRE2_ERROR_DFA_UCOND
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-40)
    - item_type: preproc_def
      name: PCRE2_ERROR_DFA_UFUNC
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-41)
    - item_type: preproc_def
      name: PCRE2_ERROR_DFA_UITEM
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-42)
    - item_type: preproc_def
      name: PCRE2_ERROR_DFA_WSSIZE
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-43)
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-44)
    - item_type: preproc_def
      name: PCRE2_ERROR_JIT_BADOPTION
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-45)
    - item_type: preproc_def
      name: PCRE2_ERROR_JIT_STACKLIMIT
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-46)
    - item_type: preproc_def
      name: PCRE2_ERROR_MATCHLIMIT
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-47)
    - item_type: preproc_def
      name: PCRE2_ERROR_NOMEMORY
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-48)
    - item_type: preproc_def
      name: PCRE2_ERROR_NOSUBSTRING
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-49)
    - item_type: preproc_def
      name: PCRE2_ERROR_NOUNIQUESUBSTRING
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-50)
    - item_type: preproc_def
      name: PCRE2_ERROR_NULL
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-51)
    - item_type: preproc_def
      name: PCRE2_ERROR_RECURSELOOP
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-52)
    - item_type: preproc_def
      name: PCRE2_ERROR_DEPTHLIMIT
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-53)
    - item_type: preproc_def
      name: PCRE2_ERROR_RECURSIONLIMIT
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '(-53)  '
    - item_type: preproc_def
      name: PCRE2_ERROR_UNAVAILABLE
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-54)
    - item_type: preproc_def
      name: PCRE2_ERROR_UNSET
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-55)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADOFFSETLIMIT
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-56)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADREPESCAPE
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-57)
    - item_type: preproc_def
      name: PCRE2_ERROR_REPMISSINGBRACE
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-58)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADSUBSTITUTION
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-59)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADSUBSPATTERN
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-60)
    - item_type: preproc_def
      name: PCRE2_ERROR_TOOMANYREPLACE
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-61)
    - item_type: preproc_def
      name: PCRE2_ERROR_BADSERIALIZEDDATA
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-62)
    - item_type: preproc_def
      name: PCRE2_ERROR_HEAPLIMIT
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-63)
    - item_type: preproc_def
      name: PCRE2_ERROR_CONVERT_SYNTAX
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-64)
    - item_type: preproc_def
      name: PCRE2_ERROR_INTERNAL_DUPMATCH
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-65)
    - item_type: preproc_def
      name: PCRE2_ERROR_DFA_UINVALID_UTF
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (-66)
    - item_type: preproc_def
      name: PCRE2_INFO_ALLOPTIONS
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PCRE2_INFO_ARGOPTIONS
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PCRE2_INFO_BACKREFMAX
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PCRE2_INFO_BSR
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PCRE2_INFO_CAPTURECOUNT
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PCRE2_INFO_FIRSTCODEUNIT
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PCRE2_INFO_FIRSTCODETYPE
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '6'
    - item_type: preproc_def
      name: PCRE2_INFO_FIRSTBITMAP
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '7'
    - item_type: preproc_def
      name: PCRE2_INFO_HASCRORLF
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PCRE2_INFO_JCHANGED
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '9'
    - item_type: preproc_def
      name: PCRE2_INFO_JITSIZE
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PCRE2_INFO_LASTCODEUNIT
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '11'
    - item_type: preproc_def
      name: PCRE2_INFO_LASTCODETYPE
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PCRE2_INFO_MATCHEMPTY
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '13'
    - item_type: preproc_def
      name: PCRE2_INFO_MATCHLIMIT
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '14'
    - item_type: preproc_def
      name: PCRE2_INFO_MAXLOOKBEHIND
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '15'
    - item_type: preproc_def
      name: PCRE2_INFO_MINLENGTH
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PCRE2_INFO_NAMECOUNT
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '17'
    - item_type: preproc_def
      name: PCRE2_INFO_NAMEENTRYSIZE
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '18'
    - item_type: preproc_def
      name: PCRE2_INFO_NAMETABLE
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '19'
    - item_type: preproc_def
      name: PCRE2_INFO_NEWLINE
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '20'
    - item_type: preproc_def
      name: PCRE2_INFO_DEPTHLIMIT
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '21'
    - item_type: preproc_def
      name: PCRE2_INFO_RECURSIONLIMIT
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '21  '
    - item_type: preproc_def
      name: PCRE2_INFO_SIZE
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '22'
    - item_type: preproc_def
      name: PCRE2_INFO_HASBACKSLASHC
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '23'
    - item_type: preproc_def
      name: PCRE2_INFO_FRAMESIZE
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '24'
    - item_type: preproc_def
      name: PCRE2_INFO_HEAPLIMIT
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '25'
    - item_type: preproc_def
      name: PCRE2_INFO_EXTRAOPTIONS
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '26'
    - item_type: preproc_def
      name: PCRE2_CONFIG_BSR
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PCRE2_CONFIG_JIT
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PCRE2_CONFIG_JITTARGET
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PCRE2_CONFIG_LINKSIZE
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PCRE2_CONFIG_MATCHLIMIT
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PCRE2_CONFIG_NEWLINE
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PCRE2_CONFIG_PARENSLIMIT
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '6'
    - item_type: preproc_def
      name: PCRE2_CONFIG_DEPTHLIMIT
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '7'
    - item_type: preproc_def
      name: PCRE2_CONFIG_RECURSIONLIMIT
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '7  '
    - item_type: preproc_def
      name: PCRE2_CONFIG_STACKRECURSE
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '8  '
    - item_type: preproc_def
      name: PCRE2_CONFIG_UNICODE
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '9'
    - item_type: preproc_def
      name: PCRE2_CONFIG_UNICODE_VERSION
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PCRE2_CONFIG_VERSION
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '11'
    - item_type: preproc_def
      name: PCRE2_CONFIG_HEAPLIMIT
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PCRE2_CONFIG_NEVER_BACKSLASH_C
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '13'
    - item_type: preproc_def
      name: PCRE2_CONFIG_COMPILED_WIDTHS
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '14'
    - item_type: preproc_def
      name: PCRE2_CONFIG_TABLES_LENGTH
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '15'
    - item_type: preproc_def
      name: PCRE2_SIZE
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: size_t
    - item_type: preproc_def
      name: PCRE2_SIZE_MAX
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: SIZE_MAX
    - item_type: preproc_def
      name: PCRE2_ZERO_TERMINATED
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (~(PCRE2_SIZE)0)
    - item_type: preproc_def
      name: PCRE2_UNSET
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: (~(PCRE2_SIZE)0)
    - item_type: preproc_def
      name: PCRE2_TYPES_LIST
      pos:
        line_end: 501
        line_start: 478
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 'struct pcre2_real_general_context; \

        typedef struct pcre2_real_general_context pcre2_general_context; \

        \

        struct pcre2_real_compile_context; \

        typedef struct pcre2_real_compile_context pcre2_compile_context; \

        \

        struct pcre2_real_match_context; \

        typedef struct pcre2_real_match_context pcre2_match_context; \

        \

        struct pcre2_real_convert_context; \

        typedef struct pcre2_real_convert_context pcre2_convert_context; \

        \

        struct pcre2_real_code; \

        typedef struct pcre2_real_code pcre2_code; \

        \

        struct pcre2_real_match_data; \

        typedef struct pcre2_real_match_data pcre2_match_data; \

        \

        struct pcre2_real_jit_stack; \

        typedef struct pcre2_real_jit_stack pcre2_jit_stack; \

        \

        typedef pcre2_jit_stack *(*pcre2_jit_callback)(void *);'
    - item_type: preproc_def
      name: PCRE2_CALLOUT_STARTMATCH
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000001u  '
    - item_type: preproc_def
      name: PCRE2_CALLOUT_BACKTRACK
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '0x00000002u  '
    - item_type: preproc_def
      name: PCRE2_STRUCTURE_LIST
      pos:
        line_end: 517
        line_start: 514
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "typedef struct pcre2_callout_block { \\\n  uint32_t      version;
        \          "
    - item_type: preproc_def
      name: PCRE2_GENERAL_INFO_FUNCTIONS
      pos:
        line_end: 569
        line_start: 567
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION pcre2_config(uint32_t,
        void *);
    - item_type: preproc_def
      name: PCRE2_GENERAL_CONTEXT_FUNCTIONS
      pos:
        line_end: 581
        line_start: 573
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL pcre2_general_context PCRE2_CALL_CONVENTION \\\n
        \ *pcre2_general_context_copy(pcre2_general_context *); \\\nPCRE2_EXP_DECL
        pcre2_general_context PCRE2_CALL_CONVENTION \\\n  *pcre2_general_context_create(void
        *(*)(PCRE2_SIZE, void *), \\\n    void (*)(void *, void *), void *); \\\nPCRE2_EXP_DECL
        void PCRE2_CALL_CONVENTION \\\n  pcre2_general_context_free(pcre2_general_context
        *);"
    - item_type: preproc_def
      name: PCRE2_COMPILE_CONTEXT_FUNCTIONS
      pos:
        line_end: 604
        line_start: 582
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL pcre2_compile_context PCRE2_CALL_CONVENTION \\\n
        \ *pcre2_compile_context_copy(pcre2_compile_context *); \\\nPCRE2_EXP_DECL
        pcre2_compile_context PCRE2_CALL_CONVENTION \\\n  *pcre2_compile_context_create(pcre2_general_context
        *);\\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \\\n  pcre2_compile_context_free(pcre2_compile_context
        *); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_bsr(pcre2_compile_context
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_character_tables(pcre2_compile_context
        *, const uint8_t *); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_compile_extra_options(pcre2_compile_context
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_max_pattern_length(pcre2_compile_context
        *, PCRE2_SIZE); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_newline(pcre2_compile_context
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_parens_nest_limit(pcre2_compile_context
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_compile_recursion_guard(pcre2_compile_context
        *, \\\n    int (*)(uint32_t, void *), void *);"
    - item_type: preproc_def
      name: PCRE2_MATCH_CONTEXT_FUNCTIONS
      pos:
        line_end: 631
        line_start: 605
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL pcre2_match_context PCRE2_CALL_CONVENTION \\\n
        \ *pcre2_match_context_copy(pcre2_match_context *); \\\nPCRE2_EXP_DECL pcre2_match_context
        PCRE2_CALL_CONVENTION \\\n  *pcre2_match_context_create(pcre2_general_context
        *); \\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \\\n  pcre2_match_context_free(pcre2_match_context
        *); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_callout(pcre2_match_context
        *, \\\n    int (*)(pcre2_callout_block *, void *), void *); \\\nPCRE2_EXP_DECL
        int PCRE2_CALL_CONVENTION \\\n  pcre2_set_substitute_callout(pcre2_match_context
        *, \\\n    int (*)(pcre2_substitute_callout_block *, void *), void *); \\\nPCRE2_EXP_DECL
        int PCRE2_CALL_CONVENTION \\\n  pcre2_set_depth_limit(pcre2_match_context
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_heap_limit(pcre2_match_context
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_match_limit(pcre2_match_context
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_offset_limit(pcre2_match_context
        *, PCRE2_SIZE); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_recursion_limit(pcre2_match_context
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_recursion_memory_management(pcre2_match_context
        *, \\\n    void *(*)(PCRE2_SIZE, void *), void (*)(void *, void *), void *);"
    - item_type: preproc_def
      name: PCRE2_CONVERT_CONTEXT_FUNCTIONS
      pos:
        line_end: 643
        line_start: 632
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL pcre2_convert_context PCRE2_CALL_CONVENTION \\\n
        \ *pcre2_convert_context_copy(pcre2_convert_context *); \\\nPCRE2_EXP_DECL
        pcre2_convert_context PCRE2_CALL_CONVENTION \\\n  *pcre2_convert_context_create(pcre2_general_context
        *); \\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \\\n  pcre2_convert_context_free(pcre2_convert_context
        *); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_glob_escape(pcre2_convert_context
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_set_glob_separator(pcre2_convert_context
        *, uint32_t);"
    - item_type: preproc_def
      name: PCRE2_COMPILE_FUNCTIONS
      pos:
        line_end: 657
        line_start: 647
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL pcre2_code PCRE2_CALL_CONVENTION \\\n  *pcre2_compile(PCRE2_SPTR,
        PCRE2_SIZE, uint32_t, int *, PCRE2_SIZE *, \\\n    pcre2_compile_context *);
        \\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \\\n  pcre2_code_free(pcre2_code
        *); \\\nPCRE2_EXP_DECL pcre2_code PCRE2_CALL_CONVENTION \\\n  *pcre2_code_copy(const
        pcre2_code *); \\\nPCRE2_EXP_DECL pcre2_code PCRE2_CALL_CONVENTION \\\n  *pcre2_code_copy_with_tables(const
        pcre2_code *);"
    - item_type: preproc_def
      name: PCRE2_PATTERN_INFO_FUNCTIONS
      pos:
        line_end: 667
        line_start: 661
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_pattern_info(const
        pcre2_code *, uint32_t, void *); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION
        \\\n  pcre2_callout_enumerate(const pcre2_code *, \\\n    int (*)(pcre2_callout_enumerate_block
        *, void *), void *);"
    - item_type: preproc_def
      name: PCRE2_MATCH_FUNCTIONS
      pos:
        line_end: 695
        line_start: 671
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL pcre2_match_data PCRE2_CALL_CONVENTION \\\n  *pcre2_match_data_create(uint32_t,
        pcre2_general_context *); \\\nPCRE2_EXP_DECL pcre2_match_data PCRE2_CALL_CONVENTION
        \\\n  *pcre2_match_data_create_from_pattern(const pcre2_code *, \\\n    pcre2_general_context
        *); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_dfa_match(const
        pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \\\n    uint32_t, pcre2_match_data
        *, pcre2_match_context *, int *, PCRE2_SIZE); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION
        \\\n  pcre2_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE,
        \\\n    uint32_t, pcre2_match_data *, pcre2_match_context *); \\\nPCRE2_EXP_DECL
        void PCRE2_CALL_CONVENTION \\\n  pcre2_match_data_free(pcre2_match_data *);
        \\\nPCRE2_EXP_DECL PCRE2_SPTR PCRE2_CALL_CONVENTION \\\n  pcre2_get_mark(pcre2_match_data
        *); \\\nPCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \\\n  pcre2_get_match_data_size(pcre2_match_data
        *); \\\nPCRE2_EXP_DECL uint32_t PCRE2_CALL_CONVENTION \\\n  pcre2_get_ovector_count(pcre2_match_data
        *); \\\nPCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \\\n  *pcre2_get_ovector_pointer(pcre2_match_data
        *); \\\nPCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \\\n  pcre2_get_startchar(pcre2_match_data
        *);"
    - item_type: preproc_def
      name: PCRE2_SUBSTRING_FUNCTIONS
      pos:
        line_end: 727
        line_start: 699
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_substring_copy_byname(pcre2_match_data
        *, PCRE2_SPTR, PCRE2_UCHAR *, \\\n    PCRE2_SIZE *); \\\nPCRE2_EXP_DECL int
        PCRE2_CALL_CONVENTION \\\n  pcre2_substring_copy_bynumber(pcre2_match_data
        *, uint32_t, PCRE2_UCHAR *, \\\n    PCRE2_SIZE *); \\\nPCRE2_EXP_DECL void
        PCRE2_CALL_CONVENTION \\\n  pcre2_substring_free(PCRE2_UCHAR *); \\\nPCRE2_EXP_DECL
        int PCRE2_CALL_CONVENTION \\\n  pcre2_substring_get_byname(pcre2_match_data
        *, PCRE2_SPTR, PCRE2_UCHAR **, \\\n    PCRE2_SIZE *); \\\nPCRE2_EXP_DECL int
        PCRE2_CALL_CONVENTION \\\n  pcre2_substring_get_bynumber(pcre2_match_data
        *, uint32_t, PCRE2_UCHAR **, \\\n    PCRE2_SIZE *); \\\nPCRE2_EXP_DECL int
        PCRE2_CALL_CONVENTION \\\n  pcre2_substring_length_byname(pcre2_match_data
        *, PCRE2_SPTR, PCRE2_SIZE *); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION
        \\\n  pcre2_substring_length_bynumber(pcre2_match_data *, uint32_t, PCRE2_SIZE
        *); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_substring_nametable_scan(const
        pcre2_code *, PCRE2_SPTR, PCRE2_SPTR *, \\\n    PCRE2_SPTR *); \\\nPCRE2_EXP_DECL
        int PCRE2_CALL_CONVENTION \\\n  pcre2_substring_number_from_name(const pcre2_code
        *, PCRE2_SPTR); \\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \\\n  pcre2_substring_list_free(PCRE2_SPTR
        *); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_substring_list_get(pcre2_match_data
        *, PCRE2_UCHAR ***, PCRE2_SIZE **);"
    - item_type: preproc_def
      name: PCRE2_SERIALIZE_FUNCTIONS
      pos:
        line_end: 741
        line_start: 730
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \\\n  pcre2_serialize_encode(const
        pcre2_code **, int32_t, uint8_t **, \\\n    PCRE2_SIZE *, pcre2_general_context
        *); \\\nPCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \\\n  pcre2_serialize_decode(pcre2_code
        **, int32_t, const uint8_t *, \\\n    pcre2_general_context *); \\\nPCRE2_EXP_DECL
        int32_t PCRE2_CALL_CONVENTION \\\n  pcre2_serialize_get_number_of_codes(const
        uint8_t *); \\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \\\n  pcre2_serialize_free(uint8_t
        *);"
    - item_type: preproc_def
      name: PCRE2_SUBSTITUTE_FUNCTION
      pos:
        line_end: 750
        line_start: 745
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_substitute(const
        pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \\\n    uint32_t, pcre2_match_data
        *, pcre2_match_context *, PCRE2_SPTR, \\\n    PCRE2_SIZE, PCRE2_UCHAR *, PCRE2_SIZE
        *);"
    - item_type: preproc_def
      name: PCRE2_CONVERT_FUNCTIONS
      pos:
        line_end: 760
        line_start: 754
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_pattern_convert(PCRE2_SPTR,
        PCRE2_SIZE, uint32_t, PCRE2_UCHAR **, \\\n    PCRE2_SIZE *, pcre2_convert_context
        *); \\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \\\n  pcre2_converted_pattern_free(PCRE2_UCHAR
        *);"
    - item_type: preproc_def
      name: PCRE2_JIT_FUNCTIONS
      pos:
        line_end: 778
        line_start: 764
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_jit_compile(pcre2_code
        *, uint32_t); \\\nPCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_jit_match(const
        pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \\\n    uint32_t, pcre2_match_data
        *, pcre2_match_context *); \\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \\\n
        \ pcre2_jit_free_unused_memory(pcre2_general_context *); \\\nPCRE2_EXP_DECL
        pcre2_jit_stack PCRE2_CALL_CONVENTION \\\n  *pcre2_jit_stack_create(PCRE2_SIZE,
        PCRE2_SIZE, pcre2_general_context *); \\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION
        \\\n  pcre2_jit_stack_assign(pcre2_match_context *, pcre2_jit_callback, void
        *); \\\nPCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \\\n  pcre2_jit_stack_free(pcre2_jit_stack
        *);"
    - item_type: preproc_def
      name: PCRE2_OTHER_FUNCTIONS
      pos:
        line_end: 789
        line_start: 782
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: "PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \\\n  pcre2_get_error_message(int,
        PCRE2_UCHAR *, PCRE2_SIZE); \\\nPCRE2_EXP_DECL const uint8_t PCRE2_CALL_CONVENTION
        \\\n  *pcre2_maketables(pcre2_general_context *); \\\nPCRE2_EXP_DECL void
        PCRE2_CALL_CONVENTION \\\n  pcre2_maketables_free(pcre2_general_context *,
        const uint8_t *);"
    - item_type: preproc_def
      name: PCRE2_UCHAR
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(PCRE2_UCHAR)
    - item_type: preproc_def
      name: PCRE2_SPTR
      pos:
        line_end: 806
        line_start: 805
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(PCRE2_SPTR)
    - item_type: preproc_def
      name: pcre2_code
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_code_)
    - item_type: preproc_def
      name: pcre2_jit_callback
      pos:
        line_end: 809
        line_start: 808
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_jit_callback_)
    - item_type: preproc_def
      name: pcre2_jit_stack
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_jit_stack_)
    - item_type: preproc_def
      name: pcre2_real_code
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_real_code_)
    - item_type: preproc_def
      name: pcre2_real_general_context
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_real_general_context_)
    - item_type: preproc_def
      name: pcre2_real_compile_context
      pos:
        line_end: 814
        line_start: 813
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_real_compile_context_)
    - item_type: preproc_def
      name: pcre2_real_convert_context
      pos:
        line_end: 815
        line_start: 814
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_real_convert_context_)
    - item_type: preproc_def
      name: pcre2_real_match_context
      pos:
        line_end: 816
        line_start: 815
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_real_match_context_)
    - item_type: preproc_def
      name: pcre2_real_jit_stack
      pos:
        line_end: 817
        line_start: 816
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_real_jit_stack_)
    - item_type: preproc_def
      name: pcre2_real_match_data
      pos:
        line_end: 818
        line_start: 817
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_real_match_data_)
    - item_type: preproc_def
      name: pcre2_callout_block
      pos:
        line_end: 823
        line_start: 822
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_callout_block_)
    - item_type: preproc_def
      name: pcre2_callout_enumerate_block
      pos:
        line_end: 824
        line_start: 823
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_callout_enumerate_block_)
    - item_type: preproc_def
      name: pcre2_substitute_callout_block
      pos:
        line_end: 825
        line_start: 824
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substitute_callout_block_)
    - item_type: preproc_def
      name: pcre2_general_context
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_general_context_)
    - item_type: preproc_def
      name: pcre2_compile_context
      pos:
        line_end: 827
        line_start: 826
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_compile_context_)
    - item_type: preproc_def
      name: pcre2_convert_context
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_convert_context_)
    - item_type: preproc_def
      name: pcre2_match_context
      pos:
        line_end: 829
        line_start: 828
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_match_context_)
    - item_type: preproc_def
      name: pcre2_match_data
      pos:
        line_end: 830
        line_start: 829
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_match_data_)
    - item_type: preproc_def
      name: pcre2_callout_enumerate
      pos:
        line_end: 835
        line_start: 834
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_callout_enumerate_)
    - item_type: preproc_def
      name: pcre2_code_copy
      pos:
        line_end: 836
        line_start: 835
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_code_copy_)
    - item_type: preproc_def
      name: pcre2_code_copy_with_tables
      pos:
        line_end: 837
        line_start: 836
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_code_copy_with_tables_)
    - item_type: preproc_def
      name: pcre2_code_free
      pos:
        line_end: 838
        line_start: 837
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_code_free_)
    - item_type: preproc_def
      name: pcre2_compile
      pos:
        line_end: 839
        line_start: 838
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_compile_)
    - item_type: preproc_def
      name: pcre2_compile_context_copy
      pos:
        line_end: 840
        line_start: 839
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_compile_context_copy_)
    - item_type: preproc_def
      name: pcre2_compile_context_create
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_compile_context_create_)
    - item_type: preproc_def
      name: pcre2_compile_context_free
      pos:
        line_end: 842
        line_start: 841
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_compile_context_free_)
    - item_type: preproc_def
      name: pcre2_config
      pos:
        line_end: 843
        line_start: 842
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_config_)
    - item_type: preproc_def
      name: pcre2_convert_context_copy
      pos:
        line_end: 844
        line_start: 843
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_convert_context_copy_)
    - item_type: preproc_def
      name: pcre2_convert_context_create
      pos:
        line_end: 845
        line_start: 844
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_convert_context_create_)
    - item_type: preproc_def
      name: pcre2_convert_context_free
      pos:
        line_end: 846
        line_start: 845
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_convert_context_free_)
    - item_type: preproc_def
      name: pcre2_converted_pattern_free
      pos:
        line_end: 847
        line_start: 846
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_converted_pattern_free_)
    - item_type: preproc_def
      name: pcre2_dfa_match
      pos:
        line_end: 848
        line_start: 847
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_dfa_match_)
    - item_type: preproc_def
      name: pcre2_general_context_copy
      pos:
        line_end: 849
        line_start: 848
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_general_context_copy_)
    - item_type: preproc_def
      name: pcre2_general_context_create
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_general_context_create_)
    - item_type: preproc_def
      name: pcre2_general_context_free
      pos:
        line_end: 851
        line_start: 850
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_general_context_free_)
    - item_type: preproc_def
      name: pcre2_get_error_message
      pos:
        line_end: 852
        line_start: 851
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_get_error_message_)
    - item_type: preproc_def
      name: pcre2_get_mark
      pos:
        line_end: 853
        line_start: 852
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_get_mark_)
    - item_type: preproc_def
      name: pcre2_get_match_data_size
      pos:
        line_end: 854
        line_start: 853
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_get_match_data_size_)
    - item_type: preproc_def
      name: pcre2_get_ovector_pointer
      pos:
        line_end: 855
        line_start: 854
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_get_ovector_pointer_)
    - item_type: preproc_def
      name: pcre2_get_ovector_count
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_get_ovector_count_)
    - item_type: preproc_def
      name: pcre2_get_startchar
      pos:
        line_end: 857
        line_start: 856
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_get_startchar_)
    - item_type: preproc_def
      name: pcre2_jit_compile
      pos:
        line_end: 858
        line_start: 857
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_jit_compile_)
    - item_type: preproc_def
      name: pcre2_jit_match
      pos:
        line_end: 859
        line_start: 858
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_jit_match_)
    - item_type: preproc_def
      name: pcre2_jit_free_unused_memory
      pos:
        line_end: 860
        line_start: 859
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_jit_free_unused_memory_)
    - item_type: preproc_def
      name: pcre2_jit_stack_assign
      pos:
        line_end: 861
        line_start: 860
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_jit_stack_assign_)
    - item_type: preproc_def
      name: pcre2_jit_stack_create
      pos:
        line_end: 862
        line_start: 861
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_jit_stack_create_)
    - item_type: preproc_def
      name: pcre2_jit_stack_free
      pos:
        line_end: 863
        line_start: 862
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_jit_stack_free_)
    - item_type: preproc_def
      name: pcre2_maketables
      pos:
        line_end: 864
        line_start: 863
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_maketables_)
    - item_type: preproc_def
      name: pcre2_maketables_free
      pos:
        line_end: 865
        line_start: 864
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_maketables_free_)
    - item_type: preproc_def
      name: pcre2_match
      pos:
        line_end: 866
        line_start: 865
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_match_)
    - item_type: preproc_def
      name: pcre2_match_context_copy
      pos:
        line_end: 867
        line_start: 866
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_match_context_copy_)
    - item_type: preproc_def
      name: pcre2_match_context_create
      pos:
        line_end: 868
        line_start: 867
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_match_context_create_)
    - item_type: preproc_def
      name: pcre2_match_context_free
      pos:
        line_end: 869
        line_start: 868
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_match_context_free_)
    - item_type: preproc_def
      name: pcre2_match_data_create
      pos:
        line_end: 870
        line_start: 869
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_match_data_create_)
    - item_type: preproc_def
      name: pcre2_match_data_create_from_pattern
      pos:
        line_end: 871
        line_start: 870
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_match_data_create_from_pattern_)
    - item_type: preproc_def
      name: pcre2_match_data_free
      pos:
        line_end: 872
        line_start: 871
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_match_data_free_)
    - item_type: preproc_def
      name: pcre2_pattern_convert
      pos:
        line_end: 873
        line_start: 872
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_pattern_convert_)
    - item_type: preproc_def
      name: pcre2_pattern_info
      pos:
        line_end: 874
        line_start: 873
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_pattern_info_)
    - item_type: preproc_def
      name: pcre2_serialize_decode
      pos:
        line_end: 875
        line_start: 874
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_serialize_decode_)
    - item_type: preproc_def
      name: pcre2_serialize_encode
      pos:
        line_end: 876
        line_start: 875
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_serialize_encode_)
    - item_type: preproc_def
      name: pcre2_serialize_free
      pos:
        line_end: 877
        line_start: 876
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_serialize_free_)
    - item_type: preproc_def
      name: pcre2_serialize_get_number_of_codes
      pos:
        line_end: 878
        line_start: 877
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_serialize_get_number_of_codes_)
    - item_type: preproc_def
      name: pcre2_set_bsr
      pos:
        line_end: 879
        line_start: 878
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_bsr_)
    - item_type: preproc_def
      name: pcre2_set_callout
      pos:
        line_end: 880
        line_start: 879
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_callout_)
    - item_type: preproc_def
      name: pcre2_set_character_tables
      pos:
        line_end: 881
        line_start: 880
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_character_tables_)
    - item_type: preproc_def
      name: pcre2_set_compile_extra_options
      pos:
        line_end: 882
        line_start: 881
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_compile_extra_options_)
    - item_type: preproc_def
      name: pcre2_set_compile_recursion_guard
      pos:
        line_end: 883
        line_start: 882
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_compile_recursion_guard_)
    - item_type: preproc_def
      name: pcre2_set_depth_limit
      pos:
        line_end: 884
        line_start: 883
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_depth_limit_)
    - item_type: preproc_def
      name: pcre2_set_glob_escape
      pos:
        line_end: 885
        line_start: 884
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_glob_escape_)
    - item_type: preproc_def
      name: pcre2_set_glob_separator
      pos:
        line_end: 886
        line_start: 885
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_glob_separator_)
    - item_type: preproc_def
      name: pcre2_set_heap_limit
      pos:
        line_end: 887
        line_start: 886
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_heap_limit_)
    - item_type: preproc_def
      name: pcre2_set_match_limit
      pos:
        line_end: 888
        line_start: 887
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_match_limit_)
    - item_type: preproc_def
      name: pcre2_set_max_pattern_length
      pos:
        line_end: 889
        line_start: 888
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_max_pattern_length_)
    - item_type: preproc_def
      name: pcre2_set_newline
      pos:
        line_end: 890
        line_start: 889
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_newline_)
    - item_type: preproc_def
      name: pcre2_set_parens_nest_limit
      pos:
        line_end: 891
        line_start: 890
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_parens_nest_limit_)
    - item_type: preproc_def
      name: pcre2_set_offset_limit
      pos:
        line_end: 892
        line_start: 891
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_offset_limit_)
    - item_type: preproc_def
      name: pcre2_set_substitute_callout
      pos:
        line_end: 893
        line_start: 892
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_substitute_callout_)
    - item_type: preproc_def
      name: pcre2_substitute
      pos:
        line_end: 894
        line_start: 893
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substitute_)
    - item_type: preproc_def
      name: pcre2_substring_copy_byname
      pos:
        line_end: 895
        line_start: 894
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_copy_byname_)
    - item_type: preproc_def
      name: pcre2_substring_copy_bynumber
      pos:
        line_end: 896
        line_start: 895
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_copy_bynumber_)
    - item_type: preproc_def
      name: pcre2_substring_free
      pos:
        line_end: 897
        line_start: 896
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_free_)
    - item_type: preproc_def
      name: pcre2_substring_get_byname
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_get_byname_)
    - item_type: preproc_def
      name: pcre2_substring_get_bynumber
      pos:
        line_end: 899
        line_start: 898
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_get_bynumber_)
    - item_type: preproc_def
      name: pcre2_substring_length_byname
      pos:
        line_end: 900
        line_start: 899
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_length_byname_)
    - item_type: preproc_def
      name: pcre2_substring_length_bynumber
      pos:
        line_end: 901
        line_start: 900
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_length_bynumber_)
    - item_type: preproc_def
      name: pcre2_substring_list_get
      pos:
        line_end: 902
        line_start: 901
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_list_get_)
    - item_type: preproc_def
      name: pcre2_substring_list_free
      pos:
        line_end: 903
        line_start: 902
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_list_free_)
    - item_type: preproc_def
      name: pcre2_substring_nametable_scan
      pos:
        line_end: 904
        line_start: 903
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_nametable_scan_)
    - item_type: preproc_def
      name: pcre2_substring_number_from_name
      pos:
        line_end: 905
        line_start: 904
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_substring_number_from_name_)
    - item_type: preproc_def
      name: pcre2_set_recursion_limit
      pos:
        line_end: 908
        line_start: 907
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_recursion_limit_)
    - item_type: preproc_def
      name: pcre2_set_recursion_memory_management
      pos:
        line_end: 911
        line_start: 910
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: PCRE2_SUFFIX(pcre2_set_recursion_memory_management_)
    - item_type: preproc_def
      name: PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS
      pos:
        line_end: 932
        line_start: 915
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: 'PCRE2_TYPES_LIST \

        PCRE2_STRUCTURE_LIST \

        PCRE2_GENERAL_INFO_FUNCTIONS \

        PCRE2_GENERAL_CONTEXT_FUNCTIONS \

        PCRE2_COMPILE_CONTEXT_FUNCTIONS \

        PCRE2_CONVERT_CONTEXT_FUNCTIONS \

        PCRE2_CONVERT_FUNCTIONS \

        PCRE2_MATCH_CONTEXT_FUNCTIONS \

        PCRE2_COMPILE_FUNCTIONS \

        PCRE2_PATTERN_INFO_FUNCTIONS \

        PCRE2_MATCH_FUNCTIONS \

        PCRE2_SUBSTRING_FUNCTIONS \

        PCRE2_SERIALIZE_FUNCTIONS \

        PCRE2_SUBSTITUTE_FUNCTION \

        PCRE2_JIT_FUNCTIONS \

        PCRE2_OTHER_FUNCTIONS'
    - item_type: preproc_def
      name: PCRE2_LOCAL_WIDTH
      pos:
        line_end: 934
        line_start: 933
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PCRE2_LOCAL_WIDTH
      pos:
        line_end: 938
        line_start: 937
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PCRE2_LOCAL_WIDTH
      pos:
        line_end: 942
        line_start: 941
        source_file: /src/pcre2/src/pcre2.h
      type_or_value: '32'
    structs:
    - fields:
      - name: version
        type: uint32_t
      - name: pattern_position
        type: PCRE2_SIZE
      - name: next_item_length
        type: PCRE2_SIZE
      - name: callout_number
        type: uint32_t
      - name: callout_string_offset
        type: PCRE2_SIZE
      - name: callout_string_length
        type: PCRE2_SIZE
      - name: callout_string
        type: PCRE2_SPTR
      item_type: struct
      name: pcre2_callout_enumerate_block
      pos:
        line_end: 548
        line_start: 538
        source_file: /src/pcre2/src/pcre2.h
    - fields:
      - name: version
        type: uint32_t
      - name: input
        type: PCRE2_SPTR
      - name: output
        type: PCRE2_SPTR
      - name: output_offsets[2]
        type: PCRE2_SIZE
      - name: '*ovector'
        type: PCRE2_SIZE
      - name: oveccount
        type: uint32_t
      - name: subscount
        type: uint32_t
      item_type: struct
      name: pcre2_substitute_callout_block
      pos:
        line_end: 560
        line_start: 550
        source_file: /src/pcre2/src/pcre2.h
    typedefs:
    - item_type: typedef
      name: PCRE2_UCHAR8
      pos:
        line_end: 457
        line_start: 457
        source_file: /src/pcre2/src/pcre2.h
      type: uint8_t
    - item_type: typedef
      name: PCRE2_UCHAR16
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/pcre2/src/pcre2.h
      type: uint16_t
    - item_type: typedef
      name: PCRE2_UCHAR32
      pos:
        line_end: 459
        line_start: 459
        source_file: /src/pcre2/src/pcre2.h
      type: uint32_t
    - item_type: typedef
      name: '*PCRE2_SPTR8'
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/pcre2/src/pcre2.h
      type: PCRE2_UCHAR8
    - item_type: typedef
      name: '*PCRE2_SPTR16'
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/pcre2/src/pcre2.h
      type: PCRE2_UCHAR16
    - item_type: typedef
      name: '*PCRE2_SPTR32'
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/pcre2/src/pcre2.h
      type: PCRE2_UCHAR32
    union: []
- function_names:
  - PRIV
  - PRIV
  - pcre2_jit_free_unused_memory
  - pcre2_jit_stack_create
  - pcre2_jit_stack_assign
  - pcre2_jit_stack_free
  - PRIV
  - PRIV
  source_file: /src/pcre2/src/pcre2_jit_misc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SET_BIT
  - find_minlength
  - set_table_bit
  - set_type_bits
  - set_nottype_bits
  - set_start_bits
  - PRIV
  source_file: /src/pcre2/src/pcre2_study.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CACHE_BACKREF
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/pcre2/src/pcre2_study.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pcre2_substring_copy_byname
  - pcre2_substring_copy_bynumber
  - pcre2_substring_get_byname
  - pcre2_substring_get_bynumber
  - pcre2_substring_free
  - pcre2_substring_length_byname
  - pcre2_substring_length_bynumber
  - pcre2_substring_list_get
  - pcre2_substring_list_free
  - pcre2_substring_nametable_scan
  - pcre2_substring_number_from_name
  source_file: /src/pcre2/src/pcre2_substring.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pcre2_serialize_encode
  - pcre2_serialize_decode
  - pcre2_serialize_get_number_of_codes
  - pcre2_serialize_free
  source_file: /src/pcre2/src/pcre2_serialize.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SERIALIZED_DATA_MAGIC
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/pcre2/src/pcre2_serialize.c
      type_or_value: 0x50523253u
    - item_type: preproc_def
      name: SERIALIZED_DATA_VERSION
      pos:
        line_end: 60
        line_start: 58
        source_file: /src/pcre2/src/pcre2_serialize.c
      type_or_value: ((PCRE2_MAJOR) | ((PCRE2_MINOR) << 16))
    - item_type: preproc_def
      name: SERIALIZED_DATA_CONFIG
      pos:
        line_end: 63
        line_start: 61
        source_file: /src/pcre2/src/pcre2_serialize.c
      type_or_value: (sizeof(PCRE2_UCHAR) | ((sizeof(void*)) << 8) | ((sizeof(PCRE2_SIZE))
        << 16))
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRIV
  source_file: /src/pcre2/src/pcre2_xclass.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRIV
  - PRIV
  source_file: /src/pcre2/src/pcre2_ord2utf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/pcre2/src/pcre2_ucp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - jit_machine_stack_exec
  - pcre2_jit_match
  source_file: /src/pcre2/src/pcre2_jit_match.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: '*executable_func'
        type: void
      - name: call_executable_func
        type: jit_function
      item_type: union
      name: convert_executable_func
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/pcre2/src/pcre2_jit_match.c
- function_names:
  - default_malloc
  - default_free
  - PRIV
  - pcre2_general_context_create
  - pcre2_compile_context_create
  - pcre2_match_context_create
  - pcre2_convert_context_create
  - pcre2_general_context_copy
  - pcre2_compile_context_copy
  - pcre2_match_context_copy
  - pcre2_convert_context_copy
  - pcre2_general_context_free
  - pcre2_compile_context_free
  - pcre2_match_context_free
  - pcre2_convert_context_free
  - pcre2_set_character_tables
  - pcre2_set_bsr
  - pcre2_set_max_pattern_length
  - pcre2_set_newline
  - pcre2_set_parens_nest_limit
  - pcre2_set_compile_extra_options
  - pcre2_set_compile_recursion_guard
  - pcre2_set_callout
  - pcre2_set_substitute_callout
  - pcre2_set_heap_limit
  - pcre2_set_match_limit
  - pcre2_set_depth_limit
  - pcre2_set_offset_limit
  - pcre2_set_recursion_limit
  - pcre2_set_recursion_memory_management
  - pcre2_set_glob_separator
  - pcre2_set_glob_escape
  source_file: /src/pcre2/src/pcre2_context.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/pcre2/src/pcre2_ucd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRIV
  source_file: /src/pcre2/src/pcre2_script_run.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SCRIPT_UNSET
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: (-99999)
    - item_type: preproc_def
      name: SCRIPT_HANPENDING
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: (-99998)
    - item_type: preproc_def
      name: SCRIPT_HANHIRAKATA
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: (-99997)
    - item_type: preproc_def
      name: SCRIPT_HANBOPOMOFO
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: (-99996)
    - item_type: preproc_def
      name: SCRIPT_HANHANGUL
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: (-99995)
    - item_type: preproc_def
      name: SCRIPT_LIST
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: (-99994)
    - item_type: preproc_def
      name: INTERSECTION_LIST_SIZE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: '50'
    - item_type: preproc_def
      name: FOUND_BOPOMOFO
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FOUND_HIRAGANA
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FOUND_KATAKANA
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FOUND_HANGUL
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/pcre2/src/pcre2_script_run.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - FWRITE_IGNORE
  - emulated_memmove
  - memmove
  - ord2utf8
  - strcmpic
  - parse_grep_colors
  - pcre2grep_exit
  - add_pattern
  - free_pattern_chain
  - free_file_chain
  - iswild
  - BGR_RGB
  - decode_ANSI_colour
  - init_colour_output
  - isdirectory
  - opendirectory
  - readdirectory
  - closedirectory
  - isregfile
  - is_stdout_tty
  - is_file_tty
  - is_stdout_tty
  - is_file_tty
  - print_match
  - isdirectory
  - opendirectory
  - readdirectory
  - closedirectory
  - isregfile
  - is_stdout_tty
  - is_file_tty
  - print_match
  - isdirectory
  - opendirectory
  - readdirectory
  - closedirectory
  - isregfile
  - is_stdout_tty
  - is_file_tty
  - print_match
  - strerror
  - usage
  - help
  - test_incexc
  - decode_number
  - add_number
  - read_one_line
  - end_of_line
  - previous_line
  - write_final_newline
  - do_after_lines
  - match_patterns
  - decode_dollar_escape
  - syntax_check_output_text
  - display_output_text
  - pcre2grep_callout
  - fill_buffer
  - pcre2grep
  - grep_or_recurse
  - handle_option
  - ordin
  - compile_pattern
  - read_pattern_file
  - main
  source_file: /src/pcre2/src/pcre2grep.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '8'
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: SIZ_FORM
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: SIZ_FORM
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: SIZ_FORM
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '"zu"'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '0'
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DEFAULT_CAPTURE_MAX
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '50'
    - item_type: preproc_def
      name: MAXPATLEN
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: BUFSIZ
    - item_type: preproc_def
      name: MAXPATLEN
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: FNBUFSIZ
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: ERRBUFSIZ
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '256'
    - item_type: preproc_def
      name: PO_WORD_MATCH
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: PO_LINE_MATCH
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: PO_FIXED_STRINGS
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: STDOUT_NL
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '"\r\n"'
    - item_type: preproc_def
      name: STDOUT_NL_LEN
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '2'
    - item_type: preproc_def
      name: QUOT
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '"\""'
    - item_type: preproc_def
      name: STDOUT_NL
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '"\n"'
    - item_type: preproc_def
      name: STDOUT_NL_LEN
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '1'
    - item_type: preproc_def
      name: QUOT
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '"''"'
    - item_type: preproc_def
      name: STDOUT_NL_CODE
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: 0x7fffffffu
    - item_type: preproc_def
      name: N_COLOUR
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: N_EXCLUDE
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: N_EXCLUDE_DIR
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-3)
    - item_type: preproc_def
      name: N_HELP
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-4)
    - item_type: preproc_def
      name: N_INCLUDE
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-5)
    - item_type: preproc_def
      name: N_INCLUDE_DIR
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-6)
    - item_type: preproc_def
      name: N_LABEL
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-7)
    - item_type: preproc_def
      name: N_LOCALE
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-8)
    - item_type: preproc_def
      name: N_NULL
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-9)
    - item_type: preproc_def
      name: N_LOFFSETS
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-10)
    - item_type: preproc_def
      name: N_FOFFSETS
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-11)
    - item_type: preproc_def
      name: N_LBUFFER
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-12)
    - item_type: preproc_def
      name: N_H_LIMIT
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-13)
    - item_type: preproc_def
      name: N_M_LIMIT
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-14)
    - item_type: preproc_def
      name: N_M_LIMIT_DEP
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-15)
    - item_type: preproc_def
      name: N_BUFSIZE
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-16)
    - item_type: preproc_def
      name: N_NOJIT
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-17)
    - item_type: preproc_def
      name: N_FILE_LIST
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-18)
    - item_type: preproc_def
      name: N_BINARY_FILES
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-19)
    - item_type: preproc_def
      name: N_EXCLUDE_FROM
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-20)
    - item_type: preproc_def
      name: N_INCLUDE_FROM
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-21)
    - item_type: preproc_def
      name: N_OM_SEPARATOR
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-22)
    - item_type: preproc_def
      name: N_MAX_BUFSIZE
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-23)
    - item_type: preproc_def
      name: N_OM_CAPTURE
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-24)
    - item_type: preproc_def
      name: N_ALLABSK
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: (-25)
    - item_type: preproc_def
      name: FILESEP
      pos:
        line_end: 861
        line_start: 860
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '''/'''
    - item_type: preproc_def
      name: INVALID_FILE_ATTRIBUTES
      pos:
        line_end: 969
        line_start: 968
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '0xFFFFFFFF'
    - item_type: preproc_def
      name: FILESEP
      pos:
        line_end: 979
        line_start: 978
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '''/'''
    - item_type: preproc_def
      name: FILESEP
      pos:
        line_end: 1108
        line_start: 1107
        source_file: /src/pcre2/src/pcre2grep.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*next'
        type: struct omstr
      - name: groupnum
        type: int
      item_type: struct
      name: omstr
      pos:
        line_end: 301
        line_start: 298
        source_file: /src/pcre2/src/pcre2grep.c
    - fields:
      - name: '**anchor'
        type: omstr
      - name: '**lastptr'
        type: omstr
      item_type: struct
      name: omdatastr
      pos:
        line_end: 312
        line_start: 309
        source_file: /src/pcre2/src/pcre2grep.c
    - fields:
      - name: '*next'
        type: struct fnstr
      - name: '*name'
        type: char
      item_type: struct
      name: fnstr
      pos:
        line_end: 321
        line_start: 318
        source_file: /src/pcre2/src/pcre2grep.c
    - fields:
      - name: '**anchor'
        type: fnstr
      - name: '**lastptr'
        type: fnstr
      item_type: struct
      name: fndatastr
      pos:
        line_end: 338
        line_start: 335
        source_file: /src/pcre2/src/pcre2grep.c
    - fields:
      - name: '*next'
        type: struct patstr
      - name: '*string'
        type: char
      - name: length
        type: PCRE2_SIZE
      - name: '*compiled'
        type: pcre2_code
      item_type: struct
      name: patstr
      pos:
        line_end: 353
        line_start: 348
        source_file: /src/pcre2/src/pcre2grep.c
    - fields:
      - name: '**anchor'
        type: patstr
      - name: '**lastptr'
        type: patstr
      item_type: struct
      name: patdatastr
      pos:
        line_end: 372
        line_start: 369
        source_file: /src/pcre2/src/pcre2grep.c
    - fields:
      - name: type
        type: int
      - name: one_char
        type: int
      - name: '*dataptr'
        type: void
      - name: '*long_name'
        type: char
      - name: '*help_text'
        type: char
      item_type: struct
      name: option_item
      pos:
        line_end: 397
        line_start: 391
        source_file: /src/pcre2/src/pcre2grep.c
    - fields:
      - name: handle
        type: HANDLE
      - name: first
        type: BOOL
      - name: data
        type: WIN32_FIND_DATA
      item_type: struct
      name: directory_type
      pos:
        line_end: 976
        line_start: 971
        source_file: /src/pcre2/src/pcre2grep.c
    typedefs:
    - item_type: typedef
      name: BOOL
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/pcre2/src/pcre2grep.c
      type: int
    - item_type: typedef
      name: directory_type
      pos:
        line_end: 859
        line_start: 859
        source_file: /src/pcre2/src/pcre2grep.c
      type: DIR
    - item_type: typedef
      name: directory_type
      pos:
        line_end: 1108
        line_start: 1108
        source_file: /src/pcre2/src/pcre2grep.c
      type: void
    union: []
- function_names: []
  source_file: /src/pcre2/src/pcre2_chartables.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - regerror
  - regfree
  - regcomp
  - regexec
  - pcre2_regerror
  - pcre2_regfree
  - pcre2_regcomp
  - pcre2_regexec
  source_file: /src/pcre2/src/pcre2posix.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DECL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/pcre2/src/pcre2posix.c
      type_or_value: extern __declspec(dllexport)
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DEFN
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/pcre2/src/pcre2posix.c
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/pcre2/src/pcre2posix.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: COMPILE_ERROR_BASE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/pcre2/src/pcre2posix.c
      type_or_value: '100'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/pcre2/src/pcre2posix.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REG_ICASE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: REG_NEWLINE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: REG_NOTBOL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: REG_NOTEOL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: REG_DOTALL
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: REG_NOSUB
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0020  '
    - item_type: preproc_def
      name: REG_UTF
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0040  '
    - item_type: preproc_def
      name: REG_STARTEND
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0080  '
    - item_type: preproc_def
      name: REG_NOTEMPTY
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0100  '
    - item_type: preproc_def
      name: REG_UNGREEDY
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0200  '
    - item_type: preproc_def
      name: REG_UCP
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0400  '
    - item_type: preproc_def
      name: REG_PEND
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x0800  '
    - item_type: preproc_def
      name: REG_NOSPEC
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0x1000  '
    - item_type: preproc_def
      name: REG_EXTENDED
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DECL
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: extern __declspec(dllimport)
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DEFN
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DECL
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: extern "C"
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DEFN
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: extern "C"
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DECL
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: extern
    - item_type: preproc_def
      name: PCRE2POSIX_EXP_DEFN
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: extern
    - item_type: preproc_def
      name: regcomp
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: pcre2_regcomp
    - item_type: preproc_def
      name: regexec
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: pcre2_regexec
    - item_type: preproc_def
      name: regerror
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: pcre2_regerror
    - item_type: preproc_def
      name: regfree
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: pcre2_regfree
    - item_type: preproc_def
      name: PCRE2regcomp
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: pcre2_regcomp
    - item_type: preproc_def
      name: PCRE2regexec
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: pcre2_regexec
    - item_type: preproc_def
      name: PCRE2regerror
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: pcre2_regerror
    - item_type: preproc_def
      name: PCRE2regfree
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/pcre2/src/pcre2posix.h
      type_or_value: pcre2_regfree
    structs:
    - fields:
      - name: '*re_pcre2_code'
        type: void
      - name: '*re_match_data'
        type: void
      - name: '*re_endp'
        type: char
      - name: re_nsub
        type: size_t
      - name: re_erroffset
        type: size_t
      - name: re_cflags
        type: int
      item_type: struct
      name: regex_t
      pos:
        line_end: 107
        line_start: 100
        source_file: /src/pcre2/src/pcre2posix.h
    - fields:
      - name: rm_so
        type: regoff_t
      - name: rm_eo
        type: regoff_t
      item_type: struct
      name: regmatch_t
      pos:
        line_end: 116
        line_start: 113
        source_file: /src/pcre2/src/pcre2posix.h
    typedefs:
    - item_type: typedef
      name: regoff_t
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/pcre2/src/pcre2posix.h
      type: int
    union: []
- function_names:
  - main
  source_file: /src/pcre2/src/pcre2demo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/pcre2/src/pcre2demo.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRIV
  - PRIV
  source_file: /src/pcre2/src/pcre2_extuni.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_text_end
  - CHECKMEMCPY
  - pcre2_substitute
  source_file: /src/pcre2/src/pcre2_substitute.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTR_STACK_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/pcre2/src/pcre2_substitute.c
      type_or_value: '20'
    - item_type: preproc_def
      name: SUBSTITUTE_OPTIONS
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/pcre2/src/pcre2_substitute.c
      type_or_value: "(PCRE2_SUBSTITUTE_EXTENDED|PCRE2_SUBSTITUTE_GLOBAL| \\\n   PCRE2_SUBSTITUTE_LITERAL|PCRE2_SUBSTITUTE_MATCHED|
        \\\n   PCRE2_SUBSTITUTE_OVERFLOW_LENGTH|PCRE2_SUBSTITUTE_REPLACEMENT_ONLY|
        \\\n   PCRE2_SUBSTITUTE_UNKNOWN_UNSET|PCRE2_SUBSTITUTE_UNSET_EMPTY)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRINTABLE
  - PRINTABLE
  - XDIGIT
  - XDIGIT
  - PUTOFFSET
  - GETOFFSET
  - GETPLUSOFFSET
  - READPLUSOFFSET
  - SKIPOFFSET
  - PUTOFFSET
  - GETOFFSET
  - GETPLUSOFFSET
  - READPLUSOFFSET
  - SKIPOFFSET
  - META_CODE
  - META_DATA
  - META_DIFF
  - SETBIT
  - IS_DIGIT
  - UPPER_CASE
  - UPPER_CASE
  - UPPER_CASE
  - show_parsed
  - pcre2_code_copy
  - pcre2_code_copy_with_tables
  - pcre2_code_free
  - read_number
  - read_repeat_counts
  - PRIV
  - get_ucp
  - check_posix_syntax
  - check_posix_name
  - read_name
  - manage_callouts
  - PARSED_LITERAL
  - PARSED_LITERAL
  - parse_regex
  - first_significant_code
  - get_othercase_range
  - add_to_class_internal
  - add_list_to_class_internal
  - add_to_class
  - add_list_to_class
  - add_not_list_to_class
  - find_dupname_details
  - compile_branch
  - compile_regex
  - is_anchored
  - is_startline
  - find_recurse
  - find_firstassertedcu
  - add_name_to_table
  - parsed_skip
  - get_grouplength
  - get_branchlength
  - set_lookbehind_lengths
  - check_lookbehinds
  - pcre2_compile
  source_file: /src/pcre2/src/pcre2_compile.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NLBLOCK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 'cb             '
    - item_type: preproc_def
      name: PSSTART
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 'start_pattern  '
    - item_type: preproc_def
      name: PSEND
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 'end_pattern    '
    - item_type: preproc_def
      name: STRING_UTFn_RIGHTPAR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: STRING_UTF8_RIGHTPAR, 5
    - item_type: preproc_def
      name: STRING_UTFn_RIGHTPAR
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: STRING_UTF16_RIGHTPAR, 6
    - item_type: preproc_def
      name: STRING_UTFn_RIGHTPAR
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: STRING_UTF32_RIGHTPAR, 6
    - item_type: preproc_def
      name: SIZEOFFSET
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOFFSET
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_GROUP_NUMBER
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 65535u
    - item_type: preproc_def
      name: MAX_REPEAT_COUNT
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 65535u
    - item_type: preproc_def
      name: REPEAT_UNLIMITED
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: (MAX_REPEAT_COUNT+1)
    - item_type: preproc_def
      name: COMPILE_WORK_SIZE
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '(3000*LINK_SIZE)   '
    - item_type: preproc_def
      name: C16_WORK_SIZE
      pos:
        line_end: 169
        line_start: 167
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: ((COMPILE_WORK_SIZE * sizeof(PCRE2_UCHAR))/sizeof(uint16_t))
    - item_type: preproc_def
      name: GROUPINFO_DEFAULT_SIZE
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '256'
    - item_type: preproc_def
      name: WORK_SIZE_SAFETY_MARGIN
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: (100)
    - item_type: preproc_def
      name: NAMED_GROUP_LIST_SIZE
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '20'
    - item_type: preproc_def
      name: PARSED_PATTERN_DEFAULT_SIZE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: OFLOW_MAX
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: (INT_MAX - 20)
    - item_type: preproc_def
      name: META_END
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80000000u  '
    - item_type: preproc_def
      name: META_ALT
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80010000u  '
    - item_type: preproc_def
      name: META_ATOMIC
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80020000u  '
    - item_type: preproc_def
      name: META_BACKREF
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80030000u  '
    - item_type: preproc_def
      name: META_BACKREF_BYNAME
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80040000u  '
    - item_type: preproc_def
      name: META_BIGVALUE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80050000u  '
    - item_type: preproc_def
      name: META_CALLOUT_NUMBER
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80060000u  '
    - item_type: preproc_def
      name: META_CALLOUT_STRING
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80070000u  '
    - item_type: preproc_def
      name: META_CAPTURE
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80080000u  '
    - item_type: preproc_def
      name: META_CIRCUMFLEX
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80090000u  '
    - item_type: preproc_def
      name: META_CLASS
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x800a0000u  '
    - item_type: preproc_def
      name: META_CLASS_EMPTY
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x800b0000u  '
    - item_type: preproc_def
      name: META_CLASS_EMPTY_NOT
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x800c0000u  '
    - item_type: preproc_def
      name: META_CLASS_END
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x800d0000u  '
    - item_type: preproc_def
      name: META_CLASS_NOT
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x800e0000u  '
    - item_type: preproc_def
      name: META_COND_ASSERT
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x800f0000u  '
    - item_type: preproc_def
      name: META_COND_DEFINE
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80100000u  '
    - item_type: preproc_def
      name: META_COND_NAME
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80110000u  '
    - item_type: preproc_def
      name: META_COND_NUMBER
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80120000u  '
    - item_type: preproc_def
      name: META_COND_RNAME
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80130000u  '
    - item_type: preproc_def
      name: META_COND_RNUMBER
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80140000u  '
    - item_type: preproc_def
      name: META_COND_VERSION
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80150000u  '
    - item_type: preproc_def
      name: META_DOLLAR
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80160000u  '
    - item_type: preproc_def
      name: META_DOT
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80170000u  '
    - item_type: preproc_def
      name: META_ESCAPE
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80180000u  '
    - item_type: preproc_def
      name: META_KET
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80190000u  '
    - item_type: preproc_def
      name: META_NOCAPTURE
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x801a0000u  '
    - item_type: preproc_def
      name: META_OPTIONS
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x801b0000u  '
    - item_type: preproc_def
      name: META_POSIX
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x801c0000u  '
    - item_type: preproc_def
      name: META_POSIX_NEG
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x801d0000u  '
    - item_type: preproc_def
      name: META_RANGE_ESCAPED
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x801e0000u  '
    - item_type: preproc_def
      name: META_RANGE_LITERAL
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x801f0000u  '
    - item_type: preproc_def
      name: META_RECURSE
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80200000u  '
    - item_type: preproc_def
      name: META_RECURSE_BYNAME
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80210000u  '
    - item_type: preproc_def
      name: META_SCRIPT_RUN
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80220000u  '
    - item_type: preproc_def
      name: META_LOOKAHEAD
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80230000u  '
    - item_type: preproc_def
      name: META_LOOKAHEADNOT
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80240000u  '
    - item_type: preproc_def
      name: META_LOOKBEHIND
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80250000u  '
    - item_type: preproc_def
      name: META_LOOKBEHINDNOT
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80260000u  '
    - item_type: preproc_def
      name: META_LOOKAHEAD_NA
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80270000u  '
    - item_type: preproc_def
      name: META_LOOKBEHIND_NA
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80280000u  '
    - item_type: preproc_def
      name: META_MARK
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80290000u  '
    - item_type: preproc_def
      name: META_ACCEPT
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x802a0000u  '
    - item_type: preproc_def
      name: META_FAIL
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x802b0000u  '
    - item_type: preproc_def
      name: META_COMMIT
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x802c0000u  '
    - item_type: preproc_def
      name: META_COMMIT_ARG
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x802d0000u  '
    - item_type: preproc_def
      name: META_PRUNE
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x802e0000u  '
    - item_type: preproc_def
      name: META_PRUNE_ARG
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x802f0000u  '
    - item_type: preproc_def
      name: META_SKIP
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80300000u  '
    - item_type: preproc_def
      name: META_SKIP_ARG
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80310000u  '
    - item_type: preproc_def
      name: META_THEN
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80320000u  '
    - item_type: preproc_def
      name: META_THEN_ARG
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80330000u  '
    - item_type: preproc_def
      name: META_ASTERISK
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80340000u  '
    - item_type: preproc_def
      name: META_ASTERISK_PLUS
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80350000u  '
    - item_type: preproc_def
      name: META_ASTERISK_QUERY
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80360000u  '
    - item_type: preproc_def
      name: META_PLUS
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80370000u  '
    - item_type: preproc_def
      name: META_PLUS_PLUS
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80380000u  '
    - item_type: preproc_def
      name: META_PLUS_QUERY
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x80390000u  '
    - item_type: preproc_def
      name: META_QUERY
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x803a0000u  '
    - item_type: preproc_def
      name: META_QUERY_PLUS
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x803b0000u  '
    - item_type: preproc_def
      name: META_QUERY_QUERY
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x803c0000u  '
    - item_type: preproc_def
      name: META_MINMAX
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x803d0000u  '
    - item_type: preproc_def
      name: META_MINMAX_PLUS
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x803e0000u  '
    - item_type: preproc_def
      name: META_MINMAX_QUERY
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '0x803f0000u  '
    - item_type: preproc_def
      name: META_FIRST_QUANTIFIER
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: META_ASTERISK
    - item_type: preproc_def
      name: META_LAST_QUANTIFIER
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: META_MINMAX_QUERY
    - item_type: preproc_def
      name: META_ATOMIC_SCRIPT_RUN
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 0x8fff0000u
    - item_type: preproc_def
      name: REQ_CASELESS
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '(1u << 0)       '
    - item_type: preproc_def
      name: REQ_VARY
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '(1u << 1)       '
    - item_type: preproc_def
      name: REQ_UNSET
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '(-2)            '
    - item_type: preproc_def
      name: REQ_NONE
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '(-1)            '
    - item_type: preproc_def
      name: GI_SET_FIXED_LENGTH
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 0x80000000u
    - item_type: preproc_def
      name: GI_NOT_FIXED_LENGTH
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 0x40000000u
    - item_type: preproc_def
      name: GI_FIXED_LENGTH_MASK
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 0x0000ffffu
    - item_type: preproc_def
      name: ESCAPES_FIRST
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: CHAR_0
    - item_type: preproc_def
      name: ESCAPES_LAST
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: CHAR_z
    - item_type: preproc_def
      name: ESCAPES_FIRST
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: CHAR_a
    - item_type: preproc_def
      name: ESCAPES_LAST
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: CHAR_9
    - item_type: preproc_def
      name: ESCAPES_FIRST
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '((unsigned char)''\x81'')   '
    - item_type: preproc_def
      name: ESCAPES_LAST
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '((unsigned char)''\xf9'')   '
    - item_type: preproc_def
      name: PC_GRAPH
      pos:
        line_end: 707
        line_start: 706
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PC_PRINT
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '9'
    - item_type: preproc_def
      name: PC_PUNCT
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '10'
    - item_type: preproc_def
      name: POSIX_SUBSIZE
      pos:
        line_end: 759
        line_start: 758
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: (sizeof(posix_substitutes) / (2*sizeof(uint32_t)))
    - item_type: preproc_def
      name: PUBLIC_LITERAL_COMPILE_OPTIONS
      pos:
        line_end: 768
        line_start: 764
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: "(PCRE2_ANCHORED|PCRE2_AUTO_CALLOUT|PCRE2_CASELESS|PCRE2_ENDANCHORED|
        \\\n   PCRE2_FIRSTLINE|PCRE2_LITERAL|PCRE2_MATCH_INVALID_UTF| \\\n   PCRE2_NO_START_OPTIMIZE|PCRE2_NO_UTF_CHECK|PCRE2_USE_OFFSET_LIMIT|PCRE2_UTF)"
    - item_type: preproc_def
      name: PUBLIC_COMPILE_OPTIONS
      pos:
        line_end: 777
        line_start: 769
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: "(PUBLIC_LITERAL_COMPILE_OPTIONS| \\\n   PCRE2_ALLOW_EMPTY_CLASS|PCRE2_ALT_BSUX|PCRE2_ALT_CIRCUMFLEX|
        \\\n   PCRE2_ALT_VERBNAMES|PCRE2_DOLLAR_ENDONLY|PCRE2_DOTALL|PCRE2_DUPNAMES|
        \\\n   PCRE2_EXTENDED|PCRE2_EXTENDED_MORE|PCRE2_MATCH_UNSET_BACKREF| \\\n
        \  PCRE2_MULTILINE|PCRE2_NEVER_BACKSLASH_C|PCRE2_NEVER_UCP| \\\n   PCRE2_NEVER_UTF|PCRE2_NO_AUTO_CAPTURE|PCRE2_NO_AUTO_POSSESS|
        \\\n   PCRE2_NO_DOTSTAR_ANCHOR|PCRE2_UCP|PCRE2_UNGREEDY)"
    - item_type: preproc_def
      name: PUBLIC_LITERAL_COMPILE_EXTRA_OPTIONS
      pos:
        line_end: 780
        line_start: 778
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: (PCRE2_EXTRA_MATCH_LINE|PCRE2_EXTRA_MATCH_WORD)
    - item_type: preproc_def
      name: PUBLIC_COMPILE_EXTRA_OPTIONS
      pos:
        line_end: 786
        line_start: 781
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: "(PUBLIC_LITERAL_COMPILE_EXTRA_OPTIONS| \\\n    PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES|PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL|
        \\\n    PCRE2_EXTRA_ESCAPED_CR_IS_LF|PCRE2_EXTRA_ALT_BSUX| \\\n    PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK)"
    - item_type: preproc_def
      name: NSF_RESET
      pos:
        line_end: 2478
        line_start: 2477
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 0x0001u
    - item_type: preproc_def
      name: NSF_CONDASSERT
      pos:
        line_end: 2479
        line_start: 2478
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 0x0002u
    - item_type: preproc_def
      name: NSF_ATOMICSR
      pos:
        line_end: 2480
        line_start: 2479
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: 0x0004u
    - item_type: preproc_def
      name: PARSE_TRACKED_OPTIONS
      pos:
        line_end: 2489
        line_start: 2486
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: "(PCRE2_CASELESS|PCRE2_DOTALL|PCRE2_DUPNAMES| \\\n  PCRE2_EXTENDED|PCRE2_EXTENDED_MORE|PCRE2_MULTILINE|PCRE2_NO_AUTO_CAPTURE|
        \\\n  PCRE2_UNGREEDY)"
    - item_type: preproc_def
      name: RSCAN_CACHE_SIZE
      pos:
        line_end: 10267
        line_start: 10266
        source_file: /src/pcre2/src/pcre2_compile.c
      type_or_value: '8'
    structs:
    - fields:
      - name: len
        type: unsigned int
      - name: meta
        type: uint32_t
      - name: has_arg
        type: int
      item_type: struct
      name: verbitem
      pos:
        line_end: 603
        line_start: 599
        source_file: /src/pcre2/src/pcre2_compile.c
    - fields:
      - name: len
        type: unsigned int
      - name: meta
        type: uint32_t
      item_type: struct
      name: alasitem
      pos:
        line_end: 641
        line_start: 638
        source_file: /src/pcre2/src/pcre2_compile.c
    - fields:
      - name: '*name'
        type: uint8_t
      - name: length
        type: uint16_t
      - name: type
        type: uint16_t
      - name: value
        type: uint32_t
      item_type: struct
      name: pso
      pos:
        line_end: 824
        line_start: 819
        source_file: /src/pcre2/src/pcre2_compile.c
    - fields:
      - name: nest_depth
        type: uint16_t
      - name: reset_group
        type: uint16_t
      - name: max_group
        type: uint16_t
      - name: flags
        type: uint16_t
      - name: options
        type: uint32_t
      item_type: struct
      name: nest_save
      pos:
        line_end: 2475
        line_start: 2469
        source_file: /src/pcre2/src/pcre2_compile.c
    typedefs: []
    union: []
- function_names:
  - FF_FUN
  source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcs_utf
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcs
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcs_2_utf
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcs_2
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcs_mask_utf
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcs_mask
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcps_0_utf
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcps_0
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcps_1_utf
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcps_1
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcps_default_utf
    - item_type: preproc_def
      name: FF_FUN
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/pcre2/src/pcre2_jit_neon_inc.h
      type_or_value: ffcps_default
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/pcre2/src/pcre2_dftables.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/pcre2/src/pcre2_dftables.c
      type_or_value: '0   '
    structs: []
    typedefs: []
    union: []
- function_names:
  - GF_IDMASK
  - GF_DATAMASK
  - display_frames
  - do_callout
  - match_ref
  - CHECK_PARTIAL
  - SCHECK_PARTIAL
  - RMATCH
  - RRETURN
  - match
  - LBL
  - pcre2_match
  source_file: /src/pcre2/src/pcre2_match.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NLBLOCK
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: 'mb              '
    - item_type: preproc_def
      name: PSSTART
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: 'start_subject   '
    - item_type: preproc_def
      name: PSEND
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: 'end_subject     '
    - item_type: preproc_def
      name: RECURSE_UNSET
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: '0xffffffffu  '
    - item_type: preproc_def
      name: PUBLIC_MATCH_OPTIONS
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: "(PCRE2_ANCHORED|PCRE2_ENDANCHORED|PCRE2_NOTBOL|PCRE2_NOTEOL|PCRE2_NOTEMPTY|
        \\\n   PCRE2_NOTEMPTY_ATSTART|PCRE2_NO_UTF_CHECK|PCRE2_PARTIAL_HARD| \\\n
        \  PCRE2_PARTIAL_SOFT|PCRE2_NO_JIT|PCRE2_COPY_MATCHED_SUBJECT)"
    - item_type: preproc_def
      name: PUBLIC_JIT_MATCH_OPTIONS
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: "(PCRE2_NO_UTF_CHECK|PCRE2_NOTBOL|PCRE2_NOTEOL|PCRE2_NOTEMPTY|\\\n
        \   PCRE2_NOTEMPTY_ATSTART|PCRE2_PARTIAL_SOFT|PCRE2_PARTIAL_HARD|\\\n    PCRE2_COPY_MATCHED_SUBJECT)"
    - item_type: preproc_def
      name: MATCH_MATCH
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MATCH_NOMATCH
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MATCH_ACCEPT
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: (-999)
    - item_type: preproc_def
      name: MATCH_KETRPOS
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: (-998)
    - item_type: preproc_def
      name: MATCH_COMMIT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: (-997)
    - item_type: preproc_def
      name: MATCH_PRUNE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: (-996)
    - item_type: preproc_def
      name: MATCH_SKIP
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: (-995)
    - item_type: preproc_def
      name: MATCH_SKIP_ARG
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: (-994)
    - item_type: preproc_def
      name: MATCH_THEN
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: (-993)
    - item_type: preproc_def
      name: MATCH_BACKTRACK_MAX
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: MATCH_THEN
    - item_type: preproc_def
      name: MATCH_BACKTRACK_MIN
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: MATCH_COMMIT
    - item_type: preproc_def
      name: GF_CAPTURE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: 0x00010000u
    - item_type: preproc_def
      name: GF_NOCAPTURE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: 0x00020000u
    - item_type: preproc_def
      name: GF_CONDASSERT
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: 0x00030000u
    - item_type: preproc_def
      name: GF_RECURSE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: 0x00040000u
    - item_type: preproc_def
      name: Fback_frame
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->back_frame
    - item_type: preproc_def
      name: Fcapture_last
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->capture_last
    - item_type: preproc_def
      name: Fcurrent_recurse
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->current_recurse
    - item_type: preproc_def
      name: Fecode
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->ecode
    - item_type: preproc_def
      name: Feptr
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->eptr
    - item_type: preproc_def
      name: Fgroup_frame_type
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->group_frame_type
    - item_type: preproc_def
      name: Flast_group_offset
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->last_group_offset
    - item_type: preproc_def
      name: Flength
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->length
    - item_type: preproc_def
      name: Fmark
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->mark
    - item_type: preproc_def
      name: Frdepth
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->rdepth
    - item_type: preproc_def
      name: Fstart_match
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->start_match
    - item_type: preproc_def
      name: Foffset_top
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->offset_top
    - item_type: preproc_def
      name: Foccu
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->occu
    - item_type: preproc_def
      name: Fop
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->op
    - item_type: preproc_def
      name: Fovector
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->ovector
    - item_type: preproc_def
      name: Freturn_id
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->return_id
    - item_type: preproc_def
      name: Loclength
      pos:
        line_end: 1114
        line_start: 1113
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_size
    - item_type: preproc_def
      name: Lstart_eptr
      pos:
        line_end: 1115
        line_start: 1114
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: Lcharptr
      pos:
        line_end: 1116
        line_start: 1115
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[1]
    - item_type: preproc_def
      name: Lmin
      pos:
        line_end: 1117
        line_start: 1116
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lmax
      pos:
        line_end: 1118
        line_start: 1117
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[1]
    - item_type: preproc_def
      name: Lc
      pos:
        line_end: 1119
        line_start: 1118
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[2]
    - item_type: preproc_def
      name: Loc
      pos:
        line_end: 1120
        line_start: 1119
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[3]
    - item_type: preproc_def
      name: Lstart_eptr
      pos:
        line_end: 1470
        line_start: 1469
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: Lmin
      pos:
        line_end: 1471
        line_start: 1470
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lmax
      pos:
        line_end: 1472
        line_start: 1471
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[1]
    - item_type: preproc_def
      name: Lc
      pos:
        line_end: 1473
        line_start: 1472
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[2]
    - item_type: preproc_def
      name: Loc
      pos:
        line_end: 1474
        line_start: 1473
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[3]
    - item_type: preproc_def
      name: Lmin
      pos:
        line_end: 1861
        line_start: 1860
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lmax
      pos:
        line_end: 1862
        line_start: 1861
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[1]
    - item_type: preproc_def
      name: Lstart_eptr
      pos:
        line_end: 1863
        line_start: 1862
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: Lbyte_map_address
      pos:
        line_end: 1864
        line_start: 1863
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[1]
    - item_type: preproc_def
      name: Lbyte_map
      pos:
        line_end: 1865
        line_start: 1864
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: ((unsigned char *)Lbyte_map_address)
    - item_type: preproc_def
      name: Lstart_eptr
      pos:
        line_end: 2103
        line_start: 2102
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: Lxclass_data
      pos:
        line_end: 2104
        line_start: 2103
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[1]
    - item_type: preproc_def
      name: Lmin
      pos:
        line_end: 2105
        line_start: 2104
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lmax
      pos:
        line_end: 2106
        line_start: 2105
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[1]
    - item_type: preproc_def
      name: Lstart_eptr
      pos:
        line_end: 2545
        line_start: 2544
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: Lmin
      pos:
        line_end: 2546
        line_start: 2545
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lmax
      pos:
        line_end: 2547
        line_start: 2546
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[1]
    - item_type: preproc_def
      name: Lctype
      pos:
        line_end: 2548
        line_start: 2547
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[2]
    - item_type: preproc_def
      name: Lpropvalue
      pos:
        line_end: 2549
        line_start: 2548
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[3]
    - item_type: preproc_def
      name: Lmin
      pos:
        line_end: 4688
        line_start: 4687
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lmax
      pos:
        line_end: 4689
        line_start: 4688
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[1]
    - item_type: preproc_def
      name: Lcaseless
      pos:
        line_end: 4690
        line_start: 4689
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[2]
    - item_type: preproc_def
      name: Lstart
      pos:
        line_end: 4691
        line_start: 4690
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: Loffset
      pos:
        line_end: 4692
        line_start: 4691
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_size
    - item_type: preproc_def
      name: Lnext_ecode
      pos:
        line_end: 4922
        line_start: 4921
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: Lframe_type
      pos:
        line_end: 4954
        line_start: 4953
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lmatched_once
      pos:
        line_end: 4955
        line_start: 4954
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[1]
    - item_type: preproc_def
      name: Lzero_allowed
      pos:
        line_end: 4956
        line_start: 4955
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[2]
    - item_type: preproc_def
      name: Lstart_eptr
      pos:
        line_end: 4957
        line_start: 4956
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: Lstart_group
      pos:
        line_end: 4958
        line_start: 4957
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[1]
    - item_type: preproc_def
      name: Lframe_type
      pos:
        line_end: 5046
        line_start: 5045
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: 'F->temp_32[0]     '
    - item_type: preproc_def
      name: Lnext_branch
      pos:
        line_end: 5047
        line_start: 5046
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: 'F->temp_sptr[0]  '
    - item_type: preproc_def
      name: Lframe_type
      pos:
        line_end: 5122
        line_start: 5121
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lstart_branch
      pos:
        line_end: 5123
        line_start: 5122
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: Lframe_type
      pos:
        line_end: 5200
        line_start: 5199
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lframe_type
      pos:
        line_end: 5236
        line_start: 5235
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lpositive
      pos:
        line_end: 5389
        line_start: 5388
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_32[0]
    - item_type: preproc_def
      name: Lstart_branch
      pos:
        line_end: 5390
        line_start: 5389
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: F->temp_sptr[0]
    - item_type: preproc_def
      name: FF
      pos:
        line_end: 6211
        line_start: 6210
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: (PCRE2_NOTEMPTY_SET|PCRE2_NE_ATST_SET)
    - item_type: preproc_def
      name: OO
      pos:
        line_end: 6212
        line_start: 6211
        source_file: /src/pcre2/src/pcre2_match.c
      type_or_value: (PCRE2_NOTEMPTY|PCRE2_NOTEMPTY_ATSTART)
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_char_prop
  - get_repeat_base
  - get_chr_property_list
  - compare_opcodes
  - PRIV
  source_file: /src/pcre2/src/pcre2_auto_possess.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APTROWS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/pcre2/src/pcre2_auto_possess.c
      type_or_value: (LAST_AUTOTAB_LEFT_OP - FIRST_AUTOTAB_OP + 1)
    - item_type: preproc_def
      name: APTCOLS
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/pcre2/src/pcre2_auto_possess.c
      type_or_value: (LAST_AUTOTAB_RIGHT_OP - FIRST_AUTOTAB_OP + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - PUT
  - GET
  - PUT
  - GET
  - PUT
  - GET
  - PUT
  - GET
  - PUT
  - GET
  - PUT
  - GET
  - GET2
  - PUT2
  - GET2
  - PUT2
  - MAX_255
  - TABLE_GET
  - CHMAX_255
  - CHMAX_255
  - CHMAX_255
  - MAX_255
  - TABLE_GET
  - UCHAR21
  - UCHAR21TEST
  - UCHAR21INC
  - UCHAR21INCTEST
  - GETCHAR
  - GETCHARTEST
  - GETCHARINC
  - GETCHARINCTEST
  - GETCHARLEN
  - PUTCHAR
  - HAS_EXTRALEN
  - GET_EXTRALEN
  - NOT_FIRSTCU
  - GETCHAR
  - GETCHARTEST
  - GETCHARINC
  - GETCHARINCTEST
  - GETCHARLEN
  - GETCHARLENTEST
  - BACKCHAR
  - FORWARDCHAR
  - FORWARDCHARTEST
  - ACROSSCHAR
  - PUTCHAR
  - HAS_EXTRALEN
  - GET_EXTRALEN
  - NOT_FIRSTCU
  - GETUTF16
  - GETCHAR
  - GETCHARTEST
  - GETUTF16INC
  - GETCHARINC
  - GETCHARINCTEST
  - GETUTF16LEN
  - GETCHARLEN
  - GETCHARLENTEST
  - BACKCHAR
  - FORWARDCHAR
  - FORWARDCHARTEST
  - ACROSSCHAR
  - PUTCHAR
  - HAS_EXTRALEN
  - GET_EXTRALEN
  - NOT_FIRSTCU
  - GETCHAR
  - GETCHARTEST
  - GETCHARINC
  - GETCHARINCTEST
  - GETCHARLEN
  - GETCHARLENTEST
  - BACKCHAR
  - FORWARDCHAR
  - FORWARDCHARTEST
  - ACROSSCHAR
  - PUTCHAR
  - CU2BYTES
  - BYTES2CU
  - PUTINC
  - PUT2INC
  source_file: /src/pcre2/src/pcre2_intmodedep.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PATTERN_SIZE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: MAX_PATTERN_SIZE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: MAX_PATTERN_SIZE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '(1 << 30)   '
    - item_type: preproc_def
      name: LINK_SIZE
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_PATTERN_SIZE
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: LINK_SIZE
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_PATTERN_SIZE
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '(1 << 30)  '
    - item_type: preproc_def
      name: LINK_SIZE
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_PATTERN_SIZE
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '(1 << 30)  '
    - item_type: preproc_def
      name: IMM2_SIZE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IMM2_SIZE
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_MARK
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: ((1u << 8) - 1)
    - item_type: preproc_def
      name: MAX_MARK
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: ((1u << 16) - 1)
    - item_type: preproc_def
      name: MAX_UTF_SINGLE_CU
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '127'
    - item_type: preproc_def
      name: MAX_UTF_SINGLE_CU
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: MAX_UTF_SINGLE_CU
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: (0x10ffffu)
    - item_type: preproc_def
      name: CODE_BLOCKSIZE_TYPE
      pos:
        line_end: 613
        line_start: 612
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: size_t
    - item_type: preproc_def
      name: LOOKBEHIND_MAX
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type_or_value: UINT16_MAX
    structs:
    - fields:
      - name: memctl
        type: pcre2_memctl
      item_type: struct
      name: pcre2_real_general_context
      pos:
        line_end: 560
        line_start: 558
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: memctl
        type: pcre2_memctl
      - name: (*stack_guard)(uint32_t, void *)
        type: int
      - name: '*stack_guard_data'
        type: void
      - name: '*tables'
        type: uint8_t
      - name: max_pattern_length
        type: PCRE2_SIZE
      - name: bsr_convention
        type: uint16_t
      - name: newline_convention
        type: uint16_t
      - name: parens_nest_limit
        type: uint32_t
      - name: extra_options
        type: uint32_t
      item_type: struct
      name: pcre2_real_compile_context
      pos:
        line_end: 574
        line_start: 564
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: memctl
        type: pcre2_memctl
      - name: (*callout)(pcre2_callout_block *, void *)
        type: int
      - name: '*callout_data'
        type: void
      - name: (*substitute_callout)(pcre2_substitute_callout_block *, void *)
        type: int
      - name: '*substitute_callout_data'
        type: void
      - name: offset_limit
        type: PCRE2_SIZE
      - name: heap_limit
        type: uint32_t
      - name: match_limit
        type: uint32_t
      - name: depth_limit
        type: uint32_t
      item_type: struct
      name: pcre2_real_match_context
      pos:
        line_end: 592
        line_start: 578
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: memctl
        type: pcre2_memctl
      - name: glob_separator
        type: uint32_t
      - name: glob_escape
        type: uint32_t
      item_type: struct
      name: pcre2_real_convert_context
      pos:
        line_end: 600
        line_start: 596
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: memctl
        type: pcre2_memctl
      - name: '*tables'
        type: uint8_t
      - name: '*executable_jit'
        type: void
      - name: start_bitmap[32]
        type: uint8_t
      - name: blocksize
        type: CODE_BLOCKSIZE_TYPE
      - name: magic_number
        type: uint32_t
      - name: compile_options
        type: uint32_t
      - name: overall_options
        type: uint32_t
      - name: extra_options
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: limit_heap
        type: uint32_t
      - name: limit_match
        type: uint32_t
      - name: limit_depth
        type: uint32_t
      - name: first_codeunit
        type: uint32_t
      - name: last_codeunit
        type: uint32_t
      - name: bsr_convention
        type: uint16_t
      - name: newline_convention
        type: uint16_t
      - name: max_lookbehind
        type: uint16_t
      - name: minlength
        type: uint16_t
      - name: top_bracket
        type: uint16_t
      - name: top_backref
        type: uint16_t
      - name: name_entry_size
        type: uint16_t
      - name: name_count
        type: uint16_t
      item_type: struct
      name: pcre2_real_code
      pos:
        line_end: 641
        line_start: 617
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: memctl
        type: pcre2_memctl
      - name: '*code'
        type: pcre2_real_code
      - name: subject
        type: PCRE2_SPTR
      - name: mark
        type: PCRE2_SPTR
      - name: leftchar
        type: PCRE2_SIZE
      - name: rightchar
        type: PCRE2_SIZE
      - name: startchar
        type: PCRE2_SIZE
      - name: matchedby
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: oveccount
        type: uint16_t
      - name: rc
        type: int
      - name: ovector[131072]
        type: PCRE2_SIZE
      item_type: struct
      name: pcre2_real_match_data
      pos:
        line_end: 664
        line_start: 651
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: '*prev'
        type: struct recurse_check
      - name: group
        type: PCRE2_SPTR
      item_type: struct
      name: recurse_check
      pos:
        line_end: 679
        line_start: 676
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: '*prev'
        type: struct parsed_recurse_check
      - name: '*groupptr'
        type: uint32_t
      item_type: struct
      name: parsed_recurse_check
      pos:
        line_end: 684
        line_start: 681
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: group
        type: PCRE2_SPTR
      - name: groupnumber
        type: int
      item_type: struct
      name: recurse_cache
      pos:
        line_end: 691
        line_start: 688
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: '*outer'
        type: struct branch_chain
      - name: '*current_branch'
        type: PCRE2_UCHAR
      item_type: struct
      name: branch_chain
      pos:
        line_end: 699
        line_start: 696
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: name
        type: PCRE2_SPTR
      - name: number
        type: uint32_t
      - name: length
        type: uint16_t
      - name: isdup
        type: uint16_t
      item_type: struct
      name: named_group
      pos:
        line_end: 709
        line_start: 704
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: '*cx'
        type: pcre2_real_compile_context
      - name: '*lcc'
        type: uint8_t
      - name: '*fcc'
        type: uint8_t
      - name: '*cbits'
        type: uint8_t
      - name: '*ctypes'
        type: uint8_t
      - name: start_workspace
        type: PCRE2_SPTR
      - name: start_code
        type: PCRE2_SPTR
      - name: start_pattern
        type: PCRE2_SPTR
      - name: end_pattern
        type: PCRE2_SPTR
      - name: '*name_table'
        type: PCRE2_UCHAR
      - name: workspace_size
        type: PCRE2_SIZE
      - name: small_ref_offset[10]
        type: PCRE2_SIZE
      - name: erroroffset
        type: PCRE2_SIZE
      - name: names_found
        type: uint16_t
      - name: name_entry_size
        type: uint16_t
      - name: parens_depth
        type: uint16_t
      - name: assert_depth
        type: uint16_t
      - name: '*open_caps'
        type: open_capitem
      - name: '*named_groups'
        type: named_group
      - name: named_group_list_size
        type: uint32_t
      - name: external_options
        type: uint32_t
      - name: external_flags
        type: uint32_t
      - name: bracount
        type: uint32_t
      - name: lastcapture
        type: uint32_t
      - name: '*parsed_pattern'
        type: uint32_t
      - name: '*parsed_pattern_end'
        type: uint32_t
      - name: '*groupinfo'
        type: uint32_t
      - name: top_backref
        type: uint32_t
      - name: backref_map
        type: uint32_t
      - name: nltype
        type: uint32_t
      - name: nllen
        type: uint32_t
      - name: class_range_start
        type: uint32_t
      - name: class_range_end
        type: uint32_t
      - name: nl[4]
        type: PCRE2_UCHAR
      - name: max_lookbehind
        type: int
      - name: req_varyopt
        type: int
      - name: had_accept
        type: BOOL
      - name: had_pruneorskip
        type: BOOL
      - name: had_recurse
        type: BOOL
      - name: dupnames
        type: BOOL
      item_type: struct
      name: compile_block
      pos:
        line_end: 755
        line_start: 714
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: memctl
        type: pcre2_memctl
      - name: '* stack'
        type: void
      item_type: struct
      name: pcre2_real_jit_stack
      pos:
        line_end: 763
        line_start: 760
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: '*prevrec'
        type: struct dfa_recursion_info
      - name: subject_position
        type: PCRE2_SPTR
      - name: group_num
        type: uint32_t
      item_type: struct
      name: dfa_recursion_info
      pos:
        line_end: 772
        line_start: 768
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: ecode
        type: PCRE2_SPTR
      - name: temp_sptr[2]
        type: PCRE2_SPTR
      - name: length
        type: PCRE2_SIZE
      - name: back_frame
        type: PCRE2_SIZE
      - name: temp_size
        type: PCRE2_SIZE
      - name: rdepth
        type: uint32_t
      - name: group_frame_type
        type: uint32_t
      - name: temp_32[4]
        type: uint32_t
      - name: return_id
        type: uint8_t
      - name: op
        type: uint8_t
      - name: eptr
        type: PCRE2_SPTR
      - name: start_match
        type: PCRE2_SPTR
      - name: mark
        type: PCRE2_SPTR
      - name: current_recurse
        type: uint32_t
      - name: capture_last
        type: uint32_t
      - name: last_group_offset
        type: PCRE2_SIZE
      - name: offset_top
        type: PCRE2_SIZE
      - name: ovector[131072]
        type: PCRE2_SIZE
      item_type: struct
      name: heapframe
      pos:
        line_end: 832
        line_start: 781
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: memctl
        type: pcre2_memctl
      - name: frame_vector_size
        type: PCRE2_SIZE
      - name: '*match_frames'
        type: heapframe
      - name: '*match_frames_top'
        type: heapframe
      - name: '*stack_frames'
        type: heapframe
      - name: heap_limit
        type: PCRE2_SIZE
      - name: match_limit
        type: uint32_t
      - name: match_limit_depth
        type: uint32_t
      - name: match_call_count
        type: uint32_t
      - name: hitend
        type: BOOL
      - name: hasthen
        type: BOOL
      - name: allowemptypartial
        type: BOOL
      - name: '*lcc'
        type: uint8_t
      - name: '*fcc'
        type: uint8_t
      - name: '*ctypes'
        type: uint8_t
      - name: start_offset
        type: PCRE2_SIZE
      - name: end_offset_top
        type: PCRE2_SIZE
      - name: partial
        type: uint16_t
      - name: bsr_convention
        type: uint16_t
      - name: name_count
        type: uint16_t
      - name: name_entry_size
        type: uint16_t
      - name: name_table
        type: PCRE2_SPTR
      - name: start_code
        type: PCRE2_SPTR
      - name: start_subject
        type: PCRE2_SPTR
      - name: check_subject
        type: PCRE2_SPTR
      - name: end_subject
        type: PCRE2_SPTR
      - name: end_match_ptr
        type: PCRE2_SPTR
      - name: start_used_ptr
        type: PCRE2_SPTR
      - name: last_used_ptr
        type: PCRE2_SPTR
      - name: mark
        type: PCRE2_SPTR
      - name: nomatch_mark
        type: PCRE2_SPTR
      - name: verb_ecode_ptr
        type: PCRE2_SPTR
      - name: verb_skip_ptr
        type: PCRE2_SPTR
      - name: verb_current_recurse
        type: uint32_t
      - name: moptions
        type: uint32_t
      - name: poptions
        type: uint32_t
      - name: skip_arg_count
        type: uint32_t
      - name: ignore_skip_arg
        type: uint32_t
      - name: nltype
        type: uint32_t
      - name: nllen
        type: uint32_t
      - name: nl[4]
        type: PCRE2_UCHAR
      - name: '*cb'
        type: pcre2_callout_block
      - name: '*callout_data'
        type: void
      - name: (*callout)(pcre2_callout_block *,void *)
        type: int
      item_type: struct
      name: match_block
      pos:
        line_end: 888
        line_start: 843
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    - fields:
      - name: memctl
        type: pcre2_memctl
      - name: start_code
        type: PCRE2_SPTR
      - name: start_subject
        type: PCRE2_SPTR
      - name: end_subject
        type: PCRE2_SPTR
      - name: start_used_ptr
        type: PCRE2_SPTR
      - name: last_used_ptr
        type: PCRE2_SPTR
      - name: '*tables'
        type: uint8_t
      - name: start_offset
        type: PCRE2_SIZE
      - name: heap_limit
        type: PCRE2_SIZE
      - name: heap_used
        type: PCRE2_SIZE
      - name: match_limit
        type: uint32_t
      - name: match_limit_depth
        type: uint32_t
      - name: match_call_count
        type: uint32_t
      - name: moptions
        type: uint32_t
      - name: poptions
        type: uint32_t
      - name: nltype
        type: uint32_t
      - name: nllen
        type: uint32_t
      - name: allowemptypartial
        type: BOOL
      - name: nl[4]
        type: PCRE2_UCHAR
      - name: bsr_convention
        type: uint16_t
      - name: '*cb'
        type: pcre2_callout_block
      - name: '*callout_data'
        type: void
      - name: (*callout)(pcre2_callout_block *,void *)
        type: int
      - name: '*recursive'
        type: dfa_recursion_info
      item_type: struct
      name: dfa_match_block
      pos:
        line_end: 918
        line_start: 893
        source_file: /src/pcre2/src/pcre2_intmodedep.h
    typedefs:
    - item_type: typedef
      name: "check_heapframe_size[\n  ((sizeof(heapframe) % sizeof(PCRE2_SIZE)) ==
        0)? (+1):(-1)]"
      pos:
        line_end: 838
        line_start: 837
        source_file: /src/pcre2/src/pcre2_intmodedep.h
      type: char
    union: []
- function_names:
  - INTERACTIVE
  - _setmode
  - glue
  - G
  - PRINTABLE
  - PRINTABLE
  - PRINTOK
  - PRIV
  - U32OVERFLOW
  - U32OVERFLOW
  - S32OVERFLOW
  - S32OVERFLOW
  - PCRE2_SUFFIX
  - PCRE2_SUFFIX
  - PCRE2_SUFFIX
  - PCRE2_SUFFIX
  - CO
  - MO
  - PO
  - PD
  - DO
  - CAST8VAR
  - SET
  - SETPLUS
  - strlen8
  - CASTFLD
  - CASTVAR
  - CODE_UNIT
  - CONCTXCPY
  - CONVERT_COPY
  - DATCTXCPY
  - FLD
  - PATCTXCPY
  - PCHARS
  - PCHARSV
  - PCRE2_CALLOUT_ENUMERATE
  - PCRE2_CODE_COPY_FROM_VOID
  - PCRE2_CODE_COPY_TO_VOID
  - PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
  - PCRE2_COMPILE
  - PCRE2_CONVERTED_PATTERN_FREE
  - PCRE2_DFA_MATCH
  - PCRE2_GET_ERROR_MESSAGE
  - PCRE2_GET_OVECTOR_COUNT
  - PCRE2_GET_STARTCHAR
  - PCRE2_JIT_COMPILE
  - PCRE2_JIT_FREE_UNUSED_MEMORY
  - PCRE2_JIT_MATCH
  - PCRE2_JIT_STACK_CREATE
  - PCRE2_JIT_STACK_ASSIGN
  - PCRE2_JIT_STACK_FREE
  - PCRE2_MAKETABLES
  - PCRE2_MATCH
  - PCRE2_MATCH_DATA_CREATE
  - PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
  - PCRE2_MATCH_DATA_FREE
  - PCRE2_PATTERN_CONVERT
  - PCRE2_PATTERN_INFO
  - PCRE2_PRINTINT
  - PCRE2_SERIALIZE_DECODE
  - PCRE2_SERIALIZE_ENCODE
  - PCRE2_SERIALIZE_FREE
  - PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
  - PCRE2_SET_CALLOUT
  - PCRE2_SET_CHARACTER_TABLES
  - PCRE2_SET_COMPILE_RECURSION_GUARD
  - PCRE2_SET_DEPTH_LIMIT
  - PCRE2_SET_GLOB_SEPARATOR
  - PCRE2_SET_GLOB_ESCAPE
  - PCRE2_SET_HEAP_LIMIT
  - PCRE2_SET_MATCH_LIMIT
  - PCRE2_SET_MAX_PATTERN_LENGTH
  - PCRE2_SET_OFFSET_LIMIT
  - PCRE2_SET_PARENS_NEST_LIMIT
  - PCRE2_SET_SUBSTITUTE_CALLOUT
  - PCRE2_SUBSTITUTE
  - PCRE2_SUBSTRING_COPY_BYNAME
  - PCRE2_SUBSTRING_COPY_BYNUMBER
  - PCRE2_SUBSTRING_FREE
  - PCRE2_SUBSTRING_GET_BYNAME
  - PCRE2_SUBSTRING_GET_BYNUMBER
  - PCRE2_SUBSTRING_LENGTH_BYNAME
  - PCRE2_SUBSTRING_LENGTH_BYNUMBER
  - PCRE2_SUBSTRING_LIST_GET
  - PCRE2_SUBSTRING_LIST_FREE
  - PCRE2_SUBSTRING_NUMBER_FROM_NAME
  - PTR
  - SETFLD
  - SETFLDVEC
  - SETOP
  - SETCASTPTR
  - STRLEN
  - SUB1
  - SUB2
  - TEST
  - TESTFLD
  - CASTFLD
  - CASTVAR
  - CODE_UNIT
  - CONCTXCPY
  - CONVERT_COPY
  - DATCTXCPY
  - FLD
  - PATCTXCPY
  - PCHARS
  - PCHARSV
  - PCRE2_CALLOUT_ENUMERATE
  - PCRE2_CODE_COPY_FROM_VOID
  - PCRE2_CODE_COPY_TO_VOID
  - PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
  - PCRE2_COMPILE
  - PCRE2_CONVERTED_PATTERN_FREE
  - PCRE2_DFA_MATCH
  - PCRE2_GET_ERROR_MESSAGE
  - PCRE2_GET_OVECTOR_COUNT
  - PCRE2_GET_STARTCHAR
  - PCRE2_JIT_COMPILE
  - PCRE2_JIT_FREE_UNUSED_MEMORY
  - PCRE2_JIT_MATCH
  - PCRE2_JIT_STACK_CREATE
  - PCRE2_JIT_STACK_ASSIGN
  - PCRE2_JIT_STACK_FREE
  - PCRE2_MAKETABLES
  - PCRE2_MATCH
  - PCRE2_MATCH_DATA_CREATE
  - PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
  - PCRE2_MATCH_DATA_FREE
  - PCRE2_PATTERN_CONVERT
  - PCRE2_PATTERN_INFO
  - PCRE2_PRINTINT
  - PCRE2_SERIALIZE_DECODE
  - PCRE2_SERIALIZE_ENCODE
  - PCRE2_SERIALIZE_FREE
  - PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
  - PCRE2_SET_CALLOUT
  - PCRE2_SET_CHARACTER_TABLES
  - PCRE2_SET_COMPILE_RECURSION_GUARD
  - PCRE2_SET_DEPTH_LIMIT
  - PCRE2_SET_GLOB_ESCAPE
  - PCRE2_SET_GLOB_SEPARATOR
  - PCRE2_SET_HEAP_LIMIT
  - PCRE2_SET_MATCH_LIMIT
  - PCRE2_SET_MAX_PATTERN_LENGTH
  - PCRE2_SET_OFFSET_LIMIT
  - PCRE2_SET_PARENS_NEST_LIMIT
  - PCRE2_SET_SUBSTITUTE_CALLOUT
  - PCRE2_SUBSTITUTE
  - PCRE2_SUBSTRING_COPY_BYNAME
  - PCRE2_SUBSTRING_COPY_BYNUMBER
  - PCRE2_SUBSTRING_FREE
  - PCRE2_SUBSTRING_GET_BYNAME
  - PCRE2_SUBSTRING_GET_BYNUMBER
  - PCRE2_SUBSTRING_LENGTH_BYNAME
  - PCRE2_SUBSTRING_LENGTH_BYNUMBER
  - PCRE2_SUBSTRING_LIST_GET
  - PCRE2_SUBSTRING_LIST_FREE
  - PCRE2_SUBSTRING_NUMBER_FROM_NAME
  - PTR
  - SETFLD
  - SETFLDVEC
  - SETOP
  - SETCASTPTR
  - STRLEN
  - SUB1
  - SUB2
  - TEST
  - TESTFLD
  - CASTFLD
  - CASTVAR
  - CODE_UNIT
  - CONCTXCPY
  - CONVERT_COPY
  - DATCTXCPY
  - FLD
  - PATCTXCPY
  - PCHARS
  - PCHARSV
  - PCRE2_CALLOUT_ENUMERATE
  - PCRE2_CODE_COPY_FROM_VOID
  - PCRE2_CODE_COPY_TO_VOID
  - PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
  - PCRE2_COMPILE
  - PCRE2_CONVERTED_PATTERN_FREE
  - PCRE2_DFA_MATCH
  - PCRE2_GET_ERROR_MESSAGE
  - PCRE2_GET_OVECTOR_COUNT
  - PCRE2_GET_STARTCHAR
  - PCRE2_JIT_COMPILE
  - PCRE2_JIT_FREE_UNUSED_MEMORY
  - PCRE2_JIT_MATCH
  - PCRE2_JIT_STACK_CREATE
  - PCRE2_JIT_STACK_ASSIGN
  - PCRE2_JIT_STACK_FREE
  - PCRE2_MAKETABLES
  - PCRE2_MATCH
  - PCRE2_MATCH_DATA_CREATE
  - PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
  - PCRE2_MATCH_DATA_FREE
  - PCRE2_PATTERN_CONVERT
  - PCRE2_PATTERN_INFO
  - PCRE2_PRINTINT
  - PCRE2_SERIALIZE_DECODE
  - PCRE2_SERIALIZE_ENCODE
  - PCRE2_SERIALIZE_FREE
  - PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
  - PCRE2_SET_CALLOUT
  - PCRE2_SET_CHARACTER_TABLES
  - PCRE2_SET_COMPILE_RECURSION_GUARD
  - PCRE2_SET_DEPTH_LIMIT
  - PCRE2_SET_GLOB_ESCAPE
  - PCRE2_SET_GLOB_SEPARATOR
  - PCRE2_SET_HEAP_LIMIT
  - PCRE2_SET_MATCH_LIMIT
  - PCRE2_SET_MAX_PATTERN_LENGTH
  - PCRE2_SET_OFFSET_LIMIT
  - PCRE2_SET_PARENS_NEST_LIMIT
  - PCRE2_SET_SUBSTITUTE_CALLOUT
  - PCRE2_SUBSTITUTE
  - PCRE2_SUBSTRING_COPY_BYNAME
  - PCRE2_SUBSTRING_COPY_BYNUMBER
  - PCRE2_SUBSTRING_FREE
  - PCRE2_SUBSTRING_GET_BYNAME
  - PCRE2_SUBSTRING_GET_BYNUMBER
  - PCRE2_SUBSTRING_LENGTH_BYNAME
  - PCRE2_SUBSTRING_LENGTH_BYNUMBER
  - PCRE2_SUBSTRING_LIST_GET
  - PCRE2_SUBSTRING_LIST_FREE
  - PCRE2_SUBSTRING_NUMBER_FROM_NAME
  - PTR
  - SETFLD
  - SETFLDVEC
  - SETOP
  - SETCASTPTR
  - STRLEN
  - SUB1
  - SUB2
  - TEST
  - TESTFLD
  - CASTFLD
  - CASTVAR
  - CODE_UNIT
  - CONCTXCPY
  - CONVERT_COPY
  - DATCTXCPY
  - FLD
  - PATCTXCPY
  - PCHARS
  - PCHARSV
  - PCRE2_CALLOUT_ENUMERATE
  - PCRE2_CODE_COPY_FROM_VOID
  - PCRE2_CODE_COPY_TO_VOID
  - PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
  - PCRE2_COMPILE
  - PCRE2_CONVERTED_PATTERN_FREE
  - PCRE2_DFA_MATCH
  - PCRE2_GET_ERROR_MESSAGE
  - PCRE2_GET_OVECTOR_COUNT
  - PCRE2_GET_STARTCHAR
  - PCRE2_JIT_COMPILE
  - PCRE2_JIT_FREE_UNUSED_MEMORY
  - PCRE2_JIT_MATCH
  - PCRE2_JIT_STACK_CREATE
  - PCRE2_JIT_STACK_ASSIGN
  - PCRE2_JIT_STACK_FREE
  - PCRE2_MAKETABLES
  - PCRE2_MATCH
  - PCRE2_MATCH_DATA_CREATE
  - PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
  - PCRE2_MATCH_DATA_FREE
  - PCRE2_PATTERN_CONVERT
  - PCRE2_PATTERN_INFO
  - PCRE2_PRINTINT
  - PCRE2_SERIALIZE_DECODE
  - PCRE2_SERIALIZE_ENCODE
  - PCRE2_SERIALIZE_FREE
  - PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
  - PCRE2_SET_CALLOUT
  - PCRE2_SET_CHARACTER_TABLES
  - PCRE2_SET_COMPILE_RECURSION_GUARD
  - PCRE2_SET_DEPTH_LIMIT
  - PCRE2_SET_GLOB_ESCAPE
  - PCRE2_SET_GLOB_SEPARATOR
  - PCRE2_SET_HEAP_LIMIT
  - PCRE2_SET_MATCH_LIMIT
  - PCRE2_SET_MAX_PATTERN_LENGTH
  - PCRE2_SET_OFFSET_LIMIT
  - PCRE2_SET_PARENS_NEST_LIMIT
  - PCRE2_SET_SUBSTITUTE_CALLOUT
  - PCRE2_SUBSTITUTE
  - PCRE2_SUBSTRING_COPY_BYNAME
  - PCRE2_SUBSTRING_COPY_BYNUMBER
  - PCRE2_SUBSTRING_FREE
  - PCRE2_SUBSTRING_GET_BYNAME
  - PCRE2_SUBSTRING_GET_BYNUMBER
  - PCRE2_SUBSTRING_LENGTH_BYNAME
  - PCRE2_SUBSTRING_LENGTH_BYNUMBER
  - PCRE2_SUBSTRING_LIST_GET
  - PCRE2_SUBSTRING_LIST_FREE
  - PCRE2_SUBSTRING_NUMBER_FROM_NAME
  - PTR
  - SETFLD
  - SETFLDVEC
  - SETOP
  - SETCASTPTR
  - STRLEN
  - SUB1
  - SUB2
  - TEST
  - TESTFLD
  - CASTFLD
  - CASTVAR
  - CODE_UNIT
  - CONCTXCPY
  - CONVERT_COPY
  - DATCTXCPY
  - FLD
  - PATCTXCPY
  - PCHARS
  - PCHARSV
  - PCRE2_CALLOUT_ENUMERATE
  - PCRE2_CODE_COPY_FROM_VOID
  - PCRE2_CODE_COPY_TO_VOID
  - PCRE2_CODE_COPY_WITH_TABLES_TO_VOID
  - PCRE2_COMPILE
  - PCRE2_CONVERTED_PATTERN_FREE
  - PCRE2_DFA_MATCH
  - PCRE2_GET_ERROR_MESSAGE
  - PCRE2_GET_OVECTOR_COUNT
  - PCRE2_GET_STARTCHAR
  - PCRE2_JIT_COMPILE
  - PCRE2_JIT_FREE_UNUSED_MEMORY
  - PCRE2_JIT_MATCH
  - PCRE2_JIT_STACK_CREATE
  - PCRE2_JIT_STACK_ASSIGN
  - PCRE2_JIT_STACK_FREE
  - PCRE2_MAKETABLES
  - PCRE2_MATCH
  - PCRE2_MATCH_DATA_CREATE
  - PCRE2_MATCH_DATA_CREATE_FROM_PATTERN
  - PCRE2_MATCH_DATA_FREE
  - PCRE2_PATTERN_CONVERT
  - PCRE2_PATTERN_INFO
  - PCRE2_PRINTINT
  - PCRE2_SERIALIZE_DECODE
  - PCRE2_SERIALIZE_ENCODE
  - PCRE2_SERIALIZE_FREE
  - PCRE2_SERIALIZE_GET_NUMBER_OF_CODES
  - PCRE2_SET_CALLOUT
  - PCRE2_SET_CHARACTER_TABLES
  - PCRE2_SET_COMPILE_RECURSION_GUARD
  - PCRE2_SET_DEPTH_LIMIT
  - PCRE2_SET_GLOB_ESCAPE
  - PCRE2_SET_GLOB_SEPARATOR
  - PCRE2_SET_HEAP_LIMIT
  - PCRE2_SET_MATCH_LIMIT
  - PCRE2_SET_MAX_PATTERN_LENGTH
  - PCRE2_SET_OFFSET_LIMIT
  - PCRE2_SET_PARENS_NEST_LIMIT
  - PCRE2_SET_SUBSTITUTE_CALLOUT
  - PCRE2_SUBSTITUTE
  - PCRE2_SUBSTRING_COPY_BYNAME
  - PCRE2_SUBSTRING_COPY_BYNUMBER
  - PCRE2_SUBSTRING_FREE
  - PCRE2_SUBSTRING_GET_BYNAME
  - PCRE2_SUBSTRING_GET_BYNUMBER
  - PCRE2_SUBSTRING_LENGTH_BYNAME
  - PCRE2_SUBSTRING_LENGTH_BYNUMBER
  - PCRE2_SUBSTRING_LIST_GET
  - PCRE2_SUBSTRING_LIST_FREE
  - PCRE2_SUBSTRING_NUMBER_FROM_NAME
  - PTR
  - SETFLD
  - SETFLDVEC
  - SETOP
  - SETCASTPTR
  - STRLEN
  - SUB1
  - SUB2
  - TEST
  - TESTFLD
  - emulated_memmove
  - memmove
  - strerror
  - my_malloc
  - my_free
  - stack_guard
  - jit_callback
  - utf82ord
  - pchar
  - strlen16
  - strlen32
  - pchars8
  - pchars16
  - pchars32
  - ord2utf8
  - to16
  - to32
  - backchars
  - expand_input_buffers
  - extend_inputline
  - strncmpic
  - scan_modifiers
  - check_modifier
  - decode_modifiers
  - pattern_info
  - prmsg
  - show_controls
  - show_compile_options
  - show_compile_extra_options
  - show_match_options
  - show_memory_info
  - show_framesize
  - print_error_message
  - callout_callback
  - show_pattern_info
  - serial_error
  - open_file
  - process_command
  - process_pattern
  - check_match_limit
  - substitute_callout_function
  - callout_function
  - copy_and_get
  - show_ovector
  - process_data
  - print_version
  - print_unicode_version
  - print_jit_target
  - print_newline_config
  - usage
  - c_option
  - display_one_modifier
  - display_selected_modifiers
  - display_modifiers
  - main
  source_file: /src/pcre2/src/pcre2test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INPUT_MODE
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"r"'
    - item_type: preproc_def
      name: OUTPUT_MODE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"wb"'
    - item_type: preproc_def
      name: BINARY_INPUT_MODE
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"rb"'
    - item_type: preproc_def
      name: BINARY_OUTPUT_MODE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"wb"'
    - item_type: preproc_def
      name: isatty
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '_isatty         '
    - item_type: preproc_def
      name: fileno
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: _fileno
    - item_type: preproc_def
      name: INPUT_MODE
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"r"'
    - item_type: preproc_def
      name: OUTPUT_MODE
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"w"'
    - item_type: preproc_def
      name: BINARY_INPUT_MODE
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"rb"'
    - item_type: preproc_def
      name: BINARY_OUTPUT_MODE
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"wb"'
    - item_type: preproc_def
      name: INPUT_MODE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"rb"'
    - item_type: preproc_def
      name: OUTPUT_MODE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"wb"'
    - item_type: preproc_def
      name: BINARY_INPUT_MODE
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"rb"'
    - item_type: preproc_def
      name: BINARY_OUTPUT_MODE
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"wb"'
    - item_type: preproc_def
      name: PTR_FORM
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: SIZ_FORM
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"llu"'
    - item_type: preproc_def
      name: PTR_FORM
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"ld"'
    - item_type: preproc_def
      name: SIZ_FORM
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"lu"'
    - item_type: preproc_def
      name: PTR_FORM
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"td"'
    - item_type: preproc_def
      name: SIZ_FORM
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '"zu"'
    - item_type: preproc_def
      name: CLOCKS_PER_SEC
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: CLK_TCK
    - item_type: preproc_def
      name: CLOCKS_PER_SEC
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '100'
    - item_type: preproc_def
      name: CFORE_UNSET
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 'UINT32_MAX    '
    - item_type: preproc_def
      name: CONVERT_UNSET
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 'UINT32_MAX  '
    - item_type: preproc_def
      name: DFA_WS_DIMENSION
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '1000     '
    - item_type: preproc_def
      name: DEFAULT_OVECCOUNT
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '15      '
    - item_type: preproc_def
      name: JUNK_OFFSET
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0xdeadbeef    '
    - item_type: preproc_def
      name: LOCALESIZE
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '32             '
    - item_type: preproc_def
      name: LOOPREPEAT
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '500000         '
    - item_type: preproc_def
      name: MALLOCLISTSIZE
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '20         '
    - item_type: preproc_def
      name: PARENS_NEST_DEFAULT
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '220   '
    - item_type: preproc_def
      name: PATSTACKSIZE
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '20           '
    - item_type: preproc_def
      name: REPLACE_MODSIZE
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '100       '
    - item_type: preproc_def
      name: VERSION_SIZE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '64           '
    - item_type: preproc_def
      name: JIT_DEFAULT
      pos:
        line_end: 223
        line_start: 220
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "(PCRE2_JIT_COMPLETE|\\\n                     PCRE2_JIT_PARTIAL_SOFT|\\\n
        \                    PCRE2_JIT_PARTIAL_HARD)"
    - item_type: preproc_def
      name: REPLACE_BUFFSIZE
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '1024   '
    - item_type: preproc_def
      name: PCRE8_MODE
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PCRE16_MODE
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '16'
    - item_type: preproc_def
      name: PCRE32_MODE
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '32'
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '16'
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '32'
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PCRE2_SPTR
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: PCRE2_SPTR8
    - item_type: preproc_def
      name: DEFAULT_TEST_MODE
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: PCRE8_MODE
    - item_type: preproc_def
      name: VERSION_TYPE
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: PCRE2_UCHAR8
    - item_type: preproc_def
      name: PCRE2_CONFIG
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_config_8
    - item_type: preproc_def
      name: PCRE2_JIT_STACK
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_jit_stack_8
    - item_type: preproc_def
      name: PCRE2_REAL_GENERAL_CONTEXT
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_general_context_8
    - item_type: preproc_def
      name: PCRE2_REAL_COMPILE_CONTEXT
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_compile_context_8
    - item_type: preproc_def
      name: PCRE2_REAL_CONVERT_CONTEXT
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_convert_context_8
    - item_type: preproc_def
      name: PCRE2_REAL_MATCH_CONTEXT
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_match_context_8
    - item_type: preproc_def
      name: DEFAULT_TEST_MODE
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: PCRE16_MODE
    - item_type: preproc_def
      name: VERSION_TYPE
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: PCRE2_UCHAR16
    - item_type: preproc_def
      name: PCRE2_CONFIG
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_config_16
    - item_type: preproc_def
      name: PCRE2_JIT_STACK
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_jit_stack_16
    - item_type: preproc_def
      name: PCRE2_REAL_GENERAL_CONTEXT
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_general_context_16
    - item_type: preproc_def
      name: PCRE2_REAL_COMPILE_CONTEXT
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_compile_context_16
    - item_type: preproc_def
      name: PCRE2_REAL_CONVERT_CONTEXT
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_convert_context_16
    - item_type: preproc_def
      name: PCRE2_REAL_MATCH_CONTEXT
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_match_context_16
    - item_type: preproc_def
      name: DEFAULT_TEST_MODE
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: PCRE32_MODE
    - item_type: preproc_def
      name: VERSION_TYPE
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: PCRE2_UCHAR32
    - item_type: preproc_def
      name: PCRE2_CONFIG
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_config_32
    - item_type: preproc_def
      name: PCRE2_JIT_STACK
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_jit_stack_32
    - item_type: preproc_def
      name: PCRE2_REAL_GENERAL_CONTEXT
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_general_context_32
    - item_type: preproc_def
      name: PCRE2_REAL_COMPILE_CONTEXT
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_compile_context_32
    - item_type: preproc_def
      name: PCRE2_REAL_CONVERT_CONTEXT
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_convert_context_32
    - item_type: preproc_def
      name: PCRE2_REAL_MATCH_CONTEXT
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: pcre2_real_match_context_32
    - item_type: preproc_def
      name: cmdlistcount
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (sizeof(cmdlist)/sizeof(cmdstruct))
    - item_type: preproc_def
      name: convertlistcount
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (sizeof(convertlist)/sizeof(convertstruct))
    - item_type: preproc_def
      name: CTL_AFTERTEXT
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000001u
    - item_type: preproc_def
      name: CTL_ALLAFTERTEXT
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000002u
    - item_type: preproc_def
      name: CTL_ALLCAPTURES
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000004u
    - item_type: preproc_def
      name: CTL_ALLUSEDTEXT
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000008u
    - item_type: preproc_def
      name: CTL_ALTGLOBAL
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000010u
    - item_type: preproc_def
      name: CTL_BINCODE
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000020u
    - item_type: preproc_def
      name: CTL_CALLOUT_CAPTURE
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000040u
    - item_type: preproc_def
      name: CTL_CALLOUT_INFO
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000080u
    - item_type: preproc_def
      name: CTL_CALLOUT_NONE
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000100u
    - item_type: preproc_def
      name: CTL_DFA
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000200u
    - item_type: preproc_def
      name: CTL_EXPAND
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000400u
    - item_type: preproc_def
      name: CTL_FINDLIMITS
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000800u
    - item_type: preproc_def
      name: CTL_FRAMESIZE
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00001000u
    - item_type: preproc_def
      name: CTL_FULLBINCODE
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00002000u
    - item_type: preproc_def
      name: CTL_GETALL
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00004000u
    - item_type: preproc_def
      name: CTL_GLOBAL
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00008000u
    - item_type: preproc_def
      name: CTL_HEXPAT
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0x00010000u  '
    - item_type: preproc_def
      name: CTL_INFO
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00020000u
    - item_type: preproc_def
      name: CTL_JITFAST
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00040000u
    - item_type: preproc_def
      name: CTL_JITVERIFY
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00080000u
    - item_type: preproc_def
      name: CTL_MARK
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00100000u
    - item_type: preproc_def
      name: CTL_MEMORY
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00200000u
    - item_type: preproc_def
      name: CTL_NULLCONTEXT
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00400000u
    - item_type: preproc_def
      name: CTL_POSIX
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00800000u
    - item_type: preproc_def
      name: CTL_POSIX_NOSUB
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x01000000u
    - item_type: preproc_def
      name: CTL_PUSH
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0x02000000u  '
    - item_type: preproc_def
      name: CTL_PUSHCOPY
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0x04000000u  '
    - item_type: preproc_def
      name: CTL_PUSHTABLESCOPY
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0x08000000u  '
    - item_type: preproc_def
      name: CTL_STARTCHAR
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x10000000u
    - item_type: preproc_def
      name: CTL_USE_LENGTH
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0x20000000u  '
    - item_type: preproc_def
      name: CTL_UTF8_INPUT
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x40000000u
    - item_type: preproc_def
      name: CTL_ZERO_TERMINATE
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x80000000u
    - item_type: preproc_def
      name: CTL_DEBUG
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '(CTL_FULLBINCODE|CTL_INFO)  '
    - item_type: preproc_def
      name: CTL_ANYINFO
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (CTL_DEBUG|CTL_BINCODE|CTL_CALLOUT_INFO)
    - item_type: preproc_def
      name: CTL_ANYGLOB
      pos:
        line_end: 503
        line_start: 502
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (CTL_ALTGLOBAL|CTL_GLOBAL)
    - item_type: preproc_def
      name: CTL2_SUBSTITUTE_CALLOUT
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000001u
    - item_type: preproc_def
      name: CTL2_SUBSTITUTE_EXTENDED
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000002u
    - item_type: preproc_def
      name: CTL2_SUBSTITUTE_LITERAL
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000004u
    - item_type: preproc_def
      name: CTL2_SUBSTITUTE_MATCHED
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000008u
    - item_type: preproc_def
      name: CTL2_SUBSTITUTE_OVERFLOW_LENGTH
      pos:
        line_end: 511
        line_start: 510
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000010u
    - item_type: preproc_def
      name: CTL2_SUBSTITUTE_REPLACEMENT_ONLY
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000020u
    - item_type: preproc_def
      name: CTL2_SUBSTITUTE_UNKNOWN_UNSET
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000040u
    - item_type: preproc_def
      name: CTL2_SUBSTITUTE_UNSET_EMPTY
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000080u
    - item_type: preproc_def
      name: CTL2_SUBJECT_LITERAL
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000100u
    - item_type: preproc_def
      name: CTL2_CALLOUT_NO_WHERE
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000200u
    - item_type: preproc_def
      name: CTL2_CALLOUT_EXTRA
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000400u
    - item_type: preproc_def
      name: CTL2_ALLVECTOR
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: 0x00000800u
    - item_type: preproc_def
      name: CTL2_NL_SET
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0x40000000u  '
    - item_type: preproc_def
      name: CTL2_BSR_SET
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0x80000000u  '
    - item_type: preproc_def
      name: CTL_ALLPD
      pos:
        line_end: 536
        line_start: 527
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "(CTL_AFTERTEXT|\\\n                    CTL_ALLAFTERTEXT|\\\n
        \                   CTL_ALLCAPTURES|\\\n                    CTL_ALLUSEDTEXT|\\\n
        \                   CTL_ALTGLOBAL|\\\n                    CTL_GLOBAL|\\\n
        \                   CTL_MARK|\\\n                    CTL_STARTCHAR|\\\n                    CTL_UTF8_INPUT)"
    - item_type: preproc_def
      name: CTL2_ALLPD
      pos:
        line_end: 546
        line_start: 537
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "(CTL2_SUBSTITUTE_CALLOUT|\\\n                    CTL2_SUBSTITUTE_EXTENDED|\\\n
        \                   CTL2_SUBSTITUTE_LITERAL|\\\n                    CTL2_SUBSTITUTE_MATCHED|\\\n
        \                   CTL2_SUBSTITUTE_OVERFLOW_LENGTH|\\\n                    CTL2_SUBSTITUTE_REPLACEMENT_ONLY|\\\n
        \                   CTL2_SUBSTITUTE_UNKNOWN_UNSET|\\\n                    CTL2_SUBSTITUTE_UNSET_EMPTY|\\\n
        \                   CTL2_ALLVECTOR)"
    - item_type: preproc_def
      name: MAXCPYGET
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '10'
    - item_type: preproc_def
      name: LENCPYGET
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '64'
    - item_type: preproc_def
      name: MODLISTCOUNT
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: sizeof(modlist)/sizeof(modstruct)
    - item_type: preproc_def
      name: POSIX_SUPPORTED_COMPILE_OPTIONS
      pos:
        line_end: 756
        line_start: 753
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "( \\\n  PCRE2_CASELESS|PCRE2_DOTALL|PCRE2_LITERAL|PCRE2_MULTILINE|PCRE2_UCP|
        \\\n  PCRE2_UTF|PCRE2_UNGREEDY)"
    - item_type: preproc_def
      name: POSIX_SUPPORTED_COMPILE_EXTRA_OPTIONS
      pos:
        line_end: 758
        line_start: 757
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (0)
    - item_type: preproc_def
      name: POSIX_SUPPORTED_COMPILE_CONTROLS
      pos:
        line_end: 762
        line_start: 759
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "( \\\n  CTL_AFTERTEXT|CTL_ALLAFTERTEXT|CTL_EXPAND|CTL_HEXPAT|CTL_POSIX|
        \\\n  CTL_POSIX_NOSUB|CTL_USE_LENGTH)"
    - item_type: preproc_def
      name: POSIX_SUPPORTED_COMPILE_CONTROLS2
      pos:
        line_end: 764
        line_start: 763
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (0)
    - item_type: preproc_def
      name: POSIX_SUPPORTED_MATCH_OPTIONS
      pos:
        line_end: 767
        line_start: 765
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "( \\\n  PCRE2_NOTBOL|PCRE2_NOTEMPTY|PCRE2_NOTEOL)"
    - item_type: preproc_def
      name: POSIX_SUPPORTED_MATCH_CONTROLS
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (CTL_AFTERTEXT|CTL_ALLAFTERTEXT)
    - item_type: preproc_def
      name: POSIX_SUPPORTED_MATCH_CONTROLS2
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (0)
    - item_type: preproc_def
      name: PUSH_SUPPORTED_COMPILE_CONTROLS
      pos:
        line_end: 777
        line_start: 773
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "( \\\n  CTL_BINCODE|CTL_CALLOUT_INFO|CTL_FULLBINCODE|CTL_HEXPAT|CTL_INFO|
        \\\n  CTL_JITVERIFY|CTL_MEMORY|CTL_FRAMESIZE|CTL_PUSH|CTL_PUSHCOPY| \\\n  CTL_PUSHTABLESCOPY|CTL_USE_LENGTH)"
    - item_type: preproc_def
      name: PUSH_SUPPORTED_COMPILE_CONTROLS2
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (CTL2_BSR_SET|CTL2_NL_SET)
    - item_type: preproc_def
      name: PUSH_COMPILE_ONLY_CONTROLS
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: CTL_JITVERIFY
    - item_type: preproc_def
      name: PUSH_COMPILE_ONLY_CONTROLS2
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (0)
    - item_type: preproc_def
      name: NOTPOP_CONTROLS
      pos:
        line_end: 789
        line_start: 787
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "(CTL_HEXPAT|CTL_POSIX|CTL_POSIX_NOSUB|CTL_PUSH| \\\n  CTL_PUSHCOPY|CTL_PUSHTABLESCOPY|CTL_USE_LENGTH)"
    - item_type: preproc_def
      name: C1MODLISTCOUNT
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: sizeof(c1modlist)/sizeof(c1modstruct)
    - item_type: preproc_def
      name: SUPPORT_8
      pos:
        line_end: 840
        line_start: 839
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SUPPORT_16
      pos:
        line_end: 843
        line_start: 842
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SUPPORT_32
      pos:
        line_end: 846
        line_start: 845
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SUPPORT_8
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SUPPORT_16
      pos:
        line_end: 853
        line_start: 852
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SUPPORT_32
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SUPPORT_EBCDIC
      pos:
        line_end: 860
        line_start: 859
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EBCDIC_NL
      pos:
        line_end: 861
        line_start: 860
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: CHAR_LF
    - item_type: preproc_def
      name: SUPPORT_EBCDIC
      pos:
        line_end: 863
        line_start: 862
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EBCDIC_NL
      pos:
        line_end: 864
        line_start: 863
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BACKSLASH_C
      pos:
        line_end: 868
        line_start: 867
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BACKSLASH_C
      pos:
        line_end: 870
        line_start: 869
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COPTLISTCOUNT
      pos:
        line_end: 900
        line_start: 899
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: sizeof(coptlist)/sizeof(coptstruct)
    - item_type: preproc_def
      name: BITONE
      pos:
        line_end: 1566
        line_start: 1565
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '32'
    - item_type: preproc_def
      name: BITTWO
      pos:
        line_end: 1567
        line_start: 1566
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '16'
    - item_type: preproc_def
      name: BITONE
      pos:
        line_end: 1572
        line_start: 1571
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '32'
    - item_type: preproc_def
      name: BITTWO
      pos:
        line_end: 1573
        line_start: 1572
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '8'
    - item_type: preproc_def
      name: BITONE
      pos:
        line_end: 1578
        line_start: 1577
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '16'
    - item_type: preproc_def
      name: BITTWO
      pos:
        line_end: 1579
        line_start: 1578
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '8'
    - item_type: preproc_def
      name: BYTEONE
      pos:
        line_end: 1585
        line_start: 1584
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (BITONE/8)
    - item_type: preproc_def
      name: BYTETWO
      pos:
        line_end: 1586
        line_start: 1585
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: (BITTWO/8)
    - item_type: preproc_def
      name: CREATECONTEXTS
      pos:
        line_end: 8939
        line_start: 8929
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "G(general_context,BITS) = G(pcre2_general_context_create_,BITS)(&my_malloc,
        &my_free, NULL); \\\n  G(general_context_copy,BITS) = G(pcre2_general_context_copy_,BITS)(G(general_context,BITS));
        \\\n  G(default_pat_context,BITS) = G(pcre2_compile_context_create_,BITS)(G(general_context,BITS));
        \\\n  G(pat_context,BITS) = G(pcre2_compile_context_copy_,BITS)(G(default_pat_context,BITS));
        \\\n  G(default_dat_context,BITS) = G(pcre2_match_context_create_,BITS)(G(general_context,BITS));
        \\\n  G(dat_context,BITS) = G(pcre2_match_context_copy_,BITS)(G(default_dat_context,BITS));
        \\\n  G(default_con_context,BITS) = G(pcre2_convert_context_create_,BITS)(G(general_context,BITS));
        \\\n  G(con_context,BITS) = G(pcre2_convert_context_copy_,BITS)(G(default_con_context,BITS));
        \\\n  G(match_data,BITS) = G(pcre2_match_data_create_,BITS)(max_oveccount,
        G(general_context,BITS))"
    - item_type: preproc_def
      name: CONTEXTTESTS
      pos:
        line_end: 8946
        line_start: 8940
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "(void)G(pcre2_set_compile_extra_options_,BITS)(G(pat_context,BITS),
        0); \\\n  (void)G(pcre2_set_max_pattern_length_,BITS)(G(pat_context,BITS),
        0); \\\n  (void)G(pcre2_set_offset_limit_,BITS)(G(dat_context,BITS), 0); \\\n
        \ (void)G(pcre2_set_recursion_memory_management_,BITS)(G(dat_context,BITS),
        my_malloc, my_free, NULL); \\\n  (void)G(pcre2_get_match_data_size_,BITS)(G(match_data,BITS))"
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 8954
        line_start: 8953
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '8'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 8964
        line_start: 8963
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '16'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 8974
        line_start: 8973
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '32'
    - item_type: preproc_def
      name: FREECONTEXTS
      pos:
        line_end: 9193
        line_start: 9184
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: "G(pcre2_general_context_free_,BITS)(G(general_context,BITS));
        \\\n  G(pcre2_general_context_free_,BITS)(G(general_context_copy,BITS)); \\\n
        \ G(pcre2_compile_context_free_,BITS)(G(pat_context,BITS)); \\\n  G(pcre2_compile_context_free_,BITS)(G(default_pat_context,BITS));
        \\\n  G(pcre2_match_context_free_,BITS)(G(dat_context,BITS)); \\\n  G(pcre2_match_context_free_,BITS)(G(default_dat_context,BITS));
        \\\n  G(pcre2_convert_context_free_,BITS)(G(default_con_context,BITS)); \\\n
        \ G(pcre2_convert_context_free_,BITS)(G(con_context,BITS));"
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 9197
        line_start: 9196
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '8'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 9204
        line_start: 9203
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '16'
    - item_type: preproc_def
      name: BITS
      pos:
        line_end: 9211
        line_start: 9210
        source_file: /src/pcre2/src/pcre2test.c
      type_or_value: '32'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: int
      item_type: struct
      name: cmdstruct
      pos:
        line_end: 391
        line_start: 388
        source_file: /src/pcre2/src/pcre2test.c
    - fields:
      - name: '*name'
        type: char
      - name: option
        type: uint32_t
      item_type: struct
      name: convertstruct
      pos:
        line_end: 424
        line_start: 421
        source_file: /src/pcre2/src/pcre2test.c
    - fields:
      - name: options
        type: uint32_t
      - name: control
        type: uint32_t
      - name: control2
        type: uint32_t
      - name: jitstack
        type: uint32_t
      - name: replacement[REPLACE_MODSIZE]
        type: uint8_t
      - name: substitute_skip
        type: uint32_t
      - name: substitute_stop
        type: uint32_t
      - name: jit
        type: uint32_t
      - name: stackguard_test
        type: uint32_t
      - name: tables_id
        type: uint32_t
      - name: convert_type
        type: uint32_t
      - name: convert_length
        type: uint32_t
      - name: convert_glob_escape
        type: uint32_t
      - name: convert_glob_separator
        type: uint32_t
      - name: regerror_buffsize
        type: uint32_t
      - name: locale[LOCALESIZE]
        type: uint8_t
      item_type: struct
      name: patctl
      pos:
        line_end: 569
        line_start: 552
        source_file: /src/pcre2/src/pcre2test.c
    - fields:
      - name: options
        type: uint32_t
      - name: control
        type: uint32_t
      - name: control2
        type: uint32_t
      - name: jitstack
        type: uint32_t
      - name: replacement[REPLACE_MODSIZE]
        type: uint8_t
      - name: substitute_skip
        type: uint32_t
      - name: substitute_stop
        type: uint32_t
      - name: startend[2]
        type: uint32_t
      - name: cerror[2]
        type: uint32_t
      - name: cfail[2]
        type: uint32_t
      - name: callout_data
        type: int32_t
      - name: copy_numbers[MAXCPYGET]
        type: int32_t
      - name: get_numbers[MAXCPYGET]
        type: int32_t
      - name: oveccount
        type: uint32_t
      - name: offset
        type: uint32_t
      - name: copy_names[LENCPYGET]
        type: uint8_t
      - name: get_names[LENCPYGET]
        type: uint8_t
      item_type: struct
      name: datctl
      pos:
        line_end: 592
        line_start: 574
        source_file: /src/pcre2/src/pcre2test.c
    - fields:
      - name: '*name'
        type: char
      - name: which
        type: uint16_t
      - name: type
        type: uint16_t
      - name: value
        type: uint32_t
      - name: offset
        type: PCRE2_SIZE
      item_type: struct
      name: modstruct
      pos:
        line_end: 619
        line_start: 613
        source_file: /src/pcre2/src/pcre2test.c
    - fields:
      - name: '*fullname'
        type: char
      - name: onechar
        type: uint32_t
      - name: index
        type: int
      item_type: struct
      name: c1modstruct
      pos:
        line_end: 820
        line_start: 816
        source_file: /src/pcre2/src/pcre2test.c
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: uint32_t
      - name: value
        type: uint32_t
      item_type: struct
      name: coptstruct
      pos:
        line_end: 876
        line_start: 872
        source_file: /src/pcre2/src/pcre2test.c
    typedefs: []
    union: []
- function_names:
  - PRIV
  - strlen
  - strncmp
  - memcmp
  - memcpy
  - memmove
  - memset
  - memmove
  - HASUTF8EXTRALEN
  - GETUTF8
  - GETUTF8INC
  - GETUTF8LEN
  - IS_NEWLINE
  - WAS_NEWLINE
  source_file: /src/pcre2/src/pcre2_internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PCRE2_KEEP_UNINITIALIZED
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: __attribute__((uninitialized))
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: _snprintf
    - item_type: preproc_def
      name: PCRE2_EXP_DECL
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: extern __declspec(dllexport)
    - item_type: preproc_def
      name: PCRE2_EXP_DEFN
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: PCRE2_EXP_DECL
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: extern
    - item_type: preproc_def
      name: PCRE2_EXP_DECL
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: extern "C"
    - item_type: preproc_def
      name: PCRE2_EXP_DECL
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: extern
    - item_type: preproc_def
      name: PCRE2_EXP_DEFN
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_EXP_DECL
    - item_type: preproc_def
      name: PCRE2_SPTR
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: CUSTOM_SUBJECT_PTR
    - item_type: preproc_def
      name: INT64_OR_DOUBLE
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: int64_t
    - item_type: preproc_def
      name: INT64_OR_DOUBLE
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: double
    - item_type: preproc_def
      name: NOTACHAR
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: MAX_UTF_CODE_POINT
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x10ffff'
    - item_type: preproc_def
      name: COMPILE_ERROR_BASE
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '100'
    - item_type: preproc_def
      name: START_FRAMES_SIZE
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '20480'
    - item_type: preproc_def
      name: DFA_START_RWS_SIZE
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '30720'
    - item_type: preproc_def
      name: BSR_DEFAULT
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_BSR_ANYCRLF
    - item_type: preproc_def
      name: BSR_DEFAULT
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_BSR_UNICODE
    - item_type: preproc_def
      name: HSPACE_LIST
      pos:
        line_end: 387
        line_start: 382
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: "CHAR_HT, CHAR_SPACE, CHAR_NBSP, \\\n  0x1680, 0x180e, 0x2000,
        0x2001, 0x2002, 0x2003, 0x2004, 0x2005, \\\n  0x2006, 0x2007, 0x2008, 0x2009,
        0x200A, 0x202f, 0x205f, 0x3000, \\\n  NOTACHAR"
    - item_type: preproc_def
      name: HSPACE_MULTIBYTE_CASES
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: 'case 0x1680:  '
    - item_type: preproc_def
      name: HSPACE_BYTE_CASES
      pos:
        line_end: 410
        line_start: 406
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: "case CHAR_HT: \\\n  case CHAR_SPACE: \\\n  case CHAR_NBSP"
    - item_type: preproc_def
      name: HSPACE_CASES
      pos:
        line_end: 414
        line_start: 411
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: "HSPACE_BYTE_CASES: \\\n  HSPACE_MULTIBYTE_CASES"
    - item_type: preproc_def
      name: VSPACE_LIST
      pos:
        line_end: 417
        line_start: 415
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: CHAR_LF, CHAR_VT, CHAR_FF, CHAR_CR, CHAR_NEL, 0x2028, 0x2029,
        NOTACHAR
    - item_type: preproc_def
      name: case
      pos:
        line_end: 421
        line_start: 418
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x2029     '
    - item_type: preproc_def
      name: VSPACE_BYTE_CASES
      pos:
        line_end: 428
        line_start: 422
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: "case CHAR_LF: \\\n  case CHAR_VT: \\\n  case CHAR_FF: \\\n  case
        CHAR_CR: \\\n  case CHAR_NEL"
    - item_type: preproc_def
      name: VSPACE_CASES
      pos:
        line_end: 432
        line_start: 429
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: "VSPACE_BYTE_CASES: \\\n  VSPACE_MULTIBYTE_CASES"
    - item_type: preproc_def
      name: HSPACE_LIST
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: CHAR_HT, CHAR_SPACE, CHAR_NBSP, NOTACHAR
    - item_type: preproc_def
      name: HSPACE_BYTE_CASES
      pos:
        line_end: 442
        line_start: 438
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: "case CHAR_HT: \\\n  case CHAR_SPACE: \\\n  case CHAR_NBSP"
    - item_type: preproc_def
      name: HSPACE_CASES
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: HSPACE_BYTE_CASES
    - item_type: preproc_def
      name: VSPACE_LIST
      pos:
        line_end: 448
        line_start: 446
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: CHAR_VT, CHAR_FF, CHAR_CR, CHAR_NEL, CHAR_LF, NOTACHAR
    - item_type: preproc_def
      name: VSPACE_LIST
      pos:
        line_end: 451
        line_start: 449
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: CHAR_VT, CHAR_FF, CHAR_CR, CHAR_LF, CHAR_NEL, NOTACHAR
    - item_type: preproc_def
      name: VSPACE_BYTE_CASES
      pos:
        line_end: 459
        line_start: 453
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: "case CHAR_LF: \\\n  case CHAR_VT: \\\n  case CHAR_FF: \\\n  case
        CHAR_CR: \\\n  case CHAR_NEL"
    - item_type: preproc_def
      name: VSPACE_CASES
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: VSPACE_BYTE_CASES
    - item_type: preproc_def
      name: NLTYPE_FIXED
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0     '
    - item_type: preproc_def
      name: NLTYPE_ANY
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '1     '
    - item_type: preproc_def
      name: NLTYPE_ANYCRLF
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '2     '
    - item_type: preproc_def
      name: PCRE2_MODE8
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: PCRE2_MODE16
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: PCRE2_MODE32
      pos:
        line_end: 511
        line_start: 510
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: PCRE2_FIRSTSET
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: PCRE2_FIRSTCASELESS
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: PCRE2_FIRSTMAPSET
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000040  '
    - item_type: preproc_def
      name: PCRE2_LASTSET
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000080  '
    - item_type: preproc_def
      name: PCRE2_LASTCASELESS
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: PCRE2_STARTLINE
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000200  '
    - item_type: preproc_def
      name: PCRE2_JCHANGED
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: PCRE2_HASCRORLF
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00000800  '
    - item_type: preproc_def
      name: PCRE2_HASTHEN
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: PCRE2_MATCH_EMPTY
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00002000  '
    - item_type: preproc_def
      name: PCRE2_BSR_SET
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00004000  '
    - item_type: preproc_def
      name: PCRE2_NL_SET
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: PCRE2_NOTEMPTY_SET
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: PCRE2_NE_ATST_SET
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: PCRE2_DEREF_TABLES
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00040000  '
    - item_type: preproc_def
      name: PCRE2_NOJIT
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00080000  '
    - item_type: preproc_def
      name: PCRE2_HASBKPORX
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00100000  '
    - item_type: preproc_def
      name: PCRE2_DUPCAPUSED
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00200000  '
    - item_type: preproc_def
      name: PCRE2_HASBKC
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00400000  '
    - item_type: preproc_def
      name: PCRE2_HASACCEPT
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x00800000  '
    - item_type: preproc_def
      name: PCRE2_MODE_MASK
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: (PCRE2_MODE8 | PCRE2_MODE16 | PCRE2_MODE32)
    - item_type: preproc_def
      name: PCRE2_MD_COPIED_SUBJECT
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: 0x01u
    - item_type: preproc_def
      name: MAGIC_NUMBER
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x50435245UL   '
    - item_type: preproc_def
      name: REQ_CU_MAX
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '5000'
    - item_type: preproc_def
      name: REQ_CU_MAX
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: cbit_space
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0      '
    - item_type: preproc_def
      name: cbit_xdigit
      pos:
        line_end: 565
        line_start: 564
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '32      '
    - item_type: preproc_def
      name: cbit_digit
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '64      '
    - item_type: preproc_def
      name: cbit_upper
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '96      '
    - item_type: preproc_def
      name: cbit_lower
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '128      '
    - item_type: preproc_def
      name: cbit_word
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '160      '
    - item_type: preproc_def
      name: cbit_graph
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '192      '
    - item_type: preproc_def
      name: cbit_print
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '224      '
    - item_type: preproc_def
      name: cbit_punct
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '256      '
    - item_type: preproc_def
      name: cbit_cntrl
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '288      '
    - item_type: preproc_def
      name: cbit_length
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '320      '
    - item_type: preproc_def
      name: ctype_space
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ctype_letter
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: ctype_lcletter
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: ctype_digit
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: ctype_word
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x10    '
    - item_type: preproc_def
      name: lcc_offset
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0                           '
    - item_type: preproc_def
      name: fcc_offset
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '256                           '
    - item_type: preproc_def
      name: cbits_offset
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '512                           '
    - item_type: preproc_def
      name: ctypes_offset
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '(cbits_offset + cbit_length)  '
    - item_type: preproc_def
      name: TABLES_LENGTH
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: (ctypes_offset + 256)
    - item_type: preproc_def
      name: CHAR_NL
      pos:
        line_end: 635
        line_start: 634
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\x15'''
    - item_type: preproc_def
      name: CHAR_NEL
      pos:
        line_end: 636
        line_start: 635
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\x25'''
    - item_type: preproc_def
      name: STR_NL
      pos:
        line_end: 637
        line_start: 636
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\x15"'
    - item_type: preproc_def
      name: STR_NEL
      pos:
        line_end: 638
        line_start: 637
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\x25"'
    - item_type: preproc_def
      name: CHAR_NL
      pos:
        line_end: 640
        line_start: 639
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\x25'''
    - item_type: preproc_def
      name: CHAR_NEL
      pos:
        line_end: 641
        line_start: 640
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\x15'''
    - item_type: preproc_def
      name: STR_NL
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\x25"'
    - item_type: preproc_def
      name: STR_NEL
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\x15"'
    - item_type: preproc_def
      name: CHAR_LF
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: CHAR_NL
    - item_type: preproc_def
      name: STR_LF
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_NL
    - item_type: preproc_def
      name: CHAR_ESC
      pos:
        line_end: 649
        line_start: 648
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\047'''
    - item_type: preproc_def
      name: CHAR_DEL
      pos:
        line_end: 650
        line_start: 649
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\007'''
    - item_type: preproc_def
      name: CHAR_NBSP
      pos:
        line_end: 651
        line_start: 650
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ((unsigned char)'\x41')
    - item_type: preproc_def
      name: STR_ESC
      pos:
        line_end: 652
        line_start: 651
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\047"'
    - item_type: preproc_def
      name: STR_DEL
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\007"'
    - item_type: preproc_def
      name: CHAR_LF
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\n'''
    - item_type: preproc_def
      name: CHAR_NL
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: CHAR_LF
    - item_type: preproc_def
      name: CHAR_NEL
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ((unsigned char)'\x85')
    - item_type: preproc_def
      name: CHAR_ESC
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\033'''
    - item_type: preproc_def
      name: CHAR_DEL
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\177'''
    - item_type: preproc_def
      name: CHAR_NBSP
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ((unsigned char)'\xa0')
    - item_type: preproc_def
      name: STR_LF
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\n"'
    - item_type: preproc_def
      name: STR_NL
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_LF
    - item_type: preproc_def
      name: STR_NEL
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\x85"'
    - item_type: preproc_def
      name: STR_ESC
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\033"'
    - item_type: preproc_def
      name: STR_DEL
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\177"'
    - item_type: preproc_def
      name: CHAR_NUL
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\0'''
    - item_type: preproc_def
      name: CHAR_HT
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\t'''
    - item_type: preproc_def
      name: CHAR_VT
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\v'''
    - item_type: preproc_def
      name: CHAR_FF
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\f'''
    - item_type: preproc_def
      name: CHAR_CR
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\r'''
    - item_type: preproc_def
      name: CHAR_BS
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\b'''
    - item_type: preproc_def
      name: CHAR_BEL
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\a'''
    - item_type: preproc_def
      name: CHAR_SPACE
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ''' '''
    - item_type: preproc_def
      name: CHAR_EXCLAMATION_MARK
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''!'''
    - item_type: preproc_def
      name: CHAR_QUOTATION_MARK
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''"'''
    - item_type: preproc_def
      name: CHAR_NUMBER_SIGN
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''#'''
    - item_type: preproc_def
      name: CHAR_DOLLAR_SIGN
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''$'''
    - item_type: preproc_def
      name: CHAR_PERCENT_SIGN
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''%'''
    - item_type: preproc_def
      name: CHAR_AMPERSAND
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''&'''
    - item_type: preproc_def
      name: CHAR_APOSTROPHE
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\'''''
    - item_type: preproc_def
      name: CHAR_LEFT_PARENTHESIS
      pos:
        line_end: 694
        line_start: 693
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''('''
    - item_type: preproc_def
      name: CHAR_RIGHT_PARENTHESIS
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ''')'''
    - item_type: preproc_def
      name: CHAR_ASTERISK
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''*'''
    - item_type: preproc_def
      name: CHAR_PLUS
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''+'''
    - item_type: preproc_def
      name: CHAR_COMMA
      pos:
        line_end: 698
        line_start: 697
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ''','''
    - item_type: preproc_def
      name: CHAR_MINUS
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''-'''
    - item_type: preproc_def
      name: CHAR_DOT
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''.'''
    - item_type: preproc_def
      name: CHAR_SLASH
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''/'''
    - item_type: preproc_def
      name: CHAR_0
      pos:
        line_end: 702
        line_start: 701
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''0'''
    - item_type: preproc_def
      name: CHAR_1
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''1'''
    - item_type: preproc_def
      name: CHAR_2
      pos:
        line_end: 704
        line_start: 703
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''2'''
    - item_type: preproc_def
      name: CHAR_3
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''3'''
    - item_type: preproc_def
      name: CHAR_4
      pos:
        line_end: 706
        line_start: 705
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''4'''
    - item_type: preproc_def
      name: CHAR_5
      pos:
        line_end: 707
        line_start: 706
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''5'''
    - item_type: preproc_def
      name: CHAR_6
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''6'''
    - item_type: preproc_def
      name: CHAR_7
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''7'''
    - item_type: preproc_def
      name: CHAR_8
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''8'''
    - item_type: preproc_def
      name: CHAR_9
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''9'''
    - item_type: preproc_def
      name: CHAR_COLON
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ''':'''
    - item_type: preproc_def
      name: CHAR_SEMICOLON
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ''';'''
    - item_type: preproc_def
      name: CHAR_LESS_THAN_SIGN
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''<'''
    - item_type: preproc_def
      name: CHAR_EQUALS_SIGN
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''='''
    - item_type: preproc_def
      name: CHAR_GREATER_THAN_SIGN
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''>'''
    - item_type: preproc_def
      name: CHAR_QUESTION_MARK
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''?'''
    - item_type: preproc_def
      name: CHAR_COMMERCIAL_AT
      pos:
        line_end: 718
        line_start: 717
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''@'''
    - item_type: preproc_def
      name: CHAR_A
      pos:
        line_end: 719
        line_start: 718
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''A'''
    - item_type: preproc_def
      name: CHAR_B
      pos:
        line_end: 720
        line_start: 719
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''B'''
    - item_type: preproc_def
      name: CHAR_C
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''C'''
    - item_type: preproc_def
      name: CHAR_D
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''D'''
    - item_type: preproc_def
      name: CHAR_E
      pos:
        line_end: 723
        line_start: 722
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''E'''
    - item_type: preproc_def
      name: CHAR_F
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''F'''
    - item_type: preproc_def
      name: CHAR_G
      pos:
        line_end: 725
        line_start: 724
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''G'''
    - item_type: preproc_def
      name: CHAR_H
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''H'''
    - item_type: preproc_def
      name: CHAR_I
      pos:
        line_end: 727
        line_start: 726
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''I'''
    - item_type: preproc_def
      name: CHAR_J
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''J'''
    - item_type: preproc_def
      name: CHAR_K
      pos:
        line_end: 729
        line_start: 728
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''K'''
    - item_type: preproc_def
      name: CHAR_L
      pos:
        line_end: 730
        line_start: 729
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''L'''
    - item_type: preproc_def
      name: CHAR_M
      pos:
        line_end: 731
        line_start: 730
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''M'''
    - item_type: preproc_def
      name: CHAR_N
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''N'''
    - item_type: preproc_def
      name: CHAR_O
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''O'''
    - item_type: preproc_def
      name: CHAR_P
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''P'''
    - item_type: preproc_def
      name: CHAR_Q
      pos:
        line_end: 735
        line_start: 734
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''Q'''
    - item_type: preproc_def
      name: CHAR_R
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''R'''
    - item_type: preproc_def
      name: CHAR_S
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''S'''
    - item_type: preproc_def
      name: CHAR_T
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''T'''
    - item_type: preproc_def
      name: CHAR_U
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''U'''
    - item_type: preproc_def
      name: CHAR_V
      pos:
        line_end: 740
        line_start: 739
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''V'''
    - item_type: preproc_def
      name: CHAR_W
      pos:
        line_end: 741
        line_start: 740
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''W'''
    - item_type: preproc_def
      name: CHAR_X
      pos:
        line_end: 742
        line_start: 741
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''X'''
    - item_type: preproc_def
      name: CHAR_Y
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''Y'''
    - item_type: preproc_def
      name: CHAR_Z
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''Z'''
    - item_type: preproc_def
      name: CHAR_LEFT_SQUARE_BRACKET
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''['''
    - item_type: preproc_def
      name: CHAR_BACKSLASH
      pos:
        line_end: 746
        line_start: 745
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\\'''
    - item_type: preproc_def
      name: CHAR_RIGHT_SQUARE_BRACKET
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ''']'''
    - item_type: preproc_def
      name: CHAR_CIRCUMFLEX_ACCENT
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''^'''
    - item_type: preproc_def
      name: CHAR_UNDERSCORE
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''_'''
    - item_type: preproc_def
      name: CHAR_GRAVE_ACCENT
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''`'''
    - item_type: preproc_def
      name: CHAR_a
      pos:
        line_end: 751
        line_start: 750
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''a'''
    - item_type: preproc_def
      name: CHAR_b
      pos:
        line_end: 752
        line_start: 751
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''b'''
    - item_type: preproc_def
      name: CHAR_c
      pos:
        line_end: 753
        line_start: 752
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''c'''
    - item_type: preproc_def
      name: CHAR_d
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''d'''
    - item_type: preproc_def
      name: CHAR_e
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''e'''
    - item_type: preproc_def
      name: CHAR_f
      pos:
        line_end: 756
        line_start: 755
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''f'''
    - item_type: preproc_def
      name: CHAR_g
      pos:
        line_end: 757
        line_start: 756
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''g'''
    - item_type: preproc_def
      name: CHAR_h
      pos:
        line_end: 758
        line_start: 757
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''h'''
    - item_type: preproc_def
      name: CHAR_i
      pos:
        line_end: 759
        line_start: 758
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''i'''
    - item_type: preproc_def
      name: CHAR_j
      pos:
        line_end: 760
        line_start: 759
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''j'''
    - item_type: preproc_def
      name: CHAR_k
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''k'''
    - item_type: preproc_def
      name: CHAR_l
      pos:
        line_end: 762
        line_start: 761
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''l'''
    - item_type: preproc_def
      name: CHAR_m
      pos:
        line_end: 763
        line_start: 762
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''m'''
    - item_type: preproc_def
      name: CHAR_n
      pos:
        line_end: 764
        line_start: 763
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''n'''
    - item_type: preproc_def
      name: CHAR_o
      pos:
        line_end: 765
        line_start: 764
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''o'''
    - item_type: preproc_def
      name: CHAR_p
      pos:
        line_end: 766
        line_start: 765
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''p'''
    - item_type: preproc_def
      name: CHAR_q
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''q'''
    - item_type: preproc_def
      name: CHAR_r
      pos:
        line_end: 768
        line_start: 767
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''r'''
    - item_type: preproc_def
      name: CHAR_s
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''s'''
    - item_type: preproc_def
      name: CHAR_t
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''t'''
    - item_type: preproc_def
      name: CHAR_u
      pos:
        line_end: 771
        line_start: 770
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''u'''
    - item_type: preproc_def
      name: CHAR_v
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''v'''
    - item_type: preproc_def
      name: CHAR_w
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''w'''
    - item_type: preproc_def
      name: CHAR_x
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''x'''
    - item_type: preproc_def
      name: CHAR_y
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''y'''
    - item_type: preproc_def
      name: CHAR_z
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''z'''
    - item_type: preproc_def
      name: CHAR_LEFT_CURLY_BRACKET
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''{'''
    - item_type: preproc_def
      name: CHAR_VERTICAL_LINE
      pos:
        line_end: 778
        line_start: 777
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''|'''
    - item_type: preproc_def
      name: CHAR_RIGHT_CURLY_BRACKET
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''}'''
    - item_type: preproc_def
      name: CHAR_TILDE
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''~'''
    - item_type: preproc_def
      name: STR_HT
      pos:
        line_end: 782
        line_start: 781
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\t"'
    - item_type: preproc_def
      name: STR_VT
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\v"'
    - item_type: preproc_def
      name: STR_FF
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\f"'
    - item_type: preproc_def
      name: STR_CR
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\r"'
    - item_type: preproc_def
      name: STR_BS
      pos:
        line_end: 786
        line_start: 785
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\b"'
    - item_type: preproc_def
      name: STR_BEL
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\a"'
    - item_type: preproc_def
      name: STR_SPACE
      pos:
        line_end: 789
        line_start: 788
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '" "'
    - item_type: preproc_def
      name: STR_EXCLAMATION_MARK
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"!"'
    - item_type: preproc_def
      name: STR_QUOTATION_MARK
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\""'
    - item_type: preproc_def
      name: STR_NUMBER_SIGN
      pos:
        line_end: 792
        line_start: 791
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"#"'
    - item_type: preproc_def
      name: STR_DOLLAR_SIGN
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"$"'
    - item_type: preproc_def
      name: STR_PERCENT_SIGN
      pos:
        line_end: 794
        line_start: 793
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"%"'
    - item_type: preproc_def
      name: STR_AMPERSAND
      pos:
        line_end: 795
        line_start: 794
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"&"'
    - item_type: preproc_def
      name: STR_APOSTROPHE
      pos:
        line_end: 796
        line_start: 795
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"''"'
    - item_type: preproc_def
      name: STR_LEFT_PARENTHESIS
      pos:
        line_end: 797
        line_start: 796
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"("'
    - item_type: preproc_def
      name: STR_RIGHT_PARENTHESIS
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '")"'
    - item_type: preproc_def
      name: STR_ASTERISK
      pos:
        line_end: 799
        line_start: 798
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"*"'
    - item_type: preproc_def
      name: STR_PLUS
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"+"'
    - item_type: preproc_def
      name: STR_COMMA
      pos:
        line_end: 801
        line_start: 800
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '","'
    - item_type: preproc_def
      name: STR_MINUS
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"-"'
    - item_type: preproc_def
      name: STR_DOT
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"."'
    - item_type: preproc_def
      name: STR_SLASH
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"/"'
    - item_type: preproc_def
      name: STR_0
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"0"'
    - item_type: preproc_def
      name: STR_1
      pos:
        line_end: 806
        line_start: 805
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"1"'
    - item_type: preproc_def
      name: STR_2
      pos:
        line_end: 807
        line_start: 806
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"2"'
    - item_type: preproc_def
      name: STR_3
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"3"'
    - item_type: preproc_def
      name: STR_4
      pos:
        line_end: 809
        line_start: 808
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"4"'
    - item_type: preproc_def
      name: STR_5
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"5"'
    - item_type: preproc_def
      name: STR_6
      pos:
        line_end: 811
        line_start: 810
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"6"'
    - item_type: preproc_def
      name: STR_7
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"7"'
    - item_type: preproc_def
      name: STR_8
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"8"'
    - item_type: preproc_def
      name: STR_9
      pos:
        line_end: 814
        line_start: 813
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"9"'
    - item_type: preproc_def
      name: STR_COLON
      pos:
        line_end: 815
        line_start: 814
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '":"'
    - item_type: preproc_def
      name: STR_SEMICOLON
      pos:
        line_end: 816
        line_start: 815
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '";"'
    - item_type: preproc_def
      name: STR_LESS_THAN_SIGN
      pos:
        line_end: 817
        line_start: 816
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"<"'
    - item_type: preproc_def
      name: STR_EQUALS_SIGN
      pos:
        line_end: 818
        line_start: 817
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"="'
    - item_type: preproc_def
      name: STR_GREATER_THAN_SIGN
      pos:
        line_end: 819
        line_start: 818
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '">"'
    - item_type: preproc_def
      name: STR_QUESTION_MARK
      pos:
        line_end: 820
        line_start: 819
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"?"'
    - item_type: preproc_def
      name: STR_COMMERCIAL_AT
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"@"'
    - item_type: preproc_def
      name: STR_A
      pos:
        line_end: 822
        line_start: 821
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"A"'
    - item_type: preproc_def
      name: STR_B
      pos:
        line_end: 823
        line_start: 822
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"B"'
    - item_type: preproc_def
      name: STR_C
      pos:
        line_end: 824
        line_start: 823
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"C"'
    - item_type: preproc_def
      name: STR_D
      pos:
        line_end: 825
        line_start: 824
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"D"'
    - item_type: preproc_def
      name: STR_E
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"E"'
    - item_type: preproc_def
      name: STR_F
      pos:
        line_end: 827
        line_start: 826
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"F"'
    - item_type: preproc_def
      name: STR_G
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"G"'
    - item_type: preproc_def
      name: STR_H
      pos:
        line_end: 829
        line_start: 828
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"H"'
    - item_type: preproc_def
      name: STR_I
      pos:
        line_end: 830
        line_start: 829
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"I"'
    - item_type: preproc_def
      name: STR_J
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"J"'
    - item_type: preproc_def
      name: STR_K
      pos:
        line_end: 832
        line_start: 831
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"K"'
    - item_type: preproc_def
      name: STR_L
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"L"'
    - item_type: preproc_def
      name: STR_M
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"M"'
    - item_type: preproc_def
      name: STR_N
      pos:
        line_end: 835
        line_start: 834
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"N"'
    - item_type: preproc_def
      name: STR_O
      pos:
        line_end: 836
        line_start: 835
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"O"'
    - item_type: preproc_def
      name: STR_P
      pos:
        line_end: 837
        line_start: 836
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"P"'
    - item_type: preproc_def
      name: STR_Q
      pos:
        line_end: 838
        line_start: 837
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"Q"'
    - item_type: preproc_def
      name: STR_R
      pos:
        line_end: 839
        line_start: 838
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"R"'
    - item_type: preproc_def
      name: STR_S
      pos:
        line_end: 840
        line_start: 839
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"S"'
    - item_type: preproc_def
      name: STR_T
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"T"'
    - item_type: preproc_def
      name: STR_U
      pos:
        line_end: 842
        line_start: 841
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"U"'
    - item_type: preproc_def
      name: STR_V
      pos:
        line_end: 843
        line_start: 842
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"V"'
    - item_type: preproc_def
      name: STR_W
      pos:
        line_end: 844
        line_start: 843
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"W"'
    - item_type: preproc_def
      name: STR_X
      pos:
        line_end: 845
        line_start: 844
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"X"'
    - item_type: preproc_def
      name: STR_Y
      pos:
        line_end: 846
        line_start: 845
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"Y"'
    - item_type: preproc_def
      name: STR_Z
      pos:
        line_end: 847
        line_start: 846
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"Z"'
    - item_type: preproc_def
      name: STR_LEFT_SQUARE_BRACKET
      pos:
        line_end: 848
        line_start: 847
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"["'
    - item_type: preproc_def
      name: STR_BACKSLASH
      pos:
        line_end: 849
        line_start: 848
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\\"'
    - item_type: preproc_def
      name: STR_RIGHT_SQUARE_BRACKET
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"]"'
    - item_type: preproc_def
      name: STR_CIRCUMFLEX_ACCENT
      pos:
        line_end: 851
        line_start: 850
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"^"'
    - item_type: preproc_def
      name: STR_UNDERSCORE
      pos:
        line_end: 852
        line_start: 851
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"_"'
    - item_type: preproc_def
      name: STR_GRAVE_ACCENT
      pos:
        line_end: 853
        line_start: 852
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"`"'
    - item_type: preproc_def
      name: STR_a
      pos:
        line_end: 854
        line_start: 853
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"a"'
    - item_type: preproc_def
      name: STR_b
      pos:
        line_end: 855
        line_start: 854
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"b"'
    - item_type: preproc_def
      name: STR_c
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"c"'
    - item_type: preproc_def
      name: STR_d
      pos:
        line_end: 857
        line_start: 856
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"d"'
    - item_type: preproc_def
      name: STR_e
      pos:
        line_end: 858
        line_start: 857
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"e"'
    - item_type: preproc_def
      name: STR_f
      pos:
        line_end: 859
        line_start: 858
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"f"'
    - item_type: preproc_def
      name: STR_g
      pos:
        line_end: 860
        line_start: 859
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"g"'
    - item_type: preproc_def
      name: STR_h
      pos:
        line_end: 861
        line_start: 860
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"h"'
    - item_type: preproc_def
      name: STR_i
      pos:
        line_end: 862
        line_start: 861
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"i"'
    - item_type: preproc_def
      name: STR_j
      pos:
        line_end: 863
        line_start: 862
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"j"'
    - item_type: preproc_def
      name: STR_k
      pos:
        line_end: 864
        line_start: 863
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"k"'
    - item_type: preproc_def
      name: STR_l
      pos:
        line_end: 865
        line_start: 864
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"l"'
    - item_type: preproc_def
      name: STR_m
      pos:
        line_end: 866
        line_start: 865
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"m"'
    - item_type: preproc_def
      name: STR_n
      pos:
        line_end: 867
        line_start: 866
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"n"'
    - item_type: preproc_def
      name: STR_o
      pos:
        line_end: 868
        line_start: 867
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"o"'
    - item_type: preproc_def
      name: STR_p
      pos:
        line_end: 869
        line_start: 868
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"p"'
    - item_type: preproc_def
      name: STR_q
      pos:
        line_end: 870
        line_start: 869
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"q"'
    - item_type: preproc_def
      name: STR_r
      pos:
        line_end: 871
        line_start: 870
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"r"'
    - item_type: preproc_def
      name: STR_s
      pos:
        line_end: 872
        line_start: 871
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"s"'
    - item_type: preproc_def
      name: STR_t
      pos:
        line_end: 873
        line_start: 872
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"t"'
    - item_type: preproc_def
      name: STR_u
      pos:
        line_end: 874
        line_start: 873
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"u"'
    - item_type: preproc_def
      name: STR_v
      pos:
        line_end: 875
        line_start: 874
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"v"'
    - item_type: preproc_def
      name: STR_w
      pos:
        line_end: 876
        line_start: 875
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"w"'
    - item_type: preproc_def
      name: STR_x
      pos:
        line_end: 877
        line_start: 876
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"x"'
    - item_type: preproc_def
      name: STR_y
      pos:
        line_end: 878
        line_start: 877
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"y"'
    - item_type: preproc_def
      name: STR_z
      pos:
        line_end: 879
        line_start: 878
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"z"'
    - item_type: preproc_def
      name: STR_LEFT_CURLY_BRACKET
      pos:
        line_end: 880
        line_start: 879
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"{"'
    - item_type: preproc_def
      name: STR_VERTICAL_LINE
      pos:
        line_end: 881
        line_start: 880
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"|"'
    - item_type: preproc_def
      name: STR_RIGHT_CURLY_BRACKET
      pos:
        line_end: 882
        line_start: 881
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"}"'
    - item_type: preproc_def
      name: STR_TILDE
      pos:
        line_end: 883
        line_start: 882
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"~"'
    - item_type: preproc_def
      name: STRING_ACCEPT0
      pos:
        line_end: 885
        line_start: 884
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"ACCEPT\0"'
    - item_type: preproc_def
      name: STRING_COMMIT0
      pos:
        line_end: 886
        line_start: 885
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"COMMIT\0"'
    - item_type: preproc_def
      name: STRING_F0
      pos:
        line_end: 887
        line_start: 886
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"F\0"'
    - item_type: preproc_def
      name: STRING_FAIL0
      pos:
        line_end: 888
        line_start: 887
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"FAIL\0"'
    - item_type: preproc_def
      name: STRING_MARK0
      pos:
        line_end: 889
        line_start: 888
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"MARK\0"'
    - item_type: preproc_def
      name: STRING_PRUNE0
      pos:
        line_end: 890
        line_start: 889
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"PRUNE\0"'
    - item_type: preproc_def
      name: STRING_SKIP0
      pos:
        line_end: 891
        line_start: 890
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"SKIP\0"'
    - item_type: preproc_def
      name: STRING_THEN
      pos:
        line_end: 892
        line_start: 891
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"THEN"'
    - item_type: preproc_def
      name: STRING_atomic0
      pos:
        line_end: 894
        line_start: 893
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"atomic\0"'
    - item_type: preproc_def
      name: STRING_pla0
      pos:
        line_end: 895
        line_start: 894
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"pla\0"'
    - item_type: preproc_def
      name: STRING_plb0
      pos:
        line_end: 896
        line_start: 895
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"plb\0"'
    - item_type: preproc_def
      name: STRING_napla0
      pos:
        line_end: 897
        line_start: 896
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"napla\0"'
    - item_type: preproc_def
      name: STRING_naplb0
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"naplb\0"'
    - item_type: preproc_def
      name: STRING_nla0
      pos:
        line_end: 899
        line_start: 898
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"nla\0"'
    - item_type: preproc_def
      name: STRING_nlb0
      pos:
        line_end: 900
        line_start: 899
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"nlb\0"'
    - item_type: preproc_def
      name: STRING_sr0
      pos:
        line_end: 901
        line_start: 900
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"sr\0"'
    - item_type: preproc_def
      name: STRING_asr0
      pos:
        line_end: 902
        line_start: 901
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"asr\0"'
    - item_type: preproc_def
      name: STRING_positive_lookahead0
      pos:
        line_end: 903
        line_start: 902
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"positive_lookahead\0"'
    - item_type: preproc_def
      name: STRING_positive_lookbehind0
      pos:
        line_end: 904
        line_start: 903
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"positive_lookbehind\0"'
    - item_type: preproc_def
      name: STRING_non_atomic_positive_lookahead0
      pos:
        line_end: 905
        line_start: 904
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"non_atomic_positive_lookahead\0"'
    - item_type: preproc_def
      name: STRING_non_atomic_positive_lookbehind0
      pos:
        line_end: 906
        line_start: 905
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"non_atomic_positive_lookbehind\0"'
    - item_type: preproc_def
      name: STRING_negative_lookahead0
      pos:
        line_end: 907
        line_start: 906
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"negative_lookahead\0"'
    - item_type: preproc_def
      name: STRING_negative_lookbehind0
      pos:
        line_end: 908
        line_start: 907
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"negative_lookbehind\0"'
    - item_type: preproc_def
      name: STRING_script_run0
      pos:
        line_end: 909
        line_start: 908
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"script_run\0"'
    - item_type: preproc_def
      name: STRING_atomic_script_run
      pos:
        line_end: 910
        line_start: 909
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"atomic_script_run"'
    - item_type: preproc_def
      name: STRING_alpha0
      pos:
        line_end: 912
        line_start: 911
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"alpha\0"'
    - item_type: preproc_def
      name: STRING_lower0
      pos:
        line_end: 913
        line_start: 912
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"lower\0"'
    - item_type: preproc_def
      name: STRING_upper0
      pos:
        line_end: 914
        line_start: 913
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"upper\0"'
    - item_type: preproc_def
      name: STRING_alnum0
      pos:
        line_end: 915
        line_start: 914
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"alnum\0"'
    - item_type: preproc_def
      name: STRING_ascii0
      pos:
        line_end: 916
        line_start: 915
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"ascii\0"'
    - item_type: preproc_def
      name: STRING_blank0
      pos:
        line_end: 917
        line_start: 916
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"blank\0"'
    - item_type: preproc_def
      name: STRING_cntrl0
      pos:
        line_end: 918
        line_start: 917
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"cntrl\0"'
    - item_type: preproc_def
      name: STRING_digit0
      pos:
        line_end: 919
        line_start: 918
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"digit\0"'
    - item_type: preproc_def
      name: STRING_graph0
      pos:
        line_end: 920
        line_start: 919
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"graph\0"'
    - item_type: preproc_def
      name: STRING_print0
      pos:
        line_end: 921
        line_start: 920
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"print\0"'
    - item_type: preproc_def
      name: STRING_punct0
      pos:
        line_end: 922
        line_start: 921
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"punct\0"'
    - item_type: preproc_def
      name: STRING_space0
      pos:
        line_end: 923
        line_start: 922
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"space\0"'
    - item_type: preproc_def
      name: STRING_word0
      pos:
        line_end: 924
        line_start: 923
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"word\0"'
    - item_type: preproc_def
      name: STRING_xdigit
      pos:
        line_end: 925
        line_start: 924
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"xdigit"'
    - item_type: preproc_def
      name: STRING_DEFINE
      pos:
        line_end: 927
        line_start: 926
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"DEFINE"'
    - item_type: preproc_def
      name: STRING_VERSION
      pos:
        line_end: 928
        line_start: 927
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"VERSION"'
    - item_type: preproc_def
      name: STRING_WEIRD_STARTWORD
      pos:
        line_end: 929
        line_start: 928
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"[:<:]]"'
    - item_type: preproc_def
      name: STRING_WEIRD_ENDWORD
      pos:
        line_end: 930
        line_start: 929
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"[:>:]]"'
    - item_type: preproc_def
      name: STRING_CR_RIGHTPAR
      pos:
        line_end: 932
        line_start: 931
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"CR)"'
    - item_type: preproc_def
      name: STRING_LF_RIGHTPAR
      pos:
        line_end: 933
        line_start: 932
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"LF)"'
    - item_type: preproc_def
      name: STRING_CRLF_RIGHTPAR
      pos:
        line_end: 934
        line_start: 933
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"CRLF)"'
    - item_type: preproc_def
      name: STRING_ANY_RIGHTPAR
      pos:
        line_end: 935
        line_start: 934
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"ANY)"'
    - item_type: preproc_def
      name: STRING_ANYCRLF_RIGHTPAR
      pos:
        line_end: 936
        line_start: 935
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"ANYCRLF)"'
    - item_type: preproc_def
      name: STRING_NUL_RIGHTPAR
      pos:
        line_end: 937
        line_start: 936
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"NUL)"'
    - item_type: preproc_def
      name: STRING_BSR_ANYCRLF_RIGHTPAR
      pos:
        line_end: 938
        line_start: 937
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"BSR_ANYCRLF)"'
    - item_type: preproc_def
      name: STRING_BSR_UNICODE_RIGHTPAR
      pos:
        line_end: 939
        line_start: 938
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"BSR_UNICODE)"'
    - item_type: preproc_def
      name: STRING_UTF8_RIGHTPAR
      pos:
        line_end: 940
        line_start: 939
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"UTF8)"'
    - item_type: preproc_def
      name: STRING_UTF16_RIGHTPAR
      pos:
        line_end: 941
        line_start: 940
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"UTF16)"'
    - item_type: preproc_def
      name: STRING_UTF32_RIGHTPAR
      pos:
        line_end: 942
        line_start: 941
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"UTF32)"'
    - item_type: preproc_def
      name: STRING_UTF_RIGHTPAR
      pos:
        line_end: 943
        line_start: 942
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"UTF)"'
    - item_type: preproc_def
      name: STRING_UCP_RIGHTPAR
      pos:
        line_end: 944
        line_start: 943
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"UCP)"'
    - item_type: preproc_def
      name: STRING_NO_AUTO_POSSESS_RIGHTPAR
      pos:
        line_end: 945
        line_start: 944
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"NO_AUTO_POSSESS)"'
    - item_type: preproc_def
      name: STRING_NO_DOTSTAR_ANCHOR_RIGHTPAR
      pos:
        line_end: 946
        line_start: 945
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"NO_DOTSTAR_ANCHOR)"'
    - item_type: preproc_def
      name: STRING_NO_JIT_RIGHTPAR
      pos:
        line_end: 947
        line_start: 946
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"NO_JIT)"'
    - item_type: preproc_def
      name: STRING_NO_START_OPT_RIGHTPAR
      pos:
        line_end: 948
        line_start: 947
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"NO_START_OPT)"'
    - item_type: preproc_def
      name: STRING_NOTEMPTY_RIGHTPAR
      pos:
        line_end: 949
        line_start: 948
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"NOTEMPTY)"'
    - item_type: preproc_def
      name: STRING_NOTEMPTY_ATSTART_RIGHTPAR
      pos:
        line_end: 950
        line_start: 949
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"NOTEMPTY_ATSTART)"'
    - item_type: preproc_def
      name: STRING_LIMIT_HEAP_EQ
      pos:
        line_end: 951
        line_start: 950
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"LIMIT_HEAP="'
    - item_type: preproc_def
      name: STRING_LIMIT_MATCH_EQ
      pos:
        line_end: 952
        line_start: 951
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"LIMIT_MATCH="'
    - item_type: preproc_def
      name: STRING_LIMIT_DEPTH_EQ
      pos:
        line_end: 953
        line_start: 952
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"LIMIT_DEPTH="'
    - item_type: preproc_def
      name: STRING_LIMIT_RECURSION_EQ
      pos:
        line_end: 954
        line_start: 953
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"LIMIT_RECURSION="'
    - item_type: preproc_def
      name: STRING_MARK
      pos:
        line_end: 955
        line_start: 954
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"MARK"'
    - item_type: preproc_def
      name: CHAR_HT
      pos:
        line_end: 963
        line_start: 962
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\011'''
    - item_type: preproc_def
      name: CHAR_VT
      pos:
        line_end: 964
        line_start: 963
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\013'''
    - item_type: preproc_def
      name: CHAR_FF
      pos:
        line_end: 965
        line_start: 964
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\014'''
    - item_type: preproc_def
      name: CHAR_CR
      pos:
        line_end: 966
        line_start: 965
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\015'''
    - item_type: preproc_def
      name: CHAR_LF
      pos:
        line_end: 967
        line_start: 966
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\012'''
    - item_type: preproc_def
      name: CHAR_NL
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: CHAR_LF
    - item_type: preproc_def
      name: CHAR_NEL
      pos:
        line_end: 969
        line_start: 968
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ((unsigned char)'\x85')
    - item_type: preproc_def
      name: CHAR_BS
      pos:
        line_end: 970
        line_start: 969
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\010'''
    - item_type: preproc_def
      name: CHAR_BEL
      pos:
        line_end: 971
        line_start: 970
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\007'''
    - item_type: preproc_def
      name: CHAR_ESC
      pos:
        line_end: 972
        line_start: 971
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\033'''
    - item_type: preproc_def
      name: CHAR_DEL
      pos:
        line_end: 973
        line_start: 972
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\177'''
    - item_type: preproc_def
      name: CHAR_NUL
      pos:
        line_end: 975
        line_start: 974
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\0'''
    - item_type: preproc_def
      name: CHAR_SPACE
      pos:
        line_end: 976
        line_start: 975
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\040'''
    - item_type: preproc_def
      name: CHAR_EXCLAMATION_MARK
      pos:
        line_end: 977
        line_start: 976
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\041'''
    - item_type: preproc_def
      name: CHAR_QUOTATION_MARK
      pos:
        line_end: 978
        line_start: 977
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\042'''
    - item_type: preproc_def
      name: CHAR_NUMBER_SIGN
      pos:
        line_end: 979
        line_start: 978
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\043'''
    - item_type: preproc_def
      name: CHAR_DOLLAR_SIGN
      pos:
        line_end: 980
        line_start: 979
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\044'''
    - item_type: preproc_def
      name: CHAR_PERCENT_SIGN
      pos:
        line_end: 981
        line_start: 980
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\045'''
    - item_type: preproc_def
      name: CHAR_AMPERSAND
      pos:
        line_end: 982
        line_start: 981
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\046'''
    - item_type: preproc_def
      name: CHAR_APOSTROPHE
      pos:
        line_end: 983
        line_start: 982
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\047'''
    - item_type: preproc_def
      name: CHAR_LEFT_PARENTHESIS
      pos:
        line_end: 984
        line_start: 983
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\050'''
    - item_type: preproc_def
      name: CHAR_RIGHT_PARENTHESIS
      pos:
        line_end: 985
        line_start: 984
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\051'''
    - item_type: preproc_def
      name: CHAR_ASTERISK
      pos:
        line_end: 986
        line_start: 985
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\052'''
    - item_type: preproc_def
      name: CHAR_PLUS
      pos:
        line_end: 987
        line_start: 986
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\053'''
    - item_type: preproc_def
      name: CHAR_COMMA
      pos:
        line_end: 988
        line_start: 987
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\054'''
    - item_type: preproc_def
      name: CHAR_MINUS
      pos:
        line_end: 989
        line_start: 988
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\055'''
    - item_type: preproc_def
      name: CHAR_DOT
      pos:
        line_end: 990
        line_start: 989
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\056'''
    - item_type: preproc_def
      name: CHAR_SLASH
      pos:
        line_end: 991
        line_start: 990
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\057'''
    - item_type: preproc_def
      name: CHAR_0
      pos:
        line_end: 992
        line_start: 991
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\060'''
    - item_type: preproc_def
      name: CHAR_1
      pos:
        line_end: 993
        line_start: 992
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\061'''
    - item_type: preproc_def
      name: CHAR_2
      pos:
        line_end: 994
        line_start: 993
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\062'''
    - item_type: preproc_def
      name: CHAR_3
      pos:
        line_end: 995
        line_start: 994
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\063'''
    - item_type: preproc_def
      name: CHAR_4
      pos:
        line_end: 996
        line_start: 995
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\064'''
    - item_type: preproc_def
      name: CHAR_5
      pos:
        line_end: 997
        line_start: 996
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\065'''
    - item_type: preproc_def
      name: CHAR_6
      pos:
        line_end: 998
        line_start: 997
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\066'''
    - item_type: preproc_def
      name: CHAR_7
      pos:
        line_end: 999
        line_start: 998
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\067'''
    - item_type: preproc_def
      name: CHAR_8
      pos:
        line_end: 1000
        line_start: 999
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\070'''
    - item_type: preproc_def
      name: CHAR_9
      pos:
        line_end: 1001
        line_start: 1000
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\071'''
    - item_type: preproc_def
      name: CHAR_COLON
      pos:
        line_end: 1002
        line_start: 1001
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\072'''
    - item_type: preproc_def
      name: CHAR_SEMICOLON
      pos:
        line_end: 1003
        line_start: 1002
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\073'''
    - item_type: preproc_def
      name: CHAR_LESS_THAN_SIGN
      pos:
        line_end: 1004
        line_start: 1003
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\074'''
    - item_type: preproc_def
      name: CHAR_EQUALS_SIGN
      pos:
        line_end: 1005
        line_start: 1004
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\075'''
    - item_type: preproc_def
      name: CHAR_GREATER_THAN_SIGN
      pos:
        line_end: 1006
        line_start: 1005
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\076'''
    - item_type: preproc_def
      name: CHAR_QUESTION_MARK
      pos:
        line_end: 1007
        line_start: 1006
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\077'''
    - item_type: preproc_def
      name: CHAR_COMMERCIAL_AT
      pos:
        line_end: 1008
        line_start: 1007
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\100'''
    - item_type: preproc_def
      name: CHAR_A
      pos:
        line_end: 1009
        line_start: 1008
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\101'''
    - item_type: preproc_def
      name: CHAR_B
      pos:
        line_end: 1010
        line_start: 1009
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\102'''
    - item_type: preproc_def
      name: CHAR_C
      pos:
        line_end: 1011
        line_start: 1010
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\103'''
    - item_type: preproc_def
      name: CHAR_D
      pos:
        line_end: 1012
        line_start: 1011
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\104'''
    - item_type: preproc_def
      name: CHAR_E
      pos:
        line_end: 1013
        line_start: 1012
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\105'''
    - item_type: preproc_def
      name: CHAR_F
      pos:
        line_end: 1014
        line_start: 1013
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\106'''
    - item_type: preproc_def
      name: CHAR_G
      pos:
        line_end: 1015
        line_start: 1014
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\107'''
    - item_type: preproc_def
      name: CHAR_H
      pos:
        line_end: 1016
        line_start: 1015
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\110'''
    - item_type: preproc_def
      name: CHAR_I
      pos:
        line_end: 1017
        line_start: 1016
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\111'''
    - item_type: preproc_def
      name: CHAR_J
      pos:
        line_end: 1018
        line_start: 1017
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\112'''
    - item_type: preproc_def
      name: CHAR_K
      pos:
        line_end: 1019
        line_start: 1018
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\113'''
    - item_type: preproc_def
      name: CHAR_L
      pos:
        line_end: 1020
        line_start: 1019
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\114'''
    - item_type: preproc_def
      name: CHAR_M
      pos:
        line_end: 1021
        line_start: 1020
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\115'''
    - item_type: preproc_def
      name: CHAR_N
      pos:
        line_end: 1022
        line_start: 1021
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\116'''
    - item_type: preproc_def
      name: CHAR_O
      pos:
        line_end: 1023
        line_start: 1022
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\117'''
    - item_type: preproc_def
      name: CHAR_P
      pos:
        line_end: 1024
        line_start: 1023
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\120'''
    - item_type: preproc_def
      name: CHAR_Q
      pos:
        line_end: 1025
        line_start: 1024
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\121'''
    - item_type: preproc_def
      name: CHAR_R
      pos:
        line_end: 1026
        line_start: 1025
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\122'''
    - item_type: preproc_def
      name: CHAR_S
      pos:
        line_end: 1027
        line_start: 1026
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\123'''
    - item_type: preproc_def
      name: CHAR_T
      pos:
        line_end: 1028
        line_start: 1027
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\124'''
    - item_type: preproc_def
      name: CHAR_U
      pos:
        line_end: 1029
        line_start: 1028
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\125'''
    - item_type: preproc_def
      name: CHAR_V
      pos:
        line_end: 1030
        line_start: 1029
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\126'''
    - item_type: preproc_def
      name: CHAR_W
      pos:
        line_end: 1031
        line_start: 1030
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\127'''
    - item_type: preproc_def
      name: CHAR_X
      pos:
        line_end: 1032
        line_start: 1031
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\130'''
    - item_type: preproc_def
      name: CHAR_Y
      pos:
        line_end: 1033
        line_start: 1032
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\131'''
    - item_type: preproc_def
      name: CHAR_Z
      pos:
        line_end: 1034
        line_start: 1033
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\132'''
    - item_type: preproc_def
      name: CHAR_LEFT_SQUARE_BRACKET
      pos:
        line_end: 1035
        line_start: 1034
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\133'''
    - item_type: preproc_def
      name: CHAR_BACKSLASH
      pos:
        line_end: 1036
        line_start: 1035
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\134'''
    - item_type: preproc_def
      name: CHAR_RIGHT_SQUARE_BRACKET
      pos:
        line_end: 1037
        line_start: 1036
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\135'''
    - item_type: preproc_def
      name: CHAR_CIRCUMFLEX_ACCENT
      pos:
        line_end: 1038
        line_start: 1037
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\136'''
    - item_type: preproc_def
      name: CHAR_UNDERSCORE
      pos:
        line_end: 1039
        line_start: 1038
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\137'''
    - item_type: preproc_def
      name: CHAR_GRAVE_ACCENT
      pos:
        line_end: 1040
        line_start: 1039
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\140'''
    - item_type: preproc_def
      name: CHAR_a
      pos:
        line_end: 1041
        line_start: 1040
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\141'''
    - item_type: preproc_def
      name: CHAR_b
      pos:
        line_end: 1042
        line_start: 1041
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\142'''
    - item_type: preproc_def
      name: CHAR_c
      pos:
        line_end: 1043
        line_start: 1042
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\143'''
    - item_type: preproc_def
      name: CHAR_d
      pos:
        line_end: 1044
        line_start: 1043
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\144'''
    - item_type: preproc_def
      name: CHAR_e
      pos:
        line_end: 1045
        line_start: 1044
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\145'''
    - item_type: preproc_def
      name: CHAR_f
      pos:
        line_end: 1046
        line_start: 1045
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\146'''
    - item_type: preproc_def
      name: CHAR_g
      pos:
        line_end: 1047
        line_start: 1046
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\147'''
    - item_type: preproc_def
      name: CHAR_h
      pos:
        line_end: 1048
        line_start: 1047
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\150'''
    - item_type: preproc_def
      name: CHAR_i
      pos:
        line_end: 1049
        line_start: 1048
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\151'''
    - item_type: preproc_def
      name: CHAR_j
      pos:
        line_end: 1050
        line_start: 1049
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\152'''
    - item_type: preproc_def
      name: CHAR_k
      pos:
        line_end: 1051
        line_start: 1050
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\153'''
    - item_type: preproc_def
      name: CHAR_l
      pos:
        line_end: 1052
        line_start: 1051
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\154'''
    - item_type: preproc_def
      name: CHAR_m
      pos:
        line_end: 1053
        line_start: 1052
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\155'''
    - item_type: preproc_def
      name: CHAR_n
      pos:
        line_end: 1054
        line_start: 1053
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\156'''
    - item_type: preproc_def
      name: CHAR_o
      pos:
        line_end: 1055
        line_start: 1054
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\157'''
    - item_type: preproc_def
      name: CHAR_p
      pos:
        line_end: 1056
        line_start: 1055
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\160'''
    - item_type: preproc_def
      name: CHAR_q
      pos:
        line_end: 1057
        line_start: 1056
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\161'''
    - item_type: preproc_def
      name: CHAR_r
      pos:
        line_end: 1058
        line_start: 1057
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\162'''
    - item_type: preproc_def
      name: CHAR_s
      pos:
        line_end: 1059
        line_start: 1058
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\163'''
    - item_type: preproc_def
      name: CHAR_t
      pos:
        line_end: 1060
        line_start: 1059
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\164'''
    - item_type: preproc_def
      name: CHAR_u
      pos:
        line_end: 1061
        line_start: 1060
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\165'''
    - item_type: preproc_def
      name: CHAR_v
      pos:
        line_end: 1062
        line_start: 1061
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\166'''
    - item_type: preproc_def
      name: CHAR_w
      pos:
        line_end: 1063
        line_start: 1062
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\167'''
    - item_type: preproc_def
      name: CHAR_x
      pos:
        line_end: 1064
        line_start: 1063
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\170'''
    - item_type: preproc_def
      name: CHAR_y
      pos:
        line_end: 1065
        line_start: 1064
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\171'''
    - item_type: preproc_def
      name: CHAR_z
      pos:
        line_end: 1066
        line_start: 1065
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\172'''
    - item_type: preproc_def
      name: CHAR_LEFT_CURLY_BRACKET
      pos:
        line_end: 1067
        line_start: 1066
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\173'''
    - item_type: preproc_def
      name: CHAR_VERTICAL_LINE
      pos:
        line_end: 1068
        line_start: 1067
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\174'''
    - item_type: preproc_def
      name: CHAR_RIGHT_CURLY_BRACKET
      pos:
        line_end: 1069
        line_start: 1068
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\175'''
    - item_type: preproc_def
      name: CHAR_TILDE
      pos:
        line_end: 1070
        line_start: 1069
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '''\176'''
    - item_type: preproc_def
      name: CHAR_NBSP
      pos:
        line_end: 1071
        line_start: 1070
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: ((unsigned char)'\xa0')
    - item_type: preproc_def
      name: STR_HT
      pos:
        line_end: 1073
        line_start: 1072
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\011"'
    - item_type: preproc_def
      name: STR_VT
      pos:
        line_end: 1074
        line_start: 1073
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\013"'
    - item_type: preproc_def
      name: STR_FF
      pos:
        line_end: 1075
        line_start: 1074
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\014"'
    - item_type: preproc_def
      name: STR_CR
      pos:
        line_end: 1076
        line_start: 1075
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\015"'
    - item_type: preproc_def
      name: STR_NL
      pos:
        line_end: 1077
        line_start: 1076
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\012"'
    - item_type: preproc_def
      name: STR_BS
      pos:
        line_end: 1078
        line_start: 1077
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\010"'
    - item_type: preproc_def
      name: STR_BEL
      pos:
        line_end: 1079
        line_start: 1078
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\007"'
    - item_type: preproc_def
      name: STR_ESC
      pos:
        line_end: 1080
        line_start: 1079
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\033"'
    - item_type: preproc_def
      name: STR_DEL
      pos:
        line_end: 1081
        line_start: 1080
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\177"'
    - item_type: preproc_def
      name: STR_SPACE
      pos:
        line_end: 1083
        line_start: 1082
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\040"'
    - item_type: preproc_def
      name: STR_EXCLAMATION_MARK
      pos:
        line_end: 1084
        line_start: 1083
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\041"'
    - item_type: preproc_def
      name: STR_QUOTATION_MARK
      pos:
        line_end: 1085
        line_start: 1084
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\042"'
    - item_type: preproc_def
      name: STR_NUMBER_SIGN
      pos:
        line_end: 1086
        line_start: 1085
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\043"'
    - item_type: preproc_def
      name: STR_DOLLAR_SIGN
      pos:
        line_end: 1087
        line_start: 1086
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\044"'
    - item_type: preproc_def
      name: STR_PERCENT_SIGN
      pos:
        line_end: 1088
        line_start: 1087
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\045"'
    - item_type: preproc_def
      name: STR_AMPERSAND
      pos:
        line_end: 1089
        line_start: 1088
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\046"'
    - item_type: preproc_def
      name: STR_APOSTROPHE
      pos:
        line_end: 1090
        line_start: 1089
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\047"'
    - item_type: preproc_def
      name: STR_LEFT_PARENTHESIS
      pos:
        line_end: 1091
        line_start: 1090
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\050"'
    - item_type: preproc_def
      name: STR_RIGHT_PARENTHESIS
      pos:
        line_end: 1092
        line_start: 1091
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\051"'
    - item_type: preproc_def
      name: STR_ASTERISK
      pos:
        line_end: 1093
        line_start: 1092
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\052"'
    - item_type: preproc_def
      name: STR_PLUS
      pos:
        line_end: 1094
        line_start: 1093
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\053"'
    - item_type: preproc_def
      name: STR_COMMA
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\054"'
    - item_type: preproc_def
      name: STR_MINUS
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\055"'
    - item_type: preproc_def
      name: STR_DOT
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\056"'
    - item_type: preproc_def
      name: STR_SLASH
      pos:
        line_end: 1098
        line_start: 1097
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\057"'
    - item_type: preproc_def
      name: STR_0
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\060"'
    - item_type: preproc_def
      name: STR_1
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\061"'
    - item_type: preproc_def
      name: STR_2
      pos:
        line_end: 1101
        line_start: 1100
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\062"'
    - item_type: preproc_def
      name: STR_3
      pos:
        line_end: 1102
        line_start: 1101
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\063"'
    - item_type: preproc_def
      name: STR_4
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\064"'
    - item_type: preproc_def
      name: STR_5
      pos:
        line_end: 1104
        line_start: 1103
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\065"'
    - item_type: preproc_def
      name: STR_6
      pos:
        line_end: 1105
        line_start: 1104
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\066"'
    - item_type: preproc_def
      name: STR_7
      pos:
        line_end: 1106
        line_start: 1105
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\067"'
    - item_type: preproc_def
      name: STR_8
      pos:
        line_end: 1107
        line_start: 1106
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\070"'
    - item_type: preproc_def
      name: STR_9
      pos:
        line_end: 1108
        line_start: 1107
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\071"'
    - item_type: preproc_def
      name: STR_COLON
      pos:
        line_end: 1109
        line_start: 1108
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\072"'
    - item_type: preproc_def
      name: STR_SEMICOLON
      pos:
        line_end: 1110
        line_start: 1109
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\073"'
    - item_type: preproc_def
      name: STR_LESS_THAN_SIGN
      pos:
        line_end: 1111
        line_start: 1110
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\074"'
    - item_type: preproc_def
      name: STR_EQUALS_SIGN
      pos:
        line_end: 1112
        line_start: 1111
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\075"'
    - item_type: preproc_def
      name: STR_GREATER_THAN_SIGN
      pos:
        line_end: 1113
        line_start: 1112
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\076"'
    - item_type: preproc_def
      name: STR_QUESTION_MARK
      pos:
        line_end: 1114
        line_start: 1113
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\077"'
    - item_type: preproc_def
      name: STR_COMMERCIAL_AT
      pos:
        line_end: 1115
        line_start: 1114
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\100"'
    - item_type: preproc_def
      name: STR_A
      pos:
        line_end: 1116
        line_start: 1115
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\101"'
    - item_type: preproc_def
      name: STR_B
      pos:
        line_end: 1117
        line_start: 1116
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\102"'
    - item_type: preproc_def
      name: STR_C
      pos:
        line_end: 1118
        line_start: 1117
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\103"'
    - item_type: preproc_def
      name: STR_D
      pos:
        line_end: 1119
        line_start: 1118
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\104"'
    - item_type: preproc_def
      name: STR_E
      pos:
        line_end: 1120
        line_start: 1119
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\105"'
    - item_type: preproc_def
      name: STR_F
      pos:
        line_end: 1121
        line_start: 1120
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\106"'
    - item_type: preproc_def
      name: STR_G
      pos:
        line_end: 1122
        line_start: 1121
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\107"'
    - item_type: preproc_def
      name: STR_H
      pos:
        line_end: 1123
        line_start: 1122
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\110"'
    - item_type: preproc_def
      name: STR_I
      pos:
        line_end: 1124
        line_start: 1123
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\111"'
    - item_type: preproc_def
      name: STR_J
      pos:
        line_end: 1125
        line_start: 1124
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\112"'
    - item_type: preproc_def
      name: STR_K
      pos:
        line_end: 1126
        line_start: 1125
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\113"'
    - item_type: preproc_def
      name: STR_L
      pos:
        line_end: 1127
        line_start: 1126
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\114"'
    - item_type: preproc_def
      name: STR_M
      pos:
        line_end: 1128
        line_start: 1127
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\115"'
    - item_type: preproc_def
      name: STR_N
      pos:
        line_end: 1129
        line_start: 1128
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\116"'
    - item_type: preproc_def
      name: STR_O
      pos:
        line_end: 1130
        line_start: 1129
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\117"'
    - item_type: preproc_def
      name: STR_P
      pos:
        line_end: 1131
        line_start: 1130
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\120"'
    - item_type: preproc_def
      name: STR_Q
      pos:
        line_end: 1132
        line_start: 1131
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\121"'
    - item_type: preproc_def
      name: STR_R
      pos:
        line_end: 1133
        line_start: 1132
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\122"'
    - item_type: preproc_def
      name: STR_S
      pos:
        line_end: 1134
        line_start: 1133
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\123"'
    - item_type: preproc_def
      name: STR_T
      pos:
        line_end: 1135
        line_start: 1134
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\124"'
    - item_type: preproc_def
      name: STR_U
      pos:
        line_end: 1136
        line_start: 1135
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\125"'
    - item_type: preproc_def
      name: STR_V
      pos:
        line_end: 1137
        line_start: 1136
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\126"'
    - item_type: preproc_def
      name: STR_W
      pos:
        line_end: 1138
        line_start: 1137
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\127"'
    - item_type: preproc_def
      name: STR_X
      pos:
        line_end: 1139
        line_start: 1138
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\130"'
    - item_type: preproc_def
      name: STR_Y
      pos:
        line_end: 1140
        line_start: 1139
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\131"'
    - item_type: preproc_def
      name: STR_Z
      pos:
        line_end: 1141
        line_start: 1140
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\132"'
    - item_type: preproc_def
      name: STR_LEFT_SQUARE_BRACKET
      pos:
        line_end: 1142
        line_start: 1141
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\133"'
    - item_type: preproc_def
      name: STR_BACKSLASH
      pos:
        line_end: 1143
        line_start: 1142
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\134"'
    - item_type: preproc_def
      name: STR_RIGHT_SQUARE_BRACKET
      pos:
        line_end: 1144
        line_start: 1143
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\135"'
    - item_type: preproc_def
      name: STR_CIRCUMFLEX_ACCENT
      pos:
        line_end: 1145
        line_start: 1144
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\136"'
    - item_type: preproc_def
      name: STR_UNDERSCORE
      pos:
        line_end: 1146
        line_start: 1145
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\137"'
    - item_type: preproc_def
      name: STR_GRAVE_ACCENT
      pos:
        line_end: 1147
        line_start: 1146
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\140"'
    - item_type: preproc_def
      name: STR_a
      pos:
        line_end: 1148
        line_start: 1147
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\141"'
    - item_type: preproc_def
      name: STR_b
      pos:
        line_end: 1149
        line_start: 1148
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\142"'
    - item_type: preproc_def
      name: STR_c
      pos:
        line_end: 1150
        line_start: 1149
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\143"'
    - item_type: preproc_def
      name: STR_d
      pos:
        line_end: 1151
        line_start: 1150
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\144"'
    - item_type: preproc_def
      name: STR_e
      pos:
        line_end: 1152
        line_start: 1151
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\145"'
    - item_type: preproc_def
      name: STR_f
      pos:
        line_end: 1153
        line_start: 1152
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\146"'
    - item_type: preproc_def
      name: STR_g
      pos:
        line_end: 1154
        line_start: 1153
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\147"'
    - item_type: preproc_def
      name: STR_h
      pos:
        line_end: 1155
        line_start: 1154
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\150"'
    - item_type: preproc_def
      name: STR_i
      pos:
        line_end: 1156
        line_start: 1155
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\151"'
    - item_type: preproc_def
      name: STR_j
      pos:
        line_end: 1157
        line_start: 1156
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\152"'
    - item_type: preproc_def
      name: STR_k
      pos:
        line_end: 1158
        line_start: 1157
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\153"'
    - item_type: preproc_def
      name: STR_l
      pos:
        line_end: 1159
        line_start: 1158
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\154"'
    - item_type: preproc_def
      name: STR_m
      pos:
        line_end: 1160
        line_start: 1159
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\155"'
    - item_type: preproc_def
      name: STR_n
      pos:
        line_end: 1161
        line_start: 1160
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\156"'
    - item_type: preproc_def
      name: STR_o
      pos:
        line_end: 1162
        line_start: 1161
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\157"'
    - item_type: preproc_def
      name: STR_p
      pos:
        line_end: 1163
        line_start: 1162
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\160"'
    - item_type: preproc_def
      name: STR_q
      pos:
        line_end: 1164
        line_start: 1163
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\161"'
    - item_type: preproc_def
      name: STR_r
      pos:
        line_end: 1165
        line_start: 1164
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\162"'
    - item_type: preproc_def
      name: STR_s
      pos:
        line_end: 1166
        line_start: 1165
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\163"'
    - item_type: preproc_def
      name: STR_t
      pos:
        line_end: 1167
        line_start: 1166
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\164"'
    - item_type: preproc_def
      name: STR_u
      pos:
        line_end: 1168
        line_start: 1167
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\165"'
    - item_type: preproc_def
      name: STR_v
      pos:
        line_end: 1169
        line_start: 1168
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\166"'
    - item_type: preproc_def
      name: STR_w
      pos:
        line_end: 1170
        line_start: 1169
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\167"'
    - item_type: preproc_def
      name: STR_x
      pos:
        line_end: 1171
        line_start: 1170
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\170"'
    - item_type: preproc_def
      name: STR_y
      pos:
        line_end: 1172
        line_start: 1171
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\171"'
    - item_type: preproc_def
      name: STR_z
      pos:
        line_end: 1173
        line_start: 1172
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\172"'
    - item_type: preproc_def
      name: STR_LEFT_CURLY_BRACKET
      pos:
        line_end: 1174
        line_start: 1173
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\173"'
    - item_type: preproc_def
      name: STR_VERTICAL_LINE
      pos:
        line_end: 1175
        line_start: 1174
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\174"'
    - item_type: preproc_def
      name: STR_RIGHT_CURLY_BRACKET
      pos:
        line_end: 1176
        line_start: 1175
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\175"'
    - item_type: preproc_def
      name: STR_TILDE
      pos:
        line_end: 1177
        line_start: 1176
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '"\176"'
    - item_type: preproc_def
      name: STRING_ACCEPT0
      pos:
        line_end: 1179
        line_start: 1178
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_A STR_C STR_C STR_E STR_P STR_T "\0"
    - item_type: preproc_def
      name: STRING_COMMIT0
      pos:
        line_end: 1180
        line_start: 1179
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_C STR_O STR_M STR_M STR_I STR_T "\0"
    - item_type: preproc_def
      name: STRING_F0
      pos:
        line_end: 1181
        line_start: 1180
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_F "\0"
    - item_type: preproc_def
      name: STRING_FAIL0
      pos:
        line_end: 1182
        line_start: 1181
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_F STR_A STR_I STR_L "\0"
    - item_type: preproc_def
      name: STRING_MARK0
      pos:
        line_end: 1183
        line_start: 1182
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_M STR_A STR_R STR_K "\0"
    - item_type: preproc_def
      name: STRING_PRUNE0
      pos:
        line_end: 1184
        line_start: 1183
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_P STR_R STR_U STR_N STR_E "\0"
    - item_type: preproc_def
      name: STRING_SKIP0
      pos:
        line_end: 1185
        line_start: 1184
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_S STR_K STR_I STR_P "\0"
    - item_type: preproc_def
      name: STRING_THEN
      pos:
        line_end: 1186
        line_start: 1185
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_T STR_H STR_E STR_N
    - item_type: preproc_def
      name: STRING_atomic0
      pos:
        line_end: 1188
        line_start: 1187
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_a STR_t STR_o STR_m STR_i STR_c "\0"
    - item_type: preproc_def
      name: STRING_pla0
      pos:
        line_end: 1189
        line_start: 1188
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_p STR_l STR_a "\0"
    - item_type: preproc_def
      name: STRING_plb0
      pos:
        line_end: 1190
        line_start: 1189
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_p STR_l STR_b "\0"
    - item_type: preproc_def
      name: STRING_napla0
      pos:
        line_end: 1191
        line_start: 1190
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_n STR_a STR_p STR_l STR_a "\0"
    - item_type: preproc_def
      name: STRING_naplb0
      pos:
        line_end: 1192
        line_start: 1191
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_n STR_a STR_p STR_l STR_b "\0"
    - item_type: preproc_def
      name: STRING_nla0
      pos:
        line_end: 1193
        line_start: 1192
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_n STR_l STR_a "\0"
    - item_type: preproc_def
      name: STRING_nlb0
      pos:
        line_end: 1194
        line_start: 1193
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_n STR_l STR_b "\0"
    - item_type: preproc_def
      name: STRING_sr0
      pos:
        line_end: 1195
        line_start: 1194
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_s STR_r "\0"
    - item_type: preproc_def
      name: STRING_asr0
      pos:
        line_end: 1196
        line_start: 1195
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_a STR_s STR_r "\0"
    - item_type: preproc_def
      name: STRING_positive_lookahead0
      pos:
        line_end: 1197
        line_start: 1196
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_p STR_o STR_s STR_i STR_t STR_i STR_v STR_e STR_UNDERSCORE
        STR_l STR_o STR_o STR_k STR_a STR_h STR_e STR_a STR_d "\0"
    - item_type: preproc_def
      name: STRING_positive_lookbehind0
      pos:
        line_end: 1198
        line_start: 1197
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_p STR_o STR_s STR_i STR_t STR_i STR_v STR_e STR_UNDERSCORE
        STR_l STR_o STR_o STR_k STR_b STR_e STR_h STR_i STR_n STR_d "\0"
    - item_type: preproc_def
      name: STRING_non_atomic_positive_lookahead0
      pos:
        line_end: 1199
        line_start: 1198
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_n STR_o STR_n STR_UNDERSCORE STR_a STR_t STR_o STR_m STR_i
        STR_c STR_UNDERSCORE STR_p STR_o STR_s STR_i STR_t STR_i STR_v STR_e STR_UNDERSCORE
        STR_l STR_o STR_o STR_k STR_a STR_h STR_e STR_a STR_d "\0"
    - item_type: preproc_def
      name: STRING_non_atomic_positive_lookbehind0
      pos:
        line_end: 1200
        line_start: 1199
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_n STR_o STR_n STR_UNDERSCORE STR_a STR_t STR_o STR_m STR_i
        STR_c STR_UNDERSCORE STR_p STR_o STR_s STR_i STR_t STR_i STR_v STR_e STR_UNDERSCORE
        STR_l STR_o STR_o STR_k STR_b STR_e STR_h STR_i STR_n STR_d "\0"
    - item_type: preproc_def
      name: STRING_negative_lookahead0
      pos:
        line_end: 1201
        line_start: 1200
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_n STR_e STR_g STR_a STR_t STR_i STR_v STR_e STR_UNDERSCORE
        STR_l STR_o STR_o STR_k STR_a STR_h STR_e STR_a STR_d "\0"
    - item_type: preproc_def
      name: STRING_negative_lookbehind0
      pos:
        line_end: 1202
        line_start: 1201
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_n STR_e STR_g STR_a STR_t STR_i STR_v STR_e STR_UNDERSCORE
        STR_l STR_o STR_o STR_k STR_b STR_e STR_h STR_i STR_n STR_d "\0"
    - item_type: preproc_def
      name: STRING_script_run0
      pos:
        line_end: 1203
        line_start: 1202
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_s STR_c STR_r STR_i STR_p STR_t STR_UNDERSCORE STR_r STR_u
        STR_n "\0"
    - item_type: preproc_def
      name: STRING_atomic_script_run
      pos:
        line_end: 1204
        line_start: 1203
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_a STR_t STR_o STR_m STR_i STR_c STR_UNDERSCORE STR_s STR_c
        STR_r STR_i STR_p STR_t STR_UNDERSCORE STR_r STR_u STR_n
    - item_type: preproc_def
      name: STRING_alpha0
      pos:
        line_end: 1206
        line_start: 1205
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_a STR_l STR_p STR_h STR_a "\0"
    - item_type: preproc_def
      name: STRING_lower0
      pos:
        line_end: 1207
        line_start: 1206
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_l STR_o STR_w STR_e STR_r "\0"
    - item_type: preproc_def
      name: STRING_upper0
      pos:
        line_end: 1208
        line_start: 1207
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_u STR_p STR_p STR_e STR_r "\0"
    - item_type: preproc_def
      name: STRING_alnum0
      pos:
        line_end: 1209
        line_start: 1208
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_a STR_l STR_n STR_u STR_m "\0"
    - item_type: preproc_def
      name: STRING_ascii0
      pos:
        line_end: 1210
        line_start: 1209
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_a STR_s STR_c STR_i STR_i "\0"
    - item_type: preproc_def
      name: STRING_blank0
      pos:
        line_end: 1211
        line_start: 1210
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_b STR_l STR_a STR_n STR_k "\0"
    - item_type: preproc_def
      name: STRING_cntrl0
      pos:
        line_end: 1212
        line_start: 1211
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_c STR_n STR_t STR_r STR_l "\0"
    - item_type: preproc_def
      name: STRING_digit0
      pos:
        line_end: 1213
        line_start: 1212
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_d STR_i STR_g STR_i STR_t "\0"
    - item_type: preproc_def
      name: STRING_graph0
      pos:
        line_end: 1214
        line_start: 1213
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_g STR_r STR_a STR_p STR_h "\0"
    - item_type: preproc_def
      name: STRING_print0
      pos:
        line_end: 1215
        line_start: 1214
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_p STR_r STR_i STR_n STR_t "\0"
    - item_type: preproc_def
      name: STRING_punct0
      pos:
        line_end: 1216
        line_start: 1215
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_p STR_u STR_n STR_c STR_t "\0"
    - item_type: preproc_def
      name: STRING_space0
      pos:
        line_end: 1217
        line_start: 1216
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_s STR_p STR_a STR_c STR_e "\0"
    - item_type: preproc_def
      name: STRING_word0
      pos:
        line_end: 1218
        line_start: 1217
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_w STR_o STR_r STR_d       "\0"
    - item_type: preproc_def
      name: STRING_xdigit
      pos:
        line_end: 1219
        line_start: 1218
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_x STR_d STR_i STR_g STR_i STR_t
    - item_type: preproc_def
      name: STRING_DEFINE
      pos:
        line_end: 1221
        line_start: 1220
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_D STR_E STR_F STR_I STR_N STR_E
    - item_type: preproc_def
      name: STRING_VERSION
      pos:
        line_end: 1222
        line_start: 1221
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_V STR_E STR_R STR_S STR_I STR_O STR_N
    - item_type: preproc_def
      name: STRING_WEIRD_STARTWORD
      pos:
        line_end: 1223
        line_start: 1222
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_LEFT_SQUARE_BRACKET STR_COLON STR_LESS_THAN_SIGN STR_COLON
        STR_RIGHT_SQUARE_BRACKET STR_RIGHT_SQUARE_BRACKET
    - item_type: preproc_def
      name: STRING_WEIRD_ENDWORD
      pos:
        line_end: 1224
        line_start: 1223
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_LEFT_SQUARE_BRACKET STR_COLON STR_GREATER_THAN_SIGN STR_COLON
        STR_RIGHT_SQUARE_BRACKET STR_RIGHT_SQUARE_BRACKET
    - item_type: preproc_def
      name: STRING_CR_RIGHTPAR
      pos:
        line_end: 1226
        line_start: 1225
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_C STR_R STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_LF_RIGHTPAR
      pos:
        line_end: 1227
        line_start: 1226
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_L STR_F STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_CRLF_RIGHTPAR
      pos:
        line_end: 1228
        line_start: 1227
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_ANY_RIGHTPAR
      pos:
        line_end: 1229
        line_start: 1228
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_A STR_N STR_Y STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_ANYCRLF_RIGHTPAR
      pos:
        line_end: 1230
        line_start: 1229
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_A STR_N STR_Y STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_NUL_RIGHTPAR
      pos:
        line_end: 1231
        line_start: 1230
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_N STR_U STR_L STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_BSR_ANYCRLF_RIGHTPAR
      pos:
        line_end: 1232
        line_start: 1231
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_B STR_S STR_R STR_UNDERSCORE STR_A STR_N STR_Y STR_C STR_R
        STR_L STR_F STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_BSR_UNICODE_RIGHTPAR
      pos:
        line_end: 1233
        line_start: 1232
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_B STR_S STR_R STR_UNDERSCORE STR_U STR_N STR_I STR_C STR_O
        STR_D STR_E STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_UTF8_RIGHTPAR
      pos:
        line_end: 1234
        line_start: 1233
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_U STR_T STR_F STR_8 STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_UTF16_RIGHTPAR
      pos:
        line_end: 1235
        line_start: 1234
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_U STR_T STR_F STR_1 STR_6 STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_UTF32_RIGHTPAR
      pos:
        line_end: 1236
        line_start: 1235
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_U STR_T STR_F STR_3 STR_2 STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_UTF_RIGHTPAR
      pos:
        line_end: 1237
        line_start: 1236
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_U STR_T STR_F STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_UCP_RIGHTPAR
      pos:
        line_end: 1238
        line_start: 1237
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_U STR_C STR_P STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_NO_AUTO_POSSESS_RIGHTPAR
      pos:
        line_end: 1239
        line_start: 1238
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_N STR_O STR_UNDERSCORE STR_A STR_U STR_T STR_O STR_UNDERSCORE
        STR_P STR_O STR_S STR_S STR_E STR_S STR_S STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_NO_DOTSTAR_ANCHOR_RIGHTPAR
      pos:
        line_end: 1240
        line_start: 1239
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_N STR_O STR_UNDERSCORE STR_D STR_O STR_T STR_S STR_T STR_A
        STR_R STR_UNDERSCORE STR_A STR_N STR_C STR_H STR_O STR_R STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_NO_JIT_RIGHTPAR
      pos:
        line_end: 1241
        line_start: 1240
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_N STR_O STR_UNDERSCORE STR_J STR_I STR_T STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_NO_START_OPT_RIGHTPAR
      pos:
        line_end: 1242
        line_start: 1241
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_N STR_O STR_UNDERSCORE STR_S STR_T STR_A STR_R STR_T STR_UNDERSCORE
        STR_O STR_P STR_T STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_NOTEMPTY_RIGHTPAR
      pos:
        line_end: 1243
        line_start: 1242
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_N STR_O STR_T STR_E STR_M STR_P STR_T STR_Y STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_NOTEMPTY_ATSTART_RIGHTPAR
      pos:
        line_end: 1244
        line_start: 1243
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_N STR_O STR_T STR_E STR_M STR_P STR_T STR_Y STR_UNDERSCORE
        STR_A STR_T STR_S STR_T STR_A STR_R STR_T STR_RIGHT_PARENTHESIS
    - item_type: preproc_def
      name: STRING_LIMIT_HEAP_EQ
      pos:
        line_end: 1245
        line_start: 1244
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_L STR_I STR_M STR_I STR_T STR_UNDERSCORE STR_H STR_E STR_A
        STR_P STR_EQUALS_SIGN
    - item_type: preproc_def
      name: STRING_LIMIT_MATCH_EQ
      pos:
        line_end: 1246
        line_start: 1245
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_L STR_I STR_M STR_I STR_T STR_UNDERSCORE STR_M STR_A STR_T
        STR_C STR_H STR_EQUALS_SIGN
    - item_type: preproc_def
      name: STRING_LIMIT_DEPTH_EQ
      pos:
        line_end: 1247
        line_start: 1246
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_L STR_I STR_M STR_I STR_T STR_UNDERSCORE STR_D STR_E STR_P
        STR_T STR_H STR_EQUALS_SIGN
    - item_type: preproc_def
      name: STRING_LIMIT_RECURSION_EQ
      pos:
        line_end: 1248
        line_start: 1247
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_L STR_I STR_M STR_I STR_T STR_UNDERSCORE STR_R STR_E STR_C
        STR_U STR_R STR_S STR_I STR_O STR_N STR_EQUALS_SIGN
    - item_type: preproc_def
      name: STRING_MARK
      pos:
        line_end: 1249
        line_start: 1248
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: STR_M STR_A STR_R STR_K
    - item_type: preproc_def
      name: PT_ANY
      pos:
        line_end: 1259
        line_start: 1258
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0    '
    - item_type: preproc_def
      name: PT_LAMP
      pos:
        line_end: 1260
        line_start: 1259
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '1    '
    - item_type: preproc_def
      name: PT_GC
      pos:
        line_end: 1261
        line_start: 1260
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '2    '
    - item_type: preproc_def
      name: PT_PC
      pos:
        line_end: 1262
        line_start: 1261
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '3    '
    - item_type: preproc_def
      name: PT_SC
      pos:
        line_end: 1263
        line_start: 1262
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '4    '
    - item_type: preproc_def
      name: PT_ALNUM
      pos:
        line_end: 1264
        line_start: 1263
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '5    '
    - item_type: preproc_def
      name: PT_SPACE
      pos:
        line_end: 1265
        line_start: 1264
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '6    '
    - item_type: preproc_def
      name: PT_PXSPACE
      pos:
        line_end: 1266
        line_start: 1265
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '7    '
    - item_type: preproc_def
      name: PT_WORD
      pos:
        line_end: 1267
        line_start: 1266
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '8    '
    - item_type: preproc_def
      name: PT_CLIST
      pos:
        line_end: 1268
        line_start: 1267
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '9    '
    - item_type: preproc_def
      name: PT_UCNC
      pos:
        line_end: 1269
        line_start: 1268
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '10    '
    - item_type: preproc_def
      name: PT_TABSIZE
      pos:
        line_end: 1270
        line_start: 1269
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '11    '
    - item_type: preproc_def
      name: PT_PXGRAPH
      pos:
        line_end: 1278
        line_start: 1277
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '11    '
    - item_type: preproc_def
      name: PT_PXPRINT
      pos:
        line_end: 1279
        line_start: 1278
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '12    '
    - item_type: preproc_def
      name: PT_PXPUNCT
      pos:
        line_end: 1280
        line_start: 1279
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '13    '
    - item_type: preproc_def
      name: XCL_NOT
      pos:
        line_end: 1285
        line_start: 1284
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: XCL_MAP
      pos:
        line_end: 1286
        line_start: 1285
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: XCL_HASPROP
      pos:
        line_end: 1287
        line_start: 1286
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: XCL_END
      pos:
        line_end: 1289
        line_start: 1288
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '0    '
    - item_type: preproc_def
      name: XCL_SINGLE
      pos:
        line_end: 1290
        line_start: 1289
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '1    '
    - item_type: preproc_def
      name: XCL_RANGE
      pos:
        line_end: 1291
        line_start: 1290
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '2    '
    - item_type: preproc_def
      name: XCL_PROP
      pos:
        line_end: 1292
        line_start: 1291
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '3    '
    - item_type: preproc_def
      name: XCL_NOTPROP
      pos:
        line_end: 1293
        line_start: 1292
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '4    '
    - item_type: preproc_def
      name: FIRST_AUTOTAB_OP
      pos:
        line_end: 1339
        line_start: 1338
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: OP_NOT_DIGIT
    - item_type: preproc_def
      name: LAST_AUTOTAB_LEFT_OP
      pos:
        line_end: 1340
        line_start: 1339
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: OP_EXTUNI
    - item_type: preproc_def
      name: LAST_AUTOTAB_RIGHT_OP
      pos:
        line_end: 1341
        line_start: 1340
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: OP_DOLLM
    - item_type: preproc_def
      name: OP_NAME_LIST
      pos:
        line_end: 1658
        line_start: 1617
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: "\"End\", \"\\\\A\", \"\\\\G\", \"\\\\K\", \"\\\\B\", \"\\\\b\",
        \"\\\\D\", \"\\\\d\",         \\\n  \"\\\\S\", \"\\\\s\", \"\\\\W\", \"\\\\w\",
        \"Any\", \"AllAny\", \"Anybyte\",         \\\n  \"notprop\", \"prop\", \"\\\\R\",
        \"\\\\H\", \"\\\\h\", \"\\\\V\", \"\\\\v\",           \\\n  \"extuni\",  \"\\\\Z\",
        \"\\\\z\",                                        \\\n  \"$\", \"$\", \"^\",
        \"^\", \"char\", \"chari\", \"not\", \"noti\",             \\\n  \"*\", \"*?\",
        \"+\", \"+?\", \"?\", \"??\",                                \\\n  \"{\",
        \"{\", \"{\",                                                  \\\n  \"*+\",\"++\",
        \"?+\", \"{\",                                           \\\n  \"*\", \"*?\",
        \"+\", \"+?\", \"?\", \"??\",                                \\\n  \"{\",
        \"{\", \"{\",                                                  \\\n  \"*+\",\"++\",
        \"?+\", \"{\",                                           \\\n  \"*\", \"*?\",
        \"+\", \"+?\", \"?\", \"??\",                                \\\n  \"{\",
        \"{\", \"{\",                                                  \\\n  \"*+\",\"++\",
        \"?+\", \"{\",                                           \\\n  \"*\", \"*?\",
        \"+\", \"+?\", \"?\", \"??\",                                \\\n  \"{\",
        \"{\", \"{\",                                                  \\\n  \"*+\",\"++\",
        \"?+\", \"{\",                                           \\\n  \"*\", \"*?\",
        \"+\", \"+?\", \"?\", \"??\", \"{\", \"{\", \"{\",                 \\\n  \"*+\",\"++\",
        \"?+\", \"{\",                                           \\\n  \"*\", \"*?\",
        \"+\", \"+?\", \"?\", \"??\", \"{\", \"{\",                      \\\n  \"*+\",\"++\",
        \"?+\", \"{\",                                           \\\n  \"class\",
        \"nclass\", \"xclass\", \"Ref\", \"Refi\", \"DnRef\", \"DnRefi\",  \\\n  \"Recurse\",
        \"Callout\", \"CalloutStr\",                             \\\n  \"Alt\", \"Ket\",
        \"KetRmax\", \"KetRmin\", \"KetRpos\",                  \\\n  \"Reverse\",
        \"Assert\", \"Assert not\",                              \\\n  \"Assert back\",
        \"Assert back not\",                               \\\n  \"Non-atomic assert\",
        \"Non-atomic assert back\",                  \\\n  \"Once\",                                                         \\\n
        \ \"Script run\",                                                   \\\n  \"Bra\",
        \"BraPos\", \"CBra\", \"CBraPos\",                             \\\n  \"Cond\",
        \                                                        \\\n  \"SBra\", \"SBraPos\",
        \"SCBra\", \"SCBraPos\",                         \\\n  \"SCond\",                                                        \\\n
        \ \"Cond ref\", \"Cond dnref\", \"Cond rec\", \"Cond dnrec\",             \\\n
        \ \"Cond false\", \"Cond true\",                                      \\\n
        \ \"Brazero\", \"Braminzero\", \"Braposzero\",                          \\\n
        \ \"*MARK\", \"*PRUNE\", \"*PRUNE\", \"*SKIP\", \"*SKIP\",                  \\\n
        \ \"*THEN\", \"*THEN\", \"*COMMIT\", \"*COMMIT\", \"*FAIL\",                \\\n
        \ \"*ACCEPT\", \"*ASSERT_ACCEPT\",                                    \\\n
        \ \"Close\", \"Skip zero\", \"Define\""
    - item_type: preproc_def
      name: OP_LENGTHS
      pos:
        line_end: 1670
        line_start: 1669
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: '1,                             '
    - item_type: preproc_def
      name: MAX_NON_UTF_CHAR
      pos:
        line_end: 1852
        line_start: 1851
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: (0xffffffffU >> (32 - PCRE2_CODE_UNIT_WIDTH))
    - item_type: preproc_def
      name: _pcre2_OP_lengths
      pos:
        line_end: 1869
        line_start: 1868
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_OP_lengths_)
    - item_type: preproc_def
      name: _pcre2_callout_end_delims
      pos:
        line_end: 1870
        line_start: 1869
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_callout_end_delims_)
    - item_type: preproc_def
      name: _pcre2_callout_start_delims
      pos:
        line_end: 1871
        line_start: 1870
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_callout_start_delims_)
    - item_type: preproc_def
      name: _pcre2_default_compile_context
      pos:
        line_end: 1872
        line_start: 1871
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_default_compile_context_)
    - item_type: preproc_def
      name: _pcre2_default_convert_context
      pos:
        line_end: 1873
        line_start: 1872
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_default_convert_context_)
    - item_type: preproc_def
      name: _pcre2_default_match_context
      pos:
        line_end: 1874
        line_start: 1873
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_default_match_context_)
    - item_type: preproc_def
      name: _pcre2_default_tables
      pos:
        line_end: 1875
        line_start: 1874
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_default_tables_)
    - item_type: preproc_def
      name: _pcre2_dummy_ucd_record
      pos:
        line_end: 1877
        line_start: 1876
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_dummy_ucd_record_)
    - item_type: preproc_def
      name: _pcre2_hspace_list
      pos:
        line_end: 1879
        line_start: 1878
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_hspace_list_)
    - item_type: preproc_def
      name: _pcre2_vspace_list
      pos:
        line_end: 1880
        line_start: 1879
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_vspace_list_)
    - item_type: preproc_def
      name: _pcre2_ucd_caseless_sets
      pos:
        line_end: 1881
        line_start: 1880
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ucd_caseless_sets_)
    - item_type: preproc_def
      name: _pcre2_ucd_digit_sets
      pos:
        line_end: 1882
        line_start: 1881
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ucd_digit_sets_)
    - item_type: preproc_def
      name: _pcre2_ucd_script_sets
      pos:
        line_end: 1883
        line_start: 1882
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ucd_script_sets_)
    - item_type: preproc_def
      name: _pcre2_ucd_records
      pos:
        line_end: 1884
        line_start: 1883
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ucd_records_)
    - item_type: preproc_def
      name: _pcre2_ucd_stage1
      pos:
        line_end: 1885
        line_start: 1884
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ucd_stage1_)
    - item_type: preproc_def
      name: _pcre2_ucd_stage2
      pos:
        line_end: 1886
        line_start: 1885
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ucd_stage2_)
    - item_type: preproc_def
      name: _pcre2_ucp_gbtable
      pos:
        line_end: 1887
        line_start: 1886
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ucp_gbtable_)
    - item_type: preproc_def
      name: _pcre2_ucp_gentype
      pos:
        line_end: 1888
        line_start: 1887
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ucp_gentype_)
    - item_type: preproc_def
      name: _pcre2_ucp_typerange
      pos:
        line_end: 1889
        line_start: 1888
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ucp_typerange_)
    - item_type: preproc_def
      name: _pcre2_unicode_version
      pos:
        line_end: 1890
        line_start: 1889
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_unicode_version_)
    - item_type: preproc_def
      name: _pcre2_utt
      pos:
        line_end: 1891
        line_start: 1890
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_utt_)
    - item_type: preproc_def
      name: _pcre2_utt_names
      pos:
        line_end: 1892
        line_start: 1891
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_utt_names_)
    - item_type: preproc_def
      name: _pcre2_utt_size
      pos:
        line_end: 1893
        line_start: 1892
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_utt_size_)
    - item_type: preproc_def
      name: branch_chain
      pos:
        line_end: 1929
        line_start: 1928
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(branch_chain_)
    - item_type: preproc_def
      name: compile_block
      pos:
        line_end: 1930
        line_start: 1929
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(compile_block_)
    - item_type: preproc_def
      name: dfa_match_block
      pos:
        line_end: 1931
        line_start: 1930
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(dfa_match_block_)
    - item_type: preproc_def
      name: match_block
      pos:
        line_end: 1932
        line_start: 1931
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(match_block_)
    - item_type: preproc_def
      name: named_group
      pos:
        line_end: 1933
        line_start: 1932
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(named_group_)
    - item_type: preproc_def
      name: _pcre2_auto_possessify
      pos:
        line_end: 1943
        line_start: 1942
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_auto_possessify_)
    - item_type: preproc_def
      name: _pcre2_check_escape
      pos:
        line_end: 1944
        line_start: 1943
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_check_escape_)
    - item_type: preproc_def
      name: _pcre2_extuni
      pos:
        line_end: 1945
        line_start: 1944
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_extuni_)
    - item_type: preproc_def
      name: _pcre2_find_bracket
      pos:
        line_end: 1946
        line_start: 1945
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_find_bracket_)
    - item_type: preproc_def
      name: _pcre2_is_newline
      pos:
        line_end: 1947
        line_start: 1946
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_is_newline_)
    - item_type: preproc_def
      name: _pcre2_jit_free_rodata
      pos:
        line_end: 1948
        line_start: 1947
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_jit_free_rodata_)
    - item_type: preproc_def
      name: _pcre2_jit_free
      pos:
        line_end: 1949
        line_start: 1948
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_jit_free_)
    - item_type: preproc_def
      name: _pcre2_jit_get_size
      pos:
        line_end: 1950
        line_start: 1949
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_jit_get_size_)
    - item_type: preproc_def
      name: _pcre2_jit_get_target
      pos:
        line_end: 1951
        line_start: 1950
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_jit_get_target_)
    - item_type: preproc_def
      name: _pcre2_memctl_malloc
      pos:
        line_end: 1952
        line_start: 1951
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_memctl_malloc_)
    - item_type: preproc_def
      name: _pcre2_ord2utf
      pos:
        line_end: 1953
        line_start: 1952
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_ord2utf_)
    - item_type: preproc_def
      name: _pcre2_script_run
      pos:
        line_end: 1954
        line_start: 1953
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_script_run_)
    - item_type: preproc_def
      name: _pcre2_strcmp
      pos:
        line_end: 1955
        line_start: 1954
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_strcmp_)
    - item_type: preproc_def
      name: _pcre2_strcmp_c8
      pos:
        line_end: 1956
        line_start: 1955
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_strcmp_c8_)
    - item_type: preproc_def
      name: _pcre2_strcpy_c8
      pos:
        line_end: 1957
        line_start: 1956
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_strcpy_c8_)
    - item_type: preproc_def
      name: _pcre2_strlen
      pos:
        line_end: 1958
        line_start: 1957
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_strlen_)
    - item_type: preproc_def
      name: _pcre2_strncmp
      pos:
        line_end: 1959
        line_start: 1958
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_strncmp_)
    - item_type: preproc_def
      name: _pcre2_strncmp_c8
      pos:
        line_end: 1960
        line_start: 1959
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_strncmp_c8_)
    - item_type: preproc_def
      name: _pcre2_study
      pos:
        line_end: 1961
        line_start: 1960
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_study_)
    - item_type: preproc_def
      name: _pcre2_valid_utf
      pos:
        line_end: 1962
        line_start: 1961
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_valid_utf_)
    - item_type: preproc_def
      name: _pcre2_was_newline
      pos:
        line_end: 1963
        line_start: 1962
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_was_newline_)
    - item_type: preproc_def
      name: _pcre2_xclass
      pos:
        line_end: 1964
        line_start: 1963
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_xclass_)
    - item_type: preproc_def
      name: _pcre2_memmove
      pos:
        line_end: 1997
        line_start: 1996
        source_file: /src/pcre2/src/pcre2_internal.h
      type_or_value: PCRE2_SUFFIX(_pcre2_memmove)
    structs: []
    typedefs:
    - item_type: typedef
      name: BOOL
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/pcre2/src/pcre2_internal.h
      type: int
    union: []
- function_names:
  - PRIV
  - PRIV
  - PRIV
  - PRIV
  - PRIV
  - PRIV
  - PRIV
  source_file: /src/pcre2/src/pcre2_string_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_callout
  - more_workspace
  - ADD_ACTIVE
  - ADD_ACTIVE_DATA
  - ADD_NEW
  - ADD_NEW_DATA
  - internal_dfa_match
  - pcre2_dfa_match
  source_file: /src/pcre2/src/pcre2_dfa_match.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NLBLOCK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: 'mb             '
    - item_type: preproc_def
      name: PSSTART
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: 'start_subject  '
    - item_type: preproc_def
      name: PSEND
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: 'end_subject    '
    - item_type: preproc_def
      name: PUBLIC_DFA_MATCH_OPTIONS
      pos:
        line_end: 89
        line_start: 84
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: "(PCRE2_ANCHORED|PCRE2_ENDANCHORED|PCRE2_NOTBOL|PCRE2_NOTEOL|PCRE2_NOTEMPTY|
        \\\n   PCRE2_NOTEMPTY_ATSTART|PCRE2_NO_UTF_CHECK|PCRE2_PARTIAL_HARD| \\\n
        \  PCRE2_PARTIAL_SOFT|PCRE2_DFA_SHORTEST|PCRE2_DFA_RESTART| \\\n   PCRE2_COPY_MATCHED_SUBJECT)"
    - item_type: preproc_def
      name: OP_PROP_EXTRA
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: '300'
    - item_type: preproc_def
      name: OP_EXTUNI_EXTRA
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: '320'
    - item_type: preproc_def
      name: OP_ANYNL_EXTRA
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: '340'
    - item_type: preproc_def
      name: OP_HSPACE_EXTRA
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: '360'
    - item_type: preproc_def
      name: OP_VSPACE_EXTRA
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: '380'
    - item_type: preproc_def
      name: INTS_PER_STATEBLOCK
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: (int)(sizeof(stateblock)/sizeof(int))
    - item_type: preproc_def
      name: OVEC_UNIT
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: (sizeof(PCRE2_SIZE)/sizeof(int))
    - item_type: preproc_def
      name: RWS_BASE_SIZE
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: '(DFA_START_RWS_SIZE/sizeof(int))  '
    - item_type: preproc_def
      name: RWS_RSIZE
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: '1000                    '
    - item_type: preproc_def
      name: RWS_OVEC_RSIZE
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: '(1000*OVEC_UNIT)        '
    - item_type: preproc_def
      name: RWS_OVEC_OSIZE
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: '(2*OVEC_UNIT)           '
    - item_type: preproc_def
      name: RWS_ANCHOR_SIZE
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: (sizeof(RWS_anchor)/sizeof(int))
    - item_type: preproc_def
      name: FF
      pos:
        line_end: 3339
        line_start: 3338
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: (PCRE2_NOTEMPTY_SET|PCRE2_NE_ATST_SET)
    - item_type: preproc_def
      name: OO
      pos:
        line_end: 3340
        line_start: 3339
        source_file: /src/pcre2/src/pcre2_dfa_match.c
      type_or_value: (PCRE2_NOTEMPTY|PCRE2_NOTEMPTY_ATSTART)
    structs:
    - fields:
      - name: offset
        type: int
      - name: count
        type: int
      - name: data
        type: int
      item_type: struct
      name: stateblock
      pos:
        line_end: 298
        line_start: 294
        source_file: /src/pcre2/src/pcre2_dfa_match.c
    - fields:
      - name: '*next'
        type: struct RWS_anchor
      - name: size
        type: uint32_t
      - name: free
        type: uint32_t
      item_type: struct
      name: RWS_anchor
      pos:
        line_end: 327
        line_start: 323
        source_file: /src/pcre2/src/pcre2_dfa_match.c
    typedefs: []
    union: []
- function_names:
  - callout_function
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/pcre2/src/pcre2_fuzzsupport.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/pcre2/src/pcre2_fuzzsupport.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_MATCH_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/pcre2/src/pcre2_fuzzsupport.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: DFA_WORKSPACE_COUNT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/pcre2/src/pcre2_fuzzsupport.c
      type_or_value: '100'
    - item_type: preproc_def
      name: ALLOWED_COMPILE_OPTIONS
      pos:
        line_end: 32
        line_start: 23
        source_file: /src/pcre2/src/pcre2_fuzzsupport.c
      type_or_value: "(PCRE2_ANCHORED|PCRE2_ALLOW_EMPTY_CLASS|PCRE2_ALT_BSUX|PCRE2_ALT_CIRCUMFLEX|
        \\\n   PCRE2_ALT_VERBNAMES|PCRE2_AUTO_CALLOUT|PCRE2_CASELESS|PCRE2_DOLLAR_ENDONLY|
        \\\n   PCRE2_DOTALL|PCRE2_DUPNAMES|PCRE2_ENDANCHORED|PCRE2_EXTENDED|PCRE2_FIRSTLINE|
        \\\n   PCRE2_MATCH_UNSET_BACKREF|PCRE2_MULTILINE|PCRE2_NEVER_BACKSLASH_C|
        \\\n   PCRE2_NO_AUTO_CAPTURE| \\\n   PCRE2_NO_AUTO_POSSESS|PCRE2_NO_DOTSTAR_ANCHOR|PCRE2_NO_START_OPTIMIZE|
        \\\n   PCRE2_UCP|PCRE2_UNGREEDY|PCRE2_USE_OFFSET_LIMIT| \\\n   PCRE2_UTF)"
    - item_type: preproc_def
      name: ALLOWED_MATCH_OPTIONS
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/pcre2/src/pcre2_fuzzsupport.c
      type_or_value: "(PCRE2_ANCHORED|PCRE2_ENDANCHORED|PCRE2_NOTBOL|PCRE2_NOTEOL|PCRE2_NOTEMPTY|
        \\\n   PCRE2_NOTEMPTY_ATSTART|PCRE2_PARTIAL_HARD| \\\n   PCRE2_PARTIAL_SOFT|PCRE2_NO_JIT)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - SLJIT_MALLOC
  - SLJIT_FREE
  - pcre2_jit_malloc
  - pcre2_jit_free
  - STACK
  - OVECTOR
  - OVECTOR_PRIV
  - PRIVATE_DATA
  - IN_UCHARS
  - IN_UCHARS
  - IN_UCHARS
  - OP1
  - OP2
  - OP_SRC
  - LABEL
  - JUMP
  - JUMPTO
  - JUMPHERE
  - SET_LABEL
  - CMP
  - CMPTO
  - OP_FLAGS
  - CMOV
  - GET_LOCAL_BASE
  - GETCHARINC_INVALID
  - GETCHARBACK_INVALID
  - GETCHARINC_INVALID
  - GETCHARBACK_INVALID
  - GETCHARINC_INVALID
  - GETCHARBACK_INVALID
  - bracketend
  - no_alternatives
  - next_opcode
  - check_opcode_types
  - detect_early_fail
  - get_class_iterator_size
  - detect_repeat
  - set_private_data_ptrs
  - get_framesize
  - init_frame
  - delayed_mem_copy_init
  - delayed_mem_copy_move
  - delayed_mem_copy_finish
  - get_recurse_data_length
  - copy_recurse_data
  - if
  - if
  - if
  - if
  - if
  - set_then_offsets
  - is_powerof2
  - set_jumps
  - add_jump
  - add_stub
  - flush_stubs
  - count_match
  - allocate_stack
  - free_stack
  - allocate_read_only_data
  - reset_ovector
  - reset_early_fail
  - do_reset_match
  - do_search_mark
  - copy_ovector
  - return_with_partial_match
  - check_start_used_ptr
  - char_has_othercase
  - char_othercase
  - char_get_othercase_bit
  - check_partial
  - check_str_end
  - detect_partial_match
  - process_partial_match
  - detect_partial_match_to
  - peek_char
  - peek_char_back
  - read_char
  - is_char7_bitset
  - read_char7_type
  - read_char8_type
  - move_back
  - check_newlinechar
  - do_utfreadchar
  - do_utfreadtype8
  - do_utfreadchar_invalid
  - do_utfreadnewline_invalid
  - do_utfmoveback_invalid
  - do_utfpeakcharback
  - do_utfpeakcharback_invalid
  - do_utfreadchar_invalid
  - do_utfreadnewline_invalid
  - do_utfmoveback_invalid
  - do_utfpeakcharback_invalid
  - do_getucd
  - do_getucdtype
  - mainloop_entry
  - add_prefix_char
  - scan_prefix
  - jumpto_if_not_utf_char_start
  - check_fast_forward_char_pair_simd
  - fast_forward_first_char2
  - fast_forward_first_n_chars
  - fast_forward_first_char
  - fast_forward_newline
  - fast_forward_start_bits
  - search_requested_char
  - do_revertframes
  - check_wordboundary
  - optimize_class_ranges
  - optimize_class_chars
  - optimize_class
  - do_casefulcmp
  - do_caselesscmp
  - SET_TYPE_OFFSET
  - SET_CHAR_OFFSET
  - compile_simple_assertion_matchingpath
  - do_extuni_utf
  - do_extuni_utf_invalid
  - do_extuni_no_utf
  - compile_char1_matchingpath
  - compile_charn_matchingpath
  - PUSH_BACKTRACK
  - PUSH_BACKTRACK_NOVALUE
  - BACKTRACK_AS
  - compile_dnref_search
  - compile_ref_matchingpath
  - compile_ref_iterator_matchingpath
  - compile_recurse_matchingpath
  - do_callout
  - CALLOUT_ARG_OFFSET
  - compile_callout_matchingpath
  - assert_needs_str_ptr_saving
  - compile_assert_matchingpath
  - match_once_common
  - match_capture_common
  - do_script_run
  - do_script_run_utf
  - match_script_run_common
  - compile_bracket_matchingpath
  - compile_bracketpos_matchingpath
  - get_iterator_parameters
  - compile_iterator_matchingpath
  - compile_fail_accept_matchingpath
  - compile_close_matchingpath
  - compile_control_verb_matchingpath
  - compile_then_trap_matchingpath
  - compile_matchingpath
  - COMPILE_BACKTRACKINGPATH
  - CURRENT_AS
  - compile_iterator_backtrackingpath
  - compile_ref_iterator_backtrackingpath
  - compile_recurse_backtrackingpath
  - compile_assert_backtrackingpath
  - compile_bracket_backtrackingpath
  - compile_bracketpos_backtrackingpath
  - compile_braminzero_backtrackingpath
  - compile_control_verb_backtrackingpath
  - compile_then_trap_backtrackingpath
  - compile_backtrackingpath
  - compile_recurse
  - jit_compile
  - pcre2_jit_compile
  source_file: /src/pcre2/src/pcre2_jit_compile.c
  types:
    enum:
    - enumerators:
      - name: no_frame
        value: '-1'
      - name: no_stack
        value: '-2'
      item_type: enum
      name: frame_types
      pos:
        line_end: 218
        line_start: 215
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - enumerators:
      - name: type_mark
        value: '0'
      - name: type_then_trap
        value: '1'
      item_type: enum
      name: control_types
      pos:
        line_end: 223
        line_start: 220
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - enumerators:
      - name: type_skip
        value: '0'
      - name: type_fail_range
        value: '2'
      - name: type_fail
        value: '1'
      item_type: enum
      name: early_fail_types
      pos:
        line_end: 229
        line_start: 225
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - enumerators:
      - name: recurse_copy_from_global
      - name: recurse_swap_global
      - name: recurse_copy_private_to_global
      - name: recurse_copy_shared_to_global
      - name: recurse_copy_kept_shared_to_global
      item_type: enum
      name: copy_recurse_data_types
      pos:
        line_end: 2541
        line_start: 2535
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    preproc_defs:
    - item_type: preproc_def
      name: SLJIT_CONFIG_AUTO
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_STATIC
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_VERBOSE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_DEBUG
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_DEBUG
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MACHINE_STACK_SIZE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '32768'
    - item_type: preproc_def
      name: STACK_GROWTH_RATE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: DESTROY_REGISTERS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '1'
    - item_type: preproc_def
      name: JIT_NUMBER_OF_COMPILE_MODES
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '3'
    - item_type: preproc_def
      name: OP_THEN_TRAP
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: OP_TABLE_LENGTH
    - item_type: preproc_def
      name: MAX_N_CHARS
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '12'
    - item_type: preproc_def
      name: MAX_DIFF_CHARS
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_CLASS_RANGE_SIZE
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_CLASS_CHARS_SIZE
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '3'
    - item_type: preproc_def
      name: TMP1
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_R0
    - item_type: preproc_def
      name: TMP2
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_R3
    - item_type: preproc_def
      name: TMP3
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_R2
    - item_type: preproc_def
      name: TMP2
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_R2
    - item_type: preproc_def
      name: TMP3
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_R3
    - item_type: preproc_def
      name: STR_PTR
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_R1
    - item_type: preproc_def
      name: STR_END
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_S0
    - item_type: preproc_def
      name: STACK_TOP
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_S1
    - item_type: preproc_def
      name: STACK_LIMIT
      pos:
        line_end: 565
        line_start: 564
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_S2
    - item_type: preproc_def
      name: COUNT_MATCH
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_S3
    - item_type: preproc_def
      name: ARGUMENTS
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_S4
    - item_type: preproc_def
      name: RETURN_ADDR
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_R4
    - item_type: preproc_def
      name: HAS_VIRTUAL_REGISTERS
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAS_VIRTUAL_REGISTERS
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '0'
    - item_type: preproc_def
      name: LOCALS0
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (0 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: LOCALS1
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (1 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: POSSESSIVE0
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (2 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: POSSESSIVE1
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (3 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: LIMIT_MATCH
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (4 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: OVECTOR_START
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (common->ovector_start)
    - item_type: preproc_def
      name: MOV_UCHAR
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_MOV_U8
    - item_type: preproc_def
      name: MOV_UCHAR
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_MOV_U16
    - item_type: preproc_def
      name: UCHAR_SHIFT
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (1)
    - item_type: preproc_def
      name: MOV_UCHAR
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: SLJIT_MOV_U32
    - item_type: preproc_def
      name: UCHAR_SHIFT
      pos:
        line_end: 603
        line_start: 602
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (2)
    - item_type: preproc_def
      name: DEFINE_COMPILER
      pos:
        line_end: 611
        line_start: 609
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: struct sljit_compiler *compiler = common->compiler
    - item_type: preproc_def
      name: READ_CHAR_MAX
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '0x7fffffff'
    - item_type: preproc_def
      name: INVALID_UTF_CHAR
      pos:
        line_end: 641
        line_start: 640
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: UNASSIGNED_UTF_CHAR
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '888'
    - item_type: preproc_def
      name: EARLY_FAIL_ENHANCE_MAX
      pos:
        line_end: 1229
        line_start: 1228
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (1 + 3)
    - item_type: preproc_def
      name: CASE_ITERATOR_PRIVATE_DATA_1
      pos:
        line_end: 1710
        line_start: 1693
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: "case OP_MINSTAR: \\\n    case OP_MINPLUS: \\\n    case OP_QUERY:
        \\\n    case OP_MINQUERY: \\\n    case OP_MINSTARI: \\\n    case OP_MINPLUSI:
        \\\n    case OP_QUERYI: \\\n    case OP_MINQUERYI: \\\n    case OP_NOTMINSTAR:
        \\\n    case OP_NOTMINPLUS: \\\n    case OP_NOTQUERY: \\\n    case OP_NOTMINQUERY:
        \\\n    case OP_NOTMINSTARI: \\\n    case OP_NOTMINPLUSI: \\\n    case OP_NOTQUERYI:
        \\\n    case OP_NOTMINQUERYI:"
    - item_type: preproc_def
      name: CASE_ITERATOR_PRIVATE_DATA_2A
      pos:
        line_end: 1720
        line_start: 1711
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: "case OP_STAR: \\\n    case OP_PLUS: \\\n    case OP_STARI: \\\n
        \   case OP_PLUSI: \\\n    case OP_NOTSTAR: \\\n    case OP_NOTPLUS: \\\n
        \   case OP_NOTSTARI: \\\n    case OP_NOTPLUSI:"
    - item_type: preproc_def
      name: CASE_ITERATOR_PRIVATE_DATA_2B
      pos:
        line_end: 1730
        line_start: 1721
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: "case OP_UPTO: \\\n    case OP_MINUPTO: \\\n    case OP_UPTOI:
        \\\n    case OP_MINUPTOI: \\\n    case OP_NOTUPTO: \\\n    case OP_NOTMINUPTO:
        \\\n    case OP_NOTUPTOI: \\\n    case OP_NOTMINUPTOI:"
    - item_type: preproc_def
      name: CASE_ITERATOR_TYPE_PRIVATE_DATA_1
      pos:
        line_end: 1736
        line_start: 1731
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: "case OP_TYPEMINSTAR: \\\n    case OP_TYPEMINPLUS: \\\n    case
        OP_TYPEQUERY: \\\n    case OP_TYPEMINQUERY:"
    - item_type: preproc_def
      name: CASE_ITERATOR_TYPE_PRIVATE_DATA_2A
      pos:
        line_end: 1740
        line_start: 1737
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: "case OP_TYPESTAR: \\\n    case OP_TYPEPLUS:"
    - item_type: preproc_def
      name: CASE_ITERATOR_TYPE_PRIVATE_DATA_2B
      pos:
        line_end: 1744
        line_start: 1741
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: "case OP_TYPEUPTO: \\\n    case OP_TYPEMINUPTO:"
    - item_type: preproc_def
      name: RECURSE_TMP_REG_COUNT
      pos:
        line_end: 2241
        line_start: 2240
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '3'
    - item_type: preproc_def
      name: READ_CHAR_UPDATE_STR_PTR
      pos:
        line_end: 3824
        line_start: 3823
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: READ_CHAR_UTF8_NEWLINE
      pos:
        line_end: 3825
        line_start: 3824
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: READ_CHAR_NEWLINE
      pos:
        line_end: 3826
        line_start: 3825
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (READ_CHAR_UPDATE_STR_PTR | READ_CHAR_UTF8_NEWLINE)
    - item_type: preproc_def
      name: READ_CHAR_VALID_UTF
      pos:
        line_end: 3827
        line_start: 3826
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: UCD_BLOCK_MASK
      pos:
        line_end: 5048
        line_start: 5047
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '127'
    - item_type: preproc_def
      name: UCD_BLOCK_SHIFT
      pos:
        line_end: 5049
        line_start: 5048
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: '7'
    - item_type: preproc_def
      name: PUBLIC_JIT_COMPILE_CONFIGURATION_OPTIONS
      pos:
        line_end: 13460
        line_start: 13458
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (PCRE2_JIT_INVALID_UTF)
    - item_type: preproc_def
      name: PUBLIC_JIT_COMPILE_OPTIONS
      pos:
        line_end: 14129
        line_start: 14127
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type_or_value: (PCRE2_JIT_COMPLETE|PCRE2_JIT_PARTIAL_SOFT|PCRE2_JIT_PARTIAL_HARD|PCRE2_JIT_INVALID_UTF)
    structs:
    - fields:
      - name: '*stack'
        type: struct sljit_stack
      - name: str
        type: PCRE2_SPTR
      - name: begin
        type: PCRE2_SPTR
      - name: end
        type: PCRE2_SPTR
      - name: '*match_data'
        type: pcre2_match_data
      - name: startchar_ptr
        type: PCRE2_SPTR
      - name: '*mark_ptr'
        type: PCRE2_UCHAR
      - name: (*callout)(pcre2_callout_block *, void *)
        type: int
      - name: '*callout_data'
        type: void
      - name: offset_limit
        type: sljit_uw
      - name: limit_match
        type: sljit_u32
      - name: oveccount
        type: sljit_u32
      - name: options
        type: sljit_u32
      item_type: struct
      name: jit_arguments
      pos:
        line_end: 192
        line_start: 176
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: '*executable_funcs[JIT_NUMBER_OF_COMPILE_MODES]'
        type: void
      - name: '*read_only_data_heads[JIT_NUMBER_OF_COMPILE_MODES]'
        type: void
      - name: executable_sizes[JIT_NUMBER_OF_COMPILE_MODES]
        type: sljit_uw
      - name: top_bracket
        type: sljit_u32
      - name: limit_match
        type: sljit_u32
      item_type: struct
      name: executable_functions
      pos:
        line_end: 202
        line_start: 196
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: '*jump'
        type: struct sljit_jump
      - name: '*next'
        type: struct jump_list
      item_type: struct
      name: jump_list
      pos:
        line_end: 207
        line_start: 204
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: '*start'
        type: struct sljit_jump
      - name: '*quit'
        type: struct sljit_label
      - name: '*next'
        type: struct stub_list
      item_type: struct
      name: stub_list
      pos:
        line_end: 213
        line_start: 209
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: '*prev'
        type: struct backtrack_common
      - name: '*nextbacktracks'
        type: jump_list
      - name: '*top'
        type: struct backtrack_common
      - name: '*topbacktracks'
        type: jump_list
      - name: cc
        type: PCRE2_SPTR
      item_type: struct
      name: backtrack_common
      pos:
        line_end: 246
        line_start: 237
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: common
        type: backtrack_common
      - name: '*condfailed'
        type: jump_list
      - name: framesize
        type: int
      - name: private_data_ptr
        type: int
      - name: '*matchingpath'
        type: struct sljit_label
      item_type: struct
      name: assert_backtrack
      pos:
        line_end: 257
        line_start: 248
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: common
        type: backtrack_common
      - name: '*alternative_matchingpath'
        type: struct sljit_label
      - name: '*recursive_matchingpath'
        type: struct sljit_label
      - name: '*zero_matchingpath'
        type: struct sljit_label
      - name: u
        type: "union {\n    /* Both for OP_COND, OP_SCOND. */\n    jump_list *condfailed;\n
          \   assert_backtrack *assert;\n    /* For OP_ONCE. Less than 0 if not needed.
          */\n    int framesize;\n    /* For brackets with >3 alternatives. */\n    struct
          sljit_put_label *matching_put_label;\n  }"
      - name: private_data_ptr
        type: int
      item_type: struct
      name: bracket_backtrack
      pos:
        line_end: 279
        line_start: 259
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: common
        type: backtrack_common
      - name: private_data_ptr
        type: int
      - name: framesize
        type: int
      - name: stacksize
        type: int
      item_type: struct
      name: bracketpos_backtrack
      pos:
        line_end: 289
        line_start: 281
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: common
        type: backtrack_common
      - name: '*matchingpath'
        type: struct sljit_label
      item_type: struct
      name: braminzero_backtrack
      pos:
        line_end: 294
        line_start: 291
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: common
        type: backtrack_common
      - name: '*matchingpath'
        type: struct sljit_label
      - name: u
        type: "union {\n    jump_list *backtracks;\n    struct {\n      unsigned int
          othercasebit;\n      PCRE2_UCHAR chr;\n      BOOL enabled;\n    } charpos;\n
          \ }"
      item_type: struct
      name: char_iterator_backtrack
      pos:
        line_end: 308
        line_start: 296
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: common
        type: backtrack_common
      - name: '*matchingpath'
        type: struct sljit_label
      item_type: struct
      name: ref_iterator_backtrack
      pos:
        line_end: 314
        line_start: 310
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: '*next'
        type: struct recurse_entry
      - name: '*entry_label'
        type: struct sljit_label
      - name: '*backtrack_label'
        type: struct sljit_label
      - name: '*entry_calls'
        type: jump_list
      - name: '*backtrack_calls'
        type: jump_list
      - name: start
        type: sljit_sw
      item_type: struct
      name: recurse_entry
      pos:
        line_end: 328
        line_start: 316
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: common
        type: backtrack_common
      - name: '*matchingpath'
        type: struct sljit_label
      - name: '*entry'
        type: recurse_entry
      - name: inlined_pattern
        type: BOOL
      item_type: struct
      name: recurse_backtrack
      pos:
        line_end: 338
        line_start: 330
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: common
        type: backtrack_common
      - name: '*then_trap'
        type: struct then_trap_backtrack
      - name: start
        type: sljit_sw
      - name: '*quit'
        type: jump_list
      - name: framesize
        type: int
      item_type: struct
      name: then_trap_backtrack
      pos:
        line_end: 353
        line_start: 342
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: count
        type: sljit_u8
      - name: last_count
        type: sljit_u8
      - name: chars[MAX_DIFF_CHARS]
        type: PCRE2_UCHAR
      item_type: struct
      name: fast_forward_char_data
      pos:
        line_end: 365
        line_start: 358
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: '*compiler'
        type: struct sljit_compiler
      - name: '*re'
        type: pcre2_real_code
      - name: start
        type: PCRE2_SPTR
      - name: '*private_data_ptrs'
        type: sljit_s32
      - name: '*read_only_data_head'
        type: void
      - name: '*optimized_cbracket'
        type: sljit_u8
      - name: '*then_offsets'
        type: sljit_u8
      - name: '*then_trap'
        type: then_trap_backtrack
      - name: cbra_ptr
        type: sljit_s32
      - name: ovector_start
        type: sljit_s32
      - name: start_ptr
        type: sljit_s32
      - name: req_char_ptr
        type: sljit_s32
      - name: recursive_head_ptr
        type: sljit_s32
      - name: start_used_ptr
        type: sljit_s32
      - name: hit_start
        type: sljit_s32
      - name: match_end_ptr
        type: sljit_s32
      - name: mark_ptr
        type: sljit_s32
      - name: control_head_ptr
        type: sljit_s32
      - name: capture_last_ptr
        type: sljit_s32
      - name: fast_forward_bc_ptr
        type: PCRE2_SPTR
      - name: early_fail_start_ptr
        type: sljit_s32
      - name: early_fail_end_ptr
        type: sljit_s32
      - name: '*fcc'
        type: sljit_u8
      - name: lcc
        type: sljit_sw
      - name: mode
        type: int
      - name: allow_empty_partial
        type: BOOL
      - name: might_be_empty
        type: BOOL
      - name: has_set_som
        type: BOOL
      - name: has_skip_arg
        type: BOOL
      - name: has_then
        type: BOOL
      - name: has_skip_in_assert_back
        type: BOOL
      - name: local_quit_available
        type: BOOL
      - name: in_positive_assertion
        type: BOOL
      - name: nltype
        type: int
      - name: nlmax
        type: sljit_u32
      - name: nlmin
        type: sljit_u32
      - name: newline
        type: int
      - name: bsr_nltype
        type: int
      - name: bsr_nlmax
        type: sljit_u32
      - name: bsr_nlmin
        type: sljit_u32
      - name: endonly
        type: int
      - name: ctypes
        type: sljit_sw
      - name: name_table
        type: PCRE2_SPTR
      - name: name_count
        type: sljit_sw
      - name: name_entry_size
        type: sljit_sw
      - name: '*partialmatchlabel'
        type: struct sljit_label
      - name: '*quit_label'
        type: struct sljit_label
      - name: '*abort_label'
        type: struct sljit_label
      - name: '*accept_label'
        type: struct sljit_label
      - name: '*ff_newline_shortcut'
        type: struct sljit_label
      - name: '*stubs'
        type: stub_list
      - name: '*entries'
        type: recurse_entry
      - name: '*currententry'
        type: recurse_entry
      - name: '*partialmatch'
        type: jump_list
      - name: '*quit'
        type: jump_list
      - name: '*positive_assertion_quit'
        type: jump_list
      - name: '*abort'
        type: jump_list
      - name: '*failed_match'
        type: jump_list
      - name: '*accept'
        type: jump_list
      - name: '*calllimit'
        type: jump_list
      - name: '*stackalloc'
        type: jump_list
      - name: '*revertframes'
        type: jump_list
      - name: '*wordboundary'
        type: jump_list
      - name: '*anynewline'
        type: jump_list
      - name: '*hspace'
        type: jump_list
      - name: '*vspace'
        type: jump_list
      - name: '*casefulcmp'
        type: jump_list
      - name: '*caselesscmp'
        type: jump_list
      - name: '*reset_match'
        type: jump_list
      - name: unset_backref
        type: BOOL
      - name: alt_circumflex
        type: BOOL
      item_type: struct
      name: compiler_common
      pos:
        line_end: 501
        line_start: 370
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: length
        type: int
      - name: sourcereg
        type: int
      item_type: struct
      name: compare_context
      pos:
        line_end: 535
        line_start: 505
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    - fields:
      - name: '*compiler'
        type: struct sljit_compiler
      - name: store_bases[RECURSE_TMP_REG_COUNT]
        type: int
      - name: store_offsets[RECURSE_TMP_REG_COUNT]
        type: int
      - name: tmp_regs[RECURSE_TMP_REG_COUNT]
        type: int
      - name: saved_tmp_regs[RECURSE_TMP_REG_COUNT]
        type: int
      - name: next_tmp_reg
        type: int
      item_type: struct
      name: delayed_mem_copy_status
      pos:
        line_end: 2249
        line_start: 2242
        source_file: /src/pcre2/src/pcre2_jit_compile.c
    typedefs:
    - item_type: typedef
      name: (SLJIT_FUNC *jit_function)(jit_arguments *args)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/pcre2/src/pcre2_jit_compile.c
      type: int
    union: []
- function_names:
  - PRIV
  source_file: /src/pcre2/src/pcre2_find_bracket.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRIV
  - PRIV
  source_file: /src/pcre2/src/pcre2_valid_utf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - BSR
  - GET_NEWLINE
  - GET_BSR
  - callback8
  - callback16
  - callback32
  - getstack8
  - setstack8
  - getstack16
  - setstack16
  - getstack32
  - setstack32
  - convert_utf8_to_utf16
  - copy_char8_to_char16
  - convert_utf8_to_utf32
  - copy_char8_to_char32
  - check_ascii
  - regression_tests
  - check_invalid_utf_result
  - run_invalid_utf8_test
  - invalid_utf8_regression_tests
  - invalid_utf8_regression_tests
  - run_invalid_utf16_test
  - invalid_utf16_regression_tests
  - invalid_utf16_regression_tests
  - run_invalid_utf32_test
  - invalid_utf32_regression_tests
  - invalid_utf32_regression_tests
  source_file: /src/pcre2/src/pcre2_jit_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCRE2_CODE_UNIT_WIDTH
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MU
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_MULTILINE | PCRE2_UTF)
    - item_type: preproc_def
      name: MUP
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_MULTILINE | PCRE2_UTF | PCRE2_UCP)
    - item_type: preproc_def
      name: CMU
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_CASELESS | PCRE2_MULTILINE | PCRE2_UTF)
    - item_type: preproc_def
      name: CMUP
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_CASELESS | PCRE2_MULTILINE | PCRE2_UTF | PCRE2_UCP)
    - item_type: preproc_def
      name: M
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_MULTILINE)
    - item_type: preproc_def
      name: MP
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_MULTILINE | PCRE2_UCP)
    - item_type: preproc_def
      name: U
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_UTF)
    - item_type: preproc_def
      name: CM
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_CASELESS | PCRE2_MULTILINE)
    - item_type: preproc_def
      name: A
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: PCRE2_NEWLINE_ANYCRLF
    - item_type: preproc_def
      name: OFFSET_MASK
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '0x00ffff'
    - item_type: preproc_def
      name: F_NO8
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '0x010000'
    - item_type: preproc_def
      name: F_NO16
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '0x020000'
    - item_type: preproc_def
      name: F_NO32
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '0x020000'
    - item_type: preproc_def
      name: F_NOMATCH
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '0x040000'
    - item_type: preproc_def
      name: F_DIFF
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '0x080000'
    - item_type: preproc_def
      name: F_FORCECONV
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: F_PROPERTY
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '0x200000'
    - item_type: preproc_def
      name: REGTEST_MAX_LENGTH16
      pos:
        line_end: 1063
        line_start: 1062
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: REGTEST_MAX_LENGTH32
      pos:
        line_end: 1123
        line_start: 1122
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: OVECTOR_SIZE
      pos:
        line_end: 1140
        line_start: 1139
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: '15'
    - item_type: preproc_def
      name: UDA
      pos:
        line_end: 1822
        line_start: 1821
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_UTF | PCRE2_DOTALL | PCRE2_ANCHORED)
    - item_type: preproc_def
      name: CI
      pos:
        line_end: 1823
        line_start: 1822
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_JIT_COMPLETE | PCRE2_JIT_INVALID_UTF)
    - item_type: preproc_def
      name: CPI
      pos:
        line_end: 1824
        line_start: 1823
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_JIT_COMPLETE | PCRE2_JIT_PARTIAL_SOFT | PCRE2_JIT_INVALID_UTF)
    - item_type: preproc_def
      name: UDA
      pos:
        line_end: 2110
        line_start: 2109
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_UTF | PCRE2_DOTALL | PCRE2_ANCHORED)
    - item_type: preproc_def
      name: CI
      pos:
        line_end: 2111
        line_start: 2110
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_JIT_COMPLETE | PCRE2_JIT_INVALID_UTF)
    - item_type: preproc_def
      name: CPI
      pos:
        line_end: 2112
        line_start: 2111
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_JIT_COMPLETE | PCRE2_JIT_PARTIAL_SOFT | PCRE2_JIT_INVALID_UTF)
    - item_type: preproc_def
      name: UDA
      pos:
        line_end: 2318
        line_start: 2317
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_UTF | PCRE2_DOTALL | PCRE2_ANCHORED)
    - item_type: preproc_def
      name: CI
      pos:
        line_end: 2319
        line_start: 2318
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_JIT_COMPLETE | PCRE2_JIT_INVALID_UTF)
    - item_type: preproc_def
      name: CPI
      pos:
        line_end: 2320
        line_start: 2319
        source_file: /src/pcre2/src/pcre2_jit_test.c
      type_or_value: (PCRE2_JIT_COMPLETE | PCRE2_JIT_PARTIAL_SOFT | PCRE2_JIT_INVALID_UTF)
    structs:
    - fields:
      - name: compile_options
        type: int
      - name: newline
        type: int
      - name: match_options
        type: int
      - name: start_offset
        type: int
      - name: '*pattern'
        type: char
      - name: '*input'
        type: char
      item_type: struct
      name: regression_test_case
      pos:
        line_end: 156
        line_start: 149
        source_file: /src/pcre2/src/pcre2_jit_test.c
    - fields:
      - name: compile_options
        type: int
      - name: jit_compile_options
        type: int
      - name: start_offset
        type: int
      - name: skip_left
        type: int
      - name: skip_right
        type: int
      - name: match_start
        type: int
      - name: match_end
        type: int
      - name: '*pattern[2]'
        type: char
      - name: '*input'
        type: char
      item_type: struct
      name: invalid_utf8_regression_test_case
      pos:
        line_end: 1835
        line_start: 1825
        source_file: /src/pcre2/src/pcre2_jit_test.c
    - fields:
      - name: compile_options
        type: int
      - name: jit_compile_options
        type: int
      - name: start_offset
        type: int
      - name: skip_left
        type: int
      - name: skip_right
        type: int
      - name: match_start
        type: int
      - name: match_end
        type: int
      - name: '*pattern[2]'
        type: PCRE2_UCHAR16
      - name: '*input'
        type: PCRE2_UCHAR16
      item_type: struct
      name: invalid_utf16_regression_test_case
      pos:
        line_end: 2123
        line_start: 2113
        source_file: /src/pcre2/src/pcre2_jit_test.c
    - fields:
      - name: compile_options
        type: int
      - name: jit_compile_options
        type: int
      - name: start_offset
        type: int
      - name: skip_left
        type: int
      - name: skip_right
        type: int
      - name: match_start
        type: int
      - name: match_end
        type: int
      - name: '*pattern[2]'
        type: PCRE2_UCHAR32
      - name: '*input'
        type: PCRE2_UCHAR32
      item_type: struct
      name: invalid_utf32_regression_test_case
      pos:
        line_end: 2331
        line_start: 2321
        source_file: /src/pcre2/src/pcre2_jit_test.c
    typedefs: []
    union: []
- function_names:
  - sljit_get_platform_name
  - RD
  - RT
  - RN
  - RT2
  - RM
  - VD
  - VT
  - VN
  - VM
  - push_inst
  - emit_imm64_const
  - detect_jump_type
  - put_label_get_length
  - sljit_generate_code
  - sljit_has_cpu_feature
  - COUNT_TRAILING_ZERO
  - logical_imm
  - load_immediate
  - CHECK_FLAGS
  - emit_op_imm
  - MEM_SIZE_SHIFT
  - emit_op_mem
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - sljit_emit_op0
  - sljit_emit_op1
  - sljit_emit_op2
  - sljit_emit_op_src
  - sljit_get_register_index
  - sljit_get_float_register_index
  - sljit_emit_op_custom
  - emit_fop_mem
  - sljit_emit_fop1_conv_sw_from_f64
  - sljit_emit_fop1_conv_f64_from_sw
  - sljit_emit_fop1_cmp
  - sljit_emit_fop1
  - sljit_emit_fop2
  - sljit_emit_fast_enter
  - get_cc
  - sljit_emit_label
  - sljit_emit_jump
  - sljit_emit_call
  - emit_cmp_to0
  - sljit_emit_ijump
  - sljit_emit_icall
  - sljit_emit_op_flags
  - sljit_emit_cmov
  - sljit_emit_mem
  - sljit_emit_fmem
  - sljit_get_local_base
  - sljit_emit_const
  - sljit_emit_put_label
  - sljit_set_jump_addr
  - sljit_set_const
  source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TMP_ZERO
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: (0)
    - item_type: preproc_def
      name: TMP_REG1
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 2)
    - item_type: preproc_def
      name: TMP_REG2
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 3)
    - item_type: preproc_def
      name: TMP_LR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 4)
    - item_type: preproc_def
      name: TMP_FP
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 5)
    - item_type: preproc_def
      name: TMP_FREG1
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
    - item_type: preproc_def
      name: TMP_FREG2
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
    - item_type: preproc_def
      name: W_OP
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: (1u << 31)
    - item_type: preproc_def
      name: ADC
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9a000000'
    - item_type: preproc_def
      name: ADD
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x8b000000'
    - item_type: preproc_def
      name: ADDE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x8b200000'
    - item_type: preproc_def
      name: ADDI
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x91000000'
    - item_type: preproc_def
      name: AND
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x8a000000'
    - item_type: preproc_def
      name: ANDI
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x92000000'
    - item_type: preproc_def
      name: ASRV
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9ac02800'
    - item_type: preproc_def
      name: B
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x14000000'
    - item_type: preproc_def
      name: B_CC
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x54000000'
    - item_type: preproc_def
      name: BL
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x94000000'
    - item_type: preproc_def
      name: BLR
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xd63f0000'
    - item_type: preproc_def
      name: BR
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xd61f0000'
    - item_type: preproc_def
      name: BRK
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xd4200000'
    - item_type: preproc_def
      name: CBZ
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xb4000000'
    - item_type: preproc_def
      name: CLZ
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xdac01000'
    - item_type: preproc_def
      name: CSEL
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9a800000'
    - item_type: preproc_def
      name: CSINC
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9a800400'
    - item_type: preproc_def
      name: EOR
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xca000000'
    - item_type: preproc_def
      name: EORI
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xd2000000'
    - item_type: preproc_def
      name: FABS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1e60c000'
    - item_type: preproc_def
      name: FADD
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1e602800'
    - item_type: preproc_def
      name: FCMP
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1e602000'
    - item_type: preproc_def
      name: FCVT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1e224000'
    - item_type: preproc_def
      name: FCVTZS
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9e780000'
    - item_type: preproc_def
      name: FDIV
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1e601800'
    - item_type: preproc_def
      name: FMOV
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1e604000'
    - item_type: preproc_def
      name: FMUL
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1e600800'
    - item_type: preproc_def
      name: FNEG
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1e614000'
    - item_type: preproc_def
      name: FSUB
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1e603800'
    - item_type: preproc_def
      name: LDRI
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xf9400000'
    - item_type: preproc_def
      name: LDP
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xa9400000'
    - item_type: preproc_def
      name: LDP_PRE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xa9c00000'
    - item_type: preproc_def
      name: LDR_PRE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xf8400c00'
    - item_type: preproc_def
      name: LSLV
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9ac02000'
    - item_type: preproc_def
      name: LSRV
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9ac02400'
    - item_type: preproc_def
      name: MADD
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9b000000'
    - item_type: preproc_def
      name: MOVK
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xf2800000'
    - item_type: preproc_def
      name: MOVN
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x92800000'
    - item_type: preproc_def
      name: MOVZ
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xd2800000'
    - item_type: preproc_def
      name: NOP
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xd503201f'
    - item_type: preproc_def
      name: ORN
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xaa200000'
    - item_type: preproc_def
      name: ORR
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xaa000000'
    - item_type: preproc_def
      name: ORRI
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xb2000000'
    - item_type: preproc_def
      name: RET
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xd65f0000'
    - item_type: preproc_def
      name: SBC
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xda000000'
    - item_type: preproc_def
      name: SBFM
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x93000000'
    - item_type: preproc_def
      name: SCVTF
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9e620000'
    - item_type: preproc_def
      name: SDIV
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9ac00c00'
    - item_type: preproc_def
      name: SMADDL
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9b200000'
    - item_type: preproc_def
      name: SMULH
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9b403c00'
    - item_type: preproc_def
      name: STP
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xa9000000'
    - item_type: preproc_def
      name: STP_PRE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xa9800000'
    - item_type: preproc_def
      name: STRB
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x38206800'
    - item_type: preproc_def
      name: STRBI
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x39000000'
    - item_type: preproc_def
      name: STRI
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xf9000000'
    - item_type: preproc_def
      name: STR_FI
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x3d000000'
    - item_type: preproc_def
      name: STR_FR
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x3c206800'
    - item_type: preproc_def
      name: STUR_FI
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x3c000000'
    - item_type: preproc_def
      name: STURBI
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x38000000'
    - item_type: preproc_def
      name: SUB
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xcb000000'
    - item_type: preproc_def
      name: SUBI
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xd1000000'
    - item_type: preproc_def
      name: SUBS
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xeb000000'
    - item_type: preproc_def
      name: UBFM
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0xd3000000'
    - item_type: preproc_def
      name: UDIV
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9ac00800'
    - item_type: preproc_def
      name: UMULH
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x9bc03c00'
    - item_type: preproc_def
      name: LOGICAL_IMM_CHECK
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: ARG1_IMM
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x0010000'
    - item_type: preproc_def
      name: ARG2_IMM
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x0020000'
    - item_type: preproc_def
      name: INT_OP
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x0040000'
    - item_type: preproc_def
      name: SET_FLAGS
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x0080000'
    - item_type: preproc_def
      name: UNUSED_RETURN
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x0100000'
    - item_type: preproc_def
      name: STORE
      pos:
        line_end: 847
        line_start: 846
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SIGNED
      pos:
        line_end: 848
        line_start: 847
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: BYTE_SIZE
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: HALF_SIZE
      pos:
        line_end: 851
        line_start: 850
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: INT_SIZE
      pos:
        line_end: 852
        line_start: 851
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: WORD_SIZE
      pos:
        line_end: 853
        line_start: 852
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type_or_value: '0x3'
    structs: []
    typedefs:
    - item_type: typedef
      name: sljit_ins
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/pcre2/src/sljit/sljitNativeARM_64.c
      type: sljit_u32
    union: []
- function_names:
  - SLJIT_R
  - SLJIT_S
  - SLJIT_FR
  - SLJIT_FS
  - SLJIT_DEF_RET
  - SLJIT_DEF_ARG1
  - SLJIT_DEF_ARG2
  - SLJIT_DEF_ARG3
  - SLJIT_DEF_ARG4
  - SLJIT_RET
  - SLJIT_ARG1
  - SLJIT_ARG2
  - SLJIT_ARG3
  - SLJIT_ARG4
  - sljit_get_compiler_error
  - sljit_get_executable_offset
  - sljit_get_generated_code_size
  - SLJIT_MEM0
  - SLJIT_MEM1
  - SLJIT_MEM2
  - SLJIT_SET
  - sljit_get_label_addr
  - sljit_get_jump_addr
  - sljit_get_const_addr
  - SLJIT_OFFSETOF
  - SLJIT_FUNC_OFFSET
  - SLJIT_FUNC_OFFSET
  source_file: /src/pcre2/src/sljit/sljitLir.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SLJIT_SUCCESS
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_ERR_COMPILED
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_ERR_ALLOC_FAILED
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SLJIT_ERR_EX_ALLOC_FAILED
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SLJIT_ERR_UNSUPPORTED
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SLJIT_ERR_BAD_ARGUMENT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SLJIT_ERR_DYN_CODE_MOD
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SLJIT_UNUSED
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_R0
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_R1
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SLJIT_R2
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SLJIT_R3
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SLJIT_R4
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SLJIT_R5
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SLJIT_R6
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SLJIT_R7
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SLJIT_R8
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SLJIT_R9
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SLJIT_S0
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS)
    - item_type: preproc_def
      name: SLJIT_S1
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - 1)
    - item_type: preproc_def
      name: SLJIT_S2
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - 2)
    - item_type: preproc_def
      name: SLJIT_S3
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - 3)
    - item_type: preproc_def
      name: SLJIT_S4
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - 4)
    - item_type: preproc_def
      name: SLJIT_S5
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - 5)
    - item_type: preproc_def
      name: SLJIT_S6
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - 6)
    - item_type: preproc_def
      name: SLJIT_S7
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - 7)
    - item_type: preproc_def
      name: SLJIT_S8
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - 8)
    - item_type: preproc_def
      name: SLJIT_S9
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - 9)
    - item_type: preproc_def
      name: SLJIT_FIRST_SAVED_REG
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_S0 - SLJIT_NUMBER_OF_SAVED_REGISTERS + 1)
    - item_type: preproc_def
      name: SLJIT_SP
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 1)
    - item_type: preproc_def
      name: SLJIT_RETURN_REG
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_R0
    - item_type: preproc_def
      name: SLJIT_FR0
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_FR1
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SLJIT_FR2
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SLJIT_FR3
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SLJIT_FR4
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SLJIT_FR5
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SLJIT_FS0
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS)
    - item_type: preproc_def
      name: SLJIT_FS1
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 1)
    - item_type: preproc_def
      name: SLJIT_FS2
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 2)
    - item_type: preproc_def
      name: SLJIT_FS3
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 3)
    - item_type: preproc_def
      name: SLJIT_FS4
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 4)
    - item_type: preproc_def
      name: SLJIT_FS5
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS - 5)
    - item_type: preproc_def
      name: SLJIT_FIRST_SAVED_FLOAT_REG
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FS0 - SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS + 1)
    - item_type: preproc_def
      name: SLJIT_ARG_TYPE_VOID
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_ARG_TYPE_SW
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_ARG_TYPE_UW
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SLJIT_ARG_TYPE_S32
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SLJIT_ARG_TYPE_U32
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SLJIT_ARG_TYPE_F32
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SLJIT_ARG_TYPE_F64
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SLJIT_DEF_SHIFT
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SLJIT_HAS_FPU
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_HAS_VIRTUAL_REGISTERS
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_HAS_ZERO_REGISTER
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SLJIT_HAS_CLZ
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SLJIT_HAS_CMOV
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SLJIT_HAS_PREFETCH
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SLJIT_HAS_SSE2
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '100'
    - item_type: preproc_def
      name: SLJIT_F64_ALIGNMENT
      pos:
        line_end: 649
        line_start: 648
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: SLJIT_MAX_LOCAL_SIZE
      pos:
        line_end: 652
        line_start: 651
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: SLJIT_MEM
      pos:
        line_end: 763
        line_start: 762
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: SLJIT_IMM
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: SLJIT_I32_OP
      pos:
        line_end: 792
        line_start: 791
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: SLJIT_F32_OP
      pos:
        line_end: 806
        line_start: 805
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_I32_OP
    - item_type: preproc_def
      name: SLJIT_SET_Z
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: SLJIT_OP0_BASE
      pos:
        line_end: 867
        line_start: 866
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_BREAKPOINT
      pos:
        line_end: 872
        line_start: 871
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 0)
    - item_type: preproc_def
      name: SLJIT_NOP
      pos:
        line_end: 876
        line_start: 875
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 1)
    - item_type: preproc_def
      name: SLJIT_LMUL_UW
      pos:
        line_end: 880
        line_start: 879
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 2)
    - item_type: preproc_def
      name: SLJIT_LMUL_SW
      pos:
        line_end: 884
        line_start: 883
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 3)
    - item_type: preproc_def
      name: SLJIT_DIVMOD_UW
      pos:
        line_end: 889
        line_start: 888
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 4)
    - item_type: preproc_def
      name: SLJIT_DIVMOD_U32
      pos:
        line_end: 890
        line_start: 889
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_DIVMOD_UW | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_DIVMOD_SW
      pos:
        line_end: 897
        line_start: 896
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 5)
    - item_type: preproc_def
      name: SLJIT_DIVMOD_S32
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_DIVMOD_SW | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_DIV_UW
      pos:
        line_end: 903
        line_start: 902
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 6)
    - item_type: preproc_def
      name: SLJIT_DIV_U32
      pos:
        line_end: 904
        line_start: 903
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_DIV_UW | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_DIV_SW
      pos:
        line_end: 911
        line_start: 910
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 7)
    - item_type: preproc_def
      name: SLJIT_DIV_S32
      pos:
        line_end: 912
        line_start: 911
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_DIV_SW | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_ENDBR
      pos:
        line_end: 917
        line_start: 916
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 8)
    - item_type: preproc_def
      name: SLJIT_SKIP_FRAMES_BEFORE_RETURN
      pos:
        line_end: 920
        line_start: 919
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP0_BASE + 9)
    - item_type: preproc_def
      name: SLJIT_OP1_BASE
      pos:
        line_end: 925
        line_start: 924
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SLJIT_MOV
      pos:
        line_end: 941
        line_start: 940
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 0)
    - item_type: preproc_def
      name: SLJIT_MOV_U8
      pos:
        line_end: 943
        line_start: 942
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 1)
    - item_type: preproc_def
      name: SLJIT_MOV32_U8
      pos:
        line_end: 944
        line_start: 943
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_MOV_U8 | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_MOV_S8
      pos:
        line_end: 946
        line_start: 945
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 2)
    - item_type: preproc_def
      name: SLJIT_MOV32_S8
      pos:
        line_end: 947
        line_start: 946
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_MOV_S8 | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_MOV_U16
      pos:
        line_end: 949
        line_start: 948
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 3)
    - item_type: preproc_def
      name: SLJIT_MOV32_U16
      pos:
        line_end: 950
        line_start: 949
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_MOV_U16 | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_MOV_S16
      pos:
        line_end: 952
        line_start: 951
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 4)
    - item_type: preproc_def
      name: SLJIT_MOV32_S16
      pos:
        line_end: 953
        line_start: 952
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_MOV_S16 | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_MOV_U32
      pos:
        line_end: 956
        line_start: 955
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 5)
    - item_type: preproc_def
      name: SLJIT_MOV_S32
      pos:
        line_end: 959
        line_start: 958
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 6)
    - item_type: preproc_def
      name: SLJIT_MOV32
      pos:
        line_end: 961
        line_start: 960
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_MOV_S32 | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_MOV_P
      pos:
        line_end: 966
        line_start: 965
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 7)
    - item_type: preproc_def
      name: SLJIT_NOT
      pos:
        line_end: 969
        line_start: 968
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 8)
    - item_type: preproc_def
      name: SLJIT_NOT32
      pos:
        line_end: 970
        line_start: 969
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NOT | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_NEG
      pos:
        line_end: 973
        line_start: 972
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 9)
    - item_type: preproc_def
      name: SLJIT_NEG32
      pos:
        line_end: 974
        line_start: 973
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NEG | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_CLZ
      pos:
        line_end: 978
        line_start: 977
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP1_BASE + 10)
    - item_type: preproc_def
      name: SLJIT_CLZ32
      pos:
        line_end: 979
        line_start: 978
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_CLZ | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_OP2_BASE
      pos:
        line_end: 986
        line_start: 985
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '96'
    - item_type: preproc_def
      name: SLJIT_ADD
      pos:
        line_end: 989
        line_start: 988
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 0)
    - item_type: preproc_def
      name: SLJIT_ADD32
      pos:
        line_end: 990
        line_start: 989
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_ADD | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_ADDC
      pos:
        line_end: 992
        line_start: 991
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 1)
    - item_type: preproc_def
      name: SLJIT_ADDC32
      pos:
        line_end: 993
        line_start: 992
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_ADDC | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_SUB
      pos:
        line_end: 997
        line_start: 996
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 2)
    - item_type: preproc_def
      name: SLJIT_SUB32
      pos:
        line_end: 998
        line_start: 997
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_SUB | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_SUBC
      pos:
        line_end: 1000
        line_start: 999
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 3)
    - item_type: preproc_def
      name: SLJIT_SUBC32
      pos:
        line_end: 1001
        line_start: 1000
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_SUBC | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_MUL
      pos:
        line_end: 1004
        line_start: 1003
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 4)
    - item_type: preproc_def
      name: SLJIT_MUL32
      pos:
        line_end: 1005
        line_start: 1004
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_MUL | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_AND
      pos:
        line_end: 1007
        line_start: 1006
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 5)
    - item_type: preproc_def
      name: SLJIT_AND32
      pos:
        line_end: 1008
        line_start: 1007
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_AND | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_OR
      pos:
        line_end: 1010
        line_start: 1009
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 6)
    - item_type: preproc_def
      name: SLJIT_OR32
      pos:
        line_end: 1011
        line_start: 1010
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OR | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_XOR
      pos:
        line_end: 1013
        line_start: 1012
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 7)
    - item_type: preproc_def
      name: SLJIT_XOR32
      pos:
        line_end: 1014
        line_start: 1013
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_XOR | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_SHL
      pos:
        line_end: 1020
        line_start: 1019
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 8)
    - item_type: preproc_def
      name: SLJIT_SHL32
      pos:
        line_end: 1021
        line_start: 1020
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_SHL | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_LSHR
      pos:
        line_end: 1027
        line_start: 1026
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 9)
    - item_type: preproc_def
      name: SLJIT_LSHR32
      pos:
        line_end: 1028
        line_start: 1027
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_LSHR | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_ASHR
      pos:
        line_end: 1034
        line_start: 1033
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP2_BASE + 10)
    - item_type: preproc_def
      name: SLJIT_ASHR32
      pos:
        line_end: 1035
        line_start: 1034
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_ASHR | SLJIT_I32_OP)
    - item_type: preproc_def
      name: SLJIT_OP_SRC_BASE
      pos:
        line_end: 1043
        line_start: 1042
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '128'
    - item_type: preproc_def
      name: SLJIT_FAST_RETURN
      pos:
        line_end: 1047
        line_start: 1046
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP_SRC_BASE + 0)
    - item_type: preproc_def
      name: SLJIT_SKIP_FRAMES_BEFORE_FAST_RETURN
      pos:
        line_end: 1051
        line_start: 1050
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP_SRC_BASE + 1)
    - item_type: preproc_def
      name: SLJIT_PREFETCH_L1
      pos:
        line_end: 1057
        line_start: 1056
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP_SRC_BASE + 2)
    - item_type: preproc_def
      name: SLJIT_PREFETCH_L2
      pos:
        line_end: 1063
        line_start: 1062
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP_SRC_BASE + 3)
    - item_type: preproc_def
      name: SLJIT_PREFETCH_L3
      pos:
        line_end: 1069
        line_start: 1068
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP_SRC_BASE + 4)
    - item_type: preproc_def
      name: SLJIT_PREFETCH_ONCE
      pos:
        line_end: 1075
        line_start: 1074
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_OP_SRC_BASE + 5)
    - item_type: preproc_def
      name: SLJIT_FOP1_BASE
      pos:
        line_end: 1081
        line_start: 1080
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '160'
    - item_type: preproc_def
      name: SLJIT_MOV_F64
      pos:
        line_end: 1084
        line_start: 1083
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP1_BASE + 0)
    - item_type: preproc_def
      name: SLJIT_MOV_F32
      pos:
        line_end: 1085
        line_start: 1084
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_MOV_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_CONV_F64_FROM_F32
      pos:
        line_end: 1090
        line_start: 1089
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP1_BASE + 1)
    - item_type: preproc_def
      name: SLJIT_CONV_F32_FROM_F64
      pos:
        line_end: 1091
        line_start: 1090
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_CONV_F64_FROM_F32 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_CONV_SW_FROM_F64
      pos:
        line_end: 1093
        line_start: 1092
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP1_BASE + 2)
    - item_type: preproc_def
      name: SLJIT_CONV_SW_FROM_F32
      pos:
        line_end: 1094
        line_start: 1093
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_CONV_SW_FROM_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_CONV_S32_FROM_F64
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP1_BASE + 3)
    - item_type: preproc_def
      name: SLJIT_CONV_S32_FROM_F32
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_CONV_S32_FROM_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_CONV_F64_FROM_SW
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP1_BASE + 4)
    - item_type: preproc_def
      name: SLJIT_CONV_F32_FROM_SW
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_CONV_F64_FROM_SW | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_CONV_F64_FROM_S32
      pos:
        line_end: 1102
        line_start: 1101
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP1_BASE + 5)
    - item_type: preproc_def
      name: SLJIT_CONV_F32_FROM_S32
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_CONV_F64_FROM_S32 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_CMP_F64
      pos:
        line_end: 1106
        line_start: 1105
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP1_BASE + 6)
    - item_type: preproc_def
      name: SLJIT_CMP_F32
      pos:
        line_end: 1107
        line_start: 1106
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_CMP_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_NEG_F64
      pos:
        line_end: 1109
        line_start: 1108
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP1_BASE + 7)
    - item_type: preproc_def
      name: SLJIT_NEG_F32
      pos:
        line_end: 1110
        line_start: 1109
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NEG_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_ABS_F64
      pos:
        line_end: 1112
        line_start: 1111
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP1_BASE + 8)
    - item_type: preproc_def
      name: SLJIT_ABS_F32
      pos:
        line_end: 1113
        line_start: 1112
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_ABS_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_FOP2_BASE
      pos:
        line_end: 1120
        line_start: 1119
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '192'
    - item_type: preproc_def
      name: SLJIT_ADD_F64
      pos:
        line_end: 1123
        line_start: 1122
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP2_BASE + 0)
    - item_type: preproc_def
      name: SLJIT_ADD_F32
      pos:
        line_end: 1124
        line_start: 1123
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_ADD_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_SUB_F64
      pos:
        line_end: 1126
        line_start: 1125
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP2_BASE + 1)
    - item_type: preproc_def
      name: SLJIT_SUB_F32
      pos:
        line_end: 1127
        line_start: 1126
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_SUB_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_MUL_F64
      pos:
        line_end: 1129
        line_start: 1128
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP2_BASE + 2)
    - item_type: preproc_def
      name: SLJIT_MUL_F32
      pos:
        line_end: 1130
        line_start: 1129
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_MUL_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_DIV_F64
      pos:
        line_end: 1132
        line_start: 1131
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_FOP2_BASE + 3)
    - item_type: preproc_def
      name: SLJIT_DIV_F32
      pos:
        line_end: 1133
        line_start: 1132
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_DIV_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_EQUAL
      pos:
        line_end: 1147
        line_start: 1146
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_ZERO
      pos:
        line_end: 1148
        line_start: 1147
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_EQUAL
    - item_type: preproc_def
      name: SLJIT_NOT_EQUAL
      pos:
        line_end: 1149
        line_start: 1148
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_NOT_ZERO
      pos:
        line_end: 1150
        line_start: 1149
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_NOT_EQUAL
    - item_type: preproc_def
      name: SLJIT_LESS
      pos:
        line_end: 1152
        line_start: 1151
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SLJIT_SET_LESS
      pos:
        line_end: 1153
        line_start: 1152
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_LESS)
    - item_type: preproc_def
      name: SLJIT_GREATER_EQUAL
      pos:
        line_end: 1154
        line_start: 1153
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SLJIT_SET_GREATER_EQUAL
      pos:
        line_end: 1155
        line_start: 1154
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_GREATER_EQUAL)
    - item_type: preproc_def
      name: SLJIT_GREATER
      pos:
        line_end: 1156
        line_start: 1155
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SLJIT_SET_GREATER
      pos:
        line_end: 1157
        line_start: 1156
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_GREATER)
    - item_type: preproc_def
      name: SLJIT_LESS_EQUAL
      pos:
        line_end: 1158
        line_start: 1157
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SLJIT_SET_LESS_EQUAL
      pos:
        line_end: 1159
        line_start: 1158
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_LESS_EQUAL)
    - item_type: preproc_def
      name: SLJIT_SIG_LESS
      pos:
        line_end: 1160
        line_start: 1159
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SLJIT_SET_SIG_LESS
      pos:
        line_end: 1161
        line_start: 1160
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_SIG_LESS)
    - item_type: preproc_def
      name: SLJIT_SIG_GREATER_EQUAL
      pos:
        line_end: 1162
        line_start: 1161
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SLJIT_SET_SIG_GREATER_EQUAL
      pos:
        line_end: 1163
        line_start: 1162
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_SIG_GREATER_EQUAL)
    - item_type: preproc_def
      name: SLJIT_SIG_GREATER
      pos:
        line_end: 1164
        line_start: 1163
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SLJIT_SET_SIG_GREATER
      pos:
        line_end: 1165
        line_start: 1164
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_SIG_GREATER)
    - item_type: preproc_def
      name: SLJIT_SIG_LESS_EQUAL
      pos:
        line_end: 1166
        line_start: 1165
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SLJIT_SET_SIG_LESS_EQUAL
      pos:
        line_end: 1167
        line_start: 1166
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_SIG_LESS_EQUAL)
    - item_type: preproc_def
      name: SLJIT_OVERFLOW
      pos:
        line_end: 1169
        line_start: 1168
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SLJIT_SET_OVERFLOW
      pos:
        line_end: 1170
        line_start: 1169
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_OVERFLOW)
    - item_type: preproc_def
      name: SLJIT_NOT_OVERFLOW
      pos:
        line_end: 1171
        line_start: 1170
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SLJIT_SET_CARRY
      pos:
        line_end: 1174
        line_start: 1173
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(12)
    - item_type: preproc_def
      name: SLJIT_EQUAL_F64
      pos:
        line_end: 1177
        line_start: 1176
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SLJIT_EQUAL_F32
      pos:
        line_end: 1178
        line_start: 1177
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_EQUAL_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_SET_EQUAL_F
      pos:
        line_end: 1179
        line_start: 1178
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_EQUAL_F64)
    - item_type: preproc_def
      name: SLJIT_NOT_EQUAL_F64
      pos:
        line_end: 1180
        line_start: 1179
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SLJIT_NOT_EQUAL_F32
      pos:
        line_end: 1181
        line_start: 1180
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_NOT_EQUAL_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_SET_NOT_EQUAL_F
      pos:
        line_end: 1182
        line_start: 1181
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_NOT_EQUAL_F64)
    - item_type: preproc_def
      name: SLJIT_LESS_F64
      pos:
        line_end: 1183
        line_start: 1182
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SLJIT_LESS_F32
      pos:
        line_end: 1184
        line_start: 1183
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_LESS_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_SET_LESS_F
      pos:
        line_end: 1185
        line_start: 1184
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_LESS_F64)
    - item_type: preproc_def
      name: SLJIT_GREATER_EQUAL_F64
      pos:
        line_end: 1186
        line_start: 1185
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '17'
    - item_type: preproc_def
      name: SLJIT_GREATER_EQUAL_F32
      pos:
        line_end: 1187
        line_start: 1186
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_GREATER_EQUAL_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_SET_GREATER_EQUAL_F
      pos:
        line_end: 1188
        line_start: 1187
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_GREATER_EQUAL_F64)
    - item_type: preproc_def
      name: SLJIT_GREATER_F64
      pos:
        line_end: 1189
        line_start: 1188
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '18'
    - item_type: preproc_def
      name: SLJIT_GREATER_F32
      pos:
        line_end: 1190
        line_start: 1189
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_GREATER_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_SET_GREATER_F
      pos:
        line_end: 1191
        line_start: 1190
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_GREATER_F64)
    - item_type: preproc_def
      name: SLJIT_LESS_EQUAL_F64
      pos:
        line_end: 1192
        line_start: 1191
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '19'
    - item_type: preproc_def
      name: SLJIT_LESS_EQUAL_F32
      pos:
        line_end: 1193
        line_start: 1192
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_LESS_EQUAL_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_SET_LESS_EQUAL_F
      pos:
        line_end: 1194
        line_start: 1193
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_LESS_EQUAL_F64)
    - item_type: preproc_def
      name: SLJIT_UNORDERED_F64
      pos:
        line_end: 1195
        line_start: 1194
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '20'
    - item_type: preproc_def
      name: SLJIT_UNORDERED_F32
      pos:
        line_end: 1196
        line_start: 1195
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_UNORDERED_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_SET_UNORDERED_F
      pos:
        line_end: 1197
        line_start: 1196
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_UNORDERED_F64)
    - item_type: preproc_def
      name: SLJIT_ORDERED_F64
      pos:
        line_end: 1198
        line_start: 1197
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '21'
    - item_type: preproc_def
      name: SLJIT_ORDERED_F32
      pos:
        line_end: 1199
        line_start: 1198
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: (SLJIT_ORDERED_F64 | SLJIT_F32_OP)
    - item_type: preproc_def
      name: SLJIT_SET_ORDERED_F
      pos:
        line_end: 1200
        line_start: 1199
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_SET(SLJIT_ORDERED_F64)
    - item_type: preproc_def
      name: SLJIT_JUMP
      pos:
        line_end: 1203
        line_start: 1202
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '22'
    - item_type: preproc_def
      name: SLJIT_FAST_CALL
      pos:
        line_end: 1205
        line_start: 1204
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '23'
    - item_type: preproc_def
      name: SLJIT_CALL
      pos:
        line_end: 1207
        line_start: 1206
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '24'
    - item_type: preproc_def
      name: SLJIT_CALL_CDECL
      pos:
        line_end: 1210
        line_start: 1209
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '25'
    - item_type: preproc_def
      name: SLJIT_REWRITABLE_JUMP
      pos:
        line_end: 1213
        line_start: 1212
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: SLJIT_MEM_SUPP
      pos:
        line_end: 1315
        line_start: 1314
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: SLJIT_MEM_LOAD
      pos:
        line_end: 1317
        line_start: 1316
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: SLJIT_MEM_STORE
      pos:
        line_end: 1319
        line_start: 1318
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: SLJIT_MEM_PRE
      pos:
        line_end: 1321
        line_start: 1320
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: SLJIT_MEM_POST
      pos:
        line_end: 1323
        line_start: 1322
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: SLJIT_MAJOR_VERSION
      pos:
        line_end: 1393
        line_start: 1392
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_MINOR_VERSION
      pos:
        line_end: 1394
        line_start: 1393
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '94'
    - item_type: preproc_def
      name: SLJIT_CURRENT_FLAGS_I32_OP
      pos:
        line_end: 1522
        line_start: 1521
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: SLJIT_I32_OP
    - item_type: preproc_def
      name: SLJIT_CURRENT_FLAGS_ADD_SUB
      pos:
        line_end: 1525
        line_start: 1524
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SLJIT_CURRENT_FLAGS_COMPARE
      pos:
        line_end: 1529
        line_start: 1528
        source_file: /src/pcre2/src/sljit/sljitLir.h
      type_or_value: '0x02'
    structs:
    - fields:
      - name: '*next'
        type: struct sljit_memory_fragment
      - name: used_size
        type: sljit_uw
      - name: memory[1]
        type: sljit_u8
      item_type: struct
      name: sljit_memory_fragment
      pos:
        line_end: 348
        line_start: 343
        source_file: /src/pcre2/src/sljit/sljitLir.h
    - fields:
      - name: '*next'
        type: struct sljit_label
      - name: addr
        type: sljit_uw
      - name: size
        type: sljit_uw
      item_type: struct
      name: sljit_label
      pos:
        line_end: 355
        line_start: 350
        source_file: /src/pcre2/src/sljit/sljitLir.h
    - fields:
      - name: '*next'
        type: struct sljit_jump
      - name: addr
        type: sljit_uw
      - name: flags
        type: sljit_uw
      - name: u
        type: "union {\n\t\tsljit_uw target;\n\t\tstruct sljit_label *label;\n\t}"
      item_type: struct
      name: sljit_jump
      pos:
        line_end: 365
        line_start: 357
        source_file: /src/pcre2/src/sljit/sljitLir.h
    - fields:
      - name: '*next'
        type: struct sljit_put_label
      - name: '*label'
        type: struct sljit_label
      - name: addr
        type: sljit_uw
      - name: flags
        type: sljit_uw
      item_type: struct
      name: sljit_put_label
      pos:
        line_end: 372
        line_start: 367
        source_file: /src/pcre2/src/sljit/sljitLir.h
    - fields:
      - name: '*next'
        type: struct sljit_const
      - name: addr
        type: sljit_uw
      item_type: struct
      name: sljit_const
      pos:
        line_end: 377
        line_start: 374
        source_file: /src/pcre2/src/sljit/sljitLir.h
    - fields:
      - name: error
        type: sljit_s32
      - name: options
        type: sljit_s32
      - name: '*labels'
        type: struct sljit_label
      - name: '*jumps'
        type: struct sljit_jump
      - name: '*put_labels'
        type: struct sljit_put_label
      - name: '*consts'
        type: struct sljit_const
      - name: '*last_label'
        type: struct sljit_label
      - name: '*last_jump'
        type: struct sljit_jump
      - name: '*last_const'
        type: struct sljit_const
      - name: '*last_put_label'
        type: struct sljit_put_label
      - name: '*allocator_data'
        type: void
      - name: '*exec_allocator_data'
        type: void
      - name: '*buf'
        type: struct sljit_memory_fragment
      - name: '*abuf'
        type: struct sljit_memory_fragment
      - name: scratches
        type: sljit_s32
      - name: saveds
        type: sljit_s32
      - name: fscratches
        type: sljit_s32
      - name: fsaveds
        type: sljit_s32
      - name: local_size
        type: sljit_s32
      - name: size
        type: sljit_uw
      - name: executable_offset
        type: sljit_uw
      - name: executable_size
        type: sljit_uw
      item_type: struct
      name: sljit_compiler
      pos:
        line_end: 488
        line_start: 379
        source_file: /src/pcre2/src/sljit/sljitLir.h
    - fields:
      - name: '*top'
        type: sljit_u8
      - name: '*end'
        type: sljit_u8
      - name: '*start'
        type: sljit_u8
      - name: '*min_start'
        type: sljit_u8
      item_type: struct
      name: sljit_stack
      pos:
        line_end: 1438
        line_start: 1427
        source_file: /src/pcre2/src/sljit/sljitLir.h
    - fields:
      - name: addr
        type: sljit_sw
      - name: r2
        type: sljit_sw
      - name: r11
        type: sljit_sw
      item_type: struct
      name: sljit_function_context
      pos:
        line_end: 1470
        line_start: 1466
        source_file: /src/pcre2/src/sljit/sljitLir.h
    typedefs: []
    union: []
- function_names:
  - ASM_SLJIT_CLZ
  - PUSH_RLDICR
  - load_immediate
  - INS_CLEAR_LEFT
  - UN_EXTS
  - BIN_EXTS
  - BIN_IMM_EXTS
  - emit_single_op
  - call_with_args
  - emit_const
  - sljit_set_jump_addr
  - sljit_set_const
  source_file: /src/pcre2/src/sljit/sljitNativePPC_64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_immediate
  - SELECT_OP
  - EMIT_LOGICAL
  - EMIT_SHIFT
  - emit_single_op
  - emit_const
  - sljit_set_jump_addr
  - sljit_set_const
  - call_with_args
  - sljit_emit_call
  - sljit_emit_icall
  source_file: /src/pcre2/src/sljit/sljitNativeMIPS_64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SLJIT_MALLOC
  - SLJIT_FREE
  - SLJIT_MEMCPY
  - SLJIT_MEMMOVE
  - SLJIT_ZEROMEM
  - SLJIT_LIKELY
  - SLJIT_UNLIKELY
  - SLJIT_LIKELY
  - SLJIT_UNLIKELY
  - SLJIT_UNUSED_ARG
  - SLJIT_CACHE_FLUSH
  - SLJIT_CACHE_FLUSH
  - SLJIT_CACHE_FLUSH
  - SLJIT_CACHE_FLUSH
  - SLJIT_CACHE_FLUSH
  - SLJIT_CACHE_FLUSH
  - SLJIT_CACHE_FLUSH
  - SLJIT_CACHE_FLUSH
  - SLJIT_W
  - SLJIT_W
  - SLJIT_W
  - SLJIT_W
  - SLJIT_BUILTIN_MALLOC_EXEC
  - SLJIT_BUILTIN_FREE_EXEC
  - SLJIT_MALLOC_EXEC
  - SLJIT_FREE_EXEC
  - SLJIT_EXEC_OFFSET
  - SLJIT_EXEC_OFFSET
  - SLJIT_HALT_PROCESS
  - SLJIT_ASSERT
  - SLJIT_UNREACHABLE
  - SLJIT_ASSERT
  - SLJIT_UNREACHABLE
  - SLJIT_COMPILE_ASSERT
  source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SLJIT_CONFIG_AUTO
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_X86_32
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_X86_64
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM_THUMB2
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM_V7
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM_V5
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM_64
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_PPC_64
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_PPC_32
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_MIPS_32
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_MIPS_64
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_SPARC_32
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_S390X
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_UNSUPPORTED
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_X86_64
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM_THUMB2
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM_V7
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM_V5
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM_64
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_X86_32
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM_32
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_X86
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_ARM
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_PPC
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_MIPS
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_SPARC
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CONFIG_X86_CET
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_INLINE
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: __inline
    - item_type: preproc_def
      name: SLJIT_NOINLINE
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: __attribute__ ((noinline))
    - item_type: preproc_def
      name: SLJIT_API_FUNC_ATTRIBUTE
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: static __attribute__((unused))
    - item_type: preproc_def
      name: SLJIT_API_FUNC_ATTRIBUTE
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: static
    - item_type: preproc_def
      name: SLJIT_CACHE_FLUSH_OWN_IMPL
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CACHE_FLUSH_OWN_IMPL
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_WORD_SHIFT
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_32BIT_ARCHITECTURE
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_WORD_SHIFT
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SLJIT_64BIT_ARCHITECTURE
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_WORD_SHIFT
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SLJIT_POINTER_SHIFT
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: SLJIT_WORD_SHIFT
    - item_type: preproc_def
      name: SLJIT_F32_SHIFT
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SLJIT_F64_SHIFT
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SLJIT_LITTLE_ENDIAN
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_BIG_ENDIAN
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_LITTLE_ENDIAN
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_BIG_ENDIAN
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_MIPS_REV
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SLJIT_MIPS_REV
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_BIG_ENDIAN
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_LITTLE_ENDIAN
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_UNALIGNED
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_DETECT_SSE2
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_FUNC
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: __attribute__ ((fastcall))
    - item_type: preproc_def
      name: SLJIT_X86_32_FASTCALL
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_FUNC
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: __fastcall
    - item_type: preproc_def
      name: SLJIT_X86_32_FASTCALL
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_FUNC
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: __msfastcall
    - item_type: preproc_def
      name: SLJIT_X86_32_FASTCALL
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_INDIRECT_CALL
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_RETURN_ADDRESS_OFFSET
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SLJIT_RETURN_ADDRESS_OFFSET
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: (compiler->locals_offset)
    - item_type: preproc_def
      name: SLJIT_PREF_SHIFT_REG
      pos:
        line_end: 649
        line_start: 648
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: SLJIT_R2
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 655
        line_start: 654
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 656
        line_start: 655
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 658
        line_start: 657
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 659
        line_start: 658
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: (compiler->locals_offset)
    - item_type: preproc_def
      name: SLJIT_PREF_SHIFT_REG
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: SLJIT_R3
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '26'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '23'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '17'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: ((6 + 8) * sizeof(sljit_sw))
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: ((3 + 1) * sizeof(sljit_sw))
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: (3 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '21'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: (4 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 706
        line_start: 705
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '18'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 707
        line_start: 706
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: ((16 + 1 + 6 + 2 + 1) * sizeof(sljit_sw))
    - item_type: preproc_def
      name: SLJIT_S390X_DEFAULT_STACK_FRAME_SIZE
      pos:
        line_end: 735
        line_start: 734
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '160'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: SLJIT_S390X_DEFAULT_STACK_FRAME_SIZE
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_REGISTERS
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_REGISTERS
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET_BASE
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_LOCALS_OFFSET
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: (SLJIT_LOCALS_OFFSET_BASE)
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SCRATCH_REGISTERS
      pos:
        line_end: 752
        line_start: 750
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS - SLJIT_NUMBER_OF_SAVED_REGISTERS)
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_FLOAT_REGISTERS
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS
      pos:
        line_end: 756
        line_start: 755
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS
      pos:
        line_end: 758
        line_start: 757
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_NUMBER_OF_SCRATCH_FLOAT_REGISTERS
      pos:
        line_end: 762
        line_start: 760
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS - SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS)
    - item_type: preproc_def
      name: SLJIT_HAS_STATUS_FLAGS_STATE
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type_or_value: '1'
    structs: []
    typedefs:
    - item_type: typedef
      name: sljit_u8
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: unsigned char
    - item_type: typedef
      name: sljit_s8
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: signed char
    - item_type: typedef
      name: sljit_u16
      pos:
        line_end: 396
        line_start: 396
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: unsigned short int
    - item_type: typedef
      name: sljit_s16
      pos:
        line_end: 397
        line_start: 397
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: signed short int
    - item_type: typedef
      name: sljit_u32
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: unsigned int
    - item_type: typedef
      name: sljit_s32
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: signed int
    - item_type: typedef
      name: sljit_uw
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: unsigned long int
    - item_type: typedef
      name: sljit_sw
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: long int
    - item_type: typedef
      name: sljit_uw
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: unsigned int
    - item_type: typedef
      name: sljit_sw
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: int
    - item_type: typedef
      name: sljit_uw
      pos:
        line_end: 426
        line_start: 426
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: unsigned long long
    - item_type: typedef
      name: sljit_sw
      pos:
        line_end: 427
        line_start: 427
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: long long
    - item_type: typedef
      name: sljit_uw
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: unsigned __int64
    - item_type: typedef
      name: sljit_sw
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: __int64
    - item_type: typedef
      name: sljit_uw
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: unsigned long int
    - item_type: typedef
      name: sljit_sw
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: long int
    - item_type: typedef
      name: sljit_p
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: sljit_uw
    - item_type: typedef
      name: sljit_f32
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: float
    - item_type: typedef
      name: sljit_f64
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/pcre2/src/sljit/sljitConfigInternal.h
      type: double
    union: []
- function_names:
  - alloc_chunk
  - free_chunk
  - get_map_jit_flag
  - SLJIT_UPDATE_WX_FLAGS
  - apple_update_wx_flags
  - alloc_chunk
  - free_chunk
  - AS_BLOCK_HEADER
  - AS_FREE_BLOCK
  - MEM_START
  - ALIGN_SIZE
  - sljit_insert_free_block
  - sljit_remove_free_block
  - sljit_malloc_exec
  - sljit_free_exec
  - sljit_free_unused_memory_exec
  source_file: /src/pcre2/src/sljit/sljitExecAllocator.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHUNK_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/pcre2/src/sljit/sljitExecAllocator.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: SLJIT_MAP_JIT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/pcre2/src/sljit/sljitExecAllocator.c
      type_or_value: (get_map_jit_flag())
    - item_type: preproc_def
      name: SLJIT_MAP_JIT
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/pcre2/src/sljit/sljitExecAllocator.c
      type_or_value: (MAP_JIT)
    - item_type: preproc_def
      name: SLJIT_MAP_JIT
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/sljit/sljitExecAllocator.c
      type_or_value: (MAP_JIT)
    - item_type: preproc_def
      name: SLJIT_MAP_JIT
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/pcre2/src/sljit/sljitExecAllocator.c
      type_or_value: (0)
    - item_type: preproc_def
      name: CHUNK_MASK
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/pcre2/src/sljit/sljitExecAllocator.c
      type_or_value: (~(CHUNK_SIZE - 1))
    structs:
    - fields:
      - name: size
        type: sljit_uw
      - name: prev_size
        type: sljit_uw
      item_type: struct
      name: block_header
      pos:
        line_end: 215
        line_start: 212
        source_file: /src/pcre2/src/sljit/sljitExecAllocator.c
    - fields:
      - name: header
        type: struct block_header
      - name: '*next'
        type: struct free_block
      - name: '*prev'
        type: struct free_block
      - name: size
        type: sljit_uw
      item_type: struct
      name: free_block
      pos:
        line_end: 222
        line_start: 217
        source_file: /src/pcre2/src/sljit/sljitExecAllocator.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/pcre2/src/sljit/sljitConfig.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SLJIT_UTIL_STACK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_UTIL_SIMPLE_STACK_ALLOCATION
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_SINGLE_THREADED
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_STD_MACROS_DEFINED
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_EXECUTABLE_ALLOCATOR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_PROT_EXECUTABLE_ALLOCATOR
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_WX_EXECUTABLE_ALLOCATOR
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_USE_CDECL_CALLING_CONVENTION
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_ARGUMENT_CHECKS
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SLJIT_DEBUG
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_VERBOSE
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/sljit/sljitConfig.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sljit_get_platform_name
  - S
  - T
  - D
  - FT
  - FS
  - FD
  - SA
  - TA
  - DA
  - IMM
  - SH_IMM
  - DR
  - FR
  - HI
  - LO
  - push_inst
  - invert_branch
  - detect_jump_type
  - sljit_cache_flush
  - put_label_get_length
  - put_label_set
  - sljit_generate_code
  - sljit_has_cpu_feature
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - ARCH_32_64
  - ARCH_32_64
  - getput_arg_fast
  - can_cache
  - getput_arg
  - emit_op_mem
  - emit_op_mem2
  - emit_op
  - sljit_emit_op0
  - emit_prefetch
  - sljit_emit_op1
  - sljit_emit_op2
  - sljit_emit_op_src
  - sljit_get_register_index
  - sljit_get_float_register_index
  - sljit_emit_op_custom
  - FLOAT_DATA
  - FMT
  - sljit_emit_fop1_conv_sw_from_f64
  - sljit_emit_fop1_conv_f64_from_sw
  - sljit_emit_fop1_cmp
  - sljit_emit_fop1
  - sljit_emit_fop2
  - sljit_emit_fast_enter
  - sljit_emit_label
  - BR_Z
  - BR_NZ
  - BR_T
  - BR_F
  - BR_T
  - BR_F
  - sljit_emit_jump
  - RESOLVE_IMM1
  - RESOLVE_IMM2
  - sljit_emit_cmp
  - sljit_emit_ijump
  - sljit_emit_op_flags
  - sljit_emit_cmov
  - sljit_emit_const
  - sljit_emit_put_label
  source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SLJIT_IS_FPU_AVAILABLE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TMP_REG1
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 2)
    - item_type: preproc_def
      name: TMP_REG2
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 3)
    - item_type: preproc_def
      name: TMP_REG3
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 4)
    - item_type: preproc_def
      name: PIC_ADDR_REG
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: TMP_REG2
    - item_type: preproc_def
      name: FCSR_REG
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '31'
    - item_type: preproc_def
      name: RETURN_ADDR_REG
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '31'
    - item_type: preproc_def
      name: EQUAL_FLAG
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '3'
    - item_type: preproc_def
      name: OTHER_FLAG
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TMP_FREG1
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
    - item_type: preproc_def
      name: TMP_FREG2
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
    - item_type: preproc_def
      name: TMP_FREG3
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3)
    - item_type: preproc_def
      name: CMP_FMT_S
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (20 << 21)
    - item_type: preproc_def
      name: FMT_S
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (16 << 21)
    - item_type: preproc_def
      name: FMT_D
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (17 << 21)
    - item_type: preproc_def
      name: ABS_S
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(5))
    - item_type: preproc_def
      name: ADD_S
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(0))
    - item_type: preproc_def
      name: ADDIU
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(9))
    - item_type: preproc_def
      name: ADDU
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(33))
    - item_type: preproc_def
      name: AND
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(36))
    - item_type: preproc_def
      name: ANDI
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(12))
    - item_type: preproc_def
      name: B
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(4))
    - item_type: preproc_def
      name: BAL
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(1) | (17 << 16))
    - item_type: preproc_def
      name: BC1EQZ
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | (9 << 21) | FT(TMP_FREG3))
    - item_type: preproc_def
      name: BC1NEZ
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | (13 << 21) | FT(TMP_FREG3))
    - item_type: preproc_def
      name: BC1F
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | (8 << 21))
    - item_type: preproc_def
      name: BC1T
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | (8 << 21) | (1 << 16))
    - item_type: preproc_def
      name: BEQ
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(4))
    - item_type: preproc_def
      name: BGEZ
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(1) | (1 << 16))
    - item_type: preproc_def
      name: BGTZ
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(7))
    - item_type: preproc_def
      name: BLEZ
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(6))
    - item_type: preproc_def
      name: BLTZ
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(1) | (0 << 16))
    - item_type: preproc_def
      name: BNE
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(5))
    - item_type: preproc_def
      name: BREAK
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(13))
    - item_type: preproc_def
      name: CFC1
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | (2 << 21))
    - item_type: preproc_def
      name: C_UEQ_S
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | CMP_FMT_S | LO(3))
    - item_type: preproc_def
      name: C_ULE_S
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | CMP_FMT_S | LO(7))
    - item_type: preproc_def
      name: C_ULT_S
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | CMP_FMT_S | LO(5))
    - item_type: preproc_def
      name: C_UN_S
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | CMP_FMT_S | LO(1))
    - item_type: preproc_def
      name: C_FD
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (FD(TMP_FREG3))
    - item_type: preproc_def
      name: C_UEQ_S
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(51))
    - item_type: preproc_def
      name: C_ULE_S
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(55))
    - item_type: preproc_def
      name: C_ULT_S
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(53))
    - item_type: preproc_def
      name: C_UN_S
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(49))
    - item_type: preproc_def
      name: C_FD
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (0)
    - item_type: preproc_def
      name: CVT_S_S
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(32))
    - item_type: preproc_def
      name: DADDIU
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(25))
    - item_type: preproc_def
      name: DADDU
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(45))
    - item_type: preproc_def
      name: DDIV
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (2 << 6) | LO(30))
    - item_type: preproc_def
      name: DDIVU
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (2 << 6) | LO(31))
    - item_type: preproc_def
      name: DMOD
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (3 << 6) | LO(30))
    - item_type: preproc_def
      name: DMODU
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (3 << 6) | LO(31))
    - item_type: preproc_def
      name: DIV
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (2 << 6) | LO(26))
    - item_type: preproc_def
      name: DIVU
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (2 << 6) | LO(27))
    - item_type: preproc_def
      name: DMUH
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (3 << 6) | LO(28))
    - item_type: preproc_def
      name: DMUHU
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (3 << 6) | LO(29))
    - item_type: preproc_def
      name: DMUL
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (2 << 6) | LO(28))
    - item_type: preproc_def
      name: DMULU
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (2 << 6) | LO(29))
    - item_type: preproc_def
      name: DDIV
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(30))
    - item_type: preproc_def
      name: DDIVU
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(31))
    - item_type: preproc_def
      name: DIV
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(26))
    - item_type: preproc_def
      name: DIVU
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(27))
    - item_type: preproc_def
      name: DMULT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(28))
    - item_type: preproc_def
      name: DMULTU
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(29))
    - item_type: preproc_def
      name: DIV_S
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(3))
    - item_type: preproc_def
      name: DSLL
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(56))
    - item_type: preproc_def
      name: DSLL32
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(60))
    - item_type: preproc_def
      name: DSLLV
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(20))
    - item_type: preproc_def
      name: DSRA
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(59))
    - item_type: preproc_def
      name: DSRA32
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(63))
    - item_type: preproc_def
      name: DSRAV
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(23))
    - item_type: preproc_def
      name: DSRL
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(58))
    - item_type: preproc_def
      name: DSRL32
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(62))
    - item_type: preproc_def
      name: DSRLV
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(22))
    - item_type: preproc_def
      name: DSUBU
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(47))
    - item_type: preproc_def
      name: J
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(2))
    - item_type: preproc_def
      name: JAL
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(3))
    - item_type: preproc_def
      name: JALR
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(9))
    - item_type: preproc_def
      name: JR
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(9))
    - item_type: preproc_def
      name: JR
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(8))
    - item_type: preproc_def
      name: LD
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(55))
    - item_type: preproc_def
      name: LUI
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(15))
    - item_type: preproc_def
      name: LW
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(35))
    - item_type: preproc_def
      name: MFC1
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17))
    - item_type: preproc_def
      name: MOD
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (3 << 6) | LO(26))
    - item_type: preproc_def
      name: MODU
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (3 << 6) | LO(27))
    - item_type: preproc_def
      name: MFHI
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(16))
    - item_type: preproc_def
      name: MFLO
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(18))
    - item_type: preproc_def
      name: MOV_S
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(6))
    - item_type: preproc_def
      name: MTC1
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | (4 << 21))
    - item_type: preproc_def
      name: MUH
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (3 << 6) | LO(24))
    - item_type: preproc_def
      name: MUHU
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (3 << 6) | LO(25))
    - item_type: preproc_def
      name: MUL
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (2 << 6) | LO(24))
    - item_type: preproc_def
      name: MULU
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (2 << 6) | LO(25))
    - item_type: preproc_def
      name: MULT
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(24))
    - item_type: preproc_def
      name: MULTU
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(25))
    - item_type: preproc_def
      name: MUL_S
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(2))
    - item_type: preproc_def
      name: NEG_S
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(7))
    - item_type: preproc_def
      name: NOP
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(0))
    - item_type: preproc_def
      name: NOR
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(39))
    - item_type: preproc_def
      name: OR
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(37))
    - item_type: preproc_def
      name: ORI
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(13))
    - item_type: preproc_def
      name: SD
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(63))
    - item_type: preproc_def
      name: SDC1
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(61))
    - item_type: preproc_def
      name: SLT
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(42))
    - item_type: preproc_def
      name: SLTI
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(10))
    - item_type: preproc_def
      name: SLTIU
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(11))
    - item_type: preproc_def
      name: SLTU
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(43))
    - item_type: preproc_def
      name: SLL
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(0))
    - item_type: preproc_def
      name: SLLV
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(4))
    - item_type: preproc_def
      name: SRL
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(2))
    - item_type: preproc_def
      name: SRLV
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(6))
    - item_type: preproc_def
      name: SRA
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(3))
    - item_type: preproc_def
      name: SRAV
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(7))
    - item_type: preproc_def
      name: SUB_S
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(1))
    - item_type: preproc_def
      name: SUBU
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(35))
    - item_type: preproc_def
      name: SW
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(43))
    - item_type: preproc_def
      name: SWC1
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(57))
    - item_type: preproc_def
      name: TRUNC_W_S
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(17) | FMT_S | LO(13))
    - item_type: preproc_def
      name: XOR
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(38))
    - item_type: preproc_def
      name: XORI
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(14))
    - item_type: preproc_def
      name: CLZ
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(28) | LO(32))
    - item_type: preproc_def
      name: DCLZ
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (LO(18))
    - item_type: preproc_def
      name: DCLZ
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(28) | LO(36))
    - item_type: preproc_def
      name: MOVF
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (0 << 16) | LO(1))
    - item_type: preproc_def
      name: MOVN
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(11))
    - item_type: preproc_def
      name: MOVT
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | (1 << 16) | LO(1))
    - item_type: preproc_def
      name: MOVZ
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(0) | LO(10))
    - item_type: preproc_def
      name: MUL
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(28) | LO(2))
    - item_type: preproc_def
      name: PREF
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(51))
    - item_type: preproc_def
      name: PREFX
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(19) | LO(15))
    - item_type: preproc_def
      name: SEB
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(31) | (16 << 6) | LO(32))
    - item_type: preproc_def
      name: SEH
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (HI(31) | (24 << 6) | LO(32))
    - item_type: preproc_def
      name: ADDU_W
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: ADDU
    - item_type: preproc_def
      name: ADDIU_W
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: ADDIU
    - item_type: preproc_def
      name: SLL_W
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: SLL
    - item_type: preproc_def
      name: SUBU_W
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: SUBU
    - item_type: preproc_def
      name: ADDU_W
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: DADDU
    - item_type: preproc_def
      name: ADDIU_W
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: DADDIU
    - item_type: preproc_def
      name: SLL_W
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: DSLL
    - item_type: preproc_def
      name: SUBU_W
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: DSUBU
    - item_type: preproc_def
      name: SIMM_MAX
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (0x7fff)
    - item_type: preproc_def
      name: SIMM_MIN
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (-0x8000)
    - item_type: preproc_def
      name: UIMM_MAX
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: (0xffff)
    - item_type: preproc_def
      name: LOAD_DATA
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: WORD_DATA
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BYTE_DATA
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HALF_DATA
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: INT_DATA
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: SIGNED_DATA
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: GPR_REG
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: DOUBLE_DATA
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SINGLE_DATA
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x12'
    - item_type: preproc_def
      name: MEM_MASK
      pos:
        line_end: 719
        line_start: 718
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x1f'
    - item_type: preproc_def
      name: ARG_TEST
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x00020'
    - item_type: preproc_def
      name: ALT_KEEP_CACHE
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x00040'
    - item_type: preproc_def
      name: CUMULATIVE_OP
      pos:
        line_end: 723
        line_start: 722
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x00080'
    - item_type: preproc_def
      name: LOGICAL_OP
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x00100'
    - item_type: preproc_def
      name: IMM_OP
      pos:
        line_end: 725
        line_start: 724
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x00200'
    - item_type: preproc_def
      name: SRC2_IMM
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x00400'
    - item_type: preproc_def
      name: UNUSED_DEST
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x00800'
    - item_type: preproc_def
      name: REG_DEST
      pos:
        line_end: 729
        line_start: 728
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x01000'
    - item_type: preproc_def
      name: REG1_SOURCE
      pos:
        line_end: 730
        line_start: 729
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x02000'
    - item_type: preproc_def
      name: REG2_SOURCE
      pos:
        line_end: 731
        line_start: 730
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x04000'
    - item_type: preproc_def
      name: SLOW_SRC1
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x08000'
    - item_type: preproc_def
      name: SLOW_SRC2
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: SLOW_DEST
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: STACK_STORE
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: SW
    - item_type: preproc_def
      name: STACK_LOAD
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: LW
    - item_type: preproc_def
      name: STACK_STORE
      pos:
        line_end: 740
        line_start: 739
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: SD
    - item_type: preproc_def
      name: STACK_LOAD
      pos:
        line_end: 741
        line_start: 740
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: LD
    - item_type: preproc_def
      name: flags
      pos:
        line_end: 1330
        line_start: 1329
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0'
    - item_type: preproc_def
      name: flags
      pos:
        line_end: 1401
        line_start: 1400
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0'
    - item_type: preproc_def
      name: flags
      pos:
        line_end: 1535
        line_start: 1534
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0'
    - item_type: preproc_def
      name: flags
      pos:
        line_end: 1563
        line_start: 1562
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '0'
    - item_type: preproc_def
      name: JUMP_LENGTH
      pos:
        line_end: 1801
        line_start: 1800
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '4'
    - item_type: preproc_def
      name: JUMP_LENGTH
      pos:
        line_end: 1803
        line_start: 1802
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type_or_value: '8'
    structs: []
    typedefs:
    - item_type: typedef
      name: sljit_ins
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/pcre2/src/sljit/sljitNativeMIPS_common.c
      type: sljit_u32
    union: []
- function_names:
  - emit_do_imm
  - generate_far_jump_code
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - emit_x86_instruction
  - c_fast_call_get_stack_size
  - c_fast_call_with_args
  - cdecl_call_get_stack_size
  - cdecl_call_with_args
  - post_call_with_args
  - sljit_emit_call
  - sljit_emit_icall
  - sljit_emit_fast_enter
  - emit_fast_return
  - skip_frames_before_return
  source_file: /src/pcre2/src/sljit/sljitNativeX86_32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sljit_get_platform_name
  - ppc_cache_flush
  - D
  - S
  - A
  - B
  - C
  - FD
  - FS
  - FA
  - FB
  - FC
  - IMM
  - CRD
  - OE
  - RC
  - HI
  - LO
  - RLDI
  - sljit_set_function_context
  - push_inst
  - detect_jump_type
  - put_label_get_length
  - put_label_set
  - sljit_generate_code
  - sljit_has_cpu_feature
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - ARCH_32_64
  - INST_CODE_AND_DST
  - ARCH_32_64
  - INST_CODE_AND_DST
  - emit_op
  - sljit_emit_op0
  - emit_prefetch
  - EMIT_MOV
  - sljit_emit_op1
  - TEST_SL_IMM
  - TEST_UL_IMM
  - TEST_SH_IMM
  - TEST_SH_IMM
  - TEST_UH_IMM
  - TEST_ADD_IMM
  - TEST_ADD_IMM
  - TEST_UI_IMM
  - TEST_UI_IMM
  - TEST_ADD_FORM1
  - TEST_SUB_FORM2
  - TEST_SUB_FORM3
  - TEST_ADD_FORM1
  - TEST_SUB_FORM2
  - TEST_SUB_FORM3
  - sljit_emit_op2
  - sljit_emit_op_src
  - sljit_get_register_index
  - sljit_get_float_register_index
  - sljit_emit_op_custom
  - FLOAT_DATA
  - SELECT_FOP
  - sljit_emit_fop1_conv_sw_from_f64
  - sljit_emit_fop1_conv_f64_from_sw
  - sljit_emit_fop1_cmp
  - sljit_emit_fop1
  - sljit_emit_fop2
  - sljit_emit_fast_enter
  - sljit_emit_label
  - get_bo_bi_flags
  - sljit_emit_jump
  - sljit_emit_call
  - sljit_emit_ijump
  - sljit_emit_icall
  - sljit_emit_op_flags
  - sljit_emit_cmov
  - sljit_emit_mem
  - sljit_emit_fmem
  - sljit_emit_const
  - sljit_emit_put_label
  source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SLJIT_PPC_STACK_FRAME_V2
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_PASS_ENTRY_ADDR_TO_CALL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TMP_REG1
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 2)
    - item_type: preproc_def
      name: TMP_REG2
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 3)
    - item_type: preproc_def
      name: TMP_ZERO
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 4)
    - item_type: preproc_def
      name: TMP_CALL_REG
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 5)
    - item_type: preproc_def
      name: TMP_CALL_REG
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: TMP_REG2
    - item_type: preproc_def
      name: TMP_FREG1
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
    - item_type: preproc_def
      name: TMP_FREG2
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
    - item_type: preproc_def
      name: ADD
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(266))
    - item_type: preproc_def
      name: ADDC
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(10))
    - item_type: preproc_def
      name: ADDE
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(138))
    - item_type: preproc_def
      name: ADDI
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(14))
    - item_type: preproc_def
      name: ADDIC
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(13))
    - item_type: preproc_def
      name: ADDIS
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(15))
    - item_type: preproc_def
      name: ADDME
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(234))
    - item_type: preproc_def
      name: AND
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(28))
    - item_type: preproc_def
      name: ANDI
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(28))
    - item_type: preproc_def
      name: ANDIS
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(29))
    - item_type: preproc_def
      name: Bx
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(18))
    - item_type: preproc_def
      name: BCx
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(16))
    - item_type: preproc_def
      name: BCCTR
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(19) | LO(528) | (3 << 11))
    - item_type: preproc_def
      name: BLR
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(19) | LO(16) | (0x14 << 21))
    - item_type: preproc_def
      name: CNTLZD
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(58))
    - item_type: preproc_def
      name: CNTLZW
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(26))
    - item_type: preproc_def
      name: CMP
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(0))
    - item_type: preproc_def
      name: CMPI
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(11))
    - item_type: preproc_def
      name: CMPL
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(32))
    - item_type: preproc_def
      name: CMPLI
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(10))
    - item_type: preproc_def
      name: CROR
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(19) | LO(449))
    - item_type: preproc_def
      name: DCBT
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(278))
    - item_type: preproc_def
      name: DIVD
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(489))
    - item_type: preproc_def
      name: DIVDU
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(457))
    - item_type: preproc_def
      name: DIVW
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(491))
    - item_type: preproc_def
      name: DIVWU
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(459))
    - item_type: preproc_def
      name: EXTSB
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(954))
    - item_type: preproc_def
      name: EXTSH
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(922))
    - item_type: preproc_def
      name: EXTSW
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(986))
    - item_type: preproc_def
      name: FABS
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(264))
    - item_type: preproc_def
      name: FADD
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(21))
    - item_type: preproc_def
      name: FADDS
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(59) | LO(21))
    - item_type: preproc_def
      name: FCFID
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(846))
    - item_type: preproc_def
      name: FCMPU
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(0))
    - item_type: preproc_def
      name: FCTIDZ
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(815))
    - item_type: preproc_def
      name: FCTIWZ
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(15))
    - item_type: preproc_def
      name: FDIV
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(18))
    - item_type: preproc_def
      name: FDIVS
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(59) | LO(18))
    - item_type: preproc_def
      name: FMR
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(72))
    - item_type: preproc_def
      name: FMUL
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(25))
    - item_type: preproc_def
      name: FMULS
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(59) | LO(25))
    - item_type: preproc_def
      name: FNEG
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(40))
    - item_type: preproc_def
      name: FRSP
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(12))
    - item_type: preproc_def
      name: FSUB
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(63) | LO(20))
    - item_type: preproc_def
      name: FSUBS
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(59) | LO(20))
    - item_type: preproc_def
      name: LD
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(58) | 0)
    - item_type: preproc_def
      name: LWZ
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(32))
    - item_type: preproc_def
      name: MFCR
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(19))
    - item_type: preproc_def
      name: MFLR
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(339) | 0x80000)
    - item_type: preproc_def
      name: MFXER
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(339) | 0x10000)
    - item_type: preproc_def
      name: MTCTR
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(467) | 0x90000)
    - item_type: preproc_def
      name: MTLR
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(467) | 0x80000)
    - item_type: preproc_def
      name: MTXER
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(467) | 0x10000)
    - item_type: preproc_def
      name: MULHD
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(73))
    - item_type: preproc_def
      name: MULHDU
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(9))
    - item_type: preproc_def
      name: MULHW
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(75))
    - item_type: preproc_def
      name: MULHWU
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(11))
    - item_type: preproc_def
      name: MULLD
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(233))
    - item_type: preproc_def
      name: MULLI
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(7))
    - item_type: preproc_def
      name: MULLW
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(235))
    - item_type: preproc_def
      name: NEG
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(104))
    - item_type: preproc_def
      name: NOP
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(24))
    - item_type: preproc_def
      name: NOR
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(124))
    - item_type: preproc_def
      name: OR
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(444))
    - item_type: preproc_def
      name: ORI
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(24))
    - item_type: preproc_def
      name: ORIS
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(25))
    - item_type: preproc_def
      name: RLDICL
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(30))
    - item_type: preproc_def
      name: RLWINM
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(21))
    - item_type: preproc_def
      name: SLD
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(27))
    - item_type: preproc_def
      name: SLW
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(24))
    - item_type: preproc_def
      name: SRAD
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(794))
    - item_type: preproc_def
      name: SRADI
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(413 << 1))
    - item_type: preproc_def
      name: SRAW
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(792))
    - item_type: preproc_def
      name: SRAWI
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(824))
    - item_type: preproc_def
      name: SRD
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(539))
    - item_type: preproc_def
      name: SRW
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(536))
    - item_type: preproc_def
      name: STD
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(62) | 0)
    - item_type: preproc_def
      name: STDU
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(62) | 1)
    - item_type: preproc_def
      name: STDUX
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(181))
    - item_type: preproc_def
      name: STFIWX
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(983))
    - item_type: preproc_def
      name: STW
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(36))
    - item_type: preproc_def
      name: STWU
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(37))
    - item_type: preproc_def
      name: STWUX
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(183))
    - item_type: preproc_def
      name: SUBF
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(40))
    - item_type: preproc_def
      name: SUBFC
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(8))
    - item_type: preproc_def
      name: SUBFE
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(136))
    - item_type: preproc_def
      name: SUBFIC
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(8))
    - item_type: preproc_def
      name: XOR
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(31) | LO(316))
    - item_type: preproc_def
      name: XORI
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(26))
    - item_type: preproc_def
      name: XORIS
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (HI(27))
    - item_type: preproc_def
      name: SIMM_MAX
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (0x7fff)
    - item_type: preproc_def
      name: SIMM_MIN
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (-0x8000)
    - item_type: preproc_def
      name: UIMM_MAX
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (0xffff)
    - item_type: preproc_def
      name: LOAD_DATA
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: INDEXED
      pos:
        line_end: 649
        line_start: 648
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: SIGNED_DATA
      pos:
        line_end: 650
        line_start: 649
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: WORD_DATA
      pos:
        line_end: 652
        line_start: 651
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BYTE_DATA
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: HALF_DATA
      pos:
        line_end: 654
        line_start: 653
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: INT_DATA
      pos:
        line_end: 655
        line_start: 654
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x18'
    - item_type: preproc_def
      name: GPR_REG
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x1f'
    - item_type: preproc_def
      name: DOUBLE_DATA
      pos:
        line_end: 658
        line_start: 657
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: MEM_MASK
      pos:
        line_end: 660
        line_start: 659
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x7f'
    - item_type: preproc_def
      name: ALT_SIGN_EXT
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x000100'
    - item_type: preproc_def
      name: ALT_SET_FLAGS
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x000400'
    - item_type: preproc_def
      name: ALT_FORM1
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x001000'
    - item_type: preproc_def
      name: ALT_FORM2
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x002000'
    - item_type: preproc_def
      name: ALT_FORM3
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x004000'
    - item_type: preproc_def
      name: ALT_FORM4
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x008000'
    - item_type: preproc_def
      name: ALT_FORM5
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x010000'
    - item_type: preproc_def
      name: REG_DEST
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x000001'
    - item_type: preproc_def
      name: REG1_SOURCE
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x000002'
    - item_type: preproc_def
      name: REG2_SOURCE
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x000004'
    - item_type: preproc_def
      name: STACK_STORE
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: STW
    - item_type: preproc_def
      name: STACK_LOAD
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: LWZ
    - item_type: preproc_def
      name: STACK_STORE
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: STD
    - item_type: preproc_def
      name: STACK_LOAD
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: LD
    - item_type: preproc_def
      name: INT_ALIGNED
      pos:
        line_end: 840
        line_start: 839
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: FLOAT_TMP_MEM_OFFSET
      pos:
        line_end: 1640
        line_start: 1639
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (6 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: FLOAT_TMP_MEM_OFFSET
      pos:
        line_end: 1642
        line_start: 1641
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (2 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: FLOAT_TMP_MEM_OFFSET_LOW
      pos:
        line_end: 1645
        line_start: 1644
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (2 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: FLOAT_TMP_MEM_OFFSET_HI
      pos:
        line_end: 1646
        line_start: 1645
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (3 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: FLOAT_TMP_MEM_OFFSET_LOW
      pos:
        line_end: 1648
        line_start: 1647
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (3 * sizeof(sljit_sw))
    - item_type: preproc_def
      name: FLOAT_TMP_MEM_OFFSET_HI
      pos:
        line_end: 1649
        line_start: 1648
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type_or_value: (2 * sizeof(sljit_sw))
    structs: []
    typedefs:
    - item_type: typedef
      name: sljit_ins
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/pcre2/src/sljit/sljitNativePPC_common.c
      type: sljit_u32
    union: []
- function_names:
  - load_immediate
  - INS_CLEAR_LEFT
  - emit_single_op
  - emit_const
  - sljit_set_jump_addr
  - sljit_set_const
  source_file: /src/pcre2/src/sljit/sljitNativePPC_32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SLJIT_UPDATE_WX_FLAGS
  - check_se_protected
  - check_se_protected
  - netbsd_se_protected
  - check_se_protected
  - generic_se_protected
  - SLJIT_SE_LOCK
  - SLJIT_SE_UNLOCK
  - sljit_malloc_exec
  - sljit_free_exec
  - sljit_update_wx_flags
  - sljit_malloc_exec
  - sljit_free_exec
  - sljit_update_wx_flags
  - sljit_free_unused_memory_exec
  source_file: /src/pcre2/src/sljit/sljitWXExecAllocator.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SLJIT_PROT_WX
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/pcre2/src/sljit/sljitWXExecAllocator.c
      type_or_value: PROT_MPROTECT(PROT_EXEC)
    - item_type: preproc_def
      name: devmajor_t
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/pcre2/src/sljit/sljitWXExecAllocator.c
      type_or_value: sljit_s32
    - item_type: preproc_def
      name: SLJIT_PROT_WX
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/pcre2/src/sljit/sljitWXExecAllocator.c
      type_or_value: '0'
    structs: []
    typedefs:
    - item_type: typedef
      name: u_int
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/pcre2/src/sljit/sljitWXExecAllocator.c
      type: unsigned int
    union: []
- function_names:
  - sljit_get_platform_name
  - CHECK_EXTRA_REGS
  - IS_HALFWORD
  - NOT_HALFWORD
  - INC_SIZE
  - PUSH_REG
  - POP_REG
  - RET
  - RET_I16
  - MOV_RM
  - sljit_unaligned_store_s16
  - sljit_unaligned_store_s32
  - sljit_unaligned_store_sw
  - get_jump_code
  - generate_near_jump_code
  - sljit_generate_code
  - sljit_has_cpu_feature
  - BINARY_OPCODE
  - EMIT_MOV
  - emit_endbranch
  - emit_rdssp
  - emit_incssp
  - cpu_has_shadow_stack
  - adjust_shadow_stack
  - emit_mov
  - sljit_emit_op0
  - ENCODE_PREFIX
  - emit_mov_byte
  - emit_prefetch
  - emit_mov_half
  - emit_unary
  - emit_not_with_flags
  - emit_clz
  - sljit_emit_op1
  - BINARY_IMM
  - BINARY_EAX_IMM
  - BINARY_IMM
  - BINARY_EAX_IMM
  - emit_mul
  - if
  - if
  - emit_shift
  - emit_shift_with_flags
  - sljit_emit_op2
  - sljit_emit_op_src
  - sljit_get_register_index
  - sljit_get_float_register_index
  - sljit_emit_op_custom
  - init_compiler
  - emit_sse2
  - emit_sse2_logic
  - emit_sse2_load
  - emit_sse2_store
  - sljit_emit_fop1_conv_sw_from_f64
  - sljit_emit_fop1_conv_f64_from_sw
  - sljit_emit_fop1_cmp
  - sljit_emit_fop1
  - sljit_emit_fop2
  - sljit_emit_label
  - sljit_emit_jump
  - sljit_emit_ijump
  - sljit_emit_op_flags
  - sljit_emit_cmov
  - sljit_get_local_base
  - sljit_emit_const
  - sljit_emit_put_label
  - sljit_set_jump_addr
  - sljit_set_const
  source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TMP_REG1
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 2)
    - item_type: preproc_def
      name: TMP_REG1
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 2)
    - item_type: preproc_def
      name: TMP_REG2
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 3)
    - item_type: preproc_def
      name: REX_W
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x48'
    - item_type: preproc_def
      name: REX_R
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x44'
    - item_type: preproc_def
      name: REX_X
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x42'
    - item_type: preproc_def
      name: REX_B
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x41'
    - item_type: preproc_def
      name: REX
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: HALFWORD_MAX
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: 0x7fffffffl
    - item_type: preproc_def
      name: HALFWORD_MIN
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: -0x80000000l
    - item_type: preproc_def
      name: HALFWORD_MAX
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: 0x7fffffffll
    - item_type: preproc_def
      name: HALFWORD_MIN
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: -0x80000000ll
    - item_type: preproc_def
      name: TMP_FREG
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (0)
    - item_type: preproc_def
      name: EX86_BIN_INS
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: EX86_SHIFT_INS
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: EX86_REX
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: EX86_NO_REXW
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: EX86_BYTE_ARG
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: EX86_HALF_ARG
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: EX86_PREF_66
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: EX86_PREF_F2
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: EX86_PREF_F3
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: EX86_SSE2_OP1
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: EX86_SSE2_OP2
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: EX86_SSE2
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (EX86_SSE2_OP1 | EX86_SSE2_OP2)
    - item_type: preproc_def
      name: ADD
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: ADD_EAX_i32
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: ADD_r_rm
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: ADD_rm_r
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ADDSD_x_xm
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x58'
    - item_type: preproc_def
      name: ADC
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: ADC_EAX_i32
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x15'
    - item_type: preproc_def
      name: ADC_r_rm
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x13'
    - item_type: preproc_def
      name: ADC_rm_r
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x11'
    - item_type: preproc_def
      name: AND
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: AND_EAX_i32
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x25'
    - item_type: preproc_def
      name: AND_r_rm
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x23'
    - item_type: preproc_def
      name: AND_rm_r
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x21'
    - item_type: preproc_def
      name: ANDPD_x_xm
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x54'
    - item_type: preproc_def
      name: CALL_i32
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xe8'
    - item_type: preproc_def
      name: CALL_rm
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: CDQ
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x99'
    - item_type: preproc_def
      name: CMP
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: CMP_EAX_i32
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x3d'
    - item_type: preproc_def
      name: CMP_r_rm
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x3b'
    - item_type: preproc_def
      name: CMP_rm_r
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x39'
    - item_type: preproc_def
      name: CVTPD2PS_x_xm
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x5a'
    - item_type: preproc_def
      name: CVTSI2SD_x_rm
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x2a'
    - item_type: preproc_def
      name: CVTTSD2SI_r_xm
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x2c'
    - item_type: preproc_def
      name: DIV
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: DIVSD_x_xm
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x5e'
    - item_type: preproc_def
      name: FSTPS
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xd9'
    - item_type: preproc_def
      name: FSTPD
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xdd'
    - item_type: preproc_def
      name: INT3
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xcc'
    - item_type: preproc_def
      name: IDIV
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: IMUL
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: IMUL_r_rm_i8
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x6b'
    - item_type: preproc_def
      name: IMUL_r_rm_i32
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x69'
    - item_type: preproc_def
      name: JE_i8
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x74'
    - item_type: preproc_def
      name: JNE_i8
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x75'
    - item_type: preproc_def
      name: JMP_i8
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xeb'
    - item_type: preproc_def
      name: JMP_i32
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xe9'
    - item_type: preproc_def
      name: JMP_rm
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: LEA_r_m
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x8d'
    - item_type: preproc_def
      name: MOV_r_rm
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x8b'
    - item_type: preproc_def
      name: MOV_r_i32
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xb8'
    - item_type: preproc_def
      name: MOV_rm_r
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x89'
    - item_type: preproc_def
      name: MOV_rm_i32
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xc7'
    - item_type: preproc_def
      name: MOV_rm8_i8
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xc6'
    - item_type: preproc_def
      name: MOV_rm8_r8
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x88'
    - item_type: preproc_def
      name: MOVSD_x_xm
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: MOVSD_xm_x
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x11'
    - item_type: preproc_def
      name: MOVSXD_r_rm
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x63'
    - item_type: preproc_def
      name: MUL
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: MULSD_x_xm
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x59'
    - item_type: preproc_def
      name: NEG_rm
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: NOP
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x90'
    - item_type: preproc_def
      name: NOT_rm
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: OR
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: OR_r_rm
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0b'
    - item_type: preproc_def
      name: OR_EAX_i32
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0d'
    - item_type: preproc_def
      name: OR_rm_r
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x09'
    - item_type: preproc_def
      name: OR_rm8_r8
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: POP_r
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x58'
    - item_type: preproc_def
      name: POP_rm
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x8f'
    - item_type: preproc_def
      name: POPF
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x9d'
    - item_type: preproc_def
      name: PREFETCH
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x18'
    - item_type: preproc_def
      name: PUSH_i32
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x68'
    - item_type: preproc_def
      name: PUSH_r
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x50'
    - item_type: preproc_def
      name: PUSH_rm
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: PUSHF
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x9c'
    - item_type: preproc_def
      name: RET_near
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xc3'
    - item_type: preproc_def
      name: RET_i16
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xc2'
    - item_type: preproc_def
      name: SBB
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: SBB_EAX_i32
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x1d'
    - item_type: preproc_def
      name: SBB_r_rm
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x1b'
    - item_type: preproc_def
      name: SBB_rm_r
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x19'
    - item_type: preproc_def
      name: SAR
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: SHL
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: SHR
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: SUB
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: SUB_EAX_i32
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x2d'
    - item_type: preproc_def
      name: SUB_r_rm
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x2b'
    - item_type: preproc_def
      name: SUB_rm_r
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x29'
    - item_type: preproc_def
      name: SUBSD_x_xm
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x5c'
    - item_type: preproc_def
      name: TEST_EAX_i32
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xa9'
    - item_type: preproc_def
      name: TEST_rm_r
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x85'
    - item_type: preproc_def
      name: UCOMISD_x_xm
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x2e'
    - item_type: preproc_def
      name: UNPCKLPD_x_xm
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x14'
    - item_type: preproc_def
      name: XCHG_EAX_r
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x90'
    - item_type: preproc_def
      name: XCHG_r_rm
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x87'
    - item_type: preproc_def
      name: XOR
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: (
    - item_type: preproc_def
      name: XOR_EAX_i32
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x35'
    - item_type: preproc_def
      name: XOR_r_rm
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x33'
    - item_type: preproc_def
      name: XOR_rm_r
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x31'
    - item_type: preproc_def
      name: XORPD_x_xm
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x57'
    - item_type: preproc_def
      name: GROUP_0F
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: GROUP_F7
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xf7'
    - item_type: preproc_def
      name: GROUP_FF
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: GROUP_BINARY_81
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: GROUP_BINARY_83
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x83'
    - item_type: preproc_def
      name: GROUP_SHIFT_1
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xd1'
    - item_type: preproc_def
      name: GROUP_SHIFT_N
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xc1'
    - item_type: preproc_def
      name: GROUP_SHIFT_CL
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xd3'
    - item_type: preproc_def
      name: MOD_REG
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0xc0'
    - item_type: preproc_def
      name: MOD_DISP8
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/pcre2/src/sljit/sljitNativeX86_common.c
      type_or_value: '0x40'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sljit_get_platform_name
  - gpr
  - sizeof_ins
  - push_inst
  - encode_inst
  - SLJIT_ADD_SUB_NO_COMPARE
  - get_cc
  - have_facility_static
  - get_hwcap
  - have_stfle
  - have_facility_dynamic
  - is_u12
  - is_u32
  - CHECK_SIGNED
  - is_s8
  - is_s16
  - is_s20
  - is_s32
  - disp_s20
  - SLJIT_S390X_INSTRUCTION
  - SLJIT_S390X_RR
  - SLJIT_S390X_RRE
  - SLJIT_S390X_RIA
  - SLJIT_S390X_RILA
  - SLJIT_S390X_RXA
  - SLJIT_S390X_RXYA
  - SLJIT_S390X_RSYA
  - SLJIT_S390X_RIEF
  - SLJIT_S390X_RRFC
  - SLJIT_S390X_RIEG
  - SLJIT_S390X_RILB
  - SLJIT_S390X_INSTRUCTION
  - SLJIT_S390X_INSTRUCTION
  - SLJIT_S390X_INSTRUCTION
  - SLJIT_S390X_INSTRUCTION
  - SLJIT_S390X_INSTRUCTION
  - SLJIT_S390X_INSTRUCTION
  - SLJIT_S390X_INSTRUCTION
  - update_zero_overflow
  - push_load_imm_inst
  - make_addr_bxy
  - make_addr_bx
  - EVAL
  - WHEN
  - load_word
  - store_word
  - emit_move
  - emit_rr
  - emit_rrf
  - emit_ri
  - emit_rie_d
  - emit_rx
  - emit_siy
  - emit_commutative
  - emit_non_commutative
  - sljit_generate_code
  - sljit_has_cpu_feature
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - sljit_emit_op0
  - WHEN2
  - sljit_emit_op1
  - LEVAL
  - is_commutative
  - is_shift
  - sets_signed_flag
  - sljit_emit_add
  - sljit_emit_sub
  - sljit_emit_multiply
  - sljit_emit_bitwise_imm
  - sljit_emit_bitwise
  - sljit_emit_shift
  - sljit_emit_op2
  - sljit_emit_op_src
  - sljit_get_register_index
  - sljit_get_float_register_index
  - sljit_emit_op_custom
  - sljit_emit_fop1
  - sljit_emit_fop2
  - sljit_emit_fast_enter
  - sljit_emit_label
  - sljit_emit_jump
  - sljit_emit_call
  - sljit_emit_ijump
  - sljit_emit_icall
  - sljit_emit_op_flags
  - LEVAL
  - LEVAL
  - sljit_emit_cmov
  - LEVAL
  - sljit_emit_const
  - sljit_set_jump_addr
  - sljit_set_const
  - sljit_emit_put_label
  source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENABLE_STATIC_FACILITY_DETECTION
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ENABLE_STATIC_FACILITY_DETECTION
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ENABLE_DYNAMIC_FACILITY_DETECTION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '1'
    - item_type: preproc_def
      name: tmp0
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: r0
    - item_type: preproc_def
      name: tmp1
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: r1
    - item_type: preproc_def
      name: STORE_FACILITY_LIST_EXTENDED_FACILITY
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '7'
    - item_type: preproc_def
      name: FAST_LONG_DISPLACEMENT_FACILITY
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '19'
    - item_type: preproc_def
      name: EXTENDED_IMMEDIATE_FACILITY
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '21'
    - item_type: preproc_def
      name: GENERAL_INSTRUCTION_EXTENSION_FACILITY
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '34'
    - item_type: preproc_def
      name: DISTINCT_OPERAND_FACILITY
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '45'
    - item_type: preproc_def
      name: HIGH_WORD_FACILITY
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '45'
    - item_type: preproc_def
      name: POPULATION_COUNT_FACILITY
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '45'
    - item_type: preproc_def
      name: LOAD_STORE_ON_CONDITION_1_FACILITY
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '45'
    - item_type: preproc_def
      name: MISCELLANEOUS_INSTRUCTION_EXTENSIONS_1_FACILITY
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '49'
    - item_type: preproc_def
      name: LOAD_STORE_ON_CONDITION_2_FACILITY
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '53'
    - item_type: preproc_def
      name: MISCELLANEOUS_INSTRUCTION_EXTENSIONS_2_FACILITY
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '58'
    - item_type: preproc_def
      name: VECTOR_FACILITY
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '129'
    - item_type: preproc_def
      name: VECTOR_ENHANCEMENTS_1_FACILITY
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: '135'
    - item_type: preproc_def
      name: if
      pos:
        line_end: 376
        line_start: 364
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type_or_value: "(have_facility_static(bit)) \\\n\t\thave = 1; \\\n\telse if
        (SLJIT_UNLIKELY(have < 0)) \\\n\t\thave = have_facility_dynamic(bit) ? 1 :
        0; \\\n\\\n\treturn have; \\\n}"
    structs:
    - fields:
      - name: const_
        type: struct sljit_const
      - name: init_value
        type: sljit_sw
      item_type: struct
      name: sljit_s390x_const
      pos:
        line_end: 117
        line_start: 114
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
    - fields:
      - name: bits[4]
        type: sljit_uw
      item_type: struct
      name: cpu_features
      pos:
        line_end: 339
        line_start: 337
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
    - fields:
      - name: base
        type: sljit_gpr
      - name: index
        type: sljit_gpr
      - name: offset
        type: sljit_sw
      item_type: struct
      name: addr
      pos:
        line_end: 894
        line_start: 890
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
    - fields:
      - name: op_r
        type: sljit_ins
      - name: op_gr
        type: sljit_ins
      - name: op_rk
        type: sljit_ins
      - name: op_grk
        type: sljit_ins
      - name: op
        type: sljit_ins
      - name: op_y
        type: sljit_ins
      - name: op_g
        type: sljit_ins
      item_type: struct
      name: ins_forms
      pos:
        line_end: 1239
        line_start: 1231
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
    typedefs:
    - item_type: typedef
      name: sljit_ins
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type: sljit_uw
    - item_type: typedef
      name: sljit_gpr
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type: sljit_uw
    - item_type: typedef
      name: facility_bit
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/pcre2/src/sljit/sljitNativeS390X.c
      type: sljit_uw
    union: []
- function_names:
  - CHECK_ERROR
  - CHECK_ERROR_PTR
  - FAIL_IF
  - PTR_FAIL_IF
  - FAIL_IF_NULL
  - PTR_FAIL_IF_NULL
  - PTR_FAIL_WITH_EXEC_IF
  - GET_FLAG_TYPE
  - GET_OPCODE
  - HAS_FLAGS
  - GET_ALL_FLAGS
  - TYPE_CAST_NEEDED
  - TYPE_CAST_NEEDED
  - OFFS_REG
  - TO_OFFS_REG
  - FAST_IS_REG
  - SLOW_IS_REG
  - GET_SAVED_REGISTERS_SIZE
  - ADJUST_LOCAL_OFFSET
  - SLJIT_ADD_EXEC_OFFSET
  - SLJIT_ADD_EXEC_OFFSET
  - CHECK_ARGUMENT
  - CHECK
  - CHECK_PTR
  - CHECK_REG_INDEX
  - CHECK_ARGUMENT
  - CHECK
  - CHECK_PTR
  - CHECK_REG_INDEX
  - CHECK
  - CHECK_PTR
  - CHECK_REG_INDEX
  - sljit_create_compiler
  - sljit_free_compiler
  - sljit_set_compiler_memory_error
  - sljit_free_code
  - sljit_free_code
  - sljit_free_code
  - sljit_set_label
  - sljit_set_target
  - sljit_set_put_label
  - sljit_set_current_flags
  - ensure_buf
  - ensure_abuf
  - sljit_alloc_memory
  - reverse_buf
  - get_arg_count
  - compute_next_addr
  - set_emit_enter
  - set_set_context
  - set_label
  - set_jump
  - set_const
  - set_put_label
  - ADDRESSING_DEPENDS_ON
  - FUNCTION_CHECK_IS_REG
  - FUNCTION_CHECK_IS_FREG
  - CHECK_IF_VIRTUAL_REGISTER
  - CHECK_IF_VIRTUAL_REGISTER
  - function_check_src_mem
  - FUNCTION_CHECK_SRC_MEM
  - function_check_src
  - FUNCTION_CHECK_SRC
  - function_check_dst
  - FUNCTION_CHECK_DST
  - function_fcheck
  - FUNCTION_FCHECK
  - sljit_compiler_verbose
  - sljit_verbose_reg
  - sljit_verbose_freg
  - sljit_verbose_param
  - sljit_verbose_fparam
  - JUMP_POSTFIX
  - CHECK_RETURN_TYPE::check_sljit_generate_code
  - CHECK_RETURN_TYPE::check_sljit_emit_enter
  - CHECK_RETURN_TYPE::check_sljit_set_context
  - CHECK_RETURN_TYPE::check_sljit_emit_return
  - CHECK_RETURN_TYPE::check_sljit_emit_fast_enter
  - CHECK_RETURN_TYPE::check_sljit_emit_op0
  - CHECK_RETURN_TYPE::check_sljit_emit_op1
  - CHECK_RETURN_TYPE::check_sljit_emit_op2
  - CHECK_RETURN_TYPE::check_sljit_emit_op_src
  - CHECK_RETURN_TYPE::check_sljit_get_register_index
  - CHECK_RETURN_TYPE::check_sljit_get_float_register_index
  - CHECK_RETURN_TYPE::check_sljit_emit_op_custom
  - CHECK_RETURN_TYPE::check_sljit_emit_fop1
  - CHECK_RETURN_TYPE::check_sljit_emit_fop1_cmp
  - CHECK_RETURN_TYPE::check_sljit_emit_fop1_conv_sw_from_f64
  - CHECK_RETURN_TYPE::check_sljit_emit_fop1_conv_f64_from_sw
  - CHECK_RETURN_TYPE::check_sljit_emit_fop2
  - CHECK_RETURN_TYPE::check_sljit_emit_label
  - CHECK_RETURN_TYPE::check_sljit_emit_jump
  - CHECK_RETURN_TYPE::check_sljit_emit_call
  - CHECK_RETURN_TYPE::check_sljit_emit_cmp
  - CHECK_RETURN_TYPE::check_sljit_emit_fcmp
  - CHECK_RETURN_TYPE::check_sljit_emit_ijump
  - CHECK_RETURN_TYPE::check_sljit_emit_icall
  - CHECK_RETURN_TYPE::check_sljit_emit_op_flags
  - CHECK_RETURN_TYPE::check_sljit_emit_cmov
  - CHECK_RETURN_TYPE::check_sljit_emit_mem
  - CHECK_RETURN_TYPE::check_sljit_emit_fmem
  - CHECK_RETURN_TYPE::check_sljit_get_local_base
  - CHECK_RETURN_TYPE::check_sljit_emit_const
  - CHECK_RETURN_TYPE::check_sljit_emit_put_label
  - SELECT_FOP1_OPERATION_WITH_CHECKS
  - emit_mov_before_return
  - sljit_emit_cmov_generic
  - sljit_emit_cmp
  - sljit_emit_fcmp
  - sljit_emit_mem
  - sljit_emit_fmem
  - sljit_get_local_base
  - sljit_get_platform_name
  - sljit_create_compiler
  - sljit_free_compiler
  - sljit_set_compiler_memory_error
  - sljit_alloc_memory
  - sljit_compiler_verbose
  - sljit_generate_code
  - sljit_has_cpu_feature
  - sljit_free_code
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - sljit_emit_fast_enter
  - sljit_emit_op0
  - sljit_emit_op1
  - sljit_emit_op2
  - sljit_emit_op_src
  - sljit_get_register_index
  - sljit_emit_op_custom
  - sljit_set_current_flags
  - sljit_emit_fop1
  - sljit_emit_fop2
  - sljit_emit_label
  - sljit_emit_jump
  - sljit_emit_call
  - sljit_emit_cmp
  - sljit_emit_fcmp
  - sljit_set_label
  - sljit_set_target
  - sljit_set_put_label
  - sljit_emit_ijump
  - sljit_emit_icall
  - sljit_emit_op_flags
  - sljit_emit_cmov
  - sljit_emit_mem
  - sljit_emit_fmem
  - sljit_get_local_base
  - sljit_emit_const
  - sljit_emit_put_label
  - sljit_set_jump_addr
  - sljit_set_const
  source_file: /src/pcre2/src/sljit/sljitLir.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VARIABLE_FLAG_SHIFT
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: (10)
    - item_type: preproc_def
      name: VARIABLE_FLAG_MASK
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: (0x3f << VARIABLE_FLAG_SHIFT)
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: ABUF_SIZE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: ABUF_SIZE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: REG_MASK
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x3f'
    - item_type: preproc_def
      name: OFFS_REG_MASK
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: (REG_MASK << 8)
    - item_type: preproc_def
      name: SLJIT_DEF_MASK
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: ((1 << SLJIT_DEF_SHIFT) - 1)
    - item_type: preproc_def
      name: JUMP_LABEL
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: JUMP_ADDR
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: PATCH_MB
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: PATCH_MW
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x8'
    - item_type: preproc_def
      name: PATCH_MD
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: TYPE_SHIFT
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '13'
    - item_type: preproc_def
      name: IS_BL
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: PATCH_B
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x8'
    - item_type: preproc_def
      name: CPOOL_SIZE
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '512'
    - item_type: preproc_def
      name: IS_COND
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: IS_BL
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: PATCH_TYPE1
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: PATCH_TYPE2
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PATCH_TYPE3
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x30'
    - item_type: preproc_def
      name: PATCH_TYPE4
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: PATCH_TYPE5
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x50'
    - item_type: preproc_def
      name: PATCH_BL
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x60'
    - item_type: preproc_def
      name: IS_COND
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x004'
    - item_type: preproc_def
      name: IS_CBZ
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x008'
    - item_type: preproc_def
      name: IS_BL
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x010'
    - item_type: preproc_def
      name: PATCH_B
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x020'
    - item_type: preproc_def
      name: PATCH_COND
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x040'
    - item_type: preproc_def
      name: PATCH_ABS48
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x080'
    - item_type: preproc_def
      name: PATCH_ABS64
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: IS_COND
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x004'
    - item_type: preproc_def
      name: IS_CALL
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x008'
    - item_type: preproc_def
      name: PATCH_B
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x010'
    - item_type: preproc_def
      name: PATCH_ABS_B
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x020'
    - item_type: preproc_def
      name: PATCH_ABS32
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x040'
    - item_type: preproc_def
      name: PATCH_ABS48
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x080'
    - item_type: preproc_def
      name: REMOVE_COND
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: IS_MOVABLE
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x004'
    - item_type: preproc_def
      name: IS_JAL
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x008'
    - item_type: preproc_def
      name: IS_CALL
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x010'
    - item_type: preproc_def
      name: IS_BIT26_COND
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x020'
    - item_type: preproc_def
      name: IS_BIT16_COND
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x040'
    - item_type: preproc_def
      name: IS_BIT23_COND
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x080'
    - item_type: preproc_def
      name: IS_COND
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: (IS_BIT26_COND | IS_BIT16_COND | IS_BIT23_COND)
    - item_type: preproc_def
      name: PATCH_B
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: PATCH_J
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x200'
    - item_type: preproc_def
      name: PATCH_ABS32
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x400'
    - item_type: preproc_def
      name: PATCH_ABS48
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x800'
    - item_type: preproc_def
      name: MOVABLE_INS
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0'
    - item_type: preproc_def
      name: UNMOVABLE_INS
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '32'
    - item_type: preproc_def
      name: FCSR_FCC
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '33'
    - item_type: preproc_def
      name: IS_MOVABLE
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: IS_COND
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: IS_CALL
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: PATCH_B
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PATCH_CALL
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: MOVABLE_INS
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0'
    - item_type: preproc_def
      name: UNMOVABLE_INS
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '32'
    - item_type: preproc_def
      name: DST_INS_MASK
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: ICC_IS_SET
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: (1 << 23)
    - item_type: preproc_def
      name: FCC_IS_SET
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: CHECK_RETURN_TYPE
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: sljit_s32
    - item_type: preproc_def
      name: CHECK_RETURN_OK
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: return 0
    - item_type: preproc_def
      name: SLJIT_ARGUMENT_CHECKS
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CHECK_RETURN_TYPE
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: void
    - item_type: preproc_def
      name: CHECK_RETURN_OK
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: return
    - item_type: preproc_def
      name: CHECK_RETURN_TYPE
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: void
    - item_type: preproc_def
      name: CHECK_RETURN_OK
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: return
    - item_type: preproc_def
      name: SLJIT_NEEDS_COMPILER_INIT
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SLJIT_CURRENT_FLAGS_ALL
      pos:
        line_end: 536
        line_start: 534
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: (SLJIT_CURRENT_FLAGS_I32_OP | SLJIT_CURRENT_FLAGS_ADD_SUB | SLJIT_CURRENT_FLAGS_COMPARE)
    - item_type: preproc_def
      name: SLJIT_PRINT_D
      pos:
        line_end: 867
        line_start: 866
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '"I64"'
    - item_type: preproc_def
      name: SLJIT_PRINT_D
      pos:
        line_end: 869
        line_start: 868
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '"l"'
    - item_type: preproc_def
      name: SLJIT_PRINT_D
      pos:
        line_end: 872
        line_start: 871
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '""'
    - item_type: preproc_def
      name: SLJIT_CPUINFO_PART1
      pos:
        line_end: 2087
        line_start: 2086
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '" 32bit ("'
    - item_type: preproc_def
      name: SLJIT_CPUINFO_PART1
      pos:
        line_end: 2089
        line_start: 2088
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '" 64bit ("'
    - item_type: preproc_def
      name: SLJIT_CPUINFO_PART2
      pos:
        line_end: 2095
        line_start: 2094
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '"little endian + "'
    - item_type: preproc_def
      name: SLJIT_CPUINFO_PART2
      pos:
        line_end: 2097
        line_start: 2096
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '"big endian + "'
    - item_type: preproc_def
      name: SLJIT_CPUINFO_PART3
      pos:
        line_end: 2103
        line_start: 2102
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '"unaligned)"'
    - item_type: preproc_def
      name: SLJIT_CPUINFO_PART3
      pos:
        line_end: 2105
        line_start: 2104
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: '"aligned)"'
    - item_type: preproc_def
      name: SLJIT_CPUINFO
      pos:
        line_end: 2108
        line_start: 2107
        source_file: /src/pcre2/src/sljit/sljitLir.c
      type_or_value: SLJIT_CPUINFO_PART1 SLJIT_CPUINFO_PART2 SLJIT_CPUINFO_PART3
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_immediate
  - EMIT_LOGICAL
  - EMIT_SHIFT
  - emit_single_op
  - emit_const
  - sljit_set_jump_addr
  - sljit_set_const
  - call_with_args
  - post_call_with_args
  - sljit_emit_call
  - sljit_emit_icall
  source_file: /src/pcre2/src/sljit/sljitNativeMIPS_32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sljit_get_platform_name
  - COPY_BITS
  - RD3
  - RN3
  - RM3
  - RDN3
  - IMM3
  - IMM8
  - SET_REGS44
  - IS_2_LO_REGS
  - IS_3_LO_REGS
  - RD4
  - RN4
  - RM4
  - RT4
  - DD4
  - DN4
  - DM4
  - IMM5
  - IMM12
  - push_inst16
  - push_inst32
  - emit_imm32_const
  - modify_imm32_const
  - detect_jump_type
  - set_jump_instruction
  - sljit_generate_code
  - sljit_has_cpu_feature
  - get_imm
  - load_immediate
  - emit_op_imm
  - IS_WORD_SIZE
  - OFFSET_CHECK
  - emit_set_delta
  - emit_op_mem
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - sljit_emit_op0
  - sljit_emit_op1
  - sljit_emit_op2
  - sljit_emit_op_src
  - sljit_get_register_index
  - sljit_get_float_register_index
  - sljit_emit_op_custom
  - emit_fop_mem
  - sljit_emit_fop1_conv_sw_from_f64
  - sljit_emit_fop1_conv_f64_from_sw
  - sljit_emit_fop1_cmp
  - sljit_emit_fop1
  - sljit_emit_fop2
  - sljit_emit_fast_enter
  - get_cc
  - sljit_emit_label
  - sljit_emit_jump
  - softfloat_call_with_args
  - softfloat_post_call_with_args
  - hardfloat_call_with_args
  - sljit_emit_call
  - sljit_emit_ijump
  - sljit_emit_icall
  - sljit_emit_op_flags
  - sljit_emit_cmov
  - sljit_emit_mem
  - sljit_emit_const
  - sljit_emit_put_label
  - sljit_set_jump_addr
  - sljit_set_const
  source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TMP_REG1
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 2)
    - item_type: preproc_def
      name: TMP_REG2
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 3)
    - item_type: preproc_def
      name: TMP_PC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 4)
    - item_type: preproc_def
      name: TMP_FREG1
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
    - item_type: preproc_def
      name: TMP_FREG2
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
    - item_type: preproc_def
      name: ADCI
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf1400000'
    - item_type: preproc_def
      name: ADCS
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4140'
    - item_type: preproc_def
      name: ADC_W
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeb400000'
    - item_type: preproc_def
      name: ADD
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4400'
    - item_type: preproc_def
      name: ADDS
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x1800'
    - item_type: preproc_def
      name: ADDSI3
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x1c00'
    - item_type: preproc_def
      name: ADDSI8
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x3000'
    - item_type: preproc_def
      name: ADD_W
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeb000000'
    - item_type: preproc_def
      name: ADDWI
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf2000000'
    - item_type: preproc_def
      name: ADD_SP
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xb000'
    - item_type: preproc_def
      name: ADD_W
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeb000000'
    - item_type: preproc_def
      name: ADD_WI
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf1000000'
    - item_type: preproc_def
      name: ANDI
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf0000000'
    - item_type: preproc_def
      name: ANDS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: AND_W
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xea000000'
    - item_type: preproc_def
      name: ASRS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4100'
    - item_type: preproc_def
      name: ASRSI
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: ASR_W
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfa40f000'
    - item_type: preproc_def
      name: ASR_WI
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xea4f0020'
    - item_type: preproc_def
      name: BCC
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xd000'
    - item_type: preproc_def
      name: BICI
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf0200000'
    - item_type: preproc_def
      name: BKPT
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xbe00'
    - item_type: preproc_def
      name: BLX
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4780'
    - item_type: preproc_def
      name: BX
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4700'
    - item_type: preproc_def
      name: CLZ
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfab0f080'
    - item_type: preproc_def
      name: CMNI_W
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf1100f00'
    - item_type: preproc_def
      name: CMP
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4280'
    - item_type: preproc_def
      name: CMPI
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x2800'
    - item_type: preproc_def
      name: CMPI_W
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf1b00f00'
    - item_type: preproc_def
      name: CMP_X
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4500'
    - item_type: preproc_def
      name: CMP_W
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xebb00f00'
    - item_type: preproc_def
      name: EORI
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf0800000'
    - item_type: preproc_def
      name: EORS
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4040'
    - item_type: preproc_def
      name: EOR_W
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xea800000'
    - item_type: preproc_def
      name: IT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xbf00'
    - item_type: preproc_def
      name: LDRI
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf8500800'
    - item_type: preproc_def
      name: LSLS
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4080'
    - item_type: preproc_def
      name: LSLSI
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: LSL_W
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfa00f000'
    - item_type: preproc_def
      name: LSL_WI
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xea4f0000'
    - item_type: preproc_def
      name: LSRS
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x40c0'
    - item_type: preproc_def
      name: LSRSI
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: LSR_W
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfa20f000'
    - item_type: preproc_def
      name: LSR_WI
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xea4f0010'
    - item_type: preproc_def
      name: MOV
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4600'
    - item_type: preproc_def
      name: MOVS
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: MOVSI
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: MOVT
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf2c00000'
    - item_type: preproc_def
      name: MOVW
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf2400000'
    - item_type: preproc_def
      name: MOV_W
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xea4f0000'
    - item_type: preproc_def
      name: MOV_WI
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf04f0000'
    - item_type: preproc_def
      name: MUL
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfb00f000'
    - item_type: preproc_def
      name: MVNS
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x43c0'
    - item_type: preproc_def
      name: MVN_W
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xea6f0000'
    - item_type: preproc_def
      name: MVN_WI
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf06f0000'
    - item_type: preproc_def
      name: NOP
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xbf00'
    - item_type: preproc_def
      name: ORNI
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf0600000'
    - item_type: preproc_def
      name: ORRI
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf0400000'
    - item_type: preproc_def
      name: ORRS
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4300'
    - item_type: preproc_def
      name: ORR_W
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xea400000'
    - item_type: preproc_def
      name: POP
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xbc00'
    - item_type: preproc_def
      name: POP_W
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xe8bd0000'
    - item_type: preproc_def
      name: PUSH
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xb400'
    - item_type: preproc_def
      name: PUSH_W
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xe92d0000'
    - item_type: preproc_def
      name: RSB_WI
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf1c00000'
    - item_type: preproc_def
      name: RSBSI
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4240'
    - item_type: preproc_def
      name: SBCI
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf1600000'
    - item_type: preproc_def
      name: SBCS
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4180'
    - item_type: preproc_def
      name: SBC_W
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeb600000'
    - item_type: preproc_def
      name: SDIV
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfb90f0f0'
    - item_type: preproc_def
      name: SMULL
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfb800000'
    - item_type: preproc_def
      name: STR_SP
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x9000'
    - item_type: preproc_def
      name: SUBS
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x1a00'
    - item_type: preproc_def
      name: SUBSI3
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x1e00'
    - item_type: preproc_def
      name: SUBSI8
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x3800'
    - item_type: preproc_def
      name: SUB_W
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeba00000'
    - item_type: preproc_def
      name: SUBWI
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf2a00000'
    - item_type: preproc_def
      name: SUB_SP
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xb080'
    - item_type: preproc_def
      name: SUB_WI
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xf1a00000'
    - item_type: preproc_def
      name: SXTB
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xb240'
    - item_type: preproc_def
      name: SXTB_W
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfa4ff080'
    - item_type: preproc_def
      name: SXTH
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xb200'
    - item_type: preproc_def
      name: SXTH_W
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfa0ff080'
    - item_type: preproc_def
      name: TST
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x4200'
    - item_type: preproc_def
      name: UDIV
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfbb0f0f0'
    - item_type: preproc_def
      name: UMULL
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfba00000'
    - item_type: preproc_def
      name: UXTB
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xb2c0'
    - item_type: preproc_def
      name: UXTB_W
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfa5ff080'
    - item_type: preproc_def
      name: UXTH
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xb280'
    - item_type: preproc_def
      name: UXTH_W
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xfa1ff080'
    - item_type: preproc_def
      name: VABS_F32
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeeb00ac0'
    - item_type: preproc_def
      name: VADD_F32
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xee300a00'
    - item_type: preproc_def
      name: VCMP_F32
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeeb40a40'
    - item_type: preproc_def
      name: VCVT_F32_S32
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeeb80ac0'
    - item_type: preproc_def
      name: VCVT_F64_F32
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeeb70ac0'
    - item_type: preproc_def
      name: VCVT_S32_F32
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeebd0ac0'
    - item_type: preproc_def
      name: VDIV_F32
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xee800a00'
    - item_type: preproc_def
      name: VMOV_F32
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeeb00a40'
    - item_type: preproc_def
      name: VMOV
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xee000a10'
    - item_type: preproc_def
      name: VMOV2
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xec400a10'
    - item_type: preproc_def
      name: VMRS
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeef1fa10'
    - item_type: preproc_def
      name: VMUL_F32
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xee200a00'
    - item_type: preproc_def
      name: VNEG_F32
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xeeb10a40'
    - item_type: preproc_def
      name: VSTR_F32
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xed000a00'
    - item_type: preproc_def
      name: VSUB_F32
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xee300a40'
    - item_type: preproc_def
      name: INVALID_IMM
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: ARG1_IMM
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x0010000'
    - item_type: preproc_def
      name: ARG2_IMM
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x0020000'
    - item_type: preproc_def
      name: SET_FLAGS
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x0100000'
    - item_type: preproc_def
      name: UNUSED_RETURN
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x0200000'
    - item_type: preproc_def
      name: STORE
      pos:
        line_end: 870
        line_start: 869
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SIGNED
      pos:
        line_end: 871
        line_start: 870
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: WORD_SIZE
      pos:
        line_end: 873
        line_start: 872
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BYTE_SIZE
      pos:
        line_end: 874
        line_start: 873
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: HALF_SIZE
      pos:
        line_end: 875
        line_start: 874
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: PRELOAD
      pos:
        line_end: 876
        line_start: 875
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: MEM_IMM8
      pos:
        line_end: 930
        line_start: 929
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0xc00'
    - item_type: preproc_def
      name: MEM_IMM12
      pos:
        line_end: 931
        line_start: 930
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: '0x800000'
    - item_type: preproc_def
      name: FPU_LOAD
      pos:
        line_end: 1538
        line_start: 1537
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type_or_value: (1 << 20)
    structs: []
    typedefs:
    - item_type: typedef
      name: sljit_ins
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/pcre2/src/sljit/sljitNativeARM_T2_32.c
      type: sljit_u32
    union: []
- function_names:
  - emit_load_imm64
  - generate_far_jump_code
  - generate_put_label_code
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - emit_do_imm32
  - emit_x86_instruction
  - call_with_args
  - call_with_args
  - sljit_emit_call
  - sljit_emit_icall
  - sljit_emit_fast_enter
  - emit_fast_return
  - emit_mov_int
  - skip_frames_before_return
  source_file: /src/pcre2/src/sljit/sljitNativeX86_64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_immediate
  - ARG2
  - emit_single_op
  - call_with_args
  - emit_const
  - sljit_set_jump_addr
  - sljit_set_const
  source_file: /src/pcre2/src/sljit/sljitNativeSPARC_32.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sljit_get_platform_name
  - sparc_cache_flush
  - D
  - FD
  - FDN
  - DA
  - S1
  - FS1
  - S1A
  - S2
  - FS2
  - FS2N
  - S2A
  - DOP
  - IMM
  - DR
  - OPC1
  - OPC2
  - OPC3
  - push_inst
  - detect_jump_type
  - sljit_generate_code
  - sljit_has_cpu_feature
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - ARCH_32_64
  - ARCH_32_64
  - getput_arg_fast
  - can_cache
  - getput_arg
  - emit_op_mem
  - emit_op_mem2
  - emit_op
  - sljit_emit_op0
  - sljit_emit_op1
  - sljit_emit_op2
  - sljit_emit_op_src
  - sljit_get_register_index
  - sljit_get_float_register_index
  - sljit_emit_op_custom
  - FLOAT_DATA
  - SELECT_FOP
  - sljit_emit_fop1_conv_sw_from_f64
  - sljit_emit_fop1_conv_f64_from_sw
  - sljit_emit_fop1_cmp
  - sljit_emit_fop1
  - sljit_emit_fop2
  - sljit_emit_fast_enter
  - sljit_emit_label
  - get_cc
  - sljit_emit_jump
  - sljit_emit_call
  - sljit_emit_ijump
  - sljit_emit_icall
  - sljit_emit_op_flags
  - sljit_emit_cmov
  - sljit_emit_const
  - sljit_emit_put_label
  source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TMP_REG1
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 2)
    - item_type: preproc_def
      name: TMP_REG2
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 3)
    - item_type: preproc_def
      name: TMP_REG3
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 4)
    - item_type: preproc_def
      name: TMP_LINK
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 5)
    - item_type: preproc_def
      name: TMP_FREG1
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
    - item_type: preproc_def
      name: TMP_FREG2
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
    - item_type: preproc_def
      name: IMM_ARG
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: SET_FLAGS
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: OPC3(0x10)
    - item_type: preproc_def
      name: ADD
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x00))
    - item_type: preproc_def
      name: ADDC
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x08))
    - item_type: preproc_def
      name: AND
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x01))
    - item_type: preproc_def
      name: ANDN
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x05))
    - item_type: preproc_def
      name: CALL
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x1))
    - item_type: preproc_def
      name: FABSS
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x09))
    - item_type: preproc_def
      name: FADDD
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x42))
    - item_type: preproc_def
      name: FADDS
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x41))
    - item_type: preproc_def
      name: FCMPD
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x35) | DOP(0x52))
    - item_type: preproc_def
      name: FCMPS
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x35) | DOP(0x51))
    - item_type: preproc_def
      name: FDIVD
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x4e))
    - item_type: preproc_def
      name: FDIVS
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x4d))
    - item_type: preproc_def
      name: FDTOI
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0xd2))
    - item_type: preproc_def
      name: FDTOS
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0xc6))
    - item_type: preproc_def
      name: FITOD
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0xc8))
    - item_type: preproc_def
      name: FITOS
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0xc4))
    - item_type: preproc_def
      name: FMOVS
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x01))
    - item_type: preproc_def
      name: FMULD
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x4a))
    - item_type: preproc_def
      name: FMULS
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x49))
    - item_type: preproc_def
      name: FNEGS
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x05))
    - item_type: preproc_def
      name: FSTOD
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0xc9))
    - item_type: preproc_def
      name: FSTOI
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0xd1))
    - item_type: preproc_def
      name: FSUBD
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x46))
    - item_type: preproc_def
      name: FSUBS
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x34) | DOP(0x45))
    - item_type: preproc_def
      name: JMPL
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x38))
    - item_type: preproc_def
      name: LDD
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x3) | OPC3(0x03))
    - item_type: preproc_def
      name: LDUW
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x3) | OPC3(0x00))
    - item_type: preproc_def
      name: NOP
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x0) | OPC2(0x04))
    - item_type: preproc_def
      name: OR
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x02))
    - item_type: preproc_def
      name: ORN
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x06))
    - item_type: preproc_def
      name: RDY
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x28) | S1A(0))
    - item_type: preproc_def
      name: RESTORE
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x3d))
    - item_type: preproc_def
      name: SAVE
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x3c))
    - item_type: preproc_def
      name: SETHI
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x0) | OPC2(0x04))
    - item_type: preproc_def
      name: SLL
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x25))
    - item_type: preproc_def
      name: SLLX
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x25) | (1 << 12))
    - item_type: preproc_def
      name: SRA
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x27))
    - item_type: preproc_def
      name: SRAX
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x27) | (1 << 12))
    - item_type: preproc_def
      name: SRL
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x26))
    - item_type: preproc_def
      name: SRLX
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x26) | (1 << 12))
    - item_type: preproc_def
      name: STDF
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x3) | OPC3(0x27))
    - item_type: preproc_def
      name: STF
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x3) | OPC3(0x24))
    - item_type: preproc_def
      name: STW
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x3) | OPC3(0x04))
    - item_type: preproc_def
      name: SUB
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x04))
    - item_type: preproc_def
      name: SUBC
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x0c))
    - item_type: preproc_def
      name: TA
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x3a) | (8 << 25))
    - item_type: preproc_def
      name: WRY
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x30) | DA(0))
    - item_type: preproc_def
      name: XOR
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x03))
    - item_type: preproc_def
      name: XNOR
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x07))
    - item_type: preproc_def
      name: MAX_DISP
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (0x1fffff)
    - item_type: preproc_def
      name: MIN_DISP
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (-0x200000)
    - item_type: preproc_def
      name: DISP_MASK
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (0x3fffff)
    - item_type: preproc_def
      name: BICC
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x0) | OPC2(0x2))
    - item_type: preproc_def
      name: FBFCC
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x0) | OPC2(0x6))
    - item_type: preproc_def
      name: SLL_W
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: SLL
    - item_type: preproc_def
      name: SDIV
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x0f))
    - item_type: preproc_def
      name: SMUL
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x0b))
    - item_type: preproc_def
      name: UDIV
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x0e))
    - item_type: preproc_def
      name: UMUL
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (OPC1(0x2) | OPC3(0x0a))
    - item_type: preproc_def
      name: SLL_W
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: SLLX
    - item_type: preproc_def
      name: SIMM_MAX
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (0x0fff)
    - item_type: preproc_def
      name: SIMM_MIN
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (-0x1000)
    - item_type: preproc_def
      name: LOAD_DATA
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: WORD_DATA
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BYTE_DATA
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: HALF_DATA
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: INT_DATA
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: SIGNED_DATA
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: GPR_REG
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: DOUBLE_DATA
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SINGLE_DATA
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x12'
    - item_type: preproc_def
      name: MEM_MASK
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x1f'
    - item_type: preproc_def
      name: ARG_TEST
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x00020'
    - item_type: preproc_def
      name: ALT_KEEP_CACHE
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x00040'
    - item_type: preproc_def
      name: CUMULATIVE_OP
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x00080'
    - item_type: preproc_def
      name: IMM_OP
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x00100'
    - item_type: preproc_def
      name: SRC2_IMM
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x00200'
    - item_type: preproc_def
      name: REG_DEST
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x00400'
    - item_type: preproc_def
      name: REG2_SOURCE
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x00800'
    - item_type: preproc_def
      name: SLOW_SRC1
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x01000'
    - item_type: preproc_def
      name: SLOW_SRC2
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x02000'
    - item_type: preproc_def
      name: SLOW_DEST
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: '0x04000'
    - item_type: preproc_def
      name: FLOAT_TMP_MEM_OFFSET
      pos:
        line_end: 1032
        line_start: 1031
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type_or_value: (22 * sizeof(sljit_sw))
    structs: []
    typedefs:
    - item_type: typedef
      name: sljit_ins
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/pcre2/src/sljit/sljitNativeSPARC_common.c
      type: sljit_u32
    union: []
- function_names:
  - SLJIT_ALLOCATOR_LOCK
  - SLJIT_ALLOCATOR_UNLOCK
  - allocator_grab_lock
  - SLJIT_ALLOCATOR_LOCK
  - SLJIT_ALLOCATOR_UNLOCK
  - open_dev_zero
  - open_dev_zero
  - get_page_alignment
  - get_page_alignment
  - sljit_allocate_stack
  - sljit_free_stack
  - sljit_stack_resize
  - sljit_free_stack
  - sljit_free_stack
  - sljit_allocate_stack
  - sljit_stack_resize
  source_file: /src/pcre2/src/sljit/sljitUtils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAP_ANON
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/pcre2/src/sljit/sljitUtils.c
      type_or_value: MAP_ANONYMOUS
    - item_type: preproc_def
      name: SLJIT_CLOEXEC
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/pcre2/src/sljit/sljitUtils.c
      type_or_value: O_CLOEXEC
    - item_type: preproc_def
      name: SLJIT_CLOEXEC
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/pcre2/src/sljit/sljitUtils.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sljit_get_platform_name
  - ALIGN_INSTRUCTION
  - MAX_DIFFERENCE
  - RM
  - RD
  - RN
  - push_cpool
  - push_inst
  - push_inst_with_literal
  - push_inst_with_unique_literal
  - prepare_blx
  - emit_blx
  - patch_pc_relative_loads
  - resolve_const_pool_index
  - push_inst
  - emit_imm
  - detect_jump_type
  - inline_set_jump_addr
  - inline_set_const
  - sljit_generate_code
  - sljit_has_cpu_feature
  - EMIT_DATA_TRANSFER
  - IS_TYPE1_TRANSFER
  - TYPE2_TRANSFER_IMM
  - sljit_emit_enter
  - sljit_set_context
  - sljit_emit_return
  - EMIT_SHIFT_INS_AND_RETURN
  - emit_single_op
  - get_imm
  - generate_int
  - load_immediate
  - emit_op_mem
  - emit_op
  - sljit_emit_op0
  - sljit_emit_op1
  - sljit_emit_op2
  - sljit_emit_op_src
  - sljit_get_register_index
  - sljit_get_float_register_index
  - sljit_emit_op_custom
  - EMIT_FPU_DATA_TRANSFER
  - EMIT_FPU_OPERATION
  - emit_fop_mem
  - sljit_emit_fop1_conv_sw_from_f64
  - sljit_emit_fop1_conv_f64_from_sw
  - sljit_emit_fop1_cmp
  - sljit_emit_fop1
  - sljit_emit_fop2
  - sljit_emit_fast_enter
  - get_cc
  - sljit_emit_label
  - sljit_emit_jump
  - softfloat_call_with_args
  - softfloat_post_call_with_args
  - hardfloat_call_with_args
  - sljit_emit_call
  - sljit_emit_ijump
  - sljit_emit_icall
  - sljit_emit_op_flags
  - sljit_emit_cmov
  - sljit_emit_mem
  - sljit_emit_const
  - sljit_emit_put_label
  - sljit_set_jump_addr
  - sljit_set_const
  source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARM_ABI_INFO
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '" ABI:softfp"'
    - item_type: preproc_def
      name: ARM_ABI_INFO
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '" ABI:hardfp"'
    - item_type: preproc_def
      name: TMP_REG1
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 2)
    - item_type: preproc_def
      name: TMP_REG2
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 3)
    - item_type: preproc_def
      name: TMP_PC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: (SLJIT_NUMBER_OF_REGISTERS + 4)
    - item_type: preproc_def
      name: TMP_FREG1
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
    - item_type: preproc_def
      name: TMP_FREG2
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
    - item_type: preproc_def
      name: CONST_POOL_ALIGNMENT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '8'
    - item_type: preproc_def
      name: CONST_POOL_EMPTY
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: COND_MASK
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xf0000000'
    - item_type: preproc_def
      name: CONDITIONAL
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0000000'
    - item_type: preproc_def
      name: PUSH_POOL
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xff000000'
    - item_type: preproc_def
      name: ADC
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0a00000'
    - item_type: preproc_def
      name: ADD
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0800000'
    - item_type: preproc_def
      name: AND
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0000000'
    - item_type: preproc_def
      name: B
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xea000000'
    - item_type: preproc_def
      name: BIC
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe1c00000'
    - item_type: preproc_def
      name: BL
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xeb000000'
    - item_type: preproc_def
      name: BLX
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe12fff30'
    - item_type: preproc_def
      name: BX
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe12fff10'
    - item_type: preproc_def
      name: CLZ
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe16f0f10'
    - item_type: preproc_def
      name: CMN
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe1600000'
    - item_type: preproc_def
      name: CMP
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe1400000'
    - item_type: preproc_def
      name: BKPT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe1200070'
    - item_type: preproc_def
      name: EOR
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0200000'
    - item_type: preproc_def
      name: MOV
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe1a00000'
    - item_type: preproc_def
      name: MUL
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0000090'
    - item_type: preproc_def
      name: MVN
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe1e00000'
    - item_type: preproc_def
      name: NOP
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe1a00000'
    - item_type: preproc_def
      name: ORR
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe1800000'
    - item_type: preproc_def
      name: PUSH
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe92d0000'
    - item_type: preproc_def
      name: POP
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe8bd0000'
    - item_type: preproc_def
      name: RSB
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0600000'
    - item_type: preproc_def
      name: RSC
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0e00000'
    - item_type: preproc_def
      name: SBC
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0c00000'
    - item_type: preproc_def
      name: SMULL
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0c00090'
    - item_type: preproc_def
      name: SUB
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0400000'
    - item_type: preproc_def
      name: UMULL
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe0800090'
    - item_type: preproc_def
      name: VABS_F32
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xeeb00ac0'
    - item_type: preproc_def
      name: VADD_F32
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xee300a00'
    - item_type: preproc_def
      name: VCMP_F32
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xeeb40a40'
    - item_type: preproc_def
      name: VCVT_F32_S32
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xeeb80ac0'
    - item_type: preproc_def
      name: VCVT_F64_F32
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xeeb70ac0'
    - item_type: preproc_def
      name: VCVT_S32_F32
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xeebd0ac0'
    - item_type: preproc_def
      name: VDIV_F32
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xee800a00'
    - item_type: preproc_def
      name: VMOV_F32
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xeeb00a40'
    - item_type: preproc_def
      name: VMOV
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xee000a10'
    - item_type: preproc_def
      name: VMOV2
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xec400a10'
    - item_type: preproc_def
      name: VMRS
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xeef1fa10'
    - item_type: preproc_def
      name: VMUL_F32
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xee200a00'
    - item_type: preproc_def
      name: VNEG_F32
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xeeb10a40'
    - item_type: preproc_def
      name: VSTR_F32
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xed000a00'
    - item_type: preproc_def
      name: VSUB_F32
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xee300a40'
    - item_type: preproc_def
      name: MOVW
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe3000000'
    - item_type: preproc_def
      name: MOVT
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe3400000'
    - item_type: preproc_def
      name: SXTB
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe6af0070'
    - item_type: preproc_def
      name: SXTH
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe6bf0070'
    - item_type: preproc_def
      name: UXTB
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe6ef0070'
    - item_type: preproc_def
      name: UXTH
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0xe6ff0070'
    - item_type: preproc_def
      name: WORD_SIZE
      pos:
        line_end: 964
        line_start: 963
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BYTE_SIZE
      pos:
        line_end: 965
        line_start: 964
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HALF_SIZE
      pos:
        line_end: 966
        line_start: 965
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PRELOAD
      pos:
        line_end: 967
        line_start: 966
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: SIGNED
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: LOAD_DATA
      pos:
        line_end: 969
        line_start: 968
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: ALLOW_IMM
      pos:
        line_end: 972
        line_start: 971
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: ALLOW_INV_IMM
      pos:
        line_end: 973
        line_start: 972
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: ALLOW_ANY_IMM
      pos:
        line_end: 974
        line_start: 973
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: (ALLOW_IMM | ALLOW_INV_IMM)
    - item_type: preproc_def
      name: ARGS_SWAPPED
      pos:
        line_end: 1107
        line_start: 1106
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: INV_IMM
      pos:
        line_end: 1109
        line_start: 1108
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: MOVE_REG_CONV
      pos:
        line_end: 1111
        line_start: 1110
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: UNUSED_RETURN
      pos:
        line_end: 1113
        line_start: 1112
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: SET_FLAGS
      pos:
        line_end: 1115
        line_start: 1114
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: (1 << 20)
    - item_type: preproc_def
      name: SRC2_IMM
      pos:
        line_end: 1120
        line_start: 1119
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: (1 << 25)
    - item_type: preproc_def
      name: FPU_LOAD
      pos:
        line_end: 1921
        line_start: 1920
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
      type_or_value: (1 << 20)
    structs:
    - fields:
      - name: '* next'
        type: struct future_patch
      - name: index
        type: sljit_s32
      - name: value
        type: sljit_s32
      item_type: struct
      name: future_patch
      pos:
        line_end: 327
        line_start: 323
        source_file: /src/pcre2/src/sljit/sljitNativeARM_32.c
    typedefs: []
    union: []
- function_names:
  - create_tempfile
  - alloc_chunk
  - alloc_chunk
  - free_chunk
  - AS_BLOCK_HEADER
  - AS_FREE_BLOCK
  - MEM_START
  - ALIGN_SIZE
  - sljit_insert_free_block
  - sljit_remove_free_block
  - sljit_malloc_exec
  - sljit_free_exec
  - sljit_free_unused_memory_exec
  - sljit_exec_offset
  source_file: /src/pcre2/src/sljit/sljitProtExecAllocator.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHUNK_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/pcre2/src/sljit/sljitProtExecAllocator.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: O_NOATIME
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/pcre2/src/sljit/sljitProtExecAllocator.c
      type_or_value: '0'
    - item_type: preproc_def
      name: O_TMPFILE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/pcre2/src/sljit/sljitProtExecAllocator.c
      type_or_value: '020200000'
    - item_type: preproc_def
      name: CHUNK_MASK
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/pcre2/src/sljit/sljitProtExecAllocator.c
      type_or_value: (~(CHUNK_SIZE - 1))
    structs:
    - fields:
      - name: '*executable'
        type: void
      item_type: struct
      name: chunk_header
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    - fields:
      - name: size
        type: sljit_uw
      - name: prev_size
        type: sljit_uw
      - name: executable_offset
        type: sljit_sw
      item_type: struct
      name: block_header
      pos:
        line_end: 269
        line_start: 265
        source_file: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    - fields:
      - name: header
        type: struct block_header
      - name: '*next'
        type: struct free_block
      - name: '*prev'
        type: struct free_block
      - name: size
        type: sljit_uw
      item_type: struct
      name: free_block
      pos:
        line_end: 276
        line_start: 271
        source_file: /src/pcre2/src/sljit/sljitProtExecAllocator.c
    typedefs: []
    union: []
- function_names:
  - ord2utf8
  - is_stdin_tty
  - get_scriptname
  - print_prop
  - find_chars
  - process_command_line
  - main
  source_file: /src/pcre2/maint/ucptest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/pcre2/maint/ucptest.c
      type_or_value: (char *)
    - item_type: preproc_def
      name: CCS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/pcre2/maint/ucptest.c
      type_or_value: (const char *)
    - item_type: preproc_def
      name: CSS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/pcre2/maint/ucptest.c
      type_or_value: (char **)
    - item_type: preproc_def
      name: US
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/pcre2/maint/ucptest.c
      type_or_value: (unsigned char *)
    - item_type: preproc_def
      name: CUS
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/pcre2/maint/ucptest.c
      type_or_value: (const unsigned char *)
    - item_type: preproc_def
      name: USS
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/pcre2/maint/ucptest.c
      type_or_value: (unsigned char **)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ord2utf8
  - utf82ord
  - main
  source_file: /src/pcre2/maint/utf8.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
